Merge commit '42698b4c5c' into kb_migration

This commit is contained in:
KMY 2023-07-21 18:40:40 +09:00
commit 152b8eb4e6
215 changed files with 1302 additions and 914 deletions

View file

@ -1,56 +0,0 @@
name: Bug Report
description: If something isn't working as expected
labels: [bug]
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: textarea
attributes:
label: Specifications
description: |
What version or commit hash of Mastodon did you find this bug in?
If a front-end issue, what browser and operating systems were you using?
placeholder: |
Mastodon 3.5.3 (or Edge)
Ruby 2.7.6 (or v3.1.2)
Node.js 16.18.0
Google Chrome 106.0.5249.119
Firefox 105.0.3
etc...
validations:
required: true

View file

@ -0,0 +1,76 @@
name: Bug Report (Web Interface)
description: If you are using Mastodon's web interface and something is not working as expected
labels: [bug, 'status/to triage', 'area/web interface']
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: input
attributes:
label: Mastodon instance
description: The address of the Mastodon instance where you experienced the issue
placeholder: mastodon.social
validations:
required: true
- type: input
attributes:
label: Mastodon version
description: |
This is displayed at the bottom of the About page, eg. `v4.1.2+nightly-20230627`
placeholder: v4.1.2
validations:
required: true
- type: input
attributes:
label: Browser name and version
description: |
What browser are you using when getting this bug? Please specify the version as well.
placeholder: Firefox 105.0.3
validations:
required: true
- type: input
attributes:
label: Operating system
description: |
What OS are you running? Please specify the version as well.
placeholder: macOS 13.4.1
validations:
required: true
- type: textarea
attributes:
label: Technical details
description: |
Any additional technical details you may have. This can include the full error log, inspector's output…
validations:
required: false

View file

@ -0,0 +1,65 @@
name: Bug Report (server / API)
description: |
If something is not working as expected, but is not from using the web interface.
labels: [bug, 'status/to triage']
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: input
attributes:
label: Mastodon instance
description: The address of the Mastodon instance where you experienced the issue
placeholder: mastodon.social
validations:
required: false
- type: input
attributes:
label: Mastodon version
description: |
This is displayed at the bottom of the About page, eg. `v4.1.2+nightly-20230627`
placeholder: v4.1.2
validations:
required: false
- type: textarea
attributes:
label: Technical details
description: |
Any additional technical details you may have, like logs or error traces
value: |
If this is happening on your own Mastodon server, please fill out those:
- Ruby version: (from `ruby --version`, eg. v3.1.2)
- Node.js version: (from `node --version`, eg. v18.16.0)
validations:
required: false

View file

@ -13,8 +13,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- id: version_vars - id: version_vars
env:
TZ: Etc/UTC
run: | run: |
echo mastodon_version_suffix=+nightly-$(date +'%Y%m%d') >> $GITHUB_OUTPUT echo mastodon_version_suffix=nightly-$(date +'%Y-%m-%d')>> $GITHUB_OUTPUT
outputs: outputs:
suffix: ${{ steps.version_vars.outputs.mastodon_version_suffix }} suffix: ${{ steps.version_vars.outputs.mastodon_version_suffix }}
@ -27,7 +29,8 @@ jobs:
push_to_images: | push_to_images: |
tootsuite/mastodon tootsuite/mastodon
ghcr.io/mastodon/mastodon ghcr.io/mastodon/mastodon
version_suffix: ${{ needs.compute-suffix.outputs.suffix }} # The `+` is important here, result will be v4.1.2+nightly-2022-03-05
version_suffix: +${{ needs.compute-suffix.outputs.suffix }}
labels: | labels: |
org.opencontainers.image.description=Nightly build image used for testing purposes org.opencontainers.image.description=Nightly build image used for testing purposes
flavor: | flavor: |
@ -35,5 +38,5 @@ jobs:
tags: | tags: |
type=raw,value=edge type=raw,value=edge
type=raw,value=nightly type=raw,value=nightly
type=schedule,pattern=nightly-{{date 'YYYY-MM-DD' tz='Etc/UTC'}} type=schedule,pattern=${{ needs.compute-suffix.outputs.suffix }}
secrets: inherit secrets: inherit

View file

@ -10,8 +10,15 @@ permissions:
jobs: jobs:
compute-suffix: compute-suffix:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ !github.event.pull_request.draft && contains(github.event.pull_request.labels.*.name, 'build-image') }} # This is only allowed to run if:
# - the PR branch is in the `mastodon/mastodon` repository
# - the PR is not a draft
# - the PR has the "build-image" label
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && !github.event.pull_request.draft && contains(github.event.pull_request.labels.*.name, 'build-image') }}
steps: steps:
# Repository needs to be cloned so `git rev-parse` below works
- name: Clone repository
uses: actions/checkout@v3
- id: version_vars - id: version_vars
run: | run: |
echo mastodon_version_suffix=+pr-${{ github.event.pull_request.number }}-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT echo mastodon_version_suffix=+pr-${{ github.event.pull_request.number }}-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT

76
.github/workflows/crowdin-download.yml vendored Normal file
View file

@ -0,0 +1,76 @@
name: Crowdin / Download translations
on:
schedule:
- cron: '17 4 * * *' # Every day
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
download-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Increase Git http.postBuffer
# This is needed due to a bug in Ubuntu's cURL version?
# See https://github.com/orgs/community/discussions/55820
run: |
git config --global http.version HTTP/1.1
git config --global http.postBuffer 157286400
# Download the translation files from Crowdin
- name: crowdin action
uses: crowdin/github-action@v1
with:
upload_sources: false
upload_translations: false
download_translations: true
crowdin_branch_name: main
push_translations: false
create_pull_request: false
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# As the files are extracted from a Docker container, they belong to root:root
# We need to fix this before the next steps
- name: Fix file permissions
run: sudo chown -R runner:docker .
# This is needed to run the normalize step
- 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 i18n normalize task
run: bundle exec i18n-tasks normalize
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)'
author: 'GitHub Actions <noreply@github.com>'
body: |
New Crowdin translations, automated with Github Actions
See `.github/workflows/crowdin-download.yml`
This PR will be updated every day with new translations.
Due to a limitation in Github Actions, checks are not running on this PR without manual action.
If you want to run the checks, then close and re-open it.
branch: i18n/crowdin/translations
base: main
labels: i18n

35
.github/workflows/crowdin-upload.yml vendored Normal file
View file

@ -0,0 +1,35 @@
name: Crowdin / Upload translations
on:
push:
branches:
- main
paths:
- crowdin.yml
- app/javascript/mastodon/locales/en.json
- config/locales/en.yml
- config/locales/simple_form.en.yml
- config/locales/activerecord.en.yml
- config/locales/devise.en.yml
- config/locales/doorkeeper.en.yml
- .github/workflows/crowdin-upload.yml
jobs:
upload-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: crowdin action
uses: crowdin/github-action@v1
with:
upload_sources: true
upload_translations: false
download_translations: false
crowdin_branch_name: main
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View file

@ -1,13 +1,13 @@
# This configuration was generated by # This configuration was generated by
# `haml-lint --auto-gen-config` # `haml-lint --auto-gen-config`
# on 2023-07-17 15:30:11 -0400 using Haml-Lint version 0.48.0. # on 2023-07-20 09:47:50 -0400 using Haml-Lint version 0.48.0.
# The point is for the user to remove these configuration records # The point is for the user to remove these configuration records
# one by one as the lints are removed from the code base. # one by one as the lints are removed from the code base.
# Note that changes in the inspected code, or installation of new # Note that changes in the inspected code, or installation of new
# versions of Haml-Lint, may require this file to be generated again. # versions of Haml-Lint, may require this file to be generated again.
linters: linters:
# Offense count: 959 # Offense count: 951
LineLength: LineLength:
enabled: false enabled: false
@ -15,7 +15,7 @@ linters:
UnnecessaryStringOutput: UnnecessaryStringOutput:
enabled: false enabled: false
# Offense count: 67 # Offense count: 57
RuboCop: RuboCop:
enabled: false enabled: false
@ -26,20 +26,18 @@ linters:
- 'app/views/admin/reports/show.html.haml' - 'app/views/admin/reports/show.html.haml'
- 'app/views/disputes/strikes/show.html.haml' - 'app/views/disputes/strikes/show.html.haml'
# Offense count: 41 # Offense count: 32
InstanceVariables: InstanceVariables:
exclude: exclude:
- 'app/views/admin/reports/_actions.html.haml' - 'app/views/admin/reports/_actions.html.haml'
- 'app/views/admin/roles/_form.html.haml' - 'app/views/admin/roles/_form.html.haml'
- 'app/views/admin/webhooks/_form.html.haml' - 'app/views/admin/webhooks/_form.html.haml'
- 'app/views/auth/registrations/_sessions.html.haml'
- 'app/views/auth/registrations/_status.html.haml' - 'app/views/auth/registrations/_status.html.haml'
- 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml' - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
- 'app/views/authorize_interactions/_post_follow_actions.html.haml' - 'app/views/authorize_interactions/_post_follow_actions.html.haml'
- 'app/views/invites/_form.html.haml' - 'app/views/invites/_form.html.haml'
- 'app/views/relationships/_account.html.haml' - 'app/views/relationships/_account.html.haml'
- 'app/views/shared/_og.html.haml' - 'app/views/shared/_og.html.haml'
- 'app/views/statuses/_status.html.haml'
# Offense count: 3 # Offense count: 3
IdNames: IdNames:

View file

@ -127,12 +127,6 @@ Lint/UselessAssignment:
- 'spec/services/resolve_url_service_spec.rb' - 'spec/services/resolve_url_service_spec.rb'
- 'spec/views/statuses/show.html.haml_spec.rb' - 'spec/views/statuses/show.html.haml_spec.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: CheckForMethodsWithNoSideEffects.
Lint/Void:
Exclude:
- 'spec/services/resolve_account_service_spec.rb'
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize: Metrics/AbcSize:
Max: 150 Max: 150

View file

@ -18,6 +18,7 @@ gem 'aws-sdk-s3', '~> 1.123', require: false
gem 'fog-core', '<= 2.4.0' gem 'fog-core', '<= 2.4.0'
gem 'fog-openstack', '~> 0.3', require: false gem 'fog-openstack', '~> 0.3', require: false
gem 'kt-paperclip', '~> 7.2' gem 'kt-paperclip', '~> 7.2'
gem 'md-paperclip-azure', '~> 2.2', require: false
gem 'blurhash', '~> 0.1' gem 'blurhash', '~> 0.1'
gem 'active_model_serializers', '~> 0.10' gem 'active_model_serializers', '~> 0.10'

View file

@ -118,6 +118,14 @@ GEM
aws-sigv4 (~> 1.6) aws-sigv4 (~> 1.6)
aws-sigv4 (1.6.0) aws-sigv4 (1.6.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
azure-storage-blob (2.0.3)
azure-storage-common (~> 2.0)
nokogiri (~> 1, >= 1.10.8)
azure-storage-common (2.0.4)
faraday (~> 1.0)
faraday_middleware (~> 1.0, >= 1.0.0.rc1)
net-http-persistent (~> 4.0)
nokogiri (~> 1, >= 1.10.8)
bcrypt (3.1.18) bcrypt (3.1.18)
better_errors (2.10.1) better_errors (2.10.1)
erubi (>= 1.0.0) erubi (>= 1.0.0)
@ -261,6 +269,8 @@ GEM
faraday-patron (1.0.0) faraday-patron (1.0.0)
faraday-rack (1.0.0) faraday-rack (1.0.0)
faraday-retry (1.0.3) faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fast_blank (1.0.1) fast_blank (1.0.1)
fastimage (2.2.7) fastimage (2.2.7)
ffi (1.15.5) ffi (1.15.5)
@ -410,6 +420,10 @@ GEM
mario-redis-lock (1.2.1) mario-redis-lock (1.2.1)
redis (>= 3.0.5) redis (>= 3.0.5)
matrix (0.4.2) matrix (0.4.2)
md-paperclip-azure (2.2.0)
addressable (~> 2.5)
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.0.1) memory_profiler (1.0.1)
method_source (1.0.0) method_source (1.0.0)
mime-types (3.4.1) mime-types (3.4.1)
@ -423,6 +437,8 @@ GEM
multipart-post (2.3.0) multipart-post (2.3.0)
net-http (0.3.2) net-http (0.3.2)
uri uri
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
net-imap (0.3.6) net-imap (0.3.6)
date date
net-protocol net-protocol
@ -822,6 +838,7 @@ DEPENDENCIES
link_header (~> 0.0) link_header (~> 0.0)
lograge (~> 0.12) lograge (~> 0.12)
mario-redis-lock (~> 1.2) mario-redis-lock (~> 1.2)
md-paperclip-azure (~> 2.2)
memory_profiler memory_profiler
mime-types (~> 3.4.1) mime-types (~> 3.4.1)
net-http (~> 0.3.2) net-http (~> 0.3.2)

View file

@ -17,13 +17,16 @@ class Api::V1::Statuses::FavouritesController < Api::BaseController
if fav if fav
@status = fav.status @status = fav.status
count = [@status.favourites_count - 1, 0].max
UnfavouriteWorker.perform_async(current_account.id, @status.id) UnfavouriteWorker.perform_async(current_account.id, @status.id)
else else
@status = Status.find(params[:status_id]) @status = Status.find(params[:status_id])
count = @status.favourites_count
authorize @status, :show? authorize @status, :show?
end end
render json: @status, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_account.id, favourites_map: { @status.id => false }) relationships = StatusRelationshipsPresenter.new([@status], current_account.id, favourites_map: { @status.id => false }, attributes_map: { @status.id => { favourites_count: count } })
render json: @status, serializer: REST::StatusSerializer, relationships: relationships
rescue Mastodon::NotPermittedError rescue Mastodon::NotPermittedError
not_found not_found
end end

View file

@ -24,15 +24,18 @@ class Api::V1::Statuses::ReblogsController < Api::BaseController
if @status if @status
authorize @status, :unreblog? authorize @status, :unreblog?
@reblog = @status.reblog
count = [@reblog.reblogs_count - 1, 0].max
@status.discard @status.discard
RemovalWorker.perform_async(@status.id) RemovalWorker.perform_async(@status.id)
@reblog = @status.reblog
else else
@reblog = Status.find(params[:status_id]) @reblog = Status.find(params[:status_id])
count = @reblog.reblogs_count
authorize @reblog, :show? authorize @reblog, :show?
end end
render json: @reblog, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_account.id, reblogs_map: { @reblog.id => false }) relationships = StatusRelationshipsPresenter.new([@status], current_account.id, reblogs_map: { @reblog.id => false }, attributes_map: { @reblog.id => { reblogs_count: count } })
render json: @reblog, serializer: REST::StatusSerializer, relationships: relationships
rescue Mastodon::NotPermittedError rescue Mastodon::NotPermittedError
not_found not_found
end end

View file

@ -249,6 +249,6 @@ module ApplicationHelper
private private
def storage_host_var def storage_host_var
ENV.fetch('S3_ALIAS_HOST', nil) || ENV.fetch('S3_CLOUDFRONT_HOST', nil) ENV.fetch('S3_ALIAS_HOST', nil) || ENV.fetch('S3_CLOUDFRONT_HOST', nil) || ENV.fetch('AZURE_ALIAS_HOST', nil)
end end
end end

View file

@ -65,33 +65,6 @@ module StatusesHelper
embedded_view? ? '_blank' : nil embedded_view? ? '_blank' : nil
end end
def style_classes(status, is_predecessor, is_successor, include_threads)
classes = ['entry']
classes << 'entry-predecessor' if is_predecessor
classes << 'entry-reblog' if status.reblog?
classes << 'entry-successor' if is_successor
classes << 'entry-center' if include_threads
classes.join(' ')
end
def microformats_classes(status, is_direct_parent, is_direct_child)
classes = []
classes << 'p-in-reply-to' if is_direct_parent
classes << 'p-repost-of' if status.reblog? && is_direct_parent
classes << 'p-comment' if is_direct_child
classes.join(' ')
end
def microformats_h_class(status, is_predecessor, is_successor, include_threads)
if is_predecessor || status.reblog? || is_successor
'h-cite'
elsif include_threads
''
else
'h-entry'
end
end
def fa_visibility_icon(status) def fa_visibility_icon(status)
case status.visibility case status.visibility
when 'public' when 'public'

View file

