mirror of
https://git.bsd.gay/fef/nyastodon.git
synced 2025-01-10 02:27:01 +01:00
merge catcatnya/main into main
This commit is contained in:
commit
6dac57f914
358 changed files with 5040 additions and 2705 deletions
138
.github/workflows/test-chart.yml
vendored
Normal file
138
.github/workflows/test-chart.yml
vendored
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
# This is a GitHub workflow defining a set of jobs with a set of steps.
|
||||||
|
# ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
|
||||||
|
#
|
||||||
|
name: Test chart
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "chart/**"
|
||||||
|
- "!**.md"
|
||||||
|
- ".github/workflows/test-chart.yml"
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "chart/**"
|
||||||
|
- "!**.md"
|
||||||
|
- ".github/workflows/test-chart.yml"
|
||||||
|
branches-ignore:
|
||||||
|
- "dependabot/**"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: chart
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-templates:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
|
||||||
|
- name: Install dependencies (yamllint)
|
||||||
|
run: pip install yamllint
|
||||||
|
|
||||||
|
- run: helm dependency update
|
||||||
|
|
||||||
|
- name: helm lint
|
||||||
|
run: |
|
||||||
|
helm lint . \
|
||||||
|
--values dev-values.yaml
|
||||||
|
|
||||||
|
- name: helm template
|
||||||
|
run: |
|
||||||
|
helm template . \
|
||||||
|
--values dev-values.yaml \
|
||||||
|
--output-dir rendered-templates
|
||||||
|
|
||||||
|
- name: yamllint (only on templates we manage)
|
||||||
|
run: |
|
||||||
|
rm -rf rendered-templates/mastodon/charts
|
||||||
|
|
||||||
|
yamllint rendered-templates \
|
||||||
|
--config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}"
|
||||||
|
|
||||||
|
# This job helps us validate that rendered templates are valid k8s resources
|
||||||
|
# against a k8s api-server, via "helm template --validate", but also that a
|
||||||
|
# basic configuration can be used to successfully startup mastodon.
|
||||||
|
#
|
||||||
|
test-install:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
timeout-minutes: 15
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
# k3s-channel reference: https://update.k3s.io/v1-release/channels
|
||||||
|
- k3s-channel: latest
|
||||||
|
- k3s-channel: stable
|
||||||
|
|
||||||
|
# This represents the oldest configuration we test against.
|
||||||
|
#
|
||||||
|
# The k8s version chosen is based on the oldest still supported k8s
|
||||||
|
# version among two managed k8s services, GKE, EKS.
|
||||||
|
# - GKE: https://endoflife.date/google-kubernetes-engine
|
||||||
|
# - EKS: https://endoflife.date/amazon-eks
|
||||||
|
#
|
||||||
|
# The helm client's version can influence what helper functions is
|
||||||
|
# available for use in the templates, currently we need v3.6.0 or
|
||||||
|
# higher.
|
||||||
|
#
|
||||||
|
- k3s-channel: v1.21
|
||||||
|
helm-version: v3.6.0
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# This action starts a k8s cluster with NetworkPolicy enforcement and
|
||||||
|
# installs both kubectl and helm.
|
||||||
|
#
|
||||||
|
# ref: https://github.com/jupyterhub/action-k3s-helm#readme
|
||||||
|
#
|
||||||
|
- uses: jupyterhub/action-k3s-helm@v3
|
||||||
|
with:
|
||||||
|
k3s-channel: ${{ matrix.k3s-channel }}
|
||||||
|
helm-version: ${{ matrix.helm-version }}
|
||||||
|
metrics-enabled: false
|
||||||
|
traefik-enabled: false
|
||||||
|
docker-enabled: false
|
||||||
|
|
||||||
|
- run: helm dependency update
|
||||||
|
|
||||||
|
# Validate rendered helm templates against the k8s api-server
|
||||||
|
- name: helm template --validate
|
||||||
|
run: |
|
||||||
|
helm template --validate mastodon . \
|
||||||
|
--values dev-values.yaml
|
||||||
|
|
||||||
|
- name: helm install
|
||||||
|
run: |
|
||||||
|
helm install mastodon . \
|
||||||
|
--values dev-values.yaml \
|
||||||
|
--timeout 10m
|
||||||
|
|
||||||
|
# This actions provides a report about the state of the k8s cluster,
|
||||||
|
# providing logs etc on anything that has failed and workloads marked as
|
||||||
|
# important.
|
||||||
|
#
|
||||||
|
# ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme
|
||||||
|
#
|
||||||
|
- name: Kubernetes namespace report
|
||||||
|
uses: jupyterhub/action-k8s-namespace-report@v1
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
important-workloads: >-
|
||||||
|
deploy/mastodon-sidekiq
|
||||||
|
deploy/mastodon-streaming
|
||||||
|
deploy/mastodon-web
|
||||||
|
job/mastodon-assets-precompile
|
||||||
|
job/mastodon-chewy-upgrade
|
||||||
|
job/mastodon-create-admin
|
||||||
|
job/mastodon-db-migrate
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -44,6 +44,9 @@
|
||||||
/redis
|
/redis
|
||||||
/elasticsearch
|
/elasticsearch
|
||||||
|
|
||||||
|
# ignore Helm charts
|
||||||
|
/chart/*.tgz
|
||||||
|
|
||||||
# ignore Helm dependency charts
|
# ignore Helm dependency charts
|
||||||
/chart/charts/*.tgz
|
/chart/charts/*.tgz
|
||||||
|
|
||||||
|
|
1121
AUTHORS.md
1121
AUTHORS.md
File diff suppressed because it is too large
Load diff
65
CHANGELOG.md
65
CHANGELOG.md
|
@ -3,7 +3,12 @@ Changelog
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## [Unreleased]
|
## [4.0.1] - 2022-11-14
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677))
|
||||||
|
|
||||||
|
## [4.0.0] - 2022-11-14
|
||||||
|
|
||||||
Some of the features in this release have been funded through the [NGI0 Discovery](https://nlnet.nl/discovery) Fund, a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
|
Some of the features in this release have been funded through the [NGI0 Discovery](https://nlnet.nl/discovery) Fund, a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
|
||||||
|
|
||||||
|
@ -13,7 +18,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924))
|
- **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924))
|
||||||
- Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945))
|
- Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945))
|
||||||
- **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245))
|
- **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245))
|
||||||
- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712))
|
- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20018))
|
||||||
- **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335))
|
- **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335))
|
||||||
- Previously, you could only see trends in your current language
|
- Previously, you could only see trends in your current language
|
||||||
- For less popular languages, that meant empty trends
|
- For less popular languages, that meant empty trends
|
||||||
|
@ -21,6 +26,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Add server rules to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/19296))
|
- Add server rules to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/19296))
|
||||||
- Add privacy icons to report modal in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19190))
|
- Add privacy icons to report modal in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19190))
|
||||||
- Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014))
|
- Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014))
|
||||||
|
- Add option to open original page in dropdowns of remote content in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20299))
|
||||||
- Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885))
|
- Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885))
|
||||||
- Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544))
|
- Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544))
|
||||||
- Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506))
|
- Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506))
|
||||||
|
@ -43,22 +49,27 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Add admin API for managing domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18247))
|
- Add admin API for managing domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18247))
|
||||||
- Add admin API for managing e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19066))
|
- Add admin API for managing e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19066))
|
||||||
- Add admin API for managing canonical e-mail blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19067))
|
- Add admin API for managing canonical e-mail blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19067))
|
||||||
- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065))
|
- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065), [trwnh](https://github.com/mastodon/mastodon/pull/20207))
|
||||||
|
- Add `sensitized` attribute to accounts in admin REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20094))
|
||||||
- Add `services` and `metadata` to the NodeInfo endpoint ([MFTabriz](https://github.com/mastodon/mastodon/pull/18563))
|
- Add `services` and `metadata` to the NodeInfo endpoint ([MFTabriz](https://github.com/mastodon/mastodon/pull/18563))
|
||||||
- Add `--remove-role` option to `tootctl accounts modify` ([Gargron](https://github.com/mastodon/mastodon/pull/19477))
|
- Add `--remove-role` option to `tootctl accounts modify` ([Gargron](https://github.com/mastodon/mastodon/pull/19477))
|
||||||
- Add `--days` option to `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/18425))
|
- Add `--days` option to `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/18425))
|
||||||
- Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642))
|
- Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642))
|
||||||
- Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757))
|
- Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757))
|
||||||
- Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427))
|
- Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427))
|
||||||
- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747))
|
- Add `ENABLE_STARTTLS` environment variable ([erbridge](https://github.com/mastodon/mastodon/pull/20321))
|
||||||
|
- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19963))
|
||||||
- Add assets from Twemoji 14.0 ([Gargron](https://github.com/mastodon/mastodon/pull/19733))
|
- Add assets from Twemoji 14.0 ([Gargron](https://github.com/mastodon/mastodon/pull/19733))
|
||||||
- Add reputation and followers score boost to SQL-only account search ([Gargron](https://github.com/mastodon/mastodon/pull/19251))
|
- Add reputation and followers score boost to SQL-only account search ([Gargron](https://github.com/mastodon/mastodon/pull/19251))
|
||||||
|
- Add Scots, Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to languages list ([VyrCossont](https://github.com/mastodon/mastodon/pull/20168))
|
||||||
|
- Set autocomplete hints for e-mail, password and OTP fields ([rcombs](https://github.com/mastodon/mastodon/pull/19833), [offbyone](https://github.com/mastodon/mastodon/pull/19946), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20071))
|
||||||
|
- Add support for DigitalOcean Spaces in setup wizard ([v-aisac](https://github.com/mastodon/mastodon/pull/20573))
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710))
|
- **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710))
|
||||||
- **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103))
|
- **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103))
|
||||||
- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562))
|
- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19981), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19978), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20148), [Gargron](https://github.com/mastodon/mastodon/pull/20302), [cutls](https://github.com/mastodon/mastodon/pull/20400))
|
||||||
- The web app can now be accessed without being logged in
|
- The web app can now be accessed without being logged in
|
||||||
- No more `/web` prefix on web app paths
|
- No more `/web` prefix on web app paths
|
||||||
- Profiles, posts, and other public pages now use the same interface for logged in and logged out users
|
- Profiles, posts, and other public pages now use the same interface for logged in and logged out users
|
||||||
|
@ -74,14 +85,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Change label of publish button to be "Publish" again in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18583))
|
- Change label of publish button to be "Publish" again in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18583))
|
||||||
- Change language to be carried over on reply in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18557))
|
- Change language to be carried over on reply in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18557))
|
||||||
- Change "Unfollow" to "Cancel follow request" when request still pending in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/19363))
|
- Change "Unfollow" to "Cancel follow request" when request still pending in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/19363))
|
||||||
- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744))
|
- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19878), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20567))
|
||||||
- Filtered keywords and phrases can now be grouped into named categories
|
- Filtered keywords and phrases can now be grouped into named categories
|
||||||
- Filtered posts show which exact filter was hit
|
- Filtered posts show which exact filter was hit
|
||||||
- Individual posts can be added to a filter
|
- Individual posts can be added to a filter
|
||||||
- You can peek inside filtered posts anyway
|
- You can peek inside filtered posts anyway
|
||||||
- Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249))
|
- Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249))
|
||||||
- Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854))
|
- Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854))
|
||||||
- Change public (but not hashtag) timelines to be filtered by current locale by default ([Gargron](https://github.com/mastodon/mastodon/pull/19291), [Gargron](https://github.com/mastodon/mastodon/pull/19563))
|
|
||||||
- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407), [Gargron](https://github.com/mastodon/mastodon/pull/19533))
|
- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407), [Gargron](https://github.com/mastodon/mastodon/pull/19533))
|
||||||
- Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356))
|
- Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356))
|
||||||
- Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979))
|
- Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979))
|
||||||
|
@ -95,6 +105,14 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Change mentions of blocked users to not be processed ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19725))
|
- Change mentions of blocked users to not be processed ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19725))
|
||||||
- Change max. thumbnail dimensions to 640x360px (360p) ([Gargron](https://github.com/mastodon/mastodon/pull/19619))
|
- Change max. thumbnail dimensions to 640x360px (360p) ([Gargron](https://github.com/mastodon/mastodon/pull/19619))
|
||||||
- Change post-processing to be deferred only for large media types ([Gargron](https://github.com/mastodon/mastodon/pull/19617))
|
- Change post-processing to be deferred only for large media types ([Gargron](https://github.com/mastodon/mastodon/pull/19617))
|
||||||
|
- Change link verification to only work for https links without unicode ([Gargron](https://github.com/mastodon/mastodon/pull/20304), [Gargron](https://github.com/mastodon/mastodon/pull/20295))
|
||||||
|
- Change account deletion requests to spread out over time ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20222))
|
||||||
|
- Change larger reblogs/favourites numbers to be shortened in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20303))
|
||||||
|
- Change incoming activity processing to happen in `ingress` queue ([Gargron](https://github.com/mastodon/mastodon/pull/20264))
|
||||||
|
- Change notifications to not link show preview cards in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20335))
|
||||||
|
- Change amount of replies returned for logged out users in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20355))
|
||||||
|
- Change in-app links to keep you in-app in web UI ([trwnh](https://github.com/mastodon/mastodon/pull/20540), [Gargron](https://github.com/mastodon/mastodon/pull/20628))
|
||||||
|
- Change table header to be sticky in admin UI ([sk22](https://github.com/mastodon/mastodon/pull/20442))
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
@ -107,6 +125,28 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fix rules with same priority being sorted non-deterministically ([Gargron](https://github.com/mastodon/mastodon/pull/20623))
|
||||||
|
- Fix error when invalid domain name is submitted ([Gargron](https://github.com/mastodon/mastodon/pull/19474))
|
||||||
|
- Fix icons having an image role ([Gargron](https://github.com/mastodon/mastodon/pull/20600))
|
||||||
|
- Fix connections to IPv6-only servers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20108))
|
||||||
|
- Fix unnecessary service worker registration and preloading when logged out in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20341))
|
||||||
|
- Fix unnecessary and slow regex construction ([raggi](https://github.com/mastodon/mastodon/pull/20215))
|
||||||
|
- Fix `mailers` queue not being used for mailers ([Gargron](https://github.com/mastodon/mastodon/pull/20274))
|
||||||
|
- Fix error in webfinger redirect handling ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20260))
|
||||||
|
- Fix report category not being set to `violation` if rule IDs are provided ([trwnh](https://github.com/mastodon/mastodon/pull/20137))
|
||||||
|
- Fix nodeinfo metadata attribute being an array instead of an object ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20114))
|
||||||
|
- Fix account endorsements not being idempotent ([trwnh](https://github.com/mastodon/mastodon/pull/20118))
|
||||||
|
- Fix status and rule IDs not being strings in admin reports REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20122))
|
||||||
|
- Fix error on invalid `replies_policy` in REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20126))
|
||||||
|
- Fix redrafting a currently-editing post not leaving edit mode in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20023))
|
||||||
|
- Fix performance by avoiding method cache busts ([raggi](https://github.com/mastodon/mastodon/pull/19957))
|
||||||
|
- Fix opening the language picker scrolling the single-column view to the top in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19983))
|
||||||
|
- Fix content warning button missing `aria-expanded` attribute in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19975))
|
||||||
|
- Fix redundant `aria-pressed` attributes in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/19912))
|
||||||
|
- Fix crash when external auth provider has no display name set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19962))
|
||||||
|
- Fix followers count not being updated when migrating follows ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19998))
|
||||||
|
- Fix double button to clear emoji search input in web UI ([sunny](https://github.com/mastodon/mastodon/pull/19888))
|
||||||
|
- Fix missing null check on applications on strike disputes ([kescherCode](https://github.com/mastodon/mastodon/pull/19851))
|
||||||
- Fix featured tags not saving preferred casing ([Gargron](https://github.com/mastodon/mastodon/pull/19732))
|
- Fix featured tags not saving preferred casing ([Gargron](https://github.com/mastodon/mastodon/pull/19732))
|
||||||
- Fix language not being saved when editing status ([Gargron](https://github.com/mastodon/mastodon/pull/19543))
|
- Fix language not being saved when editing status ([Gargron](https://github.com/mastodon/mastodon/pull/19543))
|
||||||
- Fix not being able to input featured tag with hash symbol ([Gargron](https://github.com/mastodon/mastodon/pull/19535))
|
- Fix not being able to input featured tag with hash symbol ([Gargron](https://github.com/mastodon/mastodon/pull/19535))
|
||||||
|
@ -118,7 +158,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Fix account action type validation ([Gargron](https://github.com/mastodon/mastodon/pull/19476))
|
- Fix account action type validation ([Gargron](https://github.com/mastodon/mastodon/pull/19476))
|
||||||
- Fix upload progress not communicating processing phase in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19530))
|
- Fix upload progress not communicating processing phase in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19530))
|
||||||
- Fix wrong host being used for custom.css when asset host configured ([Gargron](https://github.com/mastodon/mastodon/pull/19521))
|
- Fix wrong host being used for custom.css when asset host configured ([Gargron](https://github.com/mastodon/mastodon/pull/19521))
|
||||||
- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429))
|
- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429), [nightpool](https://github.com/mastodon/mastodon/pull/19883))
|
||||||
- Fix error when uploading malformed CSV import ([Gargron](https://github.com/mastodon/mastodon/pull/19509))
|
- Fix error when uploading malformed CSV import ([Gargron](https://github.com/mastodon/mastodon/pull/19509))
|
||||||
- Fix avatars not using image tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19488))
|
- Fix avatars not using image tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19488))
|
||||||
- Fix handling of duplicate and out-of-order notifications in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19693))
|
- Fix handling of duplicate and out-of-order notifications in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19693))
|
||||||
|
@ -156,6 +196,15 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
||||||
- Fix `CDN_HOST` not being used in some asset URLs ([tribela](https://github.com/mastodon/mastodon/pull/18662))
|
- Fix `CDN_HOST` not being used in some asset URLs ([tribela](https://github.com/mastodon/mastodon/pull/18662))
|
||||||
- Fix `CAS_DISPLAY_NAME`, `SAML_DISPLAY_NAME` and `OIDC_DISPLAY_NAME` being ignored ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18568))
|
- Fix `CAS_DISPLAY_NAME`, `SAML_DISPLAY_NAME` and `OIDC_DISPLAY_NAME` being ignored ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18568))
|
||||||
- Fix various typos in comments throughout the codebase ([luzpaz](https://github.com/mastodon/mastodon/pull/18604))
|
- Fix various typos in comments throughout the codebase ([luzpaz](https://github.com/mastodon/mastodon/pull/18604))
|
||||||
|
- Fix CSV import error when rows include unicode characters ([HamptonMakes](https://github.com/mastodon/mastodon/pull/20592))
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- Fix being able to spoof link verification ([Gargron](https://github.com/mastodon/mastodon/pull/20217))
|
||||||
|
- Fix emoji substitution not applying only to text nodes in backend code ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20641))
|
||||||
|
- Fix emoji substitution not applying only to text nodes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20640))
|
||||||
|
- Fix rate limiting for paths with formats ([Gargron](https://github.com/mastodon/mastodon/pull/20675))
|
||||||
|
- Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388))
|
||||||
|
|
||||||
## [3.5.3] - 2022-05-26
|
## [3.5.3] - 2022-05-26
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -75,6 +75,8 @@ It is not always possible to phrase every change in such a manner, but it is des
|
||||||
- Code style rules (rubocop, eslint)
|
- Code style rules (rubocop, eslint)
|
||||||
- Normalization of locale files (i18n-tasks)
|
- Normalization of locale files (i18n-tasks)
|
||||||
|
|
||||||
|
**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation).
|
The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation).
|
||||||
|
|
4
Gemfile
4
Gemfile
|
@ -92,7 +92,7 @@ gem 'tty-prompt', '~> 0.23', require: false
|
||||||
gem 'twitter-text', '~> 3.1.0'
|
gem 'twitter-text', '~> 3.1.0'
|
||||||
gem 'tzinfo-data', '~> 1.2022'
|
gem 'tzinfo-data', '~> 1.2022'
|
||||||
gem 'webpacker', '~> 5.4'
|
gem 'webpacker', '~> 5.4'
|
||||||
gem 'webpush', git: 'https://github.com/ClearlyClaire/webpush.git', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
|
gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
|
||||||
gem 'webauthn', '~> 2.5'
|
gem 'webauthn', '~> 2.5'
|
||||||
|
|
||||||
gem 'json-ld'
|
gem 'json-ld'
|
||||||
|
@ -122,6 +122,7 @@ group :test do
|
||||||
gem 'simplecov', '~> 0.21', require: false
|
gem 'simplecov', '~> 0.21', require: false
|
||||||
gem 'webmock', '~> 3.18'
|
gem 'webmock', '~> 3.18'
|
||||||
gem 'rspec_junit_formatter', '~> 0.6'
|
gem 'rspec_junit_formatter', '~> 0.6'
|
||||||
|
gem 'rack-test', '~> 2.0'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
@ -152,7 +153,6 @@ end
|
||||||
|
|
||||||
gem 'concurrent-ruby', require: false
|
gem 'concurrent-ruby', require: false
|
||||||
gem 'connection_pool', require: false
|
gem 'connection_pool', require: false
|
||||||
|
|
||||||
gem 'xorcist', '~> 1.1'
|
gem 'xorcist', '~> 1.1'
|
||||||
|
|
||||||
gem 'hcaptcha', '~> 7.1'
|
gem 'hcaptcha', '~> 7.1'
|
||||||
|
|
|
@ -818,6 +818,7 @@ DEPENDENCIES
|
||||||
rack (~> 2.2.4)
|
rack (~> 2.2.4)
|
||||||
rack-attack (~> 6.6)
|
rack-attack (~> 6.6)
|
||||||
rack-cors (~> 1.1)
|
rack-cors (~> 1.1)
|
||||||
|
rack-test (~> 2.0)
|
||||||
rails (~> 6.1.7)
|
rails (~> 6.1.7)
|
||||||
rails-controller-testing (~> 1.0)
|
rails-controller-testing (~> 1.0)
|
||||||
rails-i18n (~> 6.0)
|
rails-i18n (~> 6.0)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Security Policy
|
# Security Policy
|
||||||
|
|
||||||
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <hello@joinmastodon.org>.
|
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <security@joinmastodon.org>.
|
||||||
|
|
||||||
You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
|
You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
|
||||||
|
|
||||||
|
|
7
app.json
7
app.json
|
@ -79,8 +79,13 @@
|
||||||
"description": "SMTP server certificate verification mode. Defaults is 'peer'.",
|
"description": "SMTP server certificate verification mode. Defaults is 'peer'.",
|
||||||
"required": false
|
"required": false
|
||||||
},
|
},
|
||||||
|
"SMTP_ENABLE_STARTTLS": {
|
||||||
|
"description": "Enable STARTTLS? Default is 'auto'.",
|
||||||
|
"value": "auto",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
"SMTP_ENABLE_STARTTLS_AUTO": {
|
"SMTP_ENABLE_STARTTLS_AUTO": {
|
||||||
"description": "Enable STARTTLS if SMTP server supports it? Default is true.",
|
"description": "Enable STARTTLS if SMTP server supports it? Deprecated by SMTP_ENABLE_STARTTLS.",
|
||||||
"required": false
|
"required": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
9
app/controllers/admin/settings/other_controller.rb
Normal file
9
app/controllers/admin/settings/other_controller.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Admin::Settings::OtherController < Admin::SettingsController
|
||||||
|
private
|
||||||
|
|
||||||
|
def after_update_redirect_path
|
||||||
|
admin_settings_other_path
|
||||||
|
end
|
||||||
|
end
|
|
@ -57,7 +57,7 @@ class Api::BaseController < ApplicationController
|
||||||
render json: { error: I18n.t('errors.429') }, status: 429
|
render json: { error: I18n.t('errors.429') }, status: 429
|
||||||
end
|
end
|
||||||
|
|
||||||
rescue_from ActionController::ParameterMissing do |e|
|
rescue_from ActionController::ParameterMissing, Mastodon::InvalidParameterError do |e|
|
||||||
render json: { error: e.to_s }, status: 400
|
render json: { error: e.to_s }, status: 400
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,14 +18,29 @@ class Api::V1::StatusesController < Api::BaseController
|
||||||
# than this anyway
|
# than this anyway
|
||||||
CONTEXT_LIMIT = 4_096
|
CONTEXT_LIMIT = 4_096
|
||||||
|
|
||||||
|
# This remains expensive and we don't want to show everything to logged-out users
|
||||||
|
ANCESTORS_LIMIT = 40
|
||||||
|
DESCENDANTS_LIMIT = 60
|
||||||
|
DESCENDANTS_DEPTH_LIMIT = 20
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@status = cache_collection([@status], Status).first
|
@status = cache_collection([@status], Status).first
|
||||||
render json: @status, serializer: REST::StatusSerializer
|
render json: @status, serializer: REST::StatusSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def context
|
def context
|
||||||
ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(CONTEXT_LIMIT, current_account)
|
ancestors_limit = CONTEXT_LIMIT
|
||||||
descendants_results = @status.descendants(CONTEXT_LIMIT, current_account)
|
descendants_limit = CONTEXT_LIMIT
|
||||||
|
descendants_depth_limit = nil
|
||||||
|
|
||||||
|
if current_account.nil?
|
||||||
|
ancestors_limit = ANCESTORS_LIMIT
|
||||||
|
descendants_limit = DESCENDANTS_LIMIT
|
||||||
|
descendants_depth_limit = DESCENDANTS_DEPTH_LIMIT
|
||||||
|
end
|
||||||
|
|
||||||
|
ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(ancestors_limit, current_account)
|
||||||
|
descendants_results = @status.descendants(descendants_limit, current_account, descendants_depth_limit)
|
||||||
loaded_ancestors = cache_collection(ancestors_results, Status)
|
loaded_ancestors = cache_collection(ancestors_results, Status)
|
||||||
loaded_descendants = cache_collection(descendants_results, Status)
|
loaded_descendants = cache_collection(descendants_results, Status)
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter_params
|
def filter_params
|
||||||
params.permit(*FILTER_PARAMS)
|
params.permit(*FILTER_PARAMS, role_ids: [])
|
||||||
end
|
end
|
||||||
|
|
||||||
def pagination_params(core_params)
|
def pagination_params(core_params)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Api::V1::Filters::KeywordsController < Api::BaseController
|
class Api::V2::Filters::KeywordsController < Api::BaseController
|
||||||
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
|
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
|
||||||
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
|
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
|
||||||
before_action :require_user!
|
before_action :require_user!
|
|
@ -1,6 +1,6 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Api::V1::Filters::StatusesController < Api::BaseController
|
class Api::V2::Filters::StatusesController < Api::BaseController
|
||||||
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
|
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show]
|
||||||
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
|
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show]
|
||||||
before_action :require_user!
|
before_action :require_user!
|
|
@ -1,87 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module StatusControllerConcern
|
|
||||||
extend ActiveSupport::Concern
|
|
||||||
|
|
||||||
ANCESTORS_LIMIT = 40
|
|
||||||
DESCENDANTS_LIMIT = 60
|
|
||||||
DESCENDANTS_DEPTH_LIMIT = 20
|
|
||||||
|
|
||||||
def create_descendant_thread(starting_depth, statuses)
|
|
||||||
depth = starting_depth + statuses.size
|
|
||||||
|
|
||||||
if depth < DESCENDANTS_DEPTH_LIMIT
|
|
||||||
{
|
|
||||||
statuses: statuses,
|
|
||||||
starting_depth: starting_depth,
|
|
||||||
}
|
|
||||||
else
|
|
||||||
next_status = statuses.pop
|
|
||||||
|
|
||||||
{
|
|
||||||
statuses: statuses,
|
|
||||||
starting_depth: starting_depth,
|
|
||||||
next_status: next_status,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_ancestors
|
|
||||||
@ancestors = @status.reply? ? cache_collection(@status.ancestors(ANCESTORS_LIMIT, current_account), Status) : []
|
|
||||||
@next_ancestor = @ancestors.size < ANCESTORS_LIMIT ? nil : @ancestors.shift
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_descendants
|
|
||||||
@max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
|
|
||||||
@since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i
|
|
||||||
|
|
||||||
descendants = cache_collection(
|
|
||||||
@status.descendants(
|
|
||||||
DESCENDANTS_LIMIT,
|
|
||||||
current_account,
|
|
||||||
@max_descendant_thread_id,
|
|
||||||
@since_descendant_thread_id,
|
|
||||||
DESCENDANTS_DEPTH_LIMIT
|
|
||||||
),
|
|
||||||
Status
|
|
||||||
)
|
|
||||||
|
|
||||||
@descendant_threads = []
|
|
||||||
|
|
||||||
if descendants.present?
|
|
||||||
statuses = [descendants.first]
|
|
||||||
starting_depth = 0
|
|
||||||
|
|
||||||
descendants.drop(1).each_with_index do |descendant, index|
|
|
||||||
if descendants[index].id == descendant.in_reply_to_id
|
|
||||||
statuses << descendant
|
|
||||||
else
|
|
||||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
|
||||||
|
|
||||||
# The thread is broken, assume it's a reply to the root status
|
|
||||||
starting_depth = 0
|
|
||||||
|
|
||||||
# ... unless we can find its ancestor in one of the already-processed threads
|
|
||||||
@descendant_threads.reverse_each do |descendant_thread|
|
|
||||||
statuses = descendant_thread[:statuses]
|
|
||||||
|
|
||||||
index = statuses.find_index do |thread_status|
|
|
||||||
thread_status.id == descendant.in_reply_to_id
|
|
||||||
end
|
|
||||||
|
|
||||||
if index.present?
|
|
||||||
starting_depth = descendant_thread[:starting_depth] + index + 1
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
statuses = [descendant]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
|
||||||
end
|
|
||||||
|
|
||||||
@max_descendant_thread_id = @descendant_threads.pop[:statuses].first.id if descendants.size >= DESCENDANTS_LIMIT
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
class StatusesController < ApplicationController
|
class StatusesController < ApplicationController
|
||||||
include WebAppControllerConcern
|
include WebAppControllerConcern
|
||||||
include StatusControllerConcern
|
|
||||||
include SignatureAuthentication
|
include SignatureAuthentication
|
||||||
include Authorization
|
include Authorization
|
||||||
include AccountOwnedConcern
|
include AccountOwnedConcern
|
||||||
|
|
|
@ -195,6 +195,7 @@ module LanguagesHelper
|
||||||
kmr: ['Kurmanji (Kurdish)', 'Kurmancî'].freeze,
|
kmr: ['Kurmanji (Kurdish)', 'Kurmancî'].freeze,
|
||||||
ldn: ['Láadan', 'Láadan'].freeze,
|
ldn: ['Láadan', 'Láadan'].freeze,
|
||||||
lfn: ['Lingua Franca Nova', 'lingua franca nova'].freeze,
|
lfn: ['Lingua Franca Nova', 'lingua franca nova'].freeze,
|
||||||
|
sco: ['Scots', 'Scots'].freeze,
|
||||||
tok: ['Toki Pona', 'toki pona'].freeze,
|
tok: ['Toki Pona', 'toki pona'].freeze,
|
||||||
zba: ['Balaibalan', 'باليبلن'].freeze,
|
zba: ['Balaibalan', 'باليبلن'].freeze,
|
||||||
zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze,
|
zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze,
|
||||||
|
|
|
@ -43,7 +43,7 @@ export const fetchFilters = () => (dispatch, getState) => {
|
||||||
export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
|
export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
|
||||||
dispatch(createFilterStatusRequest());
|
dispatch(createFilterStatusRequest());
|
||||||
|
|
||||||
api(getState).post(`/api/v1/filters/${params.filter_id}/statuses`, params).then(response => {
|
api(getState).post(`/api/v2/filters/${params.filter_id}/statuses`, params).then(response => {
|
||||||
dispatch(createFilterStatusSuccess(response.data));
|
dispatch(createFilterStatusSuccess(response.data));
|
||||||
if (onSuccess) onSuccess();
|
if (onSuccess) onSuccess();
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
|
|
@ -687,7 +687,7 @@ class Status extends ImmutablePureComponent {
|
||||||
if (!status.get('sensitive') && !(status.get('spoiler_text').length > 0) && settings.getIn(['collapsed', 'backgrounds', 'preview_images'])) {
|
if (!status.get('sensitive') && !(status.get('spoiler_text').length > 0) && settings.getIn(['collapsed', 'backgrounds', 'preview_images'])) {
|
||||||
background = attachments.getIn([0, 'preview_url']);
|
background = attachments.getIn([0, 'preview_url']);
|
||||||
}
|
}
|
||||||
} else if (status.get('card') && settings.get('inline_preview_cards')) {
|
} else if (status.get('card') && settings.get('inline_preview_cards') && !this.props.muted) {
|
||||||
media.push(
|
media.push(
|
||||||
<Card
|
<Card
|
||||||
onOpenMedia={this.handleOpenMedia}
|
onOpenMedia={this.handleOpenMedia}
|
||||||
|
|
|
@ -183,25 +183,18 @@ class About extends React.PureComponent {
|
||||||
<>
|
<>
|
||||||
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
|
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
|
||||||
|
|
||||||
<table className='about__domain-blocks'>
|
<div className='about__domain-blocks'>
|
||||||
<thead>
|
{domainBlocks.get('items').map(block => (
|
||||||
<tr>
|
<div className='about__domain-blocks__domain' key={block.get('domain')}>
|
||||||
<th><FormattedMessage id='about.domain_blocks.domain' defaultMessage='Domain' /></th>
|
<div className='about__domain-blocks__domain__header'>
|
||||||
<th><FormattedMessage id='about.domain_blocks.severity' defaultMessage='Severity' /></th>
|
<h6><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></h6>
|
||||||
<th><FormattedMessage id='about.domain_blocks.comment' defaultMessage='Reason' /></th>
|
<span className='about__domain-blocks__domain__type' title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span>
|
||||||
</tr>
|
</div>
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
<p>{(block.get('comment') || '').length > 0 ? block.get('comment') : <FormattedMessage id='about.domain_blocks.no_reason_available' defaultMessage='Reason not available' />}</p>
|
||||||
{domainBlocks.get('items').map(block => (
|
</div>
|
||||||
<tr key={block.get('domain')}>
|
))}
|
||||||
<td><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></td>
|
</div>
|
||||||
<td><span title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span></td>
|
|
||||||
<td>{block.get('comment')}</td>
|
|
||||||
</tr>
|
|
||||||
))}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
||||||
|
|
|
@ -317,8 +317,6 @@ class Header extends ImmutablePureComponent {
|
||||||
<Avatar account={suspended || hidden ? undefined : account} size={90} />
|
<Avatar account={suspended || hidden ? undefined : account} size={90} />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div className='spacer' />
|
|
||||||
|
|
||||||
{!suspended && (
|
{!suspended && (
|
||||||
<div className='account__header__tabs__buttons'>
|
<div className='account__header__tabs__buttons'>
|
||||||
{!hidden && (
|
{!hidden && (
|
||||||
|
|
|
@ -103,7 +103,7 @@ class ToggleOption extends ImmutablePureComponent {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<Toggle checked={checked} onChange={this.handleChange} />
|
<Toggle checked={checked} onChange={this.handleChange} />
|
||||||
|
|
||||||
<div className='content'>
|
<div className='privacy-dropdown__option__content'>
|
||||||
<strong>{text}</strong>
|
<strong>{text}</strong>
|
||||||
{meta}
|
{meta}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,7 +18,6 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
media: ImmutablePropTypes.map.isRequired,
|
media: ImmutablePropTypes.map.isRequired,
|
||||||
onUndo: PropTypes.func.isRequired,
|
onUndo: PropTypes.func.isRequired,
|
||||||
onOpenFocalPoint: PropTypes.func.isRequired,
|
onOpenFocalPoint: PropTypes.func.isRequired,
|
||||||
isEditingStatus: PropTypes.bool.isRequired,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
handleUndoClick = e => {
|
handleUndoClick = e => {
|
||||||
|
@ -32,7 +31,7 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { intl, media, isEditingStatus } = this.props;
|
const { media } = this.props;
|
||||||
const focusX = media.getIn(['meta', 'focus', 'x']);
|
const focusX = media.getIn(['meta', 'focus', 'x']);
|
||||||
const focusY = media.getIn(['meta', 'focus', 'y']);
|
const focusY = media.getIn(['meta', 'focus', 'y']);
|
||||||
const x = ((focusX / 2) + .5) * 100;
|
const x = ((focusX / 2) + .5) * 100;
|
||||||
|
@ -45,10 +44,10 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
|
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
|
||||||
<div className='compose-form__upload__actions'>
|
<div className='compose-form__upload__actions'>
|
||||||
<button className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
|
<button className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
|
||||||
{!isEditingStatus && (<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
|
{!!media.get('unattached') && (<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{(media.get('description') || '').length === 0 && (
|
{(media.get('description') || '').length === 0 && !!media.get('unattached') && (
|
||||||
<div className='compose-form__upload__warning'>
|
<div className='compose-form__upload__warning'>
|
||||||
<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
|
<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { submitCompose } from 'flavours/glitch/actions/compose';
|
||||||
|
|
||||||
const mapStateToProps = (state, { id }) => ({
|
const mapStateToProps = (state, { id }) => ({
|
||||||
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
|
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
|
||||||
isEditingStatus: state.getIn(['compose', 'id']) !== null,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
|
@ -19,15 +19,26 @@ const emojiFilename = (filename) => {
|
||||||
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
|
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
const emojify = (str, customEmojis = {}) => {
|
const domParser = new DOMParser();
|
||||||
const tagCharsWithoutEmojis = '<&';
|
|
||||||
const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';
|
const emojifyTextNode = (node, customEmojis) => {
|
||||||
let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;
|
let str = node.textContent;
|
||||||
|
|
||||||
|
const fragment = new DocumentFragment();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
let match, i = 0, tag;
|
let match, i = 0;
|
||||||
while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || useSystemEmojiFont || !(match = trie.search(str.slice(i))))) {
|
|
||||||
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
if (customEmojis === null) {
|
||||||
|
while (i < str.length && (useSystemEmojiFont || !(match = trie.search(str.slice(i))))) {
|
||||||
|
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (i < str.length && str[i] !== ':' && (useSystemEmojiFont || !(match = trie.search(str.slice(i))))) {
|
||||||
|
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let rend, replacement = '';
|
let rend, replacement = '';
|
||||||
if (i === str.length) {
|
if (i === str.length) {
|
||||||
break;
|
break;
|
||||||
|
@ -35,8 +46,6 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
if (!(() => {
|
if (!(() => {
|
||||||
rend = str.indexOf(':', i + 1) + 1;
|
rend = str.indexOf(':', i + 1) + 1;
|
||||||
if (!rend) return false; // no pair of ':'
|
if (!rend) return false; // no pair of ':'
|
||||||
const lt = str.indexOf('<', i + 1);
|
|
||||||
if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'
|
|
||||||
const shortname = str.slice(i, rend);
|
const shortname = str.slice(i, rend);
|
||||||
// now got a replacee as ':shortname:'
|
// now got a replacee as ':shortname:'
|
||||||
// if you want additional emoji handler, add statements below which set replacement and return true.
|
// if you want additional emoji handler, add statements below which set replacement and return true.
|
||||||
|
@ -47,29 +56,6 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
})()) rend = ++i;
|
})()) rend = ++i;
|
||||||
} else if (tag >= 0) { // <, &
|
|
||||||
rend = str.indexOf('>;'[tag], i + 1) + 1;
|
|
||||||
if (!rend) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (tag === 0) {
|
|
||||||
if (invisible) {
|
|
||||||
if (str[i + 1] === '/') { // closing tag
|
|
||||||
if (!--invisible) {
|
|
||||||
tagChars = tagCharsWithEmojis;
|
|
||||||
}
|
|
||||||
} else if (str[rend - 2] !== '/') { // opening tag
|
|
||||||
invisible++;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (str.startsWith('<span class="invisible">', i)) {
|
|
||||||
// avoid emojifying on invisible text
|
|
||||||
invisible = 1;
|
|
||||||
tagChars = tagCharsWithoutEmojis;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i = rend;
|
|
||||||
} else if (!useSystemEmojiFont) { // matched to unicode emoji
|
} else if (!useSystemEmojiFont) { // matched to unicode emoji
|
||||||
const { filename, shortCode } = unicodeMapping[match];
|
const { filename, shortCode } = unicodeMapping[match];
|
||||||
const title = shortCode ? `:${shortCode}:` : '';
|
const title = shortCode ? `:${shortCode}:` : '';
|
||||||
|
@ -80,10 +66,43 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
rend += 1;
|
rend += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rtn += str.slice(0, i) + replacement;
|
|
||||||
|
fragment.append(document.createTextNode(str.slice(0, i)));
|
||||||
|
if (replacement) {
|
||||||
|
fragment.append(domParser.parseFromString(replacement, 'text/html').documentElement.getElementsByTagName('img')[0]);
|
||||||
|
}
|
||||||
|
node.textContent = str.slice(0, i);
|
||||||
str = str.slice(rend);
|
str = str.slice(rend);
|
||||||
}
|
}
|
||||||
return rtn + str;
|
|
||||||
|
fragment.append(document.createTextNode(str));
|
||||||
|
node.parentElement.replaceChild(fragment, node);
|
||||||
|
};
|
||||||
|
|
||||||
|
const emojifyNode = (node, customEmojis) => {
|
||||||
|
for (const child of node.childNodes) {
|
||||||
|
switch(child.nodeType) {
|
||||||
|
case Node.TEXT_NODE:
|
||||||
|
emojifyTextNode(child, customEmojis);
|
||||||
|
break;
|
||||||
|
case Node.ELEMENT_NODE:
|
||||||
|
if (!child.classList.contains('invisible'))
|
||||||
|
emojifyNode(child, customEmojis);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const emojify = (str, customEmojis = {}) => {
|
||||||
|
const wrapper = document.createElement('div');
|
||||||
|
wrapper.innerHTML = str;
|
||||||
|
|
||||||
|
if (!Object.keys(customEmojis).length)
|
||||||
|
customEmojis = null;
|
||||||
|
|
||||||
|
emojifyNode(wrapper, customEmojis);
|
||||||
|
|
||||||
|
return wrapper.innerHTML;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default emojify;
|
export default emojify;
|
||||||
|
|
|
@ -303,7 +303,7 @@ class UI extends React.Component {
|
||||||
this.dragTargets.push(e.target);
|
this.dragTargets.push(e.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.dataTransfer && e.dataTransfer.types.includes('Files') && this.props.canUploadMore) {
|
if (e.dataTransfer && e.dataTransfer.types.includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) {
|
||||||
this.setState({ draggingOver: true });
|
this.setState({ draggingOver: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -330,7 +330,7 @@ class UI extends React.Component {
|
||||||
this.setState({ draggingOver: false });
|
this.setState({ draggingOver: false });
|
||||||
this.dragTargets = [];
|
this.dragTargets = [];
|
||||||
|
|
||||||
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore) {
|
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) {
|
||||||
this.props.dispatch(uploadCompose(e.dataTransfer.files));
|
this.props.dispatch(uploadCompose(e.dataTransfer.files));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ import React from 'react';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
import { setupBrowserNotifications } from 'flavours/glitch/actions/notifications';
|
import { setupBrowserNotifications } from 'flavours/glitch/actions/notifications';
|
||||||
import Mastodon, { store } from 'flavours/glitch/containers/mastodon';
|
import Mastodon, { store } from 'flavours/glitch/containers/mastodon';
|
||||||
|
import { me } from 'flavours/glitch/initial_state';
|
||||||
import ready from 'flavours/glitch/ready';
|
import ready from 'flavours/glitch/ready';
|
||||||
|
|
||||||
const perf = require('flavours/glitch/performance');
|
const perf = require('flavours/glitch/performance');
|
||||||
|
@ -19,23 +20,19 @@ function main() {
|
||||||
ReactDOM.render(<Mastodon {...props} />, mountNode);
|
ReactDOM.render(<Mastodon {...props} />, mountNode);
|
||||||
store.dispatch(setupBrowserNotifications());
|
store.dispatch(setupBrowserNotifications());
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
|
if (process.env.NODE_ENV === 'production' && me && 'serviceWorker' in navigator) {
|
||||||
const [{ Workbox }, { me }] = await Promise.all([
|
const { Workbox } = await import('workbox-window');
|
||||||
import('workbox-window'),
|
|
||||||
import('flavours/glitch/initial_state'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
const wb = new Workbox('/sw.js');
|
const wb = new Workbox('/sw.js');
|
||||||
|
/** @type {ServiceWorkerRegistration} */
|
||||||
|
let registration;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await wb.register();
|
registration = await wb.register();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me) {
|
if (registration) {
|
||||||
const registerPushNotifications = await import('flavours/glitch/actions/push_notifications');
|
const registerPushNotifications = await import('flavours/glitch/actions/push_notifications');
|
||||||
|
|
||||||
store.dispatch(registerPushNotifications.register());
|
store.dispatch(registerPushNotifications.register());
|
||||||
|
|
|
@ -223,7 +223,7 @@ function appendMedia(state, media, file) {
|
||||||
if (media.get('type') === 'image') {
|
if (media.get('type') === 'image') {
|
||||||
media = media.set('file', file);
|
media = media.set('file', file);
|
||||||
}
|
}
|
||||||
map.update('media_attachments', list => list.push(media));
|
map.update('media_attachments', list => list.push(media.set('unattached', true)));
|
||||||
map.set('is_uploading', false);
|
map.set('is_uploading', false);
|
||||||
map.set('is_processing', false);
|
map.set('is_processing', false);
|
||||||
map.set('resetFileKey', Math.floor((Math.random() * 0x10000)));
|
map.set('resetFileKey', Math.floor((Math.random() * 0x10000)));
|
||||||
|
@ -548,7 +548,7 @@ export default function compose(state = initialState, action) {
|
||||||
.setIn(['media_modal', 'dirty'], false)
|
.setIn(['media_modal', 'dirty'], false)
|
||||||
.update('media_attachments', list => list.map(item => {
|
.update('media_attachments', list => list.map(item => {
|
||||||
if (item.get('id') === action.media.id) {
|
if (item.get('id') === action.media.id) {
|
||||||
return fromJS(action.media);
|
return fromJS(action.media).set('unattached', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
|
@ -564,7 +564,7 @@ export default function compose(state = initialState, action) {
|
||||||
map.set('content_type', action.content_type || 'text/plain');
|
map.set('content_type', action.content_type || 'text/plain');
|
||||||
map.set('in_reply_to', action.status.get('in_reply_to_id'));
|
map.set('in_reply_to', action.status.get('in_reply_to_id'));
|
||||||
map.set('privacy', action.status.get('visibility'));
|
map.set('privacy', action.status.get('visibility'));
|
||||||
map.set('media_attachments', action.status.get('media_attachments'));
|
map.set('media_attachments', action.status.get('media_attachments').map((media) => media.set('unattached', true)));
|
||||||
map.set('focusDate', new Date());
|
map.set('focusDate', new Date());
|
||||||
map.set('caretPosition', null);
|
map.set('caretPosition', null);
|
||||||
map.set('idempotencyKey', uuid());
|
map.set('idempotencyKey', uuid());
|
||||||
|
|
|
@ -204,7 +204,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.account-role,
|
.account-role,
|
||||||
.simple_form .recommended {
|
.simple_form .recommended,
|
||||||
|
.simple_form .not_recommended,
|
||||||
|
.simple_form .glitch_only {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px 6px;
|
padding: 4px 6px;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
|
@ -229,6 +231,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.simple_form .not_recommended {
|
||||||
|
color: lighten($error-red, 12%);
|
||||||
|
background-color: rgba(lighten($error-red, 12%), 0.1);
|
||||||
|
border-color: rgba(lighten($error-red, 12%), 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.simple_form .glitch_only {
|
||||||
|
color: lighten($warning-red, 12%);
|
||||||
|
background-color: rgba(lighten($warning-red, 12%), 0.1);
|
||||||
|
border-color: rgba(lighten($warning-red, 12%), 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
.account__header__fields {
|
.account__header__fields {
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
|
@ -247,28 +247,45 @@
|
||||||
|
|
||||||
&__domain-blocks {
|
&__domain-blocks {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
width: 100%;
|
background: darken($ui-base-color, 4%);
|
||||||
border-collapse: collapse;
|
border: 1px solid lighten($ui-base-color, 4%);
|
||||||
break-inside: auto;
|
border-radius: 4px;
|
||||||
|
|
||||||
th {
|
&__domain {
|
||||||
text-align: left;
|
border-bottom: 1px solid lighten($ui-base-color, 4%);
|
||||||
font-weight: 500;
|
padding: 10px;
|
||||||
|
font-size: 15px;
|
||||||
color: $darker-text-color;
|
color: $darker-text-color;
|
||||||
}
|
|
||||||
|
|
||||||
thead tr,
|
&:nth-child(2n) {
|
||||||
tbody tr {
|
background: darken($ui-base-color, 2%);
|
||||||
border-bottom: 1px solid lighten($ui-base-color, 8%);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tbody tr:last-child {
|
&:last-child {
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
th,
|
&__header {
|
||||||
td {
|
display: flex;
|
||||||
padding: 8px;
|
gap: 10px;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
color: $secondary-text-color;
|
||||||
|
font-size: inherit;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -535,8 +535,11 @@
|
||||||
&__tabs {
|
&__tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
justify-content: space-between;
|
||||||
padding: 7px 10px;
|
padding: 7px 10px;
|
||||||
margin-top: -55px;
|
margin-top: -55px;
|
||||||
|
gap: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
&__buttons {
|
&__buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -545,6 +548,15 @@
|
||||||
padding-top: 55px;
|
padding-top: 55px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
.button {
|
||||||
|
flex-shrink: 1;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
@media screen and (max-width: $no-gap-breakpoint) {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.icon-button {
|
.icon-button {
|
||||||
border: 1px solid lighten($ui-base-color, 12%);
|
border: 1px solid lighten($ui-base-color, 12%);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
|
@ -103,7 +103,9 @@ code {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommended {
|
.recommended,
|
||||||
|
.not_recommended,
|
||||||
|
.glitch_only {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
margin-top: -2px;
|
margin-top: -2px;
|
||||||
|
@ -1058,11 +1060,18 @@ code {
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only remove padding when listing applications, to prevent styling issues on
|
||||||
|
// the Authorization page.
|
||||||
|
.applications-list {
|
||||||
|
.permissions-list__item:last-child {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.keywords-table {
|
.keywords-table {
|
||||||
thead {
|
thead {
|
||||||
th {
|
th {
|
||||||
|
|
|
@ -203,7 +203,8 @@ html {
|
||||||
// Change the colors used in compose-form
|
// Change the colors used in compose-form
|
||||||
.compose-form {
|
.compose-form {
|
||||||
.compose-form__modifiers {
|
.compose-form__modifiers {
|
||||||
.compose-form__upload__actions .icon-button {
|
.compose-form__upload__actions .icon-button,
|
||||||
|
.compose-form__upload__warning .icon-button {
|
||||||
color: lighten($white, 7%);
|
color: lighten($white, 7%);
|
||||||
|
|
||||||
&:active,
|
&:active,
|
||||||
|
@ -212,14 +213,6 @@ html {
|
||||||
color: $white;
|
color: $white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.compose-form__upload-description input {
|
|
||||||
color: lighten($white, 7%);
|
|
||||||
|
|
||||||
&::placeholder {
|
|
||||||
color: lighten($white, 7%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.compose-form__buttons-wrapper {
|
.compose-form__buttons-wrapper {
|
||||||
|
|
|
@ -178,6 +178,9 @@ a.table-action-link {
|
||||||
}
|
}
|
||||||
|
|
||||||
&__toolbar {
|
&__toolbar {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1;
|
||||||
border: 1px solid darken($ui-base-color, 8%);
|
border: 1px solid darken($ui-base-color, 8%);
|
||||||
background: $ui-base-color;
|
background: $ui-base-color;
|
||||||
border-radius: 4px 0 0;
|
border-radius: 4px 0 0;
|
||||||
|
|
1
app/javascript/images/logo_full.svg
Normal file
1
app/javascript/images/logo_full.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.6 KiB |
1
app/javascript/images/logo_transparent.svg
Normal file
1
app/javascript/images/logo_transparent.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"><symbol id="mastodon-svg-logo" viewBox="0 0 216.4144 232.00976"><path d="M107.86523 0C78.203984.2425 49.672422 3.4535937 33.044922 11.089844c0 0-32.97656262 14.752031-32.97656262 65.082031 0 11.525-.224375 25.306175.140625 39.919925 1.19750002 49.22 9.02375002 97.72843 54.53124962 109.77343 20.9825 5.55375 38.99711 6.71547 53.505856 5.91797 26.31125-1.45875 41.08203-9.38867 41.08203-9.38867l-.86914-19.08984s-18.80171 5.92758-39.91796 5.20508c-20.921254-.7175-43.006879-2.25516-46.390629-27.94141-.3125-2.25625-.46875-4.66938-.46875-7.20313 0 0 20.536953 5.0204 46.564449 6.21289 15.915.73001 30.8393-.93343 45.99805-2.74218 29.07-3.47125 54.38125-21.3818 57.5625-37.74805 5.0125-25.78125 4.59961-62.916015 4.59961-62.916015 0-50.33-32.97461-65.082031-32.97461-65.082031C166.80539 3.4535938 138.255.2425 108.59375 0h-.72852zM74.296875 39.326172c12.355 0 21.710234 4.749297 27.896485 14.248047l6.01367 10.080078 6.01563-10.080078c6.185-9.49875 15.54023-14.248047 27.89648-14.248047 10.6775 0 19.28156 3.753672 25.85156 11.076172 6.36875 7.3225 9.53907 17.218828 9.53907 29.673828v60.941408h-24.14454V81.869141c0-12.46875-5.24453-18.798829-15.73828-18.798829-11.6025 0-17.41797 7.508516-17.41797 22.353516v32.375002H96.207031V85.423828c0-14.845-5.815468-22.353515-17.417969-22.353516-10.49375 0-15.740234 6.330079-15.740234 18.798829v59.148439H38.904297V80.076172c0-12.455 3.171016-22.351328 9.541015-29.673828 6.568751-7.3225 15.172813-11.076172 25.851563-11.076172z" /></symbol></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -43,7 +43,7 @@ export const fetchFilters = () => (dispatch, getState) => {
|
||||||
export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
|
export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
|
||||||
dispatch(createFilterStatusRequest());
|
dispatch(createFilterStatusRequest());
|
||||||
|
|
||||||
api(getState).post(`/api/v1/filters/${params.filter_id}/statuses`, params).then(response => {
|
api(getState).post(`/api/v2/filters/${params.filter_id}/statuses`, params).then(response => {
|
||||||
dispatch(createFilterStatusSuccess(response.data));
|
dispatch(createFilterStatusSuccess(response.data));
|
||||||
if (onSuccess) onSuccess();
|
if (onSuccess) onSuccess();
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
|
|
@ -3,13 +3,13 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import Avatar from './avatar';
|
import Avatar from './avatar';
|
||||||
import DisplayName from './display_name';
|
import DisplayName from './display_name';
|
||||||
import Permalink from './permalink';
|
|
||||||
import IconButton from './icon_button';
|
import IconButton from './icon_button';
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
import { me } from '../initial_state';
|
import { me } from '../initial_state';
|
||||||
import RelativeTimestamp from './relative_timestamp';
|
import RelativeTimestamp from './relative_timestamp';
|
||||||
import Skeleton from 'mastodon/components/skeleton';
|
import Skeleton from 'mastodon/components/skeleton';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
||||||
|
@ -140,11 +140,11 @@ class Account extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account'>
|
<div className='account'>
|
||||||
<div className='account__wrapper'>
|
<div className='account__wrapper'>
|
||||||
<Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
|
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||||
<div className='account__avatar-wrapper'><Avatar account={account} size={size} /></div>
|
<div className='account__avatar-wrapper'><Avatar account={account} size={size} /></div>
|
||||||
{mute_expires_at}
|
{mute_expires_at}
|
||||||
<DisplayName account={account} />
|
<DisplayName account={account} />
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<div className='account__relationship'>
|
<div className='account__relationship'>
|
||||||
{buttons}
|
{buttons}
|
||||||
|
|
|
@ -50,7 +50,7 @@ export default class Trends extends React.PureComponent {
|
||||||
<Hashtag
|
<Hashtag
|
||||||
key={hashtag.name}
|
key={hashtag.name}
|
||||||
name={hashtag.name}
|
name={hashtag.name}
|
||||||
href={`/admin/tags/${hashtag.id}`}
|
to={`/admin/tags/${hashtag.id}`}
|
||||||
people={hashtag.history[0].accounts * 1 + hashtag.history[1].accounts * 1}
|
people={hashtag.history[0].accounts * 1 + hashtag.history[1].accounts * 1}
|
||||||
uses={hashtag.history[0].uses * 1 + hashtag.history[1].uses * 1}
|
uses={hashtag.history[0].uses * 1 + hashtag.history[1].uses * 1}
|
||||||
history={hashtag.history.reverse().map(day => day.uses)}
|
history={hashtag.history.reverse().map(day => day.uses)}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import Permalink from './permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import ShortNumber from 'mastodon/components/short_number';
|
import ShortNumber from 'mastodon/components/short_number';
|
||||||
import Skeleton from 'mastodon/components/skeleton';
|
import Skeleton from 'mastodon/components/skeleton';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
@ -53,7 +53,6 @@ export const accountsCountRenderer = (displayNumber, pluralReady) => (
|
||||||
export const ImmutableHashtag = ({ hashtag }) => (
|
export const ImmutableHashtag = ({ hashtag }) => (
|
||||||
<Hashtag
|
<Hashtag
|
||||||
name={hashtag.get('name')}
|
name={hashtag.get('name')}
|
||||||
href={hashtag.get('url')}
|
|
||||||
to={`/tags/${hashtag.get('name')}`}
|
to={`/tags/${hashtag.get('name')}`}
|
||||||
people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1}
|
people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1}
|
||||||
history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()}
|
history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()}
|
||||||
|
@ -64,12 +63,12 @@ ImmutableHashtag.propTypes = {
|
||||||
hashtag: ImmutablePropTypes.map.isRequired,
|
hashtag: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Hashtag = ({ name, href, to, people, uses, history, className, description, withGraph }) => (
|
const Hashtag = ({ name, to, people, uses, history, className, description, withGraph }) => (
|
||||||
<div className={classNames('trends__item', className)}>
|
<div className={classNames('trends__item', className)}>
|
||||||
<div className='trends__item__name'>
|
<div className='trends__item__name'>
|
||||||
<Permalink href={href} to={to}>
|
<Link to={to}>
|
||||||
{name ? <React.Fragment>#<span>{name}</span></React.Fragment> : <Skeleton width={50} />}
|
{name ? <React.Fragment>#<span>{name}</span></React.Fragment> : <Skeleton width={50} />}
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
{description ? (
|
{description ? (
|
||||||
<span>{description}</span>
|
<span>{description}</span>
|
||||||
|
@ -98,7 +97,6 @@ const Hashtag = ({ name, href, to, people, uses, history, className, description
|
||||||
|
|
||||||
Hashtag.propTypes = {
|
Hashtag.propTypes = {
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
href: PropTypes.string,
|
|
||||||
to: PropTypes.string,
|
to: PropTypes.string,
|
||||||
people: PropTypes.number,
|
people: PropTypes.number,
|
||||||
description: PropTypes.node,
|
description: PropTypes.node,
|
||||||
|
|
|
@ -14,7 +14,7 @@ export default class Icon extends React.PureComponent {
|
||||||
const { id, className, fixedWidth, ...other } = this.props;
|
const { id, className, fixedWidth, ...other } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<i role='img' className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />
|
<i className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
|
|
||||||
export default class Permalink extends React.PureComponent {
|
|
||||||
|
|
||||||
static contextTypes = {
|
|
||||||
router: PropTypes.object,
|
|
||||||
};
|
|
||||||
|
|
||||||
static propTypes = {
|
|
||||||
className: PropTypes.string,
|
|
||||||
href: PropTypes.string.isRequired,
|
|
||||||
to: PropTypes.string.isRequired,
|
|
||||||
children: PropTypes.node,
|
|
||||||
onInterceptClick: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
handleClick = e => {
|
|
||||||
if (this.props.onInterceptClick && this.props.onInterceptClick()) {
|
|
||||||
e.preventDefault();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
|
|
||||||
e.preventDefault();
|
|
||||||
this.context.router.history.push(this.props.to);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
render () {
|
|
||||||
const { href, children, className, onInterceptClick, ...other } = this.props;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<a target='_blank' href={href} onClick={this.handleClick} {...other} className={`permalink${className ? ' ' + className : ''}`}>
|
|
||||||
{children}
|
|
||||||
</a>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -378,7 +378,7 @@ class Status extends ImmutablePureComponent {
|
||||||
prepend = (
|
prepend = (
|
||||||
<div className='status__prepend'>
|
<div className='status__prepend'>
|
||||||
<div className='status__prepend-icon-wrapper'><Icon id='retweet' className='status__prepend-icon' fixedWidth /></div>
|
<div className='status__prepend-icon-wrapper'><Icon id='retweet' className='status__prepend-icon' fixedWidth /></div>
|
||||||
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={status.getIn(['account', 'url'])} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
<FormattedMessage id='status.reblogged_by' defaultMessage='{name} boosted' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -392,7 +392,7 @@ class Status extends ImmutablePureComponent {
|
||||||
prepend = (
|
prepend = (
|
||||||
<div className='status__prepend'>
|
<div className='status__prepend'>
|
||||||
<div className='status__prepend-icon-wrapper'><Icon id='reply' className='status__prepend-icon' fixedWidth /></div>
|
<div className='status__prepend-icon-wrapper'><Icon id='reply' className='status__prepend-icon' fixedWidth /></div>
|
||||||
<FormattedMessage id='status.replied_to' defaultMessage='Replied to {name}' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={status.getIn(['account', 'url'])} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
<FormattedMessage id='status.replied_to' defaultMessage='Replied to {name}' values={{ name: <a onClick={this.handlePrependAccountClick} data-id={status.getIn(['account', 'id'])} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name muted'><bdi><strong dangerouslySetInnerHTML={display_name_html} /></bdi></a> }} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -476,7 +476,7 @@ class Status extends ImmutablePureComponent {
|
||||||
</Bundle>
|
</Bundle>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else if (status.get('spoiler_text').length === 0 && status.get('card')) {
|
} else if (status.get('spoiler_text').length === 0 && status.get('card') && !this.props.muted) {
|
||||||
media = (
|
media = (
|
||||||
<Card
|
<Card
|
||||||
onOpenMedia={this.handleOpenMedia}
|
onOpenMedia={this.handleOpenMedia}
|
||||||
|
@ -511,12 +511,12 @@ class Status extends ImmutablePureComponent {
|
||||||
|
|
||||||
<div className={classNames('status', `status-${status.get('visibility')}`, { 'status-reply': !!status.get('in_reply_to_id'), muted: this.props.muted })} data-id={status.get('id')}>
|
<div className={classNames('status', `status-${status.get('visibility')}`, { 'status-reply': !!status.get('in_reply_to_id'), muted: this.props.muted })} data-id={status.get('id')}>
|
||||||
<div className='status__info'>
|
<div className='status__info'>
|
||||||
<a onClick={this.handleClick} href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
|
<a onClick={this.handleClick} href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
|
||||||
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
|
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
|
||||||
<RelativeTimestamp timestamp={status.get('created_at')} />{status.get('edited_at') && <abbr title={intl.formatMessage(messages.edited, { date: intl.formatDate(status.get('edited_at'), { hour12: false, year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })}> *</abbr>}
|
<RelativeTimestamp timestamp={status.get('created_at')} />{status.get('edited_at') && <abbr title={intl.formatMessage(messages.edited, { date: intl.formatDate(status.get('edited_at'), { hour12: false, year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })}> *</abbr>}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a onClick={this.handleAccountClick} href={status.getIn(['account', 'url'])} title={status.getIn(['account', 'acct'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
|
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} title={status.getIn(['account', 'acct'])} className='status__display-name' target='_blank' rel='noopener noreferrer'>
|
||||||
<div className='status__avatar'>
|
<div className='status__avatar'>
|
||||||
{statusAvatar}
|
{statusAvatar}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,13 +2,13 @@ import React from 'react';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { FormattedMessage, injectIntl } from 'react-intl';
|
import { FormattedMessage, injectIntl } from 'react-intl';
|
||||||
import Permalink from './permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import PollContainer from 'mastodon/containers/poll_container';
|
import PollContainer from 'mastodon/containers/poll_container';
|
||||||
import Icon from 'mastodon/components/icon';
|
import Icon from 'mastodon/components/icon';
|
||||||
import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'mastodon/initial_state';
|
import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'mastodon/initial_state';
|
||||||
|
|
||||||
const MAX_HEIGHT = 642; // 20px * 32 (+ 2px padding at the top)
|
const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top)
|
||||||
|
|
||||||
class TranslateButton extends React.PureComponent {
|
class TranslateButton extends React.PureComponent {
|
||||||
|
|
||||||
|
@ -77,38 +77,45 @@ class StatusContent extends React.PureComponent {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { status, onCollapsedToggle } = this.props;
|
||||||
const links = node.querySelectorAll('a');
|
const links = node.querySelectorAll('a');
|
||||||
|
|
||||||
|
let link, mention;
|
||||||
|
|
||||||
for (var i = 0; i < links.length; ++i) {
|
for (var i = 0; i < links.length; ++i) {
|
||||||
let link = links[i];
|
link = links[i];
|
||||||
|
|
||||||
if (link.classList.contains('status-link')) {
|
if (link.classList.contains('status-link')) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
link.classList.add('status-link');
|
link.classList.add('status-link');
|
||||||
|
|
||||||
let mention = this.props.status.get('mentions').find(item => link.href === item.get('url'));
|
mention = this.props.status.get('mentions').find(item => link.href === item.get('url'));
|
||||||
|
|
||||||
if (mention) {
|
if (mention) {
|
||||||
link.addEventListener('click', this.onMentionClick.bind(this, mention), false);
|
link.addEventListener('click', this.onMentionClick.bind(this, mention), false);
|
||||||
link.setAttribute('title', mention.get('acct'));
|
link.setAttribute('title', mention.get('acct'));
|
||||||
|
link.setAttribute('href', `/@${mention.get('acct')}`);
|
||||||
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
||||||
link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);
|
link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);
|
||||||
|
link.setAttribute('href', `/tags/${link.text.slice(1)}`);
|
||||||
} else {
|
} else {
|
||||||
link.setAttribute('title', link.href);
|
link.setAttribute('title', link.href);
|
||||||
link.classList.add('unhandled-link');
|
link.classList.add('unhandled-link');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.props.status.get('collapsed', null) === null) {
|
if (status.get('collapsed', null) === null && onCollapsedToggle) {
|
||||||
let collapsed =
|
const { collapsable, onClick } = this.props;
|
||||||
this.props.collapsable
|
|
||||||
&& this.props.onClick
|
const collapsed =
|
||||||
|
collapsable
|
||||||
|
&& onClick
|
||||||
&& node.clientHeight > MAX_HEIGHT
|
&& node.clientHeight > MAX_HEIGHT
|
||||||
&& this.props.status.get('spoiler_text').length === 0;
|
&& status.get('spoiler_text').length === 0;
|
||||||
|
|
||||||
if(this.props.onCollapsedToggle) this.props.onCollapsedToggle(collapsed);
|
onCollapsedToggle(collapsed);
|
||||||
|
|
||||||
this.props.status.set('collapsed', collapsed);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,9 +249,9 @@ class StatusContent extends React.PureComponent {
|
||||||
let mentionsPlaceholder = '';
|
let mentionsPlaceholder = '';
|
||||||
|
|
||||||
const mentionLinks = status.get('mentions').map(item => (
|
const mentionLinks = status.get('mentions').map(item => (
|
||||||
<Permalink to={`/@${item.get('acct')}`} href={item.get('url')} key={item.get('id')} className='mention'>
|
<Link to={`/@${item.get('acct')}`} key={item.get('id')} className='mention'>
|
||||||
@<span>{item.get('username')}</span>
|
@<span>{item.get('username')}</span>
|
||||||
</Permalink>
|
</Link>
|
||||||
)).reduce((aggregate, item) => [...aggregate, item, ' '], []);
|
)).reduce((aggregate, item) => [...aggregate, item, ' '], []);
|
||||||
|
|
||||||
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
|
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
|
||||||
|
|
|
@ -183,25 +183,18 @@ class About extends React.PureComponent {
|
||||||
<>
|
<>
|
||||||
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
|
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
|
||||||
|
|
||||||
<table className='about__domain-blocks'>
|
<div className='about__domain-blocks'>
|
||||||
<thead>
|
{domainBlocks.get('items').map(block => (
|
||||||
<tr>
|
<div className='about__domain-blocks__domain' key={block.get('domain')}>
|
||||||
<th><FormattedMessage id='about.domain_blocks.domain' defaultMessage='Domain' /></th>
|
<div className='about__domain-blocks__domain__header'>
|
||||||
<th><FormattedMessage id='about.domain_blocks.severity' defaultMessage='Severity' /></th>
|
<h6><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></h6>
|
||||||
<th><FormattedMessage id='about.domain_blocks.comment' defaultMessage='Reason' /></th>
|
<span className='about__domain-blocks__domain__type' title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span>
|
||||||
</tr>
|
</div>
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
<p>{(block.get('comment') || '').length > 0 ? block.get('comment') : <FormattedMessage id='about.domain_blocks.no_reason_available' defaultMessage='Reason not available' />}</p>
|
||||||
{domainBlocks.get('items').map(block => (
|
</div>
|
||||||
<tr key={block.get('domain')}>
|
))}
|
||||||
<td><span title={`SHA-256: ${block.get('digest')}`}>{block.get('domain')}</span></td>
|
</div>
|
||||||
<td><span title={intl.formatMessage(severityMessages[block.get('severity')].explanation)}>{intl.formatMessage(severityMessages[block.get('severity')].title)}</span></td>
|
|
||||||
<td>{block.get('comment')}</td>
|
|
||||||
</tr>
|
|
||||||
))}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
||||||
|
|
|
@ -39,7 +39,6 @@ class FeaturedTags extends ImmutablePureComponent {
|
||||||
<Hashtag
|
<Hashtag
|
||||||
key={featuredTag.get('name')}
|
key={featuredTag.get('name')}
|
||||||
name={featuredTag.get('name')}
|
name={featuredTag.get('name')}
|
||||||
href={featuredTag.get('url')}
|
|
||||||
to={`/@${account.get('acct')}/tagged/${featuredTag.get('name')}`}
|
to={`/@${account.get('acct')}/tagged/${featuredTag.get('name')}`}
|
||||||
uses={featuredTag.get('statuses_count') * 1}
|
uses={featuredTag.get('statuses_count') * 1}
|
||||||
withGraph={false}
|
withGraph={false}
|
||||||
|
|
|
@ -314,8 +314,6 @@ class Header extends ImmutablePureComponent {
|
||||||
<Avatar account={suspended || hidden ? undefined : account} size={90} />
|
<Avatar account={suspended || hidden ? undefined : account} size={90} />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div className='spacer' />
|
|
||||||
|
|
||||||
{!suspended && (
|
{!suspended && (
|
||||||
<div className='account__header__tabs__buttons'>
|
<div className='account__header__tabs__buttons'>
|
||||||
{!hidden && (
|
{!hidden && (
|
||||||
|
|
|
@ -129,7 +129,7 @@ export default class MediaItem extends ImmutablePureComponent {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='account-gallery__item' style={{ width, height }}>
|
<div className='account-gallery__item' style={{ width, height }}>
|
||||||
<a className='media-gallery__item-thumbnail' href={status.get('url')} onClick={this.handleClick} title={title} target='_blank' rel='noopener noreferrer'>
|
<a className='media-gallery__item-thumbnail' href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} onClick={this.handleClick} title={title} target='_blank' rel='noopener noreferrer'>
|
||||||
<Blurhash
|
<Blurhash
|
||||||
hash={attachment.get('blurhash')}
|
hash={attachment.get('blurhash')}
|
||||||
className={classNames('media-gallery__preview', { 'media-gallery__preview--hidden': visible && loaded })}
|
className={classNames('media-gallery__preview', { 'media-gallery__preview--hidden': visible && loaded })}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { FormattedMessage } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
import AvatarOverlay from '../../../components/avatar_overlay';
|
import AvatarOverlay from '../../../components/avatar_overlay';
|
||||||
import DisplayName from '../../../components/display_name';
|
import DisplayName from '../../../components/display_name';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
export default class MovedNote extends ImmutablePureComponent {
|
export default class MovedNote extends ImmutablePureComponent {
|
||||||
|
|
||||||
|
@ -23,12 +23,12 @@ export default class MovedNote extends ImmutablePureComponent {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='moved-account-banner__action'>
|
<div className='moved-account-banner__action'>
|
||||||
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
|
<Link to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
|
||||||
<div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div>
|
<div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div>
|
||||||
<DisplayName account={to} />
|
<DisplayName account={to} />
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='button'><FormattedMessage id='account.go_to_profile' defaultMessage='Go to profile' /></Permalink>
|
<Link to={`/@${to.get('acct')}`} className='button'><FormattedMessage id='account.go_to_profile' defaultMessage='Go to profile' /></Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import ActionBar from './action_bar';
|
import ActionBar from './action_bar';
|
||||||
import Avatar from '../../../components/avatar';
|
import Avatar from '../../../components/avatar';
|
||||||
import Permalink from '../../../components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import IconButton from '../../../components/icon_button';
|
import IconButton from '../../../components/icon_button';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
@ -19,15 +19,15 @@ export default class NavigationBar extends ImmutablePureComponent {
|
||||||
render () {
|
render () {
|
||||||
return (
|
return (
|
||||||
<div className='navigation-bar'>
|
<div className='navigation-bar'>
|
||||||
<Permalink href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
|
<Link to={`/@${this.props.account.get('acct')}`}>
|
||||||
<span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>
|
<span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>
|
||||||
<Avatar account={this.props.account} size={46} />
|
<Avatar account={this.props.account} size={46} />
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<div className='navigation-bar__profile'>
|
<div className='navigation-bar__profile'>
|
||||||
<Permalink href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
|
<Link to={`/@${this.props.account.get('acct')}`}>
|
||||||
<strong className='navigation-bar__profile-account'>@{this.props.account.get('acct')}</strong>
|
<strong className='navigation-bar__profile-account'>@{this.props.account.get('acct')}</strong>
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<a href='/settings/profile' className='navigation-bar__profile-edit'><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
|
<a href='/settings/profile' className='navigation-bar__profile-edit'><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,7 +50,7 @@ class ReplyIndicator extends ImmutablePureComponent {
|
||||||
<div className='reply-indicator__header'>
|
<div className='reply-indicator__header'>
|
||||||
<div className='reply-indicator__cancel'><IconButton title={intl.formatMessage(messages.cancel)} icon='times' onClick={this.handleClick} inverted /></div>
|
<div className='reply-indicator__cancel'><IconButton title={intl.formatMessage(messages.cancel)} icon='times' onClick={this.handleClick} inverted /></div>
|
||||||
|
|
||||||
<a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='reply-indicator__display-name'>
|
<a href={`/@${status.getIn(['account', 'acct'])}`} onClick={this.handleAccountClick} className='reply-indicator__display-name'>
|
||||||
<div className='reply-indicator__display-avatar'><Avatar account={status.get('account')} size={24} /></div>
|
<div className='reply-indicator__display-avatar'><Avatar account={status.get('account')} size={24} /></div>
|
||||||
<DisplayName account={status.get('account')} />
|
<DisplayName account={status.get('account')} />
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -17,7 +17,6 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
media: ImmutablePropTypes.map.isRequired,
|
media: ImmutablePropTypes.map.isRequired,
|
||||||
onUndo: PropTypes.func.isRequired,
|
onUndo: PropTypes.func.isRequired,
|
||||||
onOpenFocalPoint: PropTypes.func.isRequired,
|
onOpenFocalPoint: PropTypes.func.isRequired,
|
||||||
isEditingStatus: PropTypes.bool.isRequired,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
handleUndoClick = e => {
|
handleUndoClick = e => {
|
||||||
|
@ -31,7 +30,7 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { media, isEditingStatus } = this.props;
|
const { media } = this.props;
|
||||||
const focusX = media.getIn(['meta', 'focus', 'x']);
|
const focusX = media.getIn(['meta', 'focus', 'x']);
|
||||||
const focusY = media.getIn(['meta', 'focus', 'y']);
|
const focusY = media.getIn(['meta', 'focus', 'y']);
|
||||||
const x = ((focusX / 2) + .5) * 100;
|
const x = ((focusX / 2) + .5) * 100;
|
||||||
|
@ -44,10 +43,10 @@ export default class Upload extends ImmutablePureComponent {
|
||||||
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
|
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
|
||||||
<div className='compose-form__upload__actions'>
|
<div className='compose-form__upload__actions'>
|
||||||
<button type='button' className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
|
<button type='button' className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
|
||||||
{!isEditingStatus && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
|
{!!media.get('unattached') && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{(media.get('description') || '').length === 0 && (
|
{(media.get('description') || '').length === 0 && !!media.get('unattached') && (
|
||||||
<div className='compose-form__upload__warning'>
|
<div className='compose-form__upload__warning'>
|
||||||
<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
|
<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { submitCompose } from '../../../actions/compose';
|
||||||
|
|
||||||
const mapStateToProps = (state, { id }) => ({
|
const mapStateToProps = (state, { id }) => ({
|
||||||
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
|
media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),
|
||||||
isEditingStatus: state.getIn(['compose', 'id']) !== null,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
|
@ -7,7 +7,7 @@ import AttachmentList from 'mastodon/components/attachment_list';
|
||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
|
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
|
||||||
import AvatarComposite from 'mastodon/components/avatar_composite';
|
import AvatarComposite from 'mastodon/components/avatar_composite';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import IconButton from 'mastodon/components/icon_button';
|
import IconButton from 'mastodon/components/icon_button';
|
||||||
import RelativeTimestamp from 'mastodon/components/relative_timestamp';
|
import RelativeTimestamp from 'mastodon/components/relative_timestamp';
|
||||||
import { HotKeys } from 'react-hotkeys';
|
import { HotKeys } from 'react-hotkeys';
|
||||||
|
@ -133,7 +133,7 @@ class Conversation extends ImmutablePureComponent {
|
||||||
|
|
||||||
menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDelete });
|
menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDelete });
|
||||||
|
|
||||||
const names = accounts.map(a => <Permalink to={`/@${a.get('acct')}`} href={a.get('url')} key={a.get('id')} title={a.get('acct')}><bdi><strong className='display-name__html' dangerouslySetInnerHTML={{ __html: a.get('display_name_html') }} /></bdi></Permalink>).reduce((prev, cur) => [prev, ', ', cur]);
|
const names = accounts.map(a => <Link to={`/@${a.get('acct')}`} key={a.get('id')} title={a.get('acct')}><bdi><strong className='display-name__html' dangerouslySetInnerHTML={{ __html: a.get('display_name_html') }} /></bdi></Link>).reduce((prev, cur) => [prev, ', ', cur]);
|
||||||
|
|
||||||
const handlers = {
|
const handlers = {
|
||||||
reply: this.handleReply,
|
reply: this.handleReply,
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { connect } from 'react-redux';
|
||||||
import { makeGetAccount } from 'mastodon/selectors';
|
import { makeGetAccount } from 'mastodon/selectors';
|
||||||
import Avatar from 'mastodon/components/avatar';
|
import Avatar from 'mastodon/components/avatar';
|
||||||
import DisplayName from 'mastodon/components/display_name';
|
import DisplayName from 'mastodon/components/display_name';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import Button from 'mastodon/components/button';
|
import Button from 'mastodon/components/button';
|
||||||
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
||||||
import { autoPlayGif, me, unfollowModal } from 'mastodon/initial_state';
|
import { autoPlayGif, me, unfollowModal } from 'mastodon/initial_state';
|
||||||
|
@ -169,7 +169,7 @@ class AccountCard extends ImmutablePureComponent {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='account-card'>
|
<div className='account-card'>
|
||||||
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} className='account-card__permalink'>
|
<Link to={`/@${account.get('acct')}`} className='account-card__permalink'>
|
||||||
<div className='account-card__header'>
|
<div className='account-card__header'>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
|
@ -183,7 +183,7 @@ class AccountCard extends ImmutablePureComponent {
|
||||||
<div className='account-card__title__avatar'><Avatar account={account} size={56} /></div>
|
<div className='account-card__title__avatar'><Avatar account={account} size={56} /></div>
|
||||||
<DisplayName account={account} />
|
<DisplayName account={account} />
|
||||||
</div>
|
</div>
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
{account.get('note').length > 0 && (
|
{account.get('note').length > 0 && (
|
||||||
<div
|
<div
|
||||||
|
|
|
@ -11,8 +11,8 @@ describe('emoji', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('works with unclosed tags', () => {
|
it('works with unclosed tags', () => {
|
||||||
expect(emojify('hello>')).toEqual('hello>');
|
expect(emojify('hello>')).toEqual('hello>');
|
||||||
expect(emojify('<hello')).toEqual('<hello');
|
expect(emojify('<hello')).toEqual('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('works with unclosed shortcodes', () => {
|
it('works with unclosed shortcodes', () => {
|
||||||
|
@ -22,23 +22,23 @@ describe('emoji', () => {
|
||||||
|
|
||||||
it('does unicode', () => {
|
it('does unicode', () => {
|
||||||
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual(
|
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="👩👩👦👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg" />');
|
'<img draggable="false" class="emojione" alt="👩👩👦👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg">');
|
||||||
expect(emojify('👨👩👧👧')).toEqual(
|
expect(emojify('👨👩👧👧')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="👨👩👧👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg" />');
|
'<img draggable="false" class="emojione" alt="👨👩👧👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg">');
|
||||||
expect(emojify('👩👩👦')).toEqual('<img draggable="false" class="emojione" alt="👩👩👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg" />');
|
expect(emojify('👩👩👦')).toEqual('<img draggable="false" class="emojione" alt="👩👩👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg">');
|
||||||
expect(emojify('\u2757')).toEqual(
|
expect(emojify('\u2757')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" />');
|
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does multiple unicode', () => {
|
it('does multiple unicode', () => {
|
||||||
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual(
|
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" />');
|
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
|
||||||
expect(emojify('\u2757#\uFE0F\u20E3')).toEqual(
|
expect(emojify('\u2757#\uFE0F\u20E3')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" />');
|
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
|
||||||
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual(
|
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual(
|
||||||
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" /> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" />');
|
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
|
||||||
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual(
|
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual(
|
||||||
'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg" /> bar');
|
'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> bar');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('ignores unicode inside of tags', () => {
|
it('ignores unicode inside of tags', () => {
|
||||||
|
@ -46,16 +46,16 @@ describe('emoji', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does multiple emoji properly (issue 5188)', () => {
|
it('does multiple emoji properly (issue 5188)', () => {
|
||||||
expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg" /><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg" /><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg" />');
|
expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
|
||||||
expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg" /> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg" /> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg" />');
|
expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does an emoji that has no shortcode', () => {
|
it('does an emoji that has no shortcode', () => {
|
||||||
expect(emojify('👁🗨')).toEqual('<img draggable="false" class="emojione" alt="👁🗨" title="" src="/emoji/1f441-200d-1f5e8.svg" />');
|
expect(emojify('👁🗨')).toEqual('<img draggable="false" class="emojione" alt="👁🗨" title="" src="/emoji/1f441-200d-1f5e8.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does an emoji whose filename is irregular', () => {
|
it('does an emoji whose filename is irregular', () => {
|
||||||
expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg" />');
|
expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('avoid emojifying on invisible text', () => {
|
it('avoid emojifying on invisible text', () => {
|
||||||
|
@ -67,26 +67,26 @@ describe('emoji', () => {
|
||||||
|
|
||||||
it('avoid emojifying on invisible text with nested tags', () => {
|
it('avoid emojifying on invisible text with nested tags', () => {
|
||||||
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇'))
|
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇'))
|
||||||
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
|
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
|
||||||
expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇'))
|
expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇'))
|
||||||
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
|
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
|
||||||
expect(emojify('<span class="invisible">😄<br/>😴</span>😇'))
|
expect(emojify('<span class="invisible">😄<br>😴</span>😇'))
|
||||||
.toEqual('<span class="invisible">😄<br/>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg" />');
|
.toEqual('<span class="invisible">😄<br>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('skips the textual presentation VS15 character', () => {
|
it('skips the textual presentation VS15 character', () => {
|
||||||
expect(emojify('✴︎')) // This is U+2734 EIGHT POINTED BLACK STAR then U+FE0E VARIATION SELECTOR-15
|
expect(emojify('✴︎')) // This is U+2734 EIGHT POINTED BLACK STAR then U+FE0E VARIATION SELECTOR-15
|
||||||
.toEqual('<img draggable="false" class="emojione" alt="✴" title=":eight_pointed_black_star:" src="/emoji/2734_border.svg" />');
|
.toEqual('<img draggable="false" class="emojione" alt="✴" title=":eight_pointed_black_star:" src="/emoji/2734_border.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does an simple emoji properly', () => {
|
it('does an simple emoji properly', () => {
|
||||||
expect(emojify('♀♂'))
|
expect(emojify('♀♂'))
|
||||||
.toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg" /><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg" />');
|
.toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg">');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does an emoji containing ZWJ properly', () => {
|
it('does an emoji containing ZWJ properly', () => {
|
||||||
expect(emojify('💂♀️💂♂️'))
|
expect(emojify('💂♀️💂♂️'))
|
||||||
.toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀️" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg" /><img draggable="false" class="emojione" alt="💂\u200D♂️" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg" />');
|
.toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀️" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"><img draggable="false" class="emojione" alt="💂\u200D♂️" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg">');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,15 +19,26 @@ const emojiFilename = (filename) => {
|
||||||
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
|
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
const emojify = (str, customEmojis = {}) => {
|
const domParser = new DOMParser();
|
||||||
const tagCharsWithoutEmojis = '<&';
|
|
||||||
const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';
|
const emojifyTextNode = (node, customEmojis) => {
|
||||||
let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;
|
let str = node.textContent;
|
||||||
|
|
||||||
|
const fragment = new DocumentFragment();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
let match, i = 0, tag;
|
let match, i = 0;
|
||||||
while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || !(match = trie.search(str.slice(i))))) {
|
|
||||||
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
if (customEmojis === null) {
|
||||||
|
while (i < str.length && !(match = trie.search(str.slice(i)))) {
|
||||||
|
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (i < str.length && str[i] !== ':' && !(match = trie.search(str.slice(i)))) {
|
||||||
|
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let rend, replacement = '';
|
let rend, replacement = '';
|
||||||
if (i === str.length) {
|
if (i === str.length) {
|
||||||
break;
|
break;
|
||||||
|
@ -35,8 +46,6 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
if (!(() => {
|
if (!(() => {
|
||||||
rend = str.indexOf(':', i + 1) + 1;
|
rend = str.indexOf(':', i + 1) + 1;
|
||||||
if (!rend) return false; // no pair of ':'
|
if (!rend) return false; // no pair of ':'
|
||||||
const lt = str.indexOf('<', i + 1);
|
|
||||||
if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'
|
|
||||||
const shortname = str.slice(i, rend);
|
const shortname = str.slice(i, rend);
|
||||||
// now got a replacee as ':shortname:'
|
// now got a replacee as ':shortname:'
|
||||||
// if you want additional emoji handler, add statements below which set replacement and return true.
|
// if you want additional emoji handler, add statements below which set replacement and return true.
|
||||||
|
@ -47,29 +56,6 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
})()) rend = ++i;
|
})()) rend = ++i;
|
||||||
} else if (tag >= 0) { // <, &
|
|
||||||
rend = str.indexOf('>;'[tag], i + 1) + 1;
|
|
||||||
if (!rend) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (tag === 0) {
|
|
||||||
if (invisible) {
|
|
||||||
if (str[i + 1] === '/') { // closing tag
|
|
||||||
if (!--invisible) {
|
|
||||||
tagChars = tagCharsWithEmojis;
|
|
||||||
}
|
|
||||||
} else if (str[rend - 2] !== '/') { // opening tag
|
|
||||||
invisible++;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (str.startsWith('<span class="invisible">', i)) {
|
|
||||||
// avoid emojifying on invisible text
|
|
||||||
invisible = 1;
|
|
||||||
tagChars = tagCharsWithoutEmojis;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i = rend;
|
|
||||||
} else { // matched to unicode emoji
|
} else { // matched to unicode emoji
|
||||||
const { filename, shortCode } = unicodeMapping[match];
|
const { filename, shortCode } = unicodeMapping[match];
|
||||||
const title = shortCode ? `:${shortCode}:` : '';
|
const title = shortCode ? `:${shortCode}:` : '';
|
||||||
|
@ -80,10 +66,43 @@ const emojify = (str, customEmojis = {}) => {
|
||||||
rend += 1;
|
rend += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rtn += str.slice(0, i) + replacement;
|
|
||||||
|
fragment.append(document.createTextNode(str.slice(0, i)));
|
||||||
|
if (replacement) {
|
||||||
|
fragment.append(domParser.parseFromString(replacement, 'text/html').documentElement.getElementsByTagName('img')[0]);
|
||||||
|
}
|
||||||
|
node.textContent = str.slice(0, i);
|
||||||
str = str.slice(rend);
|
str = str.slice(rend);
|
||||||
}
|
}
|
||||||
return rtn + str;
|
|
||||||
|
fragment.append(document.createTextNode(str));
|
||||||
|
node.parentElement.replaceChild(fragment, node);
|
||||||
|
};
|
||||||
|
|
||||||
|
const emojifyNode = (node, customEmojis) => {
|
||||||
|
for (const child of node.childNodes) {
|
||||||
|
switch(child.nodeType) {
|
||||||
|
case Node.TEXT_NODE:
|
||||||
|
emojifyTextNode(child, customEmojis);
|
||||||
|
break;
|
||||||
|
case Node.ELEMENT_NODE:
|
||||||
|
if (!child.classList.contains('invisible'))
|
||||||
|
emojifyNode(child, customEmojis);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const emojify = (str, customEmojis = {}) => {
|
||||||
|
const wrapper = document.createElement('div');
|
||||||
|
wrapper.innerHTML = str;
|
||||||
|
|
||||||
|
if (!Object.keys(customEmojis).length)
|
||||||
|
customEmojis = null;
|
||||||
|
|
||||||
|
emojifyNode(wrapper, customEmojis);
|
||||||
|
|
||||||
|
return wrapper.innerHTML;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default emojify;
|
export default emojify;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { connect } from 'react-redux';
|
||||||
import { makeGetAccount } from 'mastodon/selectors';
|
import { makeGetAccount } from 'mastodon/selectors';
|
||||||
import Avatar from 'mastodon/components/avatar';
|
import Avatar from 'mastodon/components/avatar';
|
||||||
import DisplayName from 'mastodon/components/display_name';
|
import DisplayName from 'mastodon/components/display_name';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import IconButton from 'mastodon/components/icon_button';
|
import IconButton from 'mastodon/components/icon_button';
|
||||||
import { injectIntl, defineMessages } from 'react-intl';
|
import { injectIntl, defineMessages } from 'react-intl';
|
||||||
import { followAccount, unfollowAccount } from 'mastodon/actions/accounts';
|
import { followAccount, unfollowAccount } from 'mastodon/actions/accounts';
|
||||||
|
@ -66,13 +66,13 @@ class Account extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account follow-recommendations-account'>
|
<div className='account follow-recommendations-account'>
|
||||||
<div className='account__wrapper'>
|
<div className='account__wrapper'>
|
||||||
<Permalink className='account__display-name account__display-name--with-note' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
|
<Link className='account__display-name account__display-name--with-note' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||||
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
|
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
|
||||||
|
|
||||||
<DisplayName account={account} />
|
<DisplayName account={account} />
|
||||||
|
|
||||||
<div className='account__note'>{getFirstSentence(account.get('note_plain'))}</div>
|
<div className='account__note'>{getFirstSentence(account.get('note_plain'))}</div>
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<div className='account__relationship'>
|
<div className='account__relationship'>
|
||||||
{button}
|
{button}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import Permalink from '../../../components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import Avatar from '../../../components/avatar';
|
import Avatar from '../../../components/avatar';
|
||||||
import DisplayName from '../../../components/display_name';
|
import DisplayName from '../../../components/display_name';
|
||||||
import IconButton from '../../../components/icon_button';
|
import IconButton from '../../../components/icon_button';
|
||||||
|
@ -30,10 +30,10 @@ class AccountAuthorize extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account-authorize__wrapper'>
|
<div className='account-authorize__wrapper'>
|
||||||
<div className='account-authorize'>
|
<div className='account-authorize'>
|
||||||
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} className='detailed-status__display-name'>
|
<Link to={`/@${account.get('acct')}`} className='detailed-status__display-name'>
|
||||||
<div className='account-authorize__avatar'><Avatar account={account} size={48} /></div>
|
<div className='account-authorize__avatar'><Avatar account={account} size={48} /></div>
|
||||||
<DisplayName account={account} />
|
<DisplayName account={account} />
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<div className='account__header__content translate' dangerouslySetInnerHTML={content} />
|
<div className='account__header__content translate' dangerouslySetInnerHTML={content} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import Avatar from 'mastodon/components/avatar';
|
import Avatar from 'mastodon/components/avatar';
|
||||||
import DisplayName from 'mastodon/components/display_name';
|
import DisplayName from 'mastodon/components/display_name';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import IconButton from 'mastodon/components/icon_button';
|
import IconButton from 'mastodon/components/icon_button';
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
@ -42,10 +42,10 @@ class FollowRequest extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div className='account'>
|
<div className='account'>
|
||||||
<div className='account__wrapper'>
|
<div className='account__wrapper'>
|
||||||
<Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
|
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
|
||||||
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
|
<div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>
|
||||||
<DisplayName account={account} />
|
<DisplayName account={account} />
|
||||||
</Permalink>
|
</Link>
|
||||||
|
|
||||||
<div className='account__relationship'>
|
<div className='account__relationship'>
|
||||||
<IconButton title={intl.formatMessage(messages.authorize)} icon='check' onClick={onAuthorize} />
|
<IconButton title={intl.formatMessage(messages.authorize)} icon='check' onClick={onAuthorize} />
|
||||||
|
|
|
@ -10,7 +10,7 @@ import AccountContainer from 'mastodon/containers/account_container';
|
||||||
import Report from './report';
|
import Report from './report';
|
||||||
import FollowRequestContainer from '../containers/follow_request_container';
|
import FollowRequestContainer from '../containers/follow_request_container';
|
||||||
import Icon from 'mastodon/components/icon';
|
import Icon from 'mastodon/components/icon';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
import { Link } from 'react-router-dom';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
|
@ -378,7 +378,7 @@ class Notification extends ImmutablePureComponent {
|
||||||
|
|
||||||
const targetAccount = report.get('target_account');
|
const targetAccount = report.get('target_account');
|
||||||
const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') };
|
const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') };
|
||||||
const targetLink = <bdi><Permalink className='notification__display-name' href={targetAccount.get('url')} title={targetAccount.get('acct')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
|
const targetLink = <bdi><Link className='notification__display-name' title={targetAccount.get('acct')} to={`/@${targetAccount.get('acct')}`} dangerouslySetInnerHTML={targetDisplayNameHtml} /></bdi>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<HotKeys handlers={this.getHandlers()}>
|
<HotKeys handlers={this.getHandlers()}>
|
||||||
|
@ -403,7 +403,7 @@ class Notification extends ImmutablePureComponent {
|
||||||
const { notification } = this.props;
|
const { notification } = this.props;
|
||||||
const account = notification.get('account');
|
const account = notification.get('account');
|
||||||
const displayNameHtml = { __html: account.get('display_name_html') };
|
const displayNameHtml = { __html: account.get('display_name_html') };
|
||||||
const link = <bdi><Permalink className='notification__display-name' href={account.get('url')} title={account.get('acct')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
|
const link = <bdi><Link className='notification__display-name' href={`/@${account.get('acct')}`} title={account.get('acct')} to={`/@${account.get('acct')}`} dangerouslySetInnerHTML={displayNameHtml} /></bdi>;
|
||||||
|
|
||||||
switch(notification.get('type')) {
|
switch(notification.get('type')) {
|
||||||
case 'follow':
|
case 'follow':
|
||||||
|
|
|
@ -184,7 +184,7 @@ class Footer extends ImmutablePureComponent {
|
||||||
<IconButton className='status__action-bar-button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} counter={status.get('replies_count')} obfuscateCount />
|
<IconButton className='status__action-bar-button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} counter={status.get('replies_count')} obfuscateCount />
|
||||||
<IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
|
<IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
|
||||||
<IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
|
<IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
|
||||||
{withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' onClick={this.handleOpenClick} href={status.get('url')} />}
|
{withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' onClick={this.handleOpenClick} href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} />}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,7 +261,7 @@ class DetailedStatus extends ImmutablePureComponent {
|
||||||
return (
|
return (
|
||||||
<div style={outerStyle}>
|
<div style={outerStyle}>
|
||||||
<div ref={this.setRef} className={classNames('detailed-status', `detailed-status-${status.get('visibility')}`, { compact })}>
|
<div ref={this.setRef} className={classNames('detailed-status', `detailed-status-${status.get('visibility')}`, { compact })}>
|
||||||
<a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='detailed-status__display-name'>
|
<a href={`/@${status.getIn(['account', 'acct'])}`} onClick={this.handleAccountClick} className='detailed-status__display-name'>
|
||||||
<div className='detailed-status__display-avatar'><Avatar account={status.get('account')} size={46} /></div>
|
<div className='detailed-status__display-avatar'><Avatar account={status.get('account')} size={46} /></div>
|
||||||
<DisplayName account={status.get('account')} localDomain={this.props.domain} />
|
<DisplayName account={status.get('account')} localDomain={this.props.domain} />
|
||||||
</a>
|
</a>
|
||||||
|
@ -276,7 +276,7 @@ class DetailedStatus extends ImmutablePureComponent {
|
||||||
{media}
|
{media}
|
||||||
|
|
||||||
<div className='detailed-status__meta'>
|
<div className='detailed-status__meta'>
|
||||||
<a className='detailed-status__datetime' href={status.get('url')} target='_blank' rel='noopener noreferrer'>
|
<a className='detailed-status__datetime' href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} target='_blank' rel='noopener noreferrer'>
|
||||||
<FormattedDate value={new Date(status.get('created_at'))} hour12={false} year='numeric' month='short' day='2-digit' hour='2-digit' minute='2-digit' />
|
<FormattedDate value={new Date(status.get('created_at'))} hour12={false} year='numeric' month='short' day='2-digit' hour='2-digit' minute='2-digit' />
|
||||||
</a>{edited}{visibilityLink}{applicationLink}{reblogLink} · {favouriteLink}
|
</a>{edited}{visibilityLink}{applicationLink}{reblogLink} · {favouriteLink}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -98,12 +98,12 @@ class BoostModal extends ImmutablePureComponent {
|
||||||
<div className='boost-modal__container'>
|
<div className='boost-modal__container'>
|
||||||
<div className={classNames('status', `status-${status.get('visibility')}`, 'light')}>
|
<div className={classNames('status', `status-${status.get('visibility')}`, 'light')}>
|
||||||
<div className='status__info'>
|
<div className='status__info'>
|
||||||
<a href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
|
<a href={`/@${status.getIn(['account', 'acct'])}\/${status.get('id')}`} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
|
||||||
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
|
<span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
|
||||||
<RelativeTimestamp timestamp={status.get('created_at')} />
|
<RelativeTimestamp timestamp={status.get('created_at')} />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a onClick={this.handleAccountClick} href={status.getIn(['account', 'url'])} className='status__display-name'>
|
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} className='status__display-name'>
|
||||||
<div className='status__avatar'>
|
<div className='status__avatar'>
|
||||||
<Avatar account={status.get('account')} size={48} />
|
<Avatar account={status.get('account')} size={48} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,16 +4,15 @@ import { Link, withRouter } from 'react-router-dom';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import { registrationsOpen, me } from 'mastodon/initial_state';
|
import { registrationsOpen, me } from 'mastodon/initial_state';
|
||||||
import Avatar from 'mastodon/components/avatar';
|
import Avatar from 'mastodon/components/avatar';
|
||||||
import Permalink from 'mastodon/components/permalink';
|
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
const Account = connect(state => ({
|
const Account = connect(state => ({
|
||||||
account: state.getIn(['accounts', me]),
|
account: state.getIn(['accounts', me]),
|
||||||
}))(({ account }) => (
|
}))(({ account }) => (
|
||||||
<Permalink href={account.get('url')} to={`/@${account.get('acct')}`} title={account.get('acct')}>
|
<Link to={`/@${account.get('acct')}`} title={account.get('acct')}>
|
||||||
<Avatar account={account} size={35} />
|
<Avatar account={account} size={35} />
|
||||||
</Permalink>
|
</Link>
|
||||||
));
|
));
|
||||||
|
|
||||||
export default @withRouter
|
export default @withRouter
|
||||||
|
|
|
@ -290,7 +290,7 @@ class UI extends React.PureComponent {
|
||||||
this.dragTargets.push(e.target);
|
this.dragTargets.push(e.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore) {
|
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) {
|
||||||
this.setState({ draggingOver: true });
|
this.setState({ draggingOver: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,7 @@ class UI extends React.PureComponent {
|
||||||
this.setState({ draggingOver: false });
|
this.setState({ draggingOver: false });
|
||||||
this.dragTargets = [];
|
this.dragTargets = [];
|
||||||
|
|
||||||
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore) {
|
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) {
|
||||||
this.props.dispatch(uploadCompose(e.dataTransfer.files));
|
this.props.dispatch(uploadCompose(e.dataTransfer.files));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Gemodereerde bedieners",
|
"about.blocks": "Gemodereerde bedieners",
|
||||||
"about.contact": "Kontak:",
|
"about.contact": "Kontak:",
|
||||||
"about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Rede",
|
"about.domain_blocks.no_reason_available": "Rede nie beskikbaar nie",
|
||||||
"about.domain_blocks.domain": "Domein",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Ernstigheid",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Beperk",
|
"about.domain_blocks.silenced.title": "Beperk",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Demp @{name}",
|
"account.mute": "Demp @{name}",
|
||||||
"account.mute_notifications": "Demp kennisgewings van @{name}",
|
"account.mute_notifications": "Demp kennisgewings van @{name}",
|
||||||
"account.muted": "Gedemp",
|
"account.muted": "Gedemp",
|
||||||
|
"account.open_original_page": "Maak oorspronklike blad oop",
|
||||||
"account.posts": "Toots",
|
"account.posts": "Toots",
|
||||||
"account.posts_with_replies": "Toots and replies",
|
"account.posts_with_replies": "Toots and replies",
|
||||||
"account.report": "Rapporteer @{name}",
|
"account.report": "Rapporteer @{name}",
|
||||||
|
@ -70,7 +69,7 @@
|
||||||
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
||||||
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
||||||
"admin.dashboard.retention.average": "Gemiddeld",
|
"admin.dashboard.retention.average": "Gemiddeld",
|
||||||
"admin.dashboard.retention.cohort": "Sign-up month",
|
"admin.dashboard.retention.cohort": "Registrasie-maand",
|
||||||
"admin.dashboard.retention.cohort_size": "Nuwe gebruikers",
|
"admin.dashboard.retention.cohort_size": "Nuwe gebruikers",
|
||||||
"alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
|
"alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
|
||||||
"alert.rate_limited.title": "Tempo-beperk",
|
"alert.rate_limited.title": "Tempo-beperk",
|
||||||
|
@ -168,7 +167,7 @@
|
||||||
"confirmations.mute.message": "Are you sure you want to mute {name}?",
|
"confirmations.mute.message": "Are you sure you want to mute {name}?",
|
||||||
"confirmations.redraft.confirm": "Delete & redraft",
|
"confirmations.redraft.confirm": "Delete & redraft",
|
||||||
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
|
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
|
||||||
"confirmations.reply.confirm": "Reply",
|
"confirmations.reply.confirm": "Reageer",
|
||||||
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
|
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
|
||||||
"confirmations.unfollow.confirm": "Unfollow",
|
"confirmations.unfollow.confirm": "Unfollow",
|
||||||
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
|
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
|
||||||
|
@ -219,14 +218,14 @@
|
||||||
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
|
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
|
||||||
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
|
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
|
||||||
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
|
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
|
||||||
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
|
"empty_column.follow_requests": "Jy het nog geen volg versoeke nie. Wanneer jy een ontvang, sal dit hier vertoon.",
|
||||||
"empty_column.hashtag": "There is nothing in this hashtag yet.",
|
"empty_column.hashtag": "There is nothing in this hashtag yet.",
|
||||||
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
|
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
|
||||||
"empty_column.home.suggestions": "See some suggestions",
|
"empty_column.home.suggestions": "See some suggestions",
|
||||||
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
|
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
|
||||||
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
|
"empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.",
|
||||||
"empty_column.mutes": "You haven't muted any users yet.",
|
"empty_column.mutes": "You haven't muted any users yet.",
|
||||||
"empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
|
"empty_column.notifications": "Jy het nog geen kennisgewings nie. Wanneer ander mense interaksie het met jou, sal dit hier vertoon.",
|
||||||
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
|
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
|
||||||
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
|
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
|
||||||
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
|
"error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
|
||||||
|
@ -258,7 +257,7 @@
|
||||||
"filter_modal.title.status": "Filter a post",
|
"filter_modal.title.status": "Filter a post",
|
||||||
"follow_recommendations.done": "Done",
|
"follow_recommendations.done": "Done",
|
||||||
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
|
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
|
||||||
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
|
"follow_recommendations.lead": "Plasings van persone wie jy volg sal in chronologiese volgorde op jou tuis voer vertoon. Jy kan enige tyd ophou om persone te volg en sal dan nie plasings ontvang nie!",
|
||||||
"follow_request.authorize": "Authorize",
|
"follow_request.authorize": "Authorize",
|
||||||
"follow_request.reject": "Reject",
|
"follow_request.reject": "Reject",
|
||||||
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
||||||
|
@ -290,15 +289,15 @@
|
||||||
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
|
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
|
||||||
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
|
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
|
||||||
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
|
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy reageer op hierdie plasing.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Haak en plak hierdie URL in die soek area van jou gunseling toep of die web blaaier waar jy ingeteken is.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Omdat Mastodon gedesentraliseerd is, kan jy jou bestaande rekening wat by 'n ander Mastodon bediener of versoenbare platform gehuisves is gebruik indien jy nie 'n rekening hier het nie.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
"interaction_modal.title.reblog": "Boost {name}'s post",
|
"interaction_modal.title.reblog": "Boost {name}'s post",
|
||||||
"interaction_modal.title.reply": "Reply to {name}'s post",
|
"interaction_modal.title.reply": "Reageer op {name} se plasing",
|
||||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||||
|
@ -326,7 +325,7 @@
|
||||||
"keyboard_shortcuts.open_media": "to open media",
|
"keyboard_shortcuts.open_media": "to open media",
|
||||||
"keyboard_shortcuts.pinned": "to open pinned toots list",
|
"keyboard_shortcuts.pinned": "to open pinned toots list",
|
||||||
"keyboard_shortcuts.profile": "to open author's profile",
|
"keyboard_shortcuts.profile": "to open author's profile",
|
||||||
"keyboard_shortcuts.reply": "to reply",
|
"keyboard_shortcuts.reply": "Reageer op plasing",
|
||||||
"keyboard_shortcuts.requests": "to open follow requests list",
|
"keyboard_shortcuts.requests": "to open follow requests list",
|
||||||
"keyboard_shortcuts.search": "to focus search",
|
"keyboard_shortcuts.search": "to focus search",
|
||||||
"keyboard_shortcuts.spoilers": "Wys/versteek IW veld",
|
"keyboard_shortcuts.spoilers": "Wys/versteek IW veld",
|
||||||
|
@ -355,7 +354,7 @@
|
||||||
"lists.replies_policy.none": "No one",
|
"lists.replies_policy.none": "No one",
|
||||||
"lists.replies_policy.title": "Show replies to:",
|
"lists.replies_policy.title": "Show replies to:",
|
||||||
"lists.search": "Soek tussen mense wat jy volg",
|
"lists.search": "Soek tussen mense wat jy volg",
|
||||||
"lists.subheading": "Your lists",
|
"lists.subheading": "Jou lyste",
|
||||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||||
"loading_indicator.label": "Loading...",
|
"loading_indicator.label": "Loading...",
|
||||||
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
|
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
|
||||||
|
@ -472,7 +471,7 @@
|
||||||
"relative_time.minutes": "{number}m",
|
"relative_time.minutes": "{number}m",
|
||||||
"relative_time.seconds": "{number}s",
|
"relative_time.seconds": "{number}s",
|
||||||
"relative_time.today": "today",
|
"relative_time.today": "today",
|
||||||
"reply_indicator.cancel": "Cancel",
|
"reply_indicator.cancel": "Kanselleer",
|
||||||
"report.block": "Block",
|
"report.block": "Block",
|
||||||
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
|
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
|
||||||
"report.categories.other": "Other",
|
"report.categories.other": "Other",
|
||||||
|
@ -577,8 +576,8 @@
|
||||||
"status.redraft": "Delete & re-draft",
|
"status.redraft": "Delete & re-draft",
|
||||||
"status.remove_bookmark": "Remove bookmark",
|
"status.remove_bookmark": "Remove bookmark",
|
||||||
"status.replied_to": "Replied to {name}",
|
"status.replied_to": "Replied to {name}",
|
||||||
"status.reply": "Reply",
|
"status.reply": "Reageer",
|
||||||
"status.replyAll": "Reply to thread",
|
"status.replyAll": "Reageer in garing",
|
||||||
"status.report": "Report @{name}",
|
"status.report": "Report @{name}",
|
||||||
"status.sensitive_warning": "Sensitiewe inhoud",
|
"status.sensitive_warning": "Sensitiewe inhoud",
|
||||||
"status.share": "Share",
|
"status.share": "Share",
|
||||||
|
|
|
@ -1,21 +1,19 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "خوادم تحت الإشراف",
|
"about.blocks": "خوادم تحت الإشراف",
|
||||||
"about.contact": "اتصل بـ:",
|
"about.contact": "للاتصال:",
|
||||||
"about.disclaimer": "ماستدون مجاني ومفتوح المصدر وعلامة تجارية لماستدون GmbH.",
|
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
|
||||||
"about.domain_blocks.comment": "السبب",
|
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
|
||||||
"about.domain_blocks.domain": "النطاق",
|
|
||||||
"about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.",
|
"about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.",
|
||||||
"about.domain_blocks.severity": "خطورة",
|
|
||||||
"about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
|
"about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
|
||||||
"about.domain_blocks.silenced.title": "تم كتمه",
|
"about.domain_blocks.silenced.title": "تم كتمه",
|
||||||
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
|
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
|
||||||
"about.domain_blocks.suspended.title": "مُعلّـق",
|
"about.domain_blocks.suspended.title": "مُعلّق",
|
||||||
"about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.",
|
"about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.",
|
||||||
"about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
|
"about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
|
||||||
"about.rules": "قواعد الخادم",
|
"about.rules": "قواعد الخادم",
|
||||||
"account.account_note_header": "مُلاحظة",
|
"account.account_note_header": "مُلاحظة",
|
||||||
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
|
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
|
||||||
"account.badges.bot": "روبوت",
|
"account.badges.bot": "بوت",
|
||||||
"account.badges.group": "فريق",
|
"account.badges.group": "فريق",
|
||||||
"account.block": "احجب @{name}",
|
"account.block": "احجب @{name}",
|
||||||
"account.block_domain": "حظر اسم النِّطاق {domain}",
|
"account.block_domain": "حظر اسم النِّطاق {domain}",
|
||||||
|
@ -39,23 +37,24 @@
|
||||||
"account.following_counter": "{count, plural, zero{لا يُتابِع} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}",
|
"account.following_counter": "{count, plural, zero{لا يُتابِع} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}",
|
||||||
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
|
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
|
||||||
"account.follows_you": "يُتابِعُك",
|
"account.follows_you": "يُتابِعُك",
|
||||||
"account.go_to_profile": "Go to profile",
|
"account.go_to_profile": "اذهب إلى الملف الشخصي",
|
||||||
"account.hide_reblogs": "إخفاء مشاركات @{name}",
|
"account.hide_reblogs": "إخفاء مشاركات @{name}",
|
||||||
"account.joined_short": "انضم في",
|
"account.joined_short": "انضم في",
|
||||||
"account.languages": "تغيير اللغات المشترَك فيها",
|
"account.languages": "تغيير اللغات المشترَك فيها",
|
||||||
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
|
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
|
||||||
"account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
|
"account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
|
||||||
"account.media": "وسائط",
|
"account.media": "وسائط",
|
||||||
"account.mention": "ذِكر @{name}",
|
"account.mention": "أذكُر @{name}",
|
||||||
"account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:",
|
"account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:",
|
||||||
"account.mute": "كَتم @{name}",
|
"account.mute": "أكتم @{name}",
|
||||||
"account.mute_notifications": "كَتم الإشعارات من @{name}",
|
"account.mute_notifications": "كَتم الإشعارات من @{name}",
|
||||||
"account.muted": "مَكتوم",
|
"account.muted": "مَكتوم",
|
||||||
|
"account.open_original_page": "افتح الصفحة الأصلية",
|
||||||
"account.posts": "منشورات",
|
"account.posts": "منشورات",
|
||||||
"account.posts_with_replies": "المنشورات والرُدود",
|
"account.posts_with_replies": "المنشورات والرُدود",
|
||||||
"account.report": "الإبلاغ عن @{name}",
|
"account.report": "الإبلاغ عن @{name}",
|
||||||
"account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة",
|
"account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة",
|
||||||
"account.share": "مُشاركة الملف الشخصي لـ @{name}",
|
"account.share": "شارِك الملف التعريفي لـ @{name}",
|
||||||
"account.show_reblogs": "عرض مشاركات @{name}",
|
"account.show_reblogs": "عرض مشاركات @{name}",
|
||||||
"account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
|
"account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
|
||||||
"account.unblock": "إلغاء الحَظر عن @{name}",
|
"account.unblock": "إلغاء الحَظر عن @{name}",
|
||||||
|
@ -67,8 +66,8 @@
|
||||||
"account.unmute_notifications": "إلغاء كَتم الإشعارات عن @{name}",
|
"account.unmute_notifications": "إلغاء كَتم الإشعارات عن @{name}",
|
||||||
"account.unmute_short": "إلغاء الكتم",
|
"account.unmute_short": "إلغاء الكتم",
|
||||||
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
|
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
|
||||||
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
"admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم",
|
||||||
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
"admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور",
|
||||||
"admin.dashboard.retention.average": "المعدل",
|
"admin.dashboard.retention.average": "المعدل",
|
||||||
"admin.dashboard.retention.cohort": "شهر التسجيل",
|
"admin.dashboard.retention.cohort": "شهر التسجيل",
|
||||||
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
|
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
|
||||||
|
@ -81,7 +80,7 @@
|
||||||
"audio.hide": "إخفاء المقطع الصوتي",
|
"audio.hide": "إخفاء المقطع الصوتي",
|
||||||
"autosuggest_hashtag.per_week": "{count} في الأسبوع",
|
"autosuggest_hashtag.per_week": "{count} في الأسبوع",
|
||||||
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
|
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
|
||||||
"bundle_column_error.copy_stacktrace": "نسخ تقرير الخطأ",
|
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
|
||||||
"bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.",
|
"bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.",
|
||||||
"bundle_column_error.error.title": "أوه لا!",
|
"bundle_column_error.error.title": "أوه لا!",
|
||||||
"bundle_column_error.network.body": "حدث خطأ أثناء محاولة تحميل هذه الصفحة. قد يكون هذا بسبب مشكلة مؤقتة في اتصالك بالإنترنت أو هذا الخادم.",
|
"bundle_column_error.network.body": "حدث خطأ أثناء محاولة تحميل هذه الصفحة. قد يكون هذا بسبب مشكلة مؤقتة في اتصالك بالإنترنت أو هذا الخادم.",
|
||||||
|
@ -156,7 +155,7 @@
|
||||||
"confirmations.delete.confirm": "حذف",
|
"confirmations.delete.confirm": "حذف",
|
||||||
"confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟",
|
"confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟",
|
||||||
"confirmations.delete_list.confirm": "حذف",
|
"confirmations.delete_list.confirm": "حذف",
|
||||||
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمةَ بشكلٍ دائم؟",
|
"confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟",
|
||||||
"confirmations.discard_edit_media.confirm": "تجاهل",
|
"confirmations.discard_edit_media.confirm": "تجاهل",
|
||||||
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟",
|
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟",
|
||||||
"confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل",
|
"confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل",
|
||||||
|
@ -182,14 +181,14 @@
|
||||||
"directory.local": "مِن {domain} فقط",
|
"directory.local": "مِن {domain} فقط",
|
||||||
"directory.new_arrivals": "الوافدون الجُدد",
|
"directory.new_arrivals": "الوافدون الجُدد",
|
||||||
"directory.recently_active": "نشط مؤخرا",
|
"directory.recently_active": "نشط مؤخرا",
|
||||||
"disabled_account_banner.account_settings": "Account settings",
|
"disabled_account_banner.account_settings": "إعدادات الحساب",
|
||||||
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
|
"disabled_account_banner.text": "حسابك {disabledAccount} معطل حاليا.",
|
||||||
"dismissable_banner.community_timeline": "هذه هي أحدث المشاركات العامة من الأشخاص الذين تُستضاف حساباتهم على {domain}.",
|
"dismissable_banner.community_timeline": "هذه هي أحدث المشاركات العامة من الأشخاص الذين تُستضاف حساباتهم على {domain}.",
|
||||||
"dismissable_banner.dismiss": "إغلاق",
|
"dismissable_banner.dismiss": "إغلاق",
|
||||||
"dismissable_banner.explore_links": "هذه القصص الإخبارية يتحدث عنها أشخاص على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
|
"dismissable_banner.explore_links": "هذه القصص الإخبارية يتحدث عنها أشخاص على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
|
||||||
"dismissable_banner.explore_statuses": "هذه المشاركات من هذا الخوادم الأخرى في الشبكة اللامركزية تجذب انتباه المستخدمين على هذا الخادم الآن.",
|
"dismissable_banner.explore_statuses": "هذه المنشورات مِن هذا الخادم ومِن الخوادم الأخرى في الشبكة اللامركزية تجذب انتباه المستخدمين على هذا الخادم الآن.",
|
||||||
"dismissable_banner.explore_tags": "هذه العلامات تكتسب جذب بين الناس على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
|
"dismissable_banner.explore_tags": "هذه العلامات تكتسب جذب بين الناس على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.",
|
||||||
"dismissable_banner.public_timeline": "هذه هي أحدث المشاركات العامة من الناس على هذا الخادم والخوادم الأخرى للشبكة اللامركزية التي يعرفها هذا الخادم.",
|
"dismissable_banner.public_timeline": "هذه هي أحدث المنشورات العامة من الناس على هذا الخادم والخوادم الأخرى للشبكة اللامركزية التي يعرفها هذا الخادم.",
|
||||||
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
|
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
|
||||||
"embed.preview": "هكذا ما سوف يبدو عليه:",
|
"embed.preview": "هكذا ما سوف يبدو عليه:",
|
||||||
"emoji_button.activity": "الأنشطة",
|
"emoji_button.activity": "الأنشطة",
|
||||||
|
@ -240,16 +239,16 @@
|
||||||
"explore.trending_links": "الأخبار",
|
"explore.trending_links": "الأخبار",
|
||||||
"explore.trending_statuses": "المنشورات",
|
"explore.trending_statuses": "المنشورات",
|
||||||
"explore.trending_tags": "الوسوم",
|
"explore.trending_tags": "الوسوم",
|
||||||
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
|
"filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.",
|
||||||
"filter_modal.added.context_mismatch_title": "Context mismatch!",
|
"filter_modal.added.context_mismatch_title": "عدم تطابق السياق!",
|
||||||
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
|
"filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.",
|
||||||
"filter_modal.added.expired_title": "Expired filter!",
|
"filter_modal.added.expired_title": "تصفية منتهية الصلاحية!",
|
||||||
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
|
"filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.",
|
||||||
"filter_modal.added.review_and_configure_title": "Filter settings",
|
"filter_modal.added.review_and_configure_title": "إعدادات التصفية",
|
||||||
"filter_modal.added.settings_link": "صفحة الإعدادات",
|
"filter_modal.added.settings_link": "صفحة الإعدادات",
|
||||||
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
|
"filter_modal.added.short_explanation": "تمت إضافة هذه المشاركة إلى فئة الفلاتر التالية: {title}.",
|
||||||
"filter_modal.added.title": "Filter added!",
|
"filter_modal.added.title": "تمت إضافة عامل التصفية!",
|
||||||
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
|
"filter_modal.select_filter.context_mismatch": "لا ينطبق على هذا السياق",
|
||||||
"filter_modal.select_filter.expired": "منتهية الصلاحيّة",
|
"filter_modal.select_filter.expired": "منتهية الصلاحيّة",
|
||||||
"filter_modal.select_filter.prompt_new": "فئة جديدة: {name}",
|
"filter_modal.select_filter.prompt_new": "فئة جديدة: {name}",
|
||||||
"filter_modal.select_filter.search": "البحث أو الإنشاء",
|
"filter_modal.select_filter.search": "البحث أو الإنشاء",
|
||||||
|
@ -287,14 +286,14 @@
|
||||||
"home.column_settings.show_replies": "اعرض الردود",
|
"home.column_settings.show_replies": "اعرض الردود",
|
||||||
"home.hide_announcements": "إخفاء الإعلانات",
|
"home.hide_announcements": "إخفاء الإعلانات",
|
||||||
"home.show_announcements": "إظهار الإعلانات",
|
"home.show_announcements": "إظهار الإعلانات",
|
||||||
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
|
"interaction_modal.description.favourite": "مع حساب في ماستدون، يمكنك تفضيل هذا المقال لإبلاغ الناشر بتقديرك وحفظه لاحقا.",
|
||||||
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
|
"interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} لتلقي مشاركاتهم في الصفحه الرئيسيه.",
|
||||||
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
|
"interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور لمشاركته مع متابعينك.",
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذه المشاركة.",
|
||||||
"interaction_modal.on_another_server": "على خادم مختلف",
|
"interaction_modal.on_another_server": "على خادم مختلف",
|
||||||
"interaction_modal.on_this_server": "على هذا الخادم",
|
"interaction_modal.on_this_server": "على هذا الخادم",
|
||||||
"interaction_modal.other_server_instructions": "ببساطة قم بنسخ ولصق هذا الرابط في شريط البحث في تطبيقك المفضل أو على واجهة الويب أين ولجت بحسابك.",
|
"interaction_modal.other_server_instructions": "انسخ و الصق هذا الرابط في حقل البحث الخاص بك لتطبيق ماستدون المفضل لديك أو واجهة الويب لخادم ماستدون الخاص بك.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "بما إن ماستدون لامركزي، يمكنك استخدام حسابك الحالي المستضاف بواسطة خادم ماستدون آخر أو منصة متوافقة إذا لم يكن لديك حساب هنا.",
|
||||||
"interaction_modal.title.favourite": "الإعجاب بمنشور {name}",
|
"interaction_modal.title.favourite": "الإعجاب بمنشور {name}",
|
||||||
"interaction_modal.title.follow": "اتبع {name}",
|
"interaction_modal.title.follow": "اتبع {name}",
|
||||||
"interaction_modal.title.reblog": "مشاركة منشور {name}",
|
"interaction_modal.title.reblog": "مشاركة منشور {name}",
|
||||||
|
@ -342,7 +341,7 @@
|
||||||
"lightbox.next": "التالي",
|
"lightbox.next": "التالي",
|
||||||
"lightbox.previous": "العودة",
|
"lightbox.previous": "العودة",
|
||||||
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
|
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
|
||||||
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
|
"limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.",
|
||||||
"lists.account.add": "أضف إلى القائمة",
|
"lists.account.add": "أضف إلى القائمة",
|
||||||
"lists.account.remove": "احذف من القائمة",
|
"lists.account.remove": "احذف من القائمة",
|
||||||
"lists.delete": "احذف القائمة",
|
"lists.delete": "احذف القائمة",
|
||||||
|
@ -361,7 +360,7 @@
|
||||||
"media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
|
"media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
|
||||||
"missing_indicator.label": "غير موجود",
|
"missing_indicator.label": "غير موجود",
|
||||||
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
|
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
|
||||||
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
|
"moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.",
|
||||||
"mute_modal.duration": "المدة",
|
"mute_modal.duration": "المدة",
|
||||||
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
|
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
|
||||||
"mute_modal.indefinite": "إلى أجل غير مسمى",
|
"mute_modal.indefinite": "إلى أجل غير مسمى",
|
||||||
|
@ -388,8 +387,8 @@
|
||||||
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
||||||
"navigation_bar.search": "البحث",
|
"navigation_bar.search": "البحث",
|
||||||
"navigation_bar.security": "الأمان",
|
"navigation_bar.security": "الأمان",
|
||||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
"not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.",
|
||||||
"notification.admin.report": "{name} reported {target}",
|
"notification.admin.report": "{name} أبلغ عن {target}",
|
||||||
"notification.admin.sign_up": "أنشأ {name} حسابًا",
|
"notification.admin.sign_up": "أنشأ {name} حسابًا",
|
||||||
"notification.favourite": "أُعجِب {name} بمنشورك",
|
"notification.favourite": "أُعجِب {name} بمنشورك",
|
||||||
"notification.follow": "{name} يتابعك",
|
"notification.follow": "{name} يتابعك",
|
||||||
|
@ -514,7 +513,7 @@
|
||||||
"report_notification.categories.other": "آخر",
|
"report_notification.categories.other": "آخر",
|
||||||
"report_notification.categories.spam": "مزعج",
|
"report_notification.categories.spam": "مزعج",
|
||||||
"report_notification.categories.violation": "القاعدة المنتهَكة",
|
"report_notification.categories.violation": "القاعدة المنتهَكة",
|
||||||
"report_notification.open": "Open report",
|
"report_notification.open": "فتح التقرير",
|
||||||
"search.placeholder": "ابحث",
|
"search.placeholder": "ابحث",
|
||||||
"search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL",
|
"search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL",
|
||||||
"search_popout.search_format": "نمط البحث المتقدم",
|
"search_popout.search_format": "نمط البحث المتقدم",
|
||||||
|
@ -529,7 +528,7 @@
|
||||||
"search_results.nothing_found": "تعذر العثور على نتائج تتضمن هذه المصطلحات",
|
"search_results.nothing_found": "تعذر العثور على نتائج تتضمن هذه المصطلحات",
|
||||||
"search_results.statuses": "المنشورات",
|
"search_results.statuses": "المنشورات",
|
||||||
"search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.",
|
"search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.",
|
||||||
"search_results.title": "Search for {q}",
|
"search_results.title": "البحث عن {q}",
|
||||||
"search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}",
|
"search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}",
|
||||||
"server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
|
"server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
|
||||||
"server_banner.active_users": "مستخدم نشط",
|
"server_banner.active_users": "مستخدم نشط",
|
||||||
|
@ -546,7 +545,7 @@
|
||||||
"status.bookmark": "أضفه إلى الفواصل المرجعية",
|
"status.bookmark": "أضفه إلى الفواصل المرجعية",
|
||||||
"status.cancel_reblog_private": "إلغاء الترقية",
|
"status.cancel_reblog_private": "إلغاء الترقية",
|
||||||
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
|
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
|
||||||
"status.copy": "نسخ رابط المنشور",
|
"status.copy": "انسخ رابط الرسالة",
|
||||||
"status.delete": "احذف",
|
"status.delete": "احذف",
|
||||||
"status.detailed_status": "تفاصيل المحادثة",
|
"status.detailed_status": "تفاصيل المحادثة",
|
||||||
"status.direct": "رسالة خاصة إلى @{name}",
|
"status.direct": "رسالة خاصة إلى @{name}",
|
||||||
|
@ -593,9 +592,9 @@
|
||||||
"status.uncached_media_warning": "غير متوفر",
|
"status.uncached_media_warning": "غير متوفر",
|
||||||
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||||
"status.unpin": "فك التدبيس من الصفحة التعريفية",
|
"status.unpin": "فك التدبيس من الصفحة التعريفية",
|
||||||
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
|
"subscribed_languages.lead": "فقط المشاركات في اللغات المحددة ستظهر في الرئيسيه وتسرد الجداول الزمنية بعد التغيير. حدد لا شيء لتلقي المشاركات بجميع اللغات.",
|
||||||
"subscribed_languages.save": "حفظ التغييرات",
|
"subscribed_languages.save": "حفظ التغييرات",
|
||||||
"subscribed_languages.target": "Change subscribed languages for {target}",
|
"subscribed_languages.target": "تغيير اللغات المشتركة لـ {target}",
|
||||||
"suggestions.dismiss": "إلغاء الاقتراح",
|
"suggestions.dismiss": "إلغاء الاقتراح",
|
||||||
"suggestions.header": "يمكن أن يهمك…",
|
"suggestions.header": "يمكن أن يهمك…",
|
||||||
"tabs_bar.federated_timeline": "الموحَّد",
|
"tabs_bar.federated_timeline": "الموحَّد",
|
||||||
|
@ -639,7 +638,7 @@
|
||||||
"upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…",
|
"upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…",
|
||||||
"upload_modal.preview_label": "معاينة ({ratio})",
|
"upload_modal.preview_label": "معاينة ({ratio})",
|
||||||
"upload_progress.label": "يرفع...",
|
"upload_progress.label": "يرفع...",
|
||||||
"upload_progress.processing": "Processing…",
|
"upload_progress.processing": "تتم المعالجة…",
|
||||||
"video.close": "إغلاق الفيديو",
|
"video.close": "إغلاق الفيديو",
|
||||||
"video.download": "تنزيل الملف",
|
"video.download": "تنزيل الملف",
|
||||||
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
|
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Motivu",
|
"about.domain_blocks.no_reason_available": "El motivu nun ta disponible",
|
||||||
"about.domain_blocks.domain": "Dominiu",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Gravedá",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Desactivación de los avisos de @{name}",
|
"account.mute": "Desactivación de los avisos de @{name}",
|
||||||
"account.mute_notifications": "Mute notifications from @{name}",
|
"account.mute_notifications": "Mute notifications from @{name}",
|
||||||
"account.muted": "Muted",
|
"account.muted": "Muted",
|
||||||
|
"account.open_original_page": "Abrir la páxina orixinal",
|
||||||
"account.posts": "Artículos",
|
"account.posts": "Artículos",
|
||||||
"account.posts_with_replies": "Artículos y rempuestes",
|
"account.posts_with_replies": "Artículos y rempuestes",
|
||||||
"account.report": "Report @{name}",
|
"account.report": "Report @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.",
|
"interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.",
|
||||||
"interaction_modal.on_another_server": "N'otru sirvidor",
|
"interaction_modal.on_another_server": "N'otru sirvidor",
|
||||||
"interaction_modal.on_this_server": "Nesti sirvidor",
|
"interaction_modal.on_this_server": "Nesti sirvidor",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copia y apiega esta URL nel campu de busca de la to aplicación favorita de Mastodon o na interfaz web de dalgún sirvidor de Mastodon.",
|
||||||
"interaction_modal.preamble": "Darréu que Mastodon ye descentralizáu, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.",
|
"interaction_modal.preamble": "Darréu que Mastodon ye descentralizáu, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Модерирани сървъри",
|
"about.blocks": "Модерирани сървъри",
|
||||||
"about.contact": "За контакти:",
|
"about.contact": "За контакти:",
|
||||||
"about.disclaimer": "Mastodon е безплатен софтуер с отворен изходен код и търговска марка Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon е безплатен софтуер с отворен изходен код и търговска марка Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Причина",
|
"about.domain_blocks.no_reason_available": "Няма налична причина",
|
||||||
"about.domain_blocks.domain": "Домейн",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Взискателност",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Ограничено",
|
"about.domain_blocks.silenced.title": "Ограничено",
|
||||||
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхранявани или обменяни, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
|
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхранявани или обменяни, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Заглушаване на @{name}",
|
"account.mute": "Заглушаване на @{name}",
|
||||||
"account.mute_notifications": "Заглушаване на известия от @{name}",
|
"account.mute_notifications": "Заглушаване на известия от @{name}",
|
||||||
"account.muted": "Заглушено",
|
"account.muted": "Заглушено",
|
||||||
|
"account.open_original_page": "Отваряне на оригиналната страница",
|
||||||
"account.posts": "Публикации",
|
"account.posts": "Публикации",
|
||||||
"account.posts_with_replies": "Публикации и отговори",
|
"account.posts_with_replies": "Публикации и отговори",
|
||||||
"account.report": "Докладване на @{name}",
|
"account.report": "Докладване на @{name}",
|
||||||
|
@ -101,7 +100,7 @@
|
||||||
"column.about": "Относно",
|
"column.about": "Относно",
|
||||||
"column.blocks": "Блокирани потребители",
|
"column.blocks": "Блокирани потребители",
|
||||||
"column.bookmarks": "Отметки",
|
"column.bookmarks": "Отметки",
|
||||||
"column.community": "Локална емисия",
|
"column.community": "Местна часова ос",
|
||||||
"column.direct": "Директни съобщения",
|
"column.direct": "Директни съобщения",
|
||||||
"column.directory": "Разглеждане на профили",
|
"column.directory": "Разглеждане на профили",
|
||||||
"column.domain_blocks": "Блокирани домейни",
|
"column.domain_blocks": "Блокирани домейни",
|
||||||
|
@ -112,7 +111,7 @@
|
||||||
"column.mutes": "Заглушени потребители",
|
"column.mutes": "Заглушени потребители",
|
||||||
"column.notifications": "Известия",
|
"column.notifications": "Известия",
|
||||||
"column.pins": "Закачени публикации",
|
"column.pins": "Закачени публикации",
|
||||||
"column.public": "Публичен канал",
|
"column.public": "Федеративна часова ос",
|
||||||
"column_back_button.label": "Назад",
|
"column_back_button.label": "Назад",
|
||||||
"column_header.hide_settings": "Скриване на настройките",
|
"column_header.hide_settings": "Скриване на настройките",
|
||||||
"column_header.moveLeft_settings": "Преместване на колона вляво",
|
"column_header.moveLeft_settings": "Преместване на колона вляво",
|
||||||
|
@ -160,7 +159,7 @@
|
||||||
"confirmations.discard_edit_media.confirm": "Отхвърляне",
|
"confirmations.discard_edit_media.confirm": "Отхвърляне",
|
||||||
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
|
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
|
||||||
"confirmations.domain_block.confirm": "Блокиране на целия домейн",
|
"confirmations.domain_block.confirm": "Блокиране на целия домейн",
|
||||||
"confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публичните места или известията си. Вашите последователи от този домейн ще се премахнат.",
|
"confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.",
|
||||||
"confirmations.logout.confirm": "Излизане",
|
"confirmations.logout.confirm": "Излизане",
|
||||||
"confirmations.logout.message": "Наистина ли искате да излезете?",
|
"confirmations.logout.message": "Наистина ли искате да излезете?",
|
||||||
"confirmations.mute.confirm": "Заглушаване",
|
"confirmations.mute.confirm": "Заглушаване",
|
||||||
|
@ -212,7 +211,7 @@
|
||||||
"empty_column.account_unavailable": "Няма достъп до профила",
|
"empty_column.account_unavailable": "Няма достъп до профила",
|
||||||
"empty_column.blocks": "Още не сте блокирали никакви потребители.",
|
"empty_column.blocks": "Още не сте блокирали никакви потребители.",
|
||||||
"empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.",
|
"empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.",
|
||||||
"empty_column.community": "Локалната емисия е празна. Напишете нещо публично, за да започнете!",
|
"empty_column.community": "Местна часова ос е празна. Напишете нещо публично, за да завъртите нещата!",
|
||||||
"empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите ще се покаже тук.",
|
"empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите ще се покаже тук.",
|
||||||
"empty_column.domain_blocks": "Още няма блокирани домейни.",
|
"empty_column.domain_blocks": "Още няма блокирани домейни.",
|
||||||
"empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!",
|
"empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!",
|
||||||
|
@ -221,7 +220,7 @@
|
||||||
"empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.",
|
"empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.",
|
||||||
"empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.",
|
"empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.",
|
||||||
"empty_column.hashtag": "Още няма нищо в този хаштаг.",
|
"empty_column.hashtag": "Още няма нищо в този хаштаг.",
|
||||||
"empty_column.home": "Вашата начална емисия е празна! Посетете {public} или използвайте търсене, за да започнете и да се запознаете с други потребители.",
|
"empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}",
|
||||||
"empty_column.home.suggestions": "Преглед на някои предложения",
|
"empty_column.home.suggestions": "Преглед на някои предложения",
|
||||||
"empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.",
|
"empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.",
|
||||||
"empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.",
|
"empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "На различен сървър",
|
"interaction_modal.on_another_server": "На различен сървър",
|
||||||
"interaction_modal.on_this_server": "На този сървър",
|
"interaction_modal.on_this_server": "На този сървър",
|
||||||
"interaction_modal.other_server_instructions": "Просто копипействате URL адреса в лентата за търсене на любимото си приложение или уеб интерфейс, където сте влезли.",
|
"interaction_modal.other_server_instructions": "Копипейстнете този URL адрес в полето за търсене на любимото си приложение Mastodon или мрежови интерфейс на своя Mastodon сървър.",
|
||||||
"interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.",
|
"interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.",
|
||||||
"interaction_modal.title.favourite": "Любими публикации на {name}",
|
"interaction_modal.title.favourite": "Любими публикации на {name}",
|
||||||
"interaction_modal.title.follow": "Последване на {name}",
|
"interaction_modal.title.follow": "Последване на {name}",
|
||||||
|
@ -313,12 +312,12 @@
|
||||||
"keyboard_shortcuts.enter": "Отваряне на публикация",
|
"keyboard_shortcuts.enter": "Отваряне на публикация",
|
||||||
"keyboard_shortcuts.favourite": "Любима публикация",
|
"keyboard_shortcuts.favourite": "Любима публикация",
|
||||||
"keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
|
"keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
|
||||||
"keyboard_shortcuts.federated": "да отвори обединена хронология",
|
"keyboard_shortcuts.federated": "Отваряне на федерална часова ос",
|
||||||
"keyboard_shortcuts.heading": "Клавишни съчетания",
|
"keyboard_shortcuts.heading": "Клавишни съчетания",
|
||||||
"keyboard_shortcuts.home": "за отваряне на началната емисия",
|
"keyboard_shortcuts.home": "Отваряне на началната часова ос",
|
||||||
"keyboard_shortcuts.hotkey": "Бърз клавиш",
|
"keyboard_shortcuts.hotkey": "Бърз клавиш",
|
||||||
"keyboard_shortcuts.legend": "Показване на тази легенда",
|
"keyboard_shortcuts.legend": "Показване на тази легенда",
|
||||||
"keyboard_shortcuts.local": "за отваряне на локалната емисия",
|
"keyboard_shortcuts.local": "Отваряне на местна часова ос",
|
||||||
"keyboard_shortcuts.mention": "Споменаване на автор",
|
"keyboard_shortcuts.mention": "Споменаване на автор",
|
||||||
"keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
|
"keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
|
||||||
"keyboard_shortcuts.my_profile": "Отваряне на профила ви",
|
"keyboard_shortcuts.my_profile": "Отваряне на профила ви",
|
||||||
|
@ -368,7 +367,7 @@
|
||||||
"navigation_bar.about": "За тази инстанция",
|
"navigation_bar.about": "За тази инстанция",
|
||||||
"navigation_bar.blocks": "Блокирани потребители",
|
"navigation_bar.blocks": "Блокирани потребители",
|
||||||
"navigation_bar.bookmarks": "Отметки",
|
"navigation_bar.bookmarks": "Отметки",
|
||||||
"navigation_bar.community_timeline": "Локална емисия",
|
"navigation_bar.community_timeline": "Местна часова ос",
|
||||||
"navigation_bar.compose": "Съставяне на нова публикация",
|
"navigation_bar.compose": "Съставяне на нова публикация",
|
||||||
"navigation_bar.direct": "Директни съобщения",
|
"navigation_bar.direct": "Директни съобщения",
|
||||||
"navigation_bar.discover": "Откриване",
|
"navigation_bar.discover": "Откриване",
|
||||||
|
@ -385,7 +384,7 @@
|
||||||
"navigation_bar.personal": "Лично",
|
"navigation_bar.personal": "Лично",
|
||||||
"navigation_bar.pins": "Закачени публикации",
|
"navigation_bar.pins": "Закачени публикации",
|
||||||
"navigation_bar.preferences": "Предпочитания",
|
"navigation_bar.preferences": "Предпочитания",
|
||||||
"navigation_bar.public_timeline": "Публичен канал",
|
"navigation_bar.public_timeline": "Федеративна часова ос",
|
||||||
"navigation_bar.search": "Търсене",
|
"navigation_bar.search": "Търсене",
|
||||||
"navigation_bar.security": "Сигурност",
|
"navigation_bar.security": "Сигурност",
|
||||||
"not_signed_in_indicator.not_signed_in": "Трябва да се регистрирате за достъп до този ресурс.",
|
"not_signed_in_indicator.not_signed_in": "Трябва да се регистрирате за достъп до този ресурс.",
|
||||||
|
@ -598,7 +597,7 @@
|
||||||
"subscribed_languages.target": "Смяна на езика за {target}",
|
"subscribed_languages.target": "Смяна на езика за {target}",
|
||||||
"suggestions.dismiss": "Отхвърляне на предложение",
|
"suggestions.dismiss": "Отхвърляне на предложение",
|
||||||
"suggestions.header": "Може да се интересувате от…",
|
"suggestions.header": "Може да се интересувате от…",
|
||||||
"tabs_bar.federated_timeline": "Обединен",
|
"tabs_bar.federated_timeline": "Федерална",
|
||||||
"tabs_bar.home": "Начало",
|
"tabs_bar.home": "Начало",
|
||||||
"tabs_bar.local_timeline": "Местни",
|
"tabs_bar.local_timeline": "Местни",
|
||||||
"tabs_bar.notifications": "Известия",
|
"tabs_bar.notifications": "Известия",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "@{name} কে নিঃশব্দ করুন",
|
"account.mute": "@{name} কে নিঃশব্দ করুন",
|
||||||
"account.mute_notifications": "@{name} র প্রজ্ঞাপন আপনার কাছে নিঃশব্দ করুন",
|
"account.mute_notifications": "@{name} র প্রজ্ঞাপন আপনার কাছে নিঃশব্দ করুন",
|
||||||
"account.muted": "নিঃশব্দ",
|
"account.muted": "নিঃশব্দ",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "টুট",
|
"account.posts": "টুট",
|
||||||
"account.posts_with_replies": "টুট এবং মতামত",
|
"account.posts_with_replies": "টুট এবং মতামত",
|
||||||
"account.report": "@{name} কে রিপোর্ট করুন",
|
"account.report": "@{name} কে রিপোর্ট করুন",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Servijerioù habaskaet",
|
"about.blocks": "Servijerioù habaskaet",
|
||||||
"about.contact": "Darempred :",
|
"about.contact": "Darempred :",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon zo ur meziant frank, open-source hag ur merk marilhet eus Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Abeg",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domani",
|
"about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.",
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
|
||||||
"about.domain_blocks.severity": "Strizhder",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
|
"about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
|
||||||
"about.domain_blocks.silenced.title": "Bevennet",
|
"about.domain_blocks.silenced.title": "Bevennet",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
"about.domain_blocks.suspended.title": "Astalet",
|
"about.domain_blocks.suspended.title": "Astalet",
|
||||||
"about.not_available": "This information has not been made available on this server.",
|
"about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
|
||||||
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
"about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
|
||||||
"about.rules": "Reolennoù ar servijer",
|
"about.rules": "Reolennoù ar servijer",
|
||||||
"account.account_note_header": "Notenn",
|
"account.account_note_header": "Notenn",
|
||||||
"account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
|
"account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
|
||||||
|
@ -21,7 +19,7 @@
|
||||||
"account.block_domain": "Stankañ an domani {domain}",
|
"account.block_domain": "Stankañ an domani {domain}",
|
||||||
"account.blocked": "Stanket",
|
"account.blocked": "Stanket",
|
||||||
"account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin",
|
"account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin",
|
||||||
"account.cancel_follow_request": "Withdraw follow request",
|
"account.cancel_follow_request": "Nullañ ar reked heuliañ",
|
||||||
"account.direct": "Kas ur c'hemennad eeun da @{name}",
|
"account.direct": "Kas ur c'hemennad eeun da @{name}",
|
||||||
"account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}",
|
"account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}",
|
||||||
"account.domain_blocked": "Domani stanket",
|
"account.domain_blocked": "Domani stanket",
|
||||||
|
@ -30,7 +28,7 @@
|
||||||
"account.endorse": "Lakaat war-wel war ar profil",
|
"account.endorse": "Lakaat war-wel war ar profil",
|
||||||
"account.featured_tags.last_status_at": "Kannad diwezhañ : {date}",
|
"account.featured_tags.last_status_at": "Kannad diwezhañ : {date}",
|
||||||
"account.featured_tags.last_status_never": "Kannad ebet",
|
"account.featured_tags.last_status_never": "Kannad ebet",
|
||||||
"account.featured_tags.title": "{name}'s featured hashtags",
|
"account.featured_tags.title": "Penngerioù-klik {name}",
|
||||||
"account.follow": "Heuliañ",
|
"account.follow": "Heuliañ",
|
||||||
"account.followers": "Tud koumanantet",
|
"account.followers": "Tud koumanantet",
|
||||||
"account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.",
|
"account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.",
|
||||||
|
@ -39,18 +37,19 @@
|
||||||
"account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}",
|
"account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}",
|
||||||
"account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
|
"account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
|
||||||
"account.follows_you": "Ho heuilh",
|
"account.follows_you": "Ho heuilh",
|
||||||
"account.go_to_profile": "Go to profile",
|
"account.go_to_profile": "Gwelet ar profil",
|
||||||
"account.hide_reblogs": "Kuzh skignadennoù gant @{name}",
|
"account.hide_reblogs": "Kuzh skignadennoù gant @{name}",
|
||||||
"account.joined_short": "Joined",
|
"account.joined_short": "Amañ abaoe",
|
||||||
"account.languages": "Change subscribed languages",
|
"account.languages": "Cheñch ar yezhoù koumanantet",
|
||||||
"account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}",
|
"account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}",
|
||||||
"account.locked_info": "Prennet eo ar gont-mañ. Gant ar perc'henn e vez dibabet piv a c'hall heuliañ anezhi pe anezhañ.",
|
"account.locked_info": "Prennet eo ar gont-mañ. Gant ar perc'henn e vez dibabet piv a c'hall heuliañ anezhi pe anezhañ.",
|
||||||
"account.media": "Media",
|
"account.media": "Media",
|
||||||
"account.mention": "Menegiñ @{name}",
|
"account.mention": "Menegiñ @{name}",
|
||||||
"account.moved_to": "{name} has indicated that their new account is now:",
|
"account.moved_to": "Gant {name} eo bet merket e oa bremañ h·e gont nevez :",
|
||||||
"account.mute": "Kuzhat @{name}",
|
"account.mute": "Kuzhat @{name}",
|
||||||
"account.mute_notifications": "Kuzh kemennoù a-berzh @{name}",
|
"account.mute_notifications": "Kuzh kemennoù a-berzh @{name}",
|
||||||
"account.muted": "Kuzhet",
|
"account.muted": "Kuzhet",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Kannadoù",
|
"account.posts": "Kannadoù",
|
||||||
"account.posts_with_replies": "Kannadoù ha respontoù",
|
"account.posts_with_replies": "Kannadoù ha respontoù",
|
||||||
"account.report": "Disklêriañ @{name}",
|
"account.report": "Disklêriañ @{name}",
|
||||||
|
@ -93,12 +92,12 @@
|
||||||
"bundle_modal_error.close": "Serriñ",
|
"bundle_modal_error.close": "Serriñ",
|
||||||
"bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
|
"bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
|
||||||
"bundle_modal_error.retry": "Klask en-dro",
|
"bundle_modal_error.retry": "Klask en-dro",
|
||||||
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
|
"closed_registrations.other_server_instructions": "Peogwir ez eo Mastodon digreizennet e c'heller krouiñ ur gont war ur servijer all ha kenderc'hel da zaremprediñ gant hemañ.",
|
||||||
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
||||||
"closed_registrations_modal.find_another_server": "Find another server",
|
"closed_registrations_modal.find_another_server": "Kavout ur servijer all",
|
||||||
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
||||||
"closed_registrations_modal.title": "Signing up on Mastodon",
|
"closed_registrations_modal.title": "Signing up on Mastodon",
|
||||||
"column.about": "About",
|
"column.about": "Diwar-benn",
|
||||||
"column.blocks": "Implijer·ezed·ien berzet",
|
"column.blocks": "Implijer·ezed·ien berzet",
|
||||||
"column.bookmarks": "Sinedoù",
|
"column.bookmarks": "Sinedoù",
|
||||||
"column.community": "Red-amzer lec'hel",
|
"column.community": "Red-amzer lec'hel",
|
||||||
|
@ -125,7 +124,7 @@
|
||||||
"community.column_settings.media_only": "Nemet Mediaoù",
|
"community.column_settings.media_only": "Nemet Mediaoù",
|
||||||
"community.column_settings.remote_only": "Nemet a-bell",
|
"community.column_settings.remote_only": "Nemet a-bell",
|
||||||
"compose.language.change": "Cheñch yezh",
|
"compose.language.change": "Cheñch yezh",
|
||||||
"compose.language.search": "Search languages...",
|
"compose.language.search": "Klask yezhoù...",
|
||||||
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
|
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
|
||||||
"compose_form.encryption_warning": "Kannadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
|
"compose_form.encryption_warning": "Kannadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
|
||||||
"compose_form.hashtag_warning": "Ne vo ket listennet ar c'hannad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hannadoù foran a c'hall bezañ klasket dre c'her-klik.",
|
"compose_form.hashtag_warning": "Ne vo ket listennet ar c'hannad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hannadoù foran a c'hall bezañ klasket dre c'her-klik.",
|
||||||
|
@ -151,7 +150,7 @@
|
||||||
"confirmations.block.block_and_report": "Berzañ ha Disklêriañ",
|
"confirmations.block.block_and_report": "Berzañ ha Disklêriañ",
|
||||||
"confirmations.block.confirm": "Stankañ",
|
"confirmations.block.confirm": "Stankañ",
|
||||||
"confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
|
"confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
|
||||||
"confirmations.cancel_follow_request.confirm": "Withdraw request",
|
"confirmations.cancel_follow_request.confirm": "Nullañ ar reked",
|
||||||
"confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?",
|
"confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?",
|
||||||
"confirmations.delete.confirm": "Dilemel",
|
"confirmations.delete.confirm": "Dilemel",
|
||||||
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ ?",
|
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ ?",
|
||||||
|
@ -182,10 +181,10 @@
|
||||||
"directory.local": "Eus {domain} hepken",
|
"directory.local": "Eus {domain} hepken",
|
||||||
"directory.new_arrivals": "Degouezhet a-nevez",
|
"directory.new_arrivals": "Degouezhet a-nevez",
|
||||||
"directory.recently_active": "Oberiant nevez zo",
|
"directory.recently_active": "Oberiant nevez zo",
|
||||||
"disabled_account_banner.account_settings": "Account settings",
|
"disabled_account_banner.account_settings": "Arventennoù ar gont",
|
||||||
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
|
"disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.",
|
||||||
"dismissable_banner.community_timeline": "Setu kannadoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.",
|
"dismissable_banner.community_timeline": "Setu kannadoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.",
|
||||||
"dismissable_banner.dismiss": "Dismiss",
|
"dismissable_banner.dismiss": "Diverkañ",
|
||||||
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
||||||
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
|
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
|
||||||
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hannad-mañ.",
|
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hannad-mañ.",
|
||||||
"interaction_modal.on_another_server": "War ur servijer all",
|
"interaction_modal.on_another_server": "War ur servijer all",
|
||||||
"interaction_modal.on_this_server": "War ar servijer-mañ",
|
"interaction_modal.on_this_server": "War ar servijer-mañ",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Ouzhpennañ kannad {name} d'ar re vuiañ-karet",
|
"interaction_modal.title.favourite": "Ouzhpennañ kannad {name} d'ar re vuiañ-karet",
|
||||||
"interaction_modal.title.follow": "Heuliañ {name}",
|
"interaction_modal.title.follow": "Heuliañ {name}",
|
||||||
|
@ -391,15 +390,15 @@
|
||||||
"not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
|
"not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
|
||||||
"notification.admin.report": "Disklêriet eo bet {target} gant {name}",
|
"notification.admin.report": "Disklêriet eo bet {target} gant {name}",
|
||||||
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
|
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
|
||||||
"notification.favourite": "{name} en·he deus ouzhpennet ho kannad d'h·e re vuiañ-karet",
|
"notification.favourite": "Gant {name} eo bet ouzhpennet ho kannad d'h·e re vuiañ-karet",
|
||||||
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
|
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
|
||||||
"notification.follow_request": "{name} en/he deus goulennet da heuliañ ac'hanoc'h",
|
"notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ",
|
||||||
"notification.mention": "{name} en/he deus meneget ac'hanoc'h",
|
"notification.mention": "Gant {name} oc'h bet meneget",
|
||||||
"notification.own_poll": "Echu eo ho sontadeg",
|
"notification.own_poll": "Echu eo ho sontadeg",
|
||||||
"notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet",
|
"notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet",
|
||||||
"notification.reblog": "{name} en·he deus skignet ho kannad",
|
"notification.reblog": "Skignet eo bet ho kannad gant {name}",
|
||||||
"notification.status": "{name} en·he deus embannet",
|
"notification.status": "Emañ {name} o paouez embann",
|
||||||
"notification.update": "{name} en·he deus kemmet ur c'hannad",
|
"notification.update": "Kemmet ez eus bet ur c'hannad gant {name}",
|
||||||
"notifications.clear": "Skarzhañ ar c'hemennoù",
|
"notifications.clear": "Skarzhañ ar c'hemennoù",
|
||||||
"notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?",
|
"notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?",
|
||||||
"notifications.column_settings.admin.report": "Disklêriadurioù nevez :",
|
"notifications.column_settings.admin.report": "Disklêriadurioù nevez :",
|
||||||
|
@ -572,7 +571,7 @@
|
||||||
"status.read_more": "Lenn muioc'h",
|
"status.read_more": "Lenn muioc'h",
|
||||||
"status.reblog": "Skignañ",
|
"status.reblog": "Skignañ",
|
||||||
"status.reblog_private": "Skignañ gant ar weledenn gentañ",
|
"status.reblog_private": "Skignañ gant ar weledenn gentañ",
|
||||||
"status.reblogged_by": "{name} en/he deus skignet",
|
"status.reblogged_by": "Skignet gant {name}",
|
||||||
"status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
|
"status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
|
||||||
"status.redraft": "Diverkañ ha skrivañ en-dro",
|
"status.redraft": "Diverkañ ha skrivañ en-dro",
|
||||||
"status.remove_bookmark": "Dilemel ar sined",
|
"status.remove_bookmark": "Dilemel ar sined",
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Servidors moderats",
|
"about.blocks": "Servidors moderats",
|
||||||
"about.contact": "Contacte:",
|
"about.contact": "Contacte:",
|
||||||
"about.disclaimer": "Mastodon és un programari lliure de codi obert i una marca comercial de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon és programari lliure de codi obert i una marca comercial de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Motiu",
|
"about.domain_blocks.no_reason_available": "No és disponible el motiu",
|
||||||
"about.domain_blocks.domain": "Domini",
|
|
||||||
"about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.",
|
"about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.",
|
||||||
"about.domain_blocks.severity": "Severitat",
|
"about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per seguir-lo.",
|
||||||
"about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per ell seguint-lo.",
|
|
||||||
"about.domain_blocks.silenced.title": "Limitat",
|
"about.domain_blocks.silenced.title": "Limitat",
|
||||||
"about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni s'intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els usuaris d'aquest servidor.",
|
"about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els seus usuaris.",
|
||||||
"about.domain_blocks.suspended.title": "Suspès",
|
"about.domain_blocks.suspended.title": "Suspès",
|
||||||
"about.not_available": "Aquesta informació no s'ha fet disponible en aquest servidor.",
|
"about.not_available": "Aquesta informació no és disponible en aquest servidor.",
|
||||||
"about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}",
|
"about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}",
|
||||||
"about.rules": "Normes del servidor",
|
"about.rules": "Normes del servidor",
|
||||||
"account.account_note_header": "Nota",
|
"account.account_note_header": "Nota",
|
||||||
|
@ -21,19 +19,19 @@
|
||||||
"account.block_domain": "Bloqueja el domini {domain}",
|
"account.block_domain": "Bloqueja el domini {domain}",
|
||||||
"account.blocked": "Bloquejat",
|
"account.blocked": "Bloquejat",
|
||||||
"account.browse_more_on_origin_server": "Navega més en el perfil original",
|
"account.browse_more_on_origin_server": "Navega més en el perfil original",
|
||||||
"account.cancel_follow_request": "Retirar la sol·licitud de seguiment",
|
"account.cancel_follow_request": "Retira la sol·licitud de seguiment",
|
||||||
"account.direct": "Envia missatge directe a @{name}",
|
"account.direct": "Envia missatge directe a @{name}",
|
||||||
"account.disable_notifications": "No em notifiquis les publicacions de @{name}",
|
"account.disable_notifications": "No em notifiquis les publicacions de @{name}",
|
||||||
"account.domain_blocked": "Domini bloquejat",
|
"account.domain_blocked": "Domini blocat",
|
||||||
"account.edit_profile": "Edita el perfil",
|
"account.edit_profile": "Edita el perfil",
|
||||||
"account.enable_notifications": "Notifica’m les publicacions de @{name}",
|
"account.enable_notifications": "Notifica'm les publicacions de @{name}",
|
||||||
"account.endorse": "Recomana en el perfil",
|
"account.endorse": "Recomana en el perfil",
|
||||||
"account.featured_tags.last_status_at": "Última publicació el {date}",
|
"account.featured_tags.last_status_at": "Última publicació el {date}",
|
||||||
"account.featured_tags.last_status_never": "Cap publicació",
|
"account.featured_tags.last_status_never": "No hi ha publicacions",
|
||||||
"account.featured_tags.title": "Etiquetes destacades de: {name}",
|
"account.featured_tags.title": "Etiquetes destacades de: {name}",
|
||||||
"account.follow": "Segueix",
|
"account.follow": "Segueix",
|
||||||
"account.followers": "Seguidors",
|
"account.followers": "Seguidors",
|
||||||
"account.followers.empty": "Ningú segueix aquest usuari encara.",
|
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
|
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
|
||||||
"account.following": "Seguint",
|
"account.following": "Seguint",
|
||||||
"account.following_counter": "{count, plural, other {{counter} Seguint}}",
|
"account.following_counter": "{count, plural, other {{counter} Seguint}}",
|
||||||
|
@ -51,27 +49,28 @@
|
||||||
"account.mute": "Silencia @{name}",
|
"account.mute": "Silencia @{name}",
|
||||||
"account.mute_notifications": "Silencia les notificacions de @{name}",
|
"account.mute_notifications": "Silencia les notificacions de @{name}",
|
||||||
"account.muted": "Silenciat",
|
"account.muted": "Silenciat",
|
||||||
|
"account.open_original_page": "Obre la pàgina original",
|
||||||
"account.posts": "Publicacions",
|
"account.posts": "Publicacions",
|
||||||
"account.posts_with_replies": "Publicacions i respostes",
|
"account.posts_with_replies": "Publicacions i respostes",
|
||||||
"account.report": "Informa sobre @{name}",
|
"account.report": "Informa quant a @{name}",
|
||||||
"account.requested": "Esperant aprovació. Fes clic per cancel·lar la petició de seguiment",
|
"account.requested": "S'està esperant l'aprovació. Feu clic per a cancel·lar la petició de seguiment",
|
||||||
"account.share": "Comparteix el perfil de @{name}",
|
"account.share": "Comparteix el perfil de @{name}",
|
||||||
"account.show_reblogs": "Mostra els impulsos de @{name}",
|
"account.show_reblogs": "Mostra els impulsos de @{name}",
|
||||||
"account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}",
|
"account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}",
|
||||||
"account.unblock": "Desbloqueja @{name}",
|
"account.unblock": "Desbloqueja @{name}",
|
||||||
"account.unblock_domain": "Desbloqueja el domini {domain}",
|
"account.unblock_domain": "Desbloqueja el domini {domain}",
|
||||||
"account.unblock_short": "Desbloquejar",
|
"account.unblock_short": "Desbloqueja",
|
||||||
"account.unendorse": "No recomanar en el perfil",
|
"account.unendorse": "No recomanis en el perfil",
|
||||||
"account.unfollow": "Deixar de seguir",
|
"account.unfollow": "Deixa de seguir",
|
||||||
"account.unmute": "Deixar de silenciar @{name}",
|
"account.unmute": "Deixar de silenciar @{name}",
|
||||||
"account.unmute_notifications": "Activar notificacions de @{name}",
|
"account.unmute_notifications": "Activa les notificacions de @{name}",
|
||||||
"account.unmute_short": "Deixa de silenciar",
|
"account.unmute_short": "Deixa de silenciar",
|
||||||
"account_note.placeholder": "Clica per afegir-hi una nota",
|
"account_note.placeholder": "Clica per afegir-hi una nota",
|
||||||
"admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous, per dia, després del registre",
|
"admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous per dia, després del registre",
|
||||||
"admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous, per mes, després del registre",
|
"admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous per mes, després del registre",
|
||||||
"admin.dashboard.retention.average": "Mitjana",
|
"admin.dashboard.retention.average": "Mitjana",
|
||||||
"admin.dashboard.retention.cohort": "Mes del registre",
|
"admin.dashboard.retention.cohort": "Mes de registre",
|
||||||
"admin.dashboard.retention.cohort_size": "Nous usuaris",
|
"admin.dashboard.retention.cohort_size": "Usuaris nous",
|
||||||
"alert.rate_limited.message": "Si us plau, torna-ho a provar després de {retry_time, time, medium}.",
|
"alert.rate_limited.message": "Si us plau, torna-ho a provar després de {retry_time, time, medium}.",
|
||||||
"alert.rate_limited.title": "Límit de freqüència",
|
"alert.rate_limited.title": "Límit de freqüència",
|
||||||
"alert.unexpected.message": "S'ha produït un error inesperat.",
|
"alert.unexpected.message": "S'ha produït un error inesperat.",
|
||||||
|
@ -80,21 +79,21 @@
|
||||||
"attachments_list.unprocessed": "(sense processar)",
|
"attachments_list.unprocessed": "(sense processar)",
|
||||||
"audio.hide": "Amaga l'àudio",
|
"audio.hide": "Amaga l'àudio",
|
||||||
"autosuggest_hashtag.per_week": "{count} per setmana",
|
"autosuggest_hashtag.per_week": "{count} per setmana",
|
||||||
"boost_modal.combo": "Pots prémer {combo} per evitar-ho el pròxim cop",
|
"boost_modal.combo": "Podeu prémer {combo} per a evitar-ho el pròxim cop",
|
||||||
"bundle_column_error.copy_stacktrace": "Copiar l'informe d'error",
|
"bundle_column_error.copy_stacktrace": "Copia l'informe d'error",
|
||||||
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podría ser degut a un error en el nostre codi o un problema de compatibilitat del navegador.",
|
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.",
|
||||||
"bundle_column_error.error.title": "Oh, no!",
|
"bundle_column_error.error.title": "Oh, no!",
|
||||||
"bundle_column_error.network.body": "Hi ha hagut un error al intentar carregar aquesta pàgina. Això podria ser degut a un problem temporal amb la teva connexió a internet o amb aquest servidor.",
|
"bundle_column_error.network.body": "Hi ha hagut un error en intentar carregar aquesta pàgina. Això podria ser per un problema temporal amb la teva connexió a internet o amb aquest servidor.",
|
||||||
"bundle_column_error.network.title": "Error de xarxa",
|
"bundle_column_error.network.title": "Error de connexió",
|
||||||
"bundle_column_error.retry": "Tornar-ho a provar",
|
"bundle_column_error.retry": "Torna-ho a provar",
|
||||||
"bundle_column_error.return": "Torna a Inici",
|
"bundle_column_error.return": "Torna a Inici",
|
||||||
"bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Estàs segur que la URL de la barra d'adreces és correcte?",
|
"bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Segur que la URL de la barra d'adreces és correcta?",
|
||||||
"bundle_column_error.routing.title": "404",
|
"bundle_column_error.routing.title": "404",
|
||||||
"bundle_modal_error.close": "Tanca",
|
"bundle_modal_error.close": "Tanca",
|
||||||
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
|
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
|
||||||
"bundle_modal_error.retry": "Tornar-ho a provar",
|
"bundle_modal_error.retry": "Torna-ho a provar",
|
||||||
"closed_registrations.other_server_instructions": "Donat que Mastodon és descentralitzat, pots crear un compte en un altre servidor i encara interactuar amb aquest.",
|
"closed_registrations.other_server_instructions": "Com que Mastodon és descentralitzat, pots crear un compte en un altre servidor i seguir interactuant amb aquest.",
|
||||||
"closed_registrations_modal.description": "Crear un compte a {domain} no és possible ara mateix però, si us plau, tingues en compte que no necessites específicament un compte a {domain} per a usar Mastodon.",
|
"closed_registrations_modal.description": "No es pot crear un compte a {domain} ara mateix, però tingueu en compte que no necessiteu específicament un compte a {domain} per a usar Mastodon.",
|
||||||
"closed_registrations_modal.find_another_server": "Troba un altre servidor",
|
"closed_registrations_modal.find_another_server": "Troba un altre servidor",
|
||||||
"closed_registrations_modal.preamble": "Mastodon és descentralitzat per tant no importa on tinguis el teu compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!",
|
"closed_registrations_modal.preamble": "Mastodon és descentralitzat per tant no importa on tinguis el teu compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!",
|
||||||
"closed_registrations_modal.title": "Registrant-se a Mastodon",
|
"closed_registrations_modal.title": "Registrant-se a Mastodon",
|
||||||
|
@ -131,7 +130,7 @@
|
||||||
"compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.",
|
"compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.",
|
||||||
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure les publicacions de només per a seguidors.",
|
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure les publicacions de només per a seguidors.",
|
||||||
"compose_form.lock_disclaimer.lock": "bloquejat",
|
"compose_form.lock_disclaimer.lock": "bloquejat",
|
||||||
"compose_form.placeholder": "Què et passa pel cap?",
|
"compose_form.placeholder": "Què tens en ment?",
|
||||||
"compose_form.poll.add_option": "Afegir una opció",
|
"compose_form.poll.add_option": "Afegir una opció",
|
||||||
"compose_form.poll.duration": "Durada de l'enquesta",
|
"compose_form.poll.duration": "Durada de l'enquesta",
|
||||||
"compose_form.poll.option_placeholder": "Opció {number}",
|
"compose_form.poll.option_placeholder": "Opció {number}",
|
||||||
|
@ -211,7 +210,7 @@
|
||||||
"empty_column.account_timeline": "No hi ha publicacions aquí!",
|
"empty_column.account_timeline": "No hi ha publicacions aquí!",
|
||||||
"empty_column.account_unavailable": "Perfil no disponible",
|
"empty_column.account_unavailable": "Perfil no disponible",
|
||||||
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
|
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
|
||||||
"empty_column.bookmarked_statuses": "Encara no has marcat com publicació com a preferida. Quan en marquis una apareixerà aquí.",
|
"empty_column.bookmarked_statuses": "Encara no has marcat cap publicació com a preferida. Quan en marquis una, apareixerà aquí.",
|
||||||
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
|
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
|
||||||
"empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
|
"empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
|
||||||
"empty_column.domain_blocks": "Encara no hi ha dominis bloquejats.",
|
"empty_column.domain_blocks": "Encara no hi ha dominis bloquejats.",
|
||||||
|
@ -258,7 +257,7 @@
|
||||||
"filter_modal.title.status": "Filtra una publicació",
|
"filter_modal.title.status": "Filtra una publicació",
|
||||||
"follow_recommendations.done": "Fet",
|
"follow_recommendations.done": "Fet",
|
||||||
"follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure les seves publicacions! Aquí hi ha algunes recomanacions.",
|
"follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure les seves publicacions! Aquí hi ha algunes recomanacions.",
|
||||||
"follow_recommendations.lead": "Les publicacions del usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!",
|
"follow_recommendations.lead": "Les publicacions dels usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!",
|
||||||
"follow_request.authorize": "Autoritza",
|
"follow_request.authorize": "Autoritza",
|
||||||
"follow_request.reject": "Rebutja",
|
"follow_request.reject": "Rebutja",
|
||||||
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment d’aquests comptes manualment.",
|
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment d’aquests comptes manualment.",
|
||||||
|
@ -293,9 +292,9 @@
|
||||||
"interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.",
|
"interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.",
|
||||||
"interaction_modal.on_another_server": "En un servidor diferent",
|
"interaction_modal.on_another_server": "En un servidor diferent",
|
||||||
"interaction_modal.on_this_server": "En aquest servidor",
|
"interaction_modal.on_this_server": "En aquest servidor",
|
||||||
"interaction_modal.other_server_instructions": "Simplement còpia i enganxa aquesta URL en la barra de cerca de la teva aplicació preferida o en l'interfície web on tens sessió iniciada.",
|
"interaction_modal.other_server_instructions": "Copia i enganxa aquest enllaç en el camp de cerca de la teva aplicació Mastodon preferida o en l'interfície web del teu servidor Mastodon.",
|
||||||
"interaction_modal.preamble": "Donat que Mastodon és descentralitzat, pots fer servir el teu compte existent a un altre servidor Mastodon o plataforma compatible si és que no tens compte en aquest.",
|
"interaction_modal.preamble": "Donat que Mastodon és descentralitzat, pots fer servir el teu compte existent a un altre servidor Mastodon o plataforma compatible si és que no tens compte en aquest.",
|
||||||
"interaction_modal.title.favourite": "Afavoreix la publicació de {name}",
|
"interaction_modal.title.favourite": "Marca la publicació de {name}",
|
||||||
"interaction_modal.title.follow": "Segueix {name}",
|
"interaction_modal.title.follow": "Segueix {name}",
|
||||||
"interaction_modal.title.reblog": "Impulsa la publicació de {name}",
|
"interaction_modal.title.reblog": "Impulsa la publicació de {name}",
|
||||||
"interaction_modal.title.reply": "Respon a la publicació de {name}",
|
"interaction_modal.title.reply": "Respon a la publicació de {name}",
|
||||||
|
@ -311,7 +310,7 @@
|
||||||
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
|
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
|
||||||
"keyboard_shortcuts.down": "Mou-lo avall en la llista",
|
"keyboard_shortcuts.down": "Mou-lo avall en la llista",
|
||||||
"keyboard_shortcuts.enter": "Obrir publicació",
|
"keyboard_shortcuts.enter": "Obrir publicació",
|
||||||
"keyboard_shortcuts.favourite": "Afavoreix la publicació",
|
"keyboard_shortcuts.favourite": "Marca la publicació",
|
||||||
"keyboard_shortcuts.favourites": "Obre la llista de preferits",
|
"keyboard_shortcuts.favourites": "Obre la llista de preferits",
|
||||||
"keyboard_shortcuts.federated": "Obre la línia de temps federada",
|
"keyboard_shortcuts.federated": "Obre la línia de temps federada",
|
||||||
"keyboard_shortcuts.heading": "Dreceres de teclat",
|
"keyboard_shortcuts.heading": "Dreceres de teclat",
|
||||||
|
@ -543,7 +542,7 @@
|
||||||
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
|
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
|
||||||
"status.admin_status": "Obrir aquesta publicació a la interfície de moderació",
|
"status.admin_status": "Obrir aquesta publicació a la interfície de moderació",
|
||||||
"status.block": "Bloqueja @{name}",
|
"status.block": "Bloqueja @{name}",
|
||||||
"status.bookmark": "Afavoreix",
|
"status.bookmark": "Marca",
|
||||||
"status.cancel_reblog_private": "Desfés l'impuls",
|
"status.cancel_reblog_private": "Desfés l'impuls",
|
||||||
"status.cannot_reblog": "Aquesta publicació no es pot impulsar",
|
"status.cannot_reblog": "Aquesta publicació no es pot impulsar",
|
||||||
"status.copy": "Copia l'enllaç a la publicació",
|
"status.copy": "Copia l'enllaç a la publicació",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "ڕاژە سەرپەرشتیکراو",
|
"about.blocks": "ڕاژە سەرپەرشتیکراو",
|
||||||
"about.contact": "پەیوەندی کردن:",
|
"about.contact": "پەیوەندی کردن:",
|
||||||
"about.disclaimer": "ماستودۆن بە خۆڕایە، پرۆگرامێکی سەرچاوە کراوەیە، وە نیشانە بازرگانیەکەی ماستودۆن (gGmbH)ە",
|
"about.disclaimer": "ماستودۆن بە خۆڕایە، پرۆگرامێکی سەرچاوە کراوەیە، وە نیشانە بازرگانیەکەی ماستودۆن (gGmbH)ە",
|
||||||
"about.domain_blocks.comment": "هۆکار",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "دۆمەین",
|
|
||||||
"about.domain_blocks.preamble": "ماستۆدۆن بە گشتی ڕێگەت پێدەدات بە پیشاندانی ناوەڕۆکەکان و کارلێک کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.",
|
"about.domain_blocks.preamble": "ماستۆدۆن بە گشتی ڕێگەت پێدەدات بە پیشاندانی ناوەڕۆکەکان و کارلێک کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.",
|
||||||
"about.domain_blocks.severity": "ئاستی گرنگی",
|
|
||||||
"about.domain_blocks.silenced.explanation": "بە گشتی ناتوانی زانیاریە تایبەتەکان و ناوەڕۆکی ئەم ڕاژەیە ببینی، مەگەر بە ڕوونی بەدوایدا بگەڕێیت یان هەڵیبژێریت بۆ شوێنکەوتنی.",
|
"about.domain_blocks.silenced.explanation": "بە گشتی ناتوانی زانیاریە تایبەتەکان و ناوەڕۆکی ئەم ڕاژەیە ببینی، مەگەر بە ڕوونی بەدوایدا بگەڕێیت یان هەڵیبژێریت بۆ شوێنکەوتنی.",
|
||||||
"about.domain_blocks.silenced.title": "سنووردار",
|
"about.domain_blocks.silenced.title": "سنووردار",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "بێدەنگکردن @{name}",
|
"account.mute": "بێدەنگکردن @{name}",
|
||||||
"account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}",
|
"account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}",
|
||||||
"account.muted": "بێ دەنگ",
|
"account.muted": "بێ دەنگ",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "توتس",
|
"account.posts": "توتس",
|
||||||
"account.posts_with_replies": "توتس و وەڵامەکان",
|
"account.posts_with_replies": "توتس و وەڵامەکان",
|
||||||
"account.report": "گوزارشت @{name}",
|
"account.report": "گوزارشت @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Piattà @{name}",
|
"account.mute": "Piattà @{name}",
|
||||||
"account.mute_notifications": "Piattà nutificazione da @{name}",
|
"account.mute_notifications": "Piattà nutificazione da @{name}",
|
||||||
"account.muted": "Piattatu",
|
"account.muted": "Piattatu",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Statuti",
|
"account.posts": "Statuti",
|
||||||
"account.posts_with_replies": "Statuti è risposte",
|
"account.posts_with_replies": "Statuti è risposte",
|
||||||
"account.report": "Palisà @{name}",
|
"account.report": "Palisà @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderované servery",
|
"about.blocks": "Moderované servery",
|
||||||
"about.contact": "Kontakt:",
|
"about.contact": "Kontakt:",
|
||||||
"about.disclaimer": "Mastodon je svobodný software s otevřeným zdrojovým kódem a ochranná známka společnosti Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon je svobodný software s otevřeným zdrojovým kódem a ochranná známka společnosti Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Důvod",
|
"about.domain_blocks.no_reason_available": "Důvod není k dispozici",
|
||||||
"about.domain_blocks.domain": "Doména",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon umožňuje prohlížet obsah a komunikovat s uživateli jakéhokoliv serveru ve fediversu. Pro tento konkrétní server se vztahují následující výjimky.",
|
"about.domain_blocks.preamble": "Mastodon umožňuje prohlížet obsah a komunikovat s uživateli jakéhokoliv serveru ve fediversu. Pro tento konkrétní server se vztahují následující výjimky.",
|
||||||
"about.domain_blocks.severity": "Závažnost",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Uživatele a obsah tohoto serveru neuvidíte, pokud je nebudete výslovně hledat nebo je nezačnete sledovat.",
|
"about.domain_blocks.silenced.explanation": "Uživatele a obsah tohoto serveru neuvidíte, pokud je nebudete výslovně hledat nebo je nezačnete sledovat.",
|
||||||
"about.domain_blocks.silenced.title": "Omezeno",
|
"about.domain_blocks.silenced.title": "Omezeno",
|
||||||
"about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.",
|
"about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Skrýt @{name}",
|
"account.mute": "Skrýt @{name}",
|
||||||
"account.mute_notifications": "Skrýt oznámení od @{name}",
|
"account.mute_notifications": "Skrýt oznámení od @{name}",
|
||||||
"account.muted": "Skryt",
|
"account.muted": "Skryt",
|
||||||
|
"account.open_original_page": "Otevřít původní stránku",
|
||||||
"account.posts": "Příspěvky",
|
"account.posts": "Příspěvky",
|
||||||
"account.posts_with_replies": "Příspěvky a odpovědi",
|
"account.posts_with_replies": "Příspěvky a odpovědi",
|
||||||
"account.report": "Nahlásit @{name}",
|
"account.report": "Nahlásit @{name}",
|
||||||
|
@ -72,7 +71,7 @@
|
||||||
"admin.dashboard.retention.average": "Průměr",
|
"admin.dashboard.retention.average": "Průměr",
|
||||||
"admin.dashboard.retention.cohort": "Měsíc registrace",
|
"admin.dashboard.retention.cohort": "Měsíc registrace",
|
||||||
"admin.dashboard.retention.cohort_size": "Noví uživatelé",
|
"admin.dashboard.retention.cohort_size": "Noví uživatelé",
|
||||||
"alert.rate_limited.message": "Zkuste to prosím znovu za {retry_time, time, medium}.",
|
"alert.rate_limited.message": "Zkuste to prosím znovu po {retry_time, time, medium}.",
|
||||||
"alert.rate_limited.title": "Spojení omezena",
|
"alert.rate_limited.title": "Spojení omezena",
|
||||||
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
|
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
|
||||||
"alert.unexpected.title": "Jejda!",
|
"alert.unexpected.title": "Jejda!",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "S účtem na Mastodonu můžete reagovat na tento příspěvek.",
|
"interaction_modal.description.reply": "S účtem na Mastodonu můžete reagovat na tento příspěvek.",
|
||||||
"interaction_modal.on_another_server": "Na jiném serveru",
|
"interaction_modal.on_another_server": "Na jiném serveru",
|
||||||
"interaction_modal.on_this_server": "Na tomto serveru",
|
"interaction_modal.on_this_server": "Na tomto serveru",
|
||||||
"interaction_modal.other_server_instructions": "Jednoduše zkopírujte a vložte tuto adresu do vyhledávacího panelu vaší oblíbené aplikace nebo webového rozhraní, kde jste přihlášeni.",
|
"interaction_modal.other_server_instructions": "Zkopírujte a vložte tuto URL do vyhledávacího pole vaší oblíbené Mastodon aplikace nebo webového rozhraní vašeho Mastodon serveru.",
|
||||||
"interaction_modal.preamble": "Protože je Mastodon decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.",
|
"interaction_modal.preamble": "Protože je Mastodon decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.",
|
||||||
"interaction_modal.title.favourite": "Oblíbený příspěvek {name}",
|
"interaction_modal.title.favourite": "Oblíbený příspěvek {name}",
|
||||||
"interaction_modal.title.follow": "Sledovat {name}",
|
"interaction_modal.title.follow": "Sledovat {name}",
|
||||||
|
@ -611,7 +610,7 @@
|
||||||
"timeline_hint.resources.followers": "Sledující",
|
"timeline_hint.resources.followers": "Sledující",
|
||||||
"timeline_hint.resources.follows": "Sledovaní",
|
"timeline_hint.resources.follows": "Sledovaní",
|
||||||
"timeline_hint.resources.statuses": "Starší příspěvky",
|
"timeline_hint.resources.statuses": "Starší příspěvky",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
|
"trends.counter_by_accounts": "{count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}} za poslední {days, plural, one {den} few {{days} dny} many {{days} dnů} other {{days} dnů}}",
|
||||||
"trends.trending_now": "Právě populární",
|
"trends.trending_now": "Právě populární",
|
||||||
"ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.",
|
"ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.",
|
||||||
"units.short.billion": "{count} mld.",
|
"units.short.billion": "{count} mld.",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Gweinyddion sy'n cael eu cymedroli",
|
"about.blocks": "Gweinyddion sy'n cael eu cymedroli",
|
||||||
"about.contact": "Cyswllt:",
|
"about.contact": "Cyswllt:",
|
||||||
"about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.",
|
"about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Rheswm",
|
"about.domain_blocks.no_reason_available": "Rheswm ddim ar gael",
|
||||||
"about.domain_blocks.domain": "Parth",
|
|
||||||
"about.domain_blocks.preamble": "Yn gyffredinol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
|
"about.domain_blocks.preamble": "Yn gyffredinol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
|
||||||
"about.domain_blocks.severity": "Difrifoldeb",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Yn gyffredinol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
|
"about.domain_blocks.silenced.explanation": "Yn gyffredinol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
|
||||||
"about.domain_blocks.silenced.title": "Tawelwyd",
|
"about.domain_blocks.silenced.title": "Tawelwyd",
|
||||||
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
|
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
|
||||||
|
@ -30,7 +28,7 @@
|
||||||
"account.endorse": "Arddangos ar fy mhroffil",
|
"account.endorse": "Arddangos ar fy mhroffil",
|
||||||
"account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}",
|
"account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}",
|
||||||
"account.featured_tags.last_status_never": "Dim postiadau",
|
"account.featured_tags.last_status_never": "Dim postiadau",
|
||||||
"account.featured_tags.title": "{name}'s featured hashtags",
|
"account.featured_tags.title": "hashnodau dan sylw {name}",
|
||||||
"account.follow": "Dilyn",
|
"account.follow": "Dilyn",
|
||||||
"account.followers": "Dilynwyr",
|
"account.followers": "Dilynwyr",
|
||||||
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
|
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Tawelu @{name}",
|
"account.mute": "Tawelu @{name}",
|
||||||
"account.mute_notifications": "Cuddio hysbysiadau o @{name}",
|
"account.mute_notifications": "Cuddio hysbysiadau o @{name}",
|
||||||
"account.muted": "Distewyd",
|
"account.muted": "Distewyd",
|
||||||
|
"account.open_original_page": "Agor y dudalen wreiddiol",
|
||||||
"account.posts": "Postiadau",
|
"account.posts": "Postiadau",
|
||||||
"account.posts_with_replies": "Postiadau ac atebion",
|
"account.posts_with_replies": "Postiadau ac atebion",
|
||||||
"account.report": "Adrodd @{name}",
|
"account.report": "Adrodd @{name}",
|
||||||
|
@ -96,8 +95,8 @@
|
||||||
"closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.",
|
"closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.",
|
||||||
"closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.",
|
"closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.",
|
||||||
"closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall",
|
"closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall",
|
||||||
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
"closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal ef eich hun!",
|
||||||
"closed_registrations_modal.title": "Signing up on Mastodon",
|
"closed_registrations_modal.title": "Cofrestru ar Mastodon",
|
||||||
"column.about": "Ynghylch",
|
"column.about": "Ynghylch",
|
||||||
"column.blocks": "Defnyddwyr a flociwyd",
|
"column.blocks": "Defnyddwyr a flociwyd",
|
||||||
"column.bookmarks": "Tudalnodau",
|
"column.bookmarks": "Tudalnodau",
|
||||||
|
@ -151,8 +150,8 @@
|
||||||
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
|
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
|
||||||
"confirmations.block.confirm": "Blocio",
|
"confirmations.block.confirm": "Blocio",
|
||||||
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
|
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
|
||||||
"confirmations.cancel_follow_request.confirm": "Withdraw request",
|
"confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl",
|
||||||
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
|
"confirmations.cancel_follow_request.message": "Ydych chi'n sicr eich bod chi eisiau tynnu'ch cais i ddilyn {name} yn ôl?",
|
||||||
"confirmations.delete.confirm": "Dileu",
|
"confirmations.delete.confirm": "Dileu",
|
||||||
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
|
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
|
||||||
"confirmations.delete_list.confirm": "Dileu",
|
"confirmations.delete_list.confirm": "Dileu",
|
||||||
|
@ -182,12 +181,12 @@
|
||||||
"directory.local": "O {domain} yn unig",
|
"directory.local": "O {domain} yn unig",
|
||||||
"directory.new_arrivals": "Newydd-ddyfodiaid",
|
"directory.new_arrivals": "Newydd-ddyfodiaid",
|
||||||
"directory.recently_active": "Yn weithredol yn ddiweddar",
|
"directory.recently_active": "Yn weithredol yn ddiweddar",
|
||||||
"disabled_account_banner.account_settings": "Account settings",
|
"disabled_account_banner.account_settings": "Gosodiadau'r cyfrif",
|
||||||
"disabled_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn o bryd.",
|
"disabled_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn o bryd.",
|
||||||
"dismissable_banner.community_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl y caiff eu cyfrifon eu cynnal ar {domain}.",
|
"dismissable_banner.community_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl y caiff eu cyfrifon eu cynnal ar {domain}.",
|
||||||
"dismissable_banner.dismiss": "Diystyru",
|
"dismissable_banner.dismiss": "Diystyru",
|
||||||
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
"dismissable_banner.explore_links": "Mae'r straeon newyddion hyn yn cael eu trafod gan bobl ar y gweinydd hwn a rhai eraill ar y rhwydwaith datganoledig hwn, ar hyn o bryd.",
|
||||||
"dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
|
"dismissable_banner.explore_statuses": "Mae'r cofnodion hyn o'r gweinydd hwn a gweinyddion eraill yn y rhwydwaith datganoledig hwn yn denu sylw ar y gweinydd hwn ar hyn o bryd.",
|
||||||
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
|
||||||
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
|
"dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
|
||||||
"embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
|
"embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
|
||||||
|
@ -248,14 +247,14 @@
|
||||||
"filter_modal.added.review_and_configure_title": "Filter settings",
|
"filter_modal.added.review_and_configure_title": "Filter settings",
|
||||||
"filter_modal.added.settings_link": "settings page",
|
"filter_modal.added.settings_link": "settings page",
|
||||||
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
|
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
|
||||||
"filter_modal.added.title": "Filter added!",
|
"filter_modal.added.title": "Hidlydd wedi'i ychwanegu!",
|
||||||
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
|
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
|
||||||
"filter_modal.select_filter.expired": "expired",
|
"filter_modal.select_filter.expired": "expired",
|
||||||
"filter_modal.select_filter.prompt_new": "Categori newydd: {name}",
|
"filter_modal.select_filter.prompt_new": "Categori newydd: {name}",
|
||||||
"filter_modal.select_filter.search": "Chwilio neu greu",
|
"filter_modal.select_filter.search": "Chwilio neu greu",
|
||||||
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
|
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
|
||||||
"filter_modal.select_filter.title": "Filter this post",
|
"filter_modal.select_filter.title": "Hidlo'r post hwn",
|
||||||
"filter_modal.title.status": "Filter a post",
|
"filter_modal.title.status": "Hidlo post",
|
||||||
"follow_recommendations.done": "Wedi gorffen",
|
"follow_recommendations.done": "Wedi gorffen",
|
||||||
"follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
|
"follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
|
||||||
"follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
|
"follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
|
||||||
|
@ -264,11 +263,11 @@
|
||||||
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
|
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
|
||||||
"footer.about": "Ynghylch",
|
"footer.about": "Ynghylch",
|
||||||
"footer.directory": "Cyfeiriadur proffiliau",
|
"footer.directory": "Cyfeiriadur proffiliau",
|
||||||
"footer.get_app": "Get the app",
|
"footer.get_app": "Lawrlwytho'r ap",
|
||||||
"footer.invite": "Gwahodd pobl",
|
"footer.invite": "Gwahodd pobl",
|
||||||
"footer.keyboard_shortcuts": "Bysellau brys",
|
"footer.keyboard_shortcuts": "Bysellau brys",
|
||||||
"footer.privacy_policy": "Polisi preifatrwydd",
|
"footer.privacy_policy": "Polisi preifatrwydd",
|
||||||
"footer.source_code": "View source code",
|
"footer.source_code": "Gweld y cod ffynhonnell",
|
||||||
"generic.saved": "Wedi'i Gadw",
|
"generic.saved": "Wedi'i Gadw",
|
||||||
"getting_started.heading": "Dechrau",
|
"getting_started.heading": "Dechrau",
|
||||||
"hashtag.column_header.tag_mode.all": "a {additional}",
|
"hashtag.column_header.tag_mode.all": "a {additional}",
|
||||||
|
@ -289,11 +288,11 @@
|
||||||
"home.show_announcements": "Dangos cyhoeddiadau",
|
"home.show_announcements": "Dangos cyhoeddiadau",
|
||||||
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
|
"interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
|
||||||
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
|
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
|
||||||
"interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
|
"interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r post hwn i'w rannu â'ch dilynwyr.",
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r post hwn.",
|
||||||
"interaction_modal.on_another_server": "Ar weinydd gwahanol",
|
"interaction_modal.on_another_server": "Ar weinydd gwahanol",
|
||||||
"interaction_modal.on_this_server": "Ar y gweinydd hwn",
|
"interaction_modal.on_this_server": "Ar y gweinydd hwn",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Hoffi post {name}",
|
"interaction_modal.title.favourite": "Hoffi post {name}",
|
||||||
"interaction_modal.title.follow": "Dilyn {name}",
|
"interaction_modal.title.follow": "Dilyn {name}",
|
||||||
|
@ -361,7 +360,7 @@
|
||||||
"media_gallery.toggle_visible": "Toglo gwelededd",
|
"media_gallery.toggle_visible": "Toglo gwelededd",
|
||||||
"missing_indicator.label": "Heb ei ganfod",
|
"missing_indicator.label": "Heb ei ganfod",
|
||||||
"missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn",
|
"missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn",
|
||||||
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
|
"moved_to_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn y bryd am i chi symud i {movedToAccount}.",
|
||||||
"mute_modal.duration": "Hyd",
|
"mute_modal.duration": "Hyd",
|
||||||
"mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?",
|
"mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?",
|
||||||
"mute_modal.indefinite": "Amhenodol",
|
"mute_modal.indefinite": "Amhenodol",
|
||||||
|
@ -376,7 +375,7 @@
|
||||||
"navigation_bar.edit_profile": "Golygu proffil",
|
"navigation_bar.edit_profile": "Golygu proffil",
|
||||||
"navigation_bar.explore": "Archwilio",
|
"navigation_bar.explore": "Archwilio",
|
||||||
"navigation_bar.favourites": "Ffefrynnau",
|
"navigation_bar.favourites": "Ffefrynnau",
|
||||||
"navigation_bar.filters": "Geiriau a dawelwyd",
|
"navigation_bar.filters": "Geiriau a fudwyd",
|
||||||
"navigation_bar.follow_requests": "Ceisiadau dilyn",
|
"navigation_bar.follow_requests": "Ceisiadau dilyn",
|
||||||
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
|
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
|
||||||
"navigation_bar.lists": "Rhestrau",
|
"navigation_bar.lists": "Rhestrau",
|
||||||
|
@ -388,7 +387,7 @@
|
||||||
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
|
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
|
||||||
"navigation_bar.search": "Chwilio",
|
"navigation_bar.search": "Chwilio",
|
||||||
"navigation_bar.security": "Diogelwch",
|
"navigation_bar.security": "Diogelwch",
|
||||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
|
||||||
"notification.admin.report": "Adroddodd {name} {target}",
|
"notification.admin.report": "Adroddodd {name} {target}",
|
||||||
"notification.admin.sign_up": "Cofrestrodd {name}",
|
"notification.admin.sign_up": "Cofrestrodd {name}",
|
||||||
"notification.favourite": "Hoffodd {name} eich post",
|
"notification.favourite": "Hoffodd {name} eich post",
|
||||||
|
@ -408,7 +407,7 @@
|
||||||
"notifications.column_settings.favourite": "Ffefrynnau:",
|
"notifications.column_settings.favourite": "Ffefrynnau:",
|
||||||
"notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
|
"notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
|
||||||
"notifications.column_settings.filter_bar.category": "Bar hidlo",
|
"notifications.column_settings.filter_bar.category": "Bar hidlo",
|
||||||
"notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo",
|
"notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo",
|
||||||
"notifications.column_settings.follow": "Dilynwyr newydd:",
|
"notifications.column_settings.follow": "Dilynwyr newydd:",
|
||||||
"notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
|
"notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
|
||||||
"notifications.column_settings.mention": "Crybwylliadau:",
|
"notifications.column_settings.mention": "Crybwylliadau:",
|
||||||
|
@ -422,11 +421,11 @@
|
||||||
"notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
|
"notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
|
||||||
"notifications.column_settings.update": "Golygiadau:",
|
"notifications.column_settings.update": "Golygiadau:",
|
||||||
"notifications.filter.all": "Popeth",
|
"notifications.filter.all": "Popeth",
|
||||||
"notifications.filter.boosts": "Hybiadau",
|
"notifications.filter.boosts": "Hybiau",
|
||||||
"notifications.filter.favourites": "Ffefrynnau",
|
"notifications.filter.favourites": "Ffefrynnau",
|
||||||
"notifications.filter.follows": "Yn dilyn",
|
"notifications.filter.follows": "Yn dilyn",
|
||||||
"notifications.filter.mentions": "Crybwylliadau",
|
"notifications.filter.mentions": "Crybwylliadau",
|
||||||
"notifications.filter.polls": "Canlyniadau pleidlais",
|
"notifications.filter.polls": "Canlyniadau polau",
|
||||||
"notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn",
|
"notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn",
|
||||||
"notifications.grant_permission": "Caniatáu.",
|
"notifications.grant_permission": "Caniatáu.",
|
||||||
"notifications.group": "{count} o hysbysiadau",
|
"notifications.group": "{count} o hysbysiadau",
|
||||||
|
@ -555,9 +554,9 @@
|
||||||
"status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
|
"status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
|
||||||
"status.embed": "Plannu",
|
"status.embed": "Plannu",
|
||||||
"status.favourite": "Hoffi",
|
"status.favourite": "Hoffi",
|
||||||
"status.filter": "Filter this post",
|
"status.filter": "Hidlo'r post hwn",
|
||||||
"status.filtered": "Wedi'i hidlo",
|
"status.filtered": "Wedi'i hidlo",
|
||||||
"status.hide": "Hide toot",
|
"status.hide": "Cuddio'r post",
|
||||||
"status.history.created": "{name} greuodd {date}",
|
"status.history.created": "{name} greuodd {date}",
|
||||||
"status.history.edited": "{name} olygodd {date}",
|
"status.history.edited": "{name} olygodd {date}",
|
||||||
"status.load_more": "Llwythwch mwy",
|
"status.load_more": "Llwythwch mwy",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Modererede servere",
|
"about.blocks": "Modererede servere",
|
||||||
"about.contact": "Kontakt:",
|
"about.contact": "Kontakt:",
|
||||||
"about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Årsag",
|
"about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig",
|
||||||
"about.domain_blocks.domain": "Domæne",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
|
"about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
|
||||||
"about.domain_blocks.severity": "Alvorlighed",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.",
|
"about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.",
|
||||||
"about.domain_blocks.silenced.title": "Begrænset",
|
"about.domain_blocks.silenced.title": "Begrænset",
|
||||||
"about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
|
"about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Skjul @{name}",
|
"account.mute": "Skjul @{name}",
|
||||||
"account.mute_notifications": "Skjul notifikationer fra @{name}",
|
"account.mute_notifications": "Skjul notifikationer fra @{name}",
|
||||||
"account.muted": "Tystnet",
|
"account.muted": "Tystnet",
|
||||||
|
"account.open_original_page": "Åbn oprindelig side",
|
||||||
"account.posts": "Indlæg",
|
"account.posts": "Indlæg",
|
||||||
"account.posts_with_replies": "Indlæg og svar",
|
"account.posts_with_replies": "Indlæg og svar",
|
||||||
"account.report": "Anmeld @{name}",
|
"account.report": "Anmeld @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.",
|
"interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.",
|
||||||
"interaction_modal.on_another_server": "På en anden server",
|
"interaction_modal.on_another_server": "På en anden server",
|
||||||
"interaction_modal.on_this_server": "På denne server",
|
"interaction_modal.on_this_server": "På denne server",
|
||||||
"interaction_modal.other_server_instructions": "Kopiér og indsæt blot denne URL i søgefeltet i den foretrukne app eller webgrænsefladen, hvor man er logget ind.",
|
"interaction_modal.other_server_instructions": "Kopiér og indsæt denne URL i søgefeltet på en Mastodon-app eller webgrænseflade til en Mastodon-server.",
|
||||||
"interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.",
|
"interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.",
|
||||||
"interaction_modal.title.favourite": "Gør {name}s indlæg til favorit",
|
"interaction_modal.title.favourite": "Gør {name}s indlæg til favorit",
|
||||||
"interaction_modal.title.follow": "Følg {name}",
|
"interaction_modal.title.follow": "Følg {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderierte Server",
|
"about.blocks": "Moderierte Server",
|
||||||
"about.contact": "Kontakt:",
|
"about.contact": "Kontakt:",
|
||||||
"about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Begründung",
|
"about.domain_blocks.no_reason_available": "Grund unbekannt",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.",
|
"about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.",
|
||||||
"about.domain_blocks.severity": "Schweregrad",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen – oder Du folgst einer Person dieser Mastodon-Instanz.",
|
"about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen – oder Du folgst einer Person dieser Mastodon-Instanz.",
|
||||||
"about.domain_blocks.silenced.title": "Limitiert",
|
"about.domain_blocks.silenced.title": "Limitiert",
|
||||||
"about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.",
|
"about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.",
|
||||||
|
@ -44,13 +42,14 @@
|
||||||
"account.joined_short": "Beigetreten",
|
"account.joined_short": "Beigetreten",
|
||||||
"account.languages": "Genutzte Sprachen überarbeiten",
|
"account.languages": "Genutzte Sprachen überarbeiten",
|
||||||
"account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt",
|
"account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt",
|
||||||
"account.locked_info": "Der Privatsphärenstatus dieses Kontos wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
|
"account.locked_info": "Die Privatsphäre dieses Kontos wurde auf „geschützt“ gesetzt. Die Person bestimmt manuell, wer ihrem Profil folgen darf.",
|
||||||
"account.media": "Medien",
|
"account.media": "Medien",
|
||||||
"account.mention": "@{name} im Beitrag erwähnen",
|
"account.mention": "@{name} im Beitrag erwähnen",
|
||||||
"account.moved_to": "{name} hat angegeben, dass dieser der neue Account ist:",
|
"account.moved_to": "{name} hat angegeben, dass dieser der neue Account ist:",
|
||||||
"account.mute": "@{name} stummschalten",
|
"account.mute": "@{name} stummschalten",
|
||||||
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
|
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
|
||||||
"account.muted": "Stummgeschaltet",
|
"account.muted": "Stummgeschaltet",
|
||||||
|
"account.open_original_page": "Ursprüngliche Seite öffnen",
|
||||||
"account.posts": "Beiträge",
|
"account.posts": "Beiträge",
|
||||||
"account.posts_with_replies": "Beiträge und Antworten",
|
"account.posts_with_replies": "Beiträge und Antworten",
|
||||||
"account.report": "@{name} melden",
|
"account.report": "@{name} melden",
|
||||||
|
@ -88,15 +87,15 @@
|
||||||
"bundle_column_error.network.title": "Netzwerkfehler",
|
"bundle_column_error.network.title": "Netzwerkfehler",
|
||||||
"bundle_column_error.retry": "Erneut versuchen",
|
"bundle_column_error.retry": "Erneut versuchen",
|
||||||
"bundle_column_error.return": "Zurück zur Startseite",
|
"bundle_column_error.return": "Zurück zur Startseite",
|
||||||
"bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Sind Sie sicher, dass die URL in der Adressleiste korrekt ist?",
|
"bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Bist du dir sicher, dass die URL in der Adressleiste korrekt ist?",
|
||||||
"bundle_column_error.routing.title": "404",
|
"bundle_column_error.routing.title": "404",
|
||||||
"bundle_modal_error.close": "Schließen",
|
"bundle_modal_error.close": "Schließen",
|
||||||
"bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
|
"bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
|
||||||
"bundle_modal_error.retry": "Erneut versuchen",
|
"bundle_modal_error.retry": "Erneut versuchen",
|
||||||
"closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, können Sie ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
|
"closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, kannst du ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
|
||||||
"closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenken Sie bitte, dass Sie kein spezielles Konto auf {domain} benötigen, um Mastodon nutzen zu können.",
|
"closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenke, dass du kein extra Konto auf {domain} benötigst, um Mastodon nutzen zu können.",
|
||||||
"closed_registrations_modal.find_another_server": "Einen anderen Server auswählen",
|
"closed_registrations_modal.find_another_server": "Einen anderen Server auswählen",
|
||||||
"closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, d.h. unabhängig davon, wo Sie Ihr Konto erstellen, können Sie jedem auf diesem Server folgen und mit ihm interagieren. Sie können ihn sogar selbst hosten!",
|
"closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, das heißt unabhängig davon, wo du dein Konto erstellst, kannst du jedes Konto auf diesem Server folgen und mit dem interagieren. Du kannst auch deinen eigenen Server hosten!",
|
||||||
"closed_registrations_modal.title": "Bei Mastodon registrieren",
|
"closed_registrations_modal.title": "Bei Mastodon registrieren",
|
||||||
"column.about": "Über",
|
"column.about": "Über",
|
||||||
"column.blocks": "Blockierte Profile",
|
"column.blocks": "Blockierte Profile",
|
||||||
|
@ -128,7 +127,7 @@
|
||||||
"compose.language.search": "Sprachen suchen …",
|
"compose.language.search": "Sprachen suchen …",
|
||||||
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
|
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
|
||||||
"compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.",
|
"compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.",
|
||||||
"compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Chroniken auf.",
|
"compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Timelines auf.",
|
||||||
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
|
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
|
||||||
"compose_form.lock_disclaimer.lock": "geschützt",
|
"compose_form.lock_disclaimer.lock": "geschützt",
|
||||||
"compose_form.placeholder": "Was gibt's Neues?",
|
"compose_form.placeholder": "Was gibt's Neues?",
|
||||||
|
@ -159,7 +158,7 @@
|
||||||
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
|
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
|
||||||
"confirmations.discard_edit_media.confirm": "Verwerfen",
|
"confirmations.discard_edit_media.confirm": "Verwerfen",
|
||||||
"confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
|
"confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
|
||||||
"confirmations.domain_block.confirm": "Domain sperren",
|
"confirmations.domain_block.confirm": "Blocke die ganze Domain",
|
||||||
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
|
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
|
||||||
"confirmations.logout.confirm": "Abmelden",
|
"confirmations.logout.confirm": "Abmelden",
|
||||||
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
|
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
|
||||||
|
@ -177,7 +176,7 @@
|
||||||
"conversation.open": "Unterhaltung anzeigen",
|
"conversation.open": "Unterhaltung anzeigen",
|
||||||
"conversation.with": "Mit {names}",
|
"conversation.with": "Mit {names}",
|
||||||
"copypaste.copied": "In die Zwischenablage kopiert",
|
"copypaste.copied": "In die Zwischenablage kopiert",
|
||||||
"copypaste.copy": "In die Zwischenablage kopieren",
|
"copypaste.copy": "Kopieren",
|
||||||
"directory.federated": "Aus dem Fediverse",
|
"directory.federated": "Aus dem Fediverse",
|
||||||
"directory.local": "Nur von der Domain {domain}",
|
"directory.local": "Nur von der Domain {domain}",
|
||||||
"directory.new_arrivals": "Neue Profile",
|
"directory.new_arrivals": "Neue Profile",
|
||||||
|
@ -203,7 +202,7 @@
|
||||||
"emoji_button.objects": "Gegenstände",
|
"emoji_button.objects": "Gegenstände",
|
||||||
"emoji_button.people": "Personen",
|
"emoji_button.people": "Personen",
|
||||||
"emoji_button.recent": "Häufig benutzte Emojis",
|
"emoji_button.recent": "Häufig benutzte Emojis",
|
||||||
"emoji_button.search": "Nach Emojis suchen …",
|
"emoji_button.search": "Suchen …",
|
||||||
"emoji_button.search_results": "Suchergebnisse",
|
"emoji_button.search_results": "Suchergebnisse",
|
||||||
"emoji_button.symbols": "Symbole",
|
"emoji_button.symbols": "Symbole",
|
||||||
"emoji_button.travel": "Reisen & Orte",
|
"emoji_button.travel": "Reisen & Orte",
|
||||||
|
@ -212,7 +211,7 @@
|
||||||
"empty_column.account_unavailable": "Profil nicht verfügbar",
|
"empty_column.account_unavailable": "Profil nicht verfügbar",
|
||||||
"empty_column.blocks": "Du hast bisher keine Profile blockiert.",
|
"empty_column.blocks": "Du hast bisher keine Profile blockiert.",
|
||||||
"empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
|
"empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
|
||||||
"empty_column.community": "Die lokale Chronik ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
|
"empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
|
||||||
"empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
|
"empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
|
||||||
"empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
|
"empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
|
||||||
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
|
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
|
||||||
|
@ -227,7 +226,7 @@
|
||||||
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.",
|
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.",
|
||||||
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
|
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
|
||||||
"empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald Du mit anderen Personen interagierst, wirst Du hier darüber benachrichtigt.",
|
"empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald Du mit anderen Personen interagierst, wirst Du hier darüber benachrichtigt.",
|
||||||
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
|
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
|
||||||
"error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
|
"error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
|
||||||
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
|
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
|
||||||
"error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
|
"error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Mit einem Account auf Mastodon kannst du auf diesen Beitrag antworten.",
|
"interaction_modal.description.reply": "Mit einem Account auf Mastodon kannst du auf diesen Beitrag antworten.",
|
||||||
"interaction_modal.on_another_server": "Auf einem anderen Server",
|
"interaction_modal.on_another_server": "Auf einem anderen Server",
|
||||||
"interaction_modal.on_this_server": "Auf diesem Server",
|
"interaction_modal.on_this_server": "Auf diesem Server",
|
||||||
"interaction_modal.other_server_instructions": "Kopiere einfach diese URL und füge sie in die Suchleiste deiner Lieblings-App oder in die Weboberfläche, in der du angemeldet bist, ein.",
|
"interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder im Webinterface deiner Mastodon-Instanz ein.",
|
||||||
"interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.",
|
"interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.",
|
||||||
"interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
|
"interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
|
||||||
"interaction_modal.title.follow": "Folge {name}",
|
"interaction_modal.title.follow": "Folge {name}",
|
||||||
|
@ -313,12 +312,12 @@
|
||||||
"keyboard_shortcuts.enter": "Beitrag öffnen",
|
"keyboard_shortcuts.enter": "Beitrag öffnen",
|
||||||
"keyboard_shortcuts.favourite": "favorisieren",
|
"keyboard_shortcuts.favourite": "favorisieren",
|
||||||
"keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
|
"keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
|
||||||
"keyboard_shortcuts.federated": "Föderierte Chronik öffnen",
|
"keyboard_shortcuts.federated": "Föderierte Timeline öffnen",
|
||||||
"keyboard_shortcuts.heading": "Tastenkombinationen",
|
"keyboard_shortcuts.heading": "Tastenkombinationen",
|
||||||
"keyboard_shortcuts.home": "Startseite öffnen",
|
"keyboard_shortcuts.home": "Startseite öffnen",
|
||||||
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
||||||
"keyboard_shortcuts.legend": "diese Übersicht anzeigen",
|
"keyboard_shortcuts.legend": "diese Übersicht anzeigen",
|
||||||
"keyboard_shortcuts.local": "Lokale Chronik öffnen",
|
"keyboard_shortcuts.local": "Lokale Timeline öffnen",
|
||||||
"keyboard_shortcuts.mention": "Profil erwähnen",
|
"keyboard_shortcuts.mention": "Profil erwähnen",
|
||||||
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
||||||
"keyboard_shortcuts.my_profile": "Dein Profil öffnen",
|
"keyboard_shortcuts.my_profile": "Dein Profil öffnen",
|
||||||
|
@ -342,7 +341,7 @@
|
||||||
"lightbox.next": "Weiter",
|
"lightbox.next": "Weiter",
|
||||||
"lightbox.previous": "Zurück",
|
"lightbox.previous": "Zurück",
|
||||||
"limited_account_hint.action": "Profil trotzdem anzeigen",
|
"limited_account_hint.action": "Profil trotzdem anzeigen",
|
||||||
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innnen der Mastodon-Instanz {domain} ausgeblendet.",
|
"limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.",
|
||||||
"lists.account.add": "Zur Liste hinzufügen",
|
"lists.account.add": "Zur Liste hinzufügen",
|
||||||
"lists.account.remove": "Von der Liste entfernen",
|
"lists.account.remove": "Von der Liste entfernen",
|
||||||
"lists.delete": "Liste löschen",
|
"lists.delete": "Liste löschen",
|
||||||
|
@ -461,7 +460,7 @@
|
||||||
"refresh": "Aktualisieren",
|
"refresh": "Aktualisieren",
|
||||||
"regeneration_indicator.label": "Laden…",
|
"regeneration_indicator.label": "Laden…",
|
||||||
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
|
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
|
||||||
"relative_time.days": "{number}d",
|
"relative_time.days": "{number}T",
|
||||||
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
|
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
|
||||||
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
|
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
|
||||||
"relative_time.full.just_now": "gerade eben",
|
"relative_time.full.just_now": "gerade eben",
|
||||||
|
@ -492,7 +491,7 @@
|
||||||
"report.placeholder": "Zusätzliche Kommentare",
|
"report.placeholder": "Zusätzliche Kommentare",
|
||||||
"report.reasons.dislike": "Das gefällt mir nicht",
|
"report.reasons.dislike": "Das gefällt mir nicht",
|
||||||
"report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
|
"report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
|
||||||
"report.reasons.other": "Da ist was anderes",
|
"report.reasons.other": "Es geht um etwas anderes",
|
||||||
"report.reasons.other_description": "Das Problem passt nicht in die Kategorien",
|
"report.reasons.other_description": "Das Problem passt nicht in die Kategorien",
|
||||||
"report.reasons.spam": "Das ist Spam",
|
"report.reasons.spam": "Das ist Spam",
|
||||||
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
|
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
|
||||||
|
@ -546,7 +545,7 @@
|
||||||
"status.bookmark": "Lesezeichen setzen",
|
"status.bookmark": "Lesezeichen setzen",
|
||||||
"status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
|
"status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
|
||||||
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
||||||
"status.copy": "Kopiere Link des Beitrags",
|
"status.copy": "Link zum Beitrag kopieren",
|
||||||
"status.delete": "Beitrag löschen",
|
"status.delete": "Beitrag löschen",
|
||||||
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
|
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
|
||||||
"status.direct": "Direktnachricht an @{name}",
|
"status.direct": "Direktnachricht an @{name}",
|
||||||
|
@ -589,7 +588,7 @@
|
||||||
"status.show_more_all": "Alle Inhaltswarnungen aufklappen",
|
"status.show_more_all": "Alle Inhaltswarnungen aufklappen",
|
||||||
"status.show_original": "Original anzeigen",
|
"status.show_original": "Original anzeigen",
|
||||||
"status.translate": "Übersetzen",
|
"status.translate": "Übersetzen",
|
||||||
"status.translated_from_with": "Von {lang} mit {provider} übersetzt",
|
"status.translated_from_with": "Aus {lang} mittels {provider} übersetzt",
|
||||||
"status.uncached_media_warning": "Nicht verfügbar",
|
"status.uncached_media_warning": "Nicht verfügbar",
|
||||||
"status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
|
"status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
|
||||||
"status.unpin": "Vom Profil lösen",
|
"status.unpin": "Vom Profil lösen",
|
||||||
|
@ -639,7 +638,7 @@
|
||||||
"upload_modal.preparing_ocr": "Vorbereitung von OCR…",
|
"upload_modal.preparing_ocr": "Vorbereitung von OCR…",
|
||||||
"upload_modal.preview_label": "Vorschau ({ratio})",
|
"upload_modal.preview_label": "Vorschau ({ratio})",
|
||||||
"upload_progress.label": "Wird hochgeladen …",
|
"upload_progress.label": "Wird hochgeladen …",
|
||||||
"upload_progress.processing": "Wird verarbeitet …",
|
"upload_progress.processing": "Wird verarbeitet…",
|
||||||
"video.close": "Video schließen",
|
"video.close": "Video schließen",
|
||||||
"video.download": "Datei herunterladen",
|
"video.download": "Datei herunterladen",
|
||||||
"video.exit_fullscreen": "Vollbild verlassen",
|
"video.exit_fullscreen": "Vollbild verlassen",
|
||||||
|
|
|
@ -682,6 +682,10 @@
|
||||||
{
|
{
|
||||||
"defaultMessage": "Filter this post",
|
"defaultMessage": "Filter this post",
|
||||||
"id": "status.filter"
|
"id": "status.filter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "Open original page",
|
||||||
|
"id": "account.open_original_page"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"path": "app/javascript/mastodon/components/status_action_bar.json"
|
"path": "app/javascript/mastodon/components/status_action_bar.json"
|
||||||
|
@ -887,16 +891,8 @@
|
||||||
"id": "about.domain_blocks.preamble"
|
"id": "about.domain_blocks.preamble"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"defaultMessage": "Domain",
|
"defaultMessage": "Reason not available",
|
||||||
"id": "about.domain_blocks.domain"
|
"id": "about.domain_blocks.no_reason_available"
|
||||||
},
|
|
||||||
{
|
|
||||||
"defaultMessage": "Severity",
|
|
||||||
"id": "about.domain_blocks.severity"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"defaultMessage": "Reason",
|
|
||||||
"id": "about.domain_blocks.comment"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"defaultMessage": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"defaultMessage": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
|
@ -1187,6 +1183,10 @@
|
||||||
"defaultMessage": "Change subscribed languages",
|
"defaultMessage": "Change subscribed languages",
|
||||||
"id": "account.languages"
|
"id": "account.languages"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "Open original page",
|
||||||
|
"id": "account.open_original_page"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"defaultMessage": "Follows you",
|
"defaultMessage": "Follows you",
|
||||||
"id": "account.follows_you"
|
"id": "account.follows_you"
|
||||||
|
@ -2603,7 +2603,7 @@
|
||||||
"id": "interaction_modal.on_another_server"
|
"id": "interaction_modal.on_another_server"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"defaultMessage": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"defaultMessage": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"id": "interaction_modal.other_server_instructions"
|
"id": "interaction_modal.other_server_instructions"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -3598,6 +3598,10 @@
|
||||||
{
|
{
|
||||||
"defaultMessage": "Unblock @{name}",
|
"defaultMessage": "Unblock @{name}",
|
||||||
"id": "account.unblock"
|
"id": "account.unblock"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"defaultMessage": "Open original page",
|
||||||
|
"id": "account.open_original_page"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"path": "app/javascript/mastodon/features/status/components/action_bar.json"
|
"path": "app/javascript/mastodon/features/status/components/action_bar.json"
|
||||||
|
@ -3998,6 +4002,15 @@
|
||||||
],
|
],
|
||||||
"path": "app/javascript/mastodon/features/ui/components/header.json"
|
"path": "app/javascript/mastodon/features/ui/components/header.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"descriptors": [
|
||||||
|
{
|
||||||
|
"defaultMessage": "Close",
|
||||||
|
"id": "lightbox.close"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"path": "app/javascript/mastodon/features/ui/components/image_modal.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"descriptors": [
|
"descriptors": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Επικοινωνία:",
|
"about.contact": "Επικοινωνία:",
|
||||||
"about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.",
|
"about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη",
|
||||||
"about.domain_blocks.domain": "Τομέας (Domain)",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Σοβαρότητα",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Σώπασε @{name}",
|
"account.mute": "Σώπασε @{name}",
|
||||||
"account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}",
|
"account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}",
|
||||||
"account.muted": "Αποσιωπημένος/η",
|
"account.muted": "Αποσιωπημένος/η",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Τουτ",
|
"account.posts": "Τουτ",
|
||||||
"account.posts_with_replies": "Τουτ και απαντήσεις",
|
"account.posts_with_replies": "Τουτ και απαντήσεις",
|
||||||
"account.report": "Κατάγγειλε @{name}",
|
"account.report": "Κατάγγειλε @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
|
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
|
||||||
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
|
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Αντιγράψτε και επικολλήστε αυτήν τη διεύθυνση URL στο πεδίο αναζήτησης της αγαπημένης σας εφαρμογής Mastodon ή στο web interface του διακομιστή σας Mastodon.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the Fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the Fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Mute @{name}",
|
"account.mute": "Mute @{name}",
|
||||||
"account.mute_notifications": "Mute notifications from @{name}",
|
"account.mute_notifications": "Mute notifications from @{name}",
|
||||||
"account.muted": "Muted",
|
"account.muted": "Muted",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Posts",
|
"account.posts": "Posts",
|
||||||
"account.posts_with_replies": "Posts and replies",
|
"account.posts_with_replies": "Posts and replies",
|
||||||
"account.report": "Report @{name}",
|
"account.report": "Report @{name}",
|
||||||
|
@ -66,7 +65,7 @@
|
||||||
"account.unmute": "Unmute @{name}",
|
"account.unmute": "Unmute @{name}",
|
||||||
"account.unmute_notifications": "Unmute notifications from @{name}",
|
"account.unmute_notifications": "Unmute notifications from @{name}",
|
||||||
"account.unmute_short": "Unmute",
|
"account.unmute_short": "Unmute",
|
||||||
"account_note.placeholder": "Click to add a note",
|
"account_note.placeholder": "Click to add note",
|
||||||
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
||||||
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
||||||
"admin.dashboard.retention.average": "Average",
|
"admin.dashboard.retention.average": "Average",
|
||||||
|
@ -93,10 +92,10 @@
|
||||||
"bundle_modal_error.close": "Close",
|
"bundle_modal_error.close": "Close",
|
||||||
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
||||||
"bundle_modal_error.retry": "Try again",
|
"bundle_modal_error.retry": "Try again",
|
||||||
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
|
"closed_registrations.other_server_instructions": "Since Mastodon is decentralised, you can create an account on another server and still interact with this one.",
|
||||||
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
||||||
"closed_registrations_modal.find_another_server": "Find another server",
|
"closed_registrations_modal.find_another_server": "Find another server",
|
||||||
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
"closed_registrations_modal.preamble": "Mastodon is decentralised, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
||||||
"closed_registrations_modal.title": "Signing up on Mastodon",
|
"closed_registrations_modal.title": "Signing up on Mastodon",
|
||||||
"column.about": "About",
|
"column.about": "About",
|
||||||
"column.blocks": "Blocked users",
|
"column.blocks": "Blocked users",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Mute @{name}",
|
"account.mute": "Mute @{name}",
|
||||||
"account.mute_notifications": "Mute notifications from @{name}",
|
"account.mute_notifications": "Mute notifications from @{name}",
|
||||||
"account.muted": "Muted",
|
"account.muted": "Muted",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Posts",
|
"account.posts": "Posts",
|
||||||
"account.posts_with_replies": "Posts and replies",
|
"account.posts_with_replies": "Posts and replies",
|
||||||
"account.report": "Report @{name}",
|
"account.report": "Report @{name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderigitaj serviloj",
|
"about.blocks": "Moderigitaj serviloj",
|
||||||
"about.contact": "Kontakto:",
|
"about.contact": "Kontakto:",
|
||||||
"about.disclaimer": "Mastodon estas libera, malfermitkoda programaro kaj varmarko de la firmao Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon estas libera, malfermitkoda programaro kaj varmarko de la firmao Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Kialo",
|
"about.domain_blocks.no_reason_available": "Kialo ne disponebla",
|
||||||
"about.domain_blocks.domain": "Domajno",
|
"about.domain_blocks.preamble": "Mastodono ebligas vidi enhavojn el uzantoj kaj komuniki kun ilin el aliaj serviloj el la Fediverso. Estas la limigoj deciditaj por tiu ĉi servilo.",
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
|
||||||
"about.domain_blocks.severity": "Graveco",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.",
|
"about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.",
|
||||||
"about.domain_blocks.silenced.title": "Limigita",
|
"about.domain_blocks.silenced.title": "Limigita",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -42,7 +40,7 @@
|
||||||
"account.go_to_profile": "Iri al profilo",
|
"account.go_to_profile": "Iri al profilo",
|
||||||
"account.hide_reblogs": "Kaŝi la plusendojn de @{name}",
|
"account.hide_reblogs": "Kaŝi la plusendojn de @{name}",
|
||||||
"account.joined_short": "Aliĝis",
|
"account.joined_short": "Aliĝis",
|
||||||
"account.languages": "Change subscribed languages",
|
"account.languages": "Ŝanĝi elekton de abonitaj lingvoj",
|
||||||
"account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}",
|
"account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}",
|
||||||
"account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.",
|
"account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.",
|
||||||
"account.media": "Aŭdovidaĵoj",
|
"account.media": "Aŭdovidaĵoj",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Silentigi @{name}",
|
"account.mute": "Silentigi @{name}",
|
||||||
"account.mute_notifications": "Silentigi la sciigojn de @{name}",
|
"account.mute_notifications": "Silentigi la sciigojn de @{name}",
|
||||||
"account.muted": "Silentigita",
|
"account.muted": "Silentigita",
|
||||||
|
"account.open_original_page": "Malfermi originan paĝon",
|
||||||
"account.posts": "Mesaĝoj",
|
"account.posts": "Mesaĝoj",
|
||||||
"account.posts_with_replies": "Mesaĝoj kaj respondoj",
|
"account.posts_with_replies": "Mesaĝoj kaj respondoj",
|
||||||
"account.report": "Raporti @{name}",
|
"account.report": "Raporti @{name}",
|
||||||
|
@ -97,7 +96,7 @@
|
||||||
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
|
||||||
"closed_registrations_modal.find_another_server": "Trovi alian servilon",
|
"closed_registrations_modal.find_another_server": "Trovi alian servilon",
|
||||||
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
|
||||||
"closed_registrations_modal.title": "Registri en Mastodon",
|
"closed_registrations_modal.title": "Krei konton en Mastodon",
|
||||||
"column.about": "Pri",
|
"column.about": "Pri",
|
||||||
"column.blocks": "Blokitaj uzantoj",
|
"column.blocks": "Blokitaj uzantoj",
|
||||||
"column.bookmarks": "Legosignoj",
|
"column.bookmarks": "Legosignoj",
|
||||||
|
@ -151,8 +150,8 @@
|
||||||
"confirmations.block.block_and_report": "Bloki kaj raporti",
|
"confirmations.block.block_and_report": "Bloki kaj raporti",
|
||||||
"confirmations.block.confirm": "Bloki",
|
"confirmations.block.confirm": "Bloki",
|
||||||
"confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?",
|
"confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?",
|
||||||
"confirmations.cancel_follow_request.confirm": "Withdraw request",
|
"confirmations.cancel_follow_request.confirm": "Eksigi peton",
|
||||||
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
|
"confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?",
|
||||||
"confirmations.delete.confirm": "Forigi",
|
"confirmations.delete.confirm": "Forigi",
|
||||||
"confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?",
|
"confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?",
|
||||||
"confirmations.delete_list.confirm": "Forigi",
|
"confirmations.delete_list.confirm": "Forigi",
|
||||||
|
@ -183,7 +182,7 @@
|
||||||
"directory.new_arrivals": "Novaj alvenoj",
|
"directory.new_arrivals": "Novaj alvenoj",
|
||||||
"directory.recently_active": "Lastatempe aktiva",
|
"directory.recently_active": "Lastatempe aktiva",
|
||||||
"disabled_account_banner.account_settings": "Konto-agordoj",
|
"disabled_account_banner.account_settings": "Konto-agordoj",
|
||||||
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
|
"disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.",
|
||||||
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
|
"dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
|
||||||
"dismissable_banner.dismiss": "Eksigi",
|
"dismissable_banner.dismiss": "Eksigi",
|
||||||
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "En alia servilo",
|
"interaction_modal.on_another_server": "En alia servilo",
|
||||||
"interaction_modal.on_this_server": "En ĉi tiu servilo",
|
"interaction_modal.on_this_server": "En ĉi tiu servilo",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Aldoni afiŝon de {name} al la preferaĵoj",
|
"interaction_modal.title.favourite": "Aldoni afiŝon de {name} al la preferaĵoj",
|
||||||
"interaction_modal.title.follow": "Sekvi {name}",
|
"interaction_modal.title.follow": "Sekvi {name}",
|
||||||
|
@ -390,7 +389,7 @@
|
||||||
"navigation_bar.security": "Sekureco",
|
"navigation_bar.security": "Sekureco",
|
||||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
||||||
"notification.admin.report": "{name} raportis {target}",
|
"notification.admin.report": "{name} raportis {target}",
|
||||||
"notification.admin.sign_up": "{name} registris",
|
"notification.admin.sign_up": "{name} kreis konton",
|
||||||
"notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj",
|
"notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj",
|
||||||
"notification.follow": "{name} eksekvis vin",
|
"notification.follow": "{name} eksekvis vin",
|
||||||
"notification.follow_request": "{name} petis sekvi vin",
|
"notification.follow_request": "{name} petis sekvi vin",
|
||||||
|
@ -465,8 +464,8 @@
|
||||||
"relative_time.full.days": "antaŭ {number, plural, one {# tago} other {# tagoj}}",
|
"relative_time.full.days": "antaŭ {number, plural, one {# tago} other {# tagoj}}",
|
||||||
"relative_time.full.hours": "antaŭ {number, plural, one {# horo} other {# horoj}}",
|
"relative_time.full.hours": "antaŭ {number, plural, one {# horo} other {# horoj}}",
|
||||||
"relative_time.full.just_now": "ĵus nun",
|
"relative_time.full.just_now": "ĵus nun",
|
||||||
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
|
"relative_time.full.minutes": "antaŭ {number, plural, one {# minuto} other {# minutoj}}",
|
||||||
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
|
"relative_time.full.seconds": "antaŭ {number, plural, one {# sekundo} other {# sekundoj}}",
|
||||||
"relative_time.hours": "{number}h",
|
"relative_time.hours": "{number}h",
|
||||||
"relative_time.just_now": "nun",
|
"relative_time.just_now": "nun",
|
||||||
"relative_time.minutes": "{number}m",
|
"relative_time.minutes": "{number}m",
|
||||||
|
@ -477,7 +476,7 @@
|
||||||
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
|
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
|
||||||
"report.categories.other": "Aliaj",
|
"report.categories.other": "Aliaj",
|
||||||
"report.categories.spam": "Trudmesaĝo",
|
"report.categories.spam": "Trudmesaĝo",
|
||||||
"report.categories.violation": "Content violates one or more server rules",
|
"report.categories.violation": "Enhavo malobservas unu aŭ plurajn servilajn regulojn",
|
||||||
"report.category.subtitle": "Elektu la plej bonan kongruon",
|
"report.category.subtitle": "Elektu la plej bonan kongruon",
|
||||||
"report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}",
|
"report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}",
|
||||||
"report.category.title_account": "profilo",
|
"report.category.title_account": "profilo",
|
||||||
|
@ -529,15 +528,15 @@
|
||||||
"search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj",
|
"search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj",
|
||||||
"search_results.statuses": "Mesaĝoj",
|
"search_results.statuses": "Mesaĝoj",
|
||||||
"search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
|
"search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
|
||||||
"search_results.title": "Search for {q}",
|
"search_results.title": "Serĉ-rezultoj por {q}",
|
||||||
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
|
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
|
||||||
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
|
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
|
||||||
"server_banner.active_users": "active users",
|
"server_banner.active_users": "active users",
|
||||||
"server_banner.administered_by": "Administered by:",
|
"server_banner.administered_by": "Administrata de:",
|
||||||
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
|
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
|
||||||
"server_banner.learn_more": "Learn more",
|
"server_banner.learn_more": "Learn more",
|
||||||
"server_banner.server_stats": "Server stats:",
|
"server_banner.server_stats": "Statistikoj de la servilo:",
|
||||||
"sign_in_banner.create_account": "Create account",
|
"sign_in_banner.create_account": "Krei konton",
|
||||||
"sign_in_banner.sign_in": "Sign in",
|
"sign_in_banner.sign_in": "Sign in",
|
||||||
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
|
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
|
||||||
"status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
|
"status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
|
||||||
|
@ -588,13 +587,13 @@
|
||||||
"status.show_more": "Montri pli",
|
"status.show_more": "Montri pli",
|
||||||
"status.show_more_all": "Montri pli ĉiun",
|
"status.show_more_all": "Montri pli ĉiun",
|
||||||
"status.show_original": "Show original",
|
"status.show_original": "Show original",
|
||||||
"status.translate": "Translate",
|
"status.translate": "Traduki",
|
||||||
"status.translated_from_with": "Translated from {lang} using {provider}",
|
"status.translated_from_with": "Tradukita el {lang} per {provider}",
|
||||||
"status.uncached_media_warning": "Nedisponebla",
|
"status.uncached_media_warning": "Nedisponebla",
|
||||||
"status.unmute_conversation": "Malsilentigi la konversacion",
|
"status.unmute_conversation": "Malsilentigi la konversacion",
|
||||||
"status.unpin": "Depingli de profilo",
|
"status.unpin": "Depingli de profilo",
|
||||||
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
|
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
|
||||||
"subscribed_languages.save": "Save changes",
|
"subscribed_languages.save": "Konservi ŝanĝojn",
|
||||||
"subscribed_languages.target": "Change subscribed languages for {target}",
|
"subscribed_languages.target": "Change subscribed languages for {target}",
|
||||||
"suggestions.dismiss": "Forigi la proponon",
|
"suggestions.dismiss": "Forigi la proponon",
|
||||||
"suggestions.header": "Vi povus interesiĝi pri…",
|
"suggestions.header": "Vi povus interesiĝi pri…",
|
||||||
|
@ -611,7 +610,7 @@
|
||||||
"timeline_hint.resources.followers": "Sekvantoj",
|
"timeline_hint.resources.followers": "Sekvantoj",
|
||||||
"timeline_hint.resources.follows": "Sekvatoj",
|
"timeline_hint.resources.follows": "Sekvatoj",
|
||||||
"timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj",
|
"timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj",
|
||||||
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
|
"trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} dum la pasinta{days, plural, one { tago} other {j {days} tagoj}}",
|
||||||
"trends.trending_now": "Nunaj furoraĵoj",
|
"trends.trending_now": "Nunaj furoraĵoj",
|
||||||
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
|
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
|
||||||
"units.short.billion": "{count}Md",
|
"units.short.billion": "{count}Md",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Servidores moderados",
|
"about.blocks": "Servidores moderados",
|
||||||
"about.contact": "Contacto:",
|
"about.contact": "Contacto:",
|
||||||
"about.disclaimer": "Mastodon es software libre y de código abierto y una marca comercial de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon es software libre y de código abierto y una marca comercial de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Motivo",
|
"about.domain_blocks.no_reason_available": "Motivo no disponible",
|
||||||
"about.domain_blocks.domain": "Dominio",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
||||||
"about.domain_blocks.severity": "Gravedad",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busqués explícitamente o sigás alguna cuenta.",
|
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busqués explícitamente o sigás alguna cuenta.",
|
||||||
"about.domain_blocks.silenced.title": "Limitados",
|
"about.domain_blocks.silenced.title": "Limitados",
|
||||||
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
||||||
|
@ -51,8 +49,9 @@
|
||||||
"account.mute": "Silenciar a @{name}",
|
"account.mute": "Silenciar a @{name}",
|
||||||
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
||||||
"account.muted": "Silenciado",
|
"account.muted": "Silenciado",
|
||||||
|
"account.open_original_page": "Abrir página original",
|
||||||
"account.posts": "Mensajes",
|
"account.posts": "Mensajes",
|
||||||
"account.posts_with_replies": "Mensajes y respuestas públicas",
|
"account.posts_with_replies": "Mnsjs y resp. públicas",
|
||||||
"account.report": "Denunciar a @{name}",
|
"account.report": "Denunciar a @{name}",
|
||||||
"account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento",
|
"account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento",
|
||||||
"account.share": "Compartir el perfil de @{name}",
|
"account.share": "Compartir el perfil de @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.",
|
"interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.",
|
||||||
"interaction_modal.on_another_server": "En un servidor diferente",
|
"interaction_modal.on_another_server": "En un servidor diferente",
|
||||||
"interaction_modal.on_this_server": "En este servidor",
|
"interaction_modal.on_this_server": "En este servidor",
|
||||||
"interaction_modal.other_server_instructions": "Simplemente copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita o en la interface web en donde hayás iniciado sesión.",
|
"interaction_modal.other_server_instructions": "Copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita de Mastodon, o en la interface web de tu servidor de Mastodon.",
|
||||||
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).",
|
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).",
|
||||||
"interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}",
|
"interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}",
|
||||||
"interaction_modal.title.follow": "Seguir a {name}",
|
"interaction_modal.title.follow": "Seguir a {name}",
|
||||||
|
@ -615,8 +614,8 @@
|
||||||
"trends.trending_now": "Tendencia ahora",
|
"trends.trending_now": "Tendencia ahora",
|
||||||
"ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.",
|
"ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.",
|
||||||
"units.short.billion": "{count}MM",
|
"units.short.billion": "{count}MM",
|
||||||
"units.short.million": "{count}M",
|
"units.short.million": "{count} M",
|
||||||
"units.short.thousand": "{count}mil",
|
"units.short.thousand": "{count} mil",
|
||||||
"upload_area.title": "Para subir, arrastrá y soltá",
|
"upload_area.title": "Para subir, arrastrá y soltá",
|
||||||
"upload_button.label": "Agregá imágenes, o un archivo de audio o video",
|
"upload_button.label": "Agregá imágenes, o un archivo de audio o video",
|
||||||
"upload_error.limit": "Se excedió el límite de subida de archivos.",
|
"upload_error.limit": "Se excedió el límite de subida de archivos.",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Servidores moderados",
|
"about.blocks": "Servidores moderados",
|
||||||
"about.contact": "Contacto:",
|
"about.contact": "Contacto:",
|
||||||
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Razón",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Dominio",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
||||||
"about.domain_blocks.severity": "Gravedad",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
|
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
|
||||||
"about.domain_blocks.silenced.title": "Limitado",
|
"about.domain_blocks.silenced.title": "Limitado",
|
||||||
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
||||||
|
@ -39,7 +37,7 @@
|
||||||
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
|
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
|
||||||
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
||||||
"account.follows_you": "Te sigue",
|
"account.follows_you": "Te sigue",
|
||||||
"account.go_to_profile": "Go to profile",
|
"account.go_to_profile": "Ir al perfil",
|
||||||
"account.hide_reblogs": "Ocultar retoots de @{name}",
|
"account.hide_reblogs": "Ocultar retoots de @{name}",
|
||||||
"account.joined_short": "Se unió",
|
"account.joined_short": "Se unió",
|
||||||
"account.languages": "Cambiar idiomas suscritos",
|
"account.languages": "Cambiar idiomas suscritos",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Silenciar a @{name}",
|
"account.mute": "Silenciar a @{name}",
|
||||||
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
||||||
"account.muted": "Silenciado",
|
"account.muted": "Silenciado",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Publicaciones",
|
"account.posts": "Publicaciones",
|
||||||
"account.posts_with_replies": "Publicaciones y respuestas",
|
"account.posts_with_replies": "Publicaciones y respuestas",
|
||||||
"account.report": "Reportar a @{name}",
|
"account.report": "Reportar a @{name}",
|
||||||
|
@ -182,8 +181,8 @@
|
||||||
"directory.local": "Sólo de {domain}",
|
"directory.local": "Sólo de {domain}",
|
||||||
"directory.new_arrivals": "Recién llegados",
|
"directory.new_arrivals": "Recién llegados",
|
||||||
"directory.recently_active": "Recientemente activo",
|
"directory.recently_active": "Recientemente activo",
|
||||||
"disabled_account_banner.account_settings": "Account settings",
|
"disabled_account_banner.account_settings": "Ajustes de la cuenta",
|
||||||
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
|
"disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
|
||||||
"dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
|
"dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
|
||||||
"dismissable_banner.dismiss": "Descartar",
|
"dismissable_banner.dismiss": "Descartar",
|
||||||
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
|
"dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
|
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
|
||||||
"interaction_modal.on_another_server": "En un servidor diferente",
|
"interaction_modal.on_another_server": "En un servidor diferente",
|
||||||
"interaction_modal.on_this_server": "En este servidor",
|
"interaction_modal.on_this_server": "En este servidor",
|
||||||
"interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.",
|
"interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.",
|
||||||
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
|
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
|
||||||
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
|
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
|
||||||
"interaction_modal.title.follow": "Seguir a {name}",
|
"interaction_modal.title.follow": "Seguir a {name}",
|
||||||
|
@ -361,7 +360,7 @@
|
||||||
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
||||||
"missing_indicator.label": "No encontrado",
|
"missing_indicator.label": "No encontrado",
|
||||||
"missing_indicator.sublabel": "No se encontró este recurso",
|
"missing_indicator.sublabel": "No se encontró este recurso",
|
||||||
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
|
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
|
||||||
"mute_modal.duration": "Duración",
|
"mute_modal.duration": "Duración",
|
||||||
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
|
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
|
||||||
"mute_modal.indefinite": "Indefinida",
|
"mute_modal.indefinite": "Indefinida",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Servidores moderados",
|
"about.blocks": "Servidores moderados",
|
||||||
"about.contact": "Contacto:",
|
"about.contact": "Contacto:",
|
||||||
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Razón",
|
"about.domain_blocks.no_reason_available": "Razón no disponible",
|
||||||
"about.domain_blocks.domain": "Dominio",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
"about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
|
||||||
"about.domain_blocks.severity": "Gravedad",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
|
"about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.",
|
||||||
"about.domain_blocks.silenced.title": "Limitado",
|
"about.domain_blocks.silenced.title": "Limitado",
|
||||||
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
"about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Silenciar a @{name}",
|
"account.mute": "Silenciar a @{name}",
|
||||||
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
"account.mute_notifications": "Silenciar notificaciones de @{name}",
|
||||||
"account.muted": "Silenciado",
|
"account.muted": "Silenciado",
|
||||||
|
"account.open_original_page": "Abrir página original",
|
||||||
"account.posts": "Publicaciones",
|
"account.posts": "Publicaciones",
|
||||||
"account.posts_with_replies": "Publicaciones y respuestas",
|
"account.posts_with_replies": "Publicaciones y respuestas",
|
||||||
"account.report": "Reportar a @{name}",
|
"account.report": "Reportar a @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
|
"interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.",
|
||||||
"interaction_modal.on_another_server": "En un servidor diferente",
|
"interaction_modal.on_another_server": "En un servidor diferente",
|
||||||
"interaction_modal.on_this_server": "En este servidor",
|
"interaction_modal.on_this_server": "En este servidor",
|
||||||
"interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.",
|
"interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.",
|
||||||
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
|
"interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.",
|
||||||
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
|
"interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}",
|
||||||
"interaction_modal.title.follow": "Seguir a {name}",
|
"interaction_modal.title.follow": "Seguir a {name}",
|
||||||
|
@ -502,7 +501,7 @@
|
||||||
"report.rules.title": "¿Qué normas se están violando?",
|
"report.rules.title": "¿Qué normas se están violando?",
|
||||||
"report.statuses.subtitle": "Selecciona todos los que correspondan",
|
"report.statuses.subtitle": "Selecciona todos los que correspondan",
|
||||||
"report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
|
"report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
|
||||||
"report.submit": "Publicar",
|
"report.submit": "Enviar",
|
||||||
"report.target": "Reportando",
|
"report.target": "Reportando",
|
||||||
"report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
|
"report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
|
||||||
"report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
|
"report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Vaigista @{name}",
|
"account.mute": "Vaigista @{name}",
|
||||||
"account.mute_notifications": "Vaigista teated kasutajalt @{name}",
|
"account.mute_notifications": "Vaigista teated kasutajalt @{name}",
|
||||||
"account.muted": "Vaigistatud",
|
"account.muted": "Vaigistatud",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Postitused",
|
"account.posts": "Postitused",
|
||||||
"account.posts_with_replies": "Postitused ja vastused",
|
"account.posts_with_replies": "Postitused ja vastused",
|
||||||
"account.report": "Raporteeri @{name}",
|
"account.report": "Raporteeri @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderatutako zerbitzariak",
|
"about.blocks": "Moderatutako zerbitzariak",
|
||||||
"about.contact": "Kontaktua:",
|
"about.contact": "Kontaktua:",
|
||||||
"about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.",
|
"about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.",
|
||||||
"about.domain_blocks.comment": "Arrazoia",
|
"about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri",
|
||||||
"about.domain_blocks.domain": "Domeinua",
|
|
||||||
"about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.",
|
"about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.",
|
||||||
"about.domain_blocks.severity": "Larritasuna",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Orokorrean ez duzu zerbitzari honetako profil eta edukirik ikusiko. Profilak jarraitzen badituzu edo edukia esplizituki bilatzen baduzu bai.",
|
"about.domain_blocks.silenced.explanation": "Orokorrean ez duzu zerbitzari honetako profil eta edukirik ikusiko. Profilak jarraitzen badituzu edo edukia esplizituki bilatzen baduzu bai.",
|
||||||
"about.domain_blocks.silenced.title": "Mugatua",
|
"about.domain_blocks.silenced.title": "Mugatua",
|
||||||
"about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.",
|
"about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.",
|
||||||
|
@ -39,7 +37,7 @@
|
||||||
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
|
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
|
||||||
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
|
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
|
||||||
"account.follows_you": "Jarraitzen dizu",
|
"account.follows_you": "Jarraitzen dizu",
|
||||||
"account.go_to_profile": "Go to profile",
|
"account.go_to_profile": "Joan profilera",
|
||||||
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
|
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
|
||||||
"account.joined_short": "Elkartuta",
|
"account.joined_short": "Elkartuta",
|
||||||
"account.languages": "Aldatu harpidetutako hizkuntzak",
|
"account.languages": "Aldatu harpidetutako hizkuntzak",
|
||||||
|
@ -47,10 +45,11 @@
|
||||||
"account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.",
|
"account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.",
|
||||||
"account.media": "Multimedia",
|
"account.media": "Multimedia",
|
||||||
"account.mention": "Aipatu @{name}",
|
"account.mention": "Aipatu @{name}",
|
||||||
"account.moved_to": "{name} has indicated that their new account is now:",
|
"account.moved_to": "{name} erabiltzaileak adierazi du bere kontu berria hau dela:",
|
||||||
"account.mute": "Mututu @{name}",
|
"account.mute": "Mututu @{name}",
|
||||||
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
|
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
|
||||||
"account.muted": "Mutututa",
|
"account.muted": "Mutututa",
|
||||||
|
"account.open_original_page": "Ireki jatorrizko orria",
|
||||||
"account.posts": "Bidalketa",
|
"account.posts": "Bidalketa",
|
||||||
"account.posts_with_replies": "Bidalketak eta erantzunak",
|
"account.posts_with_replies": "Bidalketak eta erantzunak",
|
||||||
"account.report": "Salatu @{name}",
|
"account.report": "Salatu @{name}",
|
||||||
|
@ -182,8 +181,8 @@
|
||||||
"directory.local": "{domain} domeinukoak soilik",
|
"directory.local": "{domain} domeinukoak soilik",
|
||||||
"directory.new_arrivals": "Iritsi berriak",
|
"directory.new_arrivals": "Iritsi berriak",
|
||||||
"directory.recently_active": "Duela gutxi aktibo",
|
"directory.recently_active": "Duela gutxi aktibo",
|
||||||
"disabled_account_banner.account_settings": "Account settings",
|
"disabled_account_banner.account_settings": "Kontuaren ezarpenak",
|
||||||
"disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
|
"disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.",
|
||||||
"dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.",
|
"dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.",
|
||||||
"dismissable_banner.dismiss": "Baztertu",
|
"dismissable_banner.dismiss": "Baztertu",
|
||||||
"dismissable_banner.explore_links": "Albiste hauei buruz hitz egiten ari da jendea orain zerbitzari honetan eta sare deszentralizatuko besteetan.",
|
"dismissable_banner.explore_links": "Albiste hauei buruz hitz egiten ari da jendea orain zerbitzari honetan eta sare deszentralizatuko besteetan.",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.",
|
"interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.",
|
||||||
"interaction_modal.on_another_server": "Beste zerbitzari batean",
|
"interaction_modal.on_another_server": "Beste zerbitzari batean",
|
||||||
"interaction_modal.on_this_server": "Zerbitzari honetan",
|
"interaction_modal.on_this_server": "Zerbitzari honetan",
|
||||||
"interaction_modal.other_server_instructions": "Kopiatu eta itsatsi URL hau zure aplikazio gogokoenaren bilaketa-barran edo saioa hasita daukazun web interfazean.",
|
"interaction_modal.other_server_instructions": "Kopiatu eta itsatsi URL hau zure Mastodon aplikazio gogokoenaren edo zure Mastodon zerbitzariaren web interfazeko bilaketa eremuan.",
|
||||||
"interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.",
|
"interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.",
|
||||||
"interaction_modal.title.favourite": "Egin gogoko {name}(r)en bidalketa",
|
"interaction_modal.title.favourite": "Egin gogoko {name}(r)en bidalketa",
|
||||||
"interaction_modal.title.follow": "Jarraitu {name}",
|
"interaction_modal.title.follow": "Jarraitu {name}",
|
||||||
|
@ -342,7 +341,7 @@
|
||||||
"lightbox.next": "Hurrengoa",
|
"lightbox.next": "Hurrengoa",
|
||||||
"lightbox.previous": "Aurrekoa",
|
"lightbox.previous": "Aurrekoa",
|
||||||
"limited_account_hint.action": "Erakutsi profila hala ere",
|
"limited_account_hint.action": "Erakutsi profila hala ere",
|
||||||
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
|
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
|
||||||
"lists.account.add": "Gehitu zerrendara",
|
"lists.account.add": "Gehitu zerrendara",
|
||||||
"lists.account.remove": "Kendu zerrendatik",
|
"lists.account.remove": "Kendu zerrendatik",
|
||||||
"lists.delete": "Ezabatu zerrenda",
|
"lists.delete": "Ezabatu zerrenda",
|
||||||
|
@ -361,7 +360,7 @@
|
||||||
"media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
|
"media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
|
||||||
"missing_indicator.label": "Ez aurkitua",
|
"missing_indicator.label": "Ez aurkitua",
|
||||||
"missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu",
|
"missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu",
|
||||||
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
|
"moved_to_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan, {movedToAccount} kontura aldatu zinelako.",
|
||||||
"mute_modal.duration": "Iraupena",
|
"mute_modal.duration": "Iraupena",
|
||||||
"mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?",
|
"mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?",
|
||||||
"mute_modal.indefinite": "Zehaztu gabe",
|
"mute_modal.indefinite": "Zehaztu gabe",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "کارسازهای نظارت شده",
|
"about.blocks": "کارسازهای نظارت شده",
|
||||||
"about.contact": "تماس:",
|
"about.contact": "تماس:",
|
||||||
"about.disclaimer": "ماستودون نرمافزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.",
|
"about.disclaimer": "ماستودون نرمافزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.",
|
||||||
"about.domain_blocks.comment": "دلیل",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "دامنه",
|
|
||||||
"about.domain_blocks.preamble": "ماستودون عموماً میگذارد محتوا را از از هر کارساز دیگری در دنیای شبکههای اجتماعی غیرمتمرکز دیده و با آنان برهمکنش داشته باشید. اینها استثناهایی هستند که روی این کارساز خاص وضع شدهاند.",
|
"about.domain_blocks.preamble": "ماستودون عموماً میگذارد محتوا را از از هر کارساز دیگری در دنیای شبکههای اجتماعی غیرمتمرکز دیده و با آنان برهمکنش داشته باشید. اینها استثناهایی هستند که روی این کارساز خاص وضع شدهاند.",
|
||||||
"about.domain_blocks.severity": "شدت",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "محدود",
|
"about.domain_blocks.silenced.title": "محدود",
|
||||||
"about.domain_blocks.suspended.explanation": "هیچ دادهای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهمکنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
|
"about.domain_blocks.suspended.explanation": "هیچ دادهای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهمکنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "خموشاندن @{name}",
|
"account.mute": "خموشاندن @{name}",
|
||||||
"account.mute_notifications": "خموشاندن آگاهیهای @{name}",
|
"account.mute_notifications": "خموشاندن آگاهیهای @{name}",
|
||||||
"account.muted": "خموش",
|
"account.muted": "خموش",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "فرسته",
|
"account.posts": "فرسته",
|
||||||
"account.posts_with_replies": "فرستهها و پاسخها",
|
"account.posts_with_replies": "فرستهها و پاسخها",
|
||||||
"account.report": "گزارش @{name}",
|
"account.report": "گزارش @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "روی کارسازی دیگر",
|
"interaction_modal.on_another_server": "روی کارسازی دیگر",
|
||||||
"interaction_modal.on_this_server": "روی این کارساز",
|
"interaction_modal.on_this_server": "روی این کارساز",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "از آنجا که ماستودون نامتمرکز است، میتوانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بنسازهٔ سازگار دیگری میزبانی میشود استفاده کنید.",
|
"interaction_modal.preamble": "از آنجا که ماستودون نامتمرکز است، میتوانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بنسازهٔ سازگار دیگری میزبانی میشود استفاده کنید.",
|
||||||
"interaction_modal.title.favourite": "فرستههای برگزیدهٔ {name}",
|
"interaction_modal.title.favourite": "فرستههای برگزیدهٔ {name}",
|
||||||
"interaction_modal.title.follow": "پیگیری {name}",
|
"interaction_modal.title.follow": "پیگیری {name}",
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Moderoidut palvelimet",
|
"about.blocks": "Moderoidut palvelimet",
|
||||||
"about.contact": "Yhteystiedot:",
|
"about.contact": "Yhteystiedot:",
|
||||||
"about.disclaimer": "Mastodon on ilmainen avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
|
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
|
||||||
"about.domain_blocks.comment": "Syy",
|
"about.domain_blocks.no_reason_available": "Syy ei saatavilla",
|
||||||
"about.domain_blocks.domain": "Verkkotunnus",
|
|
||||||
"about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.",
|
"about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.",
|
||||||
"about.domain_blocks.severity": "Vakavuus",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.",
|
"about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.",
|
||||||
"about.domain_blocks.silenced.title": "Rajoitettu",
|
"about.domain_blocks.silenced.title": "Rajoitettu",
|
||||||
"about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.",
|
"about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.",
|
||||||
|
@ -18,7 +16,7 @@
|
||||||
"account.badges.bot": "Botti",
|
"account.badges.bot": "Botti",
|
||||||
"account.badges.group": "Ryhmä",
|
"account.badges.group": "Ryhmä",
|
||||||
"account.block": "Estä @{name}",
|
"account.block": "Estä @{name}",
|
||||||
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
|
"account.block_domain": "Estä verkkotunnus {domain}",
|
||||||
"account.blocked": "Estetty",
|
"account.blocked": "Estetty",
|
||||||
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
|
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
|
||||||
"account.cancel_follow_request": "Peruuta seurantapyyntö",
|
"account.cancel_follow_request": "Peruuta seurantapyyntö",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Mykistä @{name}",
|
"account.mute": "Mykistä @{name}",
|
||||||
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
|
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
|
||||||
"account.muted": "Mykistetty",
|
"account.muted": "Mykistetty",
|
||||||
|
"account.open_original_page": "Avaa alkuperäinen sivu",
|
||||||
"account.posts": "Viestit",
|
"account.posts": "Viestit",
|
||||||
"account.posts_with_replies": "Viestit ja vastaukset",
|
"account.posts_with_replies": "Viestit ja vastaukset",
|
||||||
"account.report": "Raportoi @{name}",
|
"account.report": "Raportoi @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.",
|
"interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.",
|
||||||
"interaction_modal.on_another_server": "Toisella palvelimella",
|
"interaction_modal.on_another_server": "Toisella palvelimella",
|
||||||
"interaction_modal.on_this_server": "Tällä palvelimella",
|
"interaction_modal.on_this_server": "Tällä palvelimella",
|
||||||
"interaction_modal.other_server_instructions": "Yksinkertaisesti kopioi ja liitä tämä URL-osoite suosikki sovelluksen tai web-käyttöliittymän hakupalkkiin, jossa olet kirjautunut sisään.",
|
"interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen hakukenttään tai Mastodon-palvelimen web-käyttöliittymään.",
|
||||||
"interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.",
|
"interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.",
|
||||||
"interaction_modal.title.favourite": "Suosikin {name} viesti",
|
"interaction_modal.title.favourite": "Suosikin {name} viesti",
|
||||||
"interaction_modal.title.follow": "Seuraa {name}",
|
"interaction_modal.title.follow": "Seuraa {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Serveurs modérés",
|
"about.blocks": "Serveurs modérés",
|
||||||
"about.contact": "Contact :",
|
"about.contact": "Contact :",
|
||||||
"about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Motif",
|
"about.domain_blocks.no_reason_available": "Raison non disponible",
|
||||||
"about.domain_blocks.domain": "Domaine",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
|
"about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
|
||||||
"about.domain_blocks.severity": "Sévérité",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
|
"about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
|
||||||
"about.domain_blocks.silenced.title": "Limité",
|
"about.domain_blocks.silenced.title": "Limité",
|
||||||
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
|
"about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Masquer @{name}",
|
"account.mute": "Masquer @{name}",
|
||||||
"account.mute_notifications": "Masquer les notifications de @{name}",
|
"account.mute_notifications": "Masquer les notifications de @{name}",
|
||||||
"account.muted": "Masqué·e",
|
"account.muted": "Masqué·e",
|
||||||
|
"account.open_original_page": "Ouvrir la page d'origine",
|
||||||
"account.posts": "Messages",
|
"account.posts": "Messages",
|
||||||
"account.posts_with_replies": "Messages et réponses",
|
"account.posts_with_replies": "Messages et réponses",
|
||||||
"account.report": "Signaler @{name}",
|
"account.report": "Signaler @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.",
|
"interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.",
|
||||||
"interaction_modal.on_another_server": "Sur un autre serveur",
|
"interaction_modal.on_another_server": "Sur un autre serveur",
|
||||||
"interaction_modal.on_this_server": "Sur ce serveur",
|
"interaction_modal.on_this_server": "Sur ce serveur",
|
||||||
"interaction_modal.other_server_instructions": "Copiez et collez simplement cette URL dans la barre de recherche de votre application préférée ou dans l’interface web où vous êtes connecté.",
|
"interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.",
|
||||||
"interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.",
|
"interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.",
|
||||||
"interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris",
|
"interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris",
|
||||||
"interaction_modal.title.follow": "Suivre {name}",
|
"interaction_modal.title.follow": "Suivre {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderearre servers",
|
"about.blocks": "Moderearre servers",
|
||||||
"about.contact": "Kontakt:",
|
"about.contact": "Kontakt:",
|
||||||
"about.disclaimer": "Mastodon is frije, iepenboarnesoftware en in hannelsmerk fan Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is frije, iepenboarnesoftware en in hannelsmerk fan Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reden",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domein",
|
|
||||||
"about.domain_blocks.preamble": "Yn it algemien kinsto mei Mastodon berjochten ûntfange fan, en ynteraksje hawwe mei brûkers fan elke server yn de fediverse. Dit binne de útsûnderingen dy’t op dizze spesifike server jilde.",
|
"about.domain_blocks.preamble": "Yn it algemien kinsto mei Mastodon berjochten ûntfange fan, en ynteraksje hawwe mei brûkers fan elke server yn de fediverse. Dit binne de útsûnderingen dy’t op dizze spesifike server jilde.",
|
||||||
"about.domain_blocks.severity": "Swierte",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Yn it algemien sjochsto gjin berjochten en accounts fan dizze server, útsein do berjochten eksplisyt opsikest of derfoar kiest om in account fan dizze server te folgjen.",
|
"about.domain_blocks.silenced.explanation": "Yn it algemien sjochsto gjin berjochten en accounts fan dizze server, útsein do berjochten eksplisyt opsikest of derfoar kiest om in account fan dizze server te folgjen.",
|
||||||
"about.domain_blocks.silenced.title": "Beheind",
|
"about.domain_blocks.silenced.title": "Beheind",
|
||||||
"about.domain_blocks.suspended.explanation": "Der wurde gjin gegevens fan dizze server ferwurke, bewarre of útwiksele, wat ynteraksje of kommunikaasje mei brûkers fan dizze server ûnmooglik makket.",
|
"about.domain_blocks.suspended.explanation": "Der wurde gjin gegevens fan dizze server ferwurke, bewarre of útwiksele, wat ynteraksje of kommunikaasje mei brûkers fan dizze server ûnmooglik makket.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "@{name} negearje",
|
"account.mute": "@{name} negearje",
|
||||||
"account.mute_notifications": "Meldingen fan @{name} negearje",
|
"account.mute_notifications": "Meldingen fan @{name} negearje",
|
||||||
"account.muted": "Negearre",
|
"account.muted": "Negearre",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Berjochten",
|
"account.posts": "Berjochten",
|
||||||
"account.posts_with_replies": "Berjochten en reaksjes",
|
"account.posts_with_replies": "Berjochten en reaksjes",
|
||||||
"account.report": "@{name} rapportearje",
|
"account.report": "@{name} rapportearje",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "Op dizze server",
|
"interaction_modal.on_this_server": "Op dizze server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "{name} folgje",
|
"interaction_modal.title.follow": "{name} folgje",
|
||||||
|
|
|
@ -2,13 +2,11 @@
|
||||||
"about.blocks": "Freastalaithe faoi stiúir",
|
"about.blocks": "Freastalaithe faoi stiúir",
|
||||||
"about.contact": "Teagmháil:",
|
"about.contact": "Teagmháil:",
|
||||||
"about.disclaimer": "Bogearra foinse oscailte saor in aisce is ea Mastodon, agus is le Mastodon gGmbH an trádmharc.",
|
"about.disclaimer": "Bogearra foinse oscailte saor in aisce is ea Mastodon, agus is le Mastodon gGmbH an trádmharc.",
|
||||||
"about.domain_blocks.comment": "Fáth",
|
"about.domain_blocks.no_reason_available": "Níl an fáth ar fáil",
|
||||||
"about.domain_blocks.domain": "Fearann",
|
|
||||||
"about.domain_blocks.preamble": "Go hiondúil, tugann Mastadán cead duit a bheith ag plé le húsáideoirí as freastalaí ar bith eile sa chomhchruinne agus a gcuid inneachair a fheiceáil. Seo iad na heisceachtaí a rinneadh ar an bhfreastalaí áirithe seo.",
|
"about.domain_blocks.preamble": "Go hiondúil, tugann Mastadán cead duit a bheith ag plé le húsáideoirí as freastalaí ar bith eile sa chomhchruinne agus a gcuid inneachair a fheiceáil. Seo iad na heisceachtaí a rinneadh ar an bhfreastalaí áirithe seo.",
|
||||||
"about.domain_blocks.severity": "Déine",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Go hiondúil ní fheicfidh tú próifílí ná inneachar ón bhfreastalaí seo, ach amháin má bhíonn tú á lorg nó má ghlacann tú lena leanúint d'aon ghnó.",
|
"about.domain_blocks.silenced.explanation": "Go hiondúil ní fheicfidh tú próifílí ná inneachar ón bhfreastalaí seo, ach amháin má bhíonn tú á lorg nó má ghlacann tú lena leanúint d'aon ghnó.",
|
||||||
"about.domain_blocks.silenced.title": "Teoranta",
|
"about.domain_blocks.silenced.title": "Teoranta",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "Ní dhéanfar aon sonra ón fhreastalaí seo a phróiseáil, a stóráil ná a mhalartú, rud a fhágann nach féidir aon teagmháil ná aon chumarsáid a dhéanamh le húsáideoirí ón fhreastalaí seo.",
|
||||||
"about.domain_blocks.suspended.title": "Ar fionraí",
|
"about.domain_blocks.suspended.title": "Ar fionraí",
|
||||||
"about.not_available": "Níor cuireadh an t-eolas seo ar fáil ar an bhfreastalaí seo.",
|
"about.not_available": "Níor cuireadh an t-eolas seo ar fáil ar an bhfreastalaí seo.",
|
||||||
"about.powered_by": "Meáin shóisialta díláraithe faoi chumhacht {mastodon}",
|
"about.powered_by": "Meáin shóisialta díláraithe faoi chumhacht {mastodon}",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Balbhaigh @{name}",
|
"account.mute": "Balbhaigh @{name}",
|
||||||
"account.mute_notifications": "Balbhaigh fógraí ó @{name}",
|
"account.mute_notifications": "Balbhaigh fógraí ó @{name}",
|
||||||
"account.muted": "Balbhaithe",
|
"account.muted": "Balbhaithe",
|
||||||
|
"account.open_original_page": "Oscail an leathanach bunaidh",
|
||||||
"account.posts": "Postálacha",
|
"account.posts": "Postálacha",
|
||||||
"account.posts_with_replies": "Postálacha agus freagraí",
|
"account.posts_with_replies": "Postálacha agus freagraí",
|
||||||
"account.report": "Tuairiscigh @{name}",
|
"account.report": "Tuairiscigh @{name}",
|
||||||
|
@ -178,7 +177,7 @@
|
||||||
"conversation.with": "Le {names}",
|
"conversation.with": "Le {names}",
|
||||||
"copypaste.copied": "Cóipeáilte",
|
"copypaste.copied": "Cóipeáilte",
|
||||||
"copypaste.copy": "Cóipeáil",
|
"copypaste.copy": "Cóipeáil",
|
||||||
"directory.federated": "From known fediverse",
|
"directory.federated": "Ó chomhchruinne aitheanta",
|
||||||
"directory.local": "Ó {domain} amháin",
|
"directory.local": "Ó {domain} amháin",
|
||||||
"directory.new_arrivals": "Daoine atá tar éis teacht",
|
"directory.new_arrivals": "Daoine atá tar éis teacht",
|
||||||
"directory.recently_active": "Daoine gníomhacha le déanaí",
|
"directory.recently_active": "Daoine gníomhacha le déanaí",
|
||||||
|
@ -243,17 +242,17 @@
|
||||||
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
|
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
|
||||||
"filter_modal.added.context_mismatch_title": "Context mismatch!",
|
"filter_modal.added.context_mismatch_title": "Context mismatch!",
|
||||||
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
|
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
|
||||||
"filter_modal.added.expired_title": "Expired filter!",
|
"filter_modal.added.expired_title": "Scagaire as feidhm!",
|
||||||
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
|
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
|
||||||
"filter_modal.added.review_and_configure_title": "Socruithe scagtha",
|
"filter_modal.added.review_and_configure_title": "Socruithe scagtha",
|
||||||
"filter_modal.added.settings_link": "leathan socruithe",
|
"filter_modal.added.settings_link": "leathan socruithe",
|
||||||
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
|
"filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
|
||||||
"filter_modal.added.title": "Filter added!",
|
"filter_modal.added.title": "Scagaire curtha leis!",
|
||||||
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
|
"filter_modal.select_filter.context_mismatch": "ní bhaineann sé leis an gcomhthéacs seo",
|
||||||
"filter_modal.select_filter.expired": "as feidhm",
|
"filter_modal.select_filter.expired": "as feidhm",
|
||||||
"filter_modal.select_filter.prompt_new": "Catagóir nua: {name}",
|
"filter_modal.select_filter.prompt_new": "Catagóir nua: {name}",
|
||||||
"filter_modal.select_filter.search": "Search or create",
|
"filter_modal.select_filter.search": "Cuardaigh nó cruthaigh",
|
||||||
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
|
"filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua",
|
||||||
"filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo",
|
"filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo",
|
||||||
"filter_modal.title.status": "Déan scagadh ar phostáil",
|
"filter_modal.title.status": "Déan scagadh ar phostáil",
|
||||||
"follow_recommendations.done": "Déanta",
|
"follow_recommendations.done": "Déanta",
|
||||||
|
@ -265,10 +264,10 @@
|
||||||
"footer.about": "Maidir le",
|
"footer.about": "Maidir le",
|
||||||
"footer.directory": "Eolaire próifílí",
|
"footer.directory": "Eolaire próifílí",
|
||||||
"footer.get_app": "Faigh an aip",
|
"footer.get_app": "Faigh an aip",
|
||||||
"footer.invite": "Invite people",
|
"footer.invite": "Tabhair cuireadh do dhaoine",
|
||||||
"footer.keyboard_shortcuts": "Keyboard shortcuts",
|
"footer.keyboard_shortcuts": "Aicearraí méarchláir",
|
||||||
"footer.privacy_policy": "Polasaí príobháideachais",
|
"footer.privacy_policy": "Polasaí príobháideachais",
|
||||||
"footer.source_code": "View source code",
|
"footer.source_code": "Féach ar an gcód foinseach",
|
||||||
"generic.saved": "Sábháilte",
|
"generic.saved": "Sábháilte",
|
||||||
"getting_started.heading": "Getting started",
|
"getting_started.heading": "Getting started",
|
||||||
"hashtag.column_header.tag_mode.all": "agus {additional}",
|
"hashtag.column_header.tag_mode.all": "agus {additional}",
|
||||||
|
@ -293,12 +292,12 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "Ar freastalaí eile",
|
"interaction_modal.on_another_server": "Ar freastalaí eile",
|
||||||
"interaction_modal.on_this_server": "Ar an freastalaí seo",
|
"interaction_modal.on_this_server": "Ar an freastalaí seo",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Lean {name}",
|
"interaction_modal.title.follow": "Lean {name}",
|
||||||
"interaction_modal.title.reblog": "Boost {name}'s post",
|
"interaction_modal.title.reblog": "Cuir postáil {name} chun cinn",
|
||||||
"interaction_modal.title.reply": "Reply to {name}'s post",
|
"interaction_modal.title.reply": "Freagair postáil {name}",
|
||||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||||
|
@ -309,7 +308,7 @@
|
||||||
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
||||||
"keyboard_shortcuts.description": "Cuntas",
|
"keyboard_shortcuts.description": "Cuntas",
|
||||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||||
"keyboard_shortcuts.down": "to move down in the list",
|
"keyboard_shortcuts.down": "Bog síos ar an liosta",
|
||||||
"keyboard_shortcuts.enter": "Oscail postáil",
|
"keyboard_shortcuts.enter": "Oscail postáil",
|
||||||
"keyboard_shortcuts.favourite": "Roghnaigh postáil",
|
"keyboard_shortcuts.favourite": "Roghnaigh postáil",
|
||||||
"keyboard_shortcuts.favourites": "Oscail liosta roghanna",
|
"keyboard_shortcuts.favourites": "Oscail liosta roghanna",
|
||||||
|
@ -335,7 +334,7 @@
|
||||||
"keyboard_shortcuts.toggle_sensitivity": "Taispeáin / cuir i bhfolach meáin",
|
"keyboard_shortcuts.toggle_sensitivity": "Taispeáin / cuir i bhfolach meáin",
|
||||||
"keyboard_shortcuts.toot": "Cuir tús le postáil nua",
|
"keyboard_shortcuts.toot": "Cuir tús le postáil nua",
|
||||||
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
||||||
"keyboard_shortcuts.up": "to move up in the list",
|
"keyboard_shortcuts.up": "Bog suas ar an liosta",
|
||||||
"lightbox.close": "Dún",
|
"lightbox.close": "Dún",
|
||||||
"lightbox.compress": "Compress image view box",
|
"lightbox.compress": "Compress image view box",
|
||||||
"lightbox.expand": "Expand image view box",
|
"lightbox.expand": "Expand image view box",
|
||||||
|
@ -353,7 +352,7 @@
|
||||||
"lists.replies_policy.followed": "Any followed user",
|
"lists.replies_policy.followed": "Any followed user",
|
||||||
"lists.replies_policy.list": "Baill an liosta",
|
"lists.replies_policy.list": "Baill an liosta",
|
||||||
"lists.replies_policy.none": "Duine ar bith",
|
"lists.replies_policy.none": "Duine ar bith",
|
||||||
"lists.replies_policy.title": "Show replies to:",
|
"lists.replies_policy.title": "Taispeáin freagraí:",
|
||||||
"lists.search": "Cuardaigh i measc daoine atá á leanúint agat",
|
"lists.search": "Cuardaigh i measc daoine atá á leanúint agat",
|
||||||
"lists.subheading": "Do liostaí",
|
"lists.subheading": "Do liostaí",
|
||||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||||
|
@ -428,13 +427,13 @@
|
||||||
"notifications.filter.mentions": "Tráchtanna",
|
"notifications.filter.mentions": "Tráchtanna",
|
||||||
"notifications.filter.polls": "Torthaí suirbhéanna",
|
"notifications.filter.polls": "Torthaí suirbhéanna",
|
||||||
"notifications.filter.statuses": "Updates from people you follow",
|
"notifications.filter.statuses": "Updates from people you follow",
|
||||||
"notifications.grant_permission": "Grant permission.",
|
"notifications.grant_permission": "Tabhair cead.",
|
||||||
"notifications.group": "{count} notifications",
|
"notifications.group": "{count} fógraí",
|
||||||
"notifications.mark_as_read": "Mark every notification as read",
|
"notifications.mark_as_read": "Mark every notification as read",
|
||||||
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
|
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
|
||||||
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
|
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
|
||||||
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
|
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
|
||||||
"notifications_permission_banner.enable": "Enable desktop notifications",
|
"notifications_permission_banner.enable": "Ceadaigh fógraí ar an deasc",
|
||||||
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
|
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
|
||||||
"notifications_permission_banner.title": "Never miss a thing",
|
"notifications_permission_banner.title": "Never miss a thing",
|
||||||
"picture_in_picture.restore": "Cuir é ar ais",
|
"picture_in_picture.restore": "Cuir é ar ais",
|
||||||
|
@ -451,8 +450,8 @@
|
||||||
"privacy.direct.long": "Visible for mentioned users only",
|
"privacy.direct.long": "Visible for mentioned users only",
|
||||||
"privacy.direct.short": "Direct",
|
"privacy.direct.short": "Direct",
|
||||||
"privacy.private.long": "Sofheicthe do Leantóirí amháin",
|
"privacy.private.long": "Sofheicthe do Leantóirí amháin",
|
||||||
"privacy.private.short": "Followers-only",
|
"privacy.private.short": "Leantóirí amháin",
|
||||||
"privacy.public.long": "Visible for all",
|
"privacy.public.long": "Infheicthe do chách",
|
||||||
"privacy.public.short": "Poiblí",
|
"privacy.public.short": "Poiblí",
|
||||||
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
|
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
|
||||||
"privacy.unlisted.short": "Neamhliostaithe",
|
"privacy.unlisted.short": "Neamhliostaithe",
|
||||||
|
|
|
@ -2,11 +2,9 @@
|
||||||
"about.blocks": "Frithealaichean fo mhaorsainneachd",
|
"about.blocks": "Frithealaichean fo mhaorsainneachd",
|
||||||
"about.contact": "Fios thugainn:",
|
"about.contact": "Fios thugainn:",
|
||||||
"about.disclaimer": "’S e bathar-bog saor le bun-tùs fosgailte a th’ ann am Mastodon agus ’na chomharra-mhalairt aig Mastodon gGmbH.",
|
"about.disclaimer": "’S e bathar-bog saor le bun-tùs fosgailte a th’ ann am Mastodon agus ’na chomharra-mhalairt aig Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Adhbhar",
|
"about.domain_blocks.no_reason_available": "Chan eil an t-adhbhar ga thoirt seachad",
|
||||||
"about.domain_blocks.domain": "Àrainn",
|
|
||||||
"about.domain_blocks.preamble": "San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus eadar-ghìomh a ghabhail leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.",
|
"about.domain_blocks.preamble": "San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus eadar-ghìomh a ghabhail leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.",
|
||||||
"about.domain_blocks.severity": "Donad",
|
"about.domain_blocks.silenced.explanation": "San fharsaingeachd, chan fhaic thu pròifilean agus susbaint an fhrithealaiche seo ach ma nì thu lorg no ma tha thu ga leantainn.",
|
||||||
"about.domain_blocks.silenced.explanation": "Chan fharsaingeachd, chan fhaic thu pròifilean agus susbaint an fhrithealaiche seo ach ma nì thu lorg no ma tha thu ’ga leantainn.",
|
|
||||||
"about.domain_blocks.silenced.title": "Cuingichte",
|
"about.domain_blocks.silenced.title": "Cuingichte",
|
||||||
"about.domain_blocks.suspended.explanation": "Cha dèid dàta sam bith on fhrithealaiche seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean on fhrithealaiche sin conaltradh no eadar-ghnìomh a ghabhail an-seo.",
|
"about.domain_blocks.suspended.explanation": "Cha dèid dàta sam bith on fhrithealaiche seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean on fhrithealaiche sin conaltradh no eadar-ghnìomh a ghabhail an-seo.",
|
||||||
"about.domain_blocks.suspended.title": "’Na dhàil",
|
"about.domain_blocks.suspended.title": "’Na dhàil",
|
||||||
|
@ -38,7 +36,7 @@
|
||||||
"account.following": "A’ leantainn",
|
"account.following": "A’ leantainn",
|
||||||
"account.following_counter": "{count, plural, one {A’ leantainn {counter}} two {A’ leantainn {counter}} few {A’ leantainn {counter}} other {A’ leantainn {counter}}}",
|
"account.following_counter": "{count, plural, one {A’ leantainn {counter}} two {A’ leantainn {counter}} few {A’ leantainn {counter}} other {A’ leantainn {counter}}}",
|
||||||
"account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn neach sam bith fhathast.",
|
"account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn neach sam bith fhathast.",
|
||||||
"account.follows_you": "’Gad leantainn",
|
"account.follows_you": "Gad leantainn",
|
||||||
"account.go_to_profile": "Tadhail air a’ phròifil",
|
"account.go_to_profile": "Tadhail air a’ phròifil",
|
||||||
"account.hide_reblogs": "Falaich na brosnachaidhean o @{name}",
|
"account.hide_reblogs": "Falaich na brosnachaidhean o @{name}",
|
||||||
"account.joined_short": "Air ballrachd fhaighinn",
|
"account.joined_short": "Air ballrachd fhaighinn",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Mùch @{name}",
|
"account.mute": "Mùch @{name}",
|
||||||
"account.mute_notifications": "Mùch na brathan o @{name}",
|
"account.mute_notifications": "Mùch na brathan o @{name}",
|
||||||
"account.muted": "’Ga mhùchadh",
|
"account.muted": "’Ga mhùchadh",
|
||||||
|
"account.open_original_page": "Fosgail an duilleag thùsail",
|
||||||
"account.posts": "Postaichean",
|
"account.posts": "Postaichean",
|
||||||
"account.posts_with_replies": "Postaichean ’s freagairtean",
|
"account.posts_with_replies": "Postaichean ’s freagairtean",
|
||||||
"account.report": "Dèan gearan mu @{name}",
|
"account.report": "Dèan gearan mu @{name}",
|
||||||
|
@ -152,7 +151,7 @@
|
||||||
"confirmations.block.confirm": "Bac",
|
"confirmations.block.confirm": "Bac",
|
||||||
"confirmations.block.message": "A bheil thu cinnteach gu bheil thu airson {name} a bhacadh?",
|
"confirmations.block.message": "A bheil thu cinnteach gu bheil thu airson {name} a bhacadh?",
|
||||||
"confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh",
|
"confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh",
|
||||||
"confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas leantainn {name} a chur dhan dàrna taobh?",
|
"confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas airson {name} a leantainn a chur dhan dàrna taobh?",
|
||||||
"confirmations.delete.confirm": "Sguab às",
|
"confirmations.delete.confirm": "Sguab às",
|
||||||
"confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?",
|
"confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?",
|
||||||
"confirmations.delete_list.confirm": "Sguab às",
|
"confirmations.delete_list.confirm": "Sguab às",
|
||||||
|
@ -219,7 +218,7 @@
|
||||||
"empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.",
|
"empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.",
|
||||||
"empty_column.favourites": "Chan eil am post seo ’na annsachd aig duine sam bith fhathast. Nuair a nì daoine annsachd dheth, nochdaidh iad an-seo.",
|
"empty_column.favourites": "Chan eil am post seo ’na annsachd aig duine sam bith fhathast. Nuair a nì daoine annsachd dheth, nochdaidh iad an-seo.",
|
||||||
"empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a’ treandadh.",
|
"empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a’ treandadh.",
|
||||||
"empty_column.follow_requests": "Chan eil iarrtas air leantainn agad fhathast. Nuair gheibh thu fear, nochdaidh e an-seo.",
|
"empty_column.follow_requests": "Chan eil iarrtas leantainn agad fhathast. Nuair a gheibh thu fear, nochdaidh e an-seo.",
|
||||||
"empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.",
|
"empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.",
|
||||||
"empty_column.home": "Tha loidhne-ama na dachaigh agad falamh! Lean barrachd dhaoine gus a lìonadh. {suggestions}",
|
"empty_column.home": "Tha loidhne-ama na dachaigh agad falamh! Lean barrachd dhaoine gus a lìonadh. {suggestions}",
|
||||||
"empty_column.home.suggestions": "Faic moladh no dhà",
|
"empty_column.home.suggestions": "Faic moladh no dhà",
|
||||||
|
@ -257,7 +256,7 @@
|
||||||
"filter_modal.select_filter.title": "Criathraich am post seo",
|
"filter_modal.select_filter.title": "Criathraich am post seo",
|
||||||
"filter_modal.title.status": "Criathraich post",
|
"filter_modal.title.status": "Criathraich post",
|
||||||
"follow_recommendations.done": "Deiseil",
|
"follow_recommendations.done": "Deiseil",
|
||||||
"follow_recommendations.heading": "Lean daoine ma tha thu airson nam postaichean aca fhaicinn! Seo moladh no dà dhut.",
|
"follow_recommendations.heading": "Lean daoine ma tha thu airson na postaichean aca fhaicinn! Seo moladh no dà dhut.",
|
||||||
"follow_recommendations.lead": "Nochdaidh na postaichean aig na daoine a leanas tu a-rèir an ama nad dhachaigh. Bi dàna on as urrainn dhut sgur de dhaoine a leantainn cuideachd uair sam bith!",
|
"follow_recommendations.lead": "Nochdaidh na postaichean aig na daoine a leanas tu a-rèir an ama nad dhachaigh. Bi dàna on as urrainn dhut sgur de dhaoine a leantainn cuideachd uair sam bith!",
|
||||||
"follow_request.authorize": "Ùghdarraich",
|
"follow_request.authorize": "Ùghdarraich",
|
||||||
"follow_request.reject": "Diùlt",
|
"follow_request.reject": "Diùlt",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.",
|
"interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.",
|
||||||
"interaction_modal.on_another_server": "Air frithealaiche eile",
|
"interaction_modal.on_another_server": "Air frithealaiche eile",
|
||||||
"interaction_modal.on_this_server": "Air an frithealaiche seo",
|
"interaction_modal.on_this_server": "Air an frithealaiche seo",
|
||||||
"interaction_modal.other_server_instructions": "Dèan lethbhreac dhen URL seo is cuir ann am bàr nan lorg e san aplacaid as fheàrr leat no san eadar-aghaidh-lìn far a bheil thu air do chlàradh a-steach.",
|
"interaction_modal.other_server_instructions": "Dèan lethbhreac agus cuir an URL seo san raon luirg aig an aplacaid Mastodon as fheàrr leat no ann an eadar-aghaidh an fhrithealaiche Mastodon agad.",
|
||||||
"interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.",
|
"interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.",
|
||||||
"interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan",
|
"interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan",
|
||||||
"interaction_modal.title.follow": "Lean {name}",
|
"interaction_modal.title.follow": "Lean {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Servidores moderados",
|
"about.blocks": "Servidores moderados",
|
||||||
"about.contact": "Contacto:",
|
"about.contact": "Contacto:",
|
||||||
"about.disclaimer": "Mastodon é software libre, de código aberto, e unha marca comercial de Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon é software libre, de código aberto, e unha marca comercial de Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Razón",
|
"about.domain_blocks.no_reason_available": "Non está indicada a razón",
|
||||||
"about.domain_blocks.domain": "Dominio",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.",
|
"about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.",
|
||||||
"about.domain_blocks.severity": "Rigurosidade",
|
|
||||||
"about.domain_blocks.silenced.explanation": "Por defecto non verás perfís e contido desde este servidor, a menos que mires de xeito explícito ou optes por seguir ese contido ou usuaria.",
|
"about.domain_blocks.silenced.explanation": "Por defecto non verás perfís e contido desde este servidor, a menos que mires de xeito explícito ou optes por seguir ese contido ou usuaria.",
|
||||||
"about.domain_blocks.silenced.title": "Limitado",
|
"about.domain_blocks.silenced.title": "Limitado",
|
||||||
"about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.",
|
"about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Acalar @{name}",
|
"account.mute": "Acalar @{name}",
|
||||||
"account.mute_notifications": "Acalar as notificacións de @{name}",
|
"account.mute_notifications": "Acalar as notificacións de @{name}",
|
||||||
"account.muted": "Acalada",
|
"account.muted": "Acalada",
|
||||||
|
"account.open_original_page": "Abrir páxina orixinal",
|
||||||
"account.posts": "Publicacións",
|
"account.posts": "Publicacións",
|
||||||
"account.posts_with_replies": "Publicacións e respostas",
|
"account.posts_with_replies": "Publicacións e respostas",
|
||||||
"account.report": "Informar sobre @{name}",
|
"account.report": "Informar sobre @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.",
|
"interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.",
|
||||||
"interaction_modal.on_another_server": "Nun servidor diferente",
|
"interaction_modal.on_another_server": "Nun servidor diferente",
|
||||||
"interaction_modal.on_this_server": "Neste servidor",
|
"interaction_modal.on_this_server": "Neste servidor",
|
||||||
"interaction_modal.other_server_instructions": "Só tes que copiar e pegar este URL na barra de procuras da túa aplicación favorita, ou da interface web na que teñas unha sesión iniciada.",
|
"interaction_modal.other_server_instructions": "Copia e pega este URL no campo de busca da túa app Mastodon favorita ou na interface web do teu servidor Mastodon.",
|
||||||
"interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.",
|
"interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.",
|
||||||
"interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}",
|
"interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}",
|
||||||
"interaction_modal.title.follow": "Seguir a {name}",
|
"interaction_modal.title.follow": "Seguir a {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "שרתים מוגבלים",
|
"about.blocks": "שרתים מוגבלים",
|
||||||
"about.contact": "יצירת קשר:",
|
"about.contact": "יצירת קשר:",
|
||||||
"about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.",
|
"about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "סיבה",
|
"about.domain_blocks.no_reason_available": "הסיבה אינה זמינה",
|
||||||
"about.domain_blocks.domain": "שם מתחם",
|
|
||||||
"about.domain_blocks.preamble": "ככלל מסטודון מאפשרת לך לצפות בתוכן ולתקשר עם משתמשים מכל שרת בפדיברס. אלו הם היוצאים מן הכלל שהוגדרו עבור השרת המסוים הזה.",
|
"about.domain_blocks.preamble": "ככלל מסטודון מאפשרת לך לצפות בתוכן ולתקשר עם משתמשים מכל שרת בפדיברס. אלו הם היוצאים מן הכלל שהוגדרו עבור השרת המסוים הזה.",
|
||||||
"about.domain_blocks.severity": "חומרה",
|
|
||||||
"about.domain_blocks.silenced.explanation": "ככלל פרופילים ותוכן משרת זה לא יוצגו, אלא אם חיפשת אותם באופן מפורש או בחרת להשתתף בו על ידי מעקב.",
|
"about.domain_blocks.silenced.explanation": "ככלל פרופילים ותוכן משרת זה לא יוצגו, אלא אם חיפשת אותם באופן מפורש או בחרת להשתתף בו על ידי מעקב.",
|
||||||
"about.domain_blocks.silenced.title": "מוגבלים",
|
"about.domain_blocks.silenced.title": "מוגבלים",
|
||||||
"about.domain_blocks.suspended.explanation": "שום מידע משרת זה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשים משרת זה לבלתי אפשרית.",
|
"about.domain_blocks.suspended.explanation": "שום מידע משרת זה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשים משרת זה לבלתי אפשרית.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "להשתיק את @{name}",
|
"account.mute": "להשתיק את @{name}",
|
||||||
"account.mute_notifications": "להסתיר התראות מ @{name}",
|
"account.mute_notifications": "להסתיר התראות מ @{name}",
|
||||||
"account.muted": "מושתק",
|
"account.muted": "מושתק",
|
||||||
|
"account.open_original_page": "לפתיחת העמוד המקורי",
|
||||||
"account.posts": "פוסטים",
|
"account.posts": "פוסטים",
|
||||||
"account.posts_with_replies": "הודעות ותגובות",
|
"account.posts_with_replies": "הודעות ותגובות",
|
||||||
"account.report": "דווח על @{name}",
|
"account.report": "דווח על @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "עם חשבון מסטודון, ניתן לענות להודעה.",
|
"interaction_modal.description.reply": "עם חשבון מסטודון, ניתן לענות להודעה.",
|
||||||
"interaction_modal.on_another_server": "על שרת אחר",
|
"interaction_modal.on_another_server": "על שרת אחר",
|
||||||
"interaction_modal.on_this_server": "על שרת זה",
|
"interaction_modal.on_this_server": "על שרת זה",
|
||||||
"interaction_modal.other_server_instructions": "פשוט להעתיק ולהדביק את ה־URL לחלונית החיפוש ביישום או הדפדפן ממנו התחברת.",
|
"interaction_modal.other_server_instructions": "ניתן להעתיק ולהדביק קישור זה לתוך שדה החיפוש באפליקציית מסטודון שבשימוש אצלך או בממשק הדפדפן של שרת המסטודון.",
|
||||||
"interaction_modal.preamble": "כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.",
|
"interaction_modal.preamble": "כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.",
|
||||||
"interaction_modal.title.favourite": "חיבוב ההודעה של {name}",
|
"interaction_modal.title.favourite": "חיבוב ההודעה של {name}",
|
||||||
"interaction_modal.title.follow": "לעקוב אחרי {name}",
|
"interaction_modal.title.follow": "לעקוב אחרי {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "म्यूट @{name}",
|
"account.mute": "म्यूट @{name}",
|
||||||
"account.mute_notifications": "@{name} के नोटिफिकेशन म्यूट करे",
|
"account.mute_notifications": "@{name} के नोटिफिकेशन म्यूट करे",
|
||||||
"account.muted": "म्यूट है",
|
"account.muted": "म्यूट है",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "टूट्स",
|
"account.posts": "टूट्स",
|
||||||
"account.posts_with_replies": "टूट्स एवं जवाब",
|
"account.posts_with_replies": "टूट्स एवं जवाब",
|
||||||
"account.report": "रिपोर्ट @{name}",
|
"account.report": "रिपोर्ट @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
"about.blocks": "Moderated servers",
|
"about.blocks": "Moderated servers",
|
||||||
"about.contact": "Contact:",
|
"about.contact": "Contact:",
|
||||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||||
"about.domain_blocks.comment": "Reason",
|
"about.domain_blocks.no_reason_available": "Reason not available",
|
||||||
"about.domain_blocks.domain": "Domain",
|
|
||||||
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
|
||||||
"about.domain_blocks.severity": "Severity",
|
|
||||||
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
|
||||||
"about.domain_blocks.silenced.title": "Limited",
|
"about.domain_blocks.silenced.title": "Limited",
|
||||||
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
"account.mute": "Utišaj @{name}",
|
"account.mute": "Utišaj @{name}",
|
||||||
"account.mute_notifications": "Utišaj obavijesti od @{name}",
|
"account.mute_notifications": "Utišaj obavijesti od @{name}",
|
||||||
"account.muted": "Utišano",
|
"account.muted": "Utišano",
|
||||||
|
"account.open_original_page": "Open original page",
|
||||||
"account.posts": "Tootovi",
|
"account.posts": "Tootovi",
|
||||||
"account.posts_with_replies": "Tootovi i odgovori",
|
"account.posts_with_replies": "Tootovi i odgovori",
|
||||||
"account.report": "Prijavi @{name}",
|
"account.report": "Prijavi @{name}",
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
"interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
|
||||||
"interaction_modal.on_another_server": "On a different server",
|
"interaction_modal.on_another_server": "On a different server",
|
||||||
"interaction_modal.on_this_server": "On this server",
|
"interaction_modal.on_this_server": "On this server",
|
||||||
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
|
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
|
||||||
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
|
||||||
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
"interaction_modal.title.favourite": "Favourite {name}'s post",
|
||||||
"interaction_modal.title.follow": "Follow {name}",
|
"interaction_modal.title.follow": "Follow {name}",
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue