Merge branch 'main' into add-gsw

This commit is contained in:
Florian Kohler 2024-03-05 06:48:18 +00:00 committed by GitHub
commit 09c8947ea7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
364 changed files with 5529 additions and 4022 deletions

View File

@ -5,7 +5,7 @@
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": { "features": {
"ghcr.io/devcontainers/features/sshd:1": {}, "ghcr.io/devcontainers/features/sshd:1": {}
}, },
"runServices": ["app", "db", "redis"], "runServices": ["app", "db", "redis"],
@ -15,16 +15,16 @@
"portsAttributes": { "portsAttributes": {
"3000": { "3000": {
"label": "web", "label": "web",
"onAutoForward": "notify", "onAutoForward": "notify"
}, },
"4000": { "4000": {
"label": "stream", "label": "stream",
"onAutoForward": "silent", "onAutoForward": "silent"
}, }
}, },
"otherPortsAttributes": { "otherPortsAttributes": {
"onAutoForward": "silent", "onAutoForward": "silent"
}, },
"remoteEnv": { "remoteEnv": {
@ -33,7 +33,7 @@
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev", "STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
"DISABLE_FORGERY_REQUEST_PROTECTION": "true", "DISABLE_FORGERY_REQUEST_PROTECTION": "true",
"ES_ENABLED": "", "ES_ENABLED": "",
"LIBRE_TRANSLATE_ENDPOINT": "", "LIBRE_TRANSLATE_ENDPOINT": ""
}, },
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
@ -43,7 +43,7 @@
"customizations": { "customizations": {
"vscode": { "vscode": {
"settings": {}, "settings": {},
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"], "extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}, }
}, }
} }

View File

@ -5,7 +5,7 @@
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": { "features": {
"ghcr.io/devcontainers/features/sshd:1": {}, "ghcr.io/devcontainers/features/sshd:1": {}
}, },
"forwardPorts": [3000, 4000], "forwardPorts": [3000, 4000],
@ -14,17 +14,17 @@
"3000": { "3000": {
"label": "web", "label": "web",
"onAutoForward": "notify", "onAutoForward": "notify",
"requireLocalPort": true, "requireLocalPort": true
}, },
"4000": { "4000": {
"label": "stream", "label": "stream",
"onAutoForward": "silent", "onAutoForward": "silent",
"requireLocalPort": true, "requireLocalPort": true
}, }
}, },
"otherPortsAttributes": { "otherPortsAttributes": {
"onAutoForward": "silent", "onAutoForward": "silent"
}, },
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
@ -34,7 +34,7 @@
"customizations": { "customizations": {
"vscode": { "vscode": {
"settings": {}, "settings": {},
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"], "extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}, }
}, }
} }

View File

@ -338,7 +338,6 @@ module.exports = defineConfig({
'plugin:import/typescript', 'plugin:import/typescript',
'plugin:promise/recommended', 'plugin:promise/recommended',
'plugin:jsdoc/recommended-typescript', 'plugin:jsdoc/recommended-typescript',
'plugin:prettier/recommended',
], ],
parserOptions: { parserOptions: {
@ -347,6 +346,9 @@ module.exports = defineConfig({
}, },
rules: { rules: {
// Disable formatting rules that have been enabled in the base config
'indent': 'off',
'import/consistent-type-specifier-style': ['error', 'prefer-top-level'], 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
'@typescript-eslint/consistent-type-definitions': ['warn', 'interface'], '@typescript-eslint/consistent-type-definitions': ['warn', 'interface'],

4
.github/codecov.yml vendored
View File

@ -1,3 +1,4 @@
comment: false # Do not leave PR comments
coverage: coverage:
status: status:
project: project:
@ -8,6 +9,3 @@ coverage:
default: default:
# Github status check is not blocking # Github status check is not blocking
informational: true informational: true
comment:
# Only write a comment in PR if there are changes
require_changes: true

18
.github/workflows/format-check.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Check formatting
on:
push:
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Check formatting with Prettier
run: yarn format:check

View File

@ -43,4 +43,4 @@ jobs:
- run: echo "::add-matcher::.github/stylelint-matcher.json" - run: echo "::add-matcher::.github/stylelint-matcher.json"
- name: Stylelint - name: Stylelint
run: yarn lint:sass run: yarn lint:css

View File

@ -36,4 +36,4 @@ jobs:
- name: Run haml-lint - name: Run haml-lint
run: | run: |
echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json" echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json"
bundle exec haml-lint bundle exec haml-lint --reporter github

View File

@ -1,38 +0,0 @@
name: JSON Linting
on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
- '.nvmrc'
- '.prettier*'
- '**/*.json'
- '.github/workflows/lint-json.yml'
- '!app/javascript/mastodon/locales/*.json'
pull_request:
paths:
- 'package.json'
- 'yarn.lock'
- '.nvmrc'
- '.prettier*'
- '**/*.json'
- '.github/workflows/lint-json.yml'
- '!app/javascript/mastodon/locales/*.json'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:json

View File

@ -1,38 +0,0 @@
name: Markdown Linting
on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- '.github/workflows/lint-md.yml'
- '.nvmrc'
- '.prettier*'
- '**/*.md'
- '!AUTHORS.md'
- 'package.json'
- 'yarn.lock'
pull_request:
paths:
- '.github/workflows/lint-md.yml'
- '.nvmrc'
- '.prettier*'
- '**/*.md'
- '!AUTHORS.md'
- 'package.json'
- 'yarn.lock'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:md

View File

@ -1,40 +0,0 @@
name: YML Linting
on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
- '.nvmrc'
- '.prettier*'
- '**/*.yaml'
- '**/*.yml'
- '.github/workflows/lint-yml.yml'
- '!config/locales/*.yml'
pull_request:
paths:
- 'package.json'
- 'yarn.lock'
- '.nvmrc'
- '.prettier*'
- '**/*.yaml'
- '**/*.yml'
- '.github/workflows/lint-yml.yml'
- '!config/locales/*.yml'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:yml

View File

@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged yarn lint-staged

View File

@ -54,6 +54,13 @@
# Ignore Docker option files # Ignore Docker option files
docker-compose.override.yml docker-compose.override.yml
# Ignore public
/public/assets
/public/emoji
/public/packs
/public/packs-test
/public/system
# Ignore emoji map file # Ignore emoji map file
/app/javascript/mastodon/features/emoji/emoji_map.json /app/javascript/mastodon/features/emoji/emoji_map.json
@ -74,4 +81,5 @@ app/javascript/styles/mastodon/reset.scss
# Ignore the generated AUTHORS.md # Ignore the generated AUTHORS.md
AUTHORS.md AUTHORS.md
# Process a few selected JS files
!lint-staged.config.js !lint-staged.config.js

View File

@ -10,35 +10,35 @@ GIT
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
actioncable (7.1.3) actioncable (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
nio4r (~> 2.0) nio4r (~> 2.0)
websocket-driver (>= 0.6.1) websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
actionmailbox (7.1.3) actionmailbox (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
activejob (= 7.1.3) activejob (= 7.1.3.2)
activerecord (= 7.1.3) activerecord (= 7.1.3.2)
activestorage (= 7.1.3) activestorage (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
mail (>= 2.7.1) mail (>= 2.7.1)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
actionmailer (7.1.3) actionmailer (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
actionview (= 7.1.3) actionview (= 7.1.3.2)
activejob (= 7.1.3) activejob (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
actionpack (7.1.3) actionpack (7.1.3.2)
actionview (= 7.1.3) actionview (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
racc racc
rack (>= 2.2.4) rack (>= 2.2.4)
@ -46,15 +46,15 @@ GEM
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6) rails-html-sanitizer (~> 1.6)
actiontext (7.1.3) actiontext (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
activerecord (= 7.1.3) activerecord (= 7.1.3.2)
activestorage (= 7.1.3) activestorage (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
globalid (>= 0.6.0) globalid (>= 0.6.0)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
actionview (7.1.3) actionview (7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
builder (~> 3.1) builder (~> 3.1)
erubi (~> 1.11) erubi (~> 1.11)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
@ -64,22 +64,22 @@ GEM
activemodel (>= 4.1) activemodel (>= 4.1)
case_transform (>= 0.2) case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3) jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (7.1.3) activejob (7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (7.1.3) activemodel (7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
activerecord (7.1.3) activerecord (7.1.3.2)
activemodel (= 7.1.3) activemodel (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
timeout (>= 0.4.0) timeout (>= 0.4.0)
activestorage (7.1.3) activestorage (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
activejob (= 7.1.3) activejob (= 7.1.3.2)
activerecord (= 7.1.3) activerecord (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
marcel (~> 1.0) marcel (~> 1.0)
activesupport (7.1.3) activesupport (7.1.3.2)
base64 base64
bigdecimal bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
@ -309,7 +309,7 @@ GEM
activesupport (>= 5.1) activesupport (>= 5.1)
haml (>= 4.0.6) haml (>= 4.0.6)
railties (>= 5.1) railties (>= 5.1)
haml_lint (0.56.0) haml_lint (0.57.0)
haml (>= 5.0) haml (>= 5.0)
parallel (~> 1.10) parallel (~> 1.10)
rainbow rainbow
@ -333,7 +333,7 @@ GEM
http-form_data (2.3.0) http-form_data (2.3.0)
http_accept_language (2.1.1) http_accept_language (2.1.1)
httpclient (2.8.3) httpclient (2.8.3)
httplog (1.6.2) httplog (1.6.3)
rack (>= 2.0) rack (>= 2.0)
rainbow (>= 2.0.0) rainbow (>= 2.0.0)
i18n (1.14.1) i18n (1.14.1)
@ -444,7 +444,7 @@ GEM
uri uri
net-http-persistent (4.0.2) net-http-persistent (4.0.2)
connection_pool (~> 2.2) connection_pool (~> 2.2)
net-imap (0.4.9.1) net-imap (0.4.10)
date date
net-protocol net-protocol
net-ldap (0.19.0) net-ldap (0.19.0)
@ -532,7 +532,7 @@ GEM
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
raabro (1.4.0) raabro (1.4.0)
racc (1.7.3) racc (1.7.3)
rack (2.2.8) rack (2.2.8.1)
rack-attack (6.7.0) rack-attack (6.7.0)
rack (>= 1.0, < 4) rack (>= 1.0, < 4)
rack-cors (2.0.1) rack-cors (2.0.1)
@ -554,20 +554,20 @@ GEM
rackup (1.0.0) rackup (1.0.0)
rack (< 3) rack (< 3)
webrick webrick
rails (7.1.3) rails (7.1.3.2)
actioncable (= 7.1.3) actioncable (= 7.1.3.2)
actionmailbox (= 7.1.3) actionmailbox (= 7.1.3.2)
actionmailer (= 7.1.3) actionmailer (= 7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
actiontext (= 7.1.3) actiontext (= 7.1.3.2)
actionview (= 7.1.3) actionview (= 7.1.3.2)
activejob (= 7.1.3) activejob (= 7.1.3.2)
activemodel (= 7.1.3) activemodel (= 7.1.3.2)
activerecord (= 7.1.3) activerecord (= 7.1.3.2)
activestorage (= 7.1.3) activestorage (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 7.1.3) railties (= 7.1.3.2)
rails-controller-testing (1.0.5) rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1) actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1)
@ -582,9 +582,9 @@ GEM
rails-i18n (7.0.8) rails-i18n (7.0.8)
i18n (>= 0.7, < 2) i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8) railties (>= 6.0.0, < 8)
railties (7.1.3) railties (7.1.3.2)
actionpack (= 7.1.3) actionpack (= 7.1.3.2)
activesupport (= 7.1.3) activesupport (= 7.1.3.2)
irb irb
rackup (>= 1.0.0) rackup (>= 1.0.0)
rake (>= 12.2) rake (>= 12.2)
@ -744,7 +744,7 @@ GEM
terrapin (1.0.1) terrapin (1.0.1)
climate_control climate_control
test-prof (1.3.1) test-prof (1.3.1)
thor (1.3.0) thor (1.3.1)
tilt (2.3.0) tilt (2.3.0)
timeout (0.4.1) timeout (0.4.1)
tpm-key_attestation (0.12.0) tpm-key_attestation (0.12.0)
@ -793,7 +793,7 @@ GEM
webfinger (1.2.0) webfinger (1.2.0)
activesupport activesupport
httpclient (>= 2.4) httpclient (>= 2.4)
webmock (3.21.2) webmock (3.22.0)
addressable (>= 2.8.0) addressable (>= 2.8.0)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)

View File

@ -83,23 +83,19 @@ A **Vagrant** configuration is included for development purposes. To use it, com
- Install Vagrant and Virtualbox - Install Vagrant and Virtualbox
- Install the `vagrant-hostsupdater` plugin: `vagrant plugin install vagrant-hostsupdater` - Install the `vagrant-hostsupdater` plugin: `vagrant plugin install vagrant-hostsupdater`
- Run `vagrant up` - Run `vagrant up`
- Run `vagrant ssh -c "cd /vagrant && foreman start"` - Run `vagrant ssh -c "cd /vagrant && bin/dev"`
- Open `http://mastodon.local` in your browser - Open `http://mastodon.local` in your browser
### MacOS ### MacOS
To set up **MacOS** for native development, complete the following steps: To set up **MacOS** for native development, complete the following steps:
- Install the latest stable Ruby version (use a Ruby version manager for easy installation and management of Ruby versions) - Use a Ruby version manager to install the specified version from `.ruby-version`
- Run `brew install postgresql@14` - Run `brew install postgresql@14 redis imagemagick libidn` to install required dependencies
- Run `brew install redis` - Navigate to Mastodon's root directory and run `brew install nvm` then `nvm use` to use the version from `.nvmrc`
- Run `brew install imagemagick`
- Run `brew install libidn`
- Install Foreman or a similar tool (such as [overmind](https://github.com/DarthSim/overmind)) to handle multiple process launching.
- Navigate to Mastodon's root directory and run `brew install nvm` then `nvm use` to use the version from .nvmrc
- Run `corepack enable && corepack prepare` - Run `corepack enable && corepack prepare`
- Run `bundle exec rails db:setup` (optionally prepend `RAILS_ENV=development` to target the dev environment) - Run `bundle exec rails db:setup` (optionally prepend `RAILS_ENV=development` to target the dev environment)
- Finally, run `overmind start -f Procfile.dev` - Finally, run `bin/dev` which will launch the local services via `overmind` (if installed) or `foreman`
### Docker ### Docker
@ -108,7 +104,7 @@ For development with **Docker**, complete the following steps:
- Install Docker Desktop - Install Docker Desktop
- Run `docker compose -f .devcontainer/docker-compose.yml up -d` - Run `docker compose -f .devcontainer/docker-compose.yml up -d`
- Run `docker compose -f .devcontainer/docker-compose.yml exec app .devcontainer/post-create.sh` - Run `docker compose -f .devcontainer/docker-compose.yml exec app .devcontainer/post-create.sh`
- Finally, run `docker compose -f .devcontainer/docker-compose.yml exec app foreman start -f Procfile.dev` - Finally, run `docker compose -f .devcontainer/docker-compose.yml exec app bin/dev`
If you are using an IDE with [support for the Development Container specification](https://containers.dev/supporting), it will run the above `docker compose` commands automatically. For **Visual Studio Code** this requires the [Dev Container extension](https://containers.dev/supporting#dev-containers). If you are using an IDE with [support for the Development Container specification](https://containers.dev/supporting), it will run the above `docker compose` commands automatically. For **Visual Studio Code** this requires the [Dev Container extension](https://containers.dev/supporting#dev-containers).
@ -119,7 +115,7 @@ To get you coding in just a few minutes, GitHub Codespaces provides a web-based
- Click this button to create a new codespace:<br> - Click this button to create a new codespace:<br>
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=52281283&devcontainer_path=.devcontainer%2Fcodespaces%2Fdevcontainer.json) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=52281283&devcontainer_path=.devcontainer%2Fcodespaces%2Fdevcontainer.json)
- Wait for the environment to build. This will take a few minutes. - Wait for the environment to build. This will take a few minutes.
- When the editor is ready, run `foreman start -f Procfile.dev` in the terminal. - When the editor is ready, run `bin/dev` in the terminal.
- After a few seconds, a popup will appear with a button labeled _Open in Browser_. This will open Mastodon. - After a few seconds, a popup will appear with a button labeled _Open in Browser_. This will open Mastodon.
- On the _Ports_ tab, right click on the “stream” row and select _Port visibility__Public_. - On the _Ports_ tab, right click on the “stream” row and select _Port visibility__Public_.

2
Vagrantfile vendored
View File

@ -188,7 +188,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.post_up_message = <<MESSAGE config.vm.post_up_message = <<MESSAGE
To start server To start server
$ vagrant ssh -c "cd /vagrant && foreman start" $ vagrant ssh -c "cd /vagrant && bin/dev"
MESSAGE MESSAGE
end end

View File

@ -4,7 +4,7 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
before_action -> { authorize_if_got_token! :read, :'read:statuses' } before_action -> { authorize_if_got_token! :read, :'read:statuses' }
before_action :set_account before_action :set_account
after_action :insert_pagination_headers, unless: -> { truthy_param?(:pinned) } after_action :insert_pagination_headers
def index def index
cache_if_unauthenticated! cache_if_unauthenticated!

View File

@ -178,7 +178,7 @@ class ApplicationController < ActionController::Base
respond_to do |format| respond_to do |format|
format.any { render 'errors/self_destruct', layout: 'auth', status: 410, formats: [:html] } format.any { render 'errors/self_destruct', layout: 'auth', status: 410, formats: [:html] }
format.json { render json: { error: Rack::Utils::HTTP_STATUS_CODES[410] }, status: code } format.json { render json: { error: Rack::Utils::HTTP_STATUS_CODES[410] }, status: 410 }
end end
end end

View File

@ -127,7 +127,7 @@ module LanguagesHelper
om: ['Oromo', 'Afaan Oromoo'].freeze, om: ['Oromo', 'Afaan Oromoo'].freeze,
or: ['Oriya', 'ଓଡ଼ିଆ'].freeze, or: ['Oriya', 'ଓଡ଼ିଆ'].freeze,
os: ['Ossetian', 'ирон æвзаг'].freeze, os: ['Ossetian', 'ирон æвзаг'].freeze,
pa: ['Panjabi', 'ਪੰਜਾਬੀ'].freeze, pa: ['Punjabi', 'ਪੰਜਾਬੀ'].freeze,
pi: ['Pāli', 'पाऴि'].freeze, pi: ['Pāli', 'पाऴि'].freeze,
pl: ['Polish', 'Polski'].freeze, pl: ['Polish', 'Polski'].freeze,
ps: ['Pashto', 'پښتو'].freeze, ps: ['Pashto', 'پښتو'].freeze,
@ -191,16 +191,19 @@ module LanguagesHelper
chr: ['Cherokee', 'ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ'].freeze, chr: ['Cherokee', 'ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ'].freeze,
ckb: ['Sorani (Kurdish)', 'سۆرانی'].freeze, ckb: ['Sorani (Kurdish)', 'سۆرانی'].freeze,
cnr: ['Montenegrin', 'crnogorski'].freeze, cnr: ['Montenegrin', 'crnogorski'].freeze,
csb: ['Kashubian', 'Kaszëbsczi'].freeze,
gsw: ['Swiss German', 'Schwiizertütsch'].freeze, gsw: ['Swiss German', 'Schwiizertütsch'].freeze,
jbo: ['Lojban', 'la .lojban.'].freeze, jbo: ['Lojban', 'la .lojban.'].freeze,
kab: ['Kabyle', 'Taqbaylit'].freeze, kab: ['Kabyle', 'Taqbaylit'].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,
pdc: ['Pennsylvania Dutch', 'Pennsilfaani-Deitsch'].freeze,
sco: ['Scots', 'Scots'].freeze, sco: ['Scots', 'Scots'].freeze,
sma: ['Southern Sami', 'Åarjelsaemien Gïele'].freeze, sma: ['Southern Sami', 'Åarjelsaemien Gïele'].freeze,
smj: ['Lule Sami', 'Julevsámegiella'].freeze, smj: ['Lule Sami', 'Julevsámegiella'].freeze,
szl: ['Silesian', 'ślůnsko godka'].freeze, szl: ['Silesian', 'ślůnsko godka'].freeze,
tok: ['Toki Pona', 'toki pona'].freeze, tok: ['Toki Pona', 'toki pona'].freeze,
vai: ['Vai', 'ꕙꔤ'].freeze,
xal: ['Kalmyk', 'Хальмг келн'].freeze, xal: ['Kalmyk', 'Хальмг келн'].freeze,
zba: ['Balaibalan', 'باليبلن'].freeze, zba: ['Balaibalan', 'باليبلن'].freeze,
zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze, zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze,

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020-2024 Paweł Kuna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1 @@
Images in this folder are based on [Tabler.io icons](https://tabler.io/icons).

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020-2024 Paweł Kuna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1 @@
Images in this folder are based on [Tabler.io icons](https://tabler.io/icons).

View File

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -67,7 +67,7 @@ class EditedTimestamp extends PureComponent {
return ( return (
<DropdownMenu statusId={statusId} renderItem={this.renderItem} scrollable renderHeader={this.renderHeader} onItemClick={this.handleItemClick}> <DropdownMenu statusId={statusId} renderItem={this.renderItem} scrollable renderHeader={this.renderHeader} onItemClick={this.handleItemClick}>
<button className='dropdown-menu__text-button'> <button className='dropdown-menu__text-button'>
<FormattedMessage id='status.edited' defaultMessage='Edited {date}' values={{ date: intl.formatDate(timestamp, { hour12: false, month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) }} /> <Icon id='caret-down' icon={ArrowDropDownIcon} /> <FormattedMessage id='status.edited' defaultMessage='Edited {date}' values={{ date: intl.formatDate(timestamp, { month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) }} /> <Icon id='caret-down' icon={ArrowDropDownIcon} />
</button> </button>
</DropdownMenu> </DropdownMenu>
); );

View File

@ -53,7 +53,6 @@ const messages = defineMessages({
}); });
const dateFormatOptions = { const dateFormatOptions = {
hour12: false,
year: 'numeric', year: 'numeric',
month: 'short', month: 'short',
day: '2-digit', day: '2-digit',

View File

@ -554,7 +554,7 @@ class Status extends ImmutablePureComponent {
<div onClick={this.handleClick} className='status__info'> <div onClick={this.handleClick} className='status__info'>
<a href={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`} 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'><VisibilityIcon visibility={status.get('visibility')} /></span> <span className='status__visibility-icon'><VisibilityIcon visibility={status.get('visibility')} /></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'), { year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })}> *</abbr>}
</a> </a>
<a onClick={this.handleAccountClick} href={`/@${status.getIn(['account', 'acct'])}`} 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'>

View File

@ -80,7 +80,7 @@ export default class MediaContainer extends PureComponent {
return ( return (
<IntlProvider> <IntlProvider>
<> <>
{[].map.call(components, (component, i) => { {Array.from(components).map((component, i) => {
const componentName = component.getAttribute('data-component'); const componentName = component.getAttribute('data-component');
const Component = MEDIA_COMPONENTS[componentName]; const Component = MEDIA_COMPONENTS[componentName];
const { media, card, poll, hashtag, ...props } = JSON.parse(component.getAttribute('data-props')); const { media, card, poll, hashtag, ...props } = JSON.parse(component.getAttribute('data-props'));

View File

@ -101,7 +101,6 @@ const dateFormatOptions = {
month: 'short', month: 'short',
day: 'numeric', day: 'numeric',
year: 'numeric', year: 'numeric',
hour12: false,
hour: '2-digit', hour: '2-digit',
minute: '2-digit', minute: '2-digit',
}; };

View File

@ -6,9 +6,9 @@ import { Link } from 'react-router-dom';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import BarChart4BarsIcon from 'mastodon/../material-icons/400-24px/bar_chart_4_bars.svg?react'; import BarChart4BarsIcon from '@/material-icons/400-24px/bar_chart_4_bars.svg?react';
import CloseIcon from 'mastodon/../material-icons/400-24px/close.svg?react'; import CloseIcon from '@/material-icons/400-24px/close.svg?react';
import PhotoLibraryIcon from 'mastodon/../material-icons/400-24px/photo_library.svg?react'; import PhotoLibraryIcon from '@/material-icons/400-24px/photo_library.svg?react';
import { cancelReplyCompose } from 'mastodon/actions/compose'; import { cancelReplyCompose } from 'mastodon/actions/compose';
import { Icon } from 'mastodon/components/icon'; import { Icon } from 'mastodon/components/icon';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';

View File

@ -10,7 +10,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import { supportsPassiveEvents } from 'detect-passive-events'; import { supportsPassiveEvents } from 'detect-passive-events';
import Overlay from 'react-overlays/Overlay'; import Overlay from 'react-overlays/Overlay';
import MoodIcon from 'mastodon/../material-icons/400-24px/mood.svg?react'; import MoodIcon from '@/material-icons/400-20px/mood.svg?react';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';
import { assetHost } from 'mastodon/utils/config'; import { assetHost } from 'mastodon/utils/config';

View File

@ -9,9 +9,9 @@ import { supportsPassiveEvents } from 'detect-passive-events';
import fuzzysort from 'fuzzysort'; import fuzzysort from 'fuzzysort';
import Overlay from 'react-overlays/Overlay'; import Overlay from 'react-overlays/Overlay';
import CancelIcon from 'mastodon/../material-icons/400-24px/cancel-fill.svg?react'; import CancelIcon from '@/material-icons/400-24px/cancel-fill.svg?react';
import SearchIcon from 'mastodon/../material-icons/400-24px/search.svg?react'; import SearchIcon from '@/material-icons/400-24px/search.svg?react';
import TranslateIcon from 'mastodon/../material-icons/400-24px/translate.svg?react'; import TranslateIcon from '@/material-icons/400-24px/translate.svg?react';
import { Icon } from 'mastodon/components/icon'; import { Icon } from 'mastodon/components/icon';
import { languages as preloadedLanguages } from 'mastodon/initial_state'; import { languages as preloadedLanguages } from 'mastodon/initial_state';
@ -141,6 +141,7 @@ class LanguageDropdownMenu extends PureComponent {
case 'Escape': case 'Escape':
onClose(); onClose();
break; break;
case ' ':
case 'Enter': case 'Enter':
this.handleClick(e); this.handleClick(e);
break; break;

View File

@ -4,7 +4,7 @@ import { useIntl, defineMessages } from 'react-intl';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import CloseIcon from 'mastodon/../material-icons/400-24px/close.svg?react'; import CloseIcon from '@/material-icons/400-24px/close.svg?react';
import { cancelReplyCompose } from 'mastodon/actions/compose'; import { cancelReplyCompose } from 'mastodon/actions/compose';
import Account from 'mastodon/components/account'; import Account from 'mastodon/components/account';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';

View File

@ -3,7 +3,7 @@ import { PureComponent } from 'react';
import { defineMessages, injectIntl } from 'react-intl'; import { defineMessages, injectIntl } from 'react-intl';
import BarChart4BarsIcon from '@/material-icons/400-24px/bar_chart_4_bars.svg?react'; import BarChart4BarsIcon from '@/material-icons/400-20px/bar_chart_4_bars.svg?react';
import { IconButton } from '../../../components/icon_button'; import { IconButton } from '../../../components/icon_button';

View File

@ -5,16 +5,16 @@ import { injectIntl, defineMessages } from 'react-intl';
import classNames from 'classnames'; import classNames from 'classnames';
import { supportsPassiveEvents } from 'detect-passive-events';
import Overlay from 'react-overlays/Overlay'; import Overlay from 'react-overlays/Overlay';
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
import InfoIcon from '@/material-icons/400-24px/info.svg?react';
import LockIcon from '@/material-icons/400-24px/lock.svg?react'; import LockIcon from '@/material-icons/400-24px/lock.svg?react';
import PublicIcon from '@/material-icons/400-24px/public.svg?react'; import PublicIcon from '@/material-icons/400-24px/public.svg?react';
import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react'; import QuietTimeIcon from '@/material-icons/400-24px/quiet_time.svg?react';
import { Icon } from 'mastodon/components/icon'; import { Icon } from 'mastodon/components/icon';
import { PrivacyDropdownMenu } from './privacy_dropdown_menu';
const messages = defineMessages({ const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' }, public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
public_long: { id: 'privacy.public.long', defaultMessage: 'Anyone on and off Mastodon' }, public_long: { id: 'privacy.public.long', defaultMessage: 'Anyone on and off Mastodon' },
@ -28,126 +28,6 @@ const messages = defineMessages({
unlisted_extra: { id: 'privacy.unlisted.additional', defaultMessage: 'This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.' }, unlisted_extra: { id: 'privacy.unlisted.additional', defaultMessage: 'This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.' },
}); });
const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true;
class PrivacyDropdownMenu extends PureComponent {
static propTypes = {
style: PropTypes.object,
items: PropTypes.array.isRequired,
value: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
onChange: PropTypes.func.isRequired,
};
handleDocumentClick = e => {
if (this.node && !this.node.contains(e.target)) {
this.props.onClose();
e.stopPropagation();
}
};
handleKeyDown = e => {
const { items } = this.props;
const value = e.currentTarget.getAttribute('data-index');
const index = items.findIndex(item => {
return (item.value === value);
});
let element = null;
switch(e.key) {
case 'Escape':
this.props.onClose();
break;
case 'Enter':
this.handleClick(e);
break;
case 'ArrowDown':
element = this.node.childNodes[index + 1] || this.node.firstChild;
break;
case 'ArrowUp':
element = this.node.childNodes[index - 1] || this.node.lastChild;
break;
case 'Tab':
if (e.shiftKey) {
element = this.node.childNodes[index - 1] || this.node.lastChild;
} else {
element = this.node.childNodes[index + 1] || this.node.firstChild;
}
break;
case 'Home':
element = this.node.firstChild;
break;
case 'End':
element = this.node.lastChild;
break;
}
if (element) {
element.focus();
this.props.onChange(element.getAttribute('data-index'));
e.preventDefault();
e.stopPropagation();
}
};
handleClick = e => {
const value = e.currentTarget.getAttribute('data-index');
e.preventDefault();
this.props.onClose();
this.props.onChange(value);
};
componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, { capture: true });
document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
if (this.focusedItem) this.focusedItem.focus({ preventScroll: true });
}
componentWillUnmount () {
document.removeEventListener('click', this.handleDocumentClick, { capture: true });
document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);
}
setRef = c => {
this.node = c;
};
setFocusRef = c => {
this.focusedItem = c;
};
render () {
const { style, items, value } = this.props;
return (
<div style={{ ...style }} role='listbox' ref={this.setRef}>
{items.map(item => (
<div role='option' tabIndex={0} key={item.value} data-index={item.value} onKeyDown={this.handleKeyDown} onClick={this.handleClick} className={classNames('privacy-dropdown__option', { active: item.value === value })} aria-selected={item.value === value} ref={item.value === value ? this.setFocusRef : null}>
<div className='privacy-dropdown__option__icon'>
<Icon id={item.icon} icon={item.iconComponent} />
</div>
<div className='privacy-dropdown__option__content'>
<strong>{item.text}</strong>
{item.meta}
</div>
{item.extra && (
<div className='privacy-dropdown__option__additional' title={item.extra}>
<Icon id='info-circle' icon={InfoIcon} />
</div>
)}
</div>
))}
</div>
);
}
}
class PrivacyDropdown extends PureComponent { class PrivacyDropdown extends PureComponent {
static propTypes = { static propTypes = {

View File

@ -0,0 +1,128 @@
import PropTypes from 'prop-types';
import { useCallback, useEffect, useRef, useState } from 'react';
import classNames from 'classnames';
import { supportsPassiveEvents } from 'detect-passive-events';
import InfoIcon from '@/material-icons/400-24px/info.svg?react';
import { Icon } from 'mastodon/components/icon';
const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true;
export const PrivacyDropdownMenu = ({ style, items, value, onClose, onChange }) => {
const nodeRef = useRef(null);
const focusedItemRef = useRef(null);
const [currentValue, setCurrentValue] = useState(value);
const handleDocumentClick = useCallback((e) => {
if (nodeRef.current && !nodeRef.current.contains(e.target)) {
onClose();
e.stopPropagation();
}
}, [nodeRef, onClose]);
const handleClick = useCallback((e) => {
const value = e.currentTarget.getAttribute('data-index');
e.preventDefault();
onClose();
onChange(value);
}, [onClose, onChange]);
const handleKeyDown = useCallback((e) => {
const value = e.currentTarget.getAttribute('data-index');
const index = items.findIndex(item => (item.value === value));
let element = null;
switch (e.key) {
case 'Escape':
onClose();
break;
case ' ':
case 'Enter':
handleClick(e);
break;
case 'ArrowDown':
element = nodeRef.current.childNodes[index + 1] || nodeRef.current.firstChild;
break;
case 'ArrowUp':
element = nodeRef.current.childNodes[index - 1] || nodeRef.current.lastChild;
break;
case 'Tab':
if (e.shiftKey) {
element = nodeRef.current.childNodes[index + 1] || nodeRef.current.firstChild;
} else {
element = nodeRef.current.childNodes[index - 1] || nodeRef.current.lastChild;
}
break;
case 'Home':
element = nodeRef.current.firstChild;
break;
case 'End':
element = nodeRef.current.lastChild;
break;
}
if (element) {
element.focus();
setCurrentValue(element.getAttribute('data-index'));
e.preventDefault();
e.stopPropagation();
}
}, [nodeRef, items, onClose, handleClick, setCurrentValue]);
useEffect(() => {
document.addEventListener('click', handleDocumentClick, { capture: true });
document.addEventListener('touchend', handleDocumentClick, listenerOptions);
focusedItemRef.current?.focus({ preventScroll: true });
return () => {
document.removeEventListener('click', handleDocumentClick, { capture: true });
document.removeEventListener('touchend', handleDocumentClick, listenerOptions);
};
}, [handleDocumentClick]);
return (
<ul style={{ ...style }} role='listbox' ref={nodeRef}>
{items.map(item => (
<li
role='option'
tabIndex={0}
key={item.value}
data-index={item.value}
onKeyDown={handleKeyDown}
onClick={handleClick}
className={classNames('privacy-dropdown__option', { active: item.value === currentValue })}
aria-selected={item.value === currentValue}
ref={item.value === currentValue ? focusedItemRef : null}
>
<div className='privacy-dropdown__option__icon'>
<Icon id={item.icon} icon={item.iconComponent} />
</div>
<div className='privacy-dropdown__option__content'>
<strong>{item.text}</strong>
{item.meta}
</div>
{item.extra && (
<div className='privacy-dropdown__option__additional' title={item.extra}>
<Icon id='info-circle' icon={InfoIcon} />
</div>
)}
</li>
))}
</ul>
);
};
PrivacyDropdownMenu.propTypes = {
style: PropTypes.object,
items: PropTypes.array.isRequired,
value: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
onChange: PropTypes.func.isRequired,
};

View File

@ -9,7 +9,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
import spring from 'react-motion/lib/spring'; import spring from 'react-motion/lib/spring';
import CloseIcon from '@/material-icons/400-24px/close.svg?react'; import CloseIcon from '@/material-icons/400-20px/close.svg?react';
import EditIcon from '@/material-icons/400-24px/edit.svg?react'; import EditIcon from '@/material-icons/400-24px/edit.svg?react';
import WarningIcon from '@/material-icons/400-24px/warning.svg?react'; import WarningIcon from '@/material-icons/400-24px/warning.svg?react';
import { Blurhash } from 'mastodon/components/blurhash'; import { Blurhash } from 'mastodon/components/blurhash';

View File

@ -6,7 +6,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PhotoLibraryIcon from '@/material-icons/400-24px/photo_library.svg?react'; import PhotoLibraryIcon from '@/material-icons/400-20px/photo_library.svg?react';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';
const messages = defineMessages({ const messages = defineMessages({

View File

@ -2,7 +2,7 @@ import { injectIntl, defineMessages } from 'react-intl';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import WarningIcon from 'mastodon/../material-icons/400-24px/warning.svg?react'; import WarningIcon from '@/material-icons/400-20px/warning.svg?react';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';
import { changeComposeSpoilerness } from '../../../actions/compose'; import { changeComposeSpoilerness } from '../../../actions/compose';

View File

@ -36,7 +36,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
let emoji = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this // Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) { if (Object.hasOwn(emoji, '1')) {
emoji = emoji['1']; emoji = emoji['1'];
} }
@ -88,7 +88,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
let emoji = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this // Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) { if (Object.hasOwn(emoji, '1')) {
emoji = emoji['1']; emoji = emoji['1'];
} }

View File

@ -135,19 +135,19 @@ function getData(emoji, skin, set) {
} }
} }
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji)) { if (Object.hasOwn(data.short_names, emoji)) {
emoji = data.short_names[emoji]; emoji = data.short_names[emoji];
} }
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji)) { if (Object.hasOwn(data.emojis, emoji)) {
emojiData = data.emojis[emoji]; emojiData = data.emojis[emoji];
} }
} else if (emoji.id) { } else if (emoji.id) {
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji.id)) { if (Object.hasOwn(data.short_names, emoji.id)) {
emoji.id = data.short_names[emoji.id]; emoji.id = data.short_names[emoji.id];
} }
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji.id)) { if (Object.hasOwn(data.emojis, emoji.id)) {
emojiData = data.emojis[emoji.id]; emojiData = data.emojis[emoji.id];
skin = skin || emoji.skin; skin = skin || emoji.skin;
} }
@ -216,7 +216,7 @@ function deepMerge(a, b) {
let originalValue = a[key], let originalValue = a[key],
value = originalValue; value = originalValue;
if (Object.prototype.hasOwnProperty.call(b, key)) { if (Object.hasOwn(b, key)) {
value = b[key]; value = b[key];
} }

View File

@ -58,7 +58,7 @@ class Explore extends PureComponent {
return ( return (
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}> <Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader <ColumnHeader
icon={isSearching ? 'search' : 'hashtag'} icon={isSearching ? 'search' : 'explore'}
iconComponent={isSearching ? SearchIcon : ExploreIcon} iconComponent={isSearching ? SearchIcon : ExploreIcon}
title={intl.formatMessage(isSearching ? messages.searchResults : messages.title)} title={intl.formatMessage(isSearching ? messages.searchResults : messages.title)}
onClick={this.handleHeaderClick} onClick={this.handleHeaderClick}

View File

@ -343,7 +343,7 @@ class Announcement extends ImmutablePureComponent {
<div className='announcements__item'> <div className='announcements__item'>
<strong className='announcements__item__range'> <strong className='announcements__item__range'>
<FormattedMessage id='announcement.announcement' defaultMessage='Announcement' /> <FormattedMessage id='announcement.announcement' defaultMessage='Announcement' />
{hasTimeRange && <span> · <FormattedDate value={startsAt} hour12={false} year={(skipYear || startsAt.getFullYear() === now.getFullYear()) ? undefined : 'numeric'} month='short' day='2-digit' hour={skipTime ? undefined : '2-digit'} minute={skipTime ? undefined : '2-digit'} /> - <FormattedDate value={endsAt} hour12={false} year={(skipYear || endsAt.getFullYear() === now.getFullYear()) ? undefined : 'numeric'} month={skipEndDate ? undefined : 'short'} day={skipEndDate ? undefined : '2-digit'} hour={skipTime ? undefined : '2-digit'} minute={skipTime ? undefined : '2-digit'} /></span>} {hasTimeRange && <span> · <FormattedDate value={startsAt} year={(skipYear || startsAt.getFullYear() === now.getFullYear()) ? undefined : 'numeric'} month='short' day='2-digit' hour={skipTime ? undefined : '2-digit'} minute={skipTime ? undefined : '2-digit'} /> - <FormattedDate value={endsAt} year={(skipYear || endsAt.getFullYear() === now.getFullYear()) ? undefined : 'numeric'} month={skipEndDate ? undefined : 'short'} day={skipEndDate ? undefined : '2-digit'} hour={skipTime ? undefined : '2-digit'} minute={skipTime ? undefined : '2-digit'} /></span>}
</strong> </strong>
<Content announcement={announcement} /> <Content announcement={announcement} />

View File

@ -112,7 +112,7 @@ class GettingStarted extends ImmutablePureComponent {
if (showTrends) { if (showTrends) {
navItems.push( navItems.push(
<ColumnLink key='explore' icon='hashtag' iconComponent={TagIcon} text={intl.formatMessage(messages.explore)} to='/explore' />, <ColumnLink key='explore' icon='explore' iconComponent={TagIcon} text={intl.formatMessage(messages.explore)} to='/explore' />,
); );
} }

View File

@ -92,6 +92,10 @@ export default class Card extends PureComponent {
this.setState({ embedded: true }); this.setState({ embedded: true });
}; };
handleExternalLinkClick = (e) => {
e.stopPropagation();
};
setRef = c => { setRef = c => {
this.node = c; this.node = c;
}; };
@ -201,7 +205,7 @@ export default class Card extends PureComponent {
<div className='status-card__actions' onClick={this.handleEmbedClick} role='none'> <div className='status-card__actions' onClick={this.handleEmbedClick} role='none'>
<div> <div>
<button type='button' onClick={this.handleEmbedClick}><Icon id='play' icon={PlayArrowIcon} /></button> <button type='button' onClick={this.handleEmbedClick}><Icon id='play' icon={PlayArrowIcon} /></button>
<a href={card.get('url')} target='_blank' rel='noopener noreferrer'><Icon id='external-link' icon={OpenInNewIcon} /></a> <a href={card.get('url')} onClick={this.handleExternalLinkClick} target='_blank' rel='noopener noreferrer'><Icon id='external-link' icon={OpenInNewIcon} /></a>
</div> </div>
</div> </div>
) : spoilerButton} ) : spoilerButton}

View File

@ -311,7 +311,7 @@ class DetailedStatus extends ImmutablePureComponent {
<div className='detailed-status__meta'> <div className='detailed-status__meta'>
<a className='detailed-status__datetime' href={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`} 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'))} 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>
</div> </div>

View File

@ -94,7 +94,7 @@ class NavigationPanel extends Component {
)} )}
{trendsEnabled ? ( {trendsEnabled ? (
<ColumnLink transparent to='/explore' icon='hashtag' iconComponent={ExploreIcon} text={intl.formatMessage(messages.explore)} /> <ColumnLink transparent to='/explore' icon='explore' iconComponent={ExploreIcon} text={intl.formatMessage(messages.explore)} />
) : ( ) : (
<ColumnLink transparent to='/search' icon='search' iconComponent={SearchIcon} text={intl.formatMessage(messages.search)} /> <ColumnLink transparent to='/search' icon='search' iconComponent={SearchIcon} text={intl.formatMessage(messages.search)} />
)} )}

View File

@ -277,7 +277,13 @@
"follow_request.authorize": "Упълномощаване", "follow_request.authorize": "Упълномощаване",
"follow_request.reject": "Отхвърляне", "follow_request.reject": "Отхвърляне",
"follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
"follow_suggestions.curated_suggestion": "Избор на персонал",
"follow_suggestions.dismiss": "Без ново показване", "follow_suggestions.dismiss": "Без ново показване",
"follow_suggestions.hints.featured": "Този профил е ръчно подбран от отбора на {domain}.",
"follow_suggestions.hints.friends_of_friends": "Този профил е популярен измежду хората, които следвате.",
"follow_suggestions.hints.most_followed": "Този профил е един от най-следваните при {domain}.",
"follow_suggestions.hints.most_interactions": "Този профил наскоро получи много внимание при {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Този профил е подобен на профилите, които сте последвали наскоро.",
"follow_suggestions.personalized_suggestion": "Персонализирано предложение", "follow_suggestions.personalized_suggestion": "Персонализирано предложение",
"follow_suggestions.popular_suggestion": "Популярно предложение", "follow_suggestions.popular_suggestion": "Популярно предложение",
"follow_suggestions.view_all": "Преглед на всички", "follow_suggestions.view_all": "Преглед на всички",
@ -470,7 +476,7 @@
"notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.", "notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.",
"notifications_permission_banner.enable": "Включване на известията на работния плот", "notifications_permission_banner.enable": "Включване на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.", "notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.",
"notifications_permission_banner.title": "Никога не пропускате нещо", "notifications_permission_banner.title": "Никога не пропускайте нищо",
"onboarding.action.back": "Върнете ме обратно", "onboarding.action.back": "Върнете ме обратно",
"onboarding.actions.back": "Върнете ме обратно", "onboarding.actions.back": "Върнете ме обратно",
"onboarding.actions.go_to_explore": "Виж тенденции", "onboarding.actions.go_to_explore": "Виж тенденции",

View File

@ -29,7 +29,7 @@
"account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}",
"account.endorse": "Lakaat war-wel war ar profil", "account.endorse": "Lakaat war-wel war ar profil",
"account.featured_tags.last_status_at": "Toud diwezhañ : {date}", "account.featured_tags.last_status_at": "Toud diwezhañ : {date}",
"account.featured_tags.last_status_never": "Toud ebet", "account.featured_tags.last_status_never": "Embannadur ebet",
"account.featured_tags.title": "Hashtagoù pennañ {name}", "account.featured_tags.title": "Hashtagoù pennañ {name}",
"account.follow": "Heuliañ", "account.follow": "Heuliañ",
"account.follow_back": "Heuliañ d'ho tro", "account.follow_back": "Heuliañ d'ho tro",
@ -62,7 +62,7 @@
"account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ", "account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ",
"account.share": "Skignañ profil @{name}", "account.share": "Skignañ profil @{name}",
"account.show_reblogs": "Diskouez skignadennoù @{name}", "account.show_reblogs": "Diskouez skignadennoù @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toud} two {{counter} Doud} other {{counter} a Doudoù}}", "account.statuses_counter": "{count, plural, one {{counter} C'hannad} two {{counter} Gannad} other {{counter} a Gannadoù}}",
"account.unblock": "Diverzañ @{name}", "account.unblock": "Diverzañ @{name}",
"account.unblock_domain": "Diverzañ an domani {domain}", "account.unblock_domain": "Diverzañ an domani {domain}",
"account.unblock_short": "Distankañ", "account.unblock_short": "Distankañ",
@ -118,9 +118,9 @@
"column.lists": "Listennoù", "column.lists": "Listennoù",
"column.mutes": "Implijer·ion·ezed kuzhet", "column.mutes": "Implijer·ion·ezed kuzhet",
"column.notifications": "Kemennoù", "column.notifications": "Kemennoù",
"column.pins": "Toudoù spilhennet", "column.pins": "Embannadurioù spilhennet",
"column.public": "Red-amzer kevredet", "column.public": "Red-amzer kevredet",
"column_back_button.label": "Distro", "column_back_button.label": "Distreiñ",
"column_header.hide_settings": "Kuzhat an arventennoù", "column_header.hide_settings": "Kuzhat an arventennoù",
"column_header.moveLeft_settings": "Dilec'hiañ ar bannad a-gleiz", "column_header.moveLeft_settings": "Dilec'hiañ ar bannad a-gleiz",
"column_header.moveRight_settings": "Dilec'hiañ ar bannad a-zehou", "column_header.moveRight_settings": "Dilec'hiañ ar bannad a-zehou",
@ -199,9 +199,9 @@
"embed.preview": "Setu penaos e teuio war wel :", "embed.preview": "Setu penaos e teuio war wel :",
"emoji_button.activity": "Obererezh", "emoji_button.activity": "Obererezh",
"emoji_button.clear": "Diverkañ", "emoji_button.clear": "Diverkañ",
"emoji_button.custom": "Kempennet", "emoji_button.custom": "Personelaet",
"emoji_button.flags": "Bannieloù", "emoji_button.flags": "Bannieloù",
"emoji_button.food": "Boued hag Evaj", "emoji_button.food": "Boued & Evajoù",
"emoji_button.label": "Enlakaat un emoji", "emoji_button.label": "Enlakaat un emoji",
"emoji_button.nature": "Natur", "emoji_button.nature": "Natur",
"emoji_button.not_found": "Emoji ebet !! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "Emoji ebet !! (╯°□°)╯︵ ┻━┻",
@ -211,12 +211,12 @@
"emoji_button.search": "O klask...", "emoji_button.search": "O klask...",
"emoji_button.search_results": "Disoc'hoù an enklask", "emoji_button.search_results": "Disoc'hoù an enklask",
"emoji_button.symbols": "Arouezioù", "emoji_button.symbols": "Arouezioù",
"emoji_button.travel": "Lec'hioù ha Beajoù", "emoji_button.travel": "Beajiñ & Lec'hioù",
"empty_column.account_suspended": "Kont ehanet", "empty_column.account_suspended": "Kont ehanet",
"empty_column.account_timeline": "Toud ebet amañ !", "empty_column.account_timeline": "Toud ebet amañ !",
"empty_column.account_unavailable": "Profil dihegerz", "empty_column.account_unavailable": "Profil dihegerz",
"empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.", "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
"empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.bookmarked_statuses": "N'ho peus embannadur ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !", "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !",
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
"empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !", "empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !",
@ -260,6 +260,7 @@
"follow_request.authorize": "Aotren", "follow_request.authorize": "Aotren",
"follow_request.reject": "Nac'hañ", "follow_request.reject": "Nac'hañ",
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.", "follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.",
"follow_suggestions.view_all": "Gwelet pep tra",
"followed_tags": "Hashtagoù o heuliañ", "followed_tags": "Hashtagoù o heuliañ",
"footer.about": "Diwar-benn", "footer.about": "Diwar-benn",
"footer.directory": "Kavlec'h ar profiloù", "footer.directory": "Kavlec'h ar profiloù",
@ -267,7 +268,7 @@
"footer.invite": "Pediñ tud", "footer.invite": "Pediñ tud",
"footer.keyboard_shortcuts": "Berradennoù klavier", "footer.keyboard_shortcuts": "Berradennoù klavier",
"footer.privacy_policy": "Reolennoù prevezded", "footer.privacy_policy": "Reolennoù prevezded",
"footer.source_code": "Gwelet kod mammenn", "footer.source_code": "Gwelet ar c'hod mammenn",
"footer.status": "Statud", "footer.status": "Statud",
"generic.saved": "Enrollet", "generic.saved": "Enrollet",
"getting_started.heading": "Loc'hañ", "getting_started.heading": "Loc'hañ",
@ -295,7 +296,7 @@
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev an toudoù a embann war ho red degemer.", "interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev an toudoù a embann war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ an toud-mañ evit rannañ anezhañ gant ho heulierien·ezed.", "interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ an toud-mañ evit rannañ anezhañ gant ho heulierien·ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'an toud-mañ.", "interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'an toud-mañ.",
"interaction_modal.no_account_yet": "N'eo ket war vMastodon?", "interaction_modal.no_account_yet": "N'emañ ket war vMastodon?",
"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.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet", "interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet",
@ -463,7 +464,7 @@
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile", "onboarding.steps.share_profile.title": "Rannit ho kont Mastodon",
"password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se", "password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se",
"picture_in_picture.restore": "Adlakaat", "picture_in_picture.restore": "Adlakaat",
"poll.closed": "Serret", "poll.closed": "Serret",
@ -476,7 +477,8 @@
"poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}", "poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}",
"poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.add_poll": "Ouzhpennañ ur sontadeg",
"poll_button.remove_poll": "Dilemel ar sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "Cheñch prevezded an toud", "privacy.change": "Cheñch prevezded an embannadur",
"privacy.direct.short": "Tud resis",
"privacy.private.short": "Heulierien", "privacy.private.short": "Heulierien",
"privacy.public.short": "Publik", "privacy.public.short": "Publik",
"privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}", "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",

View File

@ -279,8 +279,8 @@
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment daquests comptes.", "follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment daquests comptes.",
"follow_suggestions.curated_suggestion": "Tria de l'equip", "follow_suggestions.curated_suggestion": "Tria de l'equip",
"follow_suggestions.dismiss": "No ho tornis a mostrar", "follow_suggestions.dismiss": "No ho tornis a mostrar",
"follow_suggestions.hints.featured": "Aquest perfil ha estat triat per l'equip de {domain}.", "follow_suggestions.hints.featured": "L'equip de {domain} ha seleccionat aquest perfil.",
"follow_suggestions.hints.friends_of_friends": "Aquest perfil és popular entre la gent que segueixes.", "follow_suggestions.hints.friends_of_friends": "Aquest perfil és popular entre la gent que seguiu.",
"follow_suggestions.hints.most_followed": "Aquest perfil és un dels més seguits a {domain}.", "follow_suggestions.hints.most_followed": "Aquest perfil és un dels més seguits a {domain}.",
"follow_suggestions.hints.most_interactions": "Aquest perfil ha estat rebent un munt d'atenció recentment a {domain}.", "follow_suggestions.hints.most_interactions": "Aquest perfil ha estat rebent un munt d'atenció recentment a {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Aquest perfil és similar a d'altres que heu seguit recentment.", "follow_suggestions.hints.similar_to_recently_followed": "Aquest perfil és similar a d'altres que heu seguit recentment.",

View File

@ -17,9 +17,11 @@
"account.badges.group": "گرووپ", "account.badges.group": "گرووپ",
"account.block": "بلۆکی @{name}", "account.block": "بلۆکی @{name}",
"account.block_domain": "بلۆکی هەموو شتێک لە {domain}", "account.block_domain": "بلۆکی هەموو شتێک لە {domain}",
"account.block_short": "بلۆک",
"account.blocked": "بلۆککرا", "account.blocked": "بلۆککرا",
"account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی", "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی",
"account.cancel_follow_request": "داواکاری فۆڵۆو بکشێنەوە", "account.cancel_follow_request": "داواکاری فۆڵۆو بکشێنەوە",
"account.copy": "ڕوونووسی بەستەر بۆ توت",
"account.direct": "بە شێوەیەکی تایبەت باسی @{name} بکە", "account.direct": "بە شێوەیەکی تایبەت باسی @{name} بکە",
"account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت", "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت",
"account.domain_blocked": "دۆمەین قەپاتکرا", "account.domain_blocked": "دۆمەین قەپاتکرا",
@ -30,6 +32,7 @@
"account.featured_tags.last_status_never": "هیچ پۆستێک نییە", "account.featured_tags.last_status_never": "هیچ پۆستێک نییە",
"account.featured_tags.title": "هاشتاگە تایبەتەکانی {name}", "account.featured_tags.title": "هاشتاگە تایبەتەکانی {name}",
"account.follow": "بەدواداچوون", "account.follow": "بەدواداچوون",
"account.follow_back": "فۆڵۆو بکەنەوە",
"account.followers": "شوێنکەوتووان", "account.followers": "شوێنکەوتووان",
"account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە", "account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە",
"account.followers_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}", "account.followers_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
@ -38,6 +41,7 @@
"account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.", "account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.",
"account.go_to_profile": "بڕۆ بۆ پڕۆفایلی", "account.go_to_profile": "بڕۆ بۆ پڕۆفایلی",
"account.hide_reblogs": "داشاردنی بووستەکان لە @{name}", "account.hide_reblogs": "داشاردنی بووستەکان لە @{name}",
"account.in_memoriam": "لە یادەوەریدا.",
"account.joined_short": "بەشداری کردووە", "account.joined_short": "بەشداری کردووە",
"account.languages": "گۆڕینی زمانە بەشداربووەکان", "account.languages": "گۆڕینی زمانە بەشداربووەکان",
"account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە", "account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە",
@ -46,7 +50,11 @@
"account.mention": "ئاماژە @{name}", "account.mention": "ئاماژە @{name}",
"account.moved_to": "{name} ئاماژەی بەوە کردووە کە ئەکاونتە نوێیەکەیان ئێستا:", "account.moved_to": "{name} ئاماژەی بەوە کردووە کە ئەکاونتە نوێیەکەیان ئێستا:",
"account.mute": "بێدەنگکردن @{name}", "account.mute": "بێدەنگکردن @{name}",
"account.mute_notifications_short": "پاڵ بە ئاگادارکردنەوەکانەوە بنێ",
"account.mute_short": "بێدەنگ",
"account.muted": "بێ دەنگ", "account.muted": "بێ دەنگ",
"account.mutual": "دوولایەنە",
"account.no_bio": "هیچ وەسفێک نەخراوەتەڕوو.",
"account.open_original_page": "لاپەڕەی ئەسڵی بکەرەوە", "account.open_original_page": "لاپەڕەی ئەسڵی بکەرەوە",
"account.posts": "نووسراوەکان", "account.posts": "نووسراوەکان",
"account.posts_with_replies": "توتس و وەڵامەکان", "account.posts_with_replies": "توتس و وەڵامەکان",
@ -62,6 +70,7 @@
"account.unendorse": "تایبەتمەندی لەسەر پرۆفایلەکە نیە", "account.unendorse": "تایبەتمەندی لەسەر پرۆفایلەکە نیە",
"account.unfollow": "بەدوادانەچو", "account.unfollow": "بەدوادانەچو",
"account.unmute": "بێدەنگکردنی @{name}", "account.unmute": "بێدەنگکردنی @{name}",
"account.unmute_notifications_short": "ئاگادارکردنەوەکان بێدەنگ بکەرەوە",
"account.unmute_short": "بێدەنگی مەکە", "account.unmute_short": "بێدەنگی مەکە",
"account_note.placeholder": "کرتەبکە بۆ زیادکردنی تێبینی", "account_note.placeholder": "کرتەبکە بۆ زیادکردنی تێبینی",
"admin.dashboard.daily_retention": "ڕێژەی مانەوەی بەکارهێنەر بەپێی ڕۆژ دوای ناو تۆمارکردن", "admin.dashboard.daily_retention": "ڕێژەی مانەوەی بەکارهێنەر بەپێی ڕۆژ دوای ناو تۆمارکردن",
@ -69,6 +78,10 @@
"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": "ئەندامی نوێ",
"admin.impact_report.instance_accounts": "پڕۆفایلی هەژمارەکان ئەمە دەسڕێتەوە",
"admin.impact_report.instance_followers": "فۆڵۆوەرەکان بەکارهێنەران لەدەست دەدەن",
"admin.impact_report.instance_follows": "فۆڵۆوەرەکان ئەمبەکارهێنەرە لەدەست دەدەن",
"admin.impact_report.title": "پوختەی کاریگەرییەکان",
"alert.rate_limited.message": "تکایە هەوڵبدەرەوە دوای {retry_time, time, medium}.", "alert.rate_limited.message": "تکایە هەوڵبدەرەوە دوای {retry_time, time, medium}.",
"alert.rate_limited.title": "ڕێژەی سنووردار", "alert.rate_limited.title": "ڕێژەی سنووردار",
"alert.unexpected.message": "هەڵەیەکی چاوەڕوان نەکراو ڕوویدا.", "alert.unexpected.message": "هەڵەیەکی چاوەڕوان نەکراو ڕوویدا.",
@ -101,6 +114,8 @@
"column.direct": "ئاماژەی تایبەت", "column.direct": "ئاماژەی تایبەت",
"column.directory": "گەڕان لە پرۆفایلەکان", "column.directory": "گەڕان لە پرۆفایلەکان",
"column.domain_blocks": "دۆمەینە داخراوەکان", "column.domain_blocks": "دۆمەینە داخراوەکان",
"column.favourites": "دڵخوازەکان",
"column.firehose": "فیدی ڕاستەوخۆ",
"column.follow_requests": "بەدواداچوی داواکاریەکان بکە", "column.follow_requests": "بەدواداچوی داواکاریەکان بکە",
"column.home": "سەرەتا", "column.home": "سەرەتا",
"column.lists": "پێرست", "column.lists": "پێرست",
@ -121,6 +136,9 @@
"community.column_settings.remote_only": "تەنها بۆ دوور", "community.column_settings.remote_only": "تەنها بۆ دوور",
"compose.language.change": "گۆڕینی زمان", "compose.language.change": "گۆڕینی زمان",
"compose.language.search": "گەڕان بە زمانەکان...", "compose.language.search": "گەڕان بە زمانەکان...",
"compose.published.body": "پۆست بڵاوکراوەتەوە.",
"compose.published.open": "بیکەوە",
"compose.saved.body": "پۆستەکە سەیڤ کراوە.",
"compose_form.direct_message_warning_learn_more": "زیاتر فێربه", "compose_form.direct_message_warning_learn_more": "زیاتر فێربه",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "ئەم بڵاوکراوەیە لە ژێر هیچ هاشتاگێکدا دا نانرێت وەک ئەوەیە، کە گشتی نەبێت. تەنها بڵاوکراوە گشتیەکان دەتوانرێ بە هاشتاگ گەڕانی بۆ بکرێت.", "compose_form.hashtag_warning": "ئەم بڵاوکراوەیە لە ژێر هیچ هاشتاگێکدا دا نانرێت وەک ئەوەیە، کە گشتی نەبێت. تەنها بڵاوکراوە گشتیەکان دەتوانرێ بە هاشتاگ گەڕانی بۆ بکرێت.",
@ -128,11 +146,19 @@
"compose_form.lock_disclaimer.lock": "قفڵ دراوە", "compose_form.lock_disclaimer.lock": "قفڵ دراوە",
"compose_form.placeholder": "چی لە مێشکتدایە?", "compose_form.placeholder": "چی لە مێشکتدایە?",
"compose_form.poll.duration": "ماوەی ڕاپرسی", "compose_form.poll.duration": "ماوەی ڕاپرسی",
"compose_form.poll.multiple": "فرە هەڵبژاردە",
"compose_form.poll.option_placeholder": "بژاردەی {number}",
"compose_form.poll.single": "یەکێك هەلبژێرە",
"compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک", "compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک",
"compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک", "compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک",
"compose_form.poll.type": "ستایڵ",
"compose_form.publish": "پۆست",
"compose_form.publish_form": "بڵاوی بکەوە", "compose_form.publish_form": "بڵاوی بکەوە",
"compose_form.reply": "وەڵام",
"compose_form.save_changes": "نوێکردنەوە",
"compose_form.spoiler.marked": "دەق لە پشت ئاگاداریدا شاراوەتەوە", "compose_form.spoiler.marked": "دەق لە پشت ئاگاداریدا شاراوەتەوە",
"compose_form.spoiler.unmarked": "دەق شاراوە نییە", "compose_form.spoiler.unmarked": "دەق شاراوە نییە",
"compose_form.spoiler_placeholder": "ئاگادارکردنەوەی ناوەڕۆک (ئیختیاری)",
"confirmation_modal.cancel": "هەڵوەشاندنەوه", "confirmation_modal.cancel": "هەڵوەشاندنەوه",
"confirmations.block.block_and_report": "بلۆک & گوزارشت", "confirmations.block.block_and_report": "بلۆک & گوزارشت",
"confirmations.block.confirm": "بلۆک", "confirmations.block.confirm": "بلۆک",
@ -155,6 +181,7 @@
"confirmations.mute.explanation": "ئەمەش دەبێتە هۆی شاردنەوەی پۆستەکان یان ئەو بابەتانەی کە ئاماژەیان پێ دەکات ، بەڵام هێشتا ڕێگەیان پێ دەدات کە پۆستەکانتان ببینن و شوێنتان بکەون.", "confirmations.mute.explanation": "ئەمەش دەبێتە هۆی شاردنەوەی پۆستەکان یان ئەو بابەتانەی کە ئاماژەیان پێ دەکات ، بەڵام هێشتا ڕێگەیان پێ دەدات کە پۆستەکانتان ببینن و شوێنتان بکەون.",
"confirmations.mute.message": "ئایا دڵنیایت لەوەی دەتەوێت بیلێیت {name}?", "confirmations.mute.message": "ئایا دڵنیایت لەوەی دەتەوێت بیلێیت {name}?",
"confirmations.redraft.confirm": "سڕینەوە & دووبارە ڕەشکردنەوە", "confirmations.redraft.confirm": "سڕینەوە & دووبارە ڕەشکردنەوە",
"confirmations.redraft.message": "دڵنیای دەتەوێت ئەم پۆستە بسڕیتەوە و دووبارە دایبڕێژیتەوە؟ فەڤۆریت و بووستەکان لەدەست دەچن، وەڵامەکانی پۆستە ئەسڵیەکەش هەتیو دەبن.",
"confirmations.reply.confirm": "وەڵام", "confirmations.reply.confirm": "وەڵام",
"confirmations.reply.message": "وەڵامدانەوە ئێستا ئەو نامەیە ی کە تۆ ئێستا دایڕشتووە، دەنووسێتەوە. ئایا دڵنیایت کە دەتەوێت بەردەوام بیت?", "confirmations.reply.message": "وەڵامدانەوە ئێستا ئەو نامەیە ی کە تۆ ئێستا دایڕشتووە، دەنووسێتەوە. ئایا دڵنیایت کە دەتەوێت بەردەوام بیت?",
"confirmations.unfollow.confirm": "بەدوادانەچو", "confirmations.unfollow.confirm": "بەدوادانەچو",
@ -163,7 +190,9 @@
"conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە", "conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە",
"conversation.open": "نیشاندان گفتوگۆ", "conversation.open": "نیشاندان گفتوگۆ",
"conversation.with": "لەگەڵ{names}", "conversation.with": "لەگەڵ{names}",
"copy_icon_button.copied": "کۆپی کراوە بۆ کلیپبۆرد",
"copypaste.copied": "کۆپی کراوە", "copypaste.copied": "کۆپی کراوە",
"copypaste.copy_to_clipboard": "کۆپی کراوە بۆ کلیپبۆرد",
"directory.federated": "لە ڕاژەکانی ناسراو", "directory.federated": "لە ڕاژەکانی ناسراو",
"directory.local": "تەنها لە {domain}", "directory.local": "تەنها لە {domain}",
"directory.new_arrivals": "تازە گەیشتنەکان", "directory.new_arrivals": "تازە گەیشتنەکان",
@ -173,6 +202,7 @@
"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_tags": "ئەم هاشتاگانە لە ئێستادا لە نێو خەڵکی سەر ئەم سێرڤەرە و سێرڤەرەکانی تری تۆڕی لامەرکەزیدا جێگەی خۆیان دەگرن.", "dismissable_banner.explore_tags": "ئەم هاشتاگانە لە ئێستادا لە نێو خەڵکی سەر ئەم سێرڤەرە و سێرڤەرەکانی تری تۆڕی لامەرکەزیدا جێگەی خۆیان دەگرن.",
"embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.", "embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.",
"embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:", "embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:",
@ -216,6 +246,7 @@
"errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد", "errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد",
"errors.unexpected_crash.report_issue": "کێشەی گوزارشت", "errors.unexpected_crash.report_issue": "کێشەی گوزارشت",
"explore.search_results": "ئەنجامەکانی گەڕان", "explore.search_results": "ئەنجامەکانی گەڕان",
"explore.suggested_follows": "خەڵک",
"explore.title": "گەڕان", "explore.title": "گەڕان",
"explore.trending_links": "هەواڵەکان", "explore.trending_links": "هەواڵەکان",
"explore.trending_statuses": "بڵاوکراوەکان", "explore.trending_statuses": "بڵاوکراوەکان",
@ -236,9 +267,16 @@
"filter_modal.select_filter.subtitle": "بەکارهێنانی پۆلێنی بەردەست یان دروستکردنی پۆلێنێکی نوێ", "filter_modal.select_filter.subtitle": "بەکارهێنانی پۆلێنی بەردەست یان دروستکردنی پۆلێنێکی نوێ",
"filter_modal.select_filter.title": "ئەم بڵاوکراوەیە بپاڵێوە", "filter_modal.select_filter.title": "ئەم بڵاوکراوەیە بپاڵێوە",
"filter_modal.title.status": "بڵاوکراوەیەک بپاڵێوە", "filter_modal.title.status": "بڵاوکراوەیەک بپاڵێوە",
"firehose.all": "هەموو",
"firehose.local": "لەسەر ئەم ڕاژەیە",
"firehose.remote": "ڕاژەکانی دی",
"follow_request.authorize": "ده‌سه‌ڵاتپێدراو", "follow_request.authorize": "ده‌سه‌ڵاتپێدراو",
"follow_request.reject": "ڕەتکردنەوە", "follow_request.reject": "ڕەتکردنەوە",
"follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.", "follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.",
"follow_suggestions.curated_suggestion": "ستاف هەڵبژاردنی",
"follow_suggestions.dismiss": "دوبارە پشانی مەدە",
"follow_suggestions.view_all": "بینینی هەموو",
"follow_suggestions.who_to_follow": "دواکەوتنی کێ",
"followed_tags": "هاشتاگە شوێنکەوتووەکان", "followed_tags": "هاشتاگە شوێنکەوتووەکان",
"footer.about": "دەربارە", "footer.about": "دەربارە",
"footer.directory": "ڕابەری پەڕەی ناساندن", "footer.directory": "ڕابەری پەڕەی ناساندن",
@ -259,6 +297,7 @@
"hashtag.column_settings.tag_mode.any": "هەر کام لەمانە", "hashtag.column_settings.tag_mode.any": "هەر کام لەمانە",
"hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە", "hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە",
"hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە", "hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}",
"hashtag.follow": "شوێنکەوتنی هاشتاگ", "hashtag.follow": "شوێنکەوتنی هاشتاگ",
"hashtag.unfollow": "شوێن نەکەوتنی هاشتاگ", "hashtag.unfollow": "شوێن نەکەوتنی هاشتاگ",
"home.column_settings.basic": "بنەڕەتی", "home.column_settings.basic": "بنەڕەتی",

View File

@ -277,7 +277,13 @@
"follow_request.authorize": "Awdurdodi", "follow_request.authorize": "Awdurdodi",
"follow_request.reject": "Gwrthod", "follow_request.reject": "Gwrthod",
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.", "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
"follow_suggestions.curated_suggestion": "Dewis staff",
"follow_suggestions.dismiss": "Peidio â dangos hwn eto", "follow_suggestions.dismiss": "Peidio â dangos hwn eto",
"follow_suggestions.hints.featured": "Mae'r proffil hwn wedi'i ddewis yn arbennig gan dîm {domain}.",
"follow_suggestions.hints.friends_of_friends": "Mae'r proffil hwn yn boblogaidd ymhlith y bobl rydych chi'n eu dilyn.",
"follow_suggestions.hints.most_followed": "Mae'r proffil hwn yn un o'r rhai sy'n cael ei ddilyn fwyaf ar {domain}.",
"follow_suggestions.hints.most_interactions": "Mae'r proffil hwn wedi bod yn cael llawer o sylw yn ddiweddar ar {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Mae'r proffil hwn yn debyg i'r proffiliau rydych chi wedi'u dilyn yn fwyaf diweddar.",
"follow_suggestions.personalized_suggestion": "Awgrym personol", "follow_suggestions.personalized_suggestion": "Awgrym personol",
"follow_suggestions.popular_suggestion": "Awgrym poblogaidd", "follow_suggestions.popular_suggestion": "Awgrym poblogaidd",
"follow_suggestions.view_all": "Gweld y cyfan", "follow_suggestions.view_all": "Gweld y cyfan",

View File

@ -277,9 +277,13 @@
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar", "follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo", "follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.hints.featured": "Este perfil ha sido elegido a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.", "follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.", "follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil ha estado recibiendo recientemente mucha atención en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los perfiles que has seguido recientemente.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada", "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular", "follow_suggestions.popular_suggestion": "Sugerencia popular",
"follow_suggestions.view_all": "Ver todo", "follow_suggestions.view_all": "Ver todo",

View File

@ -171,21 +171,21 @@
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
"confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?", "confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?",
"confirmations.domain_block.confirm": "Bloquear dominio entero", "confirmations.domain_block.confirm": "Bloquear todo el dominio",
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", "confirmations.domain_block.message": "¿Seguro que quieres bloquear todo el dominio {domain}? En general, unos cuantos bloqueos y silenciados concretos es suficiente y preferible. No verás contenido del dominio en ninguna cronología pública ni en tus notificaciones. Se eliminarán tus seguidores procedentes de ese dominio.",
"confirmations.edit.confirm": "Editar", "confirmations.edit.confirm": "Editar",
"confirmations.edit.message": "Editar ahora reemplazará el mensaje que está escribiendo. ¿Está seguro que quiere proceder?", "confirmations.edit.message": "Editar ahora reemplazará el mensaje que estás escribiendo. ¿Seguro que quieres proceder?",
"confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", "confirmations.logout.message": "¿Seguro que quieres cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar", "confirmations.mute.confirm": "Silenciar",
"confirmations.mute.explanation": "Esto esconderá las publicaciones de ellos y en las que los has mencionado, pero les permitirá ver tus mensajes y seguirte.", "confirmations.mute.explanation": "Esto esconderá sus publicaciones y las publicaciones que los mencionen, pero podrán seguir viendo tus mensajes y seguirte.",
"confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?", "confirmations.mute.message": "¿Seguro que quieres silenciar a {name}?",
"confirmations.redraft.confirm": "Borrar y volver a borrador", "confirmations.redraft.confirm": "Borrar y volver a borrador",
"confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.", "confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.",
"confirmations.reply.confirm": "Responder", "confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Seguro que deseas continuar?", "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Seguro que deseas continuar?",
"confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?", "confirmations.unfollow.message": "¿Seguro que quieres dejar de seguir a {name}?",
"conversation.delete": "Borrar conversación", "conversation.delete": "Borrar conversación",
"conversation.mark_as_read": "Marcar como leído", "conversation.mark_as_read": "Marcar como leído",
"conversation.open": "Ver conversación", "conversation.open": "Ver conversación",
@ -194,7 +194,7 @@
"copypaste.copied": "Copiado", "copypaste.copied": "Copiado",
"copypaste.copy_to_clipboard": "Copiar al portapapeles", "copypaste.copy_to_clipboard": "Copiar al portapapeles",
"directory.federated": "Desde el fediverso conocido", "directory.federated": "Desde el fediverso conocido",
"directory.local": "Sólo de {domain}", "directory.local": "Solo 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": "Ajustes de la cuenta", "disabled_account_banner.account_settings": "Ajustes de la cuenta",
@ -210,11 +210,11 @@
"emoji_button.activity": "Actividad", "emoji_button.activity": "Actividad",
"emoji_button.clear": "Limpiar", "emoji_button.clear": "Limpiar",
"emoji_button.custom": "Personalizado", "emoji_button.custom": "Personalizado",
"emoji_button.flags": "Marcas", "emoji_button.flags": "Banderas",
"emoji_button.food": "Comida y bebida", "emoji_button.food": "Comida y bebida",
"emoji_button.label": "Insertar emoji", "emoji_button.label": "Insertar emoji",
"emoji_button.nature": "Naturaleza", "emoji_button.nature": "Naturaleza",
"emoji_button.not_found": "No hay emojis!! ¯\\_(ツ)_/¯", "emoji_button.not_found": "No se encontró ningún emoji coincidente",
"emoji_button.objects": "Objetos", "emoji_button.objects": "Objetos",
"emoji_button.people": "Personas", "emoji_button.people": "Personas",
"emoji_button.recent": "Usados frecuentemente", "emoji_button.recent": "Usados frecuentemente",
@ -230,8 +230,8 @@
"empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.", "empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!", "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.",
"empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.domain_blocks": "Todavía no hay dominios bloqueados.",
"empty_column.explore_statuses": "Nada está en tendencia en este momento. ¡Revisa más tarde!", "empty_column.explore_statuses": "No hay nada en tendencia en este momento. ¡Revisa más tarde!",
"empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.", "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.",
"empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.", "empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.",
"empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
@ -277,9 +277,13 @@
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar", "follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo", "follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.hints.featured": "Este perfil ha sido elegido a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.", "follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.", "follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil ha estado recibiendo recientemente mucha atención en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los perfiles que has seguido recientemente.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada", "follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular", "follow_suggestions.popular_suggestion": "Sugerencia popular",
"follow_suggestions.view_all": "Ver todo", "follow_suggestions.view_all": "Ver todo",
@ -551,6 +555,7 @@
"relative_time.minutes": "{number} m", "relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "hoy", "relative_time.today": "hoy",
"reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}",
"reply_indicator.cancel": "Cancelar", "reply_indicator.cancel": "Cancelar",
"reply_indicator.poll": "Encuesta", "reply_indicator.poll": "Encuesta",
"report.block": "Bloquear", "report.block": "Bloquear",

View File

@ -500,7 +500,7 @@
"onboarding.share.message": "{username} naiz #Mastodon-en! Jarrai nazazu hemen: {url}", "onboarding.share.message": "{username} naiz #Mastodon-en! Jarrai nazazu hemen: {url}",
"onboarding.share.next_steps": "Hurrengo urrats posibleak:", "onboarding.share.next_steps": "Hurrengo urrats posibleak:",
"onboarding.share.title": "Partekatu zure profila", "onboarding.share.title": "Partekatu zure profila",
"onboarding.start.lead": "Zure Mastodoneko kontu berria prest dago. Jakin nola atera diezaioekun etekin handiena hemen:", "onboarding.start.lead": "Mastodonen parte zara orain, bakarra eta deszentralizatua den sare-sozialaren plataforma, non zuk, eta ez algoritmo batek, zeure esperientzia pertsonaliza dezakezun. Igaro ezazu muga soziala:",
"onboarding.start.skip": "Urrats guztiak saltatu nahi dituzu?", "onboarding.start.skip": "Urrats guztiak saltatu nahi dituzu?",
"onboarding.start.title": "Lortu duzu!", "onboarding.start.title": "Lortu duzu!",
"onboarding.steps.follow_people.body": "Zure jarioa zuk pertsonalizatzen duzu. Bete dezagun jende interesgarriaz.", "onboarding.steps.follow_people.body": "Zure jarioa zuk pertsonalizatzen duzu. Bete dezagun jende interesgarriaz.",

View File

@ -110,7 +110,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": "دامنه‌های مسدود شده",
@ -131,7 +131,7 @@
"column_header.show_settings": "نمایش تنظیمات", "column_header.show_settings": "نمایش تنظیمات",
"column_header.unpin": "برداشتن سنجاق", "column_header.unpin": "برداشتن سنجاق",
"column_subheading.settings": "تنظیمات", "column_subheading.settings": "تنظیمات",
"community.column_settings.local_only": "فقط محلّی", "community.column_settings.local_only": "فقط محلی",
"community.column_settings.media_only": "فقط رسانه", "community.column_settings.media_only": "فقط رسانه",
"community.column_settings.remote_only": "تنها دوردست", "community.column_settings.remote_only": "تنها دوردست",
"compose.language.change": "تغییر زبان", "compose.language.change": "تغییر زبان",
@ -228,7 +228,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": "الآن چیزی پرطرفدار نیست. بعداً دوباره بررسی کنید!",
@ -277,6 +277,17 @@
"follow_request.authorize": "اجازه دهید", "follow_request.authorize": "اجازه دهید",
"follow_request.reject": "رد کنید", "follow_request.reject": "رد کنید",
"follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.", "follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.",
"follow_suggestions.curated_suggestion": "گزینش سردبیر",
"follow_suggestions.dismiss": "دیگر نشان داده نشود",
"follow_suggestions.hints.featured": "این نمایه به دست گروه {domain} دستچین شده.",
"follow_suggestions.hints.friends_of_friends": "این نمایه بین کسانی که پی می‌گیرید محبوب است.",
"follow_suggestions.hints.most_followed": "این نمایه روی {domain} بسیار پی‌گرفته شده.",
"follow_suggestions.hints.most_interactions": "این نمایه اخیراُ روی {domain} توجّه زیادی گرفته.",
"follow_suggestions.hints.similar_to_recently_followed": "این نمایه شبیه نمایه‌هاییست که اخیراً پی‌گرفته‌اید.",
"follow_suggestions.personalized_suggestion": "پیشنهاد شخصی",
"follow_suggestions.popular_suggestion": "پیشنهاد محبوب",
"follow_suggestions.view_all": "دیدن همه",
"follow_suggestions.who_to_follow": "افرادی برای پی‌گیری",
"followed_tags": "برچسب‌های پی‌گرفته", "followed_tags": "برچسب‌های پی‌گرفته",
"footer.about": "درباره", "footer.about": "درباره",
"footer.directory": "فهرست نمایه‌ها", "footer.directory": "فهرست نمایه‌ها",
@ -345,7 +356,7 @@
"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": "گشودن نمایه‌تان",
@ -396,7 +407,7 @@
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته", "navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
"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": "گشت و گذار",
@ -475,8 +486,10 @@
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.discoverable": "نمایه خود را قابل نمایش کنید", "onboarding.profile.discoverable": "نمایه خود را قابل نمایش کنید",
"onboarding.profile.discoverable_hint": "خواسته‌اید روی ماستودون کشف شوید. ممکن است فرسته‌هایتان در نتیحهٔ جست‌وجوها و فرسته‌های داغ ظاهر شده و نمایه‌تان به افرادی با علایق مشابهتان پیشنهاد شود.",
"onboarding.profile.display_name": "نام نمایشی", "onboarding.profile.display_name": "نام نمایشی",
"onboarding.profile.display_name_hint": "نام کامل یا نام باحالتان…", "onboarding.profile.display_name_hint": "نام کامل یا نام باحالتان…",
"onboarding.profile.lead": "همواره می‌توانید این مورد را در تنظیمات که گزینه‌ّای شخصی سازی بیش‌تری نیز دارد کامل کنید.",
"onboarding.profile.note": "درباره شما", "onboarding.profile.note": "درباره شما",
"onboarding.profile.note_hint": "می‌توانید افراد دیگر را @نام‌بردن یا #برچسب بزنید…", "onboarding.profile.note_hint": "می‌توانید افراد دیگر را @نام‌بردن یا #برچسب بزنید…",
"onboarding.profile.save_and_continue": "ذخیره کن و ادامه بده", "onboarding.profile.save_and_continue": "ذخیره کن و ادامه بده",
@ -522,6 +535,7 @@
"privacy.private.short": "پی‌گیرندگان", "privacy.private.short": "پی‌گیرندگان",
"privacy.public.long": "هرکسی در و بیرون از ماستودون", "privacy.public.long": "هرکسی در و بیرون از ماستودون",
"privacy.public.short": "عمومی", "privacy.public.short": "عمومی",
"privacy.unlisted.additional": "درست مثل عمومی رفتار می‌کند؛ جز این که فرسته در برچسب‌ها یا خوراک‌های زنده، کشف یا جست‌وجوی ماستودون ظاهر نخواهد شد. حتا اگر کلیّت نمایه‌تان اجازه داده باشد.",
"privacy.unlisted.long": "سروصدای الگوریتمی کم‌تر", "privacy.unlisted.long": "سروصدای الگوریتمی کم‌تر",
"privacy.unlisted.short": "عمومی ساکت", "privacy.unlisted.short": "عمومی ساکت",
"privacy_policy.last_updated": "آخرین به‌روز رسانی در {date}", "privacy_policy.last_updated": "آخرین به‌روز رسانی در {date}",
@ -541,6 +555,7 @@
"relative_time.minutes": "{number} دقیقه", "relative_time.minutes": "{number} دقیقه",
"relative_time.seconds": "{number} ثانیه", "relative_time.seconds": "{number} ثانیه",
"relative_time.today": "امروز", "relative_time.today": "امروز",
"reply_indicator.attachments": "{count, plural, one {# پیوست} other {# پیوست}}",
"reply_indicator.cancel": "لغو", "reply_indicator.cancel": "لغو",
"reply_indicator.poll": "نظرسنجی", "reply_indicator.poll": "نظرسنجی",
"report.block": "انسداد", "report.block": "انسداد",

View File

@ -277,6 +277,17 @@
"follow_request.authorize": "Autoriser", "follow_request.authorize": "Autoriser",
"follow_request.reject": "Rejeter", "follow_request.reject": "Rejeter",
"follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.", "follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
"follow_suggestions.curated_suggestion": "Choix du staff",
"follow_suggestions.dismiss": "Ne plus afficher",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
"follow_suggestions.hints.most_followed": "Ce profil est l'un des plus suivis sur {domain}.",
"follow_suggestions.hints.most_interactions": "Ce profil a récemment fait l'objet d'une grande attention sur {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.",
"follow_suggestions.personalized_suggestion": "Suggestion personnalisée",
"follow_suggestions.popular_suggestion": "Suggestion populaire",
"follow_suggestions.view_all": "Tout afficher",
"follow_suggestions.who_to_follow": "Qui suivre",
"followed_tags": "Hashtags suivis", "followed_tags": "Hashtags suivis",
"footer.about": "À propos", "footer.about": "À propos",
"footer.directory": "Annuaire des profils", "footer.directory": "Annuaire des profils",

View File

@ -277,6 +277,17 @@
"follow_request.authorize": "Accepter", "follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter", "follow_request.reject": "Rejeter",
"follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.", "follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.",
"follow_suggestions.curated_suggestion": "Choix du staff",
"follow_suggestions.dismiss": "Ne plus afficher",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
"follow_suggestions.hints.most_followed": "Ce profil est l'un des plus suivis sur {domain}.",
"follow_suggestions.hints.most_interactions": "Ce profil a récemment fait l'objet d'une grande attention sur {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.",
"follow_suggestions.personalized_suggestion": "Suggestion personnalisée",
"follow_suggestions.popular_suggestion": "Suggestion populaire",
"follow_suggestions.view_all": "Tout afficher",
"follow_suggestions.who_to_follow": "Qui suivre",
"followed_tags": "Hashtags suivis", "followed_tags": "Hashtags suivis",
"footer.about": "À propos", "footer.about": "À propos",
"footer.directory": "Annuaire des profils", "footer.directory": "Annuaire des profils",

View File

@ -277,7 +277,13 @@
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar", "follow_request.reject": "Rexeitar",
"follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.", "follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.",
"follow_suggestions.curated_suggestion": "Suxestións do Servidor",
"follow_suggestions.dismiss": "Non mostrar máis", "follow_suggestions.dismiss": "Non mostrar máis",
"follow_suggestions.hints.featured": "Este perfil foi escollido pola administración de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as persoas que segues.",
"follow_suggestions.hints.most_followed": "Este perfil é un dos máis seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil tivo moitas interaccións últimamente en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil ten semellanzas cos perfís que ti seguiches últimamente.",
"follow_suggestions.personalized_suggestion": "Suxestión personalizada", "follow_suggestions.personalized_suggestion": "Suxestión personalizada",
"follow_suggestions.popular_suggestion": "Suxestión popular", "follow_suggestions.popular_suggestion": "Suxestión popular",
"follow_suggestions.view_all": "Ver todas", "follow_suggestions.view_all": "Ver todas",

View File

@ -277,7 +277,13 @@
"follow_request.authorize": "Autorisar", "follow_request.authorize": "Autorisar",
"follow_request.reject": "Rejecter", "follow_request.reject": "Rejecter",
"follow_requests.unlocked_explanation": "Benque tu conto ne es cludet, li administratores de {domain} pensat que tu fórsan vell voler tractar seque-petitiones de tis-ci contos manualmen.", "follow_requests.unlocked_explanation": "Benque tu conto ne es cludet, li administratores de {domain} pensat que tu fórsan vell voler tractar seque-petitiones de tis-ci contos manualmen.",
"follow_suggestions.curated_suggestion": "Selection del employates",
"follow_suggestions.dismiss": "Ne monstrar plu", "follow_suggestions.dismiss": "Ne monstrar plu",
"follow_suggestions.hints.featured": "Ti-ci profil ha esset selectet directmen del equip de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ti-ci profil es populari ínter tis qui tu seque.",
"follow_suggestions.hints.most_followed": "Ti-ci profil es un del max sequet sur {domain}.",
"follow_suggestions.hints.most_interactions": "Ti-ci profil ha recivet mult atention recentmen sur {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Ti-ci profil es simil al profiles queles tu ha recentmen sequet.",
"follow_suggestions.personalized_suggestion": "Personalisat suggestion", "follow_suggestions.personalized_suggestion": "Personalisat suggestion",
"follow_suggestions.popular_suggestion": "Populari suggestion", "follow_suggestions.popular_suggestion": "Populari suggestion",
"follow_suggestions.view_all": "Vider omnicos", "follow_suggestions.view_all": "Vider omnicos",

View File

@ -22,6 +22,7 @@
"account.followers": "Imeḍfaren", "account.followers": "Imeḍfaren",
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
"account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}", "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}",
"account.following": "Yeṭṭafaṛ",
"account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}", "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}",
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
"account.go_to_profile": "Ddu ɣer umaɣnu", "account.go_to_profile": "Ddu ɣer umaɣnu",
@ -39,6 +40,7 @@
"account.posts_with_replies": "Tisuffaɣ d tririyin", "account.posts_with_replies": "Tisuffaɣ d tririyin",
"account.report": "Cetki ɣef @{name}", "account.report": "Cetki ɣef @{name}",
"account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar",
"account.requested_follow": "{name} yessuter ad k-yeḍfer",
"account.share": "Bḍu amaɣnu n @{name}", "account.share": "Bḍu amaɣnu n @{name}",
"account.show_reblogs": "Ssken-d inebḍa n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}",
"account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
@ -57,7 +59,7 @@
"alert.unexpected.title": "Ayhuh!", "alert.unexpected.title": "Ayhuh!",
"announcement.announcement": "Ulɣu", "announcement.announcement": "Ulɣu",
"audio.hide": "Ffer amesli", "audio.hide": "Ffer amesli",
"boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", "boost_modal.combo": "Tzemreḍ ad tsiteḍ ɣef {combo} akken ad tzegleḍ aya tikelt i d-iteddun",
"bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis", "bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis",
"bundle_column_error.error.title": "Uh, ala !", "bundle_column_error.error.title": "Uh, ala !",
"bundle_column_error.network.title": "Tuccḍa deg uẓeṭṭa", "bundle_column_error.network.title": "Tuccḍa deg uẓeṭṭa",
@ -73,7 +75,8 @@
"column.blocks": "Imiḍanen yettusḥebsen", "column.blocks": "Imiḍanen yettusḥebsen",
"column.bookmarks": "Ticraḍ", "column.bookmarks": "Ticraḍ",
"column.community": "Tasuddemt tadigant", "column.community": "Tasuddemt tadigant",
"column.directory": "Inig deg imaɣnuten", "column.direct": "Tabdarin tusligin",
"column.directory": "Inig deg imeɣna",
"column.domain_blocks": "Taɣulin yeffren", "column.domain_blocks": "Taɣulin yeffren",
"column.favourites": "Imenyafen", "column.favourites": "Imenyafen",
"column.follow_requests": "Isuturen n teḍfeṛt", "column.follow_requests": "Isuturen n teḍfeṛt",
@ -105,6 +108,7 @@
"compose_form.lock_disclaimer.lock": "yettwacekkel", "compose_form.lock_disclaimer.lock": "yettwacekkel",
"compose_form.placeholder": "D acu i itezzin deg wallaɣ?", "compose_form.placeholder": "D acu i itezzin deg wallaɣ?",
"compose_form.poll.duration": "Tanzagt n tefrant", "compose_form.poll.duration": "Tanzagt n tefrant",
"compose_form.poll.multiple": "Aṭas n ufran",
"compose_form.poll.option_placeholder": "Taxtiṛt {number}", "compose_form.poll.option_placeholder": "Taxtiṛt {number}",
"compose_form.poll.single": "Fren yiwen", "compose_form.poll.single": "Fren yiwen",
"compose_form.publish": "Suffeɣ", "compose_form.publish": "Suffeɣ",
@ -187,17 +191,20 @@
"explore.trending_links": "Isallen", "explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffaɣ", "explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen", "explore.trending_tags": "Ihacṭagen",
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}", "filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
"filter_modal.select_filter.search": "Nadi neɣ snulfu-d", "filter_modal.select_filter.search": "Nadi neɣ snulfu-d",
"firehose.all": "Akk", "firehose.all": "Akk",
"firehose.local": "Deg uqeddac-ayi", "firehose.local": "Deg uqeddac-ayi",
"firehose.remote": "Iqeddacen nniḍen",
"follow_request.authorize": "Ssireg", "follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi", "follow_request.reject": "Agi",
"follow_suggestions.dismiss": "Ur ttɛawad ara ad t-id-sekneṭ",
"follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ", "follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
"followed_tags": "Ihacṭagen yettwaḍfaren", "followed_tags": "Ihacṭagen yettwaḍfaren",
"footer.about": "Ɣef", "footer.about": "Ɣef",
"footer.directory": "Akaram n imaɣnuten", "footer.directory": "Akaram n imeɣna",
"footer.get_app": "Awi-d asnas", "footer.get_app": "Awi-d asnas",
"footer.invite": "Ɛreḍ-d kra n yimdanen", "footer.invite": "Ɛreḍ-d kra n yimdanen",
"footer.keyboard_shortcuts": "Inegzumen n unasiw", "footer.keyboard_shortcuts": "Inegzumen n unasiw",
@ -221,9 +228,12 @@
"home.column_settings.show_reblogs": "Ssken-d beṭṭu", "home.column_settings.show_reblogs": "Ssken-d beṭṭu",
"home.column_settings.show_replies": "Ssken-d tiririyin", "home.column_settings.show_replies": "Ssken-d tiririyin",
"home.hide_announcements": "Ffer ulɣuyen", "home.hide_announcements": "Ffer ulɣuyen",
"home.pending_critical_update.body": "Ma ulac aɣilif, leqqem aqeddac-ik Mastodon akken kan tzemreḍ !",
"home.show_announcements": "Ssken-d ulɣuyen", "home.show_announcements": "Ssken-d ulɣuyen",
"interaction_modal.no_account_yet": "Ulac-ik·ikem deg Maṣṭudun?", "interaction_modal.no_account_yet": "Ulac-ik·ikem deg Maṣṭudun?",
"interaction_modal.on_another_server": "Deg uqeddac nniḍen",
"interaction_modal.on_this_server": "Deg uqeddac-ayi", "interaction_modal.on_this_server": "Deg uqeddac-ayi",
"interaction_modal.sign_in": "Ur tekcimeḍ ara ɣer uqeddac-a. Anda yella umiḍan-ik·im ?",
"interaction_modal.title.follow": "Ḍfer {name}", "interaction_modal.title.follow": "Ḍfer {name}",
"intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
"intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}",
@ -351,12 +361,15 @@
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.display_name": "Isem ara d-yettwaskanen", "onboarding.profile.display_name": "Isem ara d-yettwaskanen",
"onboarding.share.message": "Nekk d {username} deg #Mastodon! Ḍfer iyi-d sya {url}",
"onboarding.share.title": "Bḍu amaɣnu-inek·inem", "onboarding.share.title": "Bḍu amaɣnu-inek·inem",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "Tseggmeḍ-tt !",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.", "onboarding.steps.publish_status.body": "Say hello to the world.",
"onboarding.steps.publish_status.title": "Aru tasuffeɣt-inek·inem tamezwarutt",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
@ -371,7 +384,10 @@
"poll_button.add_poll": "Rnu asenqed", "poll_button.add_poll": "Rnu asenqed",
"poll_button.remove_poll": "Kkes asenqed", "poll_button.remove_poll": "Kkes asenqed",
"privacy.change": "Seggem tabaḍnit n yizen", "privacy.change": "Seggem tabaḍnit n yizen",
"privacy.direct.long": "Wid akk i d-yettwabdaren deg tuffeɣt",
"privacy.private.long": "Ala wid i k-yeṭṭafaṛen",
"privacy.private.short": "Imeḍfaren", "privacy.private.short": "Imeḍfaren",
"privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s",
"privacy.public.short": "Azayez", "privacy.public.short": "Azayez",
"privacy_policy.title": "Tasertit tabaḍnit", "privacy_policy.title": "Tasertit tabaḍnit",
"refresh": "Smiren", "refresh": "Smiren",
@ -404,9 +420,14 @@
"report_notification.categories.other": "Ayen nniḍen", "report_notification.categories.other": "Ayen nniḍen",
"report_notification.categories.spam": "Aspam", "report_notification.categories.spam": "Aspam",
"report_notification.open": "Ldi aneqqis", "report_notification.open": "Ldi aneqqis",
"search.no_recent_searches": "Ulac inadiyen ineggura",
"search.placeholder": "Nadi", "search.placeholder": "Nadi",
"search.search_or_paste": "Nadi neɣ senṭeḍ URL", "search.search_or_paste": "Nadi neɣ senṭeḍ URL",
"search_popout.language_code": "Tangalt ISO n tutlayt",
"search_popout.options": "Iwellihen n unadi",
"search_popout.recent": "Inadiyen ineggura",
"search_popout.user": "amseqdac", "search_popout.user": "amseqdac",
"search_results.accounts": "Imeɣna",
"search_results.all": "Akk", "search_results.all": "Akk",
"search_results.hashtags": "Ihacṭagen", "search_results.hashtags": "Ihacṭagen",
"search_results.see_all": "Wali-ten akk", "search_results.see_all": "Wali-ten akk",
@ -471,7 +492,7 @@
"timeline_hint.resources.followers": "Imeḍfaṛen", "timeline_hint.resources.followers": "Imeḍfaṛen",
"timeline_hint.resources.follows": "T·Yeṭafaṛ", "timeline_hint.resources.follows": "T·Yeṭafaṛ",
"timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin", "timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}", "trends.counter_by_accounts": "{count, plural, one {{counter} n wemdan} other {{counter} n medden}} deg {days, plural, one {ass} other {{days} n wussan}} iɛeddan",
"trends.trending_now": "Ayen mucaɛen tura", "trends.trending_now": "Ayen mucaɛen tura",
"ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.", "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
"units.short.billion": "{count}B", "units.short.billion": "{count}B",

View File

@ -212,7 +212,7 @@
"emoji_button.custom": "사용자 지정", "emoji_button.custom": "사용자 지정",
"emoji_button.flags": "깃발", "emoji_button.flags": "깃발",
"emoji_button.food": "음식과 마실것", "emoji_button.food": "음식과 마실것",
"emoji_button.label": "에모지 추가", "emoji_button.label": "에모지 추가",
"emoji_button.nature": "자연", "emoji_button.nature": "자연",
"emoji_button.not_found": "해당하는 에모지가 없습니다", "emoji_button.not_found": "해당하는 에모지가 없습니다",
"emoji_button.objects": "물건", "emoji_button.objects": "물건",
@ -536,7 +536,7 @@
"privacy.public.long": "마스토돈 내외 모두", "privacy.public.long": "마스토돈 내외 모두",
"privacy.public.short": "공개", "privacy.public.short": "공개",
"privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.", "privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.",
"privacy.unlisted.long": "더 적은 알고리즘 팡파", "privacy.unlisted.long": "더 적은 알고리즘 팡파",
"privacy.unlisted.short": "조용한 공개", "privacy.unlisted.short": "조용한 공개",
"privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨", "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨",
"privacy_policy.title": "개인정보처리방침", "privacy_policy.title": "개인정보처리방침",

View File

@ -1,6 +1,6 @@
{ {
"about.blocks": "Prižiūrimi serveriai", "about.blocks": "Prižiūrimi serveriai",
"about.contact": "Kontaktuoti:", "about.contact": "Kontaktai:",
"about.disclaimer": "Mastodon nemokama atvirojo kodo programa ir Mastodon gGmbH prekės ženklas.", "about.disclaimer": "Mastodon nemokama atvirojo kodo programa ir Mastodon gGmbH prekės ženklas.",
"about.domain_blocks.no_reason_available": "Priežastis nepateikta", "about.domain_blocks.no_reason_available": "Priežastis nepateikta",
"about.domain_blocks.preamble": "Mastodon paprastai leidžia peržiūrėti turinį ir bendrauti su naudotojais iš bet kurio kito fediverse esančio serverio. Šios yra išimtys, kurios buvo padarytos šiame konkrečiame serveryje.", "about.domain_blocks.preamble": "Mastodon paprastai leidžia peržiūrėti turinį ir bendrauti su naudotojais iš bet kurio kito fediverse esančio serverio. Šios yra išimtys, kurios buvo padarytos šiame konkrečiame serveryje.",
@ -269,6 +269,7 @@
"follow_request.authorize": "Autorizuoti", "follow_request.authorize": "Autorizuoti",
"follow_request.reject": "Atmesti", "follow_request.reject": "Atmesti",
"follow_requests.unlocked_explanation": "Nors tavo paskyra neužrakinta, {domain} personalas mano, kad galbūt norėsi rankiniu būdu patikrinti šių paskyrų sekimo užklausas.", "follow_requests.unlocked_explanation": "Nors tavo paskyra neužrakinta, {domain} personalas mano, kad galbūt norėsi rankiniu būdu patikrinti šių paskyrų sekimo užklausas.",
"follow_suggestions.curated_suggestion": "Personalo pasirinkimai",
"follow_suggestions.dismiss": "Daugiau nerodyti", "follow_suggestions.dismiss": "Daugiau nerodyti",
"follow_suggestions.hints.friends_of_friends": "Šis profilis yra populiarus tarp žmonių, kuriuos sekei.", "follow_suggestions.hints.friends_of_friends": "Šis profilis yra populiarus tarp žmonių, kuriuos sekei.",
"follow_suggestions.hints.most_followed": "Šis profilis yra vienas iš labiausiai sekamų {domain}.", "follow_suggestions.hints.most_followed": "Šis profilis yra vienas iš labiausiai sekamų {domain}.",
@ -423,7 +424,7 @@
"notifications.column_settings.mention": "Paminėjimai:", "notifications.column_settings.mention": "Paminėjimai:",
"notifications.column_settings.poll": "Balsavimo rezultatai:", "notifications.column_settings.poll": "Balsavimo rezultatai:",
"notifications.column_settings.push": "\"Push\" pranešimai", "notifications.column_settings.push": "\"Push\" pranešimai",
"notifications.column_settings.reblog": "\"Boost\" kiekis:", "notifications.column_settings.reblog": "Pakėlimai:",
"notifications.column_settings.show": "Rodyti stulpelyje", "notifications.column_settings.show": "Rodyti stulpelyje",
"notifications.column_settings.sound": "Paleisti garsą", "notifications.column_settings.sound": "Paleisti garsą",
"notifications.column_settings.status": "New toots:", "notifications.column_settings.status": "New toots:",
@ -635,6 +636,7 @@
"status.translate": "Versti", "status.translate": "Versti",
"status.translated_from_with": "Išversta iš {lang} naudojant {provider}", "status.translated_from_with": "Išversta iš {lang} naudojant {provider}",
"status.uncached_media_warning": "Peržiūra nepasiekiama", "status.uncached_media_warning": "Peržiūra nepasiekiama",
"subscribed_languages.lead": "Po pakeitimo tavo pagrindinėje ir sąrašo laiko juostose bus rodomi tik įrašai pasirinktomis kalbomis. Jei nori gauti įrašus visomis kalbomis, pasirink nė vieno.",
"tabs_bar.home": "Pradžia", "tabs_bar.home": "Pradžia",
"tabs_bar.notifications": "Pranešimai", "tabs_bar.notifications": "Pranešimai",
"time_remaining.days": "Liko {number, plural, one {# diena} few {# dienos} many {# dieno} other {# dienų}}", "time_remaining.days": "Liko {number, plural, one {# diena} few {# dienos} many {# dieno} other {# dienų}}",

View File

@ -277,7 +277,11 @@
"follow_request.authorize": "Benarkan", "follow_request.authorize": "Benarkan",
"follow_request.reject": "Tolak", "follow_request.reject": "Tolak",
"follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
"follow_suggestions.curated_suggestion": "",
"follow_suggestions.dismiss": "Jangan papar lagi", "follow_suggestions.dismiss": "Jangan papar lagi",
"follow_suggestions.hints.featured": "Profil{domain.",
"follow_suggestions.hints.friends_of_friends": "This profile is popular among the people you follow.",
"follow_suggestions.hints.most_followed": ".",
"follow_suggestions.personalized_suggestion": "Cadangan peribadi", "follow_suggestions.personalized_suggestion": "Cadangan peribadi",
"follow_suggestions.popular_suggestion": "Cadangan terkenal", "follow_suggestions.popular_suggestion": "Cadangan terkenal",
"follow_suggestions.view_all": "Lihat semua", "follow_suggestions.view_all": "Lihat semua",

View File

@ -279,11 +279,11 @@
"follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.", "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.",
"follow_suggestions.curated_suggestion": "Speciaal geselecteerd", "follow_suggestions.curated_suggestion": "Speciaal geselecteerd",
"follow_suggestions.dismiss": "Niet meer weergeven", "follow_suggestions.dismiss": "Niet meer weergeven",
"follow_suggestions.hints.featured": "Dit profiel is geselecteerd door het team van {domain}.", "follow_suggestions.hints.featured": "Deze gebruiker is geselecteerd door het team van {domain}.",
"follow_suggestions.hints.friends_of_friends": "Dit profiel is populair onder de mensen die jij volgt.", "follow_suggestions.hints.friends_of_friends": "Deze gebruiker is populair onder de mensen die jij volgt.",
"follow_suggestions.hints.most_followed": "Dit profiel is een van de meest gevolgde op {domain}.", "follow_suggestions.hints.most_followed": "Deze gebruiker is een van de meest gevolgde gebruikers op {domain}.",
"follow_suggestions.hints.most_interactions": "Dit profiel heeft de laatste tijd veel aandacht gekregen op {domain}.", "follow_suggestions.hints.most_interactions": "Deze gebruiker is de laatste tijd erg populair op {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Dit profiel is vergelijkbaar met de profielen die je recentelijk hebt gevolgd.", "follow_suggestions.hints.similar_to_recently_followed": "Deze gebruiker is vergelijkbaar met gebruikers die je recentelijk hebt gevolgd.",
"follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling", "follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling",
"follow_suggestions.popular_suggestion": "Populaire aanbeveling", "follow_suggestions.popular_suggestion": "Populaire aanbeveling",
"follow_suggestions.view_all": "Alles weergeven", "follow_suggestions.view_all": "Alles weergeven",
@ -529,8 +529,8 @@
"poll_button.add_poll": "Peiling toevoegen", "poll_button.add_poll": "Peiling toevoegen",
"poll_button.remove_poll": "Peiling verwijderen", "poll_button.remove_poll": "Peiling verwijderen",
"privacy.change": "Zichtbaarheid van bericht aanpassen", "privacy.change": "Zichtbaarheid van bericht aanpassen",
"privacy.direct.long": "Iedereen die in het bericht wordt vermeld", "privacy.direct.long": "Alleen voor mensen die specifiek in het bericht worden vermeld",
"privacy.direct.short": "Bepaalde mensen", "privacy.direct.short": "Specifieke mensen",
"privacy.private.long": "Alleen jouw volgers", "privacy.private.long": "Alleen jouw volgers",
"privacy.private.short": "Volgers", "privacy.private.short": "Volgers",
"privacy.public.long": "Iedereen op Mastodon en daarbuiten", "privacy.public.long": "Iedereen op Mastodon en daarbuiten",

View File

@ -40,7 +40,7 @@
"account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}", "account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}",
"account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
"account.go_to_profile": "Gå til profil", "account.go_to_profile": "Gå til profil",
"account.hide_reblogs": "Skjul framhevingar frå @{name}", "account.hide_reblogs": "Gøym framhevingar frå @{name}",
"account.in_memoriam": "Til minne om.", "account.in_memoriam": "Til minne om.",
"account.joined_short": "Vart med", "account.joined_short": "Vart med",
"account.languages": "Endre språktingingar", "account.languages": "Endre språktingingar",
@ -113,7 +113,7 @@
"column.community": "Lokal tidsline", "column.community": "Lokal tidsline",
"column.direct": "Private omtaler", "column.direct": "Private omtaler",
"column.directory": "Sjå gjennom profilar", "column.directory": "Sjå gjennom profilar",
"column.domain_blocks": "Skjulte domene", "column.domain_blocks": "Blokkerte domene",
"column.favourites": "Favorittar", "column.favourites": "Favorittar",
"column.firehose": "Tidslinjer", "column.firehose": "Tidslinjer",
"column.follow_requests": "Fylgjeførespurnadar", "column.follow_requests": "Fylgjeførespurnadar",
@ -124,7 +124,7 @@
"column.pins": "Festa tut", "column.pins": "Festa tut",
"column.public": "Samla tidsline", "column.public": "Samla tidsline",
"column_back_button.label": "Attende", "column_back_button.label": "Attende",
"column_header.hide_settings": "Gøym innstillingar", "column_header.hide_settings": "Gøym innstillingane",
"column_header.moveLeft_settings": "Flytt kolonne til venstre", "column_header.moveLeft_settings": "Flytt kolonne til venstre",
"column_header.moveRight_settings": "Flytt kolonne til høgre", "column_header.moveRight_settings": "Flytt kolonne til høgre",
"column_header.pin": "Fest", "column_header.pin": "Fest",
@ -171,14 +171,14 @@
"confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?", "confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?",
"confirmations.discard_edit_media.confirm": "Forkast", "confirmations.discard_edit_media.confirm": "Forkast",
"confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?", "confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?",
"confirmations.domain_block.confirm": "Skjul alt frå domenet", "confirmations.domain_block.confirm": "Blokker heile domenet",
"confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.", "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.",
"confirmations.edit.confirm": "Rediger", "confirmations.edit.confirm": "Rediger",
"confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?",
"confirmations.logout.confirm": "Logg ut", "confirmations.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logga ut?", "confirmations.logout.message": "Er du sikker på at du vil logga ut?",
"confirmations.mute.confirm": "Målbind", "confirmations.mute.confirm": "Målbind",
"confirmations.mute.explanation": "Dette vil skjula innlegg som kjem frå og som nemner dei, men vil framleis la dei sjå innlegga dine og fylgje deg.", "confirmations.mute.explanation": "Dette vil gøyma innlegga deira og innlegg som nemner dei, men dei vil framleis kunna sjå innlegga dine og fylgja deg.",
"confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?",
"confirmations.redraft.confirm": "Slett & skriv på nytt", "confirmations.redraft.confirm": "Slett & skriv på nytt",
"confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.", "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.",
@ -230,7 +230,7 @@
"empty_column.bookmarked_statuses": "Du har ikkje lagra noko bokmerke enno. Når du set bokmerke på eit innlegg, dukkar det opp her.", "empty_column.bookmarked_statuses": "Du har ikkje lagra noko bokmerke enno. Når du set bokmerke på eit innlegg, dukkar det opp her.",
"empty_column.community": "Den lokale tidslina er tom. Skriv noko offentleg å få ballen til å rulle!", "empty_column.community": "Den lokale tidslina er tom. Skriv noko offentleg å få ballen til å rulle!",
"empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.",
"empty_column.domain_blocks": "Det er ingen skjulte domene til no.", "empty_column.domain_blocks": "Det er ingen blokkerte domene enno.",
"empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!", "empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!",
"empty_column.favourited_statuses": "Du har ingen favoritt-statusar ennå. Når du merkjer ein som favoritt, dukkar han opp her.", "empty_column.favourited_statuses": "Du har ingen favoritt-statusar ennå. Når du merkjer ein som favoritt, dukkar han opp her.",
"empty_column.favourites": "Ingen har merkt denne statusen som favoritt enno. Når nokon gjer det, dukkar dei opp her.", "empty_column.favourites": "Ingen har merkt denne statusen som favoritt enno. Når nokon gjer det, dukkar dei opp her.",
@ -277,7 +277,13 @@
"follow_request.authorize": "Autoriser", "follow_request.authorize": "Autoriser",
"follow_request.reject": "Avvis", "follow_request.reject": "Avvis",
"follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.",
"follow_suggestions.curated_suggestion": "Utvalt av staben",
"follow_suggestions.dismiss": "Ikkje vis igjen", "follow_suggestions.dismiss": "Ikkje vis igjen",
"follow_suggestions.hints.featured": "Denne profilen er handplukka av folka på {domain}.",
"follow_suggestions.hints.friends_of_friends": "Denne profilen er populær hjå dei du fylgjer.",
"follow_suggestions.hints.most_followed": "Mange på {domain} fylgjer denne profilen.",
"follow_suggestions.hints.most_interactions": "Denne profilen har nyss fått mykje merksemd på {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Denne profilen liknar på dei andre profilane du har fylgt i det siste.",
"follow_suggestions.personalized_suggestion": "Personleg forslag", "follow_suggestions.personalized_suggestion": "Personleg forslag",
"follow_suggestions.popular_suggestion": "Populært forslag", "follow_suggestions.popular_suggestion": "Populært forslag",
"follow_suggestions.view_all": "Vis alle", "follow_suggestions.view_all": "Vis alle",
@ -395,7 +401,7 @@
"media_gallery.toggle_visible": "{number, plural, one {Skjul bilete} other {Skjul bilete}}", "media_gallery.toggle_visible": "{number, plural, one {Skjul bilete} other {Skjul bilete}}",
"moved_to_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert fordi du har flytta til {movedToAccount}.", "moved_to_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert fordi du har flytta til {movedToAccount}.",
"mute_modal.duration": "Varigheit", "mute_modal.duration": "Varigheit",
"mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?", "mute_modal.hide_notifications": "Gøym varsel frå denne brukaren?",
"mute_modal.indefinite": "På ubestemt tid", "mute_modal.indefinite": "På ubestemt tid",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt", "navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt",
@ -479,7 +485,8 @@
"onboarding.follows.empty": "Me kan ikkje visa deg nokon resultat no. Du kan prøva å søkja eller bla gjennom utforsk-sida for å finna folk å fylgja, eller du kan prøva att seinare.", "onboarding.follows.empty": "Me kan ikkje visa deg nokon resultat no. Du kan prøva å søkja eller bla gjennom utforsk-sida for å finna folk å fylgja, eller du kan prøva att seinare.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.discoverable": "Gjør min profil synlig", "onboarding.profile.discoverable": "Gjer profilen min synleg",
"onboarding.profile.discoverable_hint": "Når du vel å gjera profilen din synleg på Mastodon, vil innlegga dine syna i søkjeresultat og populære innlegg, og profilen din kan bli føreslegen for folk med liknande interesser som deg.",
"onboarding.profile.display_name": "Synleg namn", "onboarding.profile.display_name": "Synleg namn",
"onboarding.profile.display_name_hint": "Det fulle namnet eller kallenamnet ditt…", "onboarding.profile.display_name_hint": "Det fulle namnet eller kallenamnet ditt…",
"onboarding.profile.lead": "Du kan alltid fullføra dette seinare i innstillingane, og der er det endå fleire tilpassingsalternativ.", "onboarding.profile.lead": "Du kan alltid fullføra dette seinare i innstillingane, og der er det endå fleire tilpassingsalternativ.",
@ -528,11 +535,12 @@
"privacy.private.short": "Følgjarar", "privacy.private.short": "Følgjarar",
"privacy.public.long": "Kven som helst på og av Mastodon", "privacy.public.long": "Kven som helst på og av Mastodon",
"privacy.public.short": "Offentleg", "privacy.public.short": "Offentleg",
"privacy.unlisted.additional": "Dette er akkurat som offentleg, bortsett frå at innlegga ikkje dukkar opp i direktestraumar eller merkelappar, i oppdagingar eller Mastodon-søk, sjølv om du har sagt ja til at kontoen skal vera synleg.",
"privacy.unlisted.long": "Færre algoritmiske fanfarar", "privacy.unlisted.long": "Færre algoritmiske fanfarar",
"privacy.unlisted.short": "Stille offentleg", "privacy.unlisted.short": "Stille offentleg",
"privacy_policy.last_updated": "Sist oppdatert {date}", "privacy_policy.last_updated": "Sist oppdatert {date}",
"privacy_policy.title": "Personvernsreglar", "privacy_policy.title": "Personvernsreglar",
"recommended": "Anbefalt", "recommended": "Tilrådd",
"refresh": "Oppdater", "refresh": "Oppdater",
"regeneration_indicator.label": "Lastar…", "regeneration_indicator.label": "Lastar…",
"regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!", "regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!",
@ -605,7 +613,7 @@
"search.quick_action.status_search": "Innlegg som samsvarer med {x}", "search.quick_action.status_search": "Innlegg som samsvarer med {x}",
"search.search_or_paste": "Søk eller lim inn URL", "search.search_or_paste": "Søk eller lim inn URL",
"search_popout.full_text_search_disabled_message": "Ikkje tilgjengeleg på {domain}.", "search_popout.full_text_search_disabled_message": "Ikkje tilgjengeleg på {domain}.",
"search_popout.full_text_search_logged_out_message": "Bare tilgjengelig når man er logget inn.", "search_popout.full_text_search_logged_out_message": "Berre tilgjengeleg når du er logga inn.",
"search_popout.language_code": "ISO-språkkode", "search_popout.language_code": "ISO-språkkode",
"search_popout.options": "Søkjealternativ", "search_popout.options": "Søkjealternativ",
"search_popout.quick_actions": "Hurtighandlinger", "search_popout.quick_actions": "Hurtighandlinger",
@ -654,7 +662,7 @@
"status.load_more": "Last inn meir", "status.load_more": "Last inn meir",
"status.media.open": "Klikk for å opne", "status.media.open": "Klikk for å opne",
"status.media.show": "Klikk for å vise", "status.media.show": "Klikk for å vise",
"status.media_hidden": "Medium gøymd", "status.media_hidden": "Mediet er gøymt",
"status.mention": "Nemn @{name}", "status.mention": "Nemn @{name}",
"status.more": "Meir", "status.more": "Meir",
"status.mute": "Målbind @{name}", "status.mute": "Målbind @{name}",

View File

@ -277,6 +277,7 @@
"follow_request.authorize": "Povoľ prístup", "follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni", "follow_request.reject": "Odmietni",
"follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.", "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
"follow_suggestions.curated_suggestion": "Staff pick",
"follow_suggestions.dismiss": "Znovu nezobrazuj", "follow_suggestions.dismiss": "Znovu nezobrazuj",
"follow_suggestions.personalized_suggestion": "Prispôsobené odporúčania", "follow_suggestions.personalized_suggestion": "Prispôsobené odporúčania",
"follow_suggestions.popular_suggestion": "Populárne návrhy", "follow_suggestions.popular_suggestion": "Populárne návrhy",

View File

@ -276,11 +276,18 @@
"firehose.remote": "Andra servrar", "firehose.remote": "Andra servrar",
"follow_request.authorize": "Godkänn", "follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa", "follow_request.reject": "Avvisa",
"follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.", "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain}-personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
"follow_suggestions.curated_suggestion": "Utvald av personalen",
"follow_suggestions.dismiss": "Visa inte igen", "follow_suggestions.dismiss": "Visa inte igen",
"follow_suggestions.hints.featured": "Denna profil är handplockad av {domain}-teamet.",
"follow_suggestions.hints.friends_of_friends": "Denna profil är populär bland de personer du följer.",
"follow_suggestions.hints.most_followed": "Denna profil är en av de mest följda på {domain}.",
"follow_suggestions.hints.most_interactions": "Denna profil har nyligen fått mycket uppmärksamhet på {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Denna profil liknar de profiler som du nyligen har följt.",
"follow_suggestions.personalized_suggestion": "Personligt förslag", "follow_suggestions.personalized_suggestion": "Personligt förslag",
"follow_suggestions.popular_suggestion": "Populärt förslag", "follow_suggestions.popular_suggestion": "Populärt förslag",
"follow_suggestions.view_all": "Visa alla", "follow_suggestions.view_all": "Visa alla",
"follow_suggestions.who_to_follow": "Rekommenderade profiler",
"followed_tags": "Följda hashtags", "followed_tags": "Följda hashtags",
"footer.about": "Om", "footer.about": "Om",
"footer.directory": "Profilkatalog", "footer.directory": "Profilkatalog",
@ -486,7 +493,9 @@
"onboarding.profile.note": "Bio", "onboarding.profile.note": "Bio",
"onboarding.profile.note_hint": "Du kan @nämna andra personer eller #hashtags…", "onboarding.profile.note_hint": "Du kan @nämna andra personer eller #hashtags…",
"onboarding.profile.save_and_continue": "Spara och fortsätt", "onboarding.profile.save_and_continue": "Spara och fortsätt",
"onboarding.profile.title": "Konfiguration av profil",
"onboarding.profile.upload_avatar": "Ladda upp profilbild", "onboarding.profile.upload_avatar": "Ladda upp profilbild",
"onboarding.profile.upload_header": "Ladda upp profilbanner",
"onboarding.share.lead": "Låt folk veta hur de kan hitta dig på Mastodon!", "onboarding.share.lead": "Låt folk veta hur de kan hitta dig på Mastodon!",
"onboarding.share.message": "Jag är {username} på #Mastodon! Följ mig på {url}", "onboarding.share.message": "Jag är {username} på #Mastodon! Följ mig på {url}",
"onboarding.share.next_steps": "Möjliga nästa steg:", "onboarding.share.next_steps": "Möjliga nästa steg:",
@ -521,10 +530,14 @@
"poll_button.remove_poll": "Ta bort omröstning", "poll_button.remove_poll": "Ta bort omröstning",
"privacy.change": "Ändra inläggsintegritet", "privacy.change": "Ändra inläggsintegritet",
"privacy.direct.long": "Alla som nämns i inlägget", "privacy.direct.long": "Alla som nämns i inlägget",
"privacy.direct.short": "Särskilda personer",
"privacy.private.long": "Endast dina följare", "privacy.private.long": "Endast dina följare",
"privacy.private.short": "Följare", "privacy.private.short": "Följare",
"privacy.public.long": "Alla på och utanför Mastodon", "privacy.public.long": "Alla på och utanför Mastodon",
"privacy.public.short": "Publik", "privacy.public.short": "Offentlig",
"privacy.unlisted.additional": "Detta fungerar precis som offentlig, förutom att inlägget inte visas i liveflöden eller hashtaggar, utforska eller Mastodon-sökning, även om du har valt detta för hela kontot.",
"privacy.unlisted.long": "Mindre beaktat av algoritmen",
"privacy.unlisted.short": "Offentlig (begränsad)",
"privacy_policy.last_updated": "Senast uppdaterad {date}", "privacy_policy.last_updated": "Senast uppdaterad {date}",
"privacy_policy.title": "Integritetspolicy", "privacy_policy.title": "Integritetspolicy",
"recommended": "Rekommenderas", "recommended": "Rekommenderas",

View File

@ -2,25 +2,25 @@
"about.blocks": "Siū kuán-tsè ê su-hāu-khì", "about.blocks": "Siū kuán-tsè ê su-hāu-khì",
"about.contact": "Liân-lo̍k:", "about.contact": "Liân-lo̍k:",
"about.disclaimer": "Ling-khí-tshiūnn sī tsi̍t-ê khai-guân nńg-théi ê siong-phiau sī Mastodon gGmbH.", "about.disclaimer": "Ling-khí-tshiūnn sī tsi̍t-ê khai-guân nńg-théi ê siong-phiau sī Mastodon gGmbH.",
"account.badges.bot": "Bot", "account.badges.bot": "Tsū-tōng-ê",
"account.cancel_follow_request": "Withdraw follow request", "account.cancel_follow_request": "Mài-koh tui-tsong",
"account.media": "Mûi-thé", "account.media": "Mûi-thé",
"account.mention": "Thê-khí @{name}", "account.mention": "Thê-khí @{name}",
"account.posts": "Toots", "account.posts": "Huah-siann",
"account.posts_with_replies": "Toots and replies", "account.posts_with_replies": "Huah-siann kah huê-ìng",
"account.requested": "Awaiting approval", "account.requested": "Tán-thāi phue-tsún",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.statuses_counter": "{count, plural, one {{counter} Huah-siann} other {{counter} Huah-siann}}",
"account_note.placeholder": "Click to add a note", "account_note.placeholder": "Tiám tsi̍t-ē ka-thiam pī-tsù",
"column.pins": "Pinned toot", "column.pins": "Tah thâu-tsîng ê huah-siann",
"community.column_settings.media_only": "Media only", "community.column_settings.media_only": "Kan-na muî-thé",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.encryption_warning": "Tī Mastodon tah huah-siann m̄-sī tuan-tuì-tuan ka-pì ê. M̄-thang tī Mastodon hun-hióng jīm-hô bín-kám ê tsū-sìn.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.hashtag_warning": "Tsit-ê huah-siann in-uī m̄-sī kong-khai ê, sóo-í buē tī jīm-hô tsú-tê piau-tshiam hián-sī. Kan-na kong-khai ê huah-siann ē-tàng hōo tsú-tê piau-tshiam tshâ-tshuē.",
"compose_form.placeholder": "What is on your mind?", "compose_form.placeholder": "Lí teh siūnn siánn?",
"compose_form.publish_form": "Publish", "compose_form.publish_form": "Huah--tshut-khì",
"compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.marked": "Î-tû luē-iông kíng-kò",
"compose_form.spoiler.unmarked": "Text is not hidden", "compose_form.spoiler.unmarked": "Tsing-ka luē-iông kíng-kò",
"confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete.message": "Lí kám bueh thâi-tiāu tsi̍t-ē huah-siann?",
"confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.confirm": "Hong-só tsíng-kò bāng-hi̍k",
"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_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.",
"embed.instructions": "Embed this status on your website by copying the code below.", "embed.instructions": "Embed this status on your website by copying the code below.",
@ -46,7 +46,7 @@
"keyboard_shortcuts.muted": "to open muted users list", "keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile", "keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column", "keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.open_media": "Khui muî-thé",
"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": "to reply",

View File

@ -1,5 +1,5 @@
{ {
"about.blocks": "เซิร์ฟเวอร์ที่มีการควบคุม", "about.blocks": "เซิร์ฟเวอร์ที่มีการกลั่นกรอง",
"about.contact": "ติดต่อ:", "about.contact": "ติดต่อ:",
"about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH", "about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH",
"about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน", "about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน",
@ -277,7 +277,13 @@
"follow_request.authorize": "อนุญาต", "follow_request.authorize": "อนุญาต",
"follow_request.reject": "ปฏิเสธ", "follow_request.reject": "ปฏิเสธ",
"follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง", "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
"follow_suggestions.curated_suggestion": "คัดสรรโดยพนักงาน",
"follow_suggestions.dismiss": "ไม่ต้องแสดงอีก", "follow_suggestions.dismiss": "ไม่ต้องแสดงอีก",
"follow_suggestions.hints.featured": "โปรไฟล์นี้ได้รับการคัดสรรโดยทีม {domain}",
"follow_suggestions.hints.friends_of_friends": "โปรไฟล์นี้ได้รับความนิยมในหมู่ผู้คนที่คุณติดตาม",
"follow_suggestions.hints.most_followed": "โปรไฟล์นี้เป็นหนึ่งในโปรไฟล์ที่ได้รับการติดตามมากที่สุดใน {domain}",
"follow_suggestions.hints.most_interactions": "โปรไฟล์นี้เพิ่งได้รับความสนใจอย่างมากใน {domain}",
"follow_suggestions.hints.similar_to_recently_followed": "โปรไฟล์นี้คล้ายกับโปรไฟล์ที่คุณได้ติดตามล่าสุด",
"follow_suggestions.personalized_suggestion": "ข้อเสนอแนะเฉพาะบุคคล", "follow_suggestions.personalized_suggestion": "ข้อเสนอแนะเฉพาะบุคคล",
"follow_suggestions.popular_suggestion": "ข้อเสนอแนะยอดนิยม", "follow_suggestions.popular_suggestion": "ข้อเสนอแนะยอดนิยม",
"follow_suggestions.view_all": "ดูทั้งหมด", "follow_suggestions.view_all": "ดูทั้งหมด",
@ -374,7 +380,7 @@
"lightbox.next": "ถัดไป", "lightbox.next": "ถัดไป",
"lightbox.previous": "ก่อนหน้า", "lightbox.previous": "ก่อนหน้า",
"limited_account_hint.action": "แสดงโปรไฟล์ต่อไป", "limited_account_hint.action": "แสดงโปรไฟล์ต่อไป",
"limited_account_hint.title": "มีการซ่อนโปรไฟล์นี้โดยผู้ควบคุมของ {domain}", "limited_account_hint.title": "มีการซ่อนโปรไฟล์นี้โดยผู้กลั่นกรองของ {domain}",
"link_preview.author": "โดย {name}", "link_preview.author": "โดย {name}",
"lists.account.add": "เพิ่มไปยังรายการ", "lists.account.add": "เพิ่มไปยังรายการ",
"lists.account.remove": "เอาออกจากรายการ", "lists.account.remove": "เอาออกจากรายการ",
@ -631,9 +637,9 @@
"sign_in_banner.sign_in": "เข้าสู่ระบบ", "sign_in_banner.sign_in": "เข้าสู่ระบบ",
"sign_in_banner.sso_redirect": "เข้าสู่ระบบหรือลงทะเบียน", "sign_in_banner.sso_redirect": "เข้าสู่ระบบหรือลงทะเบียน",
"sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แชร์ และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แชร์ และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น",
"status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", "status.admin_account": "เปิดส่วนติดต่อการกลั่นกรองสำหรับ @{name}",
"status.admin_domain": "เปิดส่วนติดต่อการควบคุมสำหรับ {domain}", "status.admin_domain": "เปิดส่วนติดต่อการกลั่นกรองสำหรับ {domain}",
"status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการควบคุม", "status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการกลั่นกรอง",
"status.block": "ปิดกั้น @{name}", "status.block": "ปิดกั้น @{name}",
"status.bookmark": "เพิ่มที่คั่นหน้า", "status.bookmark": "เพิ่มที่คั่นหน้า",
"status.cancel_reblog_private": "เลิกดัน", "status.cancel_reblog_private": "เลิกดัน",

View File

@ -214,7 +214,7 @@
"emoji_button.food": "Yiyecek ve İçecek", "emoji_button.food": "Yiyecek ve İçecek",
"emoji_button.label": "İfade ekle", "emoji_button.label": "İfade ekle",
"emoji_button.nature": "Doğa", "emoji_button.nature": "Doğa",
"emoji_button.not_found": "İfade yok!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "Eşleşen emoji yok",
"emoji_button.objects": "Nesneler", "emoji_button.objects": "Nesneler",
"emoji_button.people": "Kullanıcılar", "emoji_button.people": "Kullanıcılar",
"emoji_button.recent": "Sık kullanılan", "emoji_button.recent": "Sık kullanılan",
@ -348,7 +348,7 @@
"keyboard_shortcuts.description": "Açıklama", "keyboard_shortcuts.description": "Açıklama",
"keyboard_shortcuts.direct": "özel değinmeler sütununu açmak için", "keyboard_shortcuts.direct": "özel değinmeler sütununu açmak için",
"keyboard_shortcuts.down": "Listede aşağıya inmek için", "keyboard_shortcuts.down": "Listede aşağıya inmek için",
"keyboard_shortcuts.enter": "gönderiyi aç", "keyboard_shortcuts.enter": "Gönderiyi açınız",
"keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle",
"keyboard_shortcuts.favourites": "Gözde listeni aç", "keyboard_shortcuts.favourites": "Gözde listeni aç",
"keyboard_shortcuts.federated": "Federe akışı aç", "keyboard_shortcuts.federated": "Federe akışı aç",

View File

@ -277,7 +277,13 @@
"follow_request.authorize": "Chấp nhận", "follow_request.authorize": "Chấp nhận",
"follow_request.reject": "Từ chối", "follow_request.reject": "Từ chối",
"follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.", "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.",
"follow_suggestions.curated_suggestion": "Gợi ý từ máy chủ",
"follow_suggestions.dismiss": "Không hiện lại", "follow_suggestions.dismiss": "Không hiện lại",
"follow_suggestions.hints.featured": "Người này được đội ngũ {domain} đề xuất.",
"follow_suggestions.hints.friends_of_friends": "Người này nổi tiếng với những người bạn theo dõi.",
"follow_suggestions.hints.most_followed": "Người này được theo dõi nhiều nhất trên {domain}.",
"follow_suggestions.hints.most_interactions": "Người này đang thu hút sự chú ý trên {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Người này có nét giống những người mà bạn theo dõi gần đây.",
"follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa", "follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa",
"follow_suggestions.popular_suggestion": "Những người nổi tiếng", "follow_suggestions.popular_suggestion": "Những người nổi tiếng",
"follow_suggestions.view_all": "Xem tất cả", "follow_suggestions.view_all": "Xem tất cả",

View File

@ -21,7 +21,7 @@
"account.blocked": "已屏蔽", "account.blocked": "已屏蔽",
"account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情", "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情",
"account.cancel_follow_request": "撤回关注请求", "account.cancel_follow_request": "撤回关注请求",
"account.copy": "复制资料链接", "account.copy": "复制个人资料链接",
"account.direct": "私下提及 @{name}", "account.direct": "私下提及 @{name}",
"account.disable_notifications": "当 @{name} 发布嘟文时不要通知我", "account.disable_notifications": "当 @{name} 发布嘟文时不要通知我",
"account.domain_blocked": "域名已屏蔽", "account.domain_blocked": "域名已屏蔽",
@ -53,7 +53,7 @@
"account.mute_notifications_short": "关闭通知", "account.mute_notifications_short": "关闭通知",
"account.mute_short": "隐藏", "account.mute_short": "隐藏",
"account.muted": "已隐藏", "account.muted": "已隐藏",
"account.mutual": "互关", "account.mutual": "互",
"account.no_bio": "未提供描述。", "account.no_bio": "未提供描述。",
"account.open_original_page": "打开原始页面", "account.open_original_page": "打开原始页面",
"account.posts": "嘟文", "account.posts": "嘟文",
@ -277,13 +277,13 @@
"follow_request.authorize": "同意", "follow_request.authorize": "同意",
"follow_request.reject": "拒绝", "follow_request.reject": "拒绝",
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。", "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。",
"follow_suggestions.curated_suggestion": "管理员精选", "follow_suggestions.curated_suggestion": "站务人员精选",
"follow_suggestions.dismiss": "不再显示", "follow_suggestions.dismiss": "不再显示",
"follow_suggestions.hints.featured": "该个人资料已被 {domain} 管理团队精选。", "follow_suggestions.hints.featured": "该用户已被 {domain} 管理团队精选。",
"follow_suggestions.hints.friends_of_friends": "该个人资料在您关注的人中很受欢迎。", "follow_suggestions.hints.friends_of_friends": "该用户在您关注的人中很受欢迎。",
"follow_suggestions.hints.most_followed": "该个人资料是 {domain} 上关注度最高的个人资料之一。", "follow_suggestions.hints.most_followed": "该用户是 {domain} 上关注度最高的用户之一。",
"follow_suggestions.hints.most_interactions": "该个人资料最近在 {domain} 上获得了很多关注。", "follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 上获得了很多关注。",
"follow_suggestions.hints.similar_to_recently_followed": "该个人资料与您最近关注的个人资料类似。", "follow_suggestions.hints.similar_to_recently_followed": "该用户与您最近关注的用户类似。",
"follow_suggestions.personalized_suggestion": "个性化建议", "follow_suggestions.personalized_suggestion": "个性化建议",
"follow_suggestions.popular_suggestion": "热门建议", "follow_suggestions.popular_suggestion": "热门建议",
"follow_suggestions.view_all": "查看全部", "follow_suggestions.view_all": "查看全部",
@ -447,7 +447,7 @@
"notifications.column_settings.alert": "桌面通知", "notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "喜欢:", "notifications.column_settings.favourite": "喜欢:",
"notifications.column_settings.filter_bar.advanced": "显示所有类别", "notifications.column_settings.filter_bar.advanced": "显示所有类别",
"notifications.column_settings.filter_bar.category": "快速过滤栏", "notifications.column_settings.filter_bar.category": "快速筛选栏",
"notifications.column_settings.filter_bar.show_bar": "显示过滤栏", "notifications.column_settings.filter_bar.show_bar": "显示过滤栏",
"notifications.column_settings.follow": "新粉丝:", "notifications.column_settings.follow": "新粉丝:",
"notifications.column_settings.follow_request": "新关注请求:", "notifications.column_settings.follow_request": "新关注请求:",

View File

@ -668,7 +668,7 @@
"status.mute": "靜音 @{name}", "status.mute": "靜音 @{name}",
"status.mute_conversation": "靜音對話", "status.mute_conversation": "靜音對話",
"status.open": "展開此嘟文", "status.open": "展開此嘟文",
"status.pin": "釘選個人檔案頁面", "status.pin": "釘選個人檔案頁面",
"status.pinned": "釘選嘟文", "status.pinned": "釘選嘟文",
"status.read_more": "閱讀更多", "status.read_more": "閱讀更多",
"status.reblog": "轉嘟", "status.reblog": "轉嘟",

View File

@ -40,7 +40,7 @@ function render(
ui: React.ReactElement, ui: React.ReactElement,
{ locale = 'en', signedIn = true, ...renderOptions } = {}, { locale = 'en', signedIn = true, ...renderOptions } = {},
) { ) {
const Wrapper = (props: { children: React.ReactElement }) => { const Wrapper = (props: { children: React.ReactNode }) => {
return ( return (
<MemoryRouter> <MemoryRouter>
<IntlProvider locale={locale}> <IntlProvider locale={locale}>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M96-144v-72h768v72H96Zm48-120v-264h96v264h-96Zm192 0v-456h96v456h-96Zm192 0v-336h96v336h-96Zm192 0v-552h96v552h-96Z"/></svg>

After

Width:  |  Height:  |  Size: 221 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M96-144v-72h768v72H96Zm48-120v-264h96v264h-96Zm192 0v-456h96v456h-96Zm192 0v-336h96v336h-96Zm192 0v-552h96v552h-96Z"/></svg>

After

Width:  |  Height:  |  Size: 221 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="m291-240-51-51 189-189-189-189 51-51 189 189 189-189 51 51-189 189 189 189-51 51-189-189-189 189Z"/></svg>

After

Width:  |  Height:  |  Size: 203 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="m291-240-51-51 189-189-189-189 51-51 189 189 189-189 51 51-189 189 189 189-51 51-189-189-189 189Z"/></svg>

After

Width:  |  Height:  |  Size: 203 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M612-516q25 0 42.5-17.5T672-576q0-25-17.5-42.5T612-636q-25 0-42.5 17.5T552-576q0 25 17.5 42.5T612-516Zm-264 0q25 0 42.5-17.5T408-576q0-25-17.5-42.5T348-636q-25 0-42.5 17.5T288-576q0 25 17.5 42.5T348-516Zm132 228q62 0 114.5-29t75.5-86H290q23 57 75.5 86T480-288Zm.276 192Q401-96 331-126q-70-30-122.5-82.5T126-330.958q-30-69.959-30-149.5Q96-560 126-629.5t82.5-122Q261-804 330.958-834q69.959-30 149.5-30Q560-864 629.5-834t122 82.5Q804-699 834-629.276q30 69.725 30 149Q864-401 834-331q-30 70-82.5 122.5T629.276-126q-69.725 30-149 30Z"/></svg>

After

Width:  |  Height:  |  Size: 634 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M612-516q25 0 42.5-17.5T672-576q0-25-17.5-42.5T612-636q-25 0-42.5 17.5T552-576q0 25 17.5 42.5T612-516Zm-264 0q25 0 42.5-17.5T408-576q0-25-17.5-42.5T348-636q-25 0-42.5 17.5T288-576q0 25 17.5 42.5T348-516Zm132 228q60 0 110.5-31t79.5-84H290q29 53 79.5 84T480-288Zm.276 192Q401-96 331-126q-70-30-122.5-82.5T126-330.958q-30-69.959-30-149.5Q96-560 126-629.5t82.5-122Q261-804 330.958-834q69.959-30 149.5-30Q560-864 629.5-834t122 82.5Q804-699 834-629.276q30 69.725 30 149Q864-401 834-331q-30 70-82.5 122.5T629.276-126q-69.725 30-149 30ZM480-480Zm0 312q130 0 221-91t91-221q0-130-91-221t-221-91q-130 0-221 91t-91 221q0 130 91 221t221 91Z"/></svg>

After

Width:  |  Height:  |  Size: 733 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M360-384h384L618-552l-90 120-66-88-102 136Zm-48 144q-29.7 0-50.85-21.15Q240-282.3 240-312v-480q0-29.7 21.15-50.85Q282.3-864 312-864h480q29.7 0 50.85 21.15Q864-821.7 864-792v480q0 29.7-21.15 50.85Q821.7-240 792-240H312ZM168-96q-29.7 0-50.85-21.15Q96-138.3 96-168v-552h72v552h552v72H168Z"/></svg>

After

Width:  |  Height:  |  Size: 391 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="M360-384h384L618-552l-90 120-66-88-102 136Zm-48 144q-29.7 0-50.85-21.15Q240-282.3 240-312v-480q0-29.7 21.15-50.85Q282.3-864 312-864h480q29.7 0 50.85 21.15Q864-821.7 864-792v480q0 29.7-21.15 50.85Q821.7-240 792-240H312Zm0-72h480v-480H312v480ZM168-96q-29.7 0-50.85-21.15Q96-138.3 96-168v-552h72v552h552v72H168Zm144-696v480-480Z"/></svg>

After

Width:  |  Height:  |  Size: 431 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path d="m48-144 432-720 432 720H48Zm431.789-120Q495-264 505.5-274.289q10.5-10.29 10.5-25.5Q516-315 505.711-325.5q-10.29-10.5-25.5-10.5Q465-336 454.5-325.711q-10.5 10.29-10.5 25.5Q444-285 454.289-274.5q10.29 10.5 25.5 10.5ZM444-384h72v-192h-72v192Z"/></svg>

After

Width:  |  Height:  |  Size: 345 B

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