@ -190,6 +190,7 @@ class SwitchingColumnsArea extends PureComponent {
{singleColumn ? <Redirect from='/deck' to='/home' exact /> : null} {singleColumn ? <Redirect from='/deck' to='/home' exact /> : null}
{singleColumn && pathName.startsWith('/deck/') ? <Redirect from={pathName} to={pathName.slice(5)} /> : null} {singleColumn && pathName.startsWith('/deck/') ? <Redirect from={pathName} to={pathName.slice(5)} /> : null}
{!singleColumn && pathName === '/getting-started' ? <Redirect from='/getting-started' to='/deck/getting-started' exact /> : null}
<WrappedRoute path='/getting-started' component={GettingStarted} content={children} /> <WrappedRoute path='/getting-started' component={GettingStarted} content={children} />
<WrappedRoute path='/keyboard-shortcuts' component={KeyboardShortcuts} content={children} /> <WrappedRoute path='/keyboard-shortcuts' component={KeyboardShortcuts} content={children} />

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Схаваць апавяшчэнні ад гэтага карыстальніка?", "mute_modal.hide_notifications": "Схаваць апавяшчэнні ад гэтага карыстальніка?",
"mute_modal.indefinite": "Бестэрмінова", "mute_modal.indefinite": "Бестэрмінова",
"navigation_bar.about": "Пра нас", "navigation_bar.about": "Пра нас",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Заблакаваныя карыстальнікі", "navigation_bar.blocks": "Заблакаваныя карыстальнікі",
"navigation_bar.bookmarks": "Закладкі", "navigation_bar.bookmarks": "Закладкі",
"navigation_bar.community_timeline": "Лакальная стужка", "navigation_bar.community_timeline": "Лакальная стужка",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Скривате ли известията от потребителя?", "mute_modal.hide_notifications": "Скривате ли известията от потребителя?",
"mute_modal.indefinite": "Неопределено", "mute_modal.indefinite": "Неопределено",
"navigation_bar.about": "Относно", "navigation_bar.about": "Относно",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.blocks": "Блокирани потребители", "navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки", "navigation_bar.bookmarks": "Отметки",
"navigation_bar.community_timeline": "Локална часова ос", "navigation_bar.community_timeline": "Локална часова ос",

View file

@ -17,6 +17,7 @@
"account.badges.group": "দল", "account.badges.group": "দল",
"account.block": "@{name} কে ব্লক করো", "account.block": "@{name} কে ব্লক করো",
"account.block_domain": "{domain} থেকে সব লুকাও", "account.block_domain": "{domain} থেকে সব লুকাও",
"account.block_short": "অবরোধ",
"account.blocked": "অবরুদ্ধ", "account.blocked": "অবরুদ্ধ",
"account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন", "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন",
"account.cancel_follow_request": "অনুসরণ অনুরোধ প্রত্যাহার করুন", "account.cancel_follow_request": "অনুসরণ অনুরোধ প্রত্যাহার করুন",
@ -48,7 +49,10 @@
"account.mention": "@{name} কে উল্লেখ করুন", "account.mention": "@{name} কে উল্লেখ করুন",
"account.moved_to": "{name} নির্দেশ করেছে যে তাদের নতুন অ্যাকাউন্ট এখন হলো:", "account.moved_to": "{name} নির্দেশ করেছে যে তাদের নতুন অ্যাকাউন্ট এখন হলো:",
"account.mute": "@{name} কে নিঃশব্দ করুন", "account.mute": "@{name} কে নিঃশব্দ করুন",
"account.mute_notifications_short": "বিজ্ঞপ্তি নিংশব্দ",
"account.mute_short": "নিঃশব্দ",
"account.muted": "নিঃশব্দ", "account.muted": "নিঃশব্দ",
"account.no_bio": "কোনো বর্ণনা দেওয়া হয়নি।",
"account.open_original_page": "মূল পৃষ্ঠা খুলুন", "account.open_original_page": "মূল পৃষ্ঠা খুলুন",
"account.posts": "টুট", "account.posts": "টুট",
"account.posts_with_replies": "টুট এবং মতামত", "account.posts_with_replies": "টুট এবং মতামত",
@ -64,6 +68,7 @@
"account.unendorse": "আপনার নিজের পাতায় এটা দেখবেন না", "account.unendorse": "আপনার নিজের পাতায় এটা দেখবেন না",
"account.unfollow": "অনুসরণ করো না", "account.unfollow": "অনুসরণ করো না",
"account.unmute": "@{name} র কার্যকলাপ আবার দেখুন", "account.unmute": "@{name} র কার্যকলাপ আবার দেখুন",
"account.unmute_notifications_short": "বিজ্ঞপ্তি শব্দ চালু করো",
"account.unmute_short": "আনমিউট করুন", "account.unmute_short": "আনমিউট করুন",
"account_note.placeholder": "নোট যোগ করতে ক্লিক করুন", "account_note.placeholder": "নোট যোগ করতে ক্লিক করুন",
"admin.dashboard.daily_retention": "সাইন আপের পর দিনে ব্যবহারকারীর ধরে রাখার হার", "admin.dashboard.daily_retention": "সাইন আপের পর দিনে ব্যবহারকারীর ধরে রাখার হার",
@ -353,6 +358,7 @@
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile", "onboarding.steps.share_profile.title": "Share your profile",
"onboarding.tips.accounts_from_other_servers": "<strong>তুমি কি জানতে?</strong> যেহেতু মাস্টোডন বিকেন্দ্রীভূত, কিছু অ্যাকাউন্ট তোমার নিজের ছাড়া অন্য কোনো সার্ভারে থাকতে পারে। অথচ তুমি তাদের সাথে কোনো সমস্যা ছাড়াই কথা বলতে পারছো! তাদের সার্ভার তাদের ব্যবহারকারী নামের দ্বিতীয় অর্ধাংশ!",
"poll.closed": "বন্ধ", "poll.closed": "বন্ধ",
"poll.refresh": "বদলেছে কিনা দেখতে", "poll.refresh": "বদলেছে কিনা দেখতে",
"poll.total_people": "{count, plural, one {# ব্যক্তি} other {# ব্যক্তি}}", "poll.total_people": "{count, plural, one {# ব্যক্তি} other {# ব্যক্তি}}",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Cuddio hysbysiadau gan y defnyddiwr hwn?", "mute_modal.hide_notifications": "Cuddio hysbysiadau gan y defnyddiwr hwn?",
"mute_modal.indefinite": "Parhaus", "mute_modal.indefinite": "Parhaus",
"navigation_bar.about": "Ynghylch", "navigation_bar.about": "Ynghylch",
"navigation_bar.advanced_interface": "Abrir coa interface web avanzada",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Llyfrnodau", "navigation_bar.bookmarks": "Llyfrnodau",
"navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.community_timeline": "Ffrwd leol",

View file

@ -17,6 +17,7 @@
"account.badges.group": "Gruppe", "account.badges.group": "Gruppe",
"account.block": "Blokér @{name}", "account.block": "Blokér @{name}",
"account.block_domain": "Blokér domænet {domain}", "account.block_domain": "Blokér domænet {domain}",
"account.block_short": "Bloker",
"account.blocked": "Blokeret", "account.blocked": "Blokeret",
"account.browse_more_on_origin_server": "Se mere på den oprindelige profil", "account.browse_more_on_origin_server": "Se mere på den oprindelige profil",
"account.cancel_follow_request": "Annullér anmodning om at følge", "account.cancel_follow_request": "Annullér anmodning om at følge",
@ -48,7 +49,10 @@
"account.mention": "Nævn @{name}", "account.mention": "Nævn @{name}",
"account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:", "account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:",
"account.mute": "Skjul @{name}", "account.mute": "Skjul @{name}",
"account.mute_notifications_short": "Slå lyden fra for notifikationer",
"account.mute_short": "Skjul (mute)",
"account.muted": "Skjult (muted)", "account.muted": "Skjult (muted)",
"account.no_bio": "Ingen beskrivelse til rådighed.",
"account.open_original_page": "Åbn oprindelig side", "account.open_original_page": "Åbn oprindelig side",
"account.posts": "Indlæg", "account.posts": "Indlæg",
"account.posts_with_replies": "Indlæg og svar", "account.posts_with_replies": "Indlæg og svar",
@ -64,6 +68,7 @@
"account.unendorse": "Fjern visning på din profil", "account.unendorse": "Fjern visning på din profil",
"account.unfollow": "Følg ikke længere", "account.unfollow": "Følg ikke længere",
"account.unmute": "Vis @{name} igen (unmute)", "account.unmute": "Vis @{name} igen (unmute)",
"account.unmute_notifications_short": "Slå lyden fra for notifikationer",
"account.unmute_short": "Vis igen (unmute)", "account.unmute_short": "Vis igen (unmute)",
"account_note.placeholder": "Klik for at tilføje notat", "account_note.placeholder": "Klik for at tilføje notat",
"admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding",
@ -71,6 +76,10 @@
"admin.dashboard.retention.average": "Gennemsnitlig", "admin.dashboard.retention.average": "Gennemsnitlig",
"admin.dashboard.retention.cohort": "Tilmeldingsmåned", "admin.dashboard.retention.cohort": "Tilmeldingsmåned",
"admin.dashboard.retention.cohort_size": "Nye brugere", "admin.dashboard.retention.cohort_size": "Nye brugere",
"admin.impact_report.instance_accounts": "Konti profiler, som dette ville slette",
"admin.impact_report.instance_followers": "Følgere vores brugere ville miste",
"admin.impact_report.instance_follows": "Følgere deres brugere ville miste",
"admin.impact_report.title": "Resumé af virkninger",
"alert.rate_limited.message": "Forsøg igen efter {retry_time, time, medium}.", "alert.rate_limited.message": "Forsøg igen efter {retry_time, time, medium}.",
"alert.rate_limited.title": "Hastighedsbegrænset", "alert.rate_limited.title": "Hastighedsbegrænset",
"alert.unexpected.message": "En uventet fejl opstod.", "alert.unexpected.message": "En uventet fejl opstod.",
@ -266,7 +275,7 @@
"firehose.remote": "Andre servere", "firehose.remote": "Andre servere",
"follow_request.authorize": "Godkend", "follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis", "follow_request.reject": "Afvis",
"follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, antog {domain}-personalet, at du måske vil gennemgå dine anmodninger manuelt.", "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.",
"followed_tags": "Hashtag, som følges", "followed_tags": "Hashtag, som følges",
"footer.about": "Om", "footer.about": "Om",
"footer.directory": "Profiloversigt", "footer.directory": "Profiloversigt",
@ -289,9 +298,13 @@
"hashtag.column_settings.tag_toggle": "Inkludér ekstra tags for denne kolonne", "hashtag.column_settings.tag_toggle": "Inkludér ekstra tags for denne kolonne",
"hashtag.follow": "Følg hashtag", "hashtag.follow": "Følg hashtag",
"hashtag.unfollow": "Stop med at følge hashtag", "hashtag.unfollow": "Stop med at følge hashtag",
"home.actions.go_to_explore": "Se, hvad som trender",
"home.actions.go_to_suggestions": "Find nogle personer at følge",
"home.column_settings.basic": "Grundlæggende", "home.column_settings.basic": "Grundlæggende",
"home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_reblogs": "Vis boosts",
"home.column_settings.show_replies": "Vis svar", "home.column_settings.show_replies": "Vis svar",
"home.explore_prompt.body": "Dit hjem feed vil have en blanding af indlæg fra de hashtags du har valgt at følge, de personer, du har valgt at følge, og de indlæg, de booste. Det ser temmelig stille lige nu, så hvordan vi:",
"home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.",
"home.hide_announcements": "Skjul bekendtgørelser", "home.hide_announcements": "Skjul bekendtgørelser",
"home.show_announcements": "Vis bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser",
"interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.", "interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.",
@ -355,6 +368,7 @@
"lists.delete": "Slet liste", "lists.delete": "Slet liste",
"lists.edit": "Redigér liste", "lists.edit": "Redigér liste",
"lists.edit.submit": "Skift titel", "lists.edit.submit": "Skift titel",
"lists.exclusive": "Skjul disse indlæg hjemmefra",
"lists.new.create": "Tilføj liste", "lists.new.create": "Tilføj liste",
"lists.new.title_placeholder": "Ny listetitel", "lists.new.title_placeholder": "Ny listetitel",
"lists.replies_policy.followed": "Enhver bruger, der følges", "lists.replies_policy.followed": "Enhver bruger, der følges",
@ -371,6 +385,7 @@
"mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
"mute_modal.indefinite": "Tidsubegrænset", "mute_modal.indefinite": "Tidsubegrænset",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.advanced_interface": "Åbn i avanceret webgrænseflade",
"navigation_bar.blocks": "Blokerede brugere", "navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker", "navigation_bar.bookmarks": "Bogmærker",
"navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.community_timeline": "Lokal tidslinje",
@ -528,6 +543,8 @@
"report.placeholder": "Yderligere kommentarer", "report.placeholder": "Yderligere kommentarer",
"report.reasons.dislike": "Jeg bryder mig ikke om det", "report.reasons.dislike": "Jeg bryder mig ikke om det",
"report.reasons.dislike_description": "Det er ikke noget, man ønsker at se", "report.reasons.dislike_description": "Det er ikke noget, man ønsker at se",
"report.reasons.legal": "Det er ulovligt",
"report.reasons.legal_description": "Du mener, at det er i strid med lovgivningen i dit eller serverens land",
"report.reasons.other": "Det er noget andet", "report.reasons.other": "Det er noget andet",
"report.reasons.other_description": "Problemet passer ikke ind i andre kategorier", "report.reasons.other_description": "Problemet passer ikke ind i andre kategorier",
"report.reasons.spam": "Det er spam", "report.reasons.spam": "Det er spam",
@ -547,6 +564,7 @@
"report.unfollow": "Følg ikke længere @{name}", "report.unfollow": "Følg ikke længere @{name}",
"report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.", "report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
"report_notification.categories.legal": "Juridisk",
"report_notification.categories.other": "Andre", "report_notification.categories.other": "Andre",
"report_notification.categories.spam": "Spam", "report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Regelovertrædelse", "report_notification.categories.violation": "Regelovertrædelse",

View file

@ -135,6 +135,8 @@
"community.column_settings.remote_only": "Remote only", "community.column_settings.remote_only": "Remote only",
"compose.language.change": "Change language", "compose.language.change": "Change language",
"compose.language.search": "Search languages...", "compose.language.search": "Search languages...",
"compose.published.body": "Příspěvek zveřejněn.",
"compose.published.open": "Open",
"compose_form.direct_message_warning_learn_more": "Learn more", "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 sensitive information over Mastodon.", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is not public. Only public posts can be searched by hashtag.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is not public. Only public posts can be searched by hashtag.",
@ -383,6 +385,7 @@
"mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite", "mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Blocked users", "navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks", "navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline", "navigation_bar.community_timeline": "Local timeline",
@ -470,7 +473,7 @@
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "You've made it!", "onboarding.start.title": "You've made it!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.body": "Following interesting people is what Mastodon is all about.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the World.", "onboarding.steps.publish_status.body": "Say hello to the World.",
"onboarding.steps.publish_status.title": "Make your first post", "onboarding.steps.publish_status.title": "Make your first post",
@ -616,6 +619,8 @@
"status.history.created": "{name} created {date}", "status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}", "status.history.edited": "{name} edited {date}",
"status.load_more": "Load more", "status.load_more": "Load more",
"status.media.open": "Klikka fyri at lata upp",
"status.media.show": "Klik om te toanen",
"status.media_hidden": "Media hidden", "status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}", "status.mention": "Mention @{name}",
"status.more": "More", "status.more": "More",
@ -646,6 +651,7 @@
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}", "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
"status.translate": "Translate", "status.translate": "Translate",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "Translated from {lang} using {provider}",
"status.uncached_media_warning": "A vista previa non está dispoñíble",
"status.unmute_conversation": "Unmute conversation", "status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile", "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.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.",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?", "mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?",
"mute_modal.indefinite": "Indefinida", "mute_modal.indefinite": "Indefinida",
"navigation_bar.about": "Acerca de", "navigation_bar.about": "Acerca de",
"navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores", "navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Cronología local", "navigation_bar.community_timeline": "Cronología local",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?",
"mute_modal.indefinite": "Lõpmatu", "mute_modal.indefinite": "Lõpmatu",
"navigation_bar.about": "Teave", "navigation_bar.about": "Teave",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.blocks": "Blokeeritud kasutajad",
"navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.bookmarks": "Järjehoidjad",
"navigation_bar.community_timeline": "Kohalik ajajoon", "navigation_bar.community_timeline": "Kohalik ajajoon",

View file

@ -18,7 +18,7 @@
"account.block": "مسدود کردن @{name}", "account.block": "مسدود کردن @{name}",
"account.block_domain": "مسدود کردن دامنهٔ {domain}", "account.block_domain": "مسدود کردن دامنهٔ {domain}",
"account.block_short": "انسداد", "account.block_short": "انسداد",
"account.blocked": "مسدود", "account.blocked": "مسدود شده",
"account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی", "account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی",
"account.cancel_follow_request": "رد کردن درخواست پی‌گیری", "account.cancel_follow_request": "رد کردن درخواست پی‌گیری",
"account.direct": "خصوصی از @{name} نام ببرید", "account.direct": "خصوصی از @{name} نام ببرید",
@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟",
"mute_modal.indefinite": "نامعلوم", "mute_modal.indefinite": "نامعلوم",
"navigation_bar.about": "درباره", "navigation_bar.about": "درباره",
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
"navigation_bar.blocks": "کاربران مسدود شده", "navigation_bar.blocks": "کاربران مسدود شده",
"navigation_bar.bookmarks": "نشانک‌ها", "navigation_bar.bookmarks": "نشانک‌ها",
"navigation_bar.community_timeline": "خط زمانی محلّی", "navigation_bar.community_timeline": "خط زمانی محلّی",

View file

@ -204,6 +204,7 @@
"dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", "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_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ä aihetunnisteet saavat juuri nyt 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 viimeisimmät julkiset viestit sosiaalisen verkon ihmisiltä, joita {domain} käyttäjät seuraa.",
"embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
"embed.preview": "Se tulee näyttämään tältä:", "embed.preview": "Se tulee näyttämään tältä:",
"emoji_button.activity": "Aktiviteetit", "emoji_button.activity": "Aktiviteetit",
@ -270,6 +271,8 @@
"filter_modal.select_filter.title": "Suodata tämä viesti", "filter_modal.select_filter.title": "Suodata tämä viesti",
"filter_modal.title.status": "Suodata viesti", "filter_modal.title.status": "Suodata viesti",
"firehose.all": "Kaikki", "firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin",
"firehose.remote": "Muut palvelimet",
"follow_request.authorize": "Valtuuta", "follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää", "follow_request.reject": "Hylkää",
"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.", "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.",
@ -382,6 +385,7 @@
"mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
"mute_modal.indefinite": "Ikuisesti", "mute_modal.indefinite": "Ikuisesti",
"navigation_bar.about": "Tietoja", "navigation_bar.about": "Tietoja",
"navigation_bar.advanced_interface": "Avaa edistyneessä käyttöliittymässä",
"navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.bookmarks": "Kirjanmerkit",
"navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.community_timeline": "Paikallinen aikajana",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Fjal fráboðanir frá hesum brúkaranum?", "mute_modal.hide_notifications": "Fjal fráboðanir frá hesum brúkaranum?",
"mute_modal.indefinite": "Óásett tíðarskeið", "mute_modal.indefinite": "Óásett tíðarskeið",
"navigation_bar.about": "Um", "navigation_bar.about": "Um",
"navigation_bar.advanced_interface": "Lat upp í framkomnum vevmarkamóti",
"navigation_bar.blocks": "Bannaðir brúkarar", "navigation_bar.blocks": "Bannaðir brúkarar",
"navigation_bar.bookmarks": "Goymd", "navigation_bar.bookmarks": "Goymd",
"navigation_bar.community_timeline": "Lokal tíðarlinja", "navigation_bar.community_timeline": "Lokal tíðarlinja",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Masquer les notifications de ce compte?", "mute_modal.hide_notifications": "Masquer les notifications de ce compte?",
"mute_modal.indefinite": "Indéfinie", "mute_modal.indefinite": "Indéfinie",
"navigation_bar.about": "À propos", "navigation_bar.about": "À propos",
"navigation_bar.advanced_interface": "Ouvrir dans linterface avancée",
"navigation_bar.blocks": "Comptes bloqués", "navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Signets", "navigation_bar.bookmarks": "Signets",
"navigation_bar.community_timeline": "Fil local", "navigation_bar.community_timeline": "Fil local",

View file

@ -135,6 +135,8 @@
"community.column_settings.remote_only": "Feadhainn chèin a-mhàin", "community.column_settings.remote_only": "Feadhainn chèin a-mhàin",
"compose.language.change": "Atharraich an cànan", "compose.language.change": "Atharraich an cànan",
"compose.language.search": "Lorg cànan…", "compose.language.search": "Lorg cànan…",
"compose.published.body": "Postimi u botua.",
"compose.published.open": "Fosgail",
"compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh", "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.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 o nach eil e poblach. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", "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.",
@ -383,6 +385,7 @@
"mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?",
"mute_modal.indefinite": "Gun chrìoch", "mute_modal.indefinite": "Gun chrìoch",
"navigation_bar.about": "Mu dhèidhinn", "navigation_bar.about": "Mu dhèidhinn",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.blocks": "Cleachdaichean bacte",
"navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.bookmarks": "Comharran-lìn",
"navigation_bar.community_timeline": "Loidhne-ama ionadail", "navigation_bar.community_timeline": "Loidhne-ama ionadail",
@ -616,6 +619,8 @@
"status.history.created": "Chruthaich {name} {date} e", "status.history.created": "Chruthaich {name} {date} e",
"status.history.edited": "Dheasaich {name} {date} e", "status.history.edited": "Dheasaich {name} {date} e",
"status.load_more": "Luchdaich barrachd dheth", "status.load_more": "Luchdaich barrachd dheth",
"status.media.open": "Klikoni për hapje",
"status.media.show": "Klikoni për shfaqje",
"status.media_hidden": "Meadhan falaichte", "status.media_hidden": "Meadhan falaichte",
"status.mention": "Thoir iomradh air @{name}", "status.mention": "Thoir iomradh air @{name}",
"status.more": "Barrachd", "status.more": "Barrachd",
@ -646,6 +651,7 @@
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "Eadar-theangaich", "status.translate": "Eadar-theangaich",
"status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}", "status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}",
"status.uncached_media_warning": "Ska paraparje",
"status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unmute_conversation": "Dì-mhùch an còmhradh",
"status.unpin": "Dì-phrìnich on phròifil", "status.unpin": "Dì-phrìnich on phròifil",
"subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b e dè an cànan.", "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b e dè an cànan.",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Agochar notificacións desta persoa?", "mute_modal.hide_notifications": "Agochar notificacións desta persoa?",
"mute_modal.indefinite": "Indefinida", "mute_modal.indefinite": "Indefinida",
"navigation_bar.about": "Acerca de", "navigation_bar.about": "Acerca de",
"navigation_bar.advanced_interface": "Abrir coa interface web avanzada",
"navigation_bar.blocks": "Usuarias bloqueadas", "navigation_bar.blocks": "Usuarias bloqueadas",
"navigation_bar.bookmarks": "Marcadores", "navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Cronoloxía local", "navigation_bar.community_timeline": "Cronoloxía local",

View file

@ -94,7 +94,7 @@
"boost_modal.combo": "次からは{combo}を押せばスキップできます", "boost_modal.combo": "次からは{combo}を押せばスキップできます",
"bundle_column_error.copy_stacktrace": "エラーレポートをコピー", "bundle_column_error.copy_stacktrace": "エラーレポートをコピー",
"bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。", "bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。",
"bundle_column_error.error.title": "あらら……", "bundle_column_error.error.title": "おっと!",
"bundle_column_error.network.body": "このページを読み込もうとしたときにエラーが発生しました。インターネット接続またはこのサーバーの一時的な問題が発生した可能性があります。", "bundle_column_error.network.body": "このページを読み込もうとしたときにエラーが発生しました。インターネット接続またはこのサーバーの一時的な問題が発生した可能性があります。",
"bundle_column_error.network.title": "ネットワークエラー", "bundle_column_error.network.title": "ネットワークエラー",
"bundle_column_error.retry": "再試行", "bundle_column_error.retry": "再試行",
@ -210,9 +210,9 @@
"disabled_account_banner.text": "あなたのアカウント『{disabledAccount}』は現在無効になっています。", "disabled_account_banner.text": "あなたのアカウント『{disabledAccount}』は現在無効になっています。",
"dismissable_banner.community_timeline": "これらは{domain}がホストしている人たちの最新の公開投稿です。", "dismissable_banner.community_timeline": "これらは{domain}がホストしている人たちの最新の公開投稿です。",
"dismissable_banner.dismiss": "閉じる", "dismissable_banner.dismiss": "閉じる",
"dismissable_banner.explore_links": "これらのニュース記事は現在分散型ネットワークの他のサーバーの人たちに話されています。", "dismissable_banner.explore_links": "ネットワーク上で話題になっているニュースです。たくさんのユーザーにシェアされた記事ほど上位に表示されます。",
"dismissable_banner.explore_statuses": "分散型ネットワーク内の他のサーバーのこれらの投稿は現在このサーバー上で注目されています。", "dismissable_banner.explore_statuses": "ネットワーク上で注目を集めている投稿です。ブーストやお気に入り登録の多い投稿が上位に表示されます。",
"dismissable_banner.explore_tags": "これらのハッシュタグは現在分散型ネットワークの他のサーバーの人たちに話されています。", "dismissable_banner.explore_tags": "ネットワーク上でトレンドになっているハッシュタグです。たくさんのユーザーに使われたタグほど上位に表示されます。",
"dismissable_banner.public_timeline": "{domain} のユーザーがリモートフォローしているアカウントからの公開投稿のタイムラインです。", "dismissable_banner.public_timeline": "{domain} のユーザーがリモートフォローしているアカウントからの公開投稿のタイムラインです。",
"embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。", "embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。",
"embed.preview": "表示例:", "embed.preview": "表示例:",
@ -246,7 +246,7 @@
"empty_column.follow_requests": "まだフォローリクエストを受けていません。フォローリクエストを受けるとここに表示されます。", "empty_column.follow_requests": "まだフォローリクエストを受けていません。フォローリクエストを受けるとここに表示されます。",
"empty_column.followed_tags": "まだハッシュタグをフォローしていません。フォローするとここに表示されます。", "empty_column.followed_tags": "まだハッシュタグをフォローしていません。フォローするとここに表示されます。",
"empty_column.hashtag": "このハッシュタグはまだ使われていません。", "empty_column.hashtag": "このハッシュタグはまだ使われていません。",
"empty_column.home": "ホームタイムラインはまだ空っぽです。誰かフォローして埋めてみましょう。 {suggestions}", "empty_column.home": "ホームタイムラインはまだ空っぽです。だれかをフォローして埋めてみましょう。",
"empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しい投稿をするとここに表示されます。", "empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しい投稿をするとここに表示されます。",
"empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。", "empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。",
"empty_column.mutes": "まだ誰もミュートしていません。", "empty_column.mutes": "まだ誰もミュートしていません。",
@ -485,18 +485,18 @@
"onboarding.actions.go_to_local_timeline": "ローカルの投稿を見る", "onboarding.actions.go_to_local_timeline": "ローカルの投稿を見る",
"onboarding.compose.template": "#Mastodon はじめました", "onboarding.compose.template": "#Mastodon はじめました",
"onboarding.follows.empty": "おすすめに表示できるアカウントはまだありません。検索や「見つける」を活用して、ほかのアカウントを探してみましょう。", "onboarding.follows.empty": "おすすめに表示できるアカウントはまだありません。検索や「見つける」を活用して、ほかのアカウントを探してみましょう。",
"onboarding.follows.lead": "自分の手でタイムラインを作ってみましょう。フォローを増やせば、タイムラインはより賑やかでおもしろいものになります。最初のフォローの参考になりそうなアカウントをいくつか表示しています。気になったものがあれば、ここからフォローしてみましょう。フォローはいつでも解除して大丈夫です。", "onboarding.follows.lead": "ホームタイムラインは Mastodon の軸足となる場所です。たくさんのユーザーをフォローすることで、ホームタイムラインはよりにぎやかでおもしろいものになります。手はじめに、おすすめのアカウントから何人かフォローしてみましょう:",
"onboarding.follows.title": "おすすめのアカウント", "onboarding.follows.title": "ホームタイムラインを埋める",
"onboarding.share.lead": "新しい Mastodon アカウントをみんなに紹介しましょう。", "onboarding.share.lead": "新しい Mastodon アカウントをみんなに紹介しましょう。",
"onboarding.share.message": "「{username}」で #Mastodon はじめました! {url}", "onboarding.share.message": "「{username}」で #Mastodon はじめました! {url}",
"onboarding.share.next_steps": "次のステップに進む:", "onboarding.share.next_steps": "次のステップに進む:",
"onboarding.share.title": "プロフィールをシェアする", "onboarding.share.title": "プロフィールをシェアする",
"onboarding.start.lead": "Mastodon アカウントの準備ができました。次のステップに進みましょう:", "onboarding.start.lead": "Mastodon へようこそ。Mastodon は非中央集権型SNSのひとつで、ユーザーそれぞれの考えかたを尊重するプラットフォームです。ユーザーはどんな「好き」も自由に追いかけることができます。次のステップに進んで、新天地でのつながりをみつけましょう:",
"onboarding.start.skip": "下のどれかをクリックしてチュートリアルを終了", "onboarding.start.skip": "下のどれかをクリックしてチュートリアルを終了",
"onboarding.start.title": "はじめに", "onboarding.start.title": "はじめに",
"onboarding.steps.follow_people.body": "タイムラインを充実させましょう。", "onboarding.steps.follow_people.body": "ユーザーをフォローしてみましょう。これが Mastodon を楽しむ基本です。",
"onboarding.steps.follow_people.title": "最初の{count, plural, other {#人}}をフォローする", "onboarding.steps.follow_people.title": "ホームタイムラインを埋める",
"onboarding.steps.publish_status.body": "試しに何か書いてみましょう。", "onboarding.steps.publish_status.body": "試しになにか書いてみましょう。写真、ビデオ、アンケートなど、なんでも大丈夫です {emoji}",
"onboarding.steps.publish_status.title": "はじめての投稿", "onboarding.steps.publish_status.title": "はじめての投稿",
"onboarding.steps.setup_profile.body": "ほかのユーザーが親しみやすいように、プロフィールを整えましょう。", "onboarding.steps.setup_profile.body": "ほかのユーザーが親しみやすいように、プロフィールを整えましょう。",
"onboarding.steps.setup_profile.title": "プロフィールを完成させる", "onboarding.steps.setup_profile.title": "プロフィールを完成させる",

View file

@ -373,7 +373,7 @@
"lists.new.title_placeholder": "새 리스트의 이름", "lists.new.title_placeholder": "새 리스트의 이름",
"lists.replies_policy.followed": "팔로우 한 사용자 누구나", "lists.replies_policy.followed": "팔로우 한 사용자 누구나",
"lists.replies_policy.list": "리스트의 구성원", "lists.replies_policy.list": "리스트의 구성원",
"lists.replies_policy.none": "선택 안함", "lists.replies_policy.none": "모두 제외",
"lists.replies_policy.title": "답글 표시:", "lists.replies_policy.title": "답글 표시:",
"lists.search": "팔로우 중인 사람들 중에서 찾기", "lists.search": "팔로우 중인 사람들 중에서 찾기",
"lists.subheading": "리스트", "lists.subheading": "리스트",
@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?", "mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?",
"mute_modal.indefinite": "무기한", "mute_modal.indefinite": "무기한",
"navigation_bar.about": "정보", "navigation_bar.about": "정보",
"navigation_bar.advanced_interface": "고급 웹 인터페이스에서 열기",
"navigation_bar.blocks": "차단한 사용자", "navigation_bar.blocks": "차단한 사용자",
"navigation_bar.bookmarks": "북마크", "navigation_bar.bookmarks": "북마크",
"navigation_bar.community_timeline": "로컬 타임라인", "navigation_bar.community_timeline": "로컬 타임라인",
@ -392,7 +393,7 @@
"navigation_bar.direct": "개인적인 멘션", "navigation_bar.direct": "개인적인 멘션",
"navigation_bar.discover": "발견하기", "navigation_bar.discover": "발견하기",
"navigation_bar.domain_blocks": "차단한 도메인", "navigation_bar.domain_blocks": "차단한 도메인",
"navigation_bar.edit_profile": "프로필 편집", "navigation_bar.edit_profile": "프로필 수정",
"navigation_bar.explore": "둘러보기", "navigation_bar.explore": "둘러보기",
"navigation_bar.favourites": "좋아요", "navigation_bar.favourites": "좋아요",
"navigation_bar.filters": "뮤트한 단어", "navigation_bar.filters": "뮤트한 단어",
@ -608,7 +609,7 @@
"status.direct": "@{name} 님에게 개인적으로 멘션", "status.direct": "@{name} 님에게 개인적으로 멘션",
"status.direct_indicator": "개인적인 멘션", "status.direct_indicator": "개인적인 멘션",
"status.edit": "수정", "status.edit": "수정",
"status.edited": "{date}에 편집됨", "status.edited": "{date}에 수정함",
"status.edited_x_times": "{count}번 수정됨", "status.edited_x_times": "{count}번 수정됨",
"status.embed": "공유하기", "status.embed": "공유하기",
"status.favourite": "좋아요", "status.favourite": "좋아요",
@ -682,7 +683,7 @@
"upload_form.audio_description": "청각 장애인을 위한 설명", "upload_form.audio_description": "청각 장애인을 위한 설명",
"upload_form.description": "시각장애인을 위한 설명", "upload_form.description": "시각장애인을 위한 설명",
"upload_form.description_missing": "설명이 추가되지 않음", "upload_form.description_missing": "설명이 추가되지 않음",
"upload_form.edit": "편집", "upload_form.edit": "수정",
"upload_form.thumbnail": "썸네일 변경", "upload_form.thumbnail": "썸네일 변경",
"upload_form.undo": "삭제", "upload_form.undo": "삭제",
"upload_form.video_description": "청각, 시각 장애인을 위한 설명", "upload_form.video_description": "청각, 시각 장애인을 위한 설명",
@ -692,7 +693,7 @@
"upload_modal.choose_image": "이미지 선택", "upload_modal.choose_image": "이미지 선택",
"upload_modal.description_placeholder": "다람쥐 헌 쳇바퀴 타고파", "upload_modal.description_placeholder": "다람쥐 헌 쳇바퀴 타고파",
"upload_modal.detect_text": "이미지에서 텍스트 추출", "upload_modal.detect_text": "이미지에서 텍스트 추출",
"upload_modal.edit_media": "미디어 편집", "upload_modal.edit_media": "미디어 수정",
"upload_modal.hint": "미리보기를 클릭하거나 드래그 해서 포컬 포인트를 맞추세요. 이 점은 썸네일에 항상 보여질 부분을 나타냅니다.", "upload_modal.hint": "미리보기를 클릭하거나 드래그 해서 포컬 포인트를 맞추세요. 이 점은 썸네일에 항상 보여질 부분을 나타냅니다.",
"upload_modal.preparing_ocr": "OCR 준비 중…", "upload_modal.preparing_ocr": "OCR 준비 중…",
"upload_modal.preview_label": "미리보기 ({ratio})", "upload_modal.preview_label": "미리보기 ({ratio})",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "ဤအကောင့်မှသတိပေးချက်များကိုပိတ်မလား?", "mute_modal.hide_notifications": "ဤအကောင့်မှသတိပေးချက်များကိုပိတ်မလား?",
"mute_modal.indefinite": "ရေတွက်လို့မရပါ", "mute_modal.indefinite": "ရေတွက်လို့မရပါ",
"navigation_bar.about": "အကြောင်း", "navigation_bar.about": "အကြောင်း",
"navigation_bar.advanced_interface": "အဆင့်မြင့်ဝဘ်ပုံစံ ဖွင့်ပါ",
"navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ", "navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ",
"navigation_bar.bookmarks": "မှတ်ထားသည်များ", "navigation_bar.bookmarks": "မှတ်ထားသည်များ",
"navigation_bar.community_timeline": "ဒေသစံတော်ချိန်", "navigation_bar.community_timeline": "ဒေသစံတော်ချိန်",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?", "mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?",
"mute_modal.indefinite": "På ubestemt tid", "mute_modal.indefinite": "På ubestemt tid",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet",
"navigation_bar.blocks": "Blokkerte brukarar", "navigation_bar.blocks": "Blokkerte brukarar",
"navigation_bar.bookmarks": "Bokmerke", "navigation_bar.bookmarks": "Bokmerke",
"navigation_bar.community_timeline": "Lokal tidsline", "navigation_bar.community_timeline": "Lokal tidsline",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?", "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?",
"mute_modal.indefinite": "På ubestemt tid", "mute_modal.indefinite": "På ubestemt tid",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet",
"navigation_bar.blocks": "Blokkerte brukere", "navigation_bar.blocks": "Blokkerte brukere",
"navigation_bar.bookmarks": "Bokmerker", "navigation_bar.bookmarks": "Bokmerker",
"navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.community_timeline": "Lokal tidslinje",

View file

@ -76,6 +76,9 @@
"admin.dashboard.retention.average": "Średnia", "admin.dashboard.retention.average": "Średnia",
"admin.dashboard.retention.cohort": "Miesiąc rejestracji", "admin.dashboard.retention.cohort": "Miesiąc rejestracji",
"admin.dashboard.retention.cohort_size": "Nowi użytkownicy", "admin.dashboard.retention.cohort_size": "Nowi użytkownicy",
"admin.impact_report.instance_accounts": "Profile kont, które usuną",
"admin.impact_report.instance_followers": "Obserwujący stracili nasi użytkownicy",
"admin.impact_report.instance_follows": "Obserwujący ich użytkownicy stracą",
"admin.impact_report.title": "Podsumowanie wpływu", "admin.impact_report.title": "Podsumowanie wpływu",
"alert.rate_limited.message": "Spróbuj ponownie po {retry_time, time, medium}.", "alert.rate_limited.message": "Spróbuj ponownie po {retry_time, time, medium}.",
"alert.rate_limited.title": "Ograniczony czasowo", "alert.rate_limited.title": "Ograniczony czasowo",
@ -301,6 +304,7 @@
"home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.column_settings.show_replies": "Pokazuj odpowiedzi",
"home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów, które wybrano do obserwacji, osoby, które wybrano obserwować i wpisy, które one podbijają. Obecnie jest tu całkiem cicho, więc co myślisz o:", "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów, które wybrano do obserwacji, osoby, które wybrano obserwować i wpisy, które one podbijają. Obecnie jest tu całkiem cicho, więc co myślisz o:",
"home.explore_prompt.title": "To twoja baza domowa w Mastodon.",
"home.hide_announcements": "Ukryj ogłoszenia", "home.hide_announcements": "Ukryj ogłoszenia",
"home.show_announcements": "Pokaż ogłoszenia", "home.show_announcements": "Pokaż ogłoszenia",
"interaction_modal.description.favourite": "Mając konto na Mastodonie, możesz dodawać wpisy do ulubionych by dać znać jego autorowi, że podoba Ci się ten wpis i zachować go na później.", "interaction_modal.description.favourite": "Mając konto na Mastodonie, możesz dodawać wpisy do ulubionych by dać znać jego autorowi, że podoba Ci się ten wpis i zachować go na później.",
@ -381,6 +385,7 @@
"mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?",
"mute_modal.indefinite": "Nieokreślony", "mute_modal.indefinite": "Nieokreślony",
"navigation_bar.about": "O serwerze", "navigation_bar.about": "O serwerze",
"navigation_bar.advanced_interface": "Otwórz w zaawansowanym interfejsie użytkownika",
"navigation_bar.blocks": "Zablokowani użytkownicy", "navigation_bar.blocks": "Zablokowani użytkownicy",
"navigation_bar.bookmarks": "Zakładki", "navigation_bar.bookmarks": "Zakładki",
"navigation_bar.community_timeline": "Lokalna oś czasu", "navigation_bar.community_timeline": "Lokalna oś czasu",

View file

@ -17,6 +17,7 @@
"account.badges.group": "Grupo", "account.badges.group": "Grupo",
"account.block": "Bloquear @{name}", "account.block": "Bloquear @{name}",
"account.block_domain": "Esconder tudo do domínio {domain}", "account.block_domain": "Esconder tudo do domínio {domain}",
"account.block_short": "Bloquear",
"account.blocked": "Bloqueado(a)", "account.blocked": "Bloqueado(a)",
"account.browse_more_on_origin_server": "Encontrar mais no perfil original", "account.browse_more_on_origin_server": "Encontrar mais no perfil original",
"account.cancel_follow_request": "Retirar pedido para seguir", "account.cancel_follow_request": "Retirar pedido para seguir",
@ -48,7 +49,10 @@
"account.mention": "Mencionar @{name}", "account.mention": "Mencionar @{name}",
"account.moved_to": "{name} indicou que a sua nova conta é agora:", "account.moved_to": "{name} indicou que a sua nova conta é agora:",
"account.mute": "Silenciar @{name}", "account.mute": "Silenciar @{name}",
"account.mute_notifications_short": "Silenciar notificações",
"account.mute_short": "Silenciar",
"account.muted": "Silenciada", "account.muted": "Silenciada",
"account.no_bio": "Nenhuma descrição fornecida.",
"account.open_original_page": "Abrir a página original", "account.open_original_page": "Abrir a página original",
"account.posts": "Publicações", "account.posts": "Publicações",
"account.posts_with_replies": "Publicações e respostas", "account.posts_with_replies": "Publicações e respostas",
@ -64,6 +68,7 @@
"account.unendorse": "Não destacar no perfil", "account.unendorse": "Não destacar no perfil",
"account.unfollow": "Deixar de seguir", "account.unfollow": "Deixar de seguir",
"account.unmute": "Deixar de silenciar @{name}", "account.unmute": "Deixar de silenciar @{name}",
"account.unmute_notifications_short": "Parar de silenciar notificações",
"account.unmute_short": "Deixar de silenciar", "account.unmute_short": "Deixar de silenciar",
"account_note.placeholder": "Clique para adicionar nota", "account_note.placeholder": "Clique para adicionar nota",
"admin.dashboard.daily_retention": "Taxa de retenção de utilizadores por dia após a inscrição", "admin.dashboard.daily_retention": "Taxa de retenção de utilizadores por dia após a inscrição",
@ -71,6 +76,10 @@
"admin.dashboard.retention.average": "Média", "admin.dashboard.retention.average": "Média",
"admin.dashboard.retention.cohort": "Mês de inscrição", "admin.dashboard.retention.cohort": "Mês de inscrição",
"admin.dashboard.retention.cohort_size": "Novos utilizadores", "admin.dashboard.retention.cohort_size": "Novos utilizadores",
"admin.impact_report.instance_accounts": "Perfis de contas que isto eliminaria",
"admin.impact_report.instance_followers": "Seguidores que os nossos utilizadores perderiam",
"admin.impact_report.instance_follows": "Seguidores que os utilizadores deles perderiam",
"admin.impact_report.title": "Resumo do impacto",
"alert.rate_limited.message": "Volte a tentar depois das {retry_time, time, medium}.", "alert.rate_limited.message": "Volte a tentar depois das {retry_time, time, medium}.",
"alert.rate_limited.title": "Limite de tentativas", "alert.rate_limited.title": "Limite de tentativas",
"alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.message": "Ocorreu um erro inesperado.",
@ -105,6 +114,7 @@
"column.directory": "Explorar perfis", "column.directory": "Explorar perfis",
"column.domain_blocks": "Domínios bloqueados", "column.domain_blocks": "Domínios bloqueados",
"column.favourites": "Preferidos", "column.favourites": "Preferidos",
"column.firehose": "Cronologias",
"column.follow_requests": "Seguidores pendentes", "column.follow_requests": "Seguidores pendentes",
"column.home": "Início", "column.home": "Início",
"column.lists": "Listas", "column.lists": "Listas",
@ -125,6 +135,8 @@
"community.column_settings.remote_only": "Apenas remoto", "community.column_settings.remote_only": "Apenas remoto",
"compose.language.change": "Alterar língua", "compose.language.change": "Alterar língua",
"compose.language.search": "Pesquisar línguas...", "compose.language.search": "Pesquisar línguas...",
"compose.published.body": "Publicado.",
"compose.published.open": "Abrir",
"compose_form.direct_message_warning_learn_more": "Conhecer mais", "compose_form.direct_message_warning_learn_more": "Conhecer mais",
"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.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.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.",
@ -192,6 +204,7 @@
"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_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_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 #etiquetas estão presentemente a ganhar atenção entre as pessoas neste e noutros 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 na rede social que as pessoas em {domain} seguem.",
"embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.", "embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.",
"embed.preview": "Podes ver aqui como irá ficar:", "embed.preview": "Podes ver aqui como irá ficar:",
"emoji_button.activity": "Actividade", "emoji_button.activity": "Actividade",
@ -257,6 +270,9 @@
"filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova", "filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova",
"filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.select_filter.title": "Filtrar esta publicação",
"filter_modal.title.status": "Filtrar uma publicação", "filter_modal.title.status": "Filtrar uma publicação",
"firehose.all": "Todas",
"firehose.local": "Este servidor",
"firehose.remote": "Outros servidores",
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar", "follow_request.reject": "Rejeitar",
"follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.", "follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.",
@ -282,9 +298,13 @@
"hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna",
"hashtag.follow": "Seguir #etiqueta", "hashtag.follow": "Seguir #etiqueta",
"hashtag.unfollow": "Deixar de seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta",
"home.actions.go_to_explore": "Veja as tendências atuais",
"home.actions.go_to_suggestions": "Encontrar pessoas para seguir",
"home.column_settings.basic": "Básico", "home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostas", "home.column_settings.show_replies": "Mostrar respostas",
"home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante quieto por agora, então que tal:",
"home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.",
"home.hide_announcements": "Ocultar comunicações", "home.hide_announcements": "Ocultar comunicações",
"home.show_announcements": "Exibir 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.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.",
@ -348,6 +368,7 @@
"lists.delete": "Eliminar lista", "lists.delete": "Eliminar lista",
"lists.edit": "Editar lista", "lists.edit": "Editar lista",
"lists.edit.submit": "Mudar o título", "lists.edit.submit": "Mudar o título",
"lists.exclusive": "Ocultar essas publicações da página inicial",
"lists.new.create": "Adicionar lista", "lists.new.create": "Adicionar lista",
"lists.new.title_placeholder": "Título da nova lista", "lists.new.title_placeholder": "Título da nova lista",
"lists.replies_policy.followed": "Qualquer utilizador seguido", "lists.replies_policy.followed": "Qualquer utilizador seguido",
@ -364,6 +385,7 @@
"mute_modal.hide_notifications": "Esconder notificações deste utilizador?", "mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
"mute_modal.indefinite": "Indefinidamente", "mute_modal.indefinite": "Indefinidamente",
"navigation_bar.about": "Sobre", "navigation_bar.about": "Sobre",
"navigation_bar.advanced_interface": "Abrir na interface web avançada",
"navigation_bar.blocks": "Utilizadores bloqueados", "navigation_bar.blocks": "Utilizadores bloqueados",
"navigation_bar.bookmarks": "Marcadores", "navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Cronologia local", "navigation_bar.community_timeline": "Cronologia local",
@ -468,6 +490,7 @@
"picture_in_picture.restore": "Colocá-lo de volta", "picture_in_picture.restore": "Colocá-lo de volta",
"poll.closed": "Fechado", "poll.closed": "Fechado",
"poll.refresh": "Recarregar", "poll.refresh": "Recarregar",
"poll.reveal": "Ver resultados",
"poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}", "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}", "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar", "poll.vote": "Votar",
@ -520,6 +543,8 @@
"report.placeholder": "Comentários adicionais", "report.placeholder": "Comentários adicionais",
"report.reasons.dislike": "Não gosto disto", "report.reasons.dislike": "Não gosto disto",
"report.reasons.dislike_description": "Não é algo que deseje ver", "report.reasons.dislike_description": "Não é algo que deseje ver",
"report.reasons.legal": "É ilegal",
"report.reasons.legal_description": "Acredita que isto viola a lei do seu país ou do país do seu servidor",
"report.reasons.other": "É outra coisa", "report.reasons.other": "É outra coisa",
"report.reasons.other_description": "O problema não se encaixa nas outras categorias", "report.reasons.other_description": "O problema não se encaixa nas outras categorias",
"report.reasons.spam": "É spam", "report.reasons.spam": "É spam",
@ -539,6 +564,7 @@
"report.unfollow": "Deixar de seguir @{name}", "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.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", "report_notification.attached_statuses": "{count, plural,one {{count} publicação} other {{count} publicações}} em anexo",
"report_notification.categories.legal": "Legal",
"report_notification.categories.other": "Outro", "report_notification.categories.other": "Outro",
"report_notification.categories.spam": "Spam", "report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Violação de regra", "report_notification.categories.violation": "Violação de regra",
@ -593,6 +619,8 @@
"status.history.created": "{name} criado em {date}", "status.history.created": "{name} criado em {date}",
"status.history.edited": "{name} editado em {date}", "status.history.edited": "{name} editado em {date}",
"status.load_more": "Carregar mais", "status.load_more": "Carregar mais",
"status.media.open": "Clique para abrir",
"status.media.show": "Clique para ver",
"status.media_hidden": "Media escondida", "status.media_hidden": "Media escondida",
"status.mention": "Mencionar @{name}", "status.mention": "Mencionar @{name}",
"status.more": "Mais", "status.more": "Mais",
@ -623,6 +651,7 @@
"status.title.with_attachments": "{user} publicou {attachmentCount, plural,one {um anexo} other {{attachmentCount} anexos}}", "status.title.with_attachments": "{user} publicou {attachmentCount, plural,one {um anexo} other {{attachmentCount} anexos}}",
"status.translate": "Traduzir", "status.translate": "Traduzir",
"status.translated_from_with": "Traduzido do {lang} usando {provider}", "status.translated_from_with": "Traduzido do {lang} usando {provider}",
"status.uncached_media_warning": "Pré-visualização não disponível",
"status.unmute_conversation": "Deixar de silenciar esta conversa", "status.unmute_conversation": "Deixar de silenciar esta conversa",
"status.unpin": "Desafixar do perfil", "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.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.",

View file

@ -78,6 +78,8 @@
"admin.dashboard.retention.cohort_size": "Новые пользователи", "admin.dashboard.retention.cohort_size": "Новые пользователи",
"admin.impact_report.instance_accounts": "Профили учетных записей, которые будут удалены", "admin.impact_report.instance_accounts": "Профили учетных записей, которые будут удалены",
"admin.impact_report.instance_followers": "Последователи, которых потеряют наши пользователи", "admin.impact_report.instance_followers": "Последователи, которых потеряют наши пользователи",
"admin.impact_report.instance_follows": "Последователи, которых потеряют наши пользователи",
"admin.impact_report.title": "Резюме воздействия",
"alert.rate_limited.message": "Пожалуйста, повторите после {retry_time, time, medium}.", "alert.rate_limited.message": "Пожалуйста, повторите после {retry_time, time, medium}.",
"alert.rate_limited.title": "Ограничение количества запросов", "alert.rate_limited.title": "Ограничение количества запросов",
"alert.unexpected.message": "Произошла непредвиденная ошибка.", "alert.unexpected.message": "Произошла непредвиденная ошибка.",
@ -112,6 +114,7 @@
"column.directory": "Просмотр профилей", "column.directory": "Просмотр профилей",
"column.domain_blocks": "Заблокированные домены", "column.domain_blocks": "Заблокированные домены",
"column.favourites": "Избранное", "column.favourites": "Избранное",
"column.firehose": "Живая лента",
"column.follow_requests": "Запросы на подписку", "column.follow_requests": "Запросы на подписку",
"column.home": "Главная", "column.home": "Главная",
"column.lists": "Списки", "column.lists": "Списки",
@ -132,6 +135,8 @@
"community.column_settings.remote_only": "Только удалённые", "community.column_settings.remote_only": "Только удалённые",
"compose.language.change": "Изменить язык", "compose.language.change": "Изменить язык",
"compose.language.search": "Поиск языков...", "compose.language.search": "Поиск языков...",
"compose.published.body": "Запись опубликована.",
"compose.published.open": "Открыть",
"compose_form.direct_message_warning_learn_more": "Подробнее", "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.hashtag_warning": "Этот пост не будет виден ни под одним из хэштегов, так как он не публичный. Только публичные посты можно найти по хэштегу.",
@ -199,6 +204,7 @@
"dismissable_banner.explore_links": "Об этих новостях прямо сейчас говорят люди на этом и других серверах децентрализованной сети.", "dismissable_banner.explore_links": "Об этих новостях прямо сейчас говорят люди на этом и других серверах децентрализованной сети.",
"dismissable_banner.explore_statuses": "Эти сообщения с этого и других серверов в децентрализованной сети сейчас набирают популярность на этом сервере.", "dismissable_banner.explore_statuses": "Эти сообщения с этого и других серверов в децентрализованной сети сейчас набирают популярность на этом сервере.",
"dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.", "dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.",
"dismissable_banner.public_timeline": "Это самые последние публичные сообщения от людей в социальной сети, за которыми подписались пользователи {domain}.",
"embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:",
"embed.preview": "Так это будет выглядеть:", "embed.preview": "Так это будет выглядеть:",
"emoji_button.activity": "Занятия", "emoji_button.activity": "Занятия",
@ -264,6 +270,9 @@
"filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую", "filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую",
"filter_modal.select_filter.title": "Фильтровать этот пост", "filter_modal.select_filter.title": "Фильтровать этот пост",
"filter_modal.title.status": "Фильтровать пост", "filter_modal.title.status": "Фильтровать пост",
"firehose.all": "Все",
"firehose.local": "Текущий сервер",
"firehose.remote": "Другие серверы",
"follow_request.authorize": "Авторизовать", "follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать", "follow_request.reject": "Отказать",
"follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.", "follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.",
@ -289,9 +298,13 @@
"hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки", "hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки",
"hashtag.follow": "Подписаться на новые посты", "hashtag.follow": "Подписаться на новые посты",
"hashtag.unfollow": "Отписаться", "hashtag.unfollow": "Отписаться",
"home.actions.go_to_explore": "Посмотреть, что актуально",
"home.actions.go_to_suggestions": "Подпишитесь на людей",
"home.column_settings.basic": "Основные", "home.column_settings.basic": "Основные",
"home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_reblogs": "Показывать продвижения",
"home.column_settings.show_replies": "Показывать ответы", "home.column_settings.show_replies": "Показывать ответы",
"home.explore_prompt.body": "В вашем доме появятся сообщения из хэштегов, на которые вы хотите подписаться, люди, которых вы выбрали подписаться, и сообщения, которые они увеличили. Сейчас выглядит спокойно, так что:",
"home.explore_prompt.title": "Это ваша домашняя база в Мастодоне.",
"home.hide_announcements": "Скрыть объявления", "home.hide_announcements": "Скрыть объявления",
"home.show_announcements": "Показать объявления", "home.show_announcements": "Показать объявления",
"interaction_modal.description.favourite": "С учётной записью Mastodon, вы можете добавить этот пост в избранное, чтобы сохранить его на будущее и дать автору знать, что пост вам понравился.", "interaction_modal.description.favourite": "С учётной записью Mastodon, вы можете добавить этот пост в избранное, чтобы сохранить его на будущее и дать автору знать, что пост вам понравился.",
@ -355,6 +368,7 @@
"lists.delete": "Удалить список", "lists.delete": "Удалить список",
"lists.edit": "Изменить список", "lists.edit": "Изменить список",
"lists.edit.submit": "Изменить название", "lists.edit.submit": "Изменить название",
"lists.exclusive": "Скрыть эти сообщения из дома",
"lists.new.create": "Создать список", "lists.new.create": "Создать список",
"lists.new.title_placeholder": "Название для нового списка", "lists.new.title_placeholder": "Название для нового списка",
"lists.replies_policy.followed": "Любой подписанный пользователь", "lists.replies_policy.followed": "Любой подписанный пользователь",
@ -371,6 +385,7 @@
"mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?", "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?",
"mute_modal.indefinite": "Не определена", "mute_modal.indefinite": "Не определена",
"navigation_bar.about": "О проекте", "navigation_bar.about": "О проекте",
"navigation_bar.advanced_interface": "Включить многоколоночный интерфейс",
"navigation_bar.blocks": "Заблокированные пользователи", "navigation_bar.blocks": "Заблокированные пользователи",
"navigation_bar.bookmarks": "Закладки", "navigation_bar.bookmarks": "Закладки",
"navigation_bar.community_timeline": "Локальная лента", "navigation_bar.community_timeline": "Локальная лента",
@ -475,6 +490,7 @@
"picture_in_picture.restore": "Вернуть обратно", "picture_in_picture.restore": "Вернуть обратно",
"poll.closed": "Завершён", "poll.closed": "Завершён",
"poll.refresh": "Обновить", "poll.refresh": "Обновить",
"poll.reveal": "Результаты",
"poll.total_people": "{count, plural, one {# человек} few {# человека} many {# человек} other {# человек}}", "poll.total_people": "{count, plural, one {# человек} few {# человека} many {# человек} other {# человек}}",
"poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}", "poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}",
"poll.vote": "Голосовать", "poll.vote": "Голосовать",
@ -527,6 +543,8 @@
"report.placeholder": "Дополнительные комментарии", "report.placeholder": "Дополнительные комментарии",
"report.reasons.dislike": "Мне не нравится", "report.reasons.dislike": "Мне не нравится",
"report.reasons.dislike_description": "Не хотел(а) бы видеть такой контент", "report.reasons.dislike_description": "Не хотел(а) бы видеть такой контент",
"report.reasons.legal": "Это незаконно",
"report.reasons.legal_description": "Вы считаете, что оно нарушает закон вашей страны или сервера",
"report.reasons.other": "Другое", "report.reasons.other": "Другое",
"report.reasons.other_description": "Проблема не попадает ни под одну из категорий", "report.reasons.other_description": "Проблема не попадает ни под одну из категорий",
"report.reasons.spam": "Это спам", "report.reasons.spam": "Это спам",
@ -546,6 +564,7 @@
"report.unfollow": "Отписаться от @{name}", "report.unfollow": "Отписаться от @{name}",
"report.unfollow_explanation": "Вы подписаны на этого пользователя. Чтобы не видеть его/её посты в своей домашней ленте, отпишитесь от него/неё.", "report.unfollow_explanation": "Вы подписаны на этого пользователя. Чтобы не видеть его/её посты в своей домашней ленте, отпишитесь от него/неё.",
"report_notification.attached_statuses": "{count, plural, one {{count} сообщение} few {{count} сообщения} many {{count} сообщений} other {{count} сообщений}} вложено", "report_notification.attached_statuses": "{count, plural, one {{count} сообщение} few {{count} сообщения} many {{count} сообщений} other {{count} сообщений}} вложено",
"report_notification.categories.legal": "Правовая информация",
"report_notification.categories.other": "Прочее", "report_notification.categories.other": "Прочее",
"report_notification.categories.spam": "Спам", "report_notification.categories.spam": "Спам",
"report_notification.categories.violation": "Нарушение правил", "report_notification.categories.violation": "Нарушение правил",
@ -600,6 +619,8 @@
"status.history.created": "{name} создал {date}", "status.history.created": "{name} создал {date}",
"status.history.edited": "{name} отредактировал(а) {date}", "status.history.edited": "{name} отредактировал(а) {date}",
"status.load_more": "Загрузить остальное", "status.load_more": "Загрузить остальное",
"status.media.open": "Нажмите, чтобы открыть.",
"status.media.show": "Нажмите для просмотра",
"status.media_hidden": "Файл скрыт", "status.media_hidden": "Файл скрыт",
"status.mention": "Упомянуть @{name}", "status.mention": "Упомянуть @{name}",
"status.more": "Ещё", "status.more": "Ещё",
@ -630,6 +651,7 @@
"status.title.with_attachments": "{user} размещено {attachmentCount, plural, one {вложение} other {{attachmentCount} вложений}}", "status.title.with_attachments": "{user} размещено {attachmentCount, plural, one {вложение} other {{attachmentCount} вложений}}",
"status.translate": "Перевод", "status.translate": "Перевод",
"status.translated_from_with": "Переведено с {lang}, используя {provider}", "status.translated_from_with": "Переведено с {lang}, используя {provider}",
"status.uncached_media_warning": "Прослушивание недоступно",
"status.unmute_conversation": "Не игнорировать обсуждение", "status.unmute_conversation": "Не игнорировать обсуждение",
"status.unpin": "Открепить от профиля", "status.unpin": "Открепить от профиля",
"subscribed_languages.lead": "Посты только на выбранных языках будут отображаться на вашей домашней странице и в списке лент после изменения. Выберите «Нет», чтобы получать посты на всех языках.", "subscribed_languages.lead": "Посты только на выбранных языках будут отображаться на вашей домашней странице и в списке лент после изменения. Выберите «Нет», чтобы получать посты на всех языках.",

View file

@ -75,6 +75,10 @@
"admin.dashboard.retention.average": "Povprečje", "admin.dashboard.retention.average": "Povprečje",
"admin.dashboard.retention.cohort": "Mesec prijave", "admin.dashboard.retention.cohort": "Mesec prijave",
"admin.dashboard.retention.cohort_size": "Novi uporabniki", "admin.dashboard.retention.cohort_size": "Novi uporabniki",
"admin.impact_report.instance_accounts": "Profili računov, ki bi jih s tem izbrisali",
"admin.impact_report.instance_followers": "Sledilci, ki bi jih izgubili naši uporabniki",
"admin.impact_report.instance_follows": "Sledilci, ki bi jih izgubili njihovi uporabniki",
"admin.impact_report.title": "Povzetek učinka",
"alert.rate_limited.message": "Poskusite znova čez {retry_time, time, medium}.", "alert.rate_limited.message": "Poskusite znova čez {retry_time, time, medium}.",
"alert.rate_limited.title": "Hitrost omejena", "alert.rate_limited.title": "Hitrost omejena",
"alert.unexpected.message": "Zgodila se je nepričakovana napaka.", "alert.unexpected.message": "Zgodila se je nepričakovana napaka.",
@ -376,6 +380,7 @@
"mute_modal.hide_notifications": "Ali želite skriti obvestila tega uporabnika?", "mute_modal.hide_notifications": "Ali želite skriti obvestila tega uporabnika?",
"mute_modal.indefinite": "Nedoločeno", "mute_modal.indefinite": "Nedoločeno",
"navigation_bar.about": "O Mastodonu", "navigation_bar.about": "O Mastodonu",
"navigation_bar.advanced_interface": "Odpri v naprednem spletnem vmesniku",
"navigation_bar.blocks": "Blokirani uporabniki", "navigation_bar.blocks": "Blokirani uporabniki",
"navigation_bar.bookmarks": "Zaznamki", "navigation_bar.bookmarks": "Zaznamki",
"navigation_bar.community_timeline": "Krajevna časovnica", "navigation_bar.community_timeline": "Krajevna časovnica",
@ -480,6 +485,7 @@
"picture_in_picture.restore": "Postavi nazaj", "picture_in_picture.restore": "Postavi nazaj",
"poll.closed": "Zaprto", "poll.closed": "Zaprto",
"poll.refresh": "Osveži", "poll.refresh": "Osveži",
"poll.reveal": "Poglej rezultate",
"poll.total_people": "{count, plural, one {# oseba} two {# osebi} few {# osebe} other {# oseb}}", "poll.total_people": "{count, plural, one {# oseba} two {# osebi} few {# osebe} other {# oseb}}",
"poll.total_votes": "{count, plural, one {# glas} two {# glasova} few {# glasovi} other {# glasov}}", "poll.total_votes": "{count, plural, one {# glas} two {# glasova} few {# glasovi} other {# glasov}}",
"poll.vote": "Glasuj", "poll.vote": "Glasuj",
@ -532,6 +538,7 @@
"report.placeholder": "Dodatni komentarji", "report.placeholder": "Dodatni komentarji",
"report.reasons.dislike": "Ni mi všeč", "report.reasons.dislike": "Ni mi všeč",
"report.reasons.dislike_description": "To ni tisto, kar želim videti", "report.reasons.dislike_description": "To ni tisto, kar želim videti",
"report.reasons.legal": "To ni legalno",
"report.reasons.other": "Gre za nekaj drugega", "report.reasons.other": "Gre za nekaj drugega",
"report.reasons.other_description": "Težava ne sodi v druge kategorije", "report.reasons.other_description": "Težava ne sodi v druge kategorije",
"report.reasons.spam": "To je neželena vsebina", "report.reasons.spam": "To je neželena vsebina",
@ -551,6 +558,7 @@
"report.unfollow": "Ne sledi več @{name}", "report.unfollow": "Ne sledi več @{name}",
"report.unfollow_explanation": "Temu računu sledite. Da ne boste več videli njegovih objav v svojem domačem viru, mu prenehajte slediti.", "report.unfollow_explanation": "Temu računu sledite. Da ne boste več videli njegovih objav v svojem domačem viru, mu prenehajte slediti.",
"report_notification.attached_statuses": "{count, plural, one {{count} objava pripeta} two {{count} objavi pripeti} few {{count} objave pripete} other {{count} objav pripetih}}", "report_notification.attached_statuses": "{count, plural, one {{count} objava pripeta} two {{count} objavi pripeti} few {{count} objave pripete} other {{count} objav pripetih}}",
"report_notification.categories.legal": "Legalno",
"report_notification.categories.other": "Drugo", "report_notification.categories.other": "Drugo",
"report_notification.categories.spam": "Neželeno", "report_notification.categories.spam": "Neželeno",
"report_notification.categories.violation": "Kršitev pravila", "report_notification.categories.violation": "Kršitev pravila",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?", "mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?",
"mute_modal.indefinite": "E pacaktuar", "mute_modal.indefinite": "E pacaktuar",
"navigation_bar.about": "Mbi", "navigation_bar.about": "Mbi",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Përdorues të bllokuar", "navigation_bar.blocks": "Përdorues të bllokuar",
"navigation_bar.bookmarks": "Faqerojtës", "navigation_bar.bookmarks": "Faqerojtës",
"navigation_bar.community_timeline": "Rrjedhë kohore vendore", "navigation_bar.community_timeline": "Rrjedhë kohore vendore",

View file

@ -209,7 +209,7 @@
"emoji_button.food": "Mat & dryck", "emoji_button.food": "Mat & dryck",
"emoji_button.label": "Lägg till emoji", "emoji_button.label": "Lägg till emoji",
"emoji_button.nature": "Natur", "emoji_button.nature": "Natur",
"emoji_button.not_found": "Inga emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "Inga matchande emojis hittades",
"emoji_button.objects": "Objekt", "emoji_button.objects": "Objekt",
"emoji_button.people": "Personer", "emoji_button.people": "Personer",
"emoji_button.recent": "Ofta använda", "emoji_button.recent": "Ofta använda",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?", "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?",
"mute_modal.indefinite": "Belirsiz", "mute_modal.indefinite": "Belirsiz",
"navigation_bar.about": "Hakkında", "navigation_bar.about": "Hakkında",
"navigation_bar.advanced_interface": "Gelişmiş web arayüzünde aç",
"navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.blocks": "Engellenen kullanıcılar",
"navigation_bar.bookmarks": "Yer İşaretleri", "navigation_bar.bookmarks": "Yer İşaretleri",
"navigation_bar.community_timeline": "Yerel Zaman Tüneli", "navigation_bar.community_timeline": "Yerel Zaman Tüneli",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "Ẩn thông báo từ người này?", "mute_modal.hide_notifications": "Ẩn thông báo từ người này?",
"mute_modal.indefinite": "Vĩnh viễn", "mute_modal.indefinite": "Vĩnh viễn",
"navigation_bar.about": "Giới thiệu", "navigation_bar.about": "Giới thiệu",
"navigation_bar.advanced_interface": "Dùng bố cục nhiều cột",
"navigation_bar.blocks": "Người đã chặn", "navigation_bar.blocks": "Người đã chặn",
"navigation_bar.bookmarks": "Đã lưu", "navigation_bar.bookmarks": "Đã lưu",
"navigation_bar.community_timeline": "Cộng đồng", "navigation_bar.community_timeline": "Cộng đồng",
@ -648,7 +649,7 @@
"status.show_more_all": "Hiển thị tất cả", "status.show_more_all": "Hiển thị tất cả",
"status.show_original": "Bản gốc", "status.show_original": "Bản gốc",
"status.title.with_attachments": "{user} đã đăng {attachmentCount, plural, other {{attachmentCount} đính kèm}}", "status.title.with_attachments": "{user} đã đăng {attachmentCount, plural, other {{attachmentCount} đính kèm}}",
"status.translate": "Dịch", "status.translate": "Dịch Tút",
"status.translated_from_with": "Dịch từ {lang} bằng {provider}", "status.translated_from_with": "Dịch từ {lang} bằng {provider}",
"status.uncached_media_warning": "Xem trước không sẵn có", "status.uncached_media_warning": "Xem trước không sẵn có",
"status.unmute_conversation": "Quan tâm", "status.unmute_conversation": "Quan tâm",

View file

@ -385,6 +385,7 @@
"mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?", "mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?",
"mute_modal.indefinite": "無期限", "mute_modal.indefinite": "無期限",
"navigation_bar.about": "關於", "navigation_bar.about": "關於",
"navigation_bar.advanced_interface": "以進階網頁介面開啟",
"navigation_bar.blocks": "已封鎖的使用者", "navigation_bar.blocks": "已封鎖的使用者",
"navigation_bar.bookmarks": "書籤", "navigation_bar.bookmarks": "書籤",
"navigation_bar.community_timeline": "本站時間軸", "navigation_bar.community_timeline": "本站時間軸",

View file

@ -5,11 +5,16 @@ import { normalizeStatusTranslation } from '../actions/importer/normalizer';
import { import {
REBLOG_REQUEST, REBLOG_REQUEST,
REBLOG_FAIL, REBLOG_FAIL,
UNREBLOG_REQUEST,
UNREBLOG_FAIL,
FAVOURITE_REQUEST, FAVOURITE_REQUEST,
FAVOURITE_FAIL, FAVOURITE_FAIL,
UNFAVOURITE_SUCCESS, UNFAVOURITE_REQUEST,
UNFAVOURITE_FAIL,
BOOKMARK_REQUEST, BOOKMARK_REQUEST,
BOOKMARK_FAIL, BOOKMARK_FAIL,
UNBOOKMARK_REQUEST,
UNBOOKMARK_FAIL,
} from '../actions/interactions'; } from '../actions/interactions';
import { import {
STATUS_MUTE_SUCCESS, STATUS_MUTE_SUCCESS,
@ -96,18 +101,28 @@ export default function statuses(state = initialState, action) {
return importStatuses(state, action.statuses); return importStatuses(state, action.statuses);
case FAVOURITE_REQUEST: case FAVOURITE_REQUEST:
return state.setIn([action.status.get('id'), 'favourited'], true); return state.setIn([action.status.get('id'), 'favourited'], true);
case UNFAVOURITE_SUCCESS:
return state.updateIn([action.status.get('id'), 'favourites_count'], x => Math.max(0, x - 1));
case FAVOURITE_FAIL: case FAVOURITE_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], false); return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], false);
case UNFAVOURITE_REQUEST:
return state.setIn([action.status.get('id'), 'favourited'], false);
case UNFAVOURITE_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], true);
case BOOKMARK_REQUEST: case BOOKMARK_REQUEST:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], true); return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], true);
case BOOKMARK_FAIL: case BOOKMARK_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false); return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false);
case UNBOOKMARK_REQUEST:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false);
case UNBOOKMARK_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], true);
case REBLOG_REQUEST: case REBLOG_REQUEST:
return state.setIn([action.status.get('id'), 'reblogged'], true); return state.setIn([action.status.get('id'), 'reblogged'], true);
case REBLOG_FAIL: case REBLOG_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], false); return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], false);
case UNREBLOG_REQUEST:
return state.setIn([action.status.get('id'), 'reblogged'], false);
case UNREBLOG_FAIL:
return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], true);
case STATUS_MUTE_SUCCESS: case STATUS_MUTE_SUCCESS:
return state.setIn([action.id, 'muted'], true); return state.setIn([action.id, 'muted'], true);
case STATUS_UNMUTE_SUCCESS: case STATUS_UNMUTE_SUCCESS:

View file

@ -4,14 +4,22 @@ require 'ipaddr'
require 'socket' require 'socket'
require 'resolv' require 'resolv'
# Monkey-patch the HTTP.rb timeout class to avoid using a timeout block # Use our own timeout class to avoid using HTTP.rb's timeout block
# around the Socket#open method, since we use our own timeout blocks inside # around the Socket#open method, since we use our own timeout blocks inside
# that method # that method
# #
# Also changes how the read timeout behaves so that it is cumulative (closer # Also changes how the read timeout behaves so that it is cumulative (closer
# to HTTP::Timeout::Global, but still having distinct timeouts for other # to HTTP::Timeout::Global, but still having distinct timeouts for other
# operation types) # operation types)
class HTTP::Timeout::PerOperation class PerOperationWithDeadline < HTTP::Timeout::PerOperation
READ_DEADLINE = 30
def initialize(*args)
super
@read_deadline = options.fetch(:read_deadline, READ_DEADLINE)
end
def connect(socket_class, host, port, nodelay = false) def connect(socket_class, host, port, nodelay = false)
@socket = socket_class.open(host, port) @socket = socket_class.open(host, port)
@socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) if nodelay @socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) if nodelay
@ -24,7 +32,7 @@ class HTTP::Timeout::PerOperation
# Read data from the socket # Read data from the socket
def readpartial(size, buffer = nil) def readpartial(size, buffer = nil)
@deadline ||= Process.clock_gettime(Process::CLOCK_MONOTONIC) + @read_timeout @deadline ||= Process.clock_gettime(Process::CLOCK_MONOTONIC) + @read_deadline
timeout = false timeout = false
loop do loop do
@ -33,7 +41,8 @@ class HTTP::Timeout::PerOperation
return :eof if result.nil? return :eof if result.nil?
remaining_time = @deadline - Process.clock_gettime(Process::CLOCK_MONOTONIC) remaining_time = @deadline - Process.clock_gettime(Process::CLOCK_MONOTONIC)
raise HTTP::TimeoutError, "Read timed out after #{@read_timeout} seconds" if timeout || remaining_time <= 0 raise HTTP::TimeoutError, "Read timed out after #{@read_timeout} seconds" if timeout
raise HTTP::TimeoutError, "Read timed out after a total of #{@read_deadline} seconds" if remaining_time <= 0
return result if result != :wait_readable return result if result != :wait_readable
# marking the socket for timeout. Why is this not being raised immediately? # marking the socket for timeout. Why is this not being raised immediately?
@ -46,7 +55,7 @@ class HTTP::Timeout::PerOperation
# timeout. Else, the first timeout was a proper timeout. # timeout. Else, the first timeout was a proper timeout.
# This hack has to be done because io/wait#wait_readable doesn't provide a value for when # This hack has to be done because io/wait#wait_readable doesn't provide a value for when
# the socket is closed by the server, and HTTP::Parser doesn't provide the limit for the chunks. # the socket is closed by the server, and HTTP::Parser doesn't provide the limit for the chunks.
timeout = true unless @socket.to_io.wait_readable(remaining_time) timeout = true unless @socket.to_io.wait_readable([remaining_time, @read_timeout].min)
end end
end end
end end
@ -57,7 +66,7 @@ class Request
# We enforce a 5s timeout on DNS resolving, 5s timeout on socket opening # We enforce a 5s timeout on DNS resolving, 5s timeout on socket opening
# and 5s timeout on the TLS handshake, meaning the worst case should take # and 5s timeout on the TLS handshake, meaning the worst case should take
# about 15s in total # about 15s in total
TIMEOUT = { connect: 5, read: 10, write: 10 }.freeze TIMEOUT = { connect_timeout: 5, read_timeout: 10, write_timeout: 10, read_deadline: 30 }.freeze
include RoutingHelper include RoutingHelper
@ -69,6 +78,7 @@ class Request
@http_client = options.delete(:http_client) @http_client = options.delete(:http_client)
@allow_local = options.delete(:allow_local) @allow_local = options.delete(:allow_local)
@options = options.merge(socket_class: use_proxy? || @allow_local ? ProxySocket : Socket) @options = options.merge(socket_class: use_proxy? || @allow_local ? ProxySocket : Socket)
@options = @options.merge(timeout_class: PerOperationWithDeadline, timeout_options: TIMEOUT)
@options = @options.merge(proxy_url) if use_proxy? @options = @options.merge(proxy_url) if use_proxy?
@headers = {} @headers = {}
@ -129,7 +139,7 @@ class Request
end end
def http_client def http_client
HTTP.use(:auto_inflate).timeout(TIMEOUT.dup).follow(max_hops: 3) HTTP.use(:auto_inflate).follow(max_hops: 3)
end end
end end

View file

@ -94,12 +94,19 @@ class Account < ApplicationRecord
# Remote user validations, also applies to internal actors # 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? } validates :username, format: { with: USERNAME_ONLY_RE }, if: -> { (!local? || actor_type == 'Application') && will_save_change_to_username? }
# Remote user validations
validates :uri, presence: true, unless: :local?, on: :create
# Local user validations # 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' } validates :username, format: { with: /\A[a-z0-9_]+\z/i }, length: { maximum: 30 }, if: -> { local? && will_save_change_to_username? && actor_type != 'Application' }
validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? && actor_type != 'Application' } validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? && actor_type != 'Application' }
validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? } validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? }
validates :note, note_length: { maximum: 500 }, if: -> { local? && will_save_change_to_note? } validates :note, note_length: { maximum: 500 }, if: -> { local? && will_save_change_to_note? }
validates :fields, length: { maximum: 6 }, if: -> { local? && will_save_change_to_fields? } validates :fields, length: { maximum: 6 }, if: -> { local? && will_save_change_to_fields? }
validates :uri, absence: true, if: :local?, on: :create
validates :inbox_url, absence: true, if: :local?, on: :create
validates :shared_inbox_url, absence: true, if: :local?, on: :create
validates :followers_url, absence: true, if: :local?, on: :create
scope :remote, -> { where.not(domain: nil) } scope :remote, -> { where.not(domain: nil) }
scope :local, -> { where(domain: nil) } scope :local, -> { where(domain: nil) }

View file

@ -4,7 +4,7 @@ class StatusRelationshipsPresenter
PINNABLE_VISIBILITIES = %w(public public_unlisted unlisted login private).freeze PINNABLE_VISIBILITIES = %w(public public_unlisted unlisted login private).freeze
attr_reader :reblogs_map, :favourites_map, :mutes_map, :pins_map, attr_reader :reblogs_map, :favourites_map, :mutes_map, :pins_map,
:bookmarks_map, :filters_map, :emoji_reactions_map :bookmarks_map, :filters_map, :emoji_reactions_map, :attributes_map
def initialize(statuses, current_account_id = nil, **options) def initialize(statuses, current_account_id = nil, **options)
@current_account_id = current_account_id @current_account_id = current_account_id
@ -23,13 +23,14 @@ class StatusRelationshipsPresenter
conversation_ids = statuses.filter_map(&:conversation_id).uniq conversation_ids = statuses.filter_map(&:conversation_id).uniq
pinnable_status_ids = statuses.map(&:proper).filter_map { |s| s.id if s.account_id == current_account_id && PINNABLE_VISIBILITIES.include?(s.visibility) } pinnable_status_ids = statuses.map(&:proper).filter_map { |s| s.id if s.account_id == current_account_id && PINNABLE_VISIBILITIES.include?(s.visibility) }
@filters_map = build_filters_map(statuses, current_account_id).merge(options[:filters_map] || {}) @filters_map = build_filters_map(statuses, current_account_id).merge(options[:filters_map] || {})
@reblogs_map = Status.reblogs_map(status_ids, current_account_id).merge(options[:reblogs_map] || {}) @reblogs_map = Status.reblogs_map(status_ids, current_account_id).merge(options[:reblogs_map] || {})
@favourites_map = Status.favourites_map(status_ids, current_account_id).merge(options[:favourites_map] || {}) @favourites_map = Status.favourites_map(status_ids, current_account_id).merge(options[:favourites_map] || {})
@bookmarks_map = Status.bookmarks_map(status_ids, current_account_id).merge(options[:bookmarks_map] || {}) @bookmarks_map = Status.bookmarks_map(status_ids, current_account_id).merge(options[:bookmarks_map] || {})
@mutes_map = Status.mutes_map(conversation_ids, current_account_id).merge(options[:mutes_map] || {}) @mutes_map = Status.mutes_map(conversation_ids, current_account_id).merge(options[:mutes_map] || {})
@pins_map = Status.pins_map(pinnable_status_ids, current_account_id).merge(options[:pins_map] || {}) @pins_map = Status.pins_map(pinnable_status_ids, current_account_id).merge(options[:pins_map] || {})
@emoji_reactions_map = Status.emoji_reactions_map(status_ids, current_account_id).merge(options[:emoji_reactions_map] || {}) @emoji_reactions_map = Status.emoji_reactions_map(status_ids, current_account_id).merge(options[:emoji_reactions_map] || {})
@attributes_map = options[:attributes_map] || {}
end end
end end

View file

@ -101,9 +101,17 @@ class REST::StatusSerializer < ActiveModel::Serializer
status_reference_ids.size status_reference_ids.size
end end
def reblogs_count
relationships&.attributes_map&.dig(object.id, :reblogs_count) || object.reblogs_count
end
def favourites_count
relationships&.attributes_map&.dig(object.id, :favourites_count) || object.favourites_count
end
def favourited def favourited
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].favourites_map[object.id] || false relationships.favourites_map[object.id] || false
else else
current_user.account.favourited?(object) current_user.account.favourited?(object)
end end
@ -125,40 +133,40 @@ class REST::StatusSerializer < ActiveModel::Serializer
end end
def reblogged def reblogged
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].reblogs_map[object.id] || false relationships.reblogs_map[object.id] || false
else else
current_user.account.reblogged?(object) current_user.account.reblogged?(object)
end end
end end
def muted def muted
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].mutes_map[object.conversation_id] || false relationships.mutes_map[object.conversation_id] || false
else else
current_user.account.muting_conversation?(object.conversation) current_user.account.muting_conversation?(object.conversation)
end end
end end
def bookmarked def bookmarked
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].bookmarks_map[object.id] || false relationships.bookmarks_map[object.id] || false
else else
current_user.account.bookmarked?(object) current_user.account.bookmarked?(object)
end end
end end
def pinned def pinned
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].pins_map[object.id] || false relationships.pins_map[object.id] || false
else else
current_user.account.pinned?(object) current_user.account.pinned?(object)
end end
end end
def filtered def filtered
if instance_options && instance_options[:relationships] if relationships
instance_options[:relationships].filters_map[object.id] || [] relationships.filters_map[object.id] || []
else else
current_user.account.status_matches_filters(object) current_user.account.status_matches_filters(object)
end end
@ -183,6 +191,12 @@ class REST::StatusSerializer < ActiveModel::Serializer
object.active_mentions.to_a.sort_by(&:id) object.active_mentions.to_a.sort_by(&:id)
end end
private
def relationships
instance_options && instance_options[:relationships]
end
class ApplicationSerializer < ActiveModel::Serializer class ApplicationSerializer < ActiveModel::Serializer
attributes :name, :website attributes :name, :website

View file

@ -82,7 +82,7 @@ class ActivityPub::ProcessAccountService < BaseService
set_immediate_protocol_attributes! set_immediate_protocol_attributes!
@account.save @account.save!
end end
def update_account def update_account

View file

@ -47,7 +47,7 @@
%label.batch-table__toolbar__select.batch-checkbox-all %label.batch-table__toolbar__select.batch-checkbox-all
= check_box_tag :batch_checkbox_all, nil, false = check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions .batch-table__toolbar__actions
- if @accounts.any? { |account| account.user_pending? } - if @accounts.any?(&:user_pending?)
= f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }

View file

@ -32,7 +32,7 @@
.fields-group .fields-group
= text_area_tag :text, nil, placeholder: t('admin.reports.summary.warning_placeholder') = text_area_tag :text, nil, placeholder: t('admin.reports.summary.warning_placeholder')
- if !@report.other? - unless @report.other?
%p %p
%strong= t('user_mailer.warning.reason') %strong= t('user_mailer.warning.reason')
= t("user_mailer.warning.categories.#{@report.category}") = t("user_mailer.warning.categories.#{@report.category}")

View file

@ -27,7 +27,7 @@
%button.button= t('admin.accounts.search') %button.button= t('admin.accounts.search')
= link_to t('admin.accounts.reset'), admin_reports_path, class: 'button negative' = link_to t('admin.accounts.reset'), admin_reports_path, class: 'button negative'
- @reports.group_by(&:target_account_id).each do |target_account_id, reports| - @reports.group_by(&:target_account_id).each do |_target_account_id, reports|
- target_account = reports.first.target_account - target_account = reports.first.target_account
.report-card .report-card
.report-card__profile .report-card__profile

