Merge remote-tracking branch 'parent/main' into upstream-20240716
This commit is contained in:
commit
adee1645a3
203 changed files with 1707 additions and 1067 deletions
|
@ -1,5 +1,5 @@
|
|||
# This is a sample configuration file. You can generate your configuration
|
||||
# with the `rake mastodon:setup` interactive setup wizard, but to customize
|
||||
# with the `bundle exec rails mastodon:setup` interactive setup wizard, but to customize
|
||||
# your setup even further, you'll need to edit it manually. This sample does
|
||||
# not demonstrate all available configuration options. Please look at
|
||||
# https://docs.joinmastodon.org/admin/config/ for the full documentation.
|
||||
|
@ -40,14 +40,14 @@ ES_PASS=password
|
|||
|
||||
# Secrets
|
||||
# -------
|
||||
# Make sure to use `rake secret` to generate secrets
|
||||
# Make sure to use `bundle exec rails secret` to generate secrets
|
||||
# -------
|
||||
SECRET_KEY_BASE=
|
||||
OTP_SECRET=
|
||||
|
||||
# Web Push
|
||||
# --------
|
||||
# Generate with `rake mastodon:webpush:generate_vapid_key`
|
||||
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key`
|
||||
# --------
|
||||
VAPID_PRIVATE_KEY=
|
||||
VAPID_PUBLIC_KEY=
|
||||
|
|
6
.github/workflows/bundler-audit.yml
vendored
6
.github/workflows/bundler-audit.yml
vendored
|
@ -1,8 +1,10 @@
|
|||
name: Bundler Audit
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'Gemfile*'
|
||||
- '.ruby-version'
|
||||
|
|
8
.github/workflows/check-i18n.yml
vendored
8
.github/workflows/check-i18n.yml
vendored
|
@ -2,9 +2,13 @@ name: Check i18n
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
pull_request:
|
||||
branches: [main]
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
|
||||
env:
|
||||
RAILS_ENV: test
|
||||
|
|
10
.github/workflows/codeql.yml
vendored
10
.github/workflows/codeql.yml
vendored
|
@ -1,11 +1,15 @@
|
|||
name: 'CodeQL'
|
||||
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches: ['main']
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: ['main']
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
schedule:
|
||||
- cron: '22 6 * * 1'
|
||||
|
||||
|
|
4
.github/workflows/format-check.yml
vendored
4
.github/workflows/format-check.yml
vendored
|
@ -1,6 +1,10 @@
|
|||
name: Check formatting
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
|
|
7
.github/workflows/lint-css.yml
vendored
7
.github/workflows/lint-css.yml
vendored
|
@ -1,9 +1,10 @@
|
|||
name: CSS Linting
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
|
|
7
.github/workflows/lint-haml.yml
vendored
7
.github/workflows/lint-haml.yml
vendored
|
@ -1,9 +1,10 @@
|
|||
name: Haml Linting
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- '.github/workflows/haml-lint-problem-matcher.json'
|
||||
- '.github/workflows/lint-haml.yml'
|
||||
|
|
7
.github/workflows/lint-js.yml
vendored
7
.github/workflows/lint-js.yml
vendored
|
@ -1,9 +1,10 @@
|
|||
name: JavaScript Linting
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
|
|
7
.github/workflows/lint-ruby.yml
vendored
7
.github/workflows/lint-ruby.yml
vendored
|
@ -1,9 +1,10 @@
|
|||
name: Ruby Linting
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'Gemfile*'
|
||||
- '.rubocop*.yml'
|
||||
|
|
7
.github/workflows/test-js.yml
vendored
7
.github/workflows/test-js.yml
vendored
|
@ -1,9 +1,10 @@
|
|||
name: JavaScript Testing
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
|
|
34
.github/workflows/test-migrations.yml
vendored
34
.github/workflows/test-migrations.yml
vendored
|
@ -1,29 +1,29 @@
|
|||
name: Historical data migration test
|
||||
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
paths:
|
||||
- 'Gemfile*'
|
||||
- '.ruby-version'
|
||||
- '**/*.rb'
|
||||
- '.github/workflows/test-migrations.yml'
|
||||
- 'lib/tasks/tests.rake'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- 'Gemfile*'
|
||||
- '.ruby-version'
|
||||
- '**/*.rb'
|
||||
- '.github/workflows/test-migrations.yml'
|
||||
- 'lib/tasks/tests.rake'
|
||||
|
||||
jobs:
|
||||
pre_job:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
||||
|
||||
steps:
|
||||
- id: skip_check
|
||||
uses: fkirc/skip-duplicate-actions@v5
|
||||
with:
|
||||
paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations.yml", "lib/tasks/tests.rake"]'
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: pre_job
|
||||
if: needs.pre_job.outputs.should_skip != 'true'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
|
9
.github/workflows/test-ruby.yml
vendored
9
.github/workflows/test-ruby.yml
vendored
|
@ -1,10 +1,11 @@
|
|||
name: Ruby Testing
|
||||
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable-*'
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
|
@ -224,7 +225,7 @@ jobs:
|
|||
- name: Load database schema
|
||||
run: './bin/rails db:create db:schema:load db:seed'
|
||||
|
||||
- run: bin/rspec --tag paperclip_processing
|
||||
- run: bin/rspec --tag attachment_processing
|
||||
|
||||
- name: Upload coverage reports to Codecov
|
||||
if: matrix.ruby-version == '.ruby-version'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp`
|
||||
# using RuboCop version 1.64.1.
|
||||
# using RuboCop version 1.65.0.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
|
@ -14,7 +14,7 @@ Lint/NonLocalExitFromIterator:
|
|||
Metrics/AbcSize:
|
||||
Max: 82
|
||||
|
||||
# Configuration parameters: CountBlocks, Max.
|
||||
# Configuration parameters: CountBlocks, CountModifierForms, Max.
|
||||
Metrics/BlockNesting:
|
||||
Exclude:
|
||||
- 'lib/tasks/mastodon.rake'
|
||||
|
|
|
@ -1 +1 @@
|
|||
3.3.3
|
||||
3.3.4
|
||||
|
|
|
@ -12,7 +12,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM}
|
|||
|
||||
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
|
||||
# renovate: datasource=docker depName=docker.io/ruby
|
||||
ARG RUBY_VERSION="3.3.3"
|
||||
ARG RUBY_VERSION="3.3.4"
|
||||
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
||||
# renovate: datasource=node-version depName=node
|
||||
ARG NODE_MAJOR_VERSION="20"
|
||||
|
@ -67,7 +67,9 @@ ENV \
|
|||
# Optimize jemalloc 5.x performance
|
||||
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
|
||||
# Enable libvips, should not be changed
|
||||
MASTODON_USE_LIBVIPS=true
|
||||
MASTODON_USE_LIBVIPS=true \
|
||||
# Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes
|
||||
MASTODON_SIDEKIQ_READY_FILENAME=sidekiq_process_has_started_and_will_begin_processing_jobs
|
||||
|
||||
# Set default shell used for running commands
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
|
||||
|
|
22
Gemfile.lock
22
Gemfile.lock
|
@ -159,7 +159,7 @@ GEM
|
|||
case_transform (0.2)
|
||||
activesupport
|
||||
cbor (0.5.9.8)
|
||||
charlock_holmes (0.7.8)
|
||||
charlock_holmes (0.7.9)
|
||||
chewy (7.6.0)
|
||||
activesupport (>= 5.2)
|
||||
elasticsearch (>= 7.14.0, < 8)
|
||||
|
@ -180,7 +180,7 @@ GEM
|
|||
css_parser (1.17.1)
|
||||
addressable
|
||||
csv (3.3.0)
|
||||
database_cleaner-active_record (2.1.0)
|
||||
database_cleaner-active_record (2.2.0)
|
||||
activerecord (>= 5.a)
|
||||
database_cleaner-core (~> 2.0.0)
|
||||
database_cleaner-core (2.0.1)
|
||||
|
@ -346,7 +346,7 @@ GEM
|
|||
activesupport (>= 3.0)
|
||||
nokogiri (>= 1.6)
|
||||
io-console (0.7.2)
|
||||
irb (1.13.2)
|
||||
irb (1.14.0)
|
||||
rdoc (>= 4.0.0)
|
||||
reline (>= 0.4.2)
|
||||
jmespath (1.6.2)
|
||||
|
@ -583,15 +583,15 @@ GEM
|
|||
orm_adapter (0.5.0)
|
||||
ox (2.14.18)
|
||||
parallel (1.25.1)
|
||||
parser (3.3.3.0)
|
||||
parser (3.3.4.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
parslet (2.0.0)
|
||||
pastel (0.8.0)
|
||||
tty-color (~> 0.5)
|
||||
pg (1.5.6)
|
||||
pghero (3.5.0)
|
||||
activerecord (>= 6)
|
||||
pghero (3.6.0)
|
||||
activerecord (>= 6.1)
|
||||
premailer (1.23.0)
|
||||
addressable
|
||||
css_parser (>= 1.12.0)
|
||||
|
@ -733,13 +733,13 @@ GEM
|
|||
rspec-mocks (~> 3.0)
|
||||
sidekiq (>= 5, < 8)
|
||||
rspec-support (3.13.1)
|
||||
rubocop (1.64.1)
|
||||
rubocop (1.65.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
regexp_parser (>= 2.4, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
|
@ -756,7 +756,7 @@ GEM
|
|||
rack (>= 1.1)
|
||||
rubocop (>= 1.33.0, < 2.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
rubocop-rspec (3.0.2)
|
||||
rubocop-rspec (3.0.3)
|
||||
rubocop (~> 1.61)
|
||||
rubocop-rspec_rails (2.30.0)
|
||||
rubocop (~> 1.61)
|
||||
|
@ -793,10 +793,10 @@ GEM
|
|||
redis (>= 4.5.0, < 5)
|
||||
sidekiq-bulk (0.2.0)
|
||||
sidekiq
|
||||
sidekiq-scheduler (5.0.3)
|
||||
sidekiq-scheduler (5.0.5)
|
||||
rufus-scheduler (~> 3.2)
|
||||
sidekiq (>= 6, < 8)
|
||||
tilt (>= 1.4.0)
|
||||
tilt (>= 1.4.0, < 3)
|
||||
sidekiq-unique-jobs (7.1.33)
|
||||
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.5)
|
||||
|
|
|
@ -28,14 +28,14 @@ class Api::V1::Notifications::RequestsController < Api::BaseController
|
|||
end
|
||||
|
||||
def dismiss
|
||||
@request.update!(dismissed: true)
|
||||
@request.destroy!
|
||||
render_empty
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_requests
|
||||
requests = NotificationRequest.where(account: current_account).where(dismissed: truthy_param?(:dismissed) || false).includes(:last_status, from_account: [:account_stat, :user]).to_a_paginated_by_id(
|
||||
requests = NotificationRequest.where(account: current_account).includes(:last_status, from_account: [:account_stat, :user]).to_a_paginated_by_id(
|
||||
limit_param(DEFAULT_ACCOUNTS_LIMIT),
|
||||
params_slice(:max_id, :since_id, :min_id)
|
||||
)
|
||||
|
@ -68,8 +68,4 @@ class Api::V1::Notifications::RequestsController < Api::BaseController
|
|||
def pagination_since_id
|
||||
@requests.first.id
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.slice(:dismissed).permit(:dismissed).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ class Api::V1::Polls::VotesController < Api::BaseController
|
|||
before_action :set_poll
|
||||
|
||||
def create
|
||||
VoteService.new.call(current_account, @poll, vote_params[:choices])
|
||||
VoteService.new.call(current_account, @poll, vote_params)
|
||||
render json: @poll, serializer: REST::PollSerializer
|
||||
end
|
||||
|
||||
|
@ -22,6 +22,6 @@ class Api::V1::Polls::VotesController < Api::BaseController
|
|||
end
|
||||
|
||||
def vote_params
|
||||
params.permit(choices: [])
|
||||
params.require(:choices)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
module ThemeHelper
|
||||
def theme_style_tags(theme)
|
||||
if theme == 'system'
|
||||
stylesheet_pack_tag('mastodon-light', media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous') +
|
||||
stylesheet_pack_tag('default', media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
|
||||
''.html_safe.tap do |tags|
|
||||
tags << stylesheet_pack_tag('mastodon-light', media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous')
|
||||
tags << stylesheet_pack_tag('default', media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
|
||||
end
|
||||
else
|
||||
stylesheet_pack_tag theme, media: 'all', crossorigin: 'anonymous'
|
||||
end
|
||||
|
@ -12,8 +14,10 @@ module ThemeHelper
|
|||
|
||||
def theme_color_tags(theme)
|
||||
if theme == 'system'
|
||||
tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:dark], media: '(prefers-color-scheme: dark)') +
|
||||
tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:light], media: '(prefers-color-scheme: light)')
|
||||
''.html_safe.tap do |tags|
|
||||
tags << tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:dark], media: '(prefers-color-scheme: dark)')
|
||||
tags << tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:light], media: '(prefers-color-scheme: light)')
|
||||
end
|
||||
else
|
||||
tag.meta name: 'theme-color', content: theme_color_for(theme)
|
||||
end
|
||||
|
|
|
@ -305,7 +305,7 @@ export function submitComposeFail(error) {
|
|||
|
||||
export function uploadCompose(files) {
|
||||
return function (dispatch, getState) {
|
||||
const uploadLimit = 4;
|
||||
const uploadLimit = getState().getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']);
|
||||
const media = getState().getIn(['compose', 'media_attachments']);
|
||||
const pending = getState().getIn(['compose', 'pending_media_attachments']);
|
||||
const defaultSensitive = getState().getIn(['compose', 'default_sensitive']);
|
||||
|
@ -322,7 +322,7 @@ export function uploadCompose(files) {
|
|||
dispatch(uploadComposeRequest());
|
||||
|
||||
for (const [i, file] of Array.from(files).entries()) {
|
||||
if (media.size + i >= 4) break;
|
||||
if (media.size + i > (uploadLimit - 1)) break;
|
||||
|
||||
const data = new FormData();
|
||||
data.append('file', file);
|
||||
|
|
|
@ -131,7 +131,7 @@ const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifica
|
|||
return (
|
||||
<div className={classNames('account', { 'account--minimal': minimal })}>
|
||||
<div className='account__wrapper'>
|
||||
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`} data-hover-card-account={account.get('id')}>
|
||||
<div className='account__avatar-wrapper'>
|
||||
<Avatar account={account} size={size} />
|
||||
</div>
|
||||
|
|
|
@ -43,6 +43,7 @@ export const HoverCardController: React.FC = () => {
|
|||
useEffect(() => {
|
||||
let isScrolling = false;
|
||||
let currentAnchor: HTMLElement | null = null;
|
||||
let currentTitle: string | null = null;
|
||||
|
||||
const open = (target: HTMLElement) => {
|
||||
target.setAttribute('aria-describedby', 'hover-card');
|
||||
|
@ -75,6 +76,9 @@ export const HoverCardController: React.FC = () => {
|
|||
currentAnchor?.removeAttribute('aria-describedby');
|
||||
currentAnchor = target;
|
||||
|
||||
currentTitle = target.getAttribute('title');
|
||||
target.removeAttribute('title');
|
||||
|
||||
setEnterTimeout(() => {
|
||||
open(target);
|
||||
}, enterDelay);
|
||||
|
@ -90,11 +94,20 @@ export const HoverCardController: React.FC = () => {
|
|||
};
|
||||
|
||||
const handleMouseLeave = (e: MouseEvent) => {
|
||||
const { target } = e;
|
||||
|
||||
if (!currentAnchor) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.target === currentAnchor || e.target === cardRef.current) {
|
||||
if (
|
||||
currentTitle &&
|
||||
target instanceof HTMLElement &&
|
||||
target === currentAnchor
|
||||
)
|
||||
target.setAttribute('title', currentTitle);
|
||||
|
||||
if (target === currentAnchor || target === cardRef.current) {
|
||||
cancelEnterTimeout();
|
||||
|
||||
setLeaveTimeout(() => {
|
||||
|
|
|
@ -13,7 +13,7 @@ import { debounce } from 'lodash';
|
|||
import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react';
|
||||
import { Blurhash } from 'mastodon/components/blurhash';
|
||||
|
||||
import { autoPlayGif, displayMedia, displayMediaExpand, useBlurhash } from '../initial_state';
|
||||
import { autoPlayGif, displayMedia, useBlurhash } from '../initial_state';
|
||||
|
||||
import { IconButton } from './icon_button';
|
||||
|
||||
|
@ -322,15 +322,13 @@ class MediaGallery extends PureComponent {
|
|||
style.aspectRatio = '3 / 2';
|
||||
}
|
||||
|
||||
const maxSize = displayMediaExpand ? 16 : 4;
|
||||
|
||||
const size = media.take(maxSize).size;
|
||||
const size = media.size;
|
||||
const uncached = media.every(attachment => attachment.get('type') === 'unknown');
|
||||
|
||||
if (this.isFullSizeEligible()) {
|
||||
children = <Item standalone autoplay={autoplay} onClick={this.handleClick} attachment={media.get(0)} lang={lang} displayWidth={width} visible={visible} />;
|
||||
} else {
|
||||
children = media.take(maxSize).map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} lang={lang} size={size} displayWidth={width} visible={visible || uncached} />);
|
||||
children = media.map((attachment, i) => <Item key={attachment.get('id')} autoplay={autoplay} onClick={this.handleClick} attachment={attachment} index={i} lang={lang} size={size} displayWidth={width} visible={visible || uncached} />);
|
||||
}
|
||||
|
||||
if (uncached) {
|
||||
|
|
|
@ -641,7 +641,7 @@ class Status extends ImmutablePureComponent {
|
|||
<RelativeTimestamp timestamp={status.get('created_at')} />{status.get('edited_at') && <abbr title={intl.formatMessage(messages.edited, { date: intl.formatDate(status.get('edited_at'), { year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })}> *</abbr>}
|
||||
</a>
|
||||
|
||||
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} data-hover-card-account={status.getIn(['account', 'id'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
|
||||
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} title={status.getIn(['account', 'acct'])} data-hover-card-account={status.getIn(['account', 'id'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
|
||||
<div className='status__avatar'>
|
||||
{statusAvatar}
|
||||
</div>
|
||||
|
|
|
@ -116,7 +116,7 @@ class StatusContent extends PureComponent {
|
|||
|
||||
if (mention) {
|
||||
link.addEventListener('click', this.onMentionClick.bind(this, mention), false);
|
||||
link.removeAttribute('title');
|
||||
link.setAttribute('title', `@${mention.get('acct')}`);
|
||||
link.setAttribute('href', `/@${mention.get('acct')}`);
|
||||
link.setAttribute('data-hover-card-account', mention.get('id'));
|
||||
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
||||
|
|
|
@ -8,7 +8,7 @@ const mapStateToProps = state => {
|
|||
const readyAttachmentsSize = state.getIn(['compose', 'media_attachments']).size ?? 0;
|
||||
const pendingAttachmentsSize = state.getIn(['compose', 'pending_media_attachments']).size ?? 0;
|
||||
const attachmentsSize = readyAttachmentsSize + pendingAttachmentsSize;
|
||||
const isOverLimit = attachmentsSize > 3;
|
||||
const isOverLimit = attachmentsSize > state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments'])-1;
|
||||
const hasVideoOrAudio = state.getIn(['compose', 'media_attachments']).some(m => ['video', 'audio'].includes(m.get('type')));
|
||||
|
||||
return {
|
||||
|
|
|
@ -548,7 +548,7 @@ class Notification extends ImmutablePureComponent {
|
|||
|
||||
const targetAccount = report.get('target_account');
|
||||
const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') };
|
||||
const targetLink = <bdi><Link className='notification__display-name' data-hover-card-account={targetAccount.get('id')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
|
||||
const targetLink = <bdi><Link className='notification__display-name' title={targetAccount.get('acct')} data-hover-card-account={targetAccount.get('id')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
|
||||
|
||||
return (
|
||||
<HotKeys handlers={this.getHandlers()}>
|
||||
|
@ -571,7 +571,7 @@ class Notification extends ImmutablePureComponent {
|
|||
const { notification } = this.props;
|
||||
const account = notification.get('account');
|
||||
const displayNameHtml = { __html: account.get('display_name_html') };
|
||||
const link = <bdi><Link className='notification__display-name' href={`/@${account.get('acct')}`} data-hover-card-account={account.get('id')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
|
||||
const link = <bdi><Link className='notification__display-name' href={`/@${account.get('acct')}`} title={account.get('acct')} data-hover-card-account={account.get('id')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
|
||||
|
||||
switch(notification.get('type')) {
|
||||
case 'follow':
|
||||
|
|
|
@ -223,6 +223,13 @@ class Notifications extends PureComponent {
|
|||
|
||||
let scrollContainer;
|
||||
|
||||
const prepend = (
|
||||
<>
|
||||
{needsNotificationPermission && <NotificationsPermissionBanner />}
|
||||
<FilteredNotificationsBanner />
|
||||
</>
|
||||
);
|
||||
|
||||
if (signedIn) {
|
||||
scrollContainer = (
|
||||
<ScrollableList
|
||||
|
@ -232,7 +239,7 @@ class Notifications extends PureComponent {
|
|||
showLoading={isLoading && notifications.size === 0}
|
||||
hasMore={hasMore}
|
||||
numPending={numPending}
|
||||
prepend={needsNotificationPermission && <NotificationsPermissionBanner />}
|
||||
prepend={prepend}
|
||||
alwaysPrepend
|
||||
emptyMessage={emptyMessage}
|
||||
onLoadMore={this.handleLoadOlder}
|
||||
|
@ -282,8 +289,6 @@ class Notifications extends PureComponent {
|
|||
|
||||
{filterBarContainer}
|
||||
|
||||
<FilteredNotificationsBanner />
|
||||
|
||||
{scrollContainer}
|
||||
|
||||
<Helmet>
|
||||
|
|
|
@ -141,7 +141,7 @@ export default class Card extends PureComponent {
|
|||
const showAuthor = !!card.getIn(['authors', 0, 'accountId']);
|
||||
|
||||
const description = (
|
||||
<div className='status-card__content'>
|
||||
<div className='status-card__content' dir='auto'>
|
||||
<span className='status-card__host'>
|
||||
<span lang={language}>{provider}</span>
|
||||
{card.get('published_at') && <> · <RelativeTimestamp timestamp={card.get('published_at')} /></>}
|
||||
|
|
|
@ -25,7 +25,7 @@ import { clearHeight } from '../../actions/height_cache';
|
|||
import { expandNotifications } from '../../actions/notifications';
|
||||
import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server';
|
||||
import { expandHomeTimeline } from '../../actions/timelines';
|
||||
import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding } from '../../initial_state';
|
||||
import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding, disableHoverCards } from '../../initial_state';
|
||||
|
||||
import BundleColumnError from './components/bundle_column_error';
|
||||
import Header from './components/header';
|
||||
|
@ -623,7 +623,7 @@ class UI extends PureComponent {
|
|||
|
||||
{layout !== 'mobile' && <PictureInPicture />}
|
||||
<NotificationsContainer />
|
||||
<HoverCardController />
|
||||
{!disableHoverCards && <HoverCardController />}
|
||||
<LoadingBarContainer className='loading-bar' />
|
||||
<ModalContainer />
|
||||
<UploadArea active={draggingOver} onClose={this.closeUploadModal} />
|
||||
|
|
|
@ -31,10 +31,10 @@
|
|||
* @property {boolean=} boost_modal
|
||||
* @property {boolean=} delete_modal
|
||||
* @property {boolean=} disable_swiping
|
||||
* @property {boolean=} disable_hover_cards
|
||||
* @property {string=} disabled_account_id
|
||||
* @property {string[]} enabled_visibilities
|
||||
* @property {string} display_media
|
||||
* @property {boolean} display_media_expand
|
||||
* @property {string} domain
|
||||
* @property {string} dtl_tag
|
||||
* @property {boolean} enable_emoji_reaction
|
||||
|
@ -128,10 +128,10 @@ export const bookmarkCategoryNeeded = getMeta('bookmark_category_needed');
|
|||
export const boostModal = getMeta('boost_modal');
|
||||
export const deleteModal = getMeta('delete_modal');
|
||||
export const disableSwiping = getMeta('disable_swiping');
|
||||
export const disableHoverCards = getMeta('disable_hover_cards');
|
||||
export const disabledAccountId = getMeta('disabled_account_id');
|
||||
export const enabledVisibilites = getMeta('enabled_visibilities');
|
||||
export const displayMedia = getMeta('display_media');
|
||||
export const displayMediaExpand = getMeta('display_media_expand');
|
||||
export const domain = getMeta('domain');
|
||||
export const dtlTag = getMeta('dtl_tag');
|
||||
export const enableEmojiReaction = getMeta('enable_emoji_reaction');
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
|
||||
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
|
||||
"about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادم بالذات.",
|
||||
"about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
|
||||
"about.domain_blocks.silenced.explanation": "لن تظهر لك ملفات التعريف الشخصية والمحتوى من هذا الخادوم، إلا إن بحثت عنه عمدًا أو تابعته.",
|
||||
"about.domain_blocks.silenced.title": "محدود",
|
||||
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
|
||||
"about.domain_blocks.suspended.title": "مُعلّق",
|
||||
|
@ -21,7 +21,7 @@
|
|||
"account.blocked": "محظور",
|
||||
"account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
|
||||
"account.cancel_follow_request": "إلغاء طلب المتابعة",
|
||||
"account.copy": "نسخ الرابط إلى الحساب",
|
||||
"account.copy": "نسخ الرابط إلى الملف الشخصي",
|
||||
"account.direct": "إشارة خاصة لـ @{name}",
|
||||
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
|
||||
"account.domain_blocked": "اسم النِّطاق محظور",
|
||||
|
@ -32,9 +32,10 @@
|
|||
"account.featured_tags.last_status_never": "لا توجد رسائل",
|
||||
"account.featured_tags.title": "وسوم {name} المميَّزة",
|
||||
"account.follow": "متابعة",
|
||||
"account.follow_back": "رد المتابعة",
|
||||
"account.follow_back": "تابعهم بالمثل",
|
||||
"account.followers": "مُتابِعون",
|
||||
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
|
||||
"account.followers_counter": "{count, plural, zero {}one {{counter} متابع} two {{counter} متابعين} few {{counter} متابعين} many {{counter} متابعين} other {{counter} متابعين}}",
|
||||
"account.following": "الاشتراكات",
|
||||
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
|
||||
"account.go_to_profile": "اذهب إلى الملف الشخصي",
|
||||
|
@ -51,7 +52,7 @@
|
|||
"account.mute_notifications_short": "كتم الإشعارات",
|
||||
"account.mute_short": "اكتم",
|
||||
"account.muted": "مَكتوم",
|
||||
"account.mutual": "متبادل",
|
||||
"account.mutual": "متبادلة",
|
||||
"account.no_bio": "لم يتم تقديم وصف.",
|
||||
"account.open_original_page": "افتح الصفحة الأصلية",
|
||||
"account.posts": "منشورات",
|
||||
|
@ -70,8 +71,8 @@
|
|||
"account.unmute_notifications_short": "إلغاء كَتم الإشعارات",
|
||||
"account.unmute_short": "إلغاء الكتم",
|
||||
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
|
||||
"admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم",
|
||||
"admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور",
|
||||
"admin.dashboard.daily_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالأيام",
|
||||
"admin.dashboard.monthly_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالشهور",
|
||||
"admin.dashboard.retention.average": "المعدل",
|
||||
"admin.dashboard.retention.cohort": "شهر التسجيل",
|
||||
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
|
||||
|
@ -87,12 +88,12 @@
|
|||
"attachments_list.unprocessed": "(غير معالَج)",
|
||||
"audio.hide": "إخفاء المقطع الصوتي",
|
||||
"block_modal.remote_users_caveat": "سوف نطلب من الخادم {domain} أن يحترم قرارك، لكن الالتزام غير مضمون لأن بعض الخواديم قد تتعامل مع نصوص الكتل بشكل مختلف. قد تظل المنشورات العامة مرئية للمستخدمين غير المسجلين الدخول.",
|
||||
"block_modal.show_less": "أظهر الأقل",
|
||||
"block_modal.show_more": "أظهر المزيد",
|
||||
"block_modal.show_less": "تفاصيل أقلّ",
|
||||
"block_modal.show_more": "تفاصيل أكثر",
|
||||
"block_modal.they_cant_mention": "لن يستطيع ذِكرك أو متابعتك.",
|
||||
"block_modal.they_cant_see_posts": "لن يستطيع رؤية منشوراتك ولن ترى منشوراته.",
|
||||
"block_modal.they_will_know": "يمكنه أن يرى أنه قد تم حظره.",
|
||||
"block_modal.title": "أتريد حظر المستخدم؟",
|
||||
"block_modal.they_cant_see_posts": "لن يستطيع مطالعة منشوراتك ولن تطالع منشوراته.",
|
||||
"block_modal.they_will_know": "سيعلم أنه قد حُظِر.",
|
||||
"block_modal.title": "أتريد حظر هذا المستخدم؟",
|
||||
"block_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيهم إليه.",
|
||||
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
|
||||
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
|
||||
|
@ -156,7 +157,7 @@
|
|||
"compose_form.poll.single": "اختر واحدا",
|
||||
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
|
||||
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
|
||||
"compose_form.poll.type": "الأسلوب",
|
||||
"compose_form.poll.type": "الطراز",
|
||||
"compose_form.publish": "نشر",
|
||||
"compose_form.publish_form": "منشور جديد",
|
||||
"compose_form.reply": "ردّ",
|
||||
|
|
|
@ -35,7 +35,9 @@
|
|||
"account.follow_back": "Падпісацца ў адказ",
|
||||
"account.followers": "Падпісчыкі",
|
||||
"account.followers.empty": "Ніхто пакуль не падпісаны на гэтага карыстальніка.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} падпісчык} few {{counter} падпісчыкі} many {{counter} падпісчыкаў} other {{counter} падпісчыка}}",
|
||||
"account.following": "Падпіскі",
|
||||
"account.following_counter": "{count, plural, one {{counter} падпіска} few {{counter} падпіскі} many {{counter} падпісак} other {{counter} падпіскі}}",
|
||||
"account.follows.empty": "Карыстальнік ні на каго не падпісаны.",
|
||||
"account.go_to_profile": "Перайсці да профілю",
|
||||
"account.hide_reblogs": "Схаваць пашырэнні ад @{name}",
|
||||
|
@ -61,6 +63,7 @@
|
|||
"account.requested_follow": "{name} адправіў запыт на падпіску",
|
||||
"account.share": "Абагуліць профіль @{name}",
|
||||
"account.show_reblogs": "Паказаць падштурхоўванні ад @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}",
|
||||
"account.unblock": "Разблакіраваць @{name}",
|
||||
"account.unblock_domain": "Разблакіраваць дамен {domain}",
|
||||
"account.unblock_short": "Разблакіраваць",
|
||||
|
@ -412,6 +415,7 @@
|
|||
"limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі",
|
||||
"link_preview.author": "Ад {name}",
|
||||
"link_preview.more_from_author": "Больш ад {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}",
|
||||
"lists.account.add": "Дадаць да спісу",
|
||||
"lists.account.remove": "Выдаліць са спісу",
|
||||
"lists.delete": "Выдаліць спіс",
|
||||
|
|
|
@ -35,7 +35,9 @@
|
|||
"account.follow_back": "Последване взаимно",
|
||||
"account.followers": "Последователи",
|
||||
"account.followers.empty": "Още никой не следва потребителя.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
|
||||
"account.following": "Последвано",
|
||||
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
|
||||
"account.follows.empty": "Потребителят още никого не следва.",
|
||||
"account.go_to_profile": "Към профила",
|
||||
"account.hide_reblogs": "Скриване на подсилвания от @{name}",
|
||||
|
@ -61,6 +63,7 @@
|
|||
"account.requested_follow": "{name} поиска да ви последва",
|
||||
"account.share": "Споделяне на профила на @{name}",
|
||||
"account.show_reblogs": "Показване на подсилвания от @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
|
||||
"account.unblock": "Отблокиране на @{name}",
|
||||
"account.unblock_domain": "Отблокиране на домейн {domain}",
|
||||
"account.unblock_short": "Отблокиране",
|
||||
|
|
|
@ -197,7 +197,7 @@
|
|||
"copy_icon_button.copied": "Zkopírováno do schránky",
|
||||
"copypaste.copied": "Zkopírováno",
|
||||
"copypaste.copy_to_clipboard": "Zkopírovat do schránky",
|
||||
"directory.federated": "Ze známého fedivesmíru",
|
||||
"directory.federated": "Ze známého fediversu",
|
||||
"directory.local": "Pouze z {domain}",
|
||||
"directory.new_arrivals": "Nově příchozí",
|
||||
"directory.recently_active": "Nedávno aktivní",
|
||||
|
@ -213,7 +213,7 @@
|
|||
"domain_block_modal.block_account_instead": "Raději blokovat @{name}",
|
||||
"domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.",
|
||||
"domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.",
|
||||
"domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován.",
|
||||
"domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován*a.",
|
||||
"domain_block_modal.title": "Blokovat doménu?",
|
||||
"domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.",
|
||||
"domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.",
|
||||
|
@ -341,7 +341,7 @@
|
|||
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
|
||||
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
|
||||
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
|
||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
|
||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník*ice} few {{counter} účastníci} other {{counter} účastníků}}",
|
||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||
"hashtag.follow": "Sledovat hashtag",
|
||||
|
@ -440,7 +440,7 @@
|
|||
"mute_modal.show_options": "Zobrazit možnosti",
|
||||
"mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.",
|
||||
"mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.",
|
||||
"mute_modal.title": "Ztlumit uživatele?",
|
||||
"mute_modal.title": "Ztlumit uživatele*ku?",
|
||||
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
|
||||
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
|
||||
"navigation_bar.about": "O aplikaci",
|
||||
|
@ -566,8 +566,8 @@
|
|||
"onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
|
||||
"onboarding.share.next_steps": "Možné další kroky:",
|
||||
"onboarding.share.title": "Sdílejte svůj profil",
|
||||
"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.lead": "Nyní jste součástí Mastodonu, unikátní sociální sítě, kde vy - ne algoritmus - vytváří vaše vlastní prožitky. Začněte na této nové sociální platformě:",
|
||||
"onboarding.start.skip": "Nepotřebujete pomoci začít?",
|
||||
"onboarding.start.title": "Dokázali jste to!",
|
||||
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
|
||||
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
|
||||
|
@ -581,7 +581,7 @@
|
|||
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
|
||||
"onboarding.tips.migration": "<strong>Víte, že?</strong> Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!",
|
||||
"onboarding.tips.verification": "<strong>Víte, že?</strong> Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!",
|
||||
"password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla",
|
||||
"password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální povolenou délku hesla",
|
||||
"password_confirmation.mismatching": "Zadaná hesla se neshodují",
|
||||
"picture_in_picture.restore": "Vrátit zpět",
|
||||
"poll.closed": "Uzavřeno",
|
||||
|
@ -665,7 +665,7 @@
|
|||
"report.unfollow": "Přestat sledovat @{name}",
|
||||
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
|
||||
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
|
||||
"report_notification.categories.legal": "Zákonné",
|
||||
"report_notification.categories.legal": "Právní ustanovení",
|
||||
"report_notification.categories.other": "Ostatní",
|
||||
"report_notification.categories.spam": "Spam",
|
||||
"report_notification.categories.violation": "Porušení pravidla",
|
||||
|
|
|
@ -205,10 +205,10 @@
|
|||
"disabled_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert.",
|
||||
"dismissable_banner.community_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen, deren Konten von {domain} verwaltet werden.",
|
||||
"dismissable_banner.dismiss": "Ablehnen",
|
||||
"dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im sozialen Netzwerk geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen veröffentlicht wurden, werden höher eingestuft.",
|
||||
"dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.",
|
||||
"dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.",
|
||||
"dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.",
|
||||
"dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im Social Web geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen geteilt wurden, erscheinen weiter oben.",
|
||||
"dismissable_banner.explore_statuses": "Diese Beiträge sind heute im Social Web sehr beliebt. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, erscheinen weiter oben.",
|
||||
"dismissable_banner.explore_tags": "Diese Hashtags sind heute im Social Web sehr beliebt. Hashtags, die von vielen verschiedenen Profilen verwendet werden, erscheinen weiter oben.",
|
||||
"dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im Social Web, denen Leute auf {domain} folgen.",
|
||||
"domain_block_modal.block": "Server blockieren",
|
||||
"domain_block_modal.block_account_instead": "Stattdessen @{name} blockieren",
|
||||
"domain_block_modal.they_can_interact_with_old_posts": "Profile von diesem Server werden mit deinen älteren Beiträgen interagieren können.",
|
||||
|
|
|
@ -45,7 +45,9 @@
|
|||
"account.follow_back": "フォローバック",
|
||||
"account.followers": "フォロワー",
|
||||
"account.followers.empty": "まだ誰もフォローしていません。",
|
||||
"account.followers_counter": "{count, plural, other {{counter} フォロワー}}",
|
||||
"account.following": "フォロー中",
|
||||
"account.following_counter": "{count, plural, other {{counter} フォロー}}",
|
||||
"account.follows.empty": "まだ誰もフォローしていません。",
|
||||
"account.go_to_profile": "プロフィールページへ",
|
||||
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
|
||||
|
@ -71,6 +73,7 @@
|
|||
"account.requested_follow": "{name}さんがあなたにフォローリクエストしました",
|
||||
"account.share": "@{name}さんのプロフィールを共有する",
|
||||
"account.show_reblogs": "@{name}さんからのブーストを表示",
|
||||
"account.statuses_counter": "{count, plural, other {{counter} 投稿}}",
|
||||
"account.unblock": "@{name}さんのブロックを解除",
|
||||
"account.unblock_domain": "{domain}のブロックを解除",
|
||||
"account.unblock_short": "ブロック解除",
|
||||
|
@ -506,6 +509,8 @@
|
|||
"limited_account_hint.action": "構わず表示する",
|
||||
"limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。",
|
||||
"link_preview.author": "{name}",
|
||||
"link_preview.more_from_author": "{name}さんの投稿をもっと読む",
|
||||
"link_preview.shares": "{count, plural, other {{counter}件の投稿}}",
|
||||
"lists.account.add": "リストに追加",
|
||||
"lists.account.remove": "リストから外す",
|
||||
"lists.antennas": "関連付けられたアンテナ",
|
||||
|
@ -830,8 +835,11 @@
|
|||
"server_banner.about_active_users": "過去30日間にこのサーバーを使用している人 (月間アクティブユーザー)",
|
||||
"server_banner.active_users": "人のアクティブユーザー",
|
||||
"server_banner.administered_by": "管理者",
|
||||
"server_banner.is_one_of_many": "{domain} は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。",
|
||||
"server_banner.server_stats": "サーバーの情報",
|
||||
"sign_in_banner.create_account": "アカウント作成",
|
||||
"sign_in_banner.follow_anyone": "連合内の誰でもフォローして投稿を時系列で見ることができます。アルゴリズム、広告、クリックベイトはありません。",
|
||||
"sign_in_banner.mastodon_is": "Mastodonに参加して、世界で起きていることを見つけよう。",
|
||||
"sign_in_banner.sign_in": "ログイン",
|
||||
"sign_in_banner.sso_redirect": "ログインまたは登録",
|
||||
"status.admin_account": "@{name}さんのモデレーション画面を開く",
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"about.blocks": "Ulac agbur",
|
||||
"about.contact": "Anermis:",
|
||||
"about.disclaimer": "Mastodon d aseɣẓan ilelli, d aseɣẓan n uɣbalu yeldin, d tnezzut n Mastodon gGmbH.",
|
||||
"about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.",
|
||||
"about.domain_blocks.silenced.title": "Ɣur-s talast",
|
||||
"about.domain_blocks.suspended.title": "Yeḥbes",
|
||||
"about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.",
|
||||
"about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}",
|
||||
"about.rules": "Ilugan n uqeddac",
|
||||
|
@ -24,9 +28,12 @@
|
|||
"account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}",
|
||||
"account.featured_tags.last_status_never": "Ulac tisuffaɣ",
|
||||
"account.follow": "Ḍfer",
|
||||
"account.follow_back": "Ḍfer-it ula d kečč·m",
|
||||
"account.followers": "Imeḍfaren",
|
||||
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} n umḍfar} other {{counter} n yimeḍfaren}}",
|
||||
"account.following": "Yeṭṭafaṛ",
|
||||
"account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}",
|
||||
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
|
||||
"account.go_to_profile": "Ddu ɣer umaɣnu",
|
||||
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
|
||||
|
@ -49,6 +56,7 @@
|
|||
"account.requested_follow": "{name} yessuter ad k·m-yeḍfer",
|
||||
"account.share": "Bḍu amaɣnu n @{name}",
|
||||
"account.show_reblogs": "Ssken-d inebḍa n @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
|
||||
"account.unblock": "Serreḥ i @{name}",
|
||||
"account.unblock_domain": "Ssken-d {domain}",
|
||||
"account.unblock_short": "Serreḥ",
|
||||
|
@ -166,6 +174,7 @@
|
|||
"dismissable_banner.explore_tags": "D wiyi i d ihacṭagen i d-yettawin tamyigawt deg web anmetti ass-a. Ihacṭagen i sseqdacen ugar n medden, εlayit d imezwura.",
|
||||
"domain_block_modal.block": "Sewḥel aqeddac",
|
||||
"domain_block_modal.they_cant_follow": "Yiwen ur yezmir ad k·m-id-yeḍfer seg uqeddac-a.",
|
||||
"domain_block_modal.title": "Sewḥel taɣult?",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub am tutlayt yettmeslay Mastodon d izeḍwan inmettiyen nniḍen.",
|
||||
"domain_pill.server": "Aqeddac",
|
||||
"domain_pill.username": "Isem n useqdac",
|
||||
|
@ -214,6 +223,7 @@
|
|||
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
|
||||
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
|
||||
"filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.",
|
||||
"filter_modal.added.title": "Yettwarna umsizdeg!",
|
||||
"filter_modal.select_filter.expired": "yemmut",
|
||||
"filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
|
||||
"filter_modal.select_filter.search": "Nadi neɣ snulfu-d",
|
||||
|
@ -224,9 +234,9 @@
|
|||
"firehose.remote": "Iqeddacen nniḍen",
|
||||
"follow_request.authorize": "Ssireg",
|
||||
"follow_request.reject": "Agi",
|
||||
"follow_suggestions.dismiss": "Ur ttɛawad ara ad t-id-sekneṭ",
|
||||
"follow_suggestions.dismiss": "Dayen ur t-id-skan ara",
|
||||
"follow_suggestions.view_all": "Wali-ten akk",
|
||||
"follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
|
||||
"follow_suggestions.who_to_follow": "Ad tḍefreḍ?",
|
||||
"followed_tags": "Ihacṭagen yettwaḍfaren",
|
||||
"footer.about": "Ɣef",
|
||||
"footer.directory": "Akaram n imeɣna",
|
||||
|
@ -235,6 +245,7 @@
|
|||
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
|
||||
"footer.privacy_policy": "Tasertit tabaḍnit",
|
||||
"footer.source_code": "Wali tangalt taɣbalut",
|
||||
"footer.status": "N tsuffeɣt",
|
||||
"generic.saved": "Yettwasekles",
|
||||
"getting_started.heading": "Bdu",
|
||||
"hashtag.column_header.tag_mode.all": "d {additional}",
|
||||
|
@ -313,11 +324,14 @@
|
|||
"lightbox.previous": "Ɣer deffir",
|
||||
"limited_account_hint.action": "Wali amaɣnu akken yebɣu yili",
|
||||
"link_preview.author": "S-ɣur {name}",
|
||||
"link_preview.more_from_author": "Ugar sɣur {name}",
|
||||
"link_preview.shares": "{count, plural, one {{counter} post} other {{counter} posts}}",
|
||||
"lists.account.add": "Rnu ɣer tebdart",
|
||||
"lists.account.remove": "Kkes seg tebdart",
|
||||
"lists.delete": "Kkes tabdart",
|
||||
"lists.edit": "Ẓreg tabdart",
|
||||
"lists.edit.submit": "Beddel azwel",
|
||||
"lists.exclusive": "Ffer tisuffaɣ-a seg ugejdan",
|
||||
"lists.new.create": "Rnu tabdart",
|
||||
"lists.new.title_placeholder": "Azwel amaynut n tebdart",
|
||||
"lists.replies_policy.followed": "Kra n useqdac i yettwaḍefren",
|
||||
|
@ -338,6 +352,7 @@
|
|||
"navigation_bar.bookmarks": "Ticraḍ",
|
||||
"navigation_bar.community_timeline": "Tasuddemt tadigant",
|
||||
"navigation_bar.compose": "Aru tajewwiqt tamaynut",
|
||||
"navigation_bar.direct": "Tibdarin tusligin",
|
||||
"navigation_bar.discover": "Ẓer",
|
||||
"navigation_bar.domain_blocks": "Tiɣula yeffren",
|
||||
"navigation_bar.explore": "Snirem",
|
||||
|
@ -357,9 +372,14 @@
|
|||
"navigation_bar.search": "Nadi",
|
||||
"navigation_bar.security": "Taɣellist",
|
||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
||||
"notification.admin.report": "Yemla-t-id {name} {target}",
|
||||
"notification.admin.sign_up": "Ijerred {name}",
|
||||
"notification.favourite": "{name} yesmenyaf addad-ik·im",
|
||||
"notification.follow": "iṭṭafar-ik·em-id {name}",
|
||||
"notification.follow_request": "{name} yessuter-d ad k·m-yeḍfeṛ",
|
||||
"notification.mention": "{name} yebder-ik-id",
|
||||
"notification.moderation-warning.learn_more": "Issin ugar",
|
||||
"notification.moderation_warning.action_suspend": "Yettwaseḥbes umiḍan-ik.",
|
||||
"notification.own_poll": "Tafrant-ik·im tfuk",
|
||||
"notification.poll": "Tfukk tefrant ideg tettekkaḍ",
|
||||
"notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen",
|
||||
|
@ -370,6 +390,7 @@
|
|||
"notification_requests.notifications_from": "Ilɣa sɣur {name}",
|
||||
"notifications.clear": "Sfeḍ tilɣa",
|
||||
"notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-inek·em i lebda?",
|
||||
"notifications.column_settings.admin.report": "Ineqqisen imaynuten:",
|
||||
"notifications.column_settings.alert": "Tilɣa n tnarit",
|
||||
"notifications.column_settings.favourite": "Imenyafen:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Sken-d akk taggayin",
|
||||
|
@ -384,6 +405,7 @@
|
|||
"notifications.column_settings.sound": "Rmed imesli",
|
||||
"notifications.column_settings.status": "Tisuffaɣ timaynutin :",
|
||||
"notifications.column_settings.unread_notifications.category": "Ilɣa ur nettwaɣra",
|
||||
"notifications.column_settings.update": "Iẓreg:",
|
||||
"notifications.filter.all": "Akk",
|
||||
"notifications.filter.boosts": "Seǧhed",
|
||||
"notifications.filter.favourites": "Imenyafen",
|
||||
|
@ -413,6 +435,7 @@
|
|||
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
|
||||
"onboarding.follows.title": "Ttwassnen deg Mastodon",
|
||||
"onboarding.profile.display_name": "Isem ara d-yettwaskanen",
|
||||
"onboarding.profile.display_name_hint": "Isem-ik·im ummid neɣ isem-ik·im n uqeṣṣer…",
|
||||
"onboarding.profile.note": "Tameddurt",
|
||||
"onboarding.profile.note_hint": "Tzemreḍ ad d-@tbedreḍ imdanen niḍen neɣ #ihacṭagen …",
|
||||
"onboarding.profile.save_and_continue": "Sekles, tkemmleḍ",
|
||||
|
@ -441,6 +464,7 @@
|
|||
"poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
|
||||
"poll.vote": "Dɣeṛ",
|
||||
"poll.voted": "Tdeɣṛeḍ ɣef tririt-ayi",
|
||||
"poll.votes": "{votes, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
|
||||
"poll_button.add_poll": "Rnu asenqed",
|
||||
"poll_button.remove_poll": "Kkes asenqed",
|
||||
"privacy.change": "Seggem tabaḍnit n yizen",
|
||||
|
@ -465,9 +489,12 @@
|
|||
"relative_time.seconds": "{number}tas",
|
||||
"relative_time.today": "assa",
|
||||
"reply_indicator.cancel": "Sefsex",
|
||||
"reply_indicator.poll": "Afmiḍi",
|
||||
"report.block": "Sewḥel",
|
||||
"report.categories.legal": "Azerfan",
|
||||
"report.categories.other": "Tiyyaḍ",
|
||||
"report.categories.spam": "Aspam",
|
||||
"report.category.subtitle": "Fren amṣada akk ufrin",
|
||||
"report.category.title_account": "ameɣnu",
|
||||
"report.category.title_status": "tasuffeɣt",
|
||||
"report.close": "Immed",
|
||||
|
@ -476,13 +503,25 @@
|
|||
"report.next": "Uḍfiṛ",
|
||||
"report.placeholder": "Iwenniten-nniḍen",
|
||||
"report.reasons.dislike": "Ur t-ḥemmleɣ ara",
|
||||
"report.reasons.dislike_description": "D ayen akk ur bɣiɣ ara ad waliɣ",
|
||||
"report.reasons.other": "D ayen nniḍen",
|
||||
"report.reasons.other_description": "Ugur ur yemṣada ara akk d taggayin-nniḍen",
|
||||
"report.reasons.spam": "D aspam",
|
||||
"report.reasons.spam_description": "Yir iseɣwan, yir agman d tririyin i d-yettuɣalen",
|
||||
"report.reasons.violation": "Truẓi n yilugan n uqeddac",
|
||||
"report.reasons.violation_description": "Teẓriḍ y·tettruẓu kra n yilugan",
|
||||
"report.rules.subtitle": "Fren ayen akk yemṣadan",
|
||||
"report.rules.title": "Acu n yilugan i yettwarẓan?",
|
||||
"report.statuses.subtitle": "Fren ayen akk yemṣadan",
|
||||
"report.statuses.title": "Llant tsuffaɣ ara isdemren aneqqis-a?",
|
||||
"report.submit": "Azen",
|
||||
"report.target": "Mmel {target}",
|
||||
"report.thanks.take_action_actionable": "Ideg nekkni nessenqad tuttra-inek•inem, tzemreḍ ad tḥadreḍ mgal @{name}:",
|
||||
"report.thanks.title": "Ur tebɣiḍ ara ad twaliḍ aya?",
|
||||
"report.thanks.title_actionable": "Tanemmirt ɣef uneqqis, ad nwali deg waya.",
|
||||
"report.unfollow": "Seḥbes aḍfar n @{name}",
|
||||
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
|
||||
"report_notification.categories.legal": "Azerfan",
|
||||
"report_notification.categories.other": "Ayen nniḍen",
|
||||
"report_notification.categories.spam": "Aspam",
|
||||
"report_notification.open": "Ldi aneqqis",
|
||||
|
@ -497,6 +536,7 @@
|
|||
"search_popout.full_text_search_disabled_message": "Ur yelli ara deg {domain}.",
|
||||
"search_popout.language_code": "Tangalt ISO n tutlayt",
|
||||
"search_popout.options": "Iwellihen n unadi",
|
||||
"search_popout.quick_actions": "Tigawin tiruradin",
|
||||
"search_popout.recent": "Inadiyen ineggura",
|
||||
"search_popout.user": "amseqdac",
|
||||
"search_results.accounts": "Imeɣna",
|
||||
|
@ -505,7 +545,9 @@
|
|||
"search_results.see_all": "Wali-ten akk",
|
||||
"search_results.statuses": "Tisuffaɣ",
|
||||
"search_results.title": "Anadi ɣef {q}",
|
||||
"server_banner.active_users": "iseqdacen urmiden",
|
||||
"server_banner.administered_by": "Yettwadbel sɣur :",
|
||||
"server_banner.server_stats": "Tidaddanin n uqeddac:",
|
||||
"sign_in_banner.create_account": "Snulfu-d amiḍan",
|
||||
"sign_in_banner.sign_in": "Qqen",
|
||||
"sign_in_banner.sso_redirect": "Qqen neɣ jerred",
|
||||
|
@ -516,13 +558,21 @@
|
|||
"status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen",
|
||||
"status.copy": "Nɣel assaɣ ɣer tasuffeɣt",
|
||||
"status.delete": "Kkes",
|
||||
"status.direct": "Bder-d @{name} weḥd-s",
|
||||
"status.direct_indicator": "Abdar uslig",
|
||||
"status.edit": "Ẓreg",
|
||||
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
|
||||
"status.embed": "Seddu",
|
||||
"status.favourite": "Amenyaf",
|
||||
"status.favourites": "{count, plural, one {n usmenyaf} other {n ismenyafen}}",
|
||||
"status.filter": "Sizdeg tassufeɣt-a",
|
||||
"status.filtered": "Yettwasizdeg",
|
||||
"status.hide": "Ffer tasuffeɣt",
|
||||
"status.history.created": "Yerna-t {name} {date}",
|
||||
"status.history.edited": "Ibeddel-it {name} {date}",
|
||||
"status.load_more": "Sali ugar",
|
||||
"status.media.open": "Sit i ulday",
|
||||
"status.media.show": "Sit i uskan",
|
||||
"status.media_hidden": "Amidya yettwaffer",
|
||||
"status.mention": "Bder-d @{name}",
|
||||
"status.more": "Ugar",
|
||||
|
@ -534,6 +584,7 @@
|
|||
"status.read_more": "Issin ugar",
|
||||
"status.reblog": "Bḍu",
|
||||
"status.reblogged_by": "Yebḍa-tt {name}",
|
||||
"status.reblogs": "{count, plural, one {n usnerni} other {n yisnernuyen}}",
|
||||
"status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
|
||||
"status.redraft": "Kkes tɛiwdeḍ tira",
|
||||
"status.remove_bookmark": "Kkes tacreḍt",
|
||||
|
@ -548,6 +599,7 @@
|
|||
"status.show_less_all": "Semẓi akk tisuffɣin",
|
||||
"status.show_more": "Ssken-d ugar",
|
||||
"status.show_more_all": "Ẓerr ugar lebda",
|
||||
"status.show_original": "Sken aɣbalu",
|
||||
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
|
||||
"status.translate": "Suqel",
|
||||
"status.translated_from_with": "Yettwasuqel seg {lang} s {provider}",
|
||||
|
@ -582,6 +634,7 @@
|
|||
"upload_form.video_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt neɣ deg yiẓri",
|
||||
"upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…",
|
||||
"upload_modal.apply": "Snes",
|
||||
"upload_modal.applying": "Asnas…",
|
||||
"upload_modal.choose_image": "Fren tugna",
|
||||
"upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis",
|
||||
"upload_modal.detect_text": "Sefru-d aḍris seg tugna",
|
||||
|
@ -589,6 +642,7 @@
|
|||
"upload_modal.preparing_ocr": "Aheyyi n OCR…",
|
||||
"upload_modal.preview_label": "Taskant ({ratio})",
|
||||
"upload_progress.label": "Asali iteddu...",
|
||||
"upload_progress.processing": "Asesfer…",
|
||||
"username.taken": "Yettwaṭṭef yisem-a n useqdac. Ɛreḍ wayeḍ",
|
||||
"video.close": "Mdel tabidyutt",
|
||||
"video.download": "Sidered afaylu",
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
"account.follow_back": "Sekot atpakaļ",
|
||||
"account.followers": "Sekotāji",
|
||||
"account.followers.empty": "Šim lietotājam vēl nav sekotāju.",
|
||||
"account.followers_counter": "{count, plural, zero {{count} sekotāju} one {{count} sekotājs} other {{count} sekotāji}}",
|
||||
"account.following": "Seko",
|
||||
"account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.",
|
||||
"account.go_to_profile": "Doties uz profilu",
|
||||
|
@ -312,9 +313,9 @@
|
|||
"home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
|
||||
"home.column_settings.show_replies": "Rādīt atbildes",
|
||||
"home.hide_announcements": "Slēpt paziņojumus",
|
||||
"home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!",
|
||||
"home.pending_critical_update.body": "Lūgums pēc iespējas drīzāk atjaunināt savu Mastodon serveri.",
|
||||
"home.pending_critical_update.link": "Skatīt jauninājumus",
|
||||
"home.pending_critical_update.title": "Pieejams kritisks drošības jauninājums!",
|
||||
"home.pending_critical_update.title": "Ir pieejams būtisks drošības atjauninājums.",
|
||||
"home.show_announcements": "Rādīt paziņojumus",
|
||||
"interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.",
|
||||
"interaction_modal.description.follow": "Ar Mastodon kontu Tu vari sekot {name}, lai saņemtu lietotāja ierakstus savā mājas plūsmā.",
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
"about.contact": "Контакт:",
|
||||
"about.disclaimer": "Mastodon є задарьнов проґрамов из удпертым кодом тай торговов значков Mastodon gGmbH.",
|
||||
"about.domain_blocks.no_reason_available": "Причины не ясні",
|
||||
"about.domain_blocks.preamble": "Майбульш Mastodon поволят вам позирати контент тай комуніковати из хосновачами из другых федерованых серверув. Туй лиш уняткы учинені про сись конкретный сервер.",
|
||||
"about.domain_blocks.silenced.explanation": "Вы майбульш не будете видіти профілі тай контент из сього сервера, кидь не будете го самі глядати авадь пудпишете ся на нього.",
|
||||
"about.domain_blocks.silenced.title": "Обмежено",
|
||||
"about.domain_blocks.suspended.explanation": "Ниякі податкы из сього сервера не будут уброблені, усокочені ци поміняні, што чинит невозможнов хоть-яку інтеракцію ци зязок из хосновачами из сього сервера.",
|
||||
"about.domain_blocks.suspended.title": "Заблоковано",
|
||||
|
@ -20,6 +22,7 @@
|
|||
"account.browse_more_on_origin_server": "Позирайте бульше на ориґіналнум профілю",
|
||||
"account.cancel_follow_request": "Удмінити пудписку",
|
||||
"account.copy": "Зкопіровати удкликованя на профіл",
|
||||
"account.direct": "Пошептати @{name}",
|
||||
"account.disable_notifications": "Бульше не сповіщати ми коли {name} пише",
|
||||
"account.domain_blocked": "Домен заблокованый",
|
||||
"account.edit_profile": "Управити профіл",
|
||||
|
@ -39,8 +42,10 @@
|
|||
"account.joined_short": "Датум прикапчованя",
|
||||
"account.languages": "Поміняти убрані языкы",
|
||||
"account.link_verified_on": "Властность сього удкликованя было звірено {date}",
|
||||
"account.locked_info": "Сись профіл є замкнутый. Ґазда акаунта буде ручно провіряти тко го може зафоловити.",
|
||||
"account.media": "Медіа",
|
||||
"account.moved_to": "Хосновач {name} указав, ож новый профіл йим є:",
|
||||
"account.mention": "Спомянути @{name}",
|
||||
"account.moved_to": "Хосновач {name} указав, ож новый профіл му є:",
|
||||
"account.mute": "Стишити {name}",
|
||||
"account.mute_notifications_short": "Стишити голошіня",
|
||||
"account.mute_short": "Стишити",
|
||||
|
@ -60,9 +65,12 @@
|
|||
"account.unblock_short": "Розблоковати",
|
||||
"account.unendorse": "Не указовати на профілови",
|
||||
"account.unfollow": "Удписати ся",
|
||||
"account.unmute": "Указовати {name}",
|
||||
"account.unmute_notifications_short": "Указовати голошіня",
|
||||
"account.unmute_short": "Указовати",
|
||||
"account_note.placeholder": "Клопкніт обы додати примітку",
|
||||
"admin.dashboard.retention.average": "Середньоє",
|
||||
"admin.dashboard.retention.cohort": "Місяць прикапчованя",
|
||||
"admin.dashboard.retention.cohort_size": "Нові хосновачі",
|
||||
"admin.impact_report.instance_accounts": "Профілі из акаунтув, котрі ся удалят",
|
||||
"admin.impact_report.instance_followers": "Пудписникы, котрых стратят наші хосновачі",
|
||||
|
@ -70,11 +78,77 @@
|
|||
"admin.impact_report.title": "Вплыв цілком",
|
||||
"alert.rate_limited.message": "Попробуйте зась по {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Частота обмежена",
|
||||
"alert.unexpected.message": "Стала ся нечекана хыба.",
|
||||
"alert.unexpected.title": "Ийой!",
|
||||
"announcement.announcement": "Голошіня",
|
||||
"audio.hide": "Зпрятати звук",
|
||||
"block_modal.remote_users_caveat": "Попросиме ґазду сервера {domain} честовати вашоє рішеня. Айбо не ґарантуєме повный соглас, бо даякі серверы можут брати блокованя по-инчакому. Публичні дописы годно быти видко незалоґованым хосновачам.",
|
||||
"block_modal.show_less": "Указати менше",
|
||||
"block_modal.show_more": "Указати бульше",
|
||||
"block_modal.they_cant_mention": "Они не можут вас споминати авадь слідовати.",
|
||||
"block_modal.they_cant_see_posts": "Они не можут видіти ваші публикації, тай наспак — вы йихні.",
|
||||
"block_modal.they_will_know": "Они видят, ож сут заблоковані.",
|
||||
"block_modal.title": "Заблоковати хосновача?",
|
||||
"block_modal.you_wont_see_mentions": "Не будете видіти публикації тай споминкы сього хосновача.",
|
||||
"boost_modal.combo": "Можете клынцнути {combo} другый раз обы сесе пропустити",
|
||||
"bundle_column_error.copy_stacktrace": "Укопіровати звіт за хыбу",
|
||||
"bundle_column_error.error.body": "Не годни сьме указати зажадану сторунку. Годно быти спозад хыбы у нашум сістемі, авадь проблемы зумісности бравзера.",
|
||||
"bundle_column_error.error.title": "Ийой!",
|
||||
"bundle_column_error.network.body": "Стала ся хыба як сьме пробовали напаровати сторунку. Годно ся йсе было стати спозад слабого споєня вашого інтернета, авадь сервера.",
|
||||
"bundle_column_error.network.title": "Хыба споєня",
|
||||
"bundle_column_error.retry": "Попробуйте зась",
|
||||
"bundle_column_error.return": "Вернути ся на головну",
|
||||
"bundle_column_error.routing.body": "Не можеме найти сяку сторунку. Бизувні сьте, ож URL у адресному шорикови є добрый?",
|
||||
"bundle_column_error.routing.title": "404",
|
||||
"bundle_modal_error.close": "Заперти",
|
||||
"bundle_modal_error.message": "Штось ся показило, закидь сьме ладовали сись компонент.",
|
||||
"bundle_modal_error.retry": "Попробовати зась",
|
||||
"closed_registrations.other_server_instructions": "Mastodon є децентралізованов платформов, можете си учинити профіл и на другому серверови тай комуніковати из сим."
|
||||
"closed_registrations.other_server_instructions": "Mastodon є децентралізованов платформов, можете си учинити профіл и на другому серверови тай комуніковати из сим.",
|
||||
"closed_registrations_modal.description": "Раз не мож учинити профіл на {domain}, айбо не мусите мати профіл ипен на серверови {domain} обы хосновати Mastodon.",
|
||||
"closed_registrations_modal.find_another_server": "Найти другый сервер",
|
||||
"column.about": "За сайт",
|
||||
"column.blocks": "Заблоковані хосновачі",
|
||||
"column.bookmarks": "Усокоченоє",
|
||||
"column.direct": "Шептаня",
|
||||
"column.directory": "Никати профілі",
|
||||
"column.domain_blocks": "Заблоковані домены",
|
||||
"column.favourites": "Убраноє",
|
||||
"column.follow_requests": "Запросы на пудписку",
|
||||
"column.lists": "Исписы",
|
||||
"column.mutes": "Стишені хосновачі",
|
||||
"column.notifications": "Убвіщеня",
|
||||
"column.pins": "Закріплені публикації",
|
||||
"column_back_button.label": "Назад",
|
||||
"column_header.hide_settings": "Спрятати штімованя",
|
||||
"column_header.moveLeft_settings": "Посунути колонку до ліва",
|
||||
"column_header.moveRight_settings": "Посунути колонку до права",
|
||||
"column_header.pin": "Закріпити",
|
||||
"column_header.show_settings": "Указати штімованя",
|
||||
"column_header.unpin": "Удкріпити",
|
||||
"column_subheading.settings": "Штімованя",
|
||||
"compose.language.change": "Поміняти язык",
|
||||
"compose.language.search": "Глядати языкы...",
|
||||
"compose.published.body": "Пост опубликованый.",
|
||||
"compose.saved.body": "Пост усокоченый.",
|
||||
"compose_form.direct_message_warning_learn_more": "Читайте бульше",
|
||||
"compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
|
||||
"compose_form.hashtag_warning": "Сись пост не буде ся появляти у исписови по гештеґови, бо вун не є публичный. Лишек публичні посты буде видко за гештеґом.",
|
||||
"compose_form.lock_disclaimer": "Ваш профіл є {locked}. Хоть-тко може ся на вас пудписати, обы видїти ваші ексклузівні посты.",
|
||||
"compose_form.lock_disclaimer.lock": "замкнено",
|
||||
"compose_form.placeholder": "Што нового?",
|
||||
"compose_form.poll.duration": "Трывалость убзвідованя",
|
||||
"compose_form.poll.multiple": "Дакулько варіантув",
|
||||
"compose_form.poll.option_placeholder": "Варіант {number}",
|
||||
"compose_form.poll.single": "Уберіт єден",
|
||||
"compose_form.poll.switch_to_multiple": "Змінити убзвідованя обы поволити дакулько варіантув",
|
||||
"compose_form.poll.switch_to_single": "Змінити убзвідованя обы поволити лишек єден варіант",
|
||||
"compose_form.poll.type": "Стіл",
|
||||
"compose_form.publish": "Публикація",
|
||||
"compose_form.publish_form": "Нова публикація",
|
||||
"compose_form.reply": "Удповідь",
|
||||
"copypaste.copy_to_clipboard": "Копіровати у памнять",
|
||||
"directory.recently_active": "Недавно актівні",
|
||||
"disabled_account_banner.account_settings": "Штімованя акаунта",
|
||||
"disabled_account_banner.text": "Ваш акаунт {disabledAccount} раз є неактівный.",
|
||||
"dismissable_banner.community_timeline": "Туй сут недавні публикації уд профілув на серверови {domain}."
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
"account.mute": "@{name} නිහඬ කරන්න",
|
||||
"account.mute_short": "නිහඬ",
|
||||
"account.muted": "නිහඬ කළා",
|
||||
"account.open_original_page": "මුල් පිටුව අරින්න",
|
||||
"account.posts": "ලිපි",
|
||||
"account.posts_with_replies": "ලිපි සහ පිළිතුරු",
|
||||
"account.report": "@{name} වාර්තා කරන්න",
|
||||
|
@ -51,6 +52,10 @@
|
|||
"alert.unexpected.title": "අපොයි!",
|
||||
"announcement.announcement": "නිවේදනය",
|
||||
"audio.hide": "හඬපටය සඟවන්න",
|
||||
"block_modal.show_less": "අඩුවෙන් පෙන්වන්න",
|
||||
"block_modal.show_more": "තව පෙන්වන්න",
|
||||
"block_modal.they_will_know": "අවහිර කළ බව දකිනු ඇත.",
|
||||
"block_modal.title": "අවහිර කරන්නද?",
|
||||
"boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට {combo} එබීමට හැකිය",
|
||||
"bundle_column_error.copy_stacktrace": "දෝෂ වාර්තාවේ පිටපතක්",
|
||||
"bundle_column_error.error.title": "අපොයි!",
|
||||
|
@ -100,10 +105,13 @@
|
|||
"compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
|
||||
"compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?",
|
||||
"compose_form.poll.duration": "මත විමසීමේ කාලය",
|
||||
"compose_form.poll.option_placeholder": "විකල්පය {number}",
|
||||
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට මත විමසුම වෙනස් කරන්න",
|
||||
"compose_form.poll.switch_to_single": "තනි තේරීමකට මත විමසුම වෙනස් කරන්න",
|
||||
"compose_form.poll.type": "ශෛලිය",
|
||||
"compose_form.publish": "ප්රකාශනය",
|
||||
"compose_form.publish_form": "නව ලිපිය",
|
||||
"compose_form.reply": "පිළිතුරු",
|
||||
"compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න",
|
||||
"compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න",
|
||||
"confirmation_modal.cancel": "අවලංගු",
|
||||
|
@ -123,6 +131,7 @@
|
|||
"conversation.mark_as_read": "කියවූ බව යොදන්න",
|
||||
"conversation.open": "සංවාදය බලන්න",
|
||||
"conversation.with": "{names} සමඟ",
|
||||
"copy_icon_button.copied": "පසුරුපුවරුවට පිටපත් විය",
|
||||
"copypaste.copied": "පිටපත් විය",
|
||||
"copypaste.copy_to_clipboard": "පසුරුපුවරුවට පිටපතක්",
|
||||
"directory.federated": "දන්නා ෆෙඩිවර්ස් වෙතින්",
|
||||
|
@ -130,6 +139,9 @@
|
|||
"directory.new_arrivals": "නව පැමිණීම්",
|
||||
"directory.recently_active": "මෑත දී සක්රියයි",
|
||||
"disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්",
|
||||
"dismissable_banner.dismiss": "ඉවතලන්න",
|
||||
"domain_pill.server": "සේවාදායකය",
|
||||
"domain_pill.username": "පරිශ්රීලක නාමය",
|
||||
"embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.",
|
||||
"embed.preview": "මෙන්න එය පෙනෙන අන්දම:",
|
||||
"emoji_button.activity": "ක්රියාකාරකම",
|
||||
|
@ -178,9 +190,13 @@
|
|||
"filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න",
|
||||
"filter_modal.select_filter.title": "මෙම ලිපිය පෙරන්න",
|
||||
"filter_modal.title.status": "ලිපියක් පෙරන්න",
|
||||
"filtered_notifications_banner.title": "පෙරූ දැනුම්දීම්",
|
||||
"firehose.all": "සියල්ල",
|
||||
"firehose.local": "මෙම සේවාදායකය",
|
||||
"firehose.remote": "වෙනත් සේවාදායක",
|
||||
"follow_request.reject": "ප්රතික්ෂේප",
|
||||
"follow_suggestions.dismiss": "නැවත පෙන්වන්න එපා",
|
||||
"follow_suggestions.view_all": "සියල්ල බලන්න",
|
||||
"footer.about": "පිළිබඳව",
|
||||
"footer.directory": "පැතිකඩ නාමාවලිය",
|
||||
"footer.get_app": "යෙදුම ගන්න",
|
||||
|
@ -202,6 +218,7 @@
|
|||
"home.pending_critical_update.link": "යාවත්කාල බලන්න",
|
||||
"home.show_announcements": "නිවේදන පෙන්වන්න",
|
||||
"interaction_modal.login.action": "මුලට ගෙනයන්න",
|
||||
"interaction_modal.on_another_server": "වෙනත් සේවාදායකයක",
|
||||
"interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි",
|
||||
"interaction_modal.title.favourite": "{name}ගේ ලිපිය ප්රිය කරන්න",
|
||||
"interaction_modal.title.follow": "{name} අනුගමනය",
|
||||
|
|
|
@ -170,6 +170,8 @@
|
|||
"domain_block_modal.block": "o weka e ma",
|
||||
"domain_block_modal.you_will_lose_followers": "ma ni la jan alasa ale sina li weka",
|
||||
"domain_block_modal.you_wont_see_posts": "sina ken ala lukin e toki tan jan pi ma ni",
|
||||
"domain_pill.server": "ma",
|
||||
"domain_pill.username": "nimi jan",
|
||||
"embed.preview": "ni li jo e sitelen ni:",
|
||||
"emoji_button.activity": "musi",
|
||||
"emoji_button.flags": "len ma",
|
||||
|
@ -274,6 +276,7 @@
|
|||
"load_pending": "{count, plural, other {ijo sin #}}",
|
||||
"loading_indicator.label": "ni li kama…",
|
||||
"media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
|
||||
"mute_modal.title": "sina wile ala wile kute e jan ni?",
|
||||
"navigation_bar.about": "sona",
|
||||
"navigation_bar.blocks": "jan weka",
|
||||
"navigation_bar.compose": "o pali e toki sin",
|
||||
|
@ -290,24 +293,33 @@
|
|||
"notification.follow": " {name} li kute e sina",
|
||||
"notification.follow_request": "{name} li wile kute e sina",
|
||||
"notification.mention": "jan {name} li toki e sina",
|
||||
"notification.moderation-warning.learn_more": "o kama sona e ijo ante",
|
||||
"notification.poll": "sina pana lon pana la pana ni li pini",
|
||||
"notification.reblog": "{name} li wawa e toki sina",
|
||||
"notification.status": "{name} li toki",
|
||||
"notification.update": "{name} li ante e toki",
|
||||
"notification_requests.dismiss": "o weka",
|
||||
"notifications.column_settings.favourite": "ijo pona:",
|
||||
"notifications.column_settings.follow": "jan kute sin",
|
||||
"notifications.column_settings.poll": "pana lon pana ni:",
|
||||
"notifications.column_settings.reblog": "wawa:",
|
||||
"notifications.column_settings.status": "toki sin:",
|
||||
"notifications.column_settings.update": "ante toki:",
|
||||
"notifications.filter.all": "ale",
|
||||
"notifications.filter.boosts": "wawa",
|
||||
"notifications.filter.favourites": "ijo pona",
|
||||
"notifications.filter.mentions": "toki pi toki sina",
|
||||
"notifications.filter.polls": "pana lon pana ni",
|
||||
"onboarding.action.back": "o tawa monsi",
|
||||
"onboarding.actions.back": "o tawa monsi",
|
||||
"onboarding.compose.template": "toki a, #Mastodon o!",
|
||||
"onboarding.profile.display_name": "nimi tawa jan ante",
|
||||
"onboarding.profile.note": "sona sina",
|
||||
"onboarding.share.lead": "o toki lon nasin Masoton pi alasa sina tawa jan",
|
||||
"onboarding.share.message": "ilo #Mastodon la mi jan {username} a! o kute e mi lon ni: {url}",
|
||||
"onboarding.start.title": "sina o kama pona a!",
|
||||
"onboarding.tips.migration": "<strong>sina sona ala sona e ni?</strong> tenpo kama la sina pilin ike tawa ma {domain} la, sina ken tawa ma ante lon ilo Masoton. jan li kute e sina la jan ni li awen kute e sina. kin la sina ken lawa e ma pi sina taso a!",
|
||||
"poll.closed": "ona li pini",
|
||||
"poll.total_people": "{count, plural, other {jan #}}",
|
||||
"poll.total_votes": "{count, plural, other {pana #}}",
|
||||
"poll.vote": "o pana",
|
||||
|
@ -315,9 +327,15 @@
|
|||
"poll.votes": "{votes, plural, other {pana #}}",
|
||||
"privacy.direct.long": "jan ale lon toki",
|
||||
"privacy.public.short": "tawa ale",
|
||||
"regeneration_indicator.label": "ni li kama…",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.full.just_now": "tenpo ni",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "tenpo ni",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "tenpo suno ni",
|
||||
"reply_indicator.cancel": "o ala",
|
||||
"report.block": "o weka e jan",
|
||||
"report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
|
||||
"report.categories.other": "ante",
|
||||
|
@ -336,6 +354,7 @@
|
|||
"report.thanks.title": "sina wile ala lukin e ni anu seme?",
|
||||
"report.unfollow": "o pini kute e {name}",
|
||||
"report_notification.categories.legal": "ike tawa nasin lawa",
|
||||
"report_notification.categories.other": "ante",
|
||||
"search.placeholder": "o alasa",
|
||||
"search.quick_action.go_to_account": "o tawa lipu jan {x}",
|
||||
"search_popout.language_code": "nimi toki kepeken nasin ISO",
|
||||
|
@ -343,6 +362,7 @@
|
|||
"search_results.see_all": "ale",
|
||||
"search_results.statuses": "toki",
|
||||
"search_results.title": "o alasa e {q}",
|
||||
"server_banner.administered_by": "jan lawa:",
|
||||
"status.block": "o weka e @{name}",
|
||||
"status.cancel_reblog_private": "o pini e pana",
|
||||
"status.delete": "o weka",
|
||||
|
@ -356,12 +376,14 @@
|
|||
"status.media.open": "o open",
|
||||
"status.media.show": "o lukin",
|
||||
"status.media_hidden": "sitelen li len",
|
||||
"status.more": "kin",
|
||||
"status.mute": "o len e @{name}",
|
||||
"status.mute_conversation": "o kute ala e ijo pi toki ni",
|
||||
"status.pin": "o sewi lon lipu sina",
|
||||
"status.pinned": "toki sewi",
|
||||
"status.reblog": "o wawa",
|
||||
"status.share": "o pana tawa ante",
|
||||
"status.show_filter_reason": "o lukin",
|
||||
"status.show_less": "o lili e ni",
|
||||
"status.show_less_all": "o lili e ale",
|
||||
"status.show_more": "o suli e ni",
|
||||
|
@ -378,7 +400,9 @@
|
|||
"timeline_hint.resources.follows": "jan lukin",
|
||||
"timeline_hint.resources.statuses": "ijo pi tenpo suli",
|
||||
"trends.trending_now": "jan mute li toki",
|
||||
"units.short.billion": "{count}B",
|
||||
"units.short.million": "{count}AAA",
|
||||
"units.short.thousand": "{count}K",
|
||||
"upload_button.label": "o pana e sitelen anu kalama",
|
||||
"upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
|
||||
"upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
|
||||
|
@ -386,6 +410,7 @@
|
|||
"upload_form.edit": "o ante",
|
||||
"upload_form.thumbnail": "o ante e sitelen lili",
|
||||
"upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
|
||||
"upload_modal.analyzing_picture": "ilo li lukin e sitelen...",
|
||||
"upload_modal.choose_image": "o wile e sitelen",
|
||||
"upload_modal.description_placeholder": "mi pu jaki tan soweli",
|
||||
"upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
"account.featured_tags.last_status_never": "Немає дописів",
|
||||
"account.featured_tags.title": "{name} виділяє хештеґи",
|
||||
"account.follow": "Підписатися",
|
||||
"account.follow_back": "Підписатися взаємно",
|
||||
"account.follow_back": "Стежити також",
|
||||
"account.followers": "Підписники",
|
||||
"account.followers.empty": "Ніхто ще не підписаний на цього користувача.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписники} many {{counter} підписників} other {{counter} підписники}}",
|
||||
|
@ -217,18 +217,18 @@
|
|||
"domain_block_modal.title": "Заблокувати домен?",
|
||||
"domain_block_modal.you_will_lose_followers": "Усіх ваших підписників з цього сервера буде вилучено.",
|
||||
"domain_block_modal.you_wont_see_posts": "Ви не бачитимете дописів і сповіщень від користувачів на цьому сервері.",
|
||||
"domain_pill.activitypub_lets_connect": "Це дозволяє вам спілкуватися та взаємодіяти з людьми не лише на Mastodon, але й у різних соціальних додатках.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub - це як мова, якою Мастодонт розмовляє з іншими соціальними мережами.",
|
||||
"domain_pill.activitypub_lets_connect": "Це дозволяє вам спілкуватися та взаємодіяти з людьми не лише на Mastodon, але й у різних соціальних застосунках.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub - це як мова, якою Mastodon розмовляє з іншими соціальними мережами.",
|
||||
"domain_pill.server": "Сервер",
|
||||
"domain_pill.their_handle": "Їхня адреса:",
|
||||
"domain_pill.their_server": "Їхній цифровий дім, де живуть усі їхні пости.",
|
||||
"domain_pill.their_server": "Їхній цифровий дім, де живуть усі їхні дописи.",
|
||||
"domain_pill.their_username": "Їхній унікальний ідентифікатор на їхньому сервері. Ви можете знайти користувачів з однаковими іменами на різних серверах.",
|
||||
"domain_pill.username": "Ім'я користувача",
|
||||
"domain_pill.whats_in_a_handle": "Що є в адресі?",
|
||||
"domain_pill.who_they_are": "Оскільки дескриптори вказують, хто це і де він знаходиться, ви можете взаємодіяти з людьми через соціальну мережу платформ на основі <button>ActivityPub</button>.",
|
||||
"domain_pill.who_you_are": "Оскільки ваш нікнейм вказує, хто ви та де ви, люди можуть взаємодіяти з вами через соціальну мережу платформ на основі <button>ActivityPub</button>.",
|
||||
"domain_pill.your_handle": "Ваша адреса:",
|
||||
"domain_pill.your_server": "Ваш цифровий дім, де живуть усі ваші публікації. Не подобається цей? Перенесіть сервери в будь-який час і залучайте своїх підписників.",
|
||||
"domain_pill.your_server": "Ваш цифровий дім, де живуть усі ваші дописи. Не подобається цей? Перенесіть сервери в будь-який час і залучайте своїх підписників.",
|
||||
"domain_pill.your_username": "Ваш унікальний ідентифікатор на цьому сервері. Ви можете знайти користувачів з однаковими іменами на різних серверах.",
|
||||
"embed.instructions": "Вбудуйте цей допис до вашого вебсайту, скопіювавши код нижче.",
|
||||
"embed.preview": "Ось який вигляд це матиме:",
|
||||
|
@ -489,9 +489,9 @@
|
|||
"notification.reblog": "{name} поширює ваш допис",
|
||||
"notification.relationships_severance_event": "Втрачено з'єднання з {name}",
|
||||
"notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.",
|
||||
"notification.relationships_severance_event.domain_block": "Адміністратор з {from} заблокував {target}, включаючи {followersCount} ваших підписників і {{followingCount, plural, one {# account} other {# accounts}}, на які ви підписані.",
|
||||
"notification.relationships_severance_event.learn_more": "Дізнатися більше",
|
||||
"notification.relationships_severance_event.user_domain_block": "Ви заблокували {target}, видаливши {followersCount} ваших підписників і {followingCount, plural, one {# account} other {# accounts}}, за якими ви стежите.",
|
||||
"notification.relationships_severance_event.domain_block": "Адміністратор з {from} заблокував {target}, включаючи {followersCount} ваших підписників і {followingCount , plural, one {# обліковий запис} few {# облікові записи} many {# облікових записів} other {# обліковий запис}}, на які ви підписані.",
|
||||
"notification.relationships_severance_event.learn_more": "Докладніше",
|
||||
"notification.relationships_severance_event.user_domain_block": "Ви заблокували {target}, видаливши {followersCount} ваших підписників і {followingCount, plural, one {# обліковий запис} few {# облікові записи} many {# облікових записів} other {# обліковий запис}}, за якими ви стежите.",
|
||||
"notification.status": "{name} щойно дописує",
|
||||
"notification.update": "{name} змінює допис",
|
||||
"notification_requests.accept": "Прийняти",
|
||||
|
|
|
@ -48,6 +48,10 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
.icon-button:disabled {
|
||||
color: darken($action-button-color, 25%);
|
||||
}
|
||||
|
||||
.account__header__bar .avatar .account__avatar {
|
||||
border-color: $white;
|
||||
}
|
||||
|
|
|
@ -1381,6 +1381,8 @@ body > [data-popper-placement] {
|
|||
min-height: 54px;
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
cursor: auto;
|
||||
opacity: 1;
|
||||
animation: fade 150ms linear;
|
||||
|
||||
@keyframes fade {
|
||||
0% {
|
||||
|
@ -1392,9 +1394,6 @@ body > [data-popper-placement] {
|
|||
}
|
||||
}
|
||||
|
||||
opacity: 1;
|
||||
animation: fade 150ms linear;
|
||||
|
||||
.media-gallery,
|
||||
.video-player,
|
||||
.audio-player,
|
||||
|
@ -5008,8 +5007,10 @@ a.status-card {
|
|||
&__menu {
|
||||
@include search-popout;
|
||||
|
||||
padding: 0;
|
||||
background: $ui-secondary-color;
|
||||
& {
|
||||
padding: 0;
|
||||
background: $ui-secondary-color;
|
||||
}
|
||||
}
|
||||
|
||||
&__menu-list {
|
||||
|
@ -10622,8 +10623,7 @@ noscript {
|
|||
.filtered-notifications-banner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-top: 0;
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
padding: 24px 32px;
|
||||
gap: 16px;
|
||||
color: $darker-text-color;
|
||||
|
@ -10884,7 +10884,7 @@ noscript {
|
|||
gap: 4px;
|
||||
|
||||
dt {
|
||||
flex: 0 0 auto;
|
||||
flex: 0 1 auto;
|
||||
color: $dark-text-color;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
|
|
|
@ -62,7 +62,8 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def author_name
|
||||
author['name']
|
||||
name = author['name']
|
||||
name.is_a?(Array) ? name.join(', ') : name
|
||||
end
|
||||
|
||||
def author_url
|
||||
|
@ -156,11 +157,11 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def title
|
||||
html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first).strip
|
||||
html_entities_decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first)&.strip
|
||||
end
|
||||
|
||||
def description
|
||||
html_entities.decode(structured_data&.description || opengraph_tag('og:description') || meta_tag('description'))
|
||||
html_entities_decode(structured_data&.description || opengraph_tag('og:description') || meta_tag('description'))
|
||||
end
|
||||
|
||||
def published_at
|
||||
|
@ -180,7 +181,7 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def provider_name
|
||||
html_entities.decode(structured_data&.publisher_name || opengraph_tag('og:site_name'))
|
||||
html_entities_decode(structured_data&.publisher_name || opengraph_tag('og:site_name'))
|
||||
end
|
||||
|
||||
def provider_url
|
||||
|
@ -188,7 +189,7 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def author_name
|
||||
html_entities.decode(structured_data&.author_name || opengraph_tag('og:author') || opengraph_tag('og:author:username'))
|
||||
html_entities_decode(structured_data&.author_name || opengraph_tag('og:author') || opengraph_tag('og:author:username'))
|
||||
end
|
||||
|
||||
def author_url
|
||||
|
@ -257,7 +258,7 @@ class LinkDetailsExtractor
|
|||
|
||||
next if json_ld.blank?
|
||||
|
||||
structured_data = StructuredData.new(html_entities.decode(json_ld))
|
||||
structured_data = StructuredData.new(html_entities_decode(json_ld))
|
||||
|
||||
next unless structured_data.valid?
|
||||
|
||||
|
@ -273,10 +274,11 @@ class LinkDetailsExtractor
|
|||
end
|
||||
|
||||
def detect_encoding_and_parse_document
|
||||
[detect_encoding, nil, @html_charset, 'UTF-8'].uniq.each do |encoding|
|
||||
[detect_encoding, nil, header_encoding].uniq.each do |encoding|
|
||||
document = Nokogiri::HTML(@html, nil, encoding)
|
||||
return document if document.to_s.valid_encoding?
|
||||
end
|
||||
Nokogiri::HTML(@html, nil, 'UTF-8')
|
||||
end
|
||||
|
||||
def detect_encoding
|
||||
|
@ -284,12 +286,28 @@ class LinkDetailsExtractor
|
|||
guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
|
||||
end
|
||||
|
||||
def header_encoding
|
||||
Encoding.find(@html_charset).name if @html_charset
|
||||
rescue ArgumentError
|
||||
# Encoding from HTTP header is not recognized by ruby
|
||||
nil
|
||||
end
|
||||
|
||||
def detector
|
||||
@detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector|
|
||||
detector.strip_tags = true
|
||||
end
|
||||
end
|
||||
|
||||
def html_entities_decode(string)
|
||||
return if string.nil?
|
||||
|
||||
unicode_string = string.to_s.encode('UTF-8')
|
||||
raise EncodingError, 'cannot convert string to valid UTF-8' unless unicode_string.valid_encoding?
|
||||
|
||||
html_entities.decode(unicode_string)
|
||||
end
|
||||
|
||||
def html_entities
|
||||
@html_entities ||= HTMLEntities.new(:expanded)
|
||||
end
|
||||
|
|
|
@ -175,10 +175,6 @@ module User::HasSettings
|
|||
settings['web.display_media']
|
||||
end
|
||||
|
||||
def setting_display_media_expand
|
||||
settings['web.display_media_expand']
|
||||
end
|
||||
|
||||
def setting_expand_spoilers
|
||||
settings['web.expand_content_warnings']
|
||||
end
|
||||
|
@ -215,6 +211,10 @@ module User::HasSettings
|
|||
settings['web.disable_swiping']
|
||||
end
|
||||
|
||||
def setting_disable_hover_cards
|
||||
settings['web.disable_hover_cards']
|
||||
end
|
||||
|
||||
def setting_always_send_emails
|
||||
settings['always_send_emails']
|
||||
end
|
||||
|
|
|
@ -31,6 +31,6 @@ class NotificationPolicy < ApplicationRecord
|
|||
private
|
||||
|
||||
def pending_notification_requests
|
||||
@pending_notification_requests ||= notification_requests.where(dismissed: false).limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
|
||||
@pending_notification_requests ||= notification_requests.limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
# from_account_id :bigint(8) not null
|
||||
# last_status_id :bigint(8)
|
||||
# notifications_count :bigint(8) default(0), not null
|
||||
# dismissed :boolean default(FALSE), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
|
||||
class NotificationRequest < ApplicationRecord
|
||||
self.ignored_columns += %w(dismissed)
|
||||
|
||||
include Paginable
|
||||
|
||||
MAX_MEANINGFUL_COUNT = 100
|
||||
|
@ -34,8 +35,6 @@ class NotificationRequest < ApplicationRecord
|
|||
end
|
||||
|
||||
def reconsider_existence!
|
||||
return if dismissed?
|
||||
|
||||
prepare_notifications_count
|
||||
|
||||
if notifications_count.positive?
|
||||
|
|
|
@ -46,6 +46,11 @@ class PreviewCard < ApplicationRecord
|
|||
y_comp: 4,
|
||||
}.freeze
|
||||
|
||||
# URL size limit to safely store in PosgreSQL's unique indexes
|
||||
# Technically this is a byte-size limit but we use it as a
|
||||
# character limit to work with length validation
|
||||
URL_CHARACTER_LIMIT = 2692
|
||||
|
||||
self.inheritance_column = false
|
||||
|
||||
enum :type, { link: 0, photo: 1, video: 2, rich: 3 }
|
||||
|
@ -63,7 +68,7 @@ class PreviewCard < ApplicationRecord
|
|||
convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' },
|
||||
validate_media_type: false
|
||||
|
||||
validates :url, presence: true, uniqueness: true, url: true
|
||||
validates :url, presence: true, uniqueness: true, url: true, length: { maximum: URL_CHARACTER_LIMIT }
|
||||
validates_attachment_content_type :image, content_type: IMAGE_MIME_TYPES
|
||||
validates_attachment_size :image, less_than: LIMIT
|
||||
remotable_attachment :image, LIMIT
|
||||
|
|
|
@ -364,7 +364,7 @@ class Status < ApplicationRecord
|
|||
else
|
||||
map = media_attachments.index_by(&:id)
|
||||
ordered_media_attachment_ids.filter_map { |media_attachment_id| map[media_attachment_id] }
|
||||
end
|
||||
end.take(media_attachments_max)
|
||||
end
|
||||
|
||||
def replies_count
|
||||
|
@ -610,6 +610,10 @@ class Status < ApplicationRecord
|
|||
|
||||
private
|
||||
|
||||
def media_attachments_max
|
||||
local? ? MEDIA_ATTACHMENTS_LIMIT : MEDIA_ATTACHMENTS_LIMIT_FROM_REMOTE
|
||||
end
|
||||
|
||||
def update_status_stat!(attrs)
|
||||
return if marked_for_destruction? || destroyed?
|
||||
|
||||
|
|
|
@ -54,12 +54,14 @@ class StatusEdit < ApplicationRecord
|
|||
def ordered_media_attachments
|
||||
return @ordered_media_attachments if defined?(@ordered_media_attachments)
|
||||
|
||||
@ordered_media_attachments = if ordered_media_attachment_ids.nil?
|
||||
[]
|
||||
else
|
||||
map = status.media_attachments.index_by(&:id)
|
||||
ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
|
||||
end
|
||||
@ordered_media_attachments = begin
|
||||
if ordered_media_attachment_ids.nil?
|
||||
[]
|
||||
else
|
||||
map = status.media_attachments.index_by(&:id)
|
||||
ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
|
||||
end
|
||||
end.take(Status::MEDIA_ATTACHMENTS_LIMIT)
|
||||
end
|
||||
|
||||
def proper
|
||||
|
|
|
@ -58,6 +58,7 @@ class UserSettings
|
|||
setting :use_system_font, default: false
|
||||
setting :bookmark_category_needed, default: false
|
||||
setting :disable_swiping, default: false
|
||||
setting :disable_hover_cards, default: false
|
||||
setting :delete_modal, default: true
|
||||
setting :enable_dtl_menu, default: false
|
||||
setting :hide_recent_emojis, default: false
|
||||
|
@ -67,7 +68,6 @@ class UserSettings
|
|||
setting :reduce_motion, default: false
|
||||
setting :expand_content_warnings, default: false
|
||||
setting :display_media, default: 'default', in: %w(default show_all hide_all)
|
||||
setting :display_media_expand, default: true
|
||||
setting :auto_play, default: true
|
||||
setting :simple_timeline_menu, default: false
|
||||
setting :boost_menu, default: false
|
||||
|
|
|
@ -23,12 +23,12 @@ class InitialStateSerializer < ActiveModel::Serializer
|
|||
store[:delete_modal] = object_account_user.setting_delete_modal
|
||||
store[:auto_play_gif] = object_account_user.setting_auto_play_gif
|
||||
store[:display_media] = object_account_user.setting_display_media
|
||||
store[:display_media_expand] = object_account_user.setting_display_media_expand
|
||||
store[:expand_spoilers] = object_account_user.setting_expand_spoilers
|
||||
store[:enable_emoji_reaction] = object_account_user.setting_enable_emoji_reaction && Setting.enable_emoji_reaction
|
||||
store[:enable_dtl_menu] = object_account_user.setting_enable_dtl_menu
|
||||
store[:reduce_motion] = object_account_user.setting_reduce_motion
|
||||
store[:disable_swiping] = object_account_user.setting_disable_swiping
|
||||
store[:disable_hover_cards] = object_account_user.setting_disable_hover_cards
|
||||
store[:advanced_layout] = object_account_user.setting_advanced_layout
|
||||
store[:use_blurhash] = object_account_user.setting_use_blurhash
|
||||
store[:use_pending_items] = object_account_user.setting_use_pending_items
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
class REST::NotificationSerializer < ActiveModel::Serializer
|
||||
attributes :id, :type, :created_at, :group_key
|
||||
|
||||
attribute :filtered, if: :filtered?
|
||||
|
||||
belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
|
||||
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
|
||||
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
|
||||
|
@ -46,4 +48,6 @@ class REST::NotificationSerializer < ActiveModel::Serializer
|
|||
def moderation_warning_event?
|
||||
object.type == :moderation_warning
|
||||
end
|
||||
|
||||
delegate :filtered?, to: :object
|
||||
end
|
||||
|
|
|
@ -16,9 +16,6 @@ class FetchLinkCardService < BaseService
|
|||
)
|
||||
}iox
|
||||
|
||||
# URL size limit to safely store in PosgreSQL's unique indexes
|
||||
BYTESIZE_LIMIT = 2692
|
||||
|
||||
def call(status)
|
||||
@status = status
|
||||
@original_url = parse_urls
|
||||
|
@ -33,7 +30,7 @@ class FetchLinkCardService < BaseService
|
|||
end
|
||||
|
||||
attach_card if @card&.persisted?
|
||||
rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, Encoding::UndefinedConversionError => e
|
||||
rescue HTTP::Error, OpenSSL::SSL::SSLError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, EncodingError, ActiveRecord::RecordInvalid => e
|
||||
Rails.logger.debug { "Error fetching link #{@original_url}: #{e}" }
|
||||
nil
|
||||
end
|
||||
|
@ -109,7 +106,7 @@ class FetchLinkCardService < BaseService
|
|||
|
||||
def bad_url?(uri)
|
||||
# Avoid local instance URLs and invalid URLs
|
||||
uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme) || uri.to_s.bytesize > BYTESIZE_LIMIT ||
|
||||
uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme) ||
|
||||
referenced_urls.include?(uri.to_s) || Setting.stop_link_preview_domains&.include?(uri.host)
|
||||
end
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
= ff.input :'web.auto_play', wrapper: :with_label, recommended: true, label: I18n.t('simple_form.labels.defaults.setting_auto_play_gif')
|
||||
= ff.input :'web.reduce_motion', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_reduce_motion')
|
||||
= ff.input :'web.disable_swiping', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_disable_swiping')
|
||||
= ff.input :'web.disable_hover_cards', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_disable_hover_cards')
|
||||
= ff.input :'web.use_system_font', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_system_font_ui')
|
||||
|
||||
%h4= t 'appearance.custom_emoji_and_emoji_reactions'
|
||||
|
@ -101,15 +102,6 @@
|
|||
= ff.input :'web.trends', wrapper: :with_label, label: I18n.t('simple_form.labels.defaults.setting_trends')
|
||||
= ff.input :'web.show_relationships', wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_show_relationships')
|
||||
|
||||
%h4= t 'appearance.media'
|
||||
|
||||
.fields-group
|
||||
= ff.input :'web.display_media_expand',
|
||||
kmyblue: true,
|
||||
hint: I18n.t('simple_form.hints.defaults.setting_display_media_expand'),
|
||||
label: I18n.t('simple_form.labels.defaults.setting_display_media_expand'),
|
||||
wrapper: :with_label
|
||||
|
||||
%h4= t 'appearance.confirmation_dialogs'
|
||||
|
||||
.fields-group
|
||||
|
|
|
@ -5,6 +5,23 @@ require_relative '../../lib/mastodon/sidekiq_middleware'
|
|||
Sidekiq.configure_server do |config|
|
||||
config.redis = REDIS_SIDEKIQ_PARAMS
|
||||
|
||||
# This is used in Kubernetes setups, to signal that the Sidekiq process has started and will begin processing jobs
|
||||
# This comes from https://github.com/sidekiq/sidekiq/wiki/Kubernetes#sidekiq
|
||||
ready_filename = ENV.fetch('MASTODON_SIDEKIQ_READY_FILENAME', nil)
|
||||
if ready_filename
|
||||
raise 'MASTODON_SIDEKIQ_READY_FILENAME is not a valid filename' if File.basename(ready_filename) != ready_filename
|
||||
|
||||
ready_path = Rails.root.join('tmp', ready_filename)
|
||||
|
||||
config.on(:startup) do
|
||||
FileUtils.touch(ready_path)
|
||||
end
|
||||
|
||||
config.on(:shutdown) do
|
||||
FileUtils.rm_f(ready_path)
|
||||
end
|
||||
end
|
||||
|
||||
config.server_middleware do |chain|
|
||||
chain.add Mastodon::SidekiqMiddleware
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ Rails.application.configure do
|
|||
# You should only generate this once per instance. If you later decide to change it, all push subscription will
|
||||
# be invalidated, requiring the users to access the website again to resubscribe.
|
||||
#
|
||||
# Generate with `rake mastodon:webpush:generate_vapid_key` task (`docker-compose run --rm web rake mastodon:webpush:generate_vapid_key` if you use docker compose)
|
||||
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key` task (`docker-compose run --rm web bundle exec rails mastodon:webpush:generate_vapid_key` if you use docker compose)
|
||||
#
|
||||
# For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html
|
||||
|
||||
|
|
|
@ -21,6 +21,18 @@ kab:
|
|||
username:
|
||||
invalid: ilaq ad ilin isekkilen, uṭṭunen d yijerriden n wadda kan
|
||||
reserved: yettwaṭṭef
|
||||
admin/webhook:
|
||||
attributes:
|
||||
url:
|
||||
invalid: mačči d URL ameɣtu
|
||||
doorkeeper/application:
|
||||
attributes:
|
||||
website:
|
||||
invalid: mačči d URL ameɣtu
|
||||
import:
|
||||
attributes:
|
||||
data:
|
||||
malformed: yir amsal
|
||||
status:
|
||||
attributes:
|
||||
reblog:
|
||||
|
@ -28,4 +40,20 @@ kab:
|
|||
user:
|
||||
attributes:
|
||||
email:
|
||||
blocked: isseqdac asaǧǧaw n yimayl ur yettusirgen ara
|
||||
unreachable: ur d-ttban ara d akken yella
|
||||
role_id:
|
||||
elevated: ur yezmir ara ad iεeddi tamlilt-ik tamirant
|
||||
user_role:
|
||||
attributes:
|
||||
permissions_as_keys:
|
||||
dangerous: deg-s tisirag tiriɣelsanin i temlilt tazadurt
|
||||
elevated: ur yezmir ara ad yesεu tirirag ur nelli ara deg temlilit-ik tamirant
|
||||
own_role: ur yezmir ara ad yettwabeddel s temlilt-ik tamirant
|
||||
position:
|
||||
elevated: ur yezmir ara ad iεeddi tamlilt-ik tamirant
|
||||
own_role: ur yezmir ara ad yettwabeddel s temlilt-ik tamirant
|
||||
webhook:
|
||||
attributes:
|
||||
events:
|
||||
invalid_permissions: ur yezmir ara ad yesεu tidyanin iwumi ur tesεiḍ ara tisirag
|
||||
|
|
|
@ -1762,6 +1762,10 @@ ar:
|
|||
webauthn_authentication: مفاتيح الأمان
|
||||
severed_relationships:
|
||||
download: تنزيل (%{count})
|
||||
lost_followers: المتابعون المفقودون
|
||||
lost_follows: المتابعات المفقودة
|
||||
preamble: بحجبكم اسم نطاق قد تخسرون متابَعاتٍ، و كذلك إذا قرّر مديرو الخادوم حظر خادوم ما. و في هذه الحالات يكون بوسعكم تنزيل قائمة بالصلات المبتورة لمعاينتها، مع القدرة على استيرادها إلى خادوم آخر.
|
||||
purged: حذف مدير خادومكم المعلومات عن هذا الخادوم.
|
||||
statuses:
|
||||
attached:
|
||||
audio:
|
||||
|
@ -1978,6 +1982,7 @@ ar:
|
|||
edit_profile_title: قم بتخصيص ملفك التعريفي
|
||||
explanation: ها هي بعض النصائح قبل بداية الاستخدام
|
||||
feature_action: اعرف المزيد
|
||||
feature_audience: يتيح لكم مًستُدون إدارة جمهوركم بلا وسطاء. فبتنصيب و تشغيل مَستُودون على بنيتكم التحتية تمكنكم متابعة مستخدمي مَستُدون من أيّ خادوم،كما يمكنهم متابعتكم، بلا تحكُّم من أي طرف ثالث.
|
||||
feature_audience_title: اِبنوا جُمهورَكم بِثِقَة
|
||||
feature_control: أنتم الأدرى بالمحتوى الذي تريدون أن تطالعوه في فيض المنشورات الرئيس. لا خوارزميات تتحكم فيما يظهر لكم ولا إعلانات تضيع وقتكم. بحساب واحد تمكنكم متابعة من تشاؤون على أيّ خادوم ماستدون، وتلقّى منشوراتهم بترتيبها الزمني، لتصنعوا ركنكم الأليف في الإنترنت.
|
||||
feature_control_title: تحكَّموا في فيض المنشورات الخاص بكم
|
||||
|
|
|
@ -118,7 +118,7 @@ cs:
|
|||
promote: Povýšit
|
||||
protocol: Protokol
|
||||
public: Veřejný
|
||||
push_subscription_expires: Odebírání PuSH expiruje
|
||||
push_subscription_expires: Odebírání PuSH vyprší
|
||||
redownload: Obnovit profil
|
||||
redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje
|
||||
reject: Zamítnout
|
||||
|
|
|
@ -12,6 +12,7 @@ kab:
|
|||
last_attempt: Γur-k yiwen n uɛraḍ-nniḍen kan send ad yettucekkel umiḍan-ik.
|
||||
locked: Amiḍan-ik yettwargel.
|
||||
not_found_in_database: Tella tuccḍa deg %{authentication_keys} neγ deg wawal uffir.
|
||||
omniauth_user_creation_failure: Tuccḍa lawan n tmerna n umiḍan i timagit-a.
|
||||
pending: Amiḍan-inek mazal-it deg ɛiwed n tmuγli.
|
||||
timeout: Tiɣimit n tuqqna tezri. Ma ulac aɣilif ɛiwed tuqqna akken ad tkemmleḍ.
|
||||
unauthenticated: Ilaq ad teqqneḍ neɣ ad tjerrḍeḍ akken ad tkemmelḍ.
|
||||
|
@ -47,21 +48,41 @@ kab:
|
|||
subject: 'Mastodon: Iwellihen n uwennez n wawal uffir'
|
||||
title: Aɛiwed n wawal uffir
|
||||
two_factor_disabled:
|
||||
explanation: Tuqqna tella tura s useqdec n tansa n yimayl tasuft d wawal n uεeddi.
|
||||
subject: 'Mastodon: Asesteb s snat n tarrayin yensa'
|
||||
subtitle: Asesteb s snat tarrayin i umiḍan-ik yensan.
|
||||
title: Asesteb s snat n tarrayin insa
|
||||
two_factor_enabled:
|
||||
explanation: Ajuṭu yettusirwen s usnas TOTP yeqqnen ilaq i wakken ad teqqneḍ.
|
||||
subject: 'Mastodon: Asesteb s snat n tarrayin yermed'
|
||||
subtitle: Asesteb s snat tarrayin yettwarmed i umiḍan-ik.
|
||||
title: Asesteb s snat n tarrayin irmed
|
||||
two_factor_recovery_codes_changed:
|
||||
explanation: Tangalt n tuɣalin tettwaḥbes sakin nesnulfa-d yiwet d tamaynut.
|
||||
subject: 'Mastodon: Tingalin n tuɣalin n snat n tarayin ttwarnanat i tikkelt-nniḍen'
|
||||
subtitle: Tangalt n tuɣalin tettwaḥbes sakin nesnulfa-d yiwet d tamaynut.
|
||||
title: Tangalt n tuɣalin 2FA tettwabeddel
|
||||
unlock_instructions:
|
||||
subject: 'Mastodon: iwelihhen n userreḥ'
|
||||
webauthn_credential:
|
||||
added:
|
||||
explanation: Tasarut-a n tɣellist tettwarna ɣer umiḍan-ik·im
|
||||
subject: 'Maṣṭudun : Tasarutt tamaynutt n tɣellist'
|
||||
title: Tasarut tamaynutt n tɣellist tamaynut tettwarna
|
||||
deleted:
|
||||
explanation: Tasarut-a n tɣellist tettwakkes seg umiḍan-ik·im
|
||||
subject: 'Mastodon: Tasarut n tɣellsit tettwakkes'
|
||||
title: Yiwet seg tsura-k·m n tɣellist tettwakkes
|
||||
webauthn_disabled:
|
||||
explanation: Yensa usesteb s tsura n tɣellist i umiḍan-ik.
|
||||
extra: Tzemreḍ ad tkecmeḍ tura s useqdec asuf n ujuṭu yettwasran s usnas TOPTP yeqqnen.
|
||||
subject: 'Mastodon: Asesteb s tsura n tɣellist yensa'
|
||||
title: Tisura n tɣellist nsant
|
||||
webauthn_enabled:
|
||||
explanation: Asesteb n tsarut n tɣellist tettwarmed i umiḍan-ik.
|
||||
extra: Tasarut-ik n tɣellist tezmer tura ad tettuseqdec i unekcum.
|
||||
subject: 'Mastodon: Asesteb n tsarut n tɣellist yermed'
|
||||
title: Tisura n tɣellist remdent
|
||||
omniauth_callbacks:
|
||||
failure: Ur nezmir ara ad ak·akem-nsesṭeb seg %{kind} acku "%{reason}".
|
||||
success: Asesṭeb idda akken iwata seg umiḍan %{kind}.
|
||||
|
|
|
@ -75,7 +75,7 @@ nl:
|
|||
title: Een van jouw beveiligingssleutels is verwijderd
|
||||
webauthn_disabled:
|
||||
explanation: Verificatie met beveiligingssleutels is uitgeschakeld voor je account.
|
||||
extra: Het is nu alleen mogelijk om in te loggen met een door de authenticatie-app gegeneerde toegangscode.
|
||||
extra: Het is nu alleen mogelijk om in te loggen met een door de authenticatie-app gegeneerde toegangscode als extra controle.
|
||||
subject: 'Mastodon: Verificatie met beveiligingssleutels is uitgeschakeld'
|
||||
title: Beveiligingssleutels uitgeschakeld
|
||||
webauthn_enabled:
|
||||
|
|
|
@ -5,6 +5,7 @@ kab:
|
|||
doorkeeper/application:
|
||||
name: Isem n usnas
|
||||
redirect_uri: URI n uwelleh
|
||||
scopes: Tinerfadin
|
||||
website: Asmel web n usnas
|
||||
errors:
|
||||
models:
|
||||
|
@ -39,6 +40,7 @@ kab:
|
|||
empty: Ulac ɣur-k·m isnasen.
|
||||
name: Isem
|
||||
new: Asnas amaynut
|
||||
scopes: Tinerfadin
|
||||
show: Ẓer
|
||||
title: Isnasen-ik·im
|
||||
new:
|
||||
|
@ -47,6 +49,8 @@ kab:
|
|||
actions: Tigawin
|
||||
application_id: ID n usnas
|
||||
callback_urls: URL n tririt n wawal
|
||||
scopes: Tinerfadin
|
||||
secret: Tuffirt n umsaɣ
|
||||
title: 'Asnas: %{name}'
|
||||
authorizations:
|
||||
buttons:
|
||||
|
@ -55,6 +59,7 @@ kab:
|
|||
error:
|
||||
title: Tella-d tuccḍa
|
||||
new:
|
||||
review_permissions: Asenqed n tsirag
|
||||
title: Tlaq tsiregt
|
||||
show:
|
||||
title: Nɣel tangalt n wurag sakkin senteḍ-itt deg usnas.
|
||||
|
@ -64,8 +69,12 @@ kab:
|
|||
confirmations:
|
||||
revoke: Tetḥeqqeḍ?
|
||||
index:
|
||||
authorized_at: Yettwasireg ɣef %{date}
|
||||
description_html: Ha-t-an yisnasen i izemren ad kecmen ɣer umiḍan-ik·im, s useqdec n API. Ma llan yisnasen ur teεqileḍ ara da, neɣ kra n wesnas ur iteddu ara akken ilaq, tzemreḍ ad tekkseḍ anekcum-is.
|
||||
last_used_at: Yettwaseqdec i tikkelt taneggarut ass n %{date}
|
||||
never_used: Urǧin yettwaseqdac
|
||||
scopes: Tisirag
|
||||
superapp: Adigan
|
||||
title: Isnasen-ik·im yettusirgen
|
||||
errors:
|
||||
messages:
|
||||
|
@ -82,13 +91,28 @@ kab:
|
|||
destroy:
|
||||
notice: Yettwaḥwi wesnas.
|
||||
grouped_scopes:
|
||||
access:
|
||||
read: Anekcum i tɣuri kan
|
||||
read/write: Anekcum i tɣuri d tira
|
||||
write: Anekcum i tira kan
|
||||
title:
|
||||
accounts: Imiḍanen
|
||||
admin/accounts: Tadbelt n imiḍan
|
||||
admin/all: Akk timahilin tinebdalin
|
||||
admin/reports: Tadbelt n yineqqisen
|
||||
blocks: Yewḥel
|
||||
bookmarks: Ticraḍ
|
||||
conversations: Idiwenniyen
|
||||
crypto: Awgelhen seg yixef ɣer yixef
|
||||
favourites: Imenyafen
|
||||
filters: Imzizdigen
|
||||
follow: Aḍfar, asgugem akked usewḥel
|
||||
follows: Aḍfar
|
||||
lists: Tibdarin
|
||||
media: Imeddayen n umidya
|
||||
mutes: Yeggugem
|
||||
notifications: Tilɣa
|
||||
profile: Amaɣnu-k Mastodon
|
||||
push: Tilɣa yettudemmren
|
||||
reports: Ineqqisen
|
||||
search: Nadi
|
||||
|
|
|
@ -31,7 +31,7 @@ ko:
|
|||
form:
|
||||
error: 이런! 오류를 확인하세요
|
||||
help:
|
||||
native_redirect_uri: "%{native_redirect_uri}에서 로컬 테스트를 할 수 있습니다."
|
||||
native_redirect_uri: "%{native_redirect_uri}를 이용해 로컬 테스트를 할 수 있습니다"
|
||||
redirect_uri: 한 줄에 하나의 URI를 작성하세요
|
||||
scopes: 스페이스로 범위를 구분하세요. 빈 칸으로 놔두면 기본 범위를 사용합니다.
|
||||
index:
|
||||
|
|
|
@ -25,7 +25,7 @@ lv:
|
|||
edit: Labot
|
||||
submit: Apstiprināt
|
||||
confirmations:
|
||||
destroy: Vai esi pārliecināts?
|
||||
destroy: Vai tiešām?
|
||||
edit:
|
||||
title: Labot lietotni
|
||||
form:
|
||||
|
@ -69,7 +69,7 @@ lv:
|
|||
buttons:
|
||||
revoke: Atsaukt
|
||||
confirmations:
|
||||
revoke: Vai esi pārliecināts?
|
||||
revoke: Vai tiešām?
|
||||
index:
|
||||
authorized_at: Autorizētas %{date}
|
||||
description_html: Šīs ir lietotnes, kas var piekļūt Tavam kontam ar API. Ja šeit ir lietotnes, kuras neatpazīsti, vai lietotne darbojas ne tā, kā paredzēts, vari atsaukt tās piekļuvi.
|
||||
|
@ -135,6 +135,7 @@ lv:
|
|||
media: Multividesu pielikumi
|
||||
mutes: Apklusinātie
|
||||
notifications: Paziņojumi
|
||||
profile: Tavs Mastodon profils
|
||||
push: Uznirstošie paziņojumi
|
||||
reports: Ziņojumi
|
||||
search: Meklēt
|
||||
|
@ -165,6 +166,7 @@ lv:
|
|||
admin:write:reports: veikt moderācijas darbības pārskatos
|
||||
crypto: lieto pilnīgu šifrēšanu
|
||||
follow: mainīt konta attiecības
|
||||
profile: lasīt tikai Tava konta profila informāciju
|
||||
push: saņemt savus push paziņojumus
|
||||
read: lasīt visus sava konta datus
|
||||
read:accounts: apskatīt kontu informāciju
|
||||
|
|
|
@ -129,7 +129,7 @@ nl:
|
|||
crypto: End-to-end-encryptie
|
||||
favourites: Favorieten
|
||||
filters: Filters
|
||||
follow: Volgers, genegeerde en geblokkeerde gebruikers
|
||||
follow: Gevolgde, genegeerde en geblokkeerde gebruikers
|
||||
follows: Volgend
|
||||
lists: Lijsten
|
||||
media: Mediabijlagen
|
||||
|
|
|
@ -1348,7 +1348,6 @@ en:
|
|||
body: Mastodon is translated by volunteers.
|
||||
guide_link: https://crowdin.com/project/mastodon
|
||||
guide_link_text: Everyone can contribute.
|
||||
media: Media
|
||||
quotes: Quotes
|
||||
remote_server_features: Other server features
|
||||
saved_posts: Saving posts
|
||||
|
|
|
@ -31,18 +31,18 @@ gl:
|
|||
created_msg: Nota de moderación creada correctamente!
|
||||
destroyed_msg: Nota de moderación eliminada de xeito correcto!
|
||||
accounts:
|
||||
add_email_domain_block: Bloquear o dominio do email
|
||||
add_email_domain_block: Bloquear o dominio do enderezo
|
||||
approve: Aprobar
|
||||
approved_msg: Aprobada a solicitude de rexistro de %{username}
|
||||
are_you_sure: Está segura?
|
||||
avatar: Imaxe de perfil
|
||||
by_domain: Dominio
|
||||
change_email:
|
||||
changed_msg: Email mudado de xeito correcto!
|
||||
current_email: Email actual
|
||||
label: Mudar email
|
||||
new_email: Novo email
|
||||
submit: Mudar email
|
||||
changed_msg: Correo cambiado de xeito correcto!
|
||||
current_email: Enderezo actual
|
||||
label: Cambiar de enderezo
|
||||
new_email: Novo enderezo
|
||||
submit: Cambiar de enderezo
|
||||
title: Mudar email de %{username}
|
||||
change_role:
|
||||
changed_msg: Rol mudado correctamente!
|
||||
|
@ -64,10 +64,10 @@ gl:
|
|||
display_name: Nome a amosar
|
||||
domain: Dominio
|
||||
edit: Editar
|
||||
email: Email
|
||||
email_status: Estado do email
|
||||
email: Enderezo de correo
|
||||
email_status: Estado do correo
|
||||
enable: Activar
|
||||
enable_sign_in_token_auth: Activar autenticación cun token no email
|
||||
enable_sign_in_token_auth: Activar autenticación cun token no correo
|
||||
enabled: Activado
|
||||
enabled_msg: Desbloqueada a conta de %{username}
|
||||
followers: Seguidoras
|
||||
|
@ -132,7 +132,7 @@ gl:
|
|||
resubscribe: Resubscribir
|
||||
role: Rol
|
||||
search: Procurar
|
||||
search_same_email_domain: Outras usuarias co mesmo dominio de email
|
||||
search_same_email_domain: Outras usuarias co mesmo dominio de correo
|
||||
search_same_ip: Outras usuarias co mesmo IP
|
||||
security: Seguridade
|
||||
security_measures:
|
||||
|
@ -154,9 +154,9 @@ gl:
|
|||
suspension_irreversible: Elimináronse de xeito irreversible os datos desta conta. Podes reactivar a conta para facela usable novamente pero non recuperará os datos eliminados.
|
||||
suspension_reversible_hint_html: Esta conta foi suspendida, e os datos serán totalmente eliminados o %{date}. Ata entón, a conta pode ser restaurada sen danos. Se desexas eliminar agora mesmo todos os datos da conta, podes facelo aquí embaixo.
|
||||
title: Contas
|
||||
unblock_email: Desbloquear enderezo de email
|
||||
unblocked_email_msg: Enderezo de email de %{username} desbloqueado
|
||||
unconfirmed_email: Email non confirmado
|
||||
unblock_email: Desbloquear enderezo de correo
|
||||
unblocked_email_msg: Enderezo de correo de %{username} desbloqueado
|
||||
unconfirmed_email: Enderezo de correo sen confirmar
|
||||
undo_sensitized: Desmarcar como sensible
|
||||
undo_silenced: Desfacer acalar
|
||||
undo_suspension: Desfacer suspensión
|
||||
|
@ -173,12 +173,12 @@ gl:
|
|||
approve_appeal: Aprobar apelación
|
||||
approve_user: Aprobar Usuaria
|
||||
assigned_to_self_report: Asignar denuncia
|
||||
change_email_user: Editar email da usuaria
|
||||
change_email_user: Editar correo electrónico da usuaria
|
||||
change_role_user: Cambiar Rol da Usuaria
|
||||
confirm_user: Confirmar usuaria
|
||||
create_account_warning: Crear aviso
|
||||
create_announcement: Crear anuncio
|
||||
create_canonical_email_block: Crear Bloqueo de email
|
||||
create_canonical_email_block: Crear Bloqueo de correo electrónico
|
||||
create_custom_emoji: Crear emoticonas personalizadas
|
||||
create_domain_allow: Crear Dominio Permitido
|
||||
create_domain_block: Crear bloquedo do Dominio
|
||||
|
@ -188,7 +188,7 @@ gl:
|
|||
create_user_role: Crear Rol
|
||||
demote_user: Degradar usuaria
|
||||
destroy_announcement: Eliminar anuncio
|
||||
destroy_canonical_email_block: Eliminar Bloqueo de email
|
||||
destroy_canonical_email_block: Eliminar Bloqueo de correo electrónico
|
||||
destroy_custom_emoji: Eliminar emoticona personalizada
|
||||
destroy_domain_allow: Eliminar Dominio permitido
|
||||
destroy_domain_block: Eliminar bloqueo do Dominio
|
||||
|
@ -200,7 +200,7 @@ gl:
|
|||
destroy_user_role: Eliminar Rol
|
||||
disable_2fa_user: Desactivar 2FA
|
||||
disable_custom_emoji: Desactivar emoticona personalizada
|
||||
disable_sign_in_token_auth_user: Desactivar Autenticación por token no email para Usuaria
|
||||
disable_sign_in_token_auth_user: Desactivar Autenticación con token no correo para Usuaria
|
||||
disable_user: Desactivar usuaria
|
||||
enable_custom_emoji: Activar emoticona personalizada
|
||||
enable_sign_in_token_auth_user: Activar Autenticación con token no email para Usuaria
|
||||
|
@ -211,14 +211,14 @@ gl:
|
|||
reject_user: Rexeitar Usuaria
|
||||
remove_avatar_user: Eliminar avatar
|
||||
reopen_report: Reabrir denuncia
|
||||
resend_user: Reenviar o email de confirmación
|
||||
resend_user: Reenviar o correo de confirmación
|
||||
reset_password_user: Restabelecer contrasinal
|
||||
resolve_report: Resolver denuncia
|
||||
sensitive_account: Marca o multimedia da túa conta como sensible
|
||||
silence_account: Silenciar conta
|
||||
suspend_account: Suspender conta
|
||||
unassigned_report: Desasignar denuncia
|
||||
unblock_email_account: Desbloquear enderezo de email
|
||||
unblock_email_account: Desbloquear enderezo de correo
|
||||
unsensitive_account: Retira a marca de sensible do multimedia da conta
|
||||
unsilence_account: Deixar de silenciar conta
|
||||
unsuspend_account: Retirar suspensión de conta
|
||||
|
@ -660,7 +660,7 @@ gl:
|
|||
delete_data_html: Eliminar o perfil e contidos de <strong>@%{acct}</strong> para os próximos 30 días a non ser que sexa suspendida nese período
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> vai recibir un aviso co seguinte contido:"
|
||||
record_strike_html: Anotar un aviso contra <strong>@%{acct}</strong> para axudarche a xestionar futuros problemas con esta conta
|
||||
send_email_html: Enviar un email de aviso a <strong>@%{acct}</strong>
|
||||
send_email_html: Enviar un correo de aviso a <strong>@%{acct}</strong>
|
||||
warning_placeholder: Razóns adicionais optativas para a acción de moderación.
|
||||
target_origin: Orixe da conta denunciada
|
||||
title: Denuncias
|
||||
|
@ -1060,7 +1060,7 @@ gl:
|
|||
redirect_to_app_html: Ímoste redirixir á app <strong>%{app_name}</strong>. Se iso non acontece, proba %{clicking_this_link} ou volve ti manualmente á app.
|
||||
registration_complete: Completouse a creación da conta en %{domain}!
|
||||
welcome_title: Benvida, %{name}!
|
||||
wrong_email_hint: Se o enderezo de email non é correcto, podes cambialo nos axustes da conta.
|
||||
wrong_email_hint: Se o enderezo de correo non é correcto, podes cambialo nos axustes da conta.
|
||||
delete_account: Eliminar conta
|
||||
delete_account_html: Se queres eliminar a túa conta, podes <a href="%{path}">facelo aquí</a>. Deberás confirmar a acción.
|
||||
description:
|
||||
|
|
|
@ -306,6 +306,7 @@ ja:
|
|||
filter_by_action: アクションでフィルター
|
||||
filter_by_user: ユーザーでフィルター
|
||||
title: 操作履歴
|
||||
unavailable_instance: "(ドメイン名が利用できません)"
|
||||
announcements:
|
||||
destroyed_msg: お知らせが削除されました
|
||||
edit:
|
||||
|
@ -1323,7 +1324,6 @@ ja:
|
|||
body: Mastodonは有志によって翻訳されています。
|
||||
guide_link: https://ja.crowdin.com/project/mastodon
|
||||
guide_link_text: 誰でも参加することができます。
|
||||
media: メディア
|
||||
quotes: 引用
|
||||
remote_server_features: 他のサーバーの機能
|
||||
saved_posts: 投稿の記録
|
||||
|
|
|
@ -1741,7 +1741,7 @@ ko:
|
|||
contrast: 마스토돈 (고대비)
|
||||
default: 마스토돈 (어두움)
|
||||
mastodon-light: 마스토돈 (밝음)
|
||||
system: 자동 선택 (시스템 테마 이용)
|
||||
system: 자동 (시스템 테마 사용)
|
||||
time:
|
||||
formats:
|
||||
default: "%Y-%m-%d %H:%M"
|
||||
|
|
|
@ -116,6 +116,8 @@ ro:
|
|||
redownloaded_msg: S-a reîmprospătat cu succes profilul %{username} de la origine
|
||||
reject: Respinge
|
||||
rejected_msg: S-a respins cu succes cererea de înregistrare a utilizatorului %{username}
|
||||
remote_suspension_irreversible: Datele acestui cont au fost șterse în mod ireversibil.
|
||||
remote_suspension_reversible_hint_html: Contul a fost suspendat pe server-ul respectiv, iar datele vor fi șterse complet pe %{date}. Până atunci, server-ul remote poate restabili acest cont fără consecințe negative. Dacă dorești să elimini toate datele contului numaidecât, poți face acest lucru mai jos.
|
||||
remove_avatar: Elimină avatar
|
||||
remove_header: Elimină antet
|
||||
removed_avatar_msg: S-a îndepărtat cu succes poza de profil a utilizatorului %{username}
|
||||
|
|
|
@ -1 +1,21 @@
|
|||
---
|
||||
ry:
|
||||
accounts:
|
||||
follow: Пудписати ся
|
||||
following: Пудпискы
|
||||
posts:
|
||||
few: Публикації
|
||||
one: Публикація
|
||||
other: Публикації
|
||||
posts_tab_heading: Публикації
|
||||
imports:
|
||||
titles:
|
||||
following: Імпортованя пудписок
|
||||
types:
|
||||
following: Испис пудписок
|
||||
notification_mailer:
|
||||
follow:
|
||||
body: "%{name} ся пудписує ся на вас!"
|
||||
subject: "%{name} ся пудписує ся на вас"
|
||||
relationships:
|
||||
following: Пудпискы
|
||||
|
|
|
@ -211,6 +211,7 @@ ca:
|
|||
setting_default_privacy: Privacitat dels tuts
|
||||
setting_default_sensitive: Marcar sempre el contingut gràfic com a sensible
|
||||
setting_delete_modal: Mostra la finestra de confirmació abans d'esborrar un tut
|
||||
setting_disable_hover_cards: Deshabilita la vista prèvia del perfil en passar-hi per sobre
|
||||
setting_disable_swiping: Desactiva les animacions
|
||||
setting_display_media: Visualització multimèdia
|
||||
setting_display_media_default: Per defecte
|
||||
|
|
|
@ -211,6 +211,7 @@ da:
|
|||
setting_default_privacy: Fortrolighed for indlæg
|
||||
setting_default_sensitive: Markér altid medier som sensitive
|
||||
setting_delete_modal: Vis bekræftelsesdialog før et indlæg slettes
|
||||
setting_disable_hover_cards: Deaktivér profilforhåndsvisning ved svæv (hover)
|
||||
setting_disable_swiping: Deaktivér strygebevægelser
|
||||
setting_display_media: Medievisning
|
||||
setting_display_media_default: Standard
|
||||
|
|
|
@ -211,6 +211,7 @@ de:
|
|||
setting_default_privacy: Beitragssichtbarkeit
|
||||
setting_default_sensitive: Medien immer mit einer Inhaltswarnung versehen
|
||||
setting_delete_modal: Bestätigungsdialog beim Löschen eines Beitrags anzeigen
|
||||
setting_disable_hover_cards: Profilvorschau deaktivieren, wenn die Maus über das Profil bewegt wird
|
||||
setting_disable_swiping: Wischgesten deaktivieren
|
||||
setting_display_media: Darstellung von Medien
|
||||
setting_display_media_default: Standard
|
||||
|
|
|
@ -66,7 +66,6 @@ en:
|
|||
setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
|
||||
setting_disallow_unlisted_public_searchability: この設定を有効にすると、非収載投稿と検索範囲「誰でも」は両立できず不特定多数からの検索が不可になります。Fedibirdと同じ挙動になります
|
||||
setting_display_media_default: Hide media marked as sensitive
|
||||
setting_display_media_expand: Misskey and others can submit more than 4. The additions will be displayed up to 16. kmyblue will not allow uploading from kmyblue.
|
||||
setting_display_media_hide_all: Always hide media
|
||||
setting_display_media_show_all: Always show media
|
||||
setting_dtl_force_searchability: 'With using #%{tag} tag, your post settings will be changed forcibly'
|
||||
|
@ -271,11 +270,11 @@ en:
|
|||
setting_default_searchability_of_search: Your search setting
|
||||
setting_default_sensitive: Always mark media as sensitive
|
||||
setting_delete_modal: Show confirmation dialog before deleting a post
|
||||
setting_disable_hover_cards: Disable profile preview on hover
|
||||
setting_disable_swiping: Disable swiping motions
|
||||
setting_disallow_unlisted_public_searchability: Disallow everyone or local searchability when unlisted visibility
|
||||
setting_display_media: Media display
|
||||
setting_display_media_default: Default
|
||||
setting_display_media_expand: Show more medias
|
||||
setting_display_media_hide_all: Hide all
|
||||
setting_display_media_show_all: Show all
|
||||
setting_dtl_force_searchability: Post searchability
|
||||
|
@ -366,6 +365,7 @@ en:
|
|||
exclude_quote: Exclude quote or references
|
||||
form_admin_settings:
|
||||
activity_api_enabled: Publish aggregate statistics about user activity in the API
|
||||
app_icon: App icon
|
||||
backups_retention_period: User archive retention period
|
||||
bootstrap_timeline_accounts: Always recommend these accounts to new users
|
||||
check_lts_version_only: Check kmyblue LTS version only when update check
|
||||
|
@ -377,6 +377,7 @@ en:
|
|||
enable_local_timeline: Enable local timeline
|
||||
enable_public_unlisted_visibility: Enable public-unlisted visibility / public-unlisted searchability
|
||||
enable_public_visibility: Enable public visibility
|
||||
favicon: Favicon
|
||||
mascot: Custom mascot (legacy)
|
||||
media_cache_retention_period: Media cache retention period
|
||||
peers_api_enabled: Publish list of discovered servers in the API
|
||||
|
|
|
@ -203,6 +203,7 @@ eo:
|
|||
setting_default_privacy: Privateco de afiŝado
|
||||
setting_default_sensitive: Ĉiam marki plurmediojn kiel tiklaj
|
||||
setting_delete_modal: Montri konfirman fenestron antaŭ ol forigi mesaĝon
|
||||
setting_disable_hover_cards: Malebligi profilan antaŭmontron kiam oni musumas
|
||||
setting_disable_swiping: Malebligi svingajn movojn
|
||||
setting_display_media: Montrado de plurmedioj
|
||||
setting_display_media_default: Implicita
|
||||
|
|
|
@ -211,6 +211,7 @@ es-AR:
|
|||
setting_default_privacy: Privacidad de mensajes
|
||||
setting_default_sensitive: Siempre marcar medios como sensibles
|
||||
setting_delete_modal: Mostrar diálogo de confirmación antes de eliminar un mensaje
|
||||
setting_disable_hover_cards: Deshabilitar previsualización del perfil al pasar el cursor
|
||||
setting_disable_swiping: Deshabilitar movimientos de deslizamiento
|
||||
setting_display_media: Visualización de medios
|
||||
setting_display_media_default: Predeterminada
|
||||
|
|
|
@ -211,6 +211,7 @@ es-MX:
|
|||
setting_default_privacy: Privacidad de publicaciones
|
||||
setting_default_sensitive: Marcar siempre imágenes como sensibles
|
||||
setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un toot
|
||||
setting_disable_hover_cards: Desactivar vista previa del perfil al pasar el cursor
|
||||
setting_disable_swiping: Deshabilitar movimientos de deslizamiento
|
||||
setting_display_media: Visualización multimedia
|
||||
setting_display_media_default: Por defecto
|
||||
|
|
|
@ -211,6 +211,7 @@ es:
|
|||
setting_default_privacy: Privacidad de publicaciones
|
||||
setting_default_sensitive: Marcar siempre imágenes como sensibles
|
||||
setting_delete_modal: Mostrar diálogo de confirmación antes de borrar una publicación
|
||||
setting_disable_hover_cards: Desactivar vista previa del perfil al pasar el cursor
|
||||
setting_disable_swiping: Deshabilitar movimientos de deslizamiento
|
||||
setting_display_media: Visualización multimedia
|
||||
setting_display_media_default: Por defecto
|
||||
|
|
|
@ -211,6 +211,7 @@ fi:
|
|||
setting_default_privacy: Julkaisun näkyvyys
|
||||
setting_default_sensitive: Merkitse media aina arkaluonteiseksi
|
||||
setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista
|
||||
setting_disable_hover_cards: Poista käytöstä profiilin esikatselu osoitettaessa
|
||||
setting_disable_swiping: Poista pyyhkäisyeleet käytöstä
|
||||
setting_display_media: Median näyttäminen
|
||||
setting_display_media_default: Oletus
|
||||
|
|
|
@ -211,6 +211,7 @@ fo:
|
|||
setting_default_privacy: Hvussu privatir eru postar?
|
||||
setting_default_sensitive: Merk altíð miðlafílur sum viðkvæmar
|
||||
setting_delete_modal: Vís váttanarmynd, áðrenn postar verða strikaðir
|
||||
setting_disable_hover_cards: Ger undanvísing, tá músin verður flutt yvir vangan, óvirkna
|
||||
setting_disable_swiping: Ger sveipurørslur óvirknar
|
||||
setting_display_media: Vístir miðlar
|
||||
setting_display_media_default: Sjálvvirði
|
||||
|
|
|
@ -211,6 +211,7 @@ gl:
|
|||
setting_default_privacy: Privacidade da publicación
|
||||
setting_default_sensitive: Marcar sempre multimedia como sensible
|
||||
setting_delete_modal: Solicitar confirmación antes de eliminar unha publicación
|
||||
setting_disable_hover_cards: Desactivar vista previa do perfil ao poñerse enriba
|
||||
setting_disable_swiping: Desactivar opcións de desprazamento
|
||||
setting_display_media: Mostrar multimedia
|
||||
setting_display_media_default: Por defecto
|
||||
|
@ -255,7 +256,7 @@ gl:
|
|||
require_invite_text: Pedir unha razón para unirse
|
||||
show_domain_blocks: Amosar dominios bloqueados
|
||||
show_domain_blocks_rationale: Explicar porque están bloqueados os dominios
|
||||
site_contact_email: Email de contacto
|
||||
site_contact_email: Correo de contacto
|
||||
site_contact_username: Nome do contacto
|
||||
site_extended_description: Descrición ampla
|
||||
site_short_description: Descrición do servidor
|
||||
|
|
|
@ -211,6 +211,7 @@ he:
|
|||
setting_default_privacy: פרטיות ההודעות
|
||||
setting_default_sensitive: תמיד לתת סימון "רגיש" למדיה
|
||||
setting_delete_modal: להראות תיבת אישור לפני מחיקת חיצרוץ
|
||||
setting_disable_hover_cards: כבה הצצה מקדימה לפרופיל בעת מעבר עכבר מעליו
|
||||
setting_disable_swiping: ביטול החלקת-צד
|
||||
setting_display_media: תצוגת מדיה
|
||||
setting_display_media_default: ברירת מחדל
|
||||
|
|
|
@ -211,6 +211,7 @@ is:
|
|||
setting_default_privacy: Gagnaleynd færslna
|
||||
setting_default_sensitive: Alltaf merkja myndefni sem viðkvæmt
|
||||
setting_delete_modal: Birta staðfestingarglugga áður en færslu er eytt
|
||||
setting_disable_hover_cards: Gera óvirka forskoðun notandasniðs við yfirsvif
|
||||
setting_disable_swiping: Gera strokuhreyfingar óvirkar
|
||||
setting_display_media: Birting myndefnis
|
||||
setting_display_media_default: Sjálfgefið
|
||||
|
|
|
@ -211,6 +211,7 @@ it:
|
|||
setting_default_privacy: Privacy dei post
|
||||
setting_default_sensitive: Segna sempre i media come sensibili
|
||||
setting_delete_modal: Mostra dialogo di conferma prima di eliminare un post
|
||||
setting_disable_hover_cards: Disabilita l'anteprima del profilo al passaggio del mouse
|
||||
setting_disable_swiping: Disabilita i movimenti di scorrimento
|
||||
setting_display_media: Visualizzazione dei media
|
||||
setting_display_media_default: Predefinita
|
||||
|
|
|
@ -66,7 +66,6 @@ ja:
|
|||
setting_default_sensitive: 閲覧注意状態のメディアはデフォルトでは内容が伏せられ、クリックして初めて閲覧できるようになります
|
||||
setting_disallow_unlisted_public_searchability: この設定を有効にすると、非収載投稿と検索範囲「誰でも」は両立できず不特定多数からの検索が不可になります。Fedibirdと同じ挙動になります
|
||||
setting_display_media_default: 閲覧注意としてマークされたメディアは隠す
|
||||
setting_display_media_expand: Misskeyなどは4個を超えて投稿可能です。その追加分を最大16個まで表示します。kmyblueからアップロードはできません
|
||||
setting_display_media_hide_all: メディアを常に隠す
|
||||
setting_display_media_show_all: メディアを常に表示する
|
||||
setting_dtl_force_searchability: 'ハッシュタグ #%{tag} をつけて投稿するとき、検索許可を強制的に置き換えるかを設定します'
|
||||
|
@ -267,11 +266,11 @@ ja:
|
|||
setting_default_searchability_of_search: 自分が検索するときの検索許可設定
|
||||
setting_default_sensitive: メディアを常に閲覧注意としてマークする
|
||||
setting_delete_modal: 投稿を削除する前に確認ダイアログを表示する
|
||||
setting_disable_hover_cards: マウスオーバーでプロフィールをポップアップしない
|
||||
setting_disable_swiping: スワイプでの切り替えを無効にする
|
||||
setting_disallow_unlisted_public_searchability: 非収載投稿の検索許可が「誰でも」「ローカルとフォロワー」だった場合、「フォロワーのみ」に変更する
|
||||
setting_display_media: メディアの表示
|
||||
setting_display_media_default: 標準
|
||||
setting_display_media_expand: 5個目以降のメディアも表示する (最大16)
|
||||
setting_display_media_hide_all: 非表示
|
||||
setting_display_media_show_all: 表示
|
||||
setting_dtl_force_searchability: DTL投稿の検索許可
|
||||
|
|
|
@ -5,6 +5,7 @@ kab:
|
|||
account:
|
||||
display_name: Isem-ik·im ummid neɣ isem-ik·im n uqeṣṣer.
|
||||
fields: Asebter-ik·im agejdan, imqimen, leεmer, ayen tebɣiḍ.
|
||||
note: 'Tzemreḍ ad d-@tbedreḍ imdanen niḍen neɣ #ihacṭagen.'
|
||||
account_alias:
|
||||
acct: Sekcem isem n umseqdac@domain n umiḍan s wansa itebγiḍ ad gujjeḍ
|
||||
account_migration:
|
||||
|
@ -27,6 +28,8 @@ kab:
|
|||
name: 'Ha-t-an kra seg ihacṭagen i tesseqdaceḍ ussan-a ineggura maḍi :'
|
||||
imports:
|
||||
data: Afaylu CSV id yusan seg uqeddac-nniḍen n Maṣṭudun
|
||||
invite_request:
|
||||
text: Aya ad aɣ-iɛiwen ad nessenqed tuttra-k•m
|
||||
ip_block:
|
||||
comment: D afrayan. Cfu ɣef wayɣer i terniḍ alugen-a.
|
||||
severities:
|
||||
|
@ -36,6 +39,8 @@ kab:
|
|||
fields:
|
||||
name: Tabzimt
|
||||
value: Agbur
|
||||
account_alias:
|
||||
acct: Tansa n umiḍan aqbur
|
||||
account_migration:
|
||||
acct: Tansa n umiḍan amaynut
|
||||
account_warning_preset:
|
||||
|
@ -51,6 +56,7 @@ kab:
|
|||
suspend: Ḥbes di leεḍil
|
||||
announcement:
|
||||
ends_at: Tagara n tedyant
|
||||
starts_at: Tazwara n tedyant
|
||||
text: Alɣu
|
||||
defaults:
|
||||
autofollow: Ɛreḍ-it-id ad yeḍfer amiḍan-ik·im
|
||||
|
@ -59,18 +65,25 @@ kab:
|
|||
chosen_languages: Sizdeg tutlayin
|
||||
confirm_new_password: Sentem awal uffir amaynut
|
||||
confirm_password: Sentem awal uffir
|
||||
context: Isatalen n umsizdeg
|
||||
current_password: Awal uffir n tura
|
||||
data: Isefka
|
||||
display_name: Isem ara d-yettwaskanen
|
||||
email: Tansa imayl
|
||||
expires_in: Ad yemmet
|
||||
fields: Urtiyen niḍen
|
||||
header: Ixef
|
||||
honeypot: "%{label} (ur tettaččar ara)"
|
||||
inbox_url: URL n tbewwaḍt n urmas yettwacudden
|
||||
irreversible: Kkes deg wadeg n tuffra
|
||||
locale: Tutlayt n wegrudem
|
||||
max_uses: Amḍan afellay n iseqdacen
|
||||
new_password: Awal uffir amaynut
|
||||
note: Tameddurt
|
||||
otp_attempt: Tangalt n snat n tarayin
|
||||
password: Awal uffir
|
||||
phrase: Awal n tsarut neɣ tafyirt
|
||||
setting_advanced_layout: Rmed agrudem n web leqqayen
|
||||
setting_default_language: Tutlayt n tira
|
||||
setting_default_privacy: Tabaḍnit n tira
|
||||
setting_display_media_default: Akk-a kan
|
||||
|
@ -88,8 +101,15 @@ kab:
|
|||
featured_tag:
|
||||
name: Ahacṭag
|
||||
form_admin_settings:
|
||||
custom_css: CSS udmawan
|
||||
profile_directory: Rmed akaram n imaγnuten
|
||||
site_contact_email: Imayl n unermas
|
||||
site_short_description: Aglam n uqeddac
|
||||
site_terms: Tasertit tabaḍnit
|
||||
site_title: Isem n uqeddac
|
||||
status_page_url: URL n uusebter n waddaden
|
||||
theme: Asentel amezwer
|
||||
thumbnail: Tanfult n uqeddac
|
||||
interactions:
|
||||
must_be_follower: Ssewḥel ilɣa sɣur wid akked tid ur yellin ara d imeḍfaren-ik·im
|
||||
must_be_following: Ssewḥel ilɣa sɣur wid akked tid ur tettḍafareḍ ara
|
||||
|
@ -109,18 +129,25 @@ kab:
|
|||
follow: Yeḍfer-ik·im-id walbɛaḍ
|
||||
follow_request: Ma yella win i d-yessutren ad k·em-yeḍfer
|
||||
mention: Yuder-ik·em-id walbɛaḍ
|
||||
pending_account: Amiḍan amaynut yesran asenqed
|
||||
reblog: Yella win yesselhan adda-dik·im
|
||||
report: Aneqis amaynut yettwazen
|
||||
rule:
|
||||
hint: Isallen-nniḍen
|
||||
text: Alugen
|
||||
tag:
|
||||
name: Ahacṭag
|
||||
user:
|
||||
role: Tamlilt
|
||||
time_zone: Tamnaḍt tasragant
|
||||
user_role:
|
||||
name: Isem
|
||||
permissions_as_keys: Tisirag
|
||||
webhook:
|
||||
events: Tidyanin turmidin
|
||||
'no': Ala
|
||||
not_recommended: Ur yettuwelleh ara
|
||||
overridden: Yeččur
|
||||
recommended: Yettuwelleh
|
||||
required:
|
||||
mark: "*"
|
||||
|
|
|
@ -211,6 +211,7 @@ ko:
|
|||
setting_default_privacy: 게시물 프라이버시
|
||||
setting_default_sensitive: 미디어를 언제나 민감한 콘텐츠로 설정
|
||||
setting_delete_modal: 게시물 삭제 전 확인 창을 표시
|
||||
setting_disable_hover_cards: 호버시 프로필 미리보기를 비활성화
|
||||
setting_disable_swiping: 스와이프 모션 비활성화
|
||||
setting_display_media: 미디어 표시
|
||||
setting_display_media_default: 기본
|
||||
|
|
|
@ -211,6 +211,7 @@ nl:
|
|||
setting_default_privacy: Zichtbaarheid van nieuwe berichten
|
||||
setting_default_sensitive: Media altijd als gevoelig markeren
|
||||
setting_delete_modal: Vraag voor het verwijderen van een bericht een bevestiging
|
||||
setting_disable_hover_cards: Profielvoorbeelden door eroverheen te zweven uitschakelen
|
||||
setting_disable_swiping: Swipebewegingen uitschakelen
|
||||
setting_display_media: Mediaweergave
|
||||
setting_display_media_default: Standaard
|
||||
|
|
|
@ -211,6 +211,7 @@ pl:
|
|||
setting_default_privacy: Widoczność wpisów
|
||||
setting_default_sensitive: Zawsze oznaczaj zawartość multimedialną jako wrażliwą
|
||||
setting_delete_modal: Pytaj o potwierdzenie przed usunięciem wpisu
|
||||
setting_disable_hover_cards: Wyłącz podgląd profilu po najechaniu
|
||||
setting_disable_swiping: Wyłącz ruchy przesuwania
|
||||
setting_display_media: Wyświetlanie zawartości multimedialnej
|
||||
setting_display_media_default: Domyślne
|
||||
|
|
|
@ -211,6 +211,7 @@ pt-PT:
|
|||
setting_default_privacy: Privacidade da publicação
|
||||
setting_default_sensitive: Marcar sempre os media como problemáticos
|
||||
setting_delete_modal: Solicitar confirmação antes de eliminar uma publicação
|
||||
setting_disable_hover_cards: Desativar visualização de perfil ao passar o cursor
|
||||
setting_disable_swiping: Desativar os movimentos de deslize
|
||||
setting_display_media: Visualização de media
|
||||
setting_display_media_default: Pré-definição
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
ro:
|
||||
simple_form:
|
||||
hints:
|
||||
account:
|
||||
discoverable: Este posibil ca postările și profilul tău să fie recomandate în diferite zone ale Mastodon, iar profilul tău ar poate fi sugerat altor utilizatori.
|
||||
fields: Pagina ta principală, pronumele tale, vârsta, sau orice îți dorești.
|
||||
indexable: Postările tale publice pot apărea în rezultatele căutărilor pe Mastodon. Persoanele care au interacționat cu postările tale vor putea să le caute oricând.
|
||||
note: 'Poți @menționa alte persoane sau #hashtag-uri.'
|
||||
unlocked: Alte persoane vă vor putea urmări fără a solicita aprobare. Debifați dacă doriți să revizuiți cererile și să alegeți dacă doriți să acceptați sau să respingeți noii urmăritori.
|
||||
account_alias:
|
||||
acct: Specificați numele de utilizator@domeniu al contului de la care doriți să treceți
|
||||
account_migration:
|
||||
|
@ -23,12 +29,14 @@ ro:
|
|||
text: Poți folosi sintaxa de postare. Te rugăm să fii atent la spațiul pe care anunțul îl va ocupa pe ecranul utilizatorului
|
||||
defaults:
|
||||
autofollow: Persoanele care se înregistrează datorită invitației tale te vor urmări automat
|
||||
avatar: WEBP, PNG, GIF sau JPG. Cel mult %{size}. Va fi redimensionată la %{dimensions}px
|
||||
bot: Acest cont performează în cea mai mare parte acțiuni automate și nu poate fi monitorizat
|
||||
context: Contextele în care filtrul trebuie aplicat
|
||||
current_password: În scopuri de securitate, vă rugăm să introduceţi parola contului curent
|
||||
current_username: Pentru a confirma, vă rugăm să introduceţi numele de utilizator al contului curent
|
||||
digest: Este trimis doar după o lungă perioadă de inactivitate și numai dacă primești mesaje personale în perioada de absență
|
||||
email: Vei primi un e-mail de confirmare
|
||||
header: WEBP, PNG, GIF sau JPG. Cel mult %{size}. Va fi redimensionată la %{dimensions}px
|
||||
inbox_url: Copiază adresa URL de pe prima pagină a reului pe care vrei să îl utilizezi
|
||||
irreversible: Postările sortate vor dispărea ireversibil, chiar dacă filtrul este ulterior șters
|
||||
locale: Limba interfaței de utilizator, e-mailurile si notificările push
|
||||
|
@ -36,17 +44,27 @@ ro:
|
|||
phrase: Vor fi potrivite indiferent de textul din casetă sau advertismentul unei postări
|
||||
scopes: La care API-uri aplicația are nevoie de acces. Dacă selectezi un scop principal nu mai e nevoie să selectezi fiecare sub-scop al acestuia.
|
||||
setting_aggregate_reblogs: Nu afișa impulsurile noi pentru postările care au fost deja recent impulsionate (afectează doar noile impulsuri primite)
|
||||
setting_always_send_emails: În mod normal, notificările prin e-mail nu vor fi trimise când utilizați în mod activ Mastodon
|
||||
setting_default_sensitive: Fișierele media sensibile sunt ascunse implicit și pot fi dezvăluite cu un clic
|
||||
setting_display_media_default: Ascunde conținutul media marcat ca sensibil (NSFW)
|
||||
setting_display_media_hide_all: Întotdeauna ascunde tot conținutul media
|
||||
setting_display_media_show_all: Întotdeauna afișează conținutul media marcat ca sensibil
|
||||
setting_use_blurhash: Gradienții sunt bazați pe culorile vizualelor ascunse, dar ofuscă orice detalii
|
||||
setting_use_pending_items: Ascunde actualizările cronologice din spatele unui click în loc de a derula automat fluxul
|
||||
username: Poți folosi litere, numere sau liniuțe de subliniere
|
||||
whole_word: Când fraza sau cuvântul este doar alfanumeric, acesta se aplică doar dacă există o potrivire completă
|
||||
domain_allow:
|
||||
domain: Acest domeniu va putea prelua date de pe acest server și datele primite de la el vor fi procesate și stocate
|
||||
email_domain_block:
|
||||
domain: Acesta poate fi numele de domeniu care apare în adresa de e-mail sau în înregistrarea MX pe care o utilizează. Acestea vor fi verificate la înscriere.
|
||||
with_dns_records: Se va face o încercare de a rezolva înregistrările DNS ale domeniului dat și rezultatele vor fi de asemenea afișate pe lista neagră
|
||||
featured_tag:
|
||||
name: 'Iată câteva dintre hashtag-urile pe care le-ai folosit cel mai recent:'
|
||||
filters:
|
||||
action: Alege ce acţiune va fi efectuată atunci când o postare corespunde filtrului
|
||||
actions:
|
||||
hide: Ascunde complet conținutul filtrat, ca și cum nu ar exista
|
||||
warn: Ascunde conținutul filtrat în spatele unui avertisment care menționează titlul filtrului
|
||||
form_challenge:
|
||||
current_password: Ați intrat într-o zonă securizată
|
||||
imports:
|
||||
|
|
|
@ -211,6 +211,7 @@ sl:
|
|||
setting_default_privacy: Zasebnost objave
|
||||
setting_default_sensitive: Vedno označi medije kot občutljive
|
||||
setting_delete_modal: Pred brisanjem objave prikaži okno za pritrditev
|
||||
setting_disable_hover_cards: Onemogoči predogled profila pod kazalcem
|
||||
setting_disable_swiping: Onemogoči poteze drsanja
|
||||
setting_display_media: Prikaz medijev
|
||||
setting_display_media_default: Privzeto
|
||||
|
|
|
@ -211,6 +211,7 @@ sq:
|
|||
setting_default_privacy: Privatësi postimi
|
||||
setting_default_sensitive: Mediave vëru përherë shenjë si rezervat
|
||||
setting_delete_modal: Shfaq dialog ripohimi përpara fshirjes së një mesazhi
|
||||
setting_disable_hover_cards: Çaktivizo paraparje profili, kur i kalohet kursori përsipër
|
||||
setting_disable_swiping: Çaktivizo lëvizje me fërkim
|
||||
setting_display_media: Shfaqje mediash
|
||||
setting_display_media_default: Parazgjedhje
|
||||
|
|
|
@ -211,6 +211,7 @@ sr-Latn:
|
|||
setting_default_privacy: Privatnost objava
|
||||
setting_default_sensitive: Uvek označi multimediju kao osetljivu
|
||||
setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja objave
|
||||
setting_disable_hover_cards: Onemogući pregled profila prelaskom kursora
|
||||
setting_disable_swiping: Onemogući pokrete prevlačenja
|
||||
setting_display_media: Prikaz medija
|
||||
setting_display_media_default: Podrazumevano
|
||||
|
|
|
@ -211,6 +211,7 @@ sr:
|
|||
setting_default_privacy: Приватност објава
|
||||
setting_default_sensitive: Увек означи мултимедију као осетљиву
|
||||
setting_delete_modal: Прикажи дијалог за потврду пре брисања објаве
|
||||
setting_disable_hover_cards: Онемогући преглед профила преласком курсора
|
||||
setting_disable_swiping: Онемогући покрете превлачења
|
||||
setting_display_media: Приказ медија
|
||||
setting_display_media_default: Подразумевано
|
||||
|
|
|
@ -211,6 +211,7 @@ th:
|
|||
setting_default_privacy: ความเป็นส่วนตัวของการโพสต์
|
||||
setting_default_sensitive: ทำเครื่องหมายสื่อว่าละเอียดอ่อนเสมอ
|
||||
setting_delete_modal: แสดงกล่องโต้ตอบการยืนยันก่อนลบโพสต์
|
||||
setting_disable_hover_cards: ปิดใช้งานตัวอย่างโปรไฟล์เมื่อวางเมาส์เหนือ
|
||||
setting_disable_swiping: ปิดใช้งานการเคลื่อนไหวในการปัด
|
||||
setting_display_media: การแสดงสื่อ
|
||||
setting_display_media_default: ค่าเริ่มต้น
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue