Merge remote-tracking branch 'upstream/main'
All checks were successful
continuous-integration/drone/push Build is passing
|
@ -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"]
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"]
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
2
.github/workflows/lint-css.yml
vendored
|
@ -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
|
||||||
|
|
2
.github/workflows/lint-haml.yml
vendored
|
@ -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
|
||||||
|
|
38
.github/workflows/lint-json.yml
vendored
|
@ -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
|
|
38
.github/workflows/lint-md.yml
vendored
|
@ -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
|
|
40
.github/workflows/lint-yml.yml
vendored
|
@ -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
|
|
|
@ -1,4 +1 @@
|
||||||
#!/bin/sh
|
|
||||||
. "$(dirname "$0")/_/husky.sh"
|
|
||||||
|
|
||||||
yarn lint-staged
|
yarn lint-staged
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -210,11 +210,6 @@ Style/RedundantBegin:
|
||||||
Style/RescueStandardError:
|
Style/RescueStandardError:
|
||||||
EnforcedStyle: implicit
|
EnforcedStyle: implicit
|
||||||
|
|
||||||
# Reason: Simplify some spec layouts
|
|
||||||
# https://docs.rubocop.org/rubocop/cops_style.html#stylesemicolon
|
|
||||||
Style/Semicolon:
|
|
||||||
AllowAsExpressionSeparator: true
|
|
||||||
|
|
||||||
# Reason: Originally disabled for CodeClimate, and no config consensus has been found
|
# Reason: Originally disabled for CodeClimate, and no config consensus has been found
|
||||||
# https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray
|
# https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray
|
||||||
Style/SymbolArray:
|
Style/SymbolArray:
|
||||||
|
|
120
Gemfile.lock
|
@ -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)
|
||||||
|
@ -691,7 +691,7 @@ GEM
|
||||||
scenic (1.7.0)
|
scenic (1.7.0)
|
||||||
activerecord (>= 4.0.0)
|
activerecord (>= 4.0.0)
|
||||||
railties (>= 4.0.0)
|
railties (>= 4.0.0)
|
||||||
selenium-webdriver (4.17.0)
|
selenium-webdriver (4.18.1)
|
||||||
base64 (~> 0.2)
|
base64 (~> 0.2)
|
||||||
rexml (~> 3.2, >= 3.2.5)
|
rexml (~> 3.2, >= 3.2.5)
|
||||||
rubyzip (>= 1.2.2, < 3.0)
|
rubyzip (>= 1.2.2, < 3.0)
|
||||||
|
@ -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.20.0)
|
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)
|
||||||
|
|
18
README.md
|
@ -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
|
@ -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
|
||||||
|
|
|
@ -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!
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,6 @@ class CustomCssController < ActionController::Base # rubocop:disable Rails/Appli
|
||||||
helper_method :custom_css_styles
|
helper_method :custom_css_styles
|
||||||
|
|
||||||
def set_user_roles
|
def set_user_roles
|
||||||
@user_roles = UserRole.where(highlighted: true).where.not(color: [nil, ''])
|
@user_roles = UserRole.providing_styles
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -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,15 +191,18 @@ 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,
|
||||||
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,
|
||||||
|
|
21
app/javascript/images/mailer-new/heading/LICENSE
Normal 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.
|
1
app/javascript/images/mailer-new/heading/README.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Images in this folder are based on [Tabler.io icons](https://tabler.io/icons).
|
BIN
app/javascript/images/mailer-new/store-icons/btn-app-store.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/javascript/images/mailer-new/store-icons/btn-google-play.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
21
app/javascript/images/mailer-new/welcome-icons/LICENSE
Normal 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.
|
1
app/javascript/images/mailer-new/welcome-icons/README.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Images in this folder are based on [Tabler.io icons](https://tabler.io/icons).
|
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 547 B |
BIN
app/javascript/images/mailer-new/welcome-icons/apps_step-on.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 688 B After Width: | Height: | Size: 688 B |
BIN
app/javascript/images/mailer-new/welcome-icons/post_step-on.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |
BIN
app/javascript/images/mailer-new/welcome-icons/share_step-on.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/javascript/images/mailer-new/welcome/feature_audience.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
app/javascript/images/mailer-new/welcome/feature_control.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
app/javascript/images/mailer-new/welcome/feature_creativity.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
app/javascript/images/mailer-new/welcome/feature_moderation.png
Normal file
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 939 B |
After Width: | Height: | Size: 2.5 KiB |
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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'>
|
||||||
|
|
|
@ -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'));
|
||||||
|
|
|
@ -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',
|
||||||
};
|
};
|
||||||
|
|
|
@ -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';
|
||||||
|
|
|
@ -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';
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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';
|
||||||
|
|
|
@ -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';
|
||||||
|
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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,
|
||||||
|
};
|
|
@ -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';
|
||||||
|
|
|
@ -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({
|
||||||
|
|
|
@ -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';
|
||||||
|
|
|
@ -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'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,8 @@ import { NavLink, Switch, Route } from 'react-router-dom';
|
||||||
|
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
|
import ExploreIcon from '@/material-icons/400-24px/explore.svg?react';
|
||||||
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
|
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
|
||||||
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
|
|
||||||
import Column from 'mastodon/components/column';
|
import Column from 'mastodon/components/column';
|
||||||
import ColumnHeader from 'mastodon/components/column_header';
|
import ColumnHeader from 'mastodon/components/column_header';
|
||||||
import Search from 'mastodon/features/compose/containers/search_container';
|
import Search from 'mastodon/features/compose/containers/search_container';
|
||||||
|
@ -58,8 +58,8 @@ 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 : TagIcon}
|
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}
|
||||||
multiColumn={multiColumn}
|
multiColumn={multiColumn}
|
||||||
|
|
|
@ -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} />
|
||||||
|
|
|
@ -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' />,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { DisplayName } from 'mastodon/components/display_name';
|
||||||
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';
|
||||||
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
||||||
|
import { domain } from 'mastodon/initial_state';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
||||||
|
@ -28,27 +29,43 @@ const messages = defineMessages({
|
||||||
previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },
|
previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },
|
||||||
next: { id: 'lightbox.next', defaultMessage: 'Next' },
|
next: { id: 'lightbox.next', defaultMessage: 'Next' },
|
||||||
dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: "Don't show again" },
|
dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: "Don't show again" },
|
||||||
|
friendsOfFriendsHint: { id: 'follow_suggestions.hints.friends_of_friends', defaultMessage: 'This profile is popular among the people you follow.' },
|
||||||
|
similarToRecentlyFollowedHint: { id: 'follow_suggestions.hints.similar_to_recently_followed', defaultMessage: 'This profile is similar to the profiles you have most recently followed.' },
|
||||||
|
featuredHint: { id: 'follow_suggestions.hints.featured', defaultMessage: 'This profile has been hand-picked by the {domain} team.' },
|
||||||
|
mostFollowedHint: { id: 'follow_suggestions.hints.most_followed', defaultMessage: 'This profile is one of the most followed on {domain}.'},
|
||||||
|
mostInteractionsHint: { id: 'follow_suggestions.hints.most_interactions', defaultMessage: 'This profile has been recently getting a lot of attention on {domain}.' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const Source = ({ id }) => {
|
const Source = ({ id }) => {
|
||||||
let label;
|
const intl = useIntl();
|
||||||
|
|
||||||
|
let label, hint;
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case 'friends_of_friends':
|
case 'friends_of_friends':
|
||||||
|
hint = intl.formatMessage(messages.friendsOfFriendsHint);
|
||||||
|
label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
|
||||||
|
break;
|
||||||
case 'similar_to_recently_followed':
|
case 'similar_to_recently_followed':
|
||||||
|
hint = intl.formatMessage(messages.similarToRecentlyFollowedHint);
|
||||||
label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
|
label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
|
||||||
break;
|
break;
|
||||||
case 'featured':
|
case 'featured':
|
||||||
label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage="Editors' Choice" />;
|
hint = intl.formatMessage(messages.featuredHint, { domain });
|
||||||
|
label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage='Staff pick' />;
|
||||||
break;
|
break;
|
||||||
case 'most_followed':
|
case 'most_followed':
|
||||||
|
hint = intl.formatMessage(messages.mostFollowedHint, { domain });
|
||||||
|
label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
|
||||||
|
break;
|
||||||
case 'most_interactions':
|
case 'most_interactions':
|
||||||
|
hint = intl.formatMessage(messages.mostInteractionsHint, { domain });
|
||||||
label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
|
label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='inline-follow-suggestions__body__scrollable__card__text-stack__source'>
|
<div className='inline-follow-suggestions__body__scrollable__card__text-stack__source' title={hint}>
|
||||||
<Icon icon={InfoIcon} />
|
<Icon icon={InfoIcon} />
|
||||||
{label}
|
{label}
|
||||||
</div>
|
</div>
|
||||||
|
@ -92,7 +109,7 @@ const Card = ({ id, sources }) => {
|
||||||
{firstVerifiedField ? <VerifiedBadge link={firstVerifiedField.get('value')} /> : <Source id={sources.get(0)} />}
|
{firstVerifiedField ? <VerifiedBadge link={firstVerifiedField.get('value')} /> : <Source id={sources.get(0)} />}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={handleFollow} />
|
<Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} secondary={following} onClick={handleFollow} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
|
||||||
import BookmarksIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react';
|
import BookmarksIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react';
|
||||||
|
import ExploreIcon from '@/material-icons/400-24px/explore.svg?react';
|
||||||
import HomeIcon from '@/material-icons/400-24px/home-fill.svg?react';
|
import HomeIcon from '@/material-icons/400-24px/home-fill.svg?react';
|
||||||
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
|
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
|
||||||
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
||||||
|
@ -14,7 +15,6 @@ import PublicIcon from '@/material-icons/400-24px/public.svg?react';
|
||||||
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
|
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
|
||||||
import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react';
|
import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react';
|
||||||
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
|
||||||
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
|
|
||||||
import FurryIcon from '@/material-icons/400-24px/pets.svg?react';
|
import FurryIcon from '@/material-icons/400-24px/pets.svg?react';
|
||||||
import { WordmarkLogo } from 'mastodon/components/logo';
|
import { WordmarkLogo } from 'mastodon/components/logo';
|
||||||
import { NavigationPortal } from 'mastodon/components/navigation_portal';
|
import { NavigationPortal } from 'mastodon/components/navigation_portal';
|
||||||
|
@ -96,7 +96,7 @@ class NavigationPanel extends Component {
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{trendsEnabled ? (
|
{trendsEnabled ? (
|
||||||
<ColumnLink transparent to='/explore' icon='hashtag' iconComponent={TagIcon} 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)} />
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -277,7 +277,6 @@
|
||||||
"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.personalized_suggestion": "توصية مخصصة",
|
"follow_suggestions.personalized_suggestion": "توصية مخصصة",
|
||||||
"follow_suggestions.popular_suggestion": "توصية رائجة",
|
"follow_suggestions.popular_suggestion": "توصية رائجة",
|
||||||
|
|
|
@ -199,7 +199,6 @@
|
||||||
"follow_request.authorize": "Autorizar",
|
"follow_request.authorize": "Autorizar",
|
||||||
"follow_request.reject": "Refugar",
|
"follow_request.reject": "Refugar",
|
||||||
"follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.",
|
"follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.",
|
||||||
"follow_suggestions.curated_suggestion": "Escoyeta del sirvidor",
|
|
||||||
"follow_suggestions.dismiss": "Nun volver amosar",
|
"follow_suggestions.dismiss": "Nun volver amosar",
|
||||||
"follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
|
"follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
|
||||||
"follow_suggestions.popular_suggestion": "Suxerencia popular",
|
"follow_suggestions.popular_suggestion": "Suxerencia popular",
|
||||||
|
|
|
@ -277,8 +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.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": "Праглядзець усё",
|
||||||
|
|
|
@ -277,8 +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.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": "Преглед на всички",
|
||||||
|
@ -471,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": "Виж тенденции",
|
||||||
|
|
|
@ -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}",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Autoritza",
|
"follow_request.authorize": "Autoritza",
|
||||||
"follow_request.reject": "Rebutja",
|
"follow_request.reject": "Rebutja",
|
||||||
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment d’aquests 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 d’aquests comptes.",
|
||||||
"follow_suggestions.curated_suggestion": "Tria de l'editor",
|
"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": "L'equip de {domain} ha seleccionat aquest perfil.",
|
||||||
|
"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_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.personalized_suggestion": "Suggeriment personalitzat",
|
"follow_suggestions.personalized_suggestion": "Suggeriment personalitzat",
|
||||||
"follow_suggestions.popular_suggestion": "Suggeriment popular",
|
"follow_suggestions.popular_suggestion": "Suggeriment popular",
|
||||||
"follow_suggestions.view_all": "Mostra-ho tot",
|
"follow_suggestions.view_all": "Mostra-ho tot",
|
||||||
|
|
|
@ -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": "بنەڕەتی",
|
||||||
|
|
|
@ -237,7 +237,7 @@
|
||||||
"empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
|
"empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
|
||||||
"empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.",
|
"empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.",
|
||||||
"empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
|
"empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
|
||||||
"empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}",
|
"empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí.",
|
||||||
"empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
|
"empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
|
||||||
"empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
|
"empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
|
||||||
"empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
|
"empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
|
||||||
|
@ -276,9 +276,17 @@
|
||||||
"firehose.remote": "Ostatní servery",
|
"firehose.remote": "Ostatní servery",
|
||||||
"follow_request.authorize": "Autorizovat",
|
"follow_request.authorize": "Autorizovat",
|
||||||
"follow_request.reject": "Zamítnout",
|
"follow_request.reject": "Zamítnout",
|
||||||
"follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.",
|
"follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
|
||||||
|
"follow_suggestions.curated_suggestion": "Výběr personálů",
|
||||||
"follow_suggestions.dismiss": "Znovu nezobrazovat",
|
"follow_suggestions.dismiss": "Znovu nezobrazovat",
|
||||||
|
"follow_suggestions.hints.featured": "Tento profil byl ručně vybrán týmem {domain}.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Tento profil je populární mezi lidmi, které sledujete.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Tento profil je jedním z nejvíce sledovaných na {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Tento profil nedávno dostalo velkou pozornost na {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Tento profil je podobný profilům, které jste nedávno sledovali.",
|
||||||
|
"follow_suggestions.personalized_suggestion": "Přizpůsobený návrh",
|
||||||
"follow_suggestions.popular_suggestion": "Populární návrh",
|
"follow_suggestions.popular_suggestion": "Populární návrh",
|
||||||
|
"follow_suggestions.view_all": "Zobrazit vše",
|
||||||
"follow_suggestions.who_to_follow": "Koho sledovat",
|
"follow_suggestions.who_to_follow": "Koho sledovat",
|
||||||
"followed_tags": "Sledované hashtagy",
|
"followed_tags": "Sledované hashtagy",
|
||||||
"footer.about": "O aplikaci",
|
"footer.about": "O aplikaci",
|
||||||
|
@ -300,8 +308,12 @@
|
||||||
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
|
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
|
||||||
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
|
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
|
||||||
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
|
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
|
||||||
|
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
|
||||||
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
|
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
"hashtag.follow": "Sledovat hashtag",
|
"hashtag.follow": "Sledovat hashtag",
|
||||||
"hashtag.unfollow": "Přestat sledovat hashtag",
|
"hashtag.unfollow": "Přestat sledovat hashtag",
|
||||||
|
"hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
|
||||||
"home.column_settings.basic": "Základní",
|
"home.column_settings.basic": "Základní",
|
||||||
"home.column_settings.show_reblogs": "Zobrazit boosty",
|
"home.column_settings.show_reblogs": "Zobrazit boosty",
|
||||||
"home.column_settings.show_replies": "Zobrazit odpovědi",
|
"home.column_settings.show_replies": "Zobrazit odpovědi",
|
||||||
|
@ -471,8 +483,8 @@
|
||||||
"onboarding.actions.go_to_home": "Přejít na svůj domovský feed",
|
"onboarding.actions.go_to_home": "Přejít na svůj domovský feed",
|
||||||
"onboarding.compose.template": "Ahoj #Mastodon!",
|
"onboarding.compose.template": "Ahoj #Mastodon!",
|
||||||
"onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.",
|
"onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.",
|
||||||
"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": "Domovský kanál je hlavní metodou zažívání Mastodonu. Čím více lidí sledujete, tím aktivnější a zajímavější bude. Pro začnutí, zde máte několik návrhů:",
|
||||||
"onboarding.follows.title": "Populární na Mastodonu",
|
"onboarding.follows.title": "Přispůsobit vlastní domovský kanál",
|
||||||
"onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným",
|
"onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným",
|
||||||
"onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.",
|
"onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.",
|
||||||
"onboarding.profile.display_name": "Zobrazované jméno",
|
"onboarding.profile.display_name": "Zobrazované jméno",
|
||||||
|
@ -491,13 +503,13 @@
|
||||||
"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": "Dokázali jste to!",
|
"onboarding.start.title": "Dokázali jste to!",
|
||||||
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
|
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
|
||||||
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
|
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
|
||||||
"onboarding.steps.publish_status.body": "Řekněte světu Ahoj.",
|
"onboarding.steps.publish_status.body": "Řekněte světu ahoj s pomocí textem, fotografiemi, videami nebo anketami {emoji}",
|
||||||
"onboarding.steps.publish_status.title": "Vytvořte svůj první příspěvek",
|
"onboarding.steps.publish_status.title": "Vytvořte svůj první příspěvek",
|
||||||
"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": "Přizpůsobit svůj profil",
|
"onboarding.steps.setup_profile.title": "Přizpůsobit svůj profil",
|
||||||
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
|
"onboarding.steps.share_profile.body": "Dejte blízkým lidem vědět, jak vás mohou najít na Mastodonu",
|
||||||
"onboarding.steps.share_profile.title": "Sdílejte svůj profil",
|
"onboarding.steps.share_profile.title": "Sdílejte svůj profil",
|
||||||
"onboarding.tips.2fa": "<strong>Víte, že?</strong> Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!",
|
"onboarding.tips.2fa": "<strong>Víte, že?</strong> Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!",
|
||||||
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
|
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
|
||||||
|
@ -525,6 +537,7 @@
|
||||||
"privacy.public.short": "Veřejné",
|
"privacy.public.short": "Veřejné",
|
||||||
"privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
|
"privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
|
||||||
"privacy.unlisted.long": "Méně algoritmických fanfár",
|
"privacy.unlisted.long": "Méně algoritmických fanfár",
|
||||||
|
"privacy.unlisted.short": "Ztišené veřejné",
|
||||||
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
|
||||||
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
"privacy_policy.title": "Zásady ochrany osobních údajů",
|
||||||
"recommended": "Doporučeno",
|
"recommended": "Doporučeno",
|
||||||
|
@ -542,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": "dnes",
|
"relative_time.today": "dnes",
|
||||||
|
"reply_indicator.attachments": "{count, plural, one {{counter} příloha} few {{counter} přílohy} other {{counter} přilohů}}",
|
||||||
"reply_indicator.cancel": "Zrušit",
|
"reply_indicator.cancel": "Zrušit",
|
||||||
"reply_indicator.poll": "Anketa",
|
"reply_indicator.poll": "Anketa",
|
||||||
"report.block": "Blokovat",
|
"report.block": "Blokovat",
|
||||||
|
|
|
@ -277,8 +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 y Golygydd",
|
"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",
|
||||||
|
|
|
@ -277,7 +277,13 @@
|
||||||
"follow_request.authorize": "Godkend",
|
"follow_request.authorize": "Godkend",
|
||||||
"follow_request.reject": "Afvis",
|
"follow_request.reject": "Afvis",
|
||||||
"follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.",
|
"follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.",
|
||||||
|
"follow_suggestions.curated_suggestion": "Personaleudvalgt",
|
||||||
"follow_suggestions.dismiss": "Vis ikke igen",
|
"follow_suggestions.dismiss": "Vis ikke igen",
|
||||||
|
"follow_suggestions.hints.featured": "Denne profil er håndplukket af {domain}-teamet.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Denne profil er populær blandt de personer, som følges.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Denne profil er en af de mest fulgte på {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Denne profil har for nylig fået stor opmærksomhed på {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Denne profil svarer til de profiler, som senest er blevet fulgt.",
|
||||||
"follow_suggestions.personalized_suggestion": "Personligt forslag",
|
"follow_suggestions.personalized_suggestion": "Personligt 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",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Genehmigen",
|
"follow_request.authorize": "Genehmigen",
|
||||||
"follow_request.reject": "Ablehnen",
|
"follow_request.reject": "Ablehnen",
|
||||||
"follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
|
"follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
|
||||||
"follow_suggestions.curated_suggestion": "Auswahl des Herausgebers",
|
"follow_suggestions.curated_suggestion": "Vom Server empfohlen",
|
||||||
"follow_suggestions.dismiss": "Nicht mehr anzeigen",
|
"follow_suggestions.dismiss": "Nicht mehr anzeigen",
|
||||||
|
"follow_suggestions.hints.featured": "Dieses Profil wurde vom {domain}-Team ausgewählt.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Dieses Profil ist bei deinen Followern beliebt.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Dieses Profil wird von den meisten auf {domain} gefolgt.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Dieses Profil erhielt auf {domain} in letzter Zeit viel Aufmerksamkeit.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Dieses Profil ähnelt den Profilen, denen du in letzter Zeit gefolgt hast.",
|
||||||
"follow_suggestions.personalized_suggestion": "Persönliche Empfehlung",
|
"follow_suggestions.personalized_suggestion": "Persönliche Empfehlung",
|
||||||
"follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
|
"follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
|
||||||
"follow_suggestions.view_all": "Alle anzeigen",
|
"follow_suggestions.view_all": "Alle anzeigen",
|
||||||
|
|
|
@ -277,7 +277,6 @@
|
||||||
"follow_request.authorize": "Authorise",
|
"follow_request.authorize": "Authorise",
|
||||||
"follow_request.reject": "Reject",
|
"follow_request.reject": "Reject",
|
||||||
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
||||||
"follow_suggestions.curated_suggestion": "Editors' Choice",
|
|
||||||
"follow_suggestions.dismiss": "Don't show again",
|
"follow_suggestions.dismiss": "Don't show again",
|
||||||
"follow_suggestions.personalized_suggestion": "Personalised suggestion",
|
"follow_suggestions.personalized_suggestion": "Personalised suggestion",
|
||||||
"follow_suggestions.popular_suggestion": "Popular suggestion",
|
"follow_suggestions.popular_suggestion": "Popular suggestion",
|
||||||
|
@ -308,7 +307,7 @@
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
|
||||||
"hashtag.follow": "Follow hashtag",
|
"hashtag.follow": "Follow hashtag",
|
||||||
"hashtag.unfollow": "Unfollow hashtag",
|
"hashtag.unfollow": "Unfollow hashtag",
|
||||||
"hashtags.and_other": "…and {count, plural, one {}other {# more}}",
|
"hashtags.and_other": "…and {count, plural, one {one more} other {# more}}",
|
||||||
"home.column_settings.basic": "Basic",
|
"home.column_settings.basic": "Basic",
|
||||||
"home.column_settings.show_reblogs": "Show boosts",
|
"home.column_settings.show_reblogs": "Show boosts",
|
||||||
"home.column_settings.show_replies": "Show replies",
|
"home.column_settings.show_replies": "Show replies",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Authorize",
|
"follow_request.authorize": "Authorize",
|
||||||
"follow_request.reject": "Reject",
|
"follow_request.reject": "Reject",
|
||||||
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
||||||
"follow_suggestions.curated_suggestion": "Editors' Choice",
|
"follow_suggestions.curated_suggestion": "Staff pick",
|
||||||
"follow_suggestions.dismiss": "Don't show again",
|
"follow_suggestions.dismiss": "Don't show again",
|
||||||
|
"follow_suggestions.hints.featured": "This profile has been hand-picked by the {domain} team.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "This profile is popular among the people you follow.",
|
||||||
|
"follow_suggestions.hints.most_followed": "This profile is one of the most followed on {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "This profile has been recently getting a lot of attention on {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "This profile is similar to the profiles you have most recently followed.",
|
||||||
"follow_suggestions.personalized_suggestion": "Personalized suggestion",
|
"follow_suggestions.personalized_suggestion": "Personalized suggestion",
|
||||||
"follow_suggestions.popular_suggestion": "Popular suggestion",
|
"follow_suggestions.popular_suggestion": "Popular suggestion",
|
||||||
"follow_suggestions.view_all": "View all",
|
"follow_suggestions.view_all": "View all",
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
"column.directory": "Foliumi la profilojn",
|
"column.directory": "Foliumi la profilojn",
|
||||||
"column.domain_blocks": "Blokitaj domajnoj",
|
"column.domain_blocks": "Blokitaj domajnoj",
|
||||||
"column.favourites": "Stelumoj",
|
"column.favourites": "Stelumoj",
|
||||||
"column.firehose": "Vivantaj fluoj",
|
"column.firehose": "Rektaj fluoj",
|
||||||
"column.follow_requests": "Petoj de sekvado",
|
"column.follow_requests": "Petoj de sekvado",
|
||||||
"column.home": "Hejmo",
|
"column.home": "Hejmo",
|
||||||
"column.lists": "Listoj",
|
"column.lists": "Listoj",
|
||||||
|
|
|
@ -277,8 +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 equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
|
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
|
||||||
"follow_suggestions.curated_suggestion": "Cuentas elegidas del servidor",
|
"follow_suggestions.curated_suggestion": "Selección del equipo",
|
||||||
"follow_suggestions.dismiss": "No mostrar de nuevo",
|
"follow_suggestions.dismiss": "No mostrar de nuevo",
|
||||||
|
"follow_suggestions.hints.featured": "Este perfil fue seleccionado a mano por el equipo de {domain}.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las cuentas que seguís.",
|
||||||
|
"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 que comenzaste a seguir.",
|
||||||
"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",
|
||||||
|
|
|
@ -279,6 +279,11 @@
|
||||||
"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.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.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",
|
||||||
|
|
|
@ -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í.",
|
||||||
|
@ -279,6 +279,11 @@
|
||||||
"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.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.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",
|
||||||
|
@ -550,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",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Baimendu",
|
"follow_request.authorize": "Baimendu",
|
||||||
"follow_request.reject": "Ukatu",
|
"follow_request.reject": "Ukatu",
|
||||||
"follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.",
|
"follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.",
|
||||||
"follow_suggestions.curated_suggestion": "Zerbitzariaren iradokizunak",
|
"follow_suggestions.curated_suggestion": "Domeinuaren iradokizuna",
|
||||||
"follow_suggestions.dismiss": "Ez erakutsi berriro",
|
"follow_suggestions.dismiss": "Ez erakutsi berriro",
|
||||||
|
"follow_suggestions.hints.featured": "Profil hau {domain} domeinuko taldeak eskuz aukeratu du.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Profil hau ezaguna da jarraitzen duzun jendearen artean.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Profil hau {domain} domeinuan gehien jarraitzen den profiletako bat da.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Profil hau arreta handia jasotzen ari da berriki {domain} domeinuan.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Profil hau duela gutxi jarraitu dituzun profil askoren antzekoa da.",
|
||||||
"follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua",
|
"follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua",
|
||||||
"follow_suggestions.popular_suggestion": "Iradokizun ezaguna",
|
"follow_suggestions.popular_suggestion": "Iradokizun ezaguna",
|
||||||
"follow_suggestions.view_all": "Ikusi denak",
|
"follow_suggestions.view_all": "Ikusi denak",
|
||||||
|
@ -495,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.",
|
||||||
|
|
|
@ -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": "انسداد",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Valtuuta",
|
"follow_request.authorize": "Valtuuta",
|
||||||
"follow_request.reject": "Hylkää",
|
"follow_request.reject": "Hylkää",
|
||||||
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
|
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
|
||||||
"follow_suggestions.curated_suggestion": "Päätoimittajan valinta",
|
"follow_suggestions.curated_suggestion": "Ylläpidon valinta",
|
||||||
"follow_suggestions.dismiss": "Älä näytä uudelleen",
|
"follow_suggestions.dismiss": "Älä näytä uudelleen",
|
||||||
|
"follow_suggestions.hints.featured": "Tämän profiilin on valinnut palvelimen {domain} tiimi.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Tämä profiili on suosittu seuraamiesi henkilöiden parissa.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Tämä profiili on yksi seuratuimmista palvelimella {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Tämä profiili on viime aikoina saanut paljon huomiota palvelimella {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Tämä profiili on samankaltainen kuin profiilit, joita olet viimeksi seurannut.",
|
||||||
"follow_suggestions.personalized_suggestion": "Personoitu ehdotus",
|
"follow_suggestions.personalized_suggestion": "Personoitu ehdotus",
|
||||||
"follow_suggestions.popular_suggestion": "Suosittu ehdotus",
|
"follow_suggestions.popular_suggestion": "Suosittu ehdotus",
|
||||||
"follow_suggestions.view_all": "Näytä kaikki",
|
"follow_suggestions.view_all": "Näytä kaikki",
|
||||||
|
|
|
@ -46,7 +46,10 @@
|
||||||
"account.report": "I-ulat si/ang @{name}",
|
"account.report": "I-ulat si/ang @{name}",
|
||||||
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
|
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
|
||||||
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
|
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
|
||||||
|
"account.unendorse": "Huwag itampok sa profile",
|
||||||
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
|
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
|
||||||
|
"alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
|
||||||
|
"audio.hide": "Itago ang tunog",
|
||||||
"bundle_column_error.error.title": "Naku!",
|
"bundle_column_error.error.title": "Naku!",
|
||||||
"bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.",
|
"bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.",
|
||||||
"bundle_column_error.network.title": "Kamaliang network",
|
"bundle_column_error.network.title": "Kamaliang network",
|
||||||
|
@ -98,6 +101,7 @@
|
||||||
"compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.",
|
"compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.",
|
||||||
"compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.",
|
"compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.",
|
||||||
"compose_form.placeholder": "Anong nangyari?",
|
"compose_form.placeholder": "Anong nangyari?",
|
||||||
|
"compose_form.poll.multiple": "Maraming pagpipilian",
|
||||||
"compose_form.poll.single": "Piliin ang isa",
|
"compose_form.poll.single": "Piliin ang isa",
|
||||||
"compose_form.reply": "Tumugon",
|
"compose_form.reply": "Tumugon",
|
||||||
"compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
|
"compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
|
||||||
|
@ -107,6 +111,10 @@
|
||||||
"confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?",
|
"confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?",
|
||||||
"confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
|
"confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
|
||||||
"confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
|
"confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
|
||||||
|
"confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
|
||||||
|
"confirmations.delete_list.confirm": "Tanggalin",
|
||||||
|
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
|
||||||
|
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
|
||||||
"confirmations.domain_block.confirm": "Harangan ang buong domain",
|
"confirmations.domain_block.confirm": "Harangan ang buong domain",
|
||||||
"confirmations.edit.confirm": "Baguhin",
|
"confirmations.edit.confirm": "Baguhin",
|
||||||
"confirmations.reply.confirm": "Tumugon",
|
"confirmations.reply.confirm": "Tumugon",
|
||||||
|
@ -175,46 +183,108 @@
|
||||||
"hashtag.column_header.tag_mode.all": "at {additional}",
|
"hashtag.column_header.tag_mode.all": "at {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!",
|
"home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!",
|
||||||
|
"interaction_modal.login.action": "Iuwi mo ako",
|
||||||
"interaction_modal.no_account_yet": "Wala sa Mastodon?",
|
"interaction_modal.no_account_yet": "Wala sa Mastodon?",
|
||||||
"interaction_modal.on_another_server": "Sa ibang serbiro",
|
"interaction_modal.on_another_server": "Sa ibang serbiro",
|
||||||
"interaction_modal.on_this_server": "Sa serbirong ito",
|
"interaction_modal.on_this_server": "Sa serbirong ito",
|
||||||
"interaction_modal.title.follow": "Sundan si {name}",
|
"interaction_modal.title.follow": "Sundan si {name}",
|
||||||
|
"intervals.full.days": "{number, plural, one {# araw} other {# na araw}}",
|
||||||
|
"intervals.full.hours": "{number, plural, one {# oras} other {# na oras}}",
|
||||||
|
"intervals.full.minutes": "{number, plural, one {# minuto} other {# na minuto}}",
|
||||||
"keyboard_shortcuts.description": "Paglalarawan",
|
"keyboard_shortcuts.description": "Paglalarawan",
|
||||||
"keyboard_shortcuts.down": "Ilipat pababa sa talaan",
|
"keyboard_shortcuts.down": "Ilipat pababa sa talaan",
|
||||||
|
"keyboard_shortcuts.mention": "Banggitin ang may-akda",
|
||||||
"keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
|
"keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
|
||||||
"keyboard_shortcuts.up": "Ilipat pataas sa talaan",
|
"keyboard_shortcuts.up": "Ilipat pataas sa talaan",
|
||||||
"lightbox.close": "Isara",
|
"lightbox.close": "Isara",
|
||||||
"lightbox.next": "Susunod",
|
"lightbox.next": "Susunod",
|
||||||
"lightbox.previous": "Nakaraan",
|
"lightbox.previous": "Nakaraan",
|
||||||
|
"link_preview.author": "Ni/ng {name}",
|
||||||
|
"lists.account.add": "Idagdag sa talaan",
|
||||||
|
"lists.account.remove": "Tanggalin mula sa talaan",
|
||||||
"lists.new.create": "Idagdag sa talaan",
|
"lists.new.create": "Idagdag sa talaan",
|
||||||
"lists.new.title_placeholder": "Bagong pangalan ng talaan",
|
"lists.new.title_placeholder": "Bagong pangalan ng talaan",
|
||||||
"lists.replies_policy.title": "Ipakita ang mga tugon sa:",
|
"lists.replies_policy.title": "Ipakita ang mga tugon sa:",
|
||||||
"lists.subheading": "Iyong mga talaan",
|
"lists.subheading": "Iyong mga talaan",
|
||||||
|
"loading_indicator.label": "Kumakarga…",
|
||||||
"navigation_bar.about": "Tungkol dito",
|
"navigation_bar.about": "Tungkol dito",
|
||||||
"navigation_bar.blocks": "Nakaharang na mga tagagamit",
|
"navigation_bar.blocks": "Nakaharang na mga tagagamit",
|
||||||
|
"navigation_bar.direct": "Mga palihim na banggit",
|
||||||
"navigation_bar.favourites": "Mga paborito",
|
"navigation_bar.favourites": "Mga paborito",
|
||||||
|
"navigation_bar.follows_and_followers": "Mga sinusundan at tagasunod",
|
||||||
"navigation_bar.lists": "Mga listahan",
|
"navigation_bar.lists": "Mga listahan",
|
||||||
|
"navigation_bar.search": "Maghanap",
|
||||||
"notification.admin.report": "Iniulat ni {name} si {target}",
|
"notification.admin.report": "Iniulat ni {name} si {target}",
|
||||||
"notification.follow": "Sinundan ka ni {name}",
|
"notification.follow": "Sinundan ka ni {name}",
|
||||||
"notification.follow_request": "Hinihiling ni {name} na sundan ka",
|
"notification.follow_request": "Hinihiling ni {name} na sundan ka",
|
||||||
|
"notification.mention": "Binanggit ka ni {name}",
|
||||||
|
"notifications.clear": "Burahin mga abiso",
|
||||||
"notifications.column_settings.admin.report": "Mga bagong ulat:",
|
"notifications.column_settings.admin.report": "Mga bagong ulat:",
|
||||||
"notifications.column_settings.favourite": "Mga paborito:",
|
"notifications.column_settings.favourite": "Mga paborito:",
|
||||||
"notifications.column_settings.follow": "Mga bagong tagasunod:",
|
"notifications.column_settings.follow": "Mga bagong tagasunod:",
|
||||||
|
"notifications.column_settings.unread_notifications.category": "Hindi Nabasang mga Abiso",
|
||||||
|
"notifications.column_settings.update": "Mga pagbago:",
|
||||||
"notifications.filter.all": "Lahat",
|
"notifications.filter.all": "Lahat",
|
||||||
|
"notifications.mark_as_read": "Markahan lahat ng abiso bilang nabasa na",
|
||||||
"onboarding.action.back": "Ibalik mo ako",
|
"onboarding.action.back": "Ibalik mo ako",
|
||||||
"onboarding.actions.back": "Ibalik mo ako",
|
"onboarding.actions.back": "Ibalik mo ako",
|
||||||
|
"onboarding.profile.note_hint": "Maaari mong @bangitin ang ibang mga tao o mga #hashtag…",
|
||||||
|
"onboarding.profile.save_and_continue": "Iimbak at magpatuloy",
|
||||||
"onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
|
"onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
|
||||||
|
"poll.closed": "Sarado",
|
||||||
|
"poll.reveal": "Ipakita ang mga resulta",
|
||||||
"poll.voted": "Binoto mo para sa sagot na ito",
|
"poll.voted": "Binoto mo para sa sagot na ito",
|
||||||
|
"poll_button.remove_poll": "Tanggalin ang boto",
|
||||||
|
"privacy.direct.long": "Lahat ng mga binanggit sa post",
|
||||||
|
"privacy.private.long": "Mga tagasunod mo lamang",
|
||||||
|
"privacy.private.short": "Mga tagasunod",
|
||||||
|
"relative_time.days": "{number}a",
|
||||||
|
"relative_time.full.days": "{number, plural, one {# araw} other {# na araw}} ang nakalipas",
|
||||||
|
"relative_time.full.hours": "{number, plural, one {# oras} other {# na oras}} ang nakalipas",
|
||||||
"relative_time.full.just_now": "ngayon lang",
|
"relative_time.full.just_now": "ngayon lang",
|
||||||
|
"relative_time.full.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang nakalipas",
|
||||||
|
"relative_time.full.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang nakalipas",
|
||||||
|
"relative_time.hours": "{number}o",
|
||||||
"relative_time.just_now": "ngayon",
|
"relative_time.just_now": "ngayon",
|
||||||
|
"relative_time.minutes": "{number}m",
|
||||||
|
"relative_time.seconds": "{number}s",
|
||||||
"reply_indicator.cancel": "Ipagpaliban",
|
"reply_indicator.cancel": "Ipagpaliban",
|
||||||
"report.block": "Harangan",
|
"report.block": "Harangan",
|
||||||
"report.categories.other": "Iba pa",
|
"report.categories.other": "Iba pa",
|
||||||
|
"report.category.title": "Sabihin mo sa amin kung anong nangyari sa {type} na ito",
|
||||||
"report.close": "Tapos na",
|
"report.close": "Tapos na",
|
||||||
"report.next": "Sunod",
|
"report.next": "Sunod",
|
||||||
|
"report.reasons.violation": "Lumalabag ito sa mga panuntunan ng serbiro",
|
||||||
|
"report.reasons.violation_description": "Alam mo na lumalabag ito sa mga partikular na panuntunan",
|
||||||
|
"report.rules.title": "Aling mga patakaran ang nilabag?",
|
||||||
|
"report.submit": "Isumite",
|
||||||
|
"report.target": "Iniulat si/ang {target}",
|
||||||
|
"report.thanks.take_action_actionable": "Habang sinusuri namin ito, maaari kang gumawa ng aksyon laban kay/sa {name}:",
|
||||||
|
"report.thanks.title": "Ayaw mo bang makita ito?",
|
||||||
|
"report.thanks.title_actionable": "Salamat sa pag-uulat, titingnan namin ito.",
|
||||||
|
"report_notification.categories.other": "Iba pa",
|
||||||
|
"search_results.all": "Lahat",
|
||||||
|
"search_results.see_all": "Ipakita lahat",
|
||||||
"server_banner.learn_more": "Matuto nang higit pa",
|
"server_banner.learn_more": "Matuto nang higit pa",
|
||||||
|
"server_banner.server_stats": "Katayuan ng serbiro:",
|
||||||
|
"status.block": "Harangan si @{name}",
|
||||||
|
"status.delete": "Tanggalin",
|
||||||
|
"status.direct": "Palihim na banggitin si/ang @{name}",
|
||||||
|
"status.direct_indicator": "Palihim na banggit",
|
||||||
|
"status.edit": "Baguhin",
|
||||||
|
"status.edited": "Binago noong {date}",
|
||||||
|
"status.edited_x_times": "Binago {count, plural, one {{count} beses} other {{count} na beses}}",
|
||||||
|
"status.history.created": "Nilikha ni/ng {name} {date}",
|
||||||
|
"status.history.edited": "Binago ni/ng {name} {date}",
|
||||||
|
"status.media.open": "Pindutin upang buksan",
|
||||||
|
"status.media.show": "Pindutin upang ipakita",
|
||||||
|
"status.mention": "Banggitin ang/si @{name}",
|
||||||
"status.more": "Higit pa",
|
"status.more": "Higit pa",
|
||||||
|
"status.read_more": "Basahin ang higit pa",
|
||||||
|
"status.reblogs.empty": "Wala pang nagpalakas ng post na ito. Kung may sinumang nagpalakas, makikita sila rito.",
|
||||||
"status.reply": "Tumugon",
|
"status.reply": "Tumugon",
|
||||||
|
"status.report": "I-ulat si/ang @{name}",
|
||||||
|
"status.sensitive_warning": "Sensitibong nilalaman",
|
||||||
"status.share": "Ibahagi",
|
"status.share": "Ibahagi",
|
||||||
"status.show_less": "Magpakita ng mas kaunti",
|
"status.show_less": "Magpakita ng mas kaunti",
|
||||||
"status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
|
"status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
|
||||||
|
@ -222,5 +292,13 @@
|
||||||
"status.show_more_all": "Magpakita ng higit pa para sa lahat",
|
"status.show_more_all": "Magpakita ng higit pa para sa lahat",
|
||||||
"status.translate": "Isalin",
|
"status.translate": "Isalin",
|
||||||
"status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
|
"status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
|
||||||
"status.uncached_media_warning": "Hindi makuha ang paunang tigin"
|
"status.uncached_media_warning": "Hindi makuha ang paunang tigin",
|
||||||
|
"tabs_bar.notifications": "Mga abiso",
|
||||||
|
"time_remaining.days": "{number, plural, one {# araw} other {# na araw}} ang natitira",
|
||||||
|
"time_remaining.hours": "{number, plural, one {# oras} other {# na oras}} ang natitira",
|
||||||
|
"time_remaining.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang natitira",
|
||||||
|
"time_remaining.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang natitira",
|
||||||
|
"timeline_hint.remote_resource_not_displayed": "Hindi ipinapakita ang {resource} mula sa ibang mga serbiro.",
|
||||||
|
"timeline_hint.resources.followers": "Mga tagasunod",
|
||||||
|
"timeline_hint.resources.follows": "Mga sinusundan"
|
||||||
}
|
}
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Veit myndugleika",
|
"follow_request.authorize": "Veit myndugleika",
|
||||||
"follow_request.reject": "Nokta",
|
"follow_request.reject": "Nokta",
|
||||||
"follow_requests.unlocked_explanation": "Sjálvt um konta tín ikki er læst, so hugsa {domain} starvsfólkini, at tú kanska hevur hug at kanna umbønir um at fylgja frá hesum kontum við hond.",
|
"follow_requests.unlocked_explanation": "Sjálvt um konta tín ikki er læst, so hugsa {domain} starvsfólkini, at tú kanska hevur hug at kanna umbønir um at fylgja frá hesum kontum við hond.",
|
||||||
"follow_suggestions.curated_suggestion": "Val umsjónarfólksins",
|
"follow_suggestions.curated_suggestion": "Val hjá ábyrgdarfólki",
|
||||||
"follow_suggestions.dismiss": "Lat vera við at vísa",
|
"follow_suggestions.dismiss": "Lat vera við at vísa",
|
||||||
|
"follow_suggestions.hints.featured": "Hesin vangin er úrvaldur av toyminum handan {domain}.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Hesin vangin er vælumtóktur millum tey, tú fylgir.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Hesin vangin er ein av teimum, sum er mest fylgdur á {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Nýliga hava nógv lagt merki til hendan vangan á {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Hesin vangin líkist teimum, sum tú nýliga hevur fylgt.",
|
||||||
"follow_suggestions.personalized_suggestion": "Persónligt uppskot",
|
"follow_suggestions.personalized_suggestion": "Persónligt uppskot",
|
||||||
"follow_suggestions.popular_suggestion": "Vælumtókt uppskot",
|
"follow_suggestions.popular_suggestion": "Vælumtókt uppskot",
|
||||||
"follow_suggestions.view_all": "Vís øll",
|
"follow_suggestions.view_all": "Vís øll",
|
||||||
|
|
|
@ -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 n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
|
"follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
|
||||||
|
"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",
|
||||||
|
|
|
@ -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 n’est 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 n’est 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",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Goedkarre",
|
"follow_request.authorize": "Goedkarre",
|
||||||
"follow_request.reject": "Wegerje",
|
"follow_request.reject": "Wegerje",
|
||||||
"follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.",
|
"follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.",
|
||||||
"follow_suggestions.curated_suggestion": "Kar fan de moderator",
|
"follow_suggestions.curated_suggestion": "Spesjaal selektearre",
|
||||||
"follow_suggestions.dismiss": "Net mear werjaan",
|
"follow_suggestions.dismiss": "Net mear werjaan",
|
||||||
|
"follow_suggestions.hints.featured": "Dit profyl is hânmjittich troch it {domain}-team selektearre.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Dit profyl is populêr ûnder de minsken dy’t jo folgje.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Dit profyl is ien fan de meast folge op {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Dit profyl hat de lêste tiid in protte oandacht krigen op {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Dit profyl is hast lyk oan de profilen dy’t jo koartlyn folge hawwe.",
|
||||||
"follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
|
"follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
|
||||||
"follow_suggestions.popular_suggestion": "Populêre suggestje",
|
"follow_suggestions.popular_suggestion": "Populêre suggestje",
|
||||||
"follow_suggestions.view_all": "Alles werjaan",
|
"follow_suggestions.view_all": "Alles werjaan",
|
||||||
|
|
|
@ -226,7 +226,6 @@
|
||||||
"follow_request.authorize": "Ceadaigh",
|
"follow_request.authorize": "Ceadaigh",
|
||||||
"follow_request.reject": "Diúltaigh",
|
"follow_request.reject": "Diúltaigh",
|
||||||
"follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
|
"follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
|
||||||
"follow_suggestions.curated_suggestion": "Rogha an eagarthóra",
|
|
||||||
"follow_suggestions.dismiss": "Ná taispeáin arís",
|
"follow_suggestions.dismiss": "Ná taispeáin arís",
|
||||||
"follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
|
"follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
|
||||||
"follow_suggestions.popular_suggestion": "Nod coiteann",
|
"follow_suggestions.popular_suggestion": "Nod coiteann",
|
||||||
|
|
|
@ -277,7 +277,6 @@
|
||||||
"follow_request.authorize": "Ùghdarraich",
|
"follow_request.authorize": "Ùghdarraich",
|
||||||
"follow_request.reject": "Diùlt",
|
"follow_request.reject": "Diùlt",
|
||||||
"follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.",
|
"follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.",
|
||||||
"follow_suggestions.curated_suggestion": "Roghainn an deasaiche",
|
|
||||||
"follow_suggestions.dismiss": "Na seall seo a-rithist",
|
"follow_suggestions.dismiss": "Na seall seo a-rithist",
|
||||||
"follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
|
"follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
|
||||||
"follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr",
|
"follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr",
|
||||||
|
|
|
@ -277,8 +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": "O servidor suxíreche",
|
"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",
|
||||||
|
|
|
@ -277,8 +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.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": "צפיה בכל",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Hitelesítés",
|
"follow_request.authorize": "Hitelesítés",
|
||||||
"follow_request.reject": "Elutasítás",
|
"follow_request.reject": "Elutasítás",
|
||||||
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.",
|
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.",
|
||||||
"follow_suggestions.curated_suggestion": "Szerkesztői ajánlat",
|
"follow_suggestions.curated_suggestion": "A stáb választása",
|
||||||
"follow_suggestions.dismiss": "Ne jelenjen meg újra",
|
"follow_suggestions.dismiss": "Ne jelenjen meg újra",
|
||||||
|
"follow_suggestions.hints.featured": "Ezt a profilt a(z) {domain} csapata választotta ki.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Ez a profil népszerű az általad követett emberek körében.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Ez a profil a leginkább követett a(z) {domain} oldalon.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Ez a profil mostanában sok figyelmet kap a(z) {domain} oldalon.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Ez a profil hasonló azokhoz a profilokhoz, melyeket nemrég kezdtél el követni.",
|
||||||
"follow_suggestions.personalized_suggestion": "Személyre szabott javaslat",
|
"follow_suggestions.personalized_suggestion": "Személyre szabott javaslat",
|
||||||
"follow_suggestions.popular_suggestion": "Népszerű javaslat",
|
"follow_suggestions.popular_suggestion": "Népszerű javaslat",
|
||||||
"follow_suggestions.view_all": "Összes megtekintése",
|
"follow_suggestions.view_all": "Összes megtekintése",
|
||||||
|
|
|
@ -197,7 +197,6 @@
|
||||||
"firehose.all": "Toto",
|
"firehose.all": "Toto",
|
||||||
"firehose.local": "Iste servitor",
|
"firehose.local": "Iste servitor",
|
||||||
"firehose.remote": "Altere servitores",
|
"firehose.remote": "Altere servitores",
|
||||||
"follow_suggestions.curated_suggestion": "Selection del editores",
|
|
||||||
"follow_suggestions.dismiss": "Non monstrar novemente",
|
"follow_suggestions.dismiss": "Non monstrar novemente",
|
||||||
"follow_suggestions.personalized_suggestion": "Suggestion personalisate",
|
"follow_suggestions.personalized_suggestion": "Suggestion personalisate",
|
||||||
"follow_suggestions.popular_suggestion": "Suggestion personalisate",
|
"follow_suggestions.popular_suggestion": "Suggestion personalisate",
|
||||||
|
|
|
@ -277,8 +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 Servitor",
|
"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",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Heimila",
|
"follow_request.authorize": "Heimila",
|
||||||
"follow_request.reject": "Hafna",
|
"follow_request.reject": "Hafna",
|
||||||
"follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
|
"follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
|
||||||
"follow_suggestions.curated_suggestion": "Úrval umsjónarfólks",
|
"follow_suggestions.curated_suggestion": "Úrval starfsfólks",
|
||||||
"follow_suggestions.dismiss": "Ekki birta þetta aftur",
|
"follow_suggestions.dismiss": "Ekki birta þetta aftur",
|
||||||
|
"follow_suggestions.hints.featured": "Þetta notandasnið hefur verið handvalið af {domain}-teyminu.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Þetta notandasnið er vinsælt hjá fólki sem þú fylgist með.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Þetta notandasnið er eitt af þeim sem mest er fylgst með á {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Þetta notandasnið hefur vakið mikla athygli að undanförnu á {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Þetta notandasnið er líkt þeim sniðum sem þú hefur valið að fylgjast með að undanförnu.",
|
||||||
"follow_suggestions.personalized_suggestion": "Persónuaðlöguð tillaga",
|
"follow_suggestions.personalized_suggestion": "Persónuaðlöguð tillaga",
|
||||||
"follow_suggestions.popular_suggestion": "Vinsæl tillaga",
|
"follow_suggestions.popular_suggestion": "Vinsæl tillaga",
|
||||||
"follow_suggestions.view_all": "Skoða allt",
|
"follow_suggestions.view_all": "Skoða allt",
|
||||||
|
|
|
@ -277,8 +277,13 @@
|
||||||
"follow_request.authorize": "Autorizza",
|
"follow_request.authorize": "Autorizza",
|
||||||
"follow_request.reject": "Rifiuta",
|
"follow_request.reject": "Rifiuta",
|
||||||
"follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.",
|
"follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.",
|
||||||
"follow_suggestions.curated_suggestion": "Scelta dell'editore",
|
"follow_suggestions.curated_suggestion": "Scelta personale",
|
||||||
"follow_suggestions.dismiss": "Non visualizzare più",
|
"follow_suggestions.dismiss": "Non visualizzare più",
|
||||||
|
"follow_suggestions.hints.featured": "Questo profilo è stato selezionato personalmente dal team di {domain}.",
|
||||||
|
"follow_suggestions.hints.friends_of_friends": "Questo profilo è popolare tra le persone che segui.",
|
||||||
|
"follow_suggestions.hints.most_followed": "Questo profilo è uno dei più seguiti su {domain}.",
|
||||||
|
"follow_suggestions.hints.most_interactions": "Recentemente, questo profilo ha ricevuto molta attenzione su {domain}.",
|
||||||
|
"follow_suggestions.hints.similar_to_recently_followed": "Questo profilo è simile ai profili che hai seguito più recentemente.",
|
||||||
"follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati",
|
"follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati",
|
||||||
"follow_suggestions.popular_suggestion": "Suggerimento frequente",
|
"follow_suggestions.popular_suggestion": "Suggerimento frequente",
|
||||||
"follow_suggestions.view_all": "Vedi tutto",
|
"follow_suggestions.view_all": "Vedi tutto",
|
||||||
|
|