View file

@ -92,7 +92,7 @@
= t('simple_form.yes') = t('simple_form.yes')
- else - else
= t('simple_form.no') = t('simple_form.no')
- if !@report.action_taken_by_account.nil? - if @report.action_taken_by_account.present?
.report-header__details__item .report-header__details__item
.report-header__details__item__header .report-header__details__item__header
%strong= t('admin.reports.action_taken_by') %strong= t('admin.reports.action_taken_by')

View file

@ -0,0 +1,16 @@
%tr
%td
%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.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
%td
%samp= session.ip
%td
- if current_session.session_id == session.session_id
= t 'sessions.current_session'
- else
%time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
%td
- if current_session.session_id != session.session_id && !current_account.suspended?
= table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete

View file

@ -14,21 +14,4 @@
%th= t 'sessions.activity' %th= t 'sessions.activity'
%th %th
%tbody %tbody
- @sessions.each do |session| = render partial: 'session', collection: sessions
%tr
%td
%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.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
%td
%samp= session.ip
%td
- if current_session.session_id == session.session_id
= t 'sessions.current_session'
- else
%time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
%td
- if current_session.session_id != session.session_id && !current_account.suspended?
= table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete

View file

@ -30,7 +30,7 @@
%hr.spacer/ %hr.spacer/
= render 'sessions' = render partial: 'sessions', object: @sessions
- unless current_account.suspended? - unless current_account.suspended?
%hr.spacer/ %hr.spacer/

View file

@ -29,7 +29,7 @@
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous' = stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag current_theme, media: 'all', crossorigin: 'anonymous' = stylesheet_pack_tag current_theme, media: 'all', crossorigin: 'anonymous'
= javascript_pack_tag 'common', crossorigin: 'anonymous' = javascript_pack_tag 'common', crossorigin: 'anonymous'
= preload_pack_asset "locale/#{I18n.locale}-json.js", crossorigin: 'anonymous' = preload_pack_asset "locale/#{I18n.locale}-json.js"
= csrf_meta_tags unless skip_csrf_meta_tags? = csrf_meta_tags unless skip_csrf_meta_tags?
%meta{ name: 'style-nonce', content: request.content_security_policy_nonce } %meta{ name: 'style-nonce', content: request.content_security_policy_nonce }

View file

@ -15,7 +15,7 @@
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous' = stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag Setting.default_settings['theme'], media: 'all', crossorigin: 'anonymous' = stylesheet_pack_tag Setting.default_settings['theme'], media: 'all', crossorigin: 'anonymous'
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous' = javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= preload_pack_asset "locale/#{I18n.locale}-json.js", crossorigin: 'anonymous' = preload_pack_asset "locale/#{I18n.locale}-json.js"
= render_initial_state = render_initial_state
= javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous' = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
%body.embed %body.embed

View file

@ -33,7 +33,7 @@
.auto-dir .auto-dir
= status_content_format(status) = status_content_format(status)
- if status.ordered_media_attachments.size > 0 - if status.ordered_media_attachments.size.positive?
%p %p
- status.ordered_media_attachments.each do |a| - status.ordered_media_attachments.each do |a|
- if status.local? - if status.local?

View file

@ -14,5 +14,5 @@
%label= t('activerecord.attributes.doorkeeper/application.scopes') %label= t('activerecord.attributes.doorkeeper/application.scopes')
%span.hint= t('simple_form.hints.defaults.scopes') %span.hint= t('simple_form.hints.defaults.scopes')
- Doorkeeper.configuration.scopes.group_by { |s| s.split(':').first }.each do |k, v| - Doorkeeper.configuration.scopes.group_by { |s| s.split(':').first }.each do |_key, value|
= f.input :scopes, label: false, hint: false, collection: v.sort, wrapper: :with_block_label, include_blank: false, label_method: ->(scope) { safe_join([content_tag(:samp, scope, class: class_for_scope(scope)), content_tag(:span, t("doorkeeper.scopes.#{scope}"), class: 'hint')]) }, selected: f.object.scopes.all, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' = f.input :scopes, label: false, hint: false, collection: value.sort, wrapper: :with_block_label, include_blank: false, label_method: ->(scope) { safe_join([content_tag(:samp, scope, class: class_for_scope(scope)), content_tag(:span, t("doorkeeper.scopes.#{scope}"), class: 'hint')]) }, selected: f.object.scopes.all, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'

View file

@ -65,7 +65,7 @@
%h4= t 'appearance.sensitive_content' %h4= t 'appearance.sensitive_content'
.fields-group .fields-group
= ff.input :'web.display_media', collection: ['default', 'show_all', 'hide_all'], label_method: ->(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') = ff.input :'web.display_media', collection: %w(default show_all hide_all), label_method: ->(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 .fields-group
= ff.input :'web.display_media_expand', wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_display_media_expand'), hint: I18n.t('simple_form.hints.defaults.setting_display_media_expand') = ff.input :'web.display_media_expand', wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_display_media_expand'), hint: I18n.t('simple_form.hints.defaults.setting_display_media_expand')

View file

@ -1,8 +1,8 @@
- content_for :header_tags do - content_for :header_tags do
- if user_signed_in? - if user_signed_in?
= preload_pack_asset 'features/compose.js', crossorigin: 'anonymous' = preload_pack_asset 'features/compose.js'
= preload_pack_asset 'features/home_timeline.js', crossorigin: 'anonymous' = preload_pack_asset 'features/home_timeline.js'
= preload_pack_asset 'features/notifications.js', crossorigin: 'anonymous' = preload_pack_asset 'features/notifications.js'
%meta{ name: 'initialPath', content: request.path } %meta{ name: 'initialPath', content: request.path }
%meta{ name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key } %meta{ name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key }

View file

@ -8,7 +8,7 @@
- poll.loaded_options.each_with_index do |option, index| - poll.loaded_options.each_with_index do |option, index|
%li %li
- if show_results - if show_results
- percent = total_votes_count > 0 ? 100 * option.votes_count / total_votes_count : 0 - percent = total_votes_count.positive? ? 100 * option.votes_count / total_votes_count : 0
%label.poll__option>< %label.poll__option><
%span.poll__number>< %span.poll__number><
= "#{percent.round}%" = "#{percent.round}%"

View file

@ -1,61 +1,2 @@
:ruby .entry
pinned ||= false = render (centered ? 'statuses/detailed_status' : 'statuses/simple_status'), status: status.proper, hide_show_thread: false
include_threads ||= false
is_predecessor ||= false
is_successor ||= false
direct_reply_id ||= false
parent_id ||= false
is_direct_parent = direct_reply_id == status.id
is_direct_child = parent_id == status.in_reply_to_id
centered ||= include_threads && !is_predecessor && !is_successor
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}"
- if status.reply? && include_threads
- if @next_ancestor
.entry{ class: entry_classes }
= link_to_older ActivityPub::TagManager.instance.url_for(@next_ancestor)
= render partial: 'statuses/status', collection: @ancestors, as: :status, locals: { is_predecessor: true, direct_reply_id: status.in_reply_to_id }
.entry{ class: entry_classes }
- if status.reblog?
.status__prepend
.status__prepend-icon-wrapper
%i.status__prepend-icon.fa.fa-fw.fa-retweet
%span
= link_to ActivityPub::TagManager.instance.url_for(status.account), class: 'status__display-name muted' do
%bdi
%strong.emojify= display_name(status.account, custom_emojify: true)
= t('stream_entries.reblogged')
- elsif pinned
.status__prepend
.status__prepend-icon-wrapper
%i.status__prepend-icon.fa.fa-fw.fa-thumb-tack
%span
= t('stream_entries.pinned')
= render (centered ? 'statuses/detailed_status' : 'statuses/simple_status'), status: status.proper, hide_show_thread: is_predecessor || is_successor
- if include_threads
- if @since_descendant_thread_id
.entry{ class: entry_classes }
= link_to_newer short_account_status_url(status.account.username, status, max_descendant_thread_id: @since_descendant_thread_id + 1)
- @descendant_threads.each do |thread|
= render partial: 'statuses/status', collection: thread[:statuses], as: :status, locals: { is_successor: true, parent_id: status.id }
- if thread[:next_status]
.entry{ class: entry_classes }
= link_to_newer ActivityPub::TagManager.instance.url_for(thread[:next_status])
- if @next_descendant_thread
.entry{ class: entry_classes }
= link_to_newer short_account_status_url(status.account.username, status, since_descendant_thread_id: @max_descendant_thread_id - 1)
- if include_threads && !embedded_view? && !user_signed_in?
.entry{ class: entry_classes }
= link_to_login class: 'load-more load-gap' do
= fa_icon 'comments'
= t('statuses.sign_in_to_participate')

View file

@ -68,6 +68,7 @@ ignore_unused:
- 'imports.overwrite_preambles.{following,blocking,muting,domain_blocking,bookmarks}_html' - 'imports.overwrite_preambles.{following,blocking,muting,domain_blocking,bookmarks}_html'
- 'imports.preambles.{following,blocking,muting,domain_blocking,bookmarks}_html' - 'imports.preambles.{following,blocking,muting,domain_blocking,bookmarks}_html'
- 'mail_subscriptions.unsubscribe.emails.*' - 'mail_subscriptions.unsubscribe.emails.*'
- 'preferences.other' # some locales are missing other keys, therefore leading i18n-tasks to detect `preferences` as plural and not finding use
ignore_inconsistent_interpolations: ignore_inconsistent_interpolations:
- '*.one' - '*.one'

View file

@ -15,6 +15,7 @@ assets_host ||= host_to_url(base_host)
media_host = host_to_url(ENV['S3_ALIAS_HOST']) media_host = host_to_url(ENV['S3_ALIAS_HOST'])
media_host ||= host_to_url(ENV['S3_CLOUDFRONT_HOST']) media_host ||= host_to_url(ENV['S3_CLOUDFRONT_HOST'])
media_host ||= host_to_url(ENV['AZURE_ALIAS_HOST'])
media_host ||= host_to_url(ENV['S3_HOSTNAME']) if ENV['S3_ENABLED'] == 'true' media_host ||= host_to_url(ENV['S3_HOSTNAME']) if ENV['S3_ENABLED'] == 'true'
media_host ||= assets_host media_host ||= assets_host

View file

@ -131,6 +131,26 @@ elsif ENV['SWIFT_ENABLED'] == 'true'
fog_host: ENV['SWIFT_OBJECT_URL'], fog_host: ENV['SWIFT_OBJECT_URL'],
fog_public: true fog_public: true
) )
elsif ENV['AZURE_ENABLED'] == 'true'
require 'paperclip-azure'
Paperclip::Attachment.default_options.merge!(
storage: :azure,
azure_options: {
protocol: 'https',
},
azure_credentials: {
storage_account_name: ENV['AZURE_STORAGE_ACCOUNT'],
storage_access_key: ENV['AZURE_STORAGE_ACCESS_KEY'],
container: ENV['AZURE_CONTAINER_NAME'],
}
)
if ENV.has_key?('AZURE_ALIAS_HOST')
Paperclip::Attachment.default_options.merge!(
url: ':azure_alias_url',
azure_host_alias: ENV['AZURE_ALIAS_HOST']
)
end
else else
Paperclip::Attachment.default_options.merge!( Paperclip::Attachment.default_options.merge!(
storage: :filesystem, storage: :filesystem,

View file

@ -52,3 +52,7 @@ da:
position: position:
elevated: kan ikke være højere end din aktuelle rolle elevated: kan ikke være højere end din aktuelle rolle
own_role: kan ikke ændres med din aktuelle rolle own_role: kan ikke ændres med din aktuelle rolle
webhook:
attributes:
events:
invalid_permissions: kan ikke inkludere begivenheder, du ikke har rettigheder til

View file

@ -52,3 +52,7 @@ fr-QC:
position: position:
elevated: ne peut pas être supérieur à votre rôle actuel elevated: ne peut pas être supérieur à votre rôle actuel
own_role: ne peut pas être modifié avec votre rôle actuel own_role: ne peut pas être modifié avec votre rôle actuel
webhook:
attributes:
events:
invalid_permissions: ne peut pas inclure des évènements pour lesquels vous navez pas les droits

View file

@ -52,3 +52,7 @@ fr:
position: position:
elevated: ne peut pas être supérieur à votre rôle actuel elevated: ne peut pas être supérieur à votre rôle actuel
own_role: ne peut pas être modifié avec votre rôle actuel own_role: ne peut pas être modifié avec votre rôle actuel
webhook:
attributes:
events:
invalid_permissions: ne peut pas inclure des évènements pour lesquels vous navez pas les droits

View file

@ -52,3 +52,7 @@ pt-PT:
position: position:
elevated: não pode ser maior que o da sua função atual elevated: não pode ser maior que o da sua função atual
own_role: não pode ser alterado com a sua função atual own_role: não pode ser alterado com a sua função atual
webhook:
attributes:
events:
invalid_permissions: não pode incluir eventos para os quais não tem permissão

View file

@ -1,3 +1,4 @@
---
sa: sa:
activerecord: activerecord:
attributes: attributes:

View file

@ -95,9 +95,7 @@ af:
'404': The page you are looking for isn't here. '404': The page you are looking for isn't here.
'406': This page is not available in the requested format. '406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore. '410': The page you were looking for doesn't exist here anymore.
'422':
'429': Too many requests '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure. '503': The page could not be served due to a temporary server failure.
exports: exports:
bookmarks: Boekmerke bookmarks: Boekmerke

View file

@ -1487,8 +1487,7 @@ an:
show_newer: Amostrar mas recients show_newer: Amostrar mas recients
show_older: Amostrar mas antigos show_older: Amostrar mas antigos
show_thread: Amostrar discusión show_thread: Amostrar discusión
sign_in_to_participate: Rechistra-te pa participar en a conversación title: "%{name}: «%{quote}»"
title: '%{name}: «%{quote}»'
visibilities: visibilities:
direct: Directa direct: Directa
private: Nomás amostrar a seguidores private: Nomás amostrar a seguidores
@ -1532,8 +1531,6 @@ an:
min_reblogs: Mantener publicacions reblogueadas mas de 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 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: stream_entries:
pinned: Publicación fixada
reblogged: retutau
sensitive_content: Conteniu sensible sensitive_content: Conteniu sensible
strikes: strikes:
errors: errors:

View file

@ -873,12 +873,12 @@ ar:
no_status_selected: لم يتم تغيير أي منشورات متداوله حيث لم يتم اختيار أي منهم no_status_selected: لم يتم تغيير أي منشورات متداوله حيث لم يتم اختيار أي منهم
not_discoverable: الكاتب لم يختار أن يكون قابلا للاكتشاف not_discoverable: الكاتب لم يختار أن يكون قابلا للاكتشاف
shared_by: shared_by:
zero: لم يتم مشاركته أو تفضيله مطلقًا
one: تمت مشاركته وتفضيله مرة واحدة
two: تمت مشاركته وتفضيله مرتين
few: تمت مشاركته وتفضيله %{friendly_count} مرات few: تمت مشاركته وتفضيله %{friendly_count} مرات
many: تمت مشاركته وتفضيله %{friendly_count} مرات many: تمت مشاركته وتفضيله %{friendly_count} مرات
one: تمت مشاركته وتفضيله مرة واحدة
other: تمت مشاركته وتفضيله %{friendly_count} مرات other: تمت مشاركته وتفضيله %{friendly_count} مرات
two: تمت مشاركته وتفضيله مرتين
zero: لم يتم مشاركته أو تفضيله مطلقًا
title: المنشورات المتداولة title: المنشورات المتداولة
tags: tags:
current_score: التقييم الحالي %{score} current_score: التقييم الحالي %{score}
@ -1325,6 +1325,9 @@ ar:
failed_sign_in_html: فشل محاولة تسجيل الدخول مع %{method} من %{ip} (%{browser}) failed_sign_in_html: فشل محاولة تسجيل الدخول مع %{method} من %{ip} (%{browser})
successful_sign_in_html: تم تسجيل الدخول بنجاح مع %{method} من %{ip} (%{browser}) successful_sign_in_html: تم تسجيل الدخول بنجاح مع %{method} من %{ip} (%{browser})
title: تاريخ المصادقة title: تاريخ المصادقة
mail_subscriptions:
unsubscribe:
complete: إلغاء الاشتراك
media_attachments: media_attachments:
validations: validations:
images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور
@ -1619,7 +1622,6 @@ ar:
show_newer: إظهار أحدث show_newer: إظهار أحدث
show_older: إظهار أقدم show_older: إظهار أقدم
show_thread: اعرض خيط المحادثة show_thread: اعرض خيط المحادثة
sign_in_to_participate: قم بتسجيل الدخول للمشاركة في هذه المحادثة
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: مباشرة direct: مباشرة
@ -1665,8 +1667,6 @@ ar:
min_reblogs: إبقاء المشاركات المعززة أكثر من min_reblogs: إبقاء المشاركات المعززة أكثر من
min_reblogs_hint: لن تُحذف أي من منشوراتك التي أعيد مشاركتها أكثر من هذا العدد من المرات. اتركه فارغاً لحذف المنشورات بغض النظر عن عدد إعادات المشاركة min_reblogs_hint: لن تُحذف أي من منشوراتك التي أعيد مشاركتها أكثر من هذا العدد من المرات. اتركه فارغاً لحذف المنشورات بغض النظر عن عدد إعادات المشاركة
stream_entries: stream_entries:
pinned: منشور مثبّت
reblogged: شارَكَه
sensitive_content: محتوى حساس sensitive_content: محتوى حساس
strikes: strikes:
errors: errors:

View file

@ -1697,7 +1697,6 @@ be:
show_newer: Паказаць навейшыя show_newer: Паказаць навейшыя
show_older: Паказаць старэйшыя show_older: Паказаць старэйшыя
show_thread: Паказаць ланцуг show_thread: Паказаць ланцуг
sign_in_to_participate: Зарэгіструйцеся каб удзельнічаць у абмеркаванні
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Асабіста direct: Асабіста
@ -1743,8 +1742,6 @@ be:
min_reblogs: Захаваць допісы, якія пашырылі хаця б min_reblogs: Захаваць допісы, якія пашырылі хаця б
min_reblogs_hint: Не выдаляе вашыя допісы, якія пашырыла прынамсі вызначаная колькасць людзей. Пакіньце гэтае поле пустым, каб допісы выдаляліся незалежна ад гэтай колькасці min_reblogs_hint: Не выдаляе вашыя допісы, якія пашырыла прынамсі вызначаная колькасць людзей. Пакіньце гэтае поле пустым, каб допісы выдаляліся незалежна ад гэтай колькасці
stream_entries: stream_entries:
pinned: Замацаваны допіс
reblogged: пашыраны
sensitive_content: Далікатны змест sensitive_content: Далікатны змест
strikes: strikes:
errors: errors:

View file

@ -1633,8 +1633,7 @@ bg:
show_newer: Показване на по-нови show_newer: Показване на по-нови
show_older: Показване на по-стари show_older: Показване на по-стари
show_thread: Показване на нишката show_thread: Показване на нишката
sign_in_to_participate: Влезте, за да участвате в разговора title: "%{name}: „%{quote}“"
title: '%{name}: „%{quote}“'
visibilities: visibilities:
direct: Директно direct: Директно
private: Покажи само на последователите си private: Покажи само на последователите си
@ -1679,8 +1678,6 @@ bg:
min_reblogs: Запазване на публикации с поне толкова споделяния min_reblogs: Запазване на публикации с поне толкова споделяния
min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния
stream_entries: stream_entries:
pinned: Закачена публикация
reblogged: подсилено
sensitive_content: Деликатно съдържание sensitive_content: Деликатно съдържание
strikes: strikes:
errors: errors:

View file

@ -229,9 +229,7 @@ bn:
'404': The page you are looking for isn't here. '404': The page you are looking for isn't here.
'406': This page is not available in the requested format. '406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore. '410': The page you were looking for doesn't exist here anymore.
'422':
'429': Too many requests '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure. '503': The page could not be served due to a temporary server failure.
verification: verification:
verification: সত্যতা নির্ধারণ verification: সত্যতা নির্ধারণ

View file

@ -338,9 +338,7 @@ br:
'404': The page you are looking for isn't here. '404': The page you are looking for isn't here.
'406': This page is not available in the requested format. '406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore. '410': The page you were looking for doesn't exist here anymore.
'422':
'429': Too many requests '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure. '503': The page could not be served due to a temporary server failure.
exports: exports:
archive_takeout: archive_takeout:
@ -503,9 +501,6 @@ br:
'604800': 1 sizhunvezh '604800': 1 sizhunvezh
'63113904': 2 vloavezh '63113904': 2 vloavezh
'7889238': 3 months '7889238': 3 months
stream_entries:
pinned: Toud spilhennet
reblogged: en·he deus skignet
themes: themes:
default: Mastodoñ (Teñval) default: Mastodoñ (Teñval)
mastodon-light: Mastodoñ (Sklaer) mastodon-light: Mastodoñ (Sklaer)

View file

@ -5,7 +5,5 @@ bs:
'404': The page you are looking for isn't here. '404': The page you are looking for isn't here.
'406': This page is not available in the requested format. '406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore. '410': The page you were looking for doesn't exist here anymore.
'422':
'429': Too many requests '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure. '503': The page could not be served due to a temporary server failure.

View file

@ -1633,7 +1633,6 @@ ca:
show_newer: Mostra els més nous show_newer: Mostra els més nous
show_older: Mostra els més vells show_older: Mostra els més vells
show_thread: Mostra el fil show_thread: Mostra el fil
sign_in_to_participate: Inicia la sessió per participar a la conversa
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Directe direct: Directe
@ -1679,8 +1678,6 @@ ca:
min_reblogs: Mantenir les publicacions impulsades més de 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. 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: stream_entries:
pinned: Publicació fixada
reblogged: ha impulsat
sensitive_content: Contingut sensible sensitive_content: Contingut sensible
strikes: strikes:
errors: errors:
@ -1782,6 +1779,8 @@ ca:
signed_in_as: 'Sessió iniciada com a:' signed_in_as: 'Sessió iniciada com a:'
verification: verification:
extra_instructions_html: <strong>Consell:</strong> l'enllaç al vostre lloc web pot ser invisible. La part important és <code>rel="me"</code> que evita que us suplantin la identitat a llocs web amb contingut generat pels usuaris. Fins i tot podeu generar una etiqueta <code>link</code> a la capçalera de la pàgina en comptes d'una <code>a</code>, però el codi HTML ha de ser accessible sense requerir executar JavaScript. extra_instructions_html: <strong>Consell:</strong> l'enllaç al vostre lloc web pot ser invisible. La part important és <code>rel="me"</code> que evita que us suplantin la identitat a llocs web amb contingut generat pels usuaris. Fins i tot podeu generar una etiqueta <code>link</code> a la capçalera de la pàgina en comptes d'una <code>a</code>, però el codi HTML ha de ser accessible sense requerir executar JavaScript.
here_is_how: Així és com
hint_html: "<strong>Verifikimi i identitetit të secilit në Mastodon është për këdo.</strong> Bazuar në standarde web të hapët, falas për so dhe për mot. Krejt çju duhet është një sajt personal me të cilin ju njohin njerëzit. Kur bëni lidhjen me këtë sajt që nga profili juaj, do të kontrollojmë nëse sajti përgjigjet me një lidhje për te profili juaj dhe shfaq një tregues në të."
instructions_html: Copieu i enganxeu el següent codi HTML al vostre lloc web. Després, afegiu l'adreça del vostre lloc web dins d'un dels camps extres del vostre perfil i deseu els canvis. instructions_html: Copieu i enganxeu el següent codi HTML al vostre lloc web. Després, afegiu l'adreça del vostre lloc web dins d'un dels camps extres del vostre perfil i deseu els canvis.
verification: Verificació verification: Verificació
verified_links: Els teus enllaços verificats verified_links: Els teus enllaços verificats

View file

@ -995,7 +995,6 @@ ckb:
show_newer: نوێتر پیشان بدە show_newer: نوێتر پیشان بدە
show_older: پیشاندانی کۆنتر show_older: پیشاندانی کۆنتر
show_thread: نیشاندانی ڕشتە show_thread: نیشاندانی ڕشتە
sign_in_to_participate: بچۆ ژوورەوە بۆ بەشداریکردن لە گفتوگۆکەدا
visibilities: visibilities:
private: شوێنکەوتوانی تەنها private: شوێنکەوتوانی تەنها
private_long: تەنها بۆ شوێنکەوتوانی پیشان بدە private_long: تەنها بۆ شوێنکەوتوانی پیشان بدە
@ -1004,8 +1003,6 @@ ckb:
unlisted: پێرست نەبووە unlisted: پێرست نەبووە
unlisted_long: هەموو کەس دەتوانێت بیبینێت، بەڵام لە هێڵی کاتی گشتی دا نەریزراوە unlisted_long: هەموو کەس دەتوانێت بیبینێت، بەڵام لە هێڵی کاتی گشتی دا نەریزراوە
stream_entries: stream_entries:
pinned: توتی چەسپکراو
reblogged: بەهێزکردن
sensitive_content: ناوەڕۆکی هەستیار sensitive_content: ناوەڕۆکی هەستیار
tags: tags:
does_not_match_previous_name: لەگەڵ ناوی پێشوو یەک ناگرێتەوە does_not_match_previous_name: لەگەڵ ناوی پێشوو یەک ناگرێتەوە

View file

@ -982,7 +982,6 @@ co:
show_newer: Vede i più ricenti show_newer: Vede i più ricenti
show_older: Vede i più anziani show_older: Vede i più anziani
show_thread: Vede u filu show_thread: Vede u filu
sign_in_to_participate: Cunnettatevi per participà à a cunversazione
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direttu direct: Direttu
@ -1020,8 +1019,6 @@ co:
min_reblogs: Cunservà i statuti spartuti più di 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 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: stream_entries:
pinned: Statutu puntarulatu
reblogged: hà spartutu
sensitive_content: Cuntenutu sensibile sensitive_content: Cuntenutu sensibile
tags: tags:
does_not_match_previous_name: ùn currisponde micca à l'anzianu nome does_not_match_previous_name: ùn currisponde micca à l'anzianu nome

View file

@ -1641,8 +1641,7 @@ cs:
show_newer: Zobrazit novější show_newer: Zobrazit novější
show_older: Zobrazit starší show_older: Zobrazit starší
show_thread: Zobrazit vlákno show_thread: Zobrazit vlákno
sign_in_to_participate: Chcete-li se zúčastnit této konverzace, přihlaste se title: "%{name}: „%{quote}“"
title: '%{name}: „%{quote}“'
visibilities: visibilities:
direct: Přímé direct: Přímé
private: Pouze pro sledující private: Pouze pro sledující
@ -1687,8 +1686,6 @@ cs:
min_reblogs: Zachovat příspěvky boostnuté alespoň 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í 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: stream_entries:
pinned: Připnutý příspěvek
reblogged: boostnul
sensitive_content: Citlivý obsah sensitive_content: Citlivý obsah
strikes: strikes:
errors: errors:

View file

@ -513,6 +513,8 @@ cy:
few: Ymdrechion wedi methu ar %{count} diwrnod gwahanol. few: Ymdrechion wedi methu ar %{count} diwrnod gwahanol.
many: Ymdrechion wedi methu ar %{count} diwrnod gwahanol. many: Ymdrechion wedi methu ar %{count} diwrnod gwahanol.
other: Ymdrechion wedi methu ar %{count} diwrnod gwahanol. other: Ymdrechion wedi methu ar %{count} diwrnod gwahanol.
two: Ymdrechion wedi methu ar %{count} ddiwrnod gwahanol.
zero: Ymdrechion wedi methu ar %{count} o ddyddiau gwahanol.
no_failures_recorded: Dim methiannau wedi'u cofnodi. no_failures_recorded: Dim methiannau wedi'u cofnodi.
title: Argaeledd title: Argaeledd
warning: Bu'r ymgais olaf i gysylltu â'r gweinydd hwn yn aflwyddiannus warning: Bu'r ymgais olaf i gysylltu â'r gweinydd hwn yn aflwyddiannus
@ -1333,6 +1335,8 @@ cy:
few: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. few: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis.
many: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. many: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis.
other: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. other: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis.
two: Mae pob un o'r <strong>%{count}</strong> eitem sy'n cyfateb i'ch chwiliad wedi'u dewis.
zero: Does <strong>%{count}</strong> o eitemau sy'n cyfateb i'ch chwiliad wedi'u dewis.
cancel: Diddymu cancel: Diddymu
changes_saved_msg: Llwyddwyd i gadw'r newidiadau! changes_saved_msg: Llwyddwyd i gadw'r newidiadau!
confirm: Cadarnhau confirm: Cadarnhau
@ -1761,7 +1765,6 @@ cy:
show_newer: Dangos y diweddaraf show_newer: Dangos y diweddaraf
show_older: Dangos pethau hŷn show_older: Dangos pethau hŷn
show_thread: Dangos trywydd show_thread: Dangos trywydd
sign_in_to_participate: Mengofnodwch i gymryd rhan yn y sgwrs
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Uniongyrchol direct: Uniongyrchol
@ -1807,8 +1810,6 @@ cy:
min_reblogs: Cadw postiadau wedi eu hybu o leiaf 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 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: stream_entries:
pinned: Postiad wedi'i binio
reblogged: hybwyd
sensitive_content: Cynnwys sensitif sensitive_content: Cynnwys sensitif
strikes: strikes:
errors: errors:

View file

@ -381,6 +381,15 @@ da:
undo: Forbyd federering med domæne undo: Forbyd federering med domæne
domain_blocks: domain_blocks:
add_new: Tilføj ny domæneblokering add_new: Tilføj ny domæneblokering
confirm_suspension:
cancel: Fortryd
confirm: Suspendér
permanent_action: Fortrydelse af suspensionen vil ikke genoprette nogen data eller sammenhæng.
preamble_html: Du er ved at suspendere <strong>%{domain}</strong> og dets underdomæner.
remove_all_data: Dette vil fjerne alt indhold, medier og profildata for dette domænes konti fra din server.
stop_communication: Din server vil stoppe kommunikationen med disse servere.
title: Annullér domæneblokering for domænet %{domain}
undo_relationships: Dette vil fortryde ethvert følgeforhold mellem konti for disse servere og din.
created_msg: Domæneblokering under behandling created_msg: Domæneblokering under behandling
destroyed_msg: Domæneblokering er blevet fjernet destroyed_msg: Domæneblokering er blevet fjernet
domain: Domæne domain: Domæne
@ -730,6 +739,9 @@ da:
branding: branding:
preamble: Serverens branding adskiller den fra andres i netværket. Oplysningerne kan vises på tværs af div. miljøer, såsom Mastodon-webgrænsefladen, dedikerede applikationer, i-link forhåndsvisninger på andre websteder og i besked-apps mv. Oplysningerne bør derfor være klare og detaljerede, men samtidig kortfattede. preamble: Serverens branding adskiller den fra andres i netværket. Oplysningerne kan vises på tværs af div. miljøer, såsom Mastodon-webgrænsefladen, dedikerede applikationer, i-link forhåndsvisninger på andre websteder og i besked-apps mv. Oplysningerne bør derfor være klare og detaljerede, men samtidig kortfattede.
title: Branding title: Branding
captcha_enabled:
desc_html: Dette er afhængig af eksterne scripts fra hCaptcha, som kan være en sikkerhed og privatlivets fred. Derudover kan <strong>dette gøre registreringsprocessen betydeligt mindre tilgængelig for nogle (især deaktiveret) personer</strong>. Af disse grunde bedes De overveje alternative foranstaltninger såsom godkendelsesbaseret eller inviteret til at blive registreret.
title: Kræv nye brugere for at løse en CAPTCHA for at bekræfte deres konto
content_retention: content_retention:
preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold. preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold.
title: Indholdsopbevaring title: Indholdsopbevaring
@ -965,6 +977,7 @@ da:
notification_preferences: Skift e-mailpræferencer notification_preferences: Skift e-mailpræferencer
salutation: "%{name}" salutation: "%{name}"
settings: 'Skift e-mailpræferencer: %{link}' settings: 'Skift e-mailpræferencer: %{link}'
unsubscribe: Opsig abonnement
view: 'Vis:' view: 'Vis:'
view_profile: Vis profil view_profile: Vis profil
view_status: Vis status view_status: Vis status
@ -978,6 +991,10 @@ da:
your_token: Dit adgangstoken your_token: Dit adgangstoken
auth: auth:
apply_for_account: Anmod om en konto apply_for_account: Anmod om en konto
captcha_confirmation:
help_html: Hvis du har problemer med at løse CAPTCHA, kan du komme i kontakt med os via %{email} og vi kan hjælpe dig.
hint_html: Bare en ting mere! Vi er nødt til at bekræfte, at du er et menneske (dette er, så vi kan holde spam ud!). Løs CAPTCHA nedenfor og klik på "Fortsæt".
title: Sikkerhedstjek
confirmations: confirmations:
wrong_email_hint: Er denne e-mailadresse 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: Slet konto
@ -1014,8 +1031,11 @@ da:
rules: rules:
accept: Acceptér accept: Acceptér
back: Tilbage back: Tilbage
invited_by: 'Du kan tilmelde dig %{domain} takket være den invitation, du har modtaget fra:'
preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne. preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne.
preamble_invited: Før du fortsætter, bedes du overveje de grundregler, der er fastsat af moderatorerne af %{domain}.
title: Nogle grundregler. title: Nogle grundregler.
title_invited: Du er blevet spiddet!
security: Sikkerhed security: Sikkerhed
set_new_password: Opsæt ny adgangskode set_new_password: Opsæt ny adgangskode
setup: setup:
@ -1128,6 +1148,11 @@ da:
your_appeal_rejected: Din appel er afvist your_appeal_rejected: Din appel er afvist
domain_validator: domain_validator:
invalid_domain: er ikke et gyldigt domænenavn invalid_domain: er ikke et gyldigt domænenavn
edit_profile:
basic_information: Oplysninger
hint_html: "<strong>Tilpas hvad folk ser på din offentlige profil og ved siden af dine indlæg.</strong> Andre personer vil mere sandsynligt følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede."
other: Andre
safety_and_privacy: Sikkerhed og Privatliv
errors: errors:
'400': Din indsendte anmodning er ugyldig eller fejlbehæftet. '400': Din indsendte anmodning er ugyldig eller fejlbehæftet.
'403': Du har ikke tilladelse til at se denne side. '403': Du har ikke tilladelse til at se denne side.
@ -1322,6 +1347,21 @@ da:
failed_sign_in_html: Mislykket indlogning med %{method} fra %{ip} (%{browser}) failed_sign_in_html: Mislykket indlogning med %{method} fra %{ip} (%{browser})
successful_sign_in_html: Gennemført indlogning med %{method} fra %{ip} (%{browser}) successful_sign_in_html: Gennemført indlogning med %{method} fra %{ip} (%{browser})
title: Godkendelseshistorik title: Godkendelseshistorik
mail_subscriptions:
unsubscribe:
action: Ja, afmeld
complete: Frameldt
confirmation_html: Er du sikker på, at du vil afmelde dig fra at modtage %{type} for Mastodon på %{domain} til din e-mail på %{email}? Du kan altid gentilmelde dig dine <a href="%{settings_path}">e-mail-notifikationsindstillinger</a>.
emails:
notification_emails:
favourite: favorit notifikations e-mails
follow: favorit notifikations e-mails
follow_request: følg anmodning e-mails
mention: favorit notifikations e-mails
reblog: favorit notifikations e-mails
resubscribe_html: Hvis du ved en fejl har afmeldt dig, kan du gentilmelde dig dine <a href="%{settings_path}">e-mail-notifikationsindstillinger</a>.
success_html: Du vil ikke længere modtage %{type} for Mastodon på %{domain} til din e-mail på %{email}.
title: Opsig abonnement
media_attachments: media_attachments:
validations: validations:
images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold
@ -1437,6 +1477,7 @@ da:
expired: Afstemningen er allerede afsluttet expired: Afstemningen er allerede afsluttet
invalid_choice: Den valgte stemmemulighed findes ikke invalid_choice: Den valgte stemmemulighed findes ikke
over_character_limit: må maks. udgøre %{max} tegn hver over_character_limit: må maks. udgøre %{max} tegn hver
self_vote: Du kan ikke stemme på dit eget indlæg.
too_few_options: skal have flere end ét valg too_few_options: skal have flere end ét valg
too_many_options: for mange svar (maks. %{max}) too_many_options: for mange svar (maks. %{max})
preferences: preferences:
@ -1592,7 +1633,6 @@ da:
show_newer: Vis nyere show_newer: Vis nyere
show_older: Vis ældre show_older: Vis ældre
show_thread: Vis tråd show_thread: Vis tråd
sign_in_to_participate: Log ind for at deltage i konversationen
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direkte direct: Direkte
@ -1638,8 +1678,6 @@ da:
min_reblogs: Behold indlæg boostet mindst 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 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: stream_entries:
pinned: Fastgjort indlæg
reblogged: boostet
sensitive_content: Sensitivt indhold sensitive_content: Sensitivt indhold
strikes: strikes:
errors: errors:
@ -1740,7 +1778,12 @@ da:
seamless_external_login: Du er logget ind via en ekstern tjeneste, så adgangskode- og e-mailindstillinger er utilgængelige. 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:' signed_in_as: 'Logget ind som:'
verification: verification:
extra_instructions_html: <strong>Tip:</strong> Linket på din hjemmeside kan være usynligt. Den vigtige del er <code>rel="me"</code> , som forhindrer impersonation på websteder med brugergenereret indhold. Du kan endda bruge et <code>link</code> tag i overskriften på siden i stedet for <code>a</code>, men HTML skal være tilgængelig uden at udføre JavaScript.
here_is_how: Sådan gør du
hint_html: "<strong>Bekræftelse af din identitet på Mastodon er for alle.</strong> Baseret på åbne webstandarder, nu og for evigt gratis. Alt du behøver er en personlig hjemmeside, som folk genkende dig ved. Når du linker til denne hjemmeside fra din profil, vi vil kontrollere, at hjemmesiden linker tilbage til din profil og vise en visuel indikator på det."
instructions_html: Kopier og indsæt koden nedenfor i HTML på din hjemmeside. Tilføj derefter adressen på dit websted i et af de ekstra felter på din profil fra fanen "Rediger profil" og gem ændringer.
verification: Bekræftelse verification: Bekræftelse
verified_links: "%d bekræftede links"
webauthn_credentials: webauthn_credentials:
add: Tilføj ny sikkerhedsnøgle add: Tilføj ny sikkerhedsnøgle
create: create:

View file

@ -644,13 +644,13 @@ de:
delete_html: Die anstößigen Beiträge entfernen delete_html: Die anstößigen Beiträge entfernen
mark_as_sensitive_html: Medien der anstößigen Beiträge mit einer Inhaltswarnung versehen mark_as_sensitive_html: Medien der anstößigen Beiträge mit einer Inhaltswarnung versehen
silence_html: Schränkt die Reichweite von <strong>@%{acct}</strong> stark ein, indem das Profil und dessen Inhalte nur für Personen sichtbar sind, die dem Profil bereits folgen oder es manuell aufrufen silence_html: Schränkt die Reichweite von <strong>@%{acct}</strong> 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: <strong>@%{acct}</strong> sperren, sodass das Profil und dessen Inhalte nicht mehr zugänglich sind und keine Interaktion mehr möglich ist suspend_html: "<strong>@%{acct}</strong> sperren, sodass das Profil und dessen Inhalte nicht mehr zugänglich sind und keine Interaktion mehr möglich ist"
close_report: 'Meldung Nr. %{id} als erledigt markieren' close_report: Meldung Nr. %{id} als erledigt markieren
close_reports_html: <strong>Alle</strong> Meldungen gegen <strong>@%{acct}</strong> als erledigt markieren close_reports_html: "<strong>Alle</strong> Meldungen gegen <strong>@%{acct}</strong> als erledigt markieren"
delete_data_html: Das Profil und die Inhalte von <strong>@%{acct}</strong> werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt delete_data_html: Das Profil und die Inhalte von <strong>@%{acct}</strong> werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt
preview_preamble_html: "<strong>@%{acct}</strong> wird eine Warnung mit folgenden Inhalten erhalten:" preview_preamble_html: "<strong>@%{acct}</strong> wird eine Warnung mit folgenden Inhalten erhalten:"
record_strike_html: Einen Verstoß gegen <strong>@%{acct}</strong> eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können record_strike_html: Einen Verstoß gegen <strong>@%{acct}</strong> eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können
send_email_html: <strong>@%{acct}</strong> eine Verwarnung per E-Mail senden send_email_html: "<strong>@%{acct}</strong> eine Verwarnung per E-Mail senden"
warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme.
target_origin: Domain des gemeldeten Kontos target_origin: Domain des gemeldeten Kontos
title: Meldungen title: Meldungen
@ -1633,8 +1633,7 @@ de:
show_newer: Neuere anzeigen show_newer: Neuere anzeigen
show_older: Ältere anzeigen show_older: Ältere anzeigen
show_thread: Thread anzeigen show_thread: Thread anzeigen
sign_in_to_participate: Melde dich an, um an der Unterhaltung teilzunehmen title: "%{name}: „%{quote}“"
title: '%{name}: „%{quote}“'
visibilities: visibilities:
direct: Direktnachricht direct: Direktnachricht
private: Nur eigene Follower private: Nur eigene Follower
@ -1679,8 +1678,6 @@ de:
min_reblogs: Beiträge behalten, die mindestens so oft geteilt wurden min_reblogs: Beiträge behalten, die mindestens so oft geteilt wurden
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 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: stream_entries:
pinned: Angehefteter Beitrag
reblogged: teilte
sensitive_content: Inhaltswarnung sensitive_content: Inhaltswarnung
strikes: strikes:
errors: errors:

View file

@ -7,7 +7,7 @@ fy:
failure: failure:
already_authenticated: Jo binne al oanmeld. already_authenticated: Jo binne al oanmeld.
inactive: Jo account is noch net aktivearre. inactive: Jo account is noch net aktivearre.
invalid: '%{authentication_keys} of wachtwurd ûnjildich.' invalid: "%{authentication_keys} of wachtwurd ûnjildich."
last_attempt: Jo hawwe noch ien besykjen oer eardat jo account blokkearre wurdt. last_attempt: Jo hawwe noch ien besykjen oer eardat jo account blokkearre wurdt.
locked: Jo account is blokkearre. locked: Jo account is blokkearre.
not_found_in_database: '%{authentication_keys} of wachtwurd ûnjildich.' not_found_in_database: '%{authentication_keys} of wachtwurd ûnjildich.'
@ -21,7 +21,9 @@ fy:
action_with_app: Befêstigje en nei %{app} tebekgean action_with_app: Befêstigje en nei %{app} tebekgean
explanation: Jo hawwe in account op %{host} oanmakke en mei ien klik kinne jo dizze aktivearje. Wanneart jo dizze account net oanmakke hawwe, meie jo dit e-mailberjocht negearje. explanation: Jo hawwe in account op %{host} oanmakke en mei ien klik kinne jo dizze aktivearje. Wanneart jo dizze account net oanmakke hawwe, meie jo dit e-mailberjocht negearje.
explanation_when_pending: Jo freegje mei dit e-mailadres in útnûging oan foar %{host}. Neidat jo jo e-mailadres befêstige hawwe, beoardielje wy jo oanfraach. Jo kinne oant dan noch net oanmelde. Wanneart jo oanfraach ôfwêzen wurdt, wurde jo gegevens fuortsmiten en hoege jo dêrnei fierder neat mear te dwaan. Wanneart jo dit net wiene, kinne jo dit e-mailberjocht negearje. explanation_when_pending: Jo freegje mei dit e-mailadres in útnûging oan foar %{host}. Neidat jo jo e-mailadres befêstige hawwe, beoardielje wy jo oanfraach. Jo kinne oant dan noch net oanmelde. Wanneart jo oanfraach ôfwêzen wurdt, wurde jo gegevens fuortsmiten en hoege jo dêrnei fierder neat mear te dwaan. Wanneart jo dit net wiene, kinne jo dit e-mailberjocht negearje.
extra_html: "128 / 5.000\nKontrolearje ek <a href=\"%{terms_path}\">de regels fan de server</a> en <a href=\"%{policy_path}\">ús tsjinstbetingsten</a>." extra_html: |-
128 / 5.000
Kontrolearje ek <a href="%{terms_path}">de regels fan de server</a> en <a href="%{policy_path}">ús tsjinstbetingsten</a>.
subject: 'Mastodon: Befêstigingsynstruksjes foar %{instance}' subject: 'Mastodon: Befêstigingsynstruksjes foar %{instance}'
title: E-mailadres ferifiearje title: E-mailadres ferifiearje
email_changed: email_changed:

View file

@ -43,7 +43,7 @@ zh-CN:
action: 更改密码 action: 更改密码
explanation: 点击下面的链接来更改账户的密码。 explanation: 点击下面的链接来更改账户的密码。
extra: 如果你并没有请求本次变更,请忽略此邮件。你的密码只有在你点击上面的链接并输入新密码后才会更改。 extra: 如果你并没有请求本次变更,请忽略此邮件。你的密码只有在你点击上面的链接并输入新密码后才会更改。
subject: 'Mastodon重置密码说明' subject: Mastodon重置密码说明
title: 重置密码 title: 重置密码
two_factor_disabled: two_factor_disabled:
explanation: 账号的双重认证已禁用。现在仅使用邮箱和密码即可登录。 explanation: 账号的双重认证已禁用。现在仅使用邮箱和密码即可登录。

View file

@ -59,7 +59,7 @@ eo:
error: error:
title: Eraro okazis title: Eraro okazis
new: new:
prompt_html: "%{client_name} volas permeso por aliri vian konton. <strong>Se vi ne konfidu ĝin, ne rajtigu ĝin.</strong>" prompt_html: "%{client_name} petas permeson por aliri vian konton. <strong>Se vi ne fidas ĝin, ne rajtigu ĝin.</strong>"
review_permissions: Revizu permesojn review_permissions: Revizu permesojn
title: Rajtigo bezonata title: Rajtigo bezonata
show: show:

View file

@ -146,12 +146,17 @@ fa:
application: application:
title: درخواست اجازهٔ OAuth title: درخواست اجازهٔ OAuth
scopes: scopes:
"admin:read": خواندن تمام داده‌ها روی کارساز admin:read: خواندن تمام داده‌ها روی کارساز
"admin:read:accounts": خواندن اطّلاعات حساس از همهٔ حساب‌ها admin:read:accounts: خواندن اطّلاعات حساس از همهٔ حساب‌ها
"admin:read:reports": خواندن اطّلاعات حساس از همهٔ گزارش‌ها و حساب‌های گزارش‌شده admin:read:domain_allows: خواندن اطّلاعات حساس از همهٔ دامنه ها اجازه داده شد
"admin:write": تغییر تمام داده‌ها روی کارساز admin:read:domain_blocks: خواندن اطّلاعات حساس از همهٔ دامنه های مسدودشده
"admin:write:accounts": انجام کنش مدیریتی روی حساب‌ها admin:read:email_domain_blocks: خواندن اطّلاعات حساس از همهٔ دامنه های رایانامه های مسدودشده
"admin:write:reports": انجام کنش مدیریتی روی گزارش‌ها admin:read:ip_blocks: خواندن اطّلاعات حساس از همهٔ IPهای مسدودشده
admin:read:reports: خواندن اطّلاعات حساس از همهٔ گزارش‌ها و حساب‌های گزارش‌شده
admin:write: تغییر تمام داده‌ها روی کارساز
admin:write:accounts: انجام کنش مدیریتی روی حساب‌ها
admin:write:ip_blocks: انجام کنش مدیریتی روی مسدودسازی های IP
admin:write:reports: انجام کنش مدیریتی روی گزارش‌ها
crypto: از رمزگذاری سرتاسر استفاده کنید crypto: از رمزگذاری سرتاسر استفاده کنید
follow: پیگیری، مسدودسازی، لغو مسدودسازی، و لغو پیگیری حساب‌ها follow: پیگیری، مسدودسازی، لغو مسدودسازی، و لغو پیگیری حساب‌ها
push: دریافت آگاهی‌ای ارسالیتان push: دریافت آگاهی‌ای ارسالیتان

View file

@ -179,16 +179,16 @@ ko:
"read:search": 당신의 권한으로 검색 "read:search": 당신의 권한으로 검색
"read:statuses": 모든 게시물 보기 "read:statuses": 모든 게시물 보기
write: 계정 정보 수정 write: 계정 정보 수정
"write:accounts": 프로필 수정 write:accounts: 프로필 수정
"write:blocks": 계정 및 도메인 차단 write:blocks: 계정 및 도메인 차단
"write:bookmarks": 게시물을 북마크에 넣기 write:bookmarks: 게시물을 북마크에 넣기
"write:conversations": 뮤트 및 대화 삭제 write:conversations: 뮤트 및 대화 삭제
"write:favourites": 게시물 좋아요 write:favourites: 게시물 좋아요
"write:filters": 필터 만들기 write:filters: 필터 만들기
"write:follows": 사람을 팔로우 write:follows: 사람을 팔로우
"write:lists": 리스트 만들기 write:lists: 리스트 만들기
"write:media": 미디어 파일 업로드 write:media: 미디어 파일 업로드
"write:mutes": 사람이나 대화 뮤트 write:mutes: 사람이나 대화 뮤트
"write:notifications": 알림 모두 지우기 write:notifications: 알림 모두 지우기
"write:reports": 다른 사람을 신고 write:reports: 다른 사람을 신고
"write:statuses": 게시물 게시 write:statuses: 게시물 게시

View file

@ -146,22 +146,22 @@ zh-TW:
application: application:
title: 需要 OAuth 授權 title: 需要 OAuth 授權
scopes: scopes:
"admin:read": 讀取伺服器的所有資料 admin:read: 讀取伺服器的所有資料
"admin:read:accounts": 讀取所有帳號的敏感內容 admin:read:accounts: 讀取所有帳號的敏感內容
"admin:read:canonical_email_blocks": 讀取所有電子郵件黑名單之敏感內容 admin:read:canonical_email_blocks: 讀取所有電子郵件黑名單之敏感內容
"admin:read:domain_allows": 讀取所有網域白名單之敏感內容 admin:read:domain_allows: 讀取所有網域白名單之敏感內容
"admin:read:domain_blocks": 讀取所有網域黑名單之敏感內容 admin:read:domain_blocks: 讀取所有網域黑名單之敏感內容
"admin:read:email_domain_blocks": 讀取所有電子郵件黑名單之敏感內容 admin:read:email_domain_blocks: 讀取所有電子郵件黑名單之敏感內容
"admin:read:ip_blocks": 讀取所有 IP 黑名單之敏感內容 admin:read:ip_blocks: 讀取所有 IP 黑名單之敏感內容
"admin:read:reports": 讀取所有回報 / 被回報帳號之敏感內容 admin:read:reports: 讀取所有回報 / 被回報帳號之敏感內容
"admin:write": 修改伺服器的所有資料 admin:write: 修改伺服器的所有資料
"admin:write:accounts": 對帳號進行管理動作 admin:write:accounts: 對帳號進行管理動作
"admin:write:canonical_email_blocks": 對電子郵件黑名單進行管理動作 admin:write:canonical_email_blocks: 對電子郵件黑名單進行管理動作
"admin:write:domain_allows": 對網域白名單進行管理動作 admin:write:domain_allows: 對網域白名單進行管理動作
"admin:write:domain_blocks": 對網域黑名單進行管理動作 admin:write:domain_blocks: 對網域黑名單進行管理動作
"admin:write:email_domain_blocks": 對電子郵件黑名單進行管理動作 admin:write:email_domain_blocks: 對電子郵件黑名單進行管理動作
"admin:write:ip_blocks": 對 IP 黑名單進行管理動作 admin:write:ip_blocks: 對 IP 黑名單進行管理動作
"admin:write:reports": 對報告進行管理動作 admin:write:reports: 對報告進行管理動作
crypto: 使用端到端加密 crypto: 使用端到端加密
follow: 修改帳號關係 follow: 修改帳號關係
push: 接收帳號的推播通知 push: 接收帳號的推播通知

View file

@ -1569,7 +1569,6 @@ el:
show_newer: Εμφάνιση νεότερων show_newer: Εμφάνιση νεότερων
show_older: Εμφάνιση παλαιότερων show_older: Εμφάνιση παλαιότερων
show_thread: Εμφάνιση νήματος show_thread: Εμφάνιση νήματος
sign_in_to_participate: Συνδέσου για να συμμετάσχεις στη συζήτηση
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Άμεση direct: Άμεση
@ -1615,8 +1614,6 @@ el:
min_reblogs: Διατήρηση αναρτήσεων που έχουν ενισχυθεί τουλάχιστον min_reblogs: Διατήρηση αναρτήσεων που έχουν ενισχυθεί τουλάχιστον
min_reblogs_hint: Δεν διαγράφει καμία από τις δημοσιεύσεις σας που έχει λάβει τουλάχιστον αυτόν τον αριθμό ενισχύσεων. Αφήστε κενό για να διαγράψετε δημοσιεύσεις ανεξάρτητα από τον αριθμό των ενισχύσεων min_reblogs_hint: Δεν διαγράφει καμία από τις δημοσιεύσεις σας που έχει λάβει τουλάχιστον αυτόν τον αριθμό ενισχύσεων. Αφήστε κενό για να διαγράψετε δημοσιεύσεις ανεξάρτητα από τον αριθμό των ενισχύσεων
stream_entries: stream_entries:
pinned: Καρφιτσωμένη ανάρτηση
reblogged: ενισχύθηκε
sensitive_content: Ευαίσθητο περιεχόμενο sensitive_content: Ευαίσθητο περιεχόμενο
strikes: strikes:
errors: errors:

View file

@ -1633,7 +1633,6 @@ en-GB:
show_newer: Show newer show_newer: Show newer
show_older: Show older show_older: Show older
show_thread: Show thread show_thread: Show thread
sign_in_to_participate: Sign in to participate in the conversation
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direct direct: Direct
@ -1679,8 +1678,6 @@ en-GB:
min_reblogs: Keep posts boosted at least 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 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: stream_entries:
pinned: Pinned post
reblogged: boosted
sensitive_content: Sensitive content sensitive_content: Sensitive content
strikes: strikes:
errors: errors:

View file

@ -809,7 +809,7 @@ en:
approved: Approval required for sign up approved: Approval required for sign up
none: Nobody can sign up none: Nobody can sign up
open: Anyone can sign up open: Anyone can sign up
title: Server Settings title: Server settings
site_uploads: site_uploads:
delete: Delete uploaded file delete: Delete uploaded file
destroyed_msg: Site upload successfully deleted! destroyed_msg: Site upload successfully deleted!
@ -1746,7 +1746,6 @@ en:
show_newer: Show newer show_newer: Show newer
show_older: Show older show_older: Show older
show_thread: Show thread show_thread: Show thread
sign_in_to_participate: Login to participate in the conversation
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direct direct: Direct
@ -1795,8 +1794,6 @@ en:
min_reblogs: Keep posts boosted at least 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 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: stream_entries:
pinned: Pinned post
reblogged: boosted
sensitive_content: Sensitive content sensitive_content: Sensitive content
strikes: strikes:
errors: errors:

View file

@ -1236,7 +1236,7 @@ eo:
other: <strong>%{count}</strong> eroj ĉe ĉi tiu paĝo elektitas. other: <strong>%{count}</strong> eroj ĉe ĉi tiu paĝo elektitas.
all_matching_items_selected_html: all_matching_items_selected_html:
one: "<strong>%{count}</strong> ero kiu kongruas vian serĉon elektitas." one: "<strong>%{count}</strong> ero kiu kongruas vian serĉon elektitas."
other: <strong>%{count}</strong> eroj kiuj kongruas vian serĉon elektitas. other: "<strong>%{count}</strong> eroj kiuj kongruas vian serĉon elektitas."
cancel: Nuligi cancel: Nuligi
changes_saved_msg: Ŝanĝoj sukcese konservitaj! changes_saved_msg: Ŝanĝoj sukcese konservitaj!
confirm: Konfirmi confirm: Konfirmi
@ -1257,7 +1257,7 @@ eo:
errors: errors:
empty: Malpena CSV-dosiero empty: Malpena CSV-dosiero
incompatible_type: Nekongrua kun la elektita importotipo incompatible_type: Nekongrua kun la elektita importotipo
invalid_csv_file: 'Nevalida CSV-dosiero. %{error}' invalid_csv_file: Nevalida CSV-dosiero. %{error}
over_rows_processing_limit: enhavas pli ol %{count} vicoj over_rows_processing_limit: enhavas pli ol %{count} vicoj
too_large: La dosiero estas tro larĝa too_large: La dosiero estas tro larĝa
failures: Malsukcesoj failures: Malsukcesoj
@ -1586,8 +1586,7 @@ eo:
show_newer: Montri pli novajn show_newer: Montri pli novajn
show_older: Montri pli malnovajn show_older: Montri pli malnovajn
show_thread: Montri la mesaĝaron show_thread: Montri la mesaĝaron
sign_in_to_participate: Ensalutu por partopreni la konversacion title: "%{name}: “%{quote}”"
title: '%{name}: “%{quote}”'
visibilities: visibilities:
direct: Rekta direct: Rekta
private: Montri nur al sekvantoj private: Montri nur al sekvantoj
@ -1632,8 +1631,6 @@ eo:
min_reblogs: Konservi diskonitajn mesaĝojn almenau 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 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: stream_entries:
pinned: Fiksita afiŝo
reblogged: diskonigita
sensitive_content: Tikla enhavo sensitive_content: Tikla enhavo
strikes: strikes:
errors: errors:

View file

@ -993,7 +993,7 @@ es-AR:
apply_for_account: Solicitar una cuenta apply_for_account: Solicitar una cuenta
captcha_confirmation: captcha_confirmation:
help_html: Si tenés problemas resolviendo la CAPTCHA, podés ponerte en contacto con nosotros a través de %{email} y te vamos a ayudar. help_html: Si tenés problemas resolviendo la CAPTCHA, podés ponerte en contacto con nosotros a través de %{email} y te vamos a ayudar.
hint_html: '¡Sólo una cosa más! Necesitamos confirmar que sos humano (¡esto es para que podamos mantener el spam fuera!). Resuelvé la CAPTCHA abajo y hacé clic en "Continuar".' hint_html: ¡Sólo una cosa más! Necesitamos confirmar que sos humano (¡esto es para que podamos mantener el spam fuera!). Resuelvé la CAPTCHA abajo y hacé clic en "Continuar".
title: Comprobación de seguridad title: Comprobación de seguridad
confirmations: 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. wrong_email_hint: Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta.
@ -1242,7 +1242,7 @@ es-AR:
one: "<strong>%{count}</strong> elemento que coincide con tu búsqueda está seleccionado." one: "<strong>%{count}</strong> elemento que coincide con tu búsqueda está seleccionado."
other: Todos los <strong>%{count}</strong> elementos que coinciden con tu búsqueda están seleccionados. other: Todos los <strong>%{count}</strong> elementos que coinciden con tu búsqueda están seleccionados.
cancel: Cancelar cancel: Cancelar
changes_saved_msg: '¡Cambios guardados exitosamente!' changes_saved_msg: "¡Cambios guardados exitosamente!"
confirm: Confirmar confirm: Confirmar
copy: Copiar copy: Copiar
delete: Eliminar delete: Eliminar
@ -1351,7 +1351,7 @@ es-AR:
unsubscribe: unsubscribe:
action: Sí, desuscribir action: Sí, desuscribir
complete: Desuscripto complete: Desuscripto
confirmation_html: '¿Estás seguro que querés dejar de recibir %{type} de Mastodon en %{domain} a tu correo electrónico %{email}? Siempre podrás volver a suscribirte desde la <a href="%{settings_path}"> configuración de notificaciones por correo electrónico.</a>.' confirmation_html: ¿Estás seguro que querés dejar de recibir %{type} de Mastodon en %{domain} a tu correo electrónico %{email}? Siempre podrás volver a suscribirte desde la <a href="%{settings_path}"> configuración de notificaciones por correo electrónico.</a>.
emails: emails:
notification_emails: notification_emails:
favourite: notificaciones de favoritos por correo electrónico favourite: notificaciones de favoritos por correo electrónico
@ -1633,7 +1633,6 @@ es-AR:
show_newer: Mostrar más recientes show_newer: Mostrar más recientes
show_older: Mostrar más antiguos show_older: Mostrar más antiguos
show_thread: Mostrar hilo show_thread: Mostrar hilo
sign_in_to_participate: Iniciá sesión para participar en la conversación
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Directo direct: Directo
@ -1679,8 +1678,6 @@ es-AR:
min_reblogs: Conservar adhesiones de por lo menos 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. 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: stream_entries:
pinned: Mensaje fijado
reblogged: adhirió a este mensaje
sensitive_content: Contenido sensible sensitive_content: Contenido sensible
strikes: strikes:
errors: errors:

Some files were not shown because too many files have changed in this diff Show more