Merge remote-tracking branch 'origin/develop' into lll-patch
This commit is contained in:
commit
ad7cf7f279
546 changed files with 30381 additions and 18563 deletions
|
@ -6,7 +6,7 @@
|
|||
#โโโโ URL โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
# Final accessible URL seen by a user.
|
||||
url: https://example.tld/
|
||||
url: http://misskey.local
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# URL SETTINGS AFTER THAT!
|
||||
|
|
|
@ -193,6 +193,21 @@ redis:
|
|||
|
||||
id: 'aidx'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Error tracking โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
# Sentry is available for error tracking.
|
||||
# See the Sentry documentation for more details on options.
|
||||
|
||||
#sentryForBackend:
|
||||
# enableNodeProfiling: true
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
#sentryForFrontend:
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Other configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
# Option 3: If neither of the above applies to you.
|
||||
# (In this case, the source code should be published
|
||||
# on the Misskey interface. IT IS NOT ENOUGH TO
|
||||
# DISCLOSE THE SOURCE CODE WEHN A USER REQUESTS IT BY
|
||||
# DISCLOSE THE SOURCE CODE WHEN A USER REQUESTS IT BY
|
||||
# E-MAIL OR OTHER MEANS. If you are not satisfied
|
||||
# with this, it is recommended that you read the
|
||||
# license again carefully. Anyway, enabling this
|
||||
|
@ -205,6 +205,21 @@ redis:
|
|||
|
||||
id: 'aidx'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Error tracking โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
# Sentry is available for error tracking.
|
||||
# See the Sentry documentation for more details on options.
|
||||
|
||||
#sentryForBackend:
|
||||
# enableNodeProfiling: true
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
#sentryForFrontend:
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Other configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
|
@ -291,5 +306,10 @@ checkActivityPubGetSignature: false
|
|||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
||||
|
||||
# timeout and maximum size for imports (e.g. note imports)
|
||||
#import:
|
||||
# downloadTimeout: 30
|
||||
# maxFileSize: 262144000
|
||||
|
||||
# PID File of master process
|
||||
#pidFile: /tmp/misskey.pid
|
||||
|
|
|
@ -4,12 +4,10 @@
|
|||
"service": "app",
|
||||
"workspaceFolder": "/workspace",
|
||||
"features": {
|
||||
"ghcr.io/devcontainers-contrib/features/pnpm:2": {
|
||||
"version": "8.9.2"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/node:1": {
|
||||
"version": "20.10.0"
|
||||
}
|
||||
"version": "20.12.2"
|
||||
},
|
||||
"ghcr.io/devcontainers-contrib/features/corepack:1": {}
|
||||
},
|
||||
"forwardPorts": [3000],
|
||||
"postCreateCommand": "sudo chmod 755 .devcontainer/init.sh && .devcontainer/init.sh",
|
||||
|
@ -19,7 +17,6 @@
|
|||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"Vue.volar",
|
||||
"Vue.vscode-typescript-vue-plugin",
|
||||
"Orta.vscode-jest",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"mrmlnc.vscode-json5"
|
||||
|
|
|
@ -132,6 +132,21 @@ redis:
|
|||
|
||||
id: 'aidx'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Error tracking โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
# Sentry is available for error tracking.
|
||||
# See the Sentry documentation for more details on options.
|
||||
|
||||
#sentryForBackend:
|
||||
# enableNodeProfiling: true
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
#sentryForFrontend:
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Other configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ set -xe
|
|||
|
||||
sudo chown -R node /workspace
|
||||
git submodule update --init
|
||||
corepack install
|
||||
corepack enable
|
||||
pnpm config set store-dir /home/node/.local/share/pnpm/store
|
||||
pnpm install --frozen-lockfile
|
||||
cp .devcontainer/devcontainer.yml .config/default.yml
|
||||
|
|
|
@ -11,14 +11,18 @@ testCommit:
|
|||
variables:
|
||||
POSTGRES_PASSWORD: ci
|
||||
script:
|
||||
- apt-get update && apt-get install -y git wget curl build-essential python3
|
||||
- apt-get update && apt-get install -y git wget curl build-essential python3 ffmpeg
|
||||
- cp .config/ci.yml .config/default.yml
|
||||
- cp .config/ci.yml .config/test.yml
|
||||
- corepack enable
|
||||
- corepack prepare pnpm@latest --activate
|
||||
- git submodule update --init
|
||||
- pnpm install --frozen-lockfile
|
||||
- pnpm run build
|
||||
- pnpm run migrate
|
||||
- pnpm run --filter='!megalodon' test
|
||||
- pnpm run --filter=backend lint
|
||||
- pnpm run --filter=frontend eslint
|
||||
cache:
|
||||
key: test
|
||||
policy: pull-push
|
||||
|
|
|
@ -1 +1 @@
|
|||
20.10.0
|
||||
20.12.2
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- stable
|
||||
- develop
|
||||
paths:
|
||||
- packages/**
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/backend/**
|
||||
- packages/frontend/**
|
||||
- packages/sw/**
|
||||
- packages/misskey-js/**
|
||||
- packages/shared/.eslintrc.js
|
||||
|
||||
jobs:
|
||||
pnpm_install:
|
||||
runs-on: docker
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: https://github.com/pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- uses: https://code.forgejo.org/actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
|
||||
lint:
|
||||
needs: [pnpm_install]
|
||||
runs-on: docker
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
matrix:
|
||||
workspace:
|
||||
- backend
|
||||
- frontend
|
||||
- sw
|
||||
- misskey-js
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: https://github.com/pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
run_install: false
|
||||
- uses: https://code.forgejo.org/actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm --filter ${{ matrix.workspace }} run eslint
|
||||
|
||||
typecheck:
|
||||
needs: [pnpm_install]
|
||||
runs-on: docker
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
matrix:
|
||||
workspace:
|
||||
- backend
|
||||
- misskey-js
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: https://github.com/pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
run_install: false
|
||||
- uses: https://code.forgejo.org/actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm --filter misskey-js run build
|
||||
if: ${{ matrix.workspace == 'backend' }}
|
||||
- run: pnpm --filter misskey-reversi run build:tsc
|
||||
if: ${{ matrix.workspace == 'backend' }}
|
||||
- run: pnpm --filter misskey-bubble-game run build
|
||||
if: ${{ matrix.workspace == 'backend' }}
|
||||
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
|
@ -3,9 +3,7 @@
|
|||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"Vue.volar",
|
||||
"Vue.vscode-typescript-vue-plugin",
|
||||
"Orta.vscode-jest",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"mrmlnc.vscode-json5"
|
||||
]
|
||||
}
|
||||
|
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
@ -7,7 +7,7 @@
|
|||
"*.test.ts": "typescript"
|
||||
},
|
||||
"jest.jestCommandLine": "pnpm run jest",
|
||||
"jest.autoRun": "off",
|
||||
"jest.runMode": "on-demand",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit"
|
||||
},
|
||||
|
|
117
CHANGELOG.md
117
CHANGELOG.md
|
@ -1,16 +1,119 @@
|
|||
<!--
|
||||
## 202x.x.x (unreleased)
|
||||
## Unreleased
|
||||
|
||||
### General
|
||||
-
|
||||
- Fix: ้
ไฟกๅๆญขใใใคใณในใฟใณในไธ่ฆงใ่ฆใใชใใชใๅ้กใไฟฎๆญฃ
|
||||
|
||||
### Client
|
||||
-
|
||||
|
||||
### Server
|
||||
-
|
||||
|
||||
-->
|
||||
### Server
|
||||
- ใใฃใผใ็ๆๆใซinstance.suspentionStateใซ็ฝฎใๆใใใใinstance.isSuspendedใๅ็
งใใใฆใใพใๅ้กใไฟฎๆญฃ
|
||||
|
||||
|
||||
## 2024.5.0
|
||||
|
||||
### Note
|
||||
- ใณใณใใญใผใซใใใซๅ
ใซใใใตใใชใผใใญใญใทใฎ่จญๅฎๅๆใใปใญใฅใชใใฃใใๅ
จ่ฌใธๅคๆดใจใชใใพใใ
|
||||
- ๆชๆใฎใใ็ฌฌไธ่
ใใชใขใผใใฆใผใถใผใซใชใใใพใใใขใฏใใฃใใใฃใๅใๅใใฆใใพใๅ้กใไฟฎๆญฃใใพใใใ่ฉณใใใฏ[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)ใใ่ฆงใใ ใใใ
|
||||
- ็ฎก็่
ๅใๆจฉ้ `read:admin:show-users` ใฏ `read:admin:show-user` ใซ็ตฑๅใใใพใใใๅฟ
่ฆใซๅฟใใฆAPIใใผใฏใณใๅ็บ่กใใฆใใ ใใใ
|
||||
|
||||
### General
|
||||
- Feat: ใจใฉใผใใฉใใญใณใฐใซSentryใไฝฟ็จใงใใใใใซใชใใพใใ
|
||||
- Enhance: URLใใฌใใฅใผใฎๆๅนๅใป็กๅนๅใ่จญๅฎใงใใใใใซ #13569
|
||||
- Enhance: ใขใณใใใงBotใซใใใใผใใ้คๅคใงใใใใใซ
|
||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545)
|
||||
- Enhance: ใฏใชใใใฎใใผใๆฐใ่กจ็คบใใใใใซ
|
||||
- Enhance: ใณใณใใฃใทใงใใซใญใผใซใฎๆกไปถใจใใฆไปฅไธใๆฐใใซ่ฟฝๅ (#13667)
|
||||
- ็ซใฆใผใถใผใ
|
||||
- botใฆใผใถใผใ
|
||||
- ใตในใใณใๆธใฟใฆใผใถใผใ
|
||||
- ้ตใขใซใฆใณใใฆใผใถใผใ
|
||||
- ใใขใซใฆใณใใ่ฆใคใใใใใใใใๆๅนใชใฆใผใถใผใ
|
||||
- Enhance: Goneใๅบใใใซ็ตไบใใใตใผใใผใธใฎ้
ไฟกๅๆญขใ่ชๅ็ใซ่กใใใใซ
|
||||
- ใใใใฎใใใชใตใผใใผใใใใ้
ไฟกใๅฑใใๅ ดๅใซใฏ่ชๅ็ใซ้
ไฟกใๅ้ใใพใ
|
||||
- Enhance: ้
ไฟกๅๆญขใฎ็็ฑใ่กจ็คบใใใใใซ
|
||||
- Enhance: ใตใผใใผใฎใๅใๅใใๅ
URLใ่จญๅฎใงใใใใใซใชใใพใใ
|
||||
- Fix: Playไฝๆๆใซ่จญๅฎใใๅ
ฌ้็ฏๅฒใๆฉ่ฝใใฆใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ๆญฃ่ฆๅใใใฆใใชใ็ถๆ
ใฎhashtagใ้ฃๅใใใฆใใhtmlใซๅซใพใใฆใใใจhashtagใๆญฃใใhashtagใซๅพฉๅ
ใใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใฟใคใใใฎใขใณใฑใผใๆฌใซใฆใใฃใณใใซใฎใขใณใฑใผใใๅซใพใใฆใใพใๅ้กใไฟฎๆญฃ
|
||||
|
||||
### Client
|
||||
- Feat: ใขใใใญใผใใใใใกใคใซใฎๅๅใใฉใณใใ ๆๅญๅใซใงใใใใใซ
|
||||
- Feat: ๅๅฅใฎใ็ฅใใใซใชใณใฏใง้ฃในใใใใซ
|
||||
(Based on https://github.com/MisskeyIO/misskey/pull/639)
|
||||
- Enhance: ่ชๅใฎใใผใใฎๆทปไปใใกใคใซใใ็ดๆฅใใกใคใซใฎ่ฉณ็ดฐใใผใธใซ้ฃในใใใใซ
|
||||
- Enhance: ๅบๅใMisskeyใจๅไธใใกใคใณใฎๅ ดๅใฏRouterใง้ท็งปใใใใใซ
|
||||
- Enhance: ใชใขใฏใทใงใณใปใใใญใฎ็ทๆฐใ่กจ็คบใใใใใซ
|
||||
- Enhance: ใชใขใฏใทใงใณๅใๅ
ฅใใใใใใญใฎใฟใใฎๅ ดๅใฏใชใขใฏใทใงใณ็ตตๆๅญไธ่ฆงใ่กจ็คบใใชใใใใซ
|
||||
- Enhance: ่จญๅฎ>ใใฉใฐใคใณใฎใใผใธใใใใฉใฐใคใณใฎ็ฐกๆ็ใชใญใฐใใจใฉใผใ่ฆใใใใใใซ
|
||||
- ๅฎ่ฃ
ใฎ้ฝๅใซใใใใใฉใฐใคใณใฏ๏ผใคใจใฉใผใ่ตทใใใๆใซๅณๆๅๆญขใใใใใซใชใใพใใ
|
||||
- Enhance: ใใผใธใฎใใถใคใณใๅคๆด
|
||||
- Enhance: 2่ฆ็ด ่ช่จผ๏ผใฏใณใฟใคใ ใในใฏใผใ๏ผใฎๅ
ฅๅๆฌใๆนๅ
|
||||
- Enhance: ใไปๆฅ่ช็ๆฅใฎใใฉใญใผไธญใฆใผใถใผใใฆใฃใธใงใใใๆๅใงใชใญใผใใงใใใใใซ
|
||||
- Enhance: ๆ ๅใป้ณๅฃฐใฎๅ็ใซใใฉใฆใถใฎใใคใใฃใใใฌใคใคใผใไฝฟ็จใงใใใใใซ
|
||||
- Enhance: ๆ ๅใป้ณๅฃฐใฎๅ็ใกใใฅใผใซใๅ็้ๅบฆใใใซใผใๅ็ใใใใฏใใฃใคใณใใฏใใฃใใ่ฟฝๅ
|
||||
- Enhance: ๆ ๅใป้ณๅฃฐใฎๅ็ใซใญใผใใผใใทใงใผใใซใใใไฝฟใใใใใซ
|
||||
- Enhance: ใใผใใซใคใใฆใใใชใขใฏใทใงใณใฎใใใฃใจ๏ผใใใใใชใขใฏใทใงใณใฎไธ่ฆงใ่กจ็คบใงใใใใใซ
|
||||
- Enhance: ใชใใฉใคใซใฆๅผ็จใใใๅ ดๅใใญในใใ็ฉบใงใใใผใใงใใใใใซ
|
||||
- ๅผ็จใใใใใผใใฎURLใใณใใผใใชใใฉใคๆ็จฟ็ป้ขใซใใผในใใใฆๆทปไปใใใใจใง้ๆใงใใพใ
|
||||
- Enhance: ใใฉใญใผใใใใฉใใใฎ็ขบ่ชใใคใขใญใฐใๅบใใใใใซ
|
||||
- Enhance: Playใๆๅใงใชใญใผใใงใใใใใซ
|
||||
- Enhance: ้ๅ ฑใฎใณใกใณใๅ
ใฎใชใณใฏใใฏใชใใฏใใ้ใใฆใฃใณใใฆใง้ใใใใซ
|
||||
- Enhance: `Ui:C:postForm` ใใใณ `Ui:C:postFormButton` ใซ `localOnly` ใจ `visibility` ใ่จญๅฎใงใใใใใซ
|
||||
- Enhance: AiScriptใ0.18.0ใซใใผใธใงใณใขใใ
|
||||
- Enhance: ้ๅธธใฎใใผใใงใใใๆฐใซๅ
ฅใใซ็ป้ฒใใใใฃใณใใซใซใชใใผใใงใใใใใซ
|
||||
- Enhance: ้ทใใใญในใใใใผในใใใ้ใซใใญในใใใกใคใซใจใใฆๆทปไปใใใใฉใใใ้ธๆใงใใใใใซ
|
||||
- Enhance: ๆฐ็ใใผใใใตใฆใณใใง้็ฅใใๆฉ่ฝใdeck UIใซ่ฟฝๅ ใใพใใ
|
||||
- Enhance: ใณใณใใญใผใซใใใซใฎใฏใคใใฏใขใฏใทใงใณใใใใกใคใซใ็
งไผใงใใใใใซ
|
||||
- Enhance: ใณใณใใญใผใซใใใซใฎใฏใคใใฏใขใฏใทใงใณใใ้ๅธธใฎ็
งไผใ่กใใใใใซ
|
||||
- Fix: ไธ้จใฎใใผใธๅ
ใชใณใฏใๆญฃใใๅไฝใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ๅจๅนดใฎๅฎ็ธพใ้ๅนดใ่ๆ
ฎใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใญใผใซใซURLใฎใใฌใใฅใผใใใใขใใใๅทฆไธใซ่กจ็คบใใใ
|
||||
- Fix: WebGL2ใใตใใผใใใชใใใฉใฆใถใงใๅญฃ็ฏใซๅฟใใ็ป้ขใฎๆผๅบใใๆๅนใซใชใฃใฆใใใจใใMisskeyใ่ตทๅใงใใชใใชใๅ้กใไฟฎๆญฃ
|
||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459)
|
||||
- Fix: ใใผใธใฟใคใใซใงใญใผใซใซใฆใผใถใผใจใชใขใผใใฆใผใถใผใฎๅบๅฅใใคใใชใๅ้กใไฟฎๆญฃ
|
||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528)
|
||||
- Fix: ใณใผใใใญใใฏใฎใทใณใฟใใฏในใใคใฉใคใใงไฝฟ็จใใใๅฎ็พฉใใกใคใซใCDNใใๅๅพใใใใใซ #13177
|
||||
- CDNใใๅๅพใใMisskeyๆฌไฝใซใใณใใซใใๅ ดๅใฏ`pacakges/frontend/vite.config.ts`ใไฟฎๆญฃใใฆใใ ใใใ
|
||||
- Fix: ใฟใคใ ใพใผใณใซใใฃใฆใฏใใไปๆฅ่ช็ๆฅใฎใใฉใญใผไธญใฆใผใถใผใใฆใฃใธใงใใใๆญฃใใๅไฝใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: CWใฎใฟใฎๅผ็จใชใใผใใ่ฉณ็ดฐใใผใธใง็ด็ฒใชใชใใผใใจใใฆ่ชคใฃใฆๆฑใใใฆใใพใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใใผใ่ฉณ็ดฐใใผใธใซใใใฆCWไปใๅผ็จใชใใผใใฎCWใใฟใณใฎใฉใใซใซใๅผ็จใใๅซใพใใฆใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใใคใขใญใฐใฎๅ
ฅๅใงๅญๆฐๅถ้ใซ้ๅใใฆใใฆใEnterใญใผใๆผใใฆใใพใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใใคใฌใฏใๆ็จฟใฎๅฎๅ
ใไฟๅญใใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: Playใฎใใผใธใ้ขใใใจใใซใPlayใๆญฃๅธธใซๅๆๅใใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใใผใธใฎOGP URLใ้้ใฃใฆใใใฎใไฟฎๆญฃ
|
||||
- Fix: ใชใใผใทใฎๅฏพๅฑใๆญฃใใๅ
ฑๆใงใใชใใใจใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ้็ฅใใฐใซใผใๅใใฆใใ้ใซใไบบๆฐใๆญฃๅธธใซ่กจ็คบใใใชใใใจใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ้ฃๅใชใใฎ็ถๆ
ใฎ่ชญใฟๆธใใใงใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: `/share` ใงๆฅๆฌ่ช็ญใๅซใurlใurlใจใณใณใผใใใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใใกใคใซใ5ใคไปฅไธๆทปไปใใฆใใใญในใใใชใใจใใผใใๆใใใใพใใชใๅ้กใไฟฎๆญฃ
|
||||
|
||||
### Server
|
||||
- Enhance: ใจใณใใใคใณใ`antennas/update`ใฎๅฟ
้ ้
็ฎใ`antennaId`ใฎใฟใซ
|
||||
- Enhance: misskey-dev/summaly@5.1.0ใฎๅใ่พผใฟ๏ผใใฌใใฅใผ็ๆๅฆ็ใฎๅน็ๅ๏ผ
|
||||
- Enhance: ใใฉใคใใฎใใกใคใซใNSFWใใฉใใๅๅฅใซ้ฃๅใใใใใใซ (#13756)
|
||||
- ๅฏ่ฝใชๅ ดๅใใใผใใฎๆทปไปใใกใคใซใฎใปใณใทใใฃใๅคๅฎใใใกใคใซๅไฝใซใชใใพใ
|
||||
- Fix: ใชใขใผใใใ้
้ใใใใขใฏใใฃใใใฃใซJSON-LD compactionใใใใ
|
||||
- Fix: ใใฉใญใผใชใฏใจในใใไฝๆใใ้ใซๆขๅญใฎใใฎใฏๅ้คใใใใใซ
|
||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440)
|
||||
- Fix: ใจใณใใใคใณใ`notes/translate`ใฎใจใฉใผใๆนๅ
|
||||
- Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632)
|
||||
- Fix: ไธ้จใฎ้ณๅฃฐใใกใคใซใๆ ๅใใกใคใซใจใใฆๆฑใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใชใใฉใคใฎใฟใฎๅผ็จใชใใผใใจใCWใฎใฟใฎๅผ็จใชใใผใใ็ด็ฒใชใชใใผใใจใใฆ่ชคใฃใฆๆฑใใใฆใใพใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ็ป้ฒใซใกใผใซ่ช่จผใๅฟ
้ ใซใชใฃใฆใใๅ ดๅใ็ป้ฒใใใฆใใใกใผใซใขใใฌในใๅ้คใงใใชใใใใซ
|
||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606)
|
||||
- Fix: Add Cache-Control to Bull Board
|
||||
- Fix: nginx็ต็ฑใง/files/ใซRangeใชใฏใจในใใใใๅ ดๅใซๆญฃใใๅฟ็ญใงใใชใใฎใไฟฎๆญฃ
|
||||
- Fix: ไธ้จใฎใฟใคใ ใฉใคใณใฎในใใชใผใใณใฐใงใคใณในใฟใณในใใฅใผใใๅนใใชใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใฐใญใผใใซใฟใคใ ใฉใคใณใง่ฟไฟกใ่กจ็คบใใใชใใใจใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ใชใใผใใใใฅใผใใใใฆใผใถใฎๆ็จฟใฎใชใใผใใใใฅใผใใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: AP Link็ญใฏๆทปไปใใกใคใซๆฑใใใชใใใใซใชใฉ (#13754)
|
||||
- Fix: FTTใๆๅนใใคsinceIdใฎใฟใๆๅฎใใๅ ดๅใซๅธฐใฃใฆๆฅใใฌในใใณในใ้้ ใงใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: `/i/notifications`ใซ `includeTypes`ใ`excludeTypes`ใๆๅฎใใฆใใใจใใ้็ฅใๅญๅจใใใฎใซ็ฉบ้
ๅใ่ฟใใใจใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: ่คๆฐidใๆๅฎใใ`users/show`ใ้ขไฟใชใใฆใผใถใ่ฟใใใจใใใๅ้กใไฟฎๆญฃ
|
||||
- Fix: `/tags` ใจ `/user-tags` ใๆค็ดขใจใณใธใณใซใคใณใใใฏในใใใชใใใใซ
|
||||
- Fix: ใใจใใจใปใณใทใใฃใใงใฏใชใใจ้ฃๅใใใฆใใใใกใคใซใใปใณใทใใฃใใจใใฆ้ฃๅใใใๅ ดๅใซใปใณใทใใฃใใจใใฆใใฎใใกใคใซใๆฑใใใใซ
|
||||
- ใปใณใทใใฃใใจใใฆ้ฃๅใใใใกใคใซใฏ้ใปใณใทใใฃใใจใใฆ้ฃๅใใใฆใใปใณใทใใฃใใจใใฆๆฑใใใพใ
|
||||
|
||||
## 2024.3.1
|
||||
|
||||
|
|
112
CONTRIBUTING.md
112
CONTRIBUTING.md
|
@ -307,6 +307,98 @@ export const handlers = [
|
|||
|
||||
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
|
||||
|
||||
## Nest
|
||||
|
||||
### Nest Service Circular dependency / Nestใงใตใผใในใฎๅพช็ฐๅ็
งใงใจใฉใผใ่ตทใใๅ ดๅ
|
||||
|
||||
#### forwardRef
|
||||
ใพใใฏ็ฐกๅใซ`forwardRef`ใ่ฉฆใใฆใฟใ
|
||||
|
||||
```typescript
|
||||
export class FooService {
|
||||
constructor(
|
||||
@Inject(forwardRef(() => BarService))
|
||||
private barService: BarService
|
||||
) {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### OnModuleInit
|
||||
ใงใใชใใใฐ`OnModuleInit`ใไฝฟใ
|
||||
|
||||
```typescript
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
import { ModuleRef } from '@nestjs/core';
|
||||
import { BarService } from '@/core/BarService';
|
||||
|
||||
@Injectable()
|
||||
export class FooService implements OnModuleInit {
|
||||
private barService: BarService // constructorใใ็งปๅใใฆใใ
|
||||
|
||||
constructor(
|
||||
private moduleRef: ModuleRef,
|
||||
) {
|
||||
}
|
||||
|
||||
async onModuleInit() {
|
||||
this.barService = this.moduleRef.get(BarService.name);
|
||||
}
|
||||
|
||||
public async niceMethod() {
|
||||
return await this.barService.incredibleMethod({ hoge: 'fuga' });
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### Service Unit Test
|
||||
ใในใใง`onModuleInit`ใๅผใณๅบใๅฟ
่ฆใใใ
|
||||
|
||||
```typescript
|
||||
// import ...
|
||||
|
||||
describe('test', () => {
|
||||
let app: TestingModule;
|
||||
let fooService: FooService; // for test case
|
||||
let barService: BarService; // for test case
|
||||
|
||||
beforeEach(async () => {
|
||||
app = await Test.createTestingModule({
|
||||
imports: ...,
|
||||
providers: [
|
||||
FooService,
|
||||
{ // mockใใ (mockใฏๅฟ
้ ใงใฏใชใใใใใใชใ)
|
||||
provide: BarService,
|
||||
useFactory: () => ({
|
||||
incredibleMethod: jest.fn(),
|
||||
}),
|
||||
},
|
||||
{ // Provideใซใใ
|
||||
provide: BarService.name,
|
||||
useExisting: BarService,
|
||||
},
|
||||
],
|
||||
})
|
||||
.useMocker(...
|
||||
.compile();
|
||||
|
||||
fooService = app.get<FooService>(FooService);
|
||||
barService = app.get<BarService>(BarService) as jest.Mocked<BarService>;
|
||||
|
||||
// onModuleInitใๅฎ่กใใ
|
||||
await fooService.onModuleInit();
|
||||
});
|
||||
|
||||
test('nice', () => {
|
||||
await fooService.niceMethod();
|
||||
|
||||
expect(barService.incredibleMethod).toHaveBeenCalled();
|
||||
expect(barService.incredibleMethod.mock.lastCall![0])
|
||||
.toEqual({ hoge: 'fuga' });
|
||||
});
|
||||
})
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
### Misskeyใฎใใกใคใณๅบๆใฎๆฆๅฟตใฏ`Mi`ใprefixใใ
|
||||
|
@ -457,7 +549,9 @@ https://github.com/misskey-dev/misskey.git`), then:
|
|||
git checkout -m merge/$(date +%Y-%m-%d) # or whatever
|
||||
git merge --no-ff misskey/develop
|
||||
|
||||
fix conflicts and *commit*!
|
||||
fix conflicts and *commit*! (conflicts in `pnpm-lock.yaml` can usually
|
||||
be fixed by running `pnpm install`, it detects conflict markers and
|
||||
seems to do a decent job)
|
||||
|
||||
*after that commit*, do all the extra work, on the same branch:
|
||||
|
||||
|
@ -468,7 +562,23 @@ fix conflicts and *commit*!
|
|||
* from `ApNoteService.createNote` to `ApNoteService.updateNote`
|
||||
* from `endoints/notes/create.ts` to `endoints/notes/edit.ts`
|
||||
* from `MkNote*` to `SkNote*` (if sensible)
|
||||
* from the global timeline to the bubble timeline
|
||||
(`packages/backend/src/server/api/stream/channels/global-timeline.ts`,
|
||||
`packages/backend/src/server/api/stream/channels/bubble-timeline.ts`,
|
||||
`packages/frontend/src/components/MkTimeline.vue`,
|
||||
`packages/frontend/src/pages/timeline.vue`,
|
||||
`packages/frontend/src/ui/deck/tl-column.vue`,
|
||||
`packages/frontend/src/widgets/WidgetTimeline.vue`)
|
||||
* make sure there aren't any new `ti-*` classes (Tabler Icons), and
|
||||
replace them with appropriate `ph-*` ones (Phosphor Icons).
|
||||
`git grep '["'\'']ti[ -](?!fw)'` should show you what to change.
|
||||
NOTE: `ti-fw` is a special class that's defined by Misskey, leave it
|
||||
alone
|
||||
* re-generate `misskey-js`: `pnpm build-misskey-js-with-types`
|
||||
* run tests `pnpm test` and fix as much as you can
|
||||
* right now `megalodon` doesn't pass its tests, you probably need to
|
||||
run `pnpm --filter=backend test` (requires a test database, [see
|
||||
above](#testing)) and `pnpm --filter=frontend test`
|
||||
* run lint `pnpm --filter=backend lint` + `pnpm --filter=frontend
|
||||
eslint` and fix as much as you can
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# syntax = docker/dockerfile:1.4
|
||||
|
||||
ARG NODE_VERSION=20.10.0-alpine3.18
|
||||
ARG NODE_VERSION=20.12.2-alpine3.19
|
||||
|
||||
FROM node:${NODE_VERSION} as build
|
||||
|
||||
|
@ -8,8 +8,7 @@ RUN apk add git linux-headers build-base
|
|||
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
RUN apk add --update python3 && ln -sf python3 /usr/bin/python
|
||||
RUN python3 -m ensurepip
|
||||
RUN pip3 install --no-cache --upgrade pip setuptools
|
||||
RUN apk add py3-pip py3-setuptools
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
|
@ -65,7 +64,7 @@ COPY --chown=sharkey:sharkey --from=build /sharkey/sharkey-assets ./packages/fro
|
|||
COPY --chown=sharkey:sharkey package.json ./package.json
|
||||
COPY --chown=sharkey:sharkey pnpm-workspace.yaml ./pnpm-workspace.yaml
|
||||
COPY --chown=sharkey:sharkey packages/backend/package.json ./packages/backend/package.json
|
||||
COPY --chown=sharkey:sharkey packages/backend/check_connect.js ./packages/backend/check_connect.js
|
||||
COPY --chown=sharkey:sharkey packages/backend/scripts/check_connect.js ./packages/backend/scripts/check_connect.js
|
||||
COPY --chown=sharkey:sharkey packages/backend/ormconfig.js ./packages/backend/ormconfig.js
|
||||
COPY --chown=sharkey:sharkey packages/backend/migration ./packages/backend/migration
|
||||
COPY --chown=sharkey:sharkey packages/backend/assets ./packages/backend/assets
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
- **ActivityPub support**\
|
||||
Not on Sharkey? No problem! Not only can Sharkey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!
|
||||
- **Federated Backgrounds and Music status**\
|
||||
You can add a background to your profile as well as a music status via ListenBrainz, show everyone what music you are currently listening too
|
||||
You can add a background to your profile as well as a music status via ListenBrainz, show everyone what music you are currently listening to
|
||||
- **Mastodon API**\
|
||||
Sharkey implements the Mastodon API unlike normal Misskey
|
||||
- **UI/UX Improvements**\
|
||||
|
|
|
@ -152,6 +152,22 @@ redis:
|
|||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: "aidx"
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Error tracking โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
# Sentry is available for error tracking.
|
||||
# See the Sentry documentation for more details on options.
|
||||
|
||||
#sentryForBackend:
|
||||
# enableNodeProfiling: true
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
#sentryForFrontend:
|
||||
# options:
|
||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
||||
|
||||
# โโโโโโโโโโโโโโโโโโโโโโโ
|
||||
#โโโโ Other configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
describe('Before setup instance', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
|
@ -1,3 +1,8 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
describe('Router transition', () => {
|
||||
describe('Redirect', () => {
|
||||
// ใตใผใใฎๅๆๅใใซใผใใฎใในใใซ้ขใใฆใฏๅdescribeใใจใซ1ๅบฆใ ใๅฎ่กใงๅๅใ ใจๆใ๏ผไฝฟใใพใใใๆนใๆฉใ๏ผ
|
|
@ -1,3 +1,8 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
/* flaky
|
||||
describe('After user signed in', () => {
|
||||
beforeEach(() => {
|
|
@ -30,9 +30,13 @@ Cypress.Commands.add('visitHome', () => {
|
|||
})
|
||||
|
||||
Cypress.Commands.add('resetState', () => {
|
||||
cy.window(win => {
|
||||
// iframe.contentWindow.indexedDB.deleteDatabase() ใchromeใฎใใฐใงไฝฟ็จใงใใชใใใใindexedDBใ็กๅนๅใใฆใใใ
|
||||
// see https://github.com/misskey-dev/misskey/issues/13605#issuecomment-2053652123
|
||||
/*
|
||||
cy.window().then(win => {
|
||||
win.indexedDB.deleteDatabase('keyval-store');
|
||||
});
|
||||
*/
|
||||
cy.request('POST', '/api/reset-db', {}).as('reset');
|
||||
cy.get('@reset').its('status').should('equal', 204);
|
||||
cy.reload(true);
|
19
cypress/support/index.ts
Normal file
19
cypress/support/index.ts
Normal file
|
@ -0,0 +1,19 @@
|
|||
declare global {
|
||||
namespace Cypress {
|
||||
interface Chainable {
|
||||
login(username: string, password: string): Chainable<void>;
|
||||
|
||||
registerUser(
|
||||
username: string,
|
||||
password: string,
|
||||
isAdmin?: boolean
|
||||
): Chainable<void>;
|
||||
|
||||
resetState(): Chainable<void>;
|
||||
|
||||
visitHome(): Chainable<void>;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export {}
|
8
cypress/tsconfig.json
Normal file
8
cypress/tsconfig.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"lib": ["dom", "es5"],
|
||||
"target": "es5",
|
||||
"types": ["cypress", "node"]
|
||||
},
|
||||
"include": ["./**/*.ts"]
|
||||
}
|
|
@ -4,4 +4,4 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
PORT=$(grep '^port:' /sharkey/.config/default.yml | awk 'NR==1{print $2; exit}')
|
||||
curl -s -S -o /dev/null "http://localhost:${PORT}"
|
||||
curl -Sfso/dev/null "http://localhost:${PORT}/healthz"
|
||||
|
|
|
@ -123,6 +123,7 @@ reactions: "ุงูุชูุงุนูุงุช"
|
|||
reactionSettingDescription2: "ุงุณุญุจ ูุชุฑุชูุจ ุ ุงููุฑ ููุญุฐู ุ ุงุณุชุฎุฏู
\"+\" ููุฅุถุงูุฉ."
|
||||
rememberNoteVisibility: "ุชุฐูุฑ ุฅุนุฏุงุฏุช ู
ุฏู ุฑุคูุฉ ุงูู
ูุงุญุธุงุช"
|
||||
attachCancel: "ุฃุฒู ุงูู
ุฑูู"
|
||||
deleteFile: "ุญูุฐู ุงูู
ูู"
|
||||
markAsSensitive: "ุนููู
ู ูู
ุญุชูู ุญุณุงุณ"
|
||||
unmarkAsSensitive: "ุฃูุบ ุชุนูููู ูู
ุญุชูู ุญุณุงุณ"
|
||||
enterFileName: "ุงุฏุฎู ุงุณู
ุงูู
ูู"
|
||||
|
@ -1015,6 +1016,8 @@ sourceCode: "ุงูุดูุฑุฉ ุงูู
ุตุฏุฑูุฉ"
|
|||
flip: "ุงููุจ"
|
||||
lastNDays: "ุขุฎุฑ {n} ุฃูุงู
"
|
||||
surrender: "ุฃูุบู"
|
||||
_delivery:
|
||||
stop: "ู
ูุนููู"
|
||||
_initialAccountSetting:
|
||||
accountCreated: "ูุฌุญ ุฅูุดุงุก ุญุณุงุจู!"
|
||||
letsStartAccountSetup: "ุฅุฐุง ููุช ุฌุฏูุฏูุง ููุนุฏู ุญุณุงุจู ุงูุดุฎุตู."
|
||||
|
@ -1565,8 +1568,21 @@ _webhookSettings:
|
|||
reaction: "ุนูุฏ ุงูุชูุงุนู"
|
||||
_moderationLogTypes:
|
||||
suspend: "ุนููู"
|
||||
deleteDriveFile: "ุญูุฐู ุงูู
ูู"
|
||||
deleteNote: "ุญูุฐูุช ุงูู
ูุงุญุธุฉ"
|
||||
createGlobalAnnouncement: "ุฃููุดุฆ ุฅุนูุงู ุนุงู
"
|
||||
createUserAnnouncement: "ุฃููุดุฆ ุฅุนูุงู ู
ุณุชุฎุฏู
"
|
||||
updateGlobalAnnouncement: "ุญูุฏุซ ุฅุนูุงู ุนุงู
"
|
||||
updateUserAnnouncement: "ุญูุฏุซ ุฅุนูุงู ู
ุณุชุฎุฏู
"
|
||||
resetPassword: "ุฃุนุฏ ุชุนููู ููู
ุชู ุงูุณุฑูุฉ"
|
||||
createInvitation: "ููููุฏ ุฏุนูุฉ"
|
||||
_reversi:
|
||||
total: "ุงูู
ุฌู
ูุน"
|
||||
|
||||
lookingForPlayer: "ูุจุญุซ ุนู ุฎุตู
..."
|
||||
gameCanceled: "ุฃููุบูุช ุงููุนุจุฉ."
|
||||
opponentHasSettingsChanged: "ุบููุฑ ุงูุฎุตู
ุฅุนุฏุงุฏุชู."
|
||||
showBoardLabels: "ุงุนุฑุถ ุชุฑููู
ุงูุตููู ูุงูุฃุนู
ุฏุฉ ุนูู ุงูููุญ"
|
||||
useAvatarAsStone: "ุญููู ุงูุญุฌุงุฑุฉ ุฅูู ุตูุฑ ู
ุณุชุฎุฏู
ูู"
|
||||
_offlineScreen:
|
||||
title: "ุบูุฑ ู
ุชุตู - ูุชุนุฐุฑ ุงูุงุชุตุงู ุจุงูุฎุงุฏู
"
|
||||
header: "ูุชุนุฐุฑ ุงูุงุชุตุงู ุจุงูุฎุงุฏู
"
|
||||
|
|
|
@ -857,6 +857,10 @@ replies: "เฆเฆฌเฆพเฆฌ"
|
|||
renotes: "เฆฐเฆฟเฆจเงเฆ"
|
||||
sourceCode: "เฆธเงเฆฐเงเฆธ เฆเงเฆก"
|
||||
flip: "เฆเฆฒเงเฆเฆพเฆจ"
|
||||
_delivery:
|
||||
stop: "เฆธเงเฆฅเฆเฆฟเฆค เฆเฆฐเฆพ เฆนเงเงเฆเง"
|
||||
_type:
|
||||
none: "เฆชเงเฆฐเฆเฆพเฆถ เฆเฆฐเฆพ เฆนเฆเงเฆเง"
|
||||
_role:
|
||||
priority: "เฆ
เฆเงเฆฐเฆพเฆงเฆฟเฆเฆพเฆฐ"
|
||||
_priority:
|
||||
|
@ -1347,4 +1351,3 @@ _moderationLogTypes:
|
|||
resetPassword: "เฆชเฆพเฆธเฆเฆฏเฆผเฆพเฆฐเงเฆก เฆฐเฆฟเฆธเงเฆ เฆเฆฐเงเฆจ"
|
||||
_reversi:
|
||||
total: "เฆฎเงเฆ"
|
||||
|
||||
|
|
|
@ -400,6 +400,7 @@ name: "Nom"
|
|||
antennaSource: "Font de l'antena"
|
||||
antennaKeywords: "Paraules clau a seguir"
|
||||
antennaExcludeKeywords: "Paraules clau a excloure"
|
||||
antennaExcludeBots: "Exclou els bots"
|
||||
antennaKeywordsDescription: "Separar amb espais per la condiciรณ AND o amb salts de lรญnia per la condiciรณ OR."
|
||||
notifyAntenna: "Notifica'm les publicacions noves"
|
||||
withFileAntenna: "Nomรฉs les publicacions amb fitxers"
|
||||
|
@ -494,6 +495,7 @@ emojiStyle: "Estil d'emoji"
|
|||
native: "Nadiu"
|
||||
disableDrawer: "No mostrar els menรบs en calaixos"
|
||||
showNoteActionsOnlyHover: "Nomรฉs mostra accions de la nota en passar amb el cursor"
|
||||
showReactionsCount: "Mostra el nombre de reaccions a les publicacions"
|
||||
noHistory: "No hi ha un registre previ"
|
||||
signinHistory: "Historial d'autenticacions"
|
||||
enableAdvancedMfm: "Habilitar l'MFM avanรงat"
|
||||
|
@ -543,7 +545,7 @@ objectStorageUseProxyDesc: "Desactiva'l si no farร s servir un Proxy per les con
|
|||
objectStorageSetPublicRead: "Configurar les pujades com pรบbliques "
|
||||
s3ForcePathStyleDesc: "Si s3ForcePathStyle es troba activat el nom del dipรฒsit s'ha d'incloure a l'adreรงa URL en comtes del nom del host. Potser que necessitis activar-ho quan facis servir, per exemple, Minio a un servidor propi."
|
||||
serverLogs: "Registres del servidor"
|
||||
deleteAll: "Esborrar tot"
|
||||
deleteAll: "Elimina-ho tot"
|
||||
showFixedPostForm: "Mostrar el formulari per escriure a l'inici de la lรญnia de temps"
|
||||
showFixedPostFormInChannel: "Mostrar el formulari d'escriptura al principi de la lรญnia de temps (Canals)"
|
||||
withRepliesByDefaultForNewlyFollowed: "Inclou les respostes d'usuaris nous seguits a la lรญnia de temps per defecte."
|
||||
|
@ -691,9 +693,9 @@ reporter: "Denunciant "
|
|||
reporteeOrigin: "Origen de la denรบncia "
|
||||
reporterOrigin: "Origen del denunciant"
|
||||
forwardReport: "Transferir la denรบncia a una instร ncia remota"
|
||||
forwardReportIsAnonymous: "En comptes del teu compte, es farร servir un compte anรฒnim com a denunciat a la instร ncia remota."
|
||||
send: "Enviar"
|
||||
abuseMarkAsResolved: "Marcar la denรบncia com a resolta"
|
||||
forwardReportIsAnonymous: "En lloc del teu compte, es farร servir un compte anรฒnim com a denunciant al servidor remot."
|
||||
send: "Envia"
|
||||
abuseMarkAsResolved: "Marca la denรบncia com a resolta"
|
||||
openInNewTab: "Obre a una pestanya nova"
|
||||
openInSideView: "Obre a una vista lateral"
|
||||
defaultNavigationBehaviour: "Navegaciรณ per defecte"
|
||||
|
@ -853,7 +855,7 @@ customCss: "CSS personalitzat"
|
|||
customCssWarn: "Aquesta configuraciรณ nomรฉs hauries de configurar-la si saps que fas. Si poses valors inadequats pots fer que el client deixi de funcionar correctament."
|
||||
global: "Global"
|
||||
squareAvatars: "Mostrar avatars quadrats"
|
||||
sent: "Enviar"
|
||||
sent: "Envia"
|
||||
received: "Rebut"
|
||||
searchResult: "Resultats de la cerca"
|
||||
hashtags: "Etiquetes"
|
||||
|
@ -991,6 +993,7 @@ neverShow: "No mostrar mรฉs "
|
|||
remindMeLater: "Recorda-m'ho mรฉs tard"
|
||||
didYouLikeMisskey: "T'estร agradant Misskey?"
|
||||
pleaseDonate: "A {host} fem servir el software lliure Misskey. Considera fer un donatiu a Misskey perquรจ pugui continuar el seu desenvolupament!"
|
||||
correspondingSourceIsAvailable: "El codi font corresponent estร disponible a {anchor}."
|
||||
roles: "Rols"
|
||||
role: "Rols"
|
||||
noRole: "No s'han trobat rols"
|
||||
|
@ -1159,6 +1162,7 @@ showRenotes: "Mostrar impulsos"
|
|||
edited: "Editat"
|
||||
notificationRecieveConfig: "Parร metres de notificacions"
|
||||
mutualFollow: "Seguidor mutu"
|
||||
followingOrFollower: "Seguit o seguidor"
|
||||
fileAttachedOnly: "Nomรฉs notes amb adjunts"
|
||||
showRepliesToOthersInTimeline: "Mostrar les respostes a altres a la lรญnia de temps"
|
||||
hideRepliesToOthersInTimeline: "Amagar les respostes a altres a la lรญnia de temps"
|
||||
|
@ -1168,6 +1172,9 @@ confirmShowRepliesAll: "Aquesta opciรณ no tรฉ marxa enrere. Vols mostrar les tev
|
|||
confirmHideRepliesAll: "Aquesta opciรณ no tรฉ marxa enrere. Vols ocultar les teves respostes a tots els usuaris que segueixes a la lรญnia de temps?"
|
||||
externalServices: "Serveis externs"
|
||||
sourceCode: "Codi font"
|
||||
repositoryUrl: "URL del repositori"
|
||||
feedback: "Opiniรณ"
|
||||
feedbackUrl: "URL per a opinar"
|
||||
impressum: "Impressum"
|
||||
impressumUrl: "Adreรงa URL impressum"
|
||||
impressumDescription: "A paรฏsos, com Alemanya, la inclusiรณ de la informaciรณ de contacte de l'operador (un Impressum) รฉs requereix de manera legal per llocs comercials."
|
||||
|
@ -1203,6 +1210,7 @@ soundWillBePlayed: "Es reproduiran efectes de so"
|
|||
showReplay: "Veure reproducciรณ"
|
||||
replay: "Reproduir"
|
||||
replaying: "Reproduint"
|
||||
endReplay: "Tanca la redifusiรณ"
|
||||
ranking: "Classificaciรณ"
|
||||
lastNDays: "รltims {n} dies"
|
||||
backToTitle: "Torna al tรญtol"
|
||||
|
@ -1210,7 +1218,16 @@ hemisphere: "Geolocalitzaciรณ"
|
|||
withSensitive: "Incloure notes amb fitxers sensibles"
|
||||
userSaysSomethingSensitive: "La publicaciรณ de {name} conte material sensible"
|
||||
enableHorizontalSwipe: "Lliscar per canviar de pestanya"
|
||||
loading: "Sโestร carregant"
|
||||
surrender: "Cancelยทlar "
|
||||
gameRetry: "Torna a provar"
|
||||
notUsePleaseLeaveBlank: "Si no voleu usar-ho, deixeu-ho en blanc"
|
||||
useTotp: "Usa una contrasenya d'un sol รบs"
|
||||
useBackupCode: "Usa un codi de recuperaciรณ"
|
||||
_delivery:
|
||||
stop: "Suspรฉs"
|
||||
_type:
|
||||
none: "S'estร publicant"
|
||||
_bubbleGame:
|
||||
howToPlay: "Com es juga"
|
||||
_howToPlay:
|
||||
|
@ -1915,7 +1932,6 @@ _2fa:
|
|||
registerTOTP: "Registrar una aplicaciรณ autenticadora"
|
||||
step1: "Primer instalยทla una aplicaciรณ autenticadora (com {a} o {b}) al teu dispositiu."
|
||||
step2: "Desprรฉs escaneja el codi QR que es mostra en aquesta pantalla."
|
||||
step2Click: "Fent clic en aquest codi QR et permetrร registrar l'autenticaciรณ de doble factor a la teva clau de seguretat o en l'aplicaciรณ d'autenticaciรณ del teu dispositiu."
|
||||
step2Uri: "Escriu la segรผent URI si estร s fent servir una aplicaciรณ d'escriptori "
|
||||
step3Title: "Escriu un codi d'autenticaciรณ"
|
||||
step3: "Escriu el codi d'autenticaciรณ (token) que es mostra a la teva aplicaciรณ per finalitzar la configuraciรณ."
|
||||
|
@ -1989,7 +2005,6 @@ _permissions:
|
|||
"read:admin:server-info": "Veure informaciรณ del servidor"
|
||||
"read:admin:show-moderation-log": "Veure registre de moderaciรณ "
|
||||
"read:admin:show-user": "Veure informaciรณ privada de l'usuari "
|
||||
"read:admin:show-users": "Veure informaciรณ privada de l'usuari "
|
||||
"write:admin:suspend-user": "Suspendre usuari"
|
||||
"write:admin:unset-user-avatar": "Esborrar avatar d'usuari "
|
||||
"write:admin:unset-user-banner": "Esborrar bร ner de l'usuari "
|
||||
|
|
|
@ -1099,6 +1099,10 @@ sourceCode: "Zdrojovรฝ kรณd"
|
|||
flip: "Otoฤit"
|
||||
lastNDays: "Poslednรญch {n} dnลฏ"
|
||||
surrender: "Zruลกit"
|
||||
_delivery:
|
||||
stop: "Suspendovรกno"
|
||||
_type:
|
||||
none: "Publikuji"
|
||||
_initialAccountSetting:
|
||||
accountCreated: "Vรกลก รบฤet byl รบspฤลกnฤ vytvoลen!"
|
||||
letsStartAccountSetup: "Pro zaฤรกtek si nastavte svลฏj profil."
|
||||
|
@ -1664,7 +1668,6 @@ _2fa:
|
|||
registerTOTP: "Registrovat aplikaci autentizรกtoru"
|
||||
step1: "Nejprve si do zaลรญzenรญ nainstalujte aplikaci pro ovฤลovรกnรญ (napลรญklad {a} nebo {b})."
|
||||
step2: "Potรฉ naskenujte QR kรณd zobrazenรฝ na tรฉto obrazovce."
|
||||
step2Click: "Kliknutรญm na tento QR kรณd mลฏลพete zaregistrovat 2FA do bezpeฤnostnรญho klรญฤe nebo aplikace autentizace telefonu."
|
||||
step3Title: "Zadejte ovฤลovacรญ kรณd"
|
||||
step3: "Pro dokonฤenรญ nastavenรญ zadejte token poskytnutรฝ vaลกรญ aplikacรญ."
|
||||
step4: "Od tรฉto chvรญle budou vลกechny budoucรญ pokusy o pลihlรกลกenรญ vyลพadovat tento pลihlaลกovacรญ token."
|
||||
|
@ -1718,7 +1721,7 @@ _auth:
|
|||
shareAccessTitle: "Udฤlovat oprรกvnฤnรญ k aplikacรญm"
|
||||
shareAccess: "Chcete autorizovat \"{name}\" pro pลรญstup k tomuto รบฤtu?"
|
||||
shareAccessAsk: "Opravdu chcete tรฉto aplikaci povolit pลรญstup k vaลกemu รบฤtu?"
|
||||
permission: "{jmรฉno} poลพaduje tato oprรกvnฤnรญ"
|
||||
permission: "{name} poลพaduje tato oprรกvnฤnรญ"
|
||||
permissionAsk: "Tato aplikace poลพaduje nรกsledujรญcรญ oprรกvnฤnรญ"
|
||||
pleaseGoBack: "Vraลฅte se prosรญm zpฤt do aplikace"
|
||||
callback: "Nรกvrat k aplikaci"
|
||||
|
@ -1942,7 +1945,7 @@ _notification:
|
|||
youGotMention: "{name} vรกs zmรญnil"
|
||||
youGotReply: "{name} vรกm odpovฤdฤl"
|
||||
youGotQuote: "{name} vรกs citoval"
|
||||
youRenoted: "Poznรกmka od {jmรฉno}"
|
||||
youRenoted: "Poznรกmka od {name}"
|
||||
youWereFollowed: "Mรกte novรฉho nรกsledovnรญka"
|
||||
youReceivedFollowRequest: "Obdrลพeli jste ลพรกdost o sledovรกnรญ"
|
||||
yourFollowRequestAccepted: "Vaลกe ลพรกdost o sledovรกnรญ byla pลijata"
|
||||
|
@ -2025,4 +2028,3 @@ _moderationLogTypes:
|
|||
createInvitation: "Vygenerovat pozvรกnku"
|
||||
_reversi:
|
||||
total: "Celkem"
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
---
|
||||
_lang_: "Dansk"
|
||||
|
||||
headlineMisskey: ""
|
||||
introMisskey: "ใใใใ๏ผMisskeyใฏใใชใผใใณใฝใผในใฎๅๆฃๅใใคใฏใญใใญใฐใตใผใในใงใใ\nใใใผใใใไฝๆใใฆใใใพ่ตทใใฃใฆใใใใจใๅ
ฑๆใใใใใใชใใซใคใใฆ็ใซ็บไฟกใใใ๐ก\nใใชใขใฏใทใงใณใๆฉ่ฝใงใ็ใฎใใผใใซ็ด ๆฉใๅๅฟใ่ฟฝๅ ใใใใจใใงใใพใ๐\nๆฐใใไธ็ใๆขๆคใใใ๐"
|
||||
|
|
|
@ -654,7 +654,7 @@ smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest."
|
|||
testEmail: "Emailversand testen"
|
||||
wordMute: "Wortstummschaltung"
|
||||
regexpError: "Fehler in einem regulรคren Ausdruck"
|
||||
regexpErrorDescription: "Im regulรคren Ausdruck deiner {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
|
||||
regexpErrorDescription: "Im regulรคren Ausdruck deiner in Zeile {line} von {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
|
||||
instanceMute: "Instanzstummschaltungen"
|
||||
userSaysSomething: "{name} hat etwas gesagt"
|
||||
makeActive: "Aktivieren"
|
||||
|
@ -1188,6 +1188,10 @@ addMfmFunction: "MFM hinzufรผgen"
|
|||
sfx: "Soundeffekte"
|
||||
lastNDays: "Letzten {n} Tage"
|
||||
surrender: "Abbrechen"
|
||||
_delivery:
|
||||
stop: "Gesperrt"
|
||||
_type:
|
||||
none: "Wird verรถffentlicht"
|
||||
_announcement:
|
||||
forExistingUsers: "Nur fรผr existierende Nutzer"
|
||||
forExistingUsersDescription: "Ist diese Option aktiviert, wird diese Ankรผndigung nur Nutzern angezeigt, die zum Zeitpunkt der Ankรผndigung bereits registriert sind. Ist sie deaktiviert, wird sie auch Nutzern, die sich nach dessen Verรถffentlichung registrieren, angezeigt."
|
||||
|
@ -1822,7 +1826,6 @@ _2fa:
|
|||
registerTOTP: "Authentifizierungs-App registrieren"
|
||||
step1: "Installiere zuerst eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerรคt."
|
||||
step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerรคt."
|
||||
step2Click: "Durch Klicken dieses QR-Codes kannst du Verifikation mit deinem Security-Token oder einer App registrieren."
|
||||
step2Uri: "Nutzt du ein Desktopprogramm, gib folgende URI eingeben"
|
||||
step3Title: "Authentifizierungsscode eingeben"
|
||||
step3: "Gib zum Abschluss den Code (Token) ein, der von deiner App angezeigt wird."
|
||||
|
@ -2292,4 +2295,3 @@ _reversi:
|
|||
black: "Schwarz"
|
||||
white: "Weiร"
|
||||
total: "Gesamt"
|
||||
|
||||
|
|
|
@ -398,4 +398,3 @@ _moderationLogTypes:
|
|||
suspend: "ฮฯฮฟฮฒฮฟฮปฮฎ"
|
||||
_reversi:
|
||||
total: "ฮฃฯฮฝฮฟฮปฮฟ"
|
||||
|
||||
|
|
|
@ -112,11 +112,14 @@ unrenote: "Remove boost"
|
|||
renoted: "Boosted."
|
||||
quoted: "Quoted."
|
||||
rmboost: "Unboosted."
|
||||
renotedToX: "Boosted to {name}"
|
||||
cantRenote: "This post can't be boosted."
|
||||
cantReRenote: "A boost can't be boosted."
|
||||
quote: "Quote"
|
||||
inChannelRenote: "Channel-only Boost"
|
||||
inChannelQuote: "Channel-only Quote"
|
||||
renoteToChannel: "Renote to channel"
|
||||
renoteToOtherChannel: "Renote to other channel"
|
||||
pinnedNote: "Pinned note"
|
||||
pinned: "Pin to profile"
|
||||
you: "You"
|
||||
|
@ -323,6 +326,7 @@ selectFile: "Select a file"
|
|||
selectFiles: "Select files"
|
||||
selectFolder: "Select a folder"
|
||||
selectFolders: "Select folders"
|
||||
fileNotSelected: "No file selected"
|
||||
renameFile: "Rename file"
|
||||
folderName: "Folder name"
|
||||
createFolder: "Create a folder"
|
||||
|
@ -411,11 +415,12 @@ name: "Name"
|
|||
antennaSource: "Antenna source"
|
||||
antennaKeywords: "Keywords to listen to"
|
||||
antennaExcludeKeywords: "Keywords to exclude"
|
||||
antennaExcludeBots: "Exclude bot accounts"
|
||||
antennaKeywordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition."
|
||||
notifyAntenna: "Notify about new notes"
|
||||
withFileAntenna: "Only notes with files"
|
||||
enableServiceworker: "Enable Push-Notifications for your Browser"
|
||||
antennaUsersDescription: "List one username per line"
|
||||
antennaUsersDescription: "List one username per line. Use \"*@instance.com\" to specify all users of an instance"
|
||||
caseSensitive: "Case sensitive"
|
||||
withReplies: "Include replies"
|
||||
connectedTo: "Following account(s) are connected"
|
||||
|
@ -480,6 +485,7 @@ expandAllCws: "Show content for all replies"
|
|||
collapseAllCws: "Hide content for all replies"
|
||||
quoteAttached: "Quote"
|
||||
quoteQuestion: "Append as quote?"
|
||||
attachAsFileQuestion: "The text in clipboard is long. Would you like to attach it as a text file?"
|
||||
noMessagesYet: "No messages yet"
|
||||
newMessageExists: "There are new messages"
|
||||
onlyOneFileCanBeAttached: "You can only attach one file to a message"
|
||||
|
@ -507,6 +513,7 @@ emojiStyle: "Emoji style"
|
|||
native: "Native"
|
||||
disableDrawer: "Don't use drawer-style menus"
|
||||
showNoteActionsOnlyHover: "Only show note actions on hover"
|
||||
showReactionsCount: "Show the number of reactions in notes"
|
||||
noHistory: "No history available"
|
||||
signinHistory: "Login history"
|
||||
enableAdvancedMfm: "Enable advanced MFM"
|
||||
|
@ -688,6 +695,11 @@ channel: "Channels"
|
|||
create: "Create"
|
||||
notificationSetting: "Notification settings"
|
||||
notificationSettingDesc: "Select the types of notification to display."
|
||||
enableFaviconNotificationDot: "Enable favicon notification dot"
|
||||
verifyNotificationDotWorkingButton: "Check if the notification dot works on your instance"
|
||||
notificationDotNotWorking: "Unfortunately, this instance does not support the notification dot feature at this time."
|
||||
notificationDotWorking: "The notification dot is functioning properly on this instance."
|
||||
notificationDotNotWorkingAdvice: "If the notification dot doesn't work, ask an admin to check our documentation {link}"
|
||||
useGlobalSetting: "Use global settings"
|
||||
useGlobalSettingDesc: "If turned on, your account's notification settings will be used. If turned off, individual configurations can be made."
|
||||
other: "Other"
|
||||
|
@ -752,6 +764,10 @@ noCrawleDescription: "Ask search engines to not index your profile page, notes,
|
|||
lockedAccountInfo: "Unless you set your note visiblity to \"Followers only\", your notes will be visible to anyone, even if you require followers to be manually approved."
|
||||
alwaysMarkSensitive: "Mark as sensitive by default"
|
||||
loadRawImages: "Load original images instead of showing thumbnails"
|
||||
searchEngine: "Search Engine For Search MFM"
|
||||
searchEngineOther: "Other"
|
||||
searchEngineCustomURIDescription: "The custom URI must be input in the format like \"https://www.google.com/search?q=\\{query}\" or \"https://www.google.com/search?q=%s\"."
|
||||
searchEngineCusomURI: "Custom URI"
|
||||
disableShowingAnimatedImages: "Don't play animated images"
|
||||
highlightSensitiveMedia: "Highlight sensitive media"
|
||||
verificationEmailSent: "A verification email has been sent. Please follow the included link to complete verification."
|
||||
|
@ -849,6 +865,7 @@ administration: "Management"
|
|||
accounts: "Accounts"
|
||||
switch: "Switch"
|
||||
noMaintainerInformationWarning: "Maintainer information is not configured."
|
||||
noInquiryUrlWarning: "Contact URL is not set."
|
||||
noBotProtectionWarning: "Bot protection is not configured."
|
||||
configure: "Configure"
|
||||
postToGallery: "Create new gallery post"
|
||||
|
@ -1057,6 +1074,8 @@ thisPostIsMissingAltTextCancel: "Cancel"
|
|||
thisPostIsMissingAltTextIgnore: "Post anyway"
|
||||
thisPostIsMissingAltText: "One of the files attached to this post is missing alt text. Please ensure all the attachments have alt text."
|
||||
collapseRenotes: "Collapse boosts you've already seen"
|
||||
collapseRenotesDescription: "Collapse boosts that you have boosted or reacted to"
|
||||
collapseNotesRepliedTo: "Collapse notes replied to"
|
||||
collapseFiles: "Collapse files"
|
||||
autoloadConversation: "Load conversation on replies"
|
||||
internalServerError: "Internal Server Error"
|
||||
|
@ -1274,6 +1293,25 @@ noLanguage: "No language"
|
|||
loading: "Loading"
|
||||
surrender: "Cancel"
|
||||
gameRetry: "Retry"
|
||||
notUsePleaseLeaveBlank: "Leave blank if not used"
|
||||
useTotp: "Enter the One-Time Password"
|
||||
useBackupCode: "Use the backup codes"
|
||||
launchApp: "Launch the app"
|
||||
useNativeUIForVideoAudioPlayer: "Use UI of browser when play video and audio"
|
||||
keepOriginalFilename: "Keep original file name"
|
||||
keepOriginalFilenameDescription: "If you turn off this setting, files names will be replaced with random string automatically when you upload files."
|
||||
noDescription: "No description"
|
||||
alwaysConfirmFollow: "Always confirm when following"
|
||||
inquiry: "Contact"
|
||||
_delivery:
|
||||
status: "Delivery status"
|
||||
stop: "Suspended"
|
||||
resume: "Delivery resume"
|
||||
_type:
|
||||
none: "Publishing"
|
||||
manuallySuspended: "Manually suspended"
|
||||
goneSuspended: "Server is suspended due to server deletion"
|
||||
autoSuspendedForNotResponding: "Server is suspended due to no responding"
|
||||
_bubbleGame:
|
||||
howToPlay: "How to play"
|
||||
hold: "Hold"
|
||||
|
@ -1399,6 +1437,8 @@ _serverSettings:
|
|||
fanoutTimelineDescription: "Greatly increases performance of timeline retrieval and reduces load on the database when enabled. In exchange, memory usage of Redis will increase. Consider disabling this in case of low server memory or server instability."
|
||||
fanoutTimelineDbFallback: "Fallback to database"
|
||||
fanoutTimelineDbFallbackDescription: "When enabled, the timeline will fall back to the database for additional queries if the timeline is not cached. Disabling it further reduces the server load by eliminating the fallback process, but limits the range of timelines that can be retrieved."
|
||||
inquiryUrl: "Contact URL"
|
||||
inquiryUrlDescription: "Specify the URL of a web page that contains a contact form or the instance operators' contact information."
|
||||
_accountMigration:
|
||||
moveFrom: "Migrate another account to this one"
|
||||
moveFromSub: "Create alias to another account"
|
||||
|
@ -1735,6 +1775,11 @@ _role:
|
|||
roleAssignedTo: "Assigned to manual roles"
|
||||
isLocal: "Local user"
|
||||
isRemote: "Remote user"
|
||||
isCat: "Cat Users"
|
||||
isBot: "Bot Users"
|
||||
isSuspended: "Suspended user"
|
||||
isLocked: "Private account"
|
||||
isExplorable: "Account is discoverable"
|
||||
createdLessThan: "Less than X has passed since account creation"
|
||||
createdMoreThan: "More than X has passed since account creation"
|
||||
followersLessThanOrEq: "Has X or fewer followers"
|
||||
|
@ -1806,6 +1851,7 @@ _plugin:
|
|||
installWarn: "Please do not install untrustworthy plugins."
|
||||
manage: "Manage plugins"
|
||||
viewSource: "View source"
|
||||
viewLog: "Show log"
|
||||
_preferencesBackups:
|
||||
list: "Created backups"
|
||||
saveNew: "Save new backup"
|
||||
|
@ -1831,7 +1877,7 @@ _registry:
|
|||
domain: "Domain"
|
||||
createKey: "Create key"
|
||||
_aboutMisskey:
|
||||
about: "Sharkey is open-source software based on Misskey which has been in developed since 2014 by syuilo."
|
||||
about: "Sharkey is open-source software based on Misskey which has been in development by syuilo since 2014."
|
||||
contributors: "Main contributors"
|
||||
allContributors: "All contributors"
|
||||
source: "Source code"
|
||||
|
@ -1844,6 +1890,7 @@ _aboutMisskey:
|
|||
morePatrons: "We also appreciate the support of many other helpers not listed here. Thank you! ๐ฅฐ"
|
||||
patrons: "Patrons"
|
||||
projectMembers: "Project members"
|
||||
testers: "Testers"
|
||||
_displayOfSensitiveMedia:
|
||||
respect: "Hide media marked as sensitive"
|
||||
ignore: "Display media marked as sensitive"
|
||||
|
@ -1998,7 +2045,6 @@ _2fa:
|
|||
registerTOTP: "Register authenticator app"
|
||||
step1: "First, install an authentication app (such as {a} or {b}) on your device."
|
||||
step2: "Then, scan the QR code displayed on this screen."
|
||||
step2Click: "Clicking on this QR code will allow you to register 2FA to your security key or phone authenticator app."
|
||||
step2Uri: "Enter the following URI if you are using a desktop program"
|
||||
step3Title: "Enter an authentication code"
|
||||
step3: "Enter the authentication code (token) provided by your app to finish setup."
|
||||
|
@ -2022,6 +2068,7 @@ _2fa:
|
|||
backupCodesDescription: "You can use these codes to gain access to your account in case of becoming unable to use your two-factor authentificator app. Each can only be used once. Please keep them in a safe place."
|
||||
backupCodeUsedWarning: "A backup code has been used. Please reconfigure two-factor authentification as soon as possible if you are no longer able to use it."
|
||||
backupCodesExhaustedWarning: "All backup codes have been used. Should you lose access to your two-factor authentification app, you will be unable to access this account. Please reconfigure two-factor authentification."
|
||||
moreDetailedGuideHere: "Click here for a detailed guide"
|
||||
_permissions:
|
||||
"read:account": "View your account information"
|
||||
"write:account": "Edit your account information"
|
||||
|
@ -2072,7 +2119,6 @@ _permissions:
|
|||
"read:admin:server-info": "View server info"
|
||||
"read:admin:show-moderation-log": "View moderation log"
|
||||
"read:admin:show-user": "View private user info"
|
||||
"read:admin:show-users": "View private user info"
|
||||
"write:admin:suspend-user": "Suspend user"
|
||||
"write:admin:unset-user-avatar": "Remove user avatar"
|
||||
"write:admin:unset-user-banner": "Remove user banner"
|
||||
|
@ -2290,6 +2336,7 @@ _play:
|
|||
title: "Title"
|
||||
script: "Script"
|
||||
summary: "Description"
|
||||
visibilityDescription: "Putting it private means it won't be visible on your profile, but anyone that has the URL can still access it."
|
||||
_pages:
|
||||
newPage: "Create a new Page"
|
||||
editPage: "Edit this Page"
|
||||
|
@ -2334,6 +2381,8 @@ _pages:
|
|||
section: "Section"
|
||||
image: "Images"
|
||||
button: "Button"
|
||||
dynamic: "Dynamic Blocks"
|
||||
dynamicDescription: "This block type has been removed. Please use {play} from now on."
|
||||
note: "Embedded note"
|
||||
_note:
|
||||
id: "Note ID"
|
||||
|
@ -2363,6 +2412,7 @@ _notification:
|
|||
sendTestNotification: "Send test notification"
|
||||
notificationWillBeDisplayedLikeThis: "Notifications look like this"
|
||||
reactedBySomeUsers: "{n} users reacted"
|
||||
likedBySomeUsers: "{n} users liked your note"
|
||||
renotedBySomeUsers: "Boosted by {n} users"
|
||||
followedBySomeUsers: "Followed by {n} users"
|
||||
flushNotification: "Clear notifications"
|
||||
|
@ -2390,6 +2440,7 @@ _deck:
|
|||
alwaysShowMainColumn: "Always show main column"
|
||||
columnAlign: "Align columns"
|
||||
addColumn: "Add column"
|
||||
newNoteNotificationSettings: "New note notification"
|
||||
configureColumn: "Column settings"
|
||||
swapLeft: "Swap with the left column"
|
||||
swapRight: "Swap with the right column"
|
||||
|
@ -2479,6 +2530,7 @@ _moderationLogTypes:
|
|||
unsetUserAvatar: "Unset this user's avatar"
|
||||
unsetUserBanner: "Unset this user's banner"
|
||||
_mfm:
|
||||
uncommonFeature: "This is not a widespread feature, it may not display properly on most other fedi software, including other Misskey forks"
|
||||
intro: "MFM is a markup language used on Misskey, Sharkey, Firefish, Akkoma, and more that can be used in many places. Here you can view a list of all available MFM syntax."
|
||||
dummy: "Sharkey expands the world of the Fediverse"
|
||||
mention: "Mention"
|
||||
|
@ -2543,10 +2595,16 @@ _mfm:
|
|||
rotateDescription: "Turns content by a specified angle."
|
||||
position: "Position"
|
||||
positionDescription: "Move content by a specified amount."
|
||||
crop: "Crop"
|
||||
cropDescription: "Crop content."
|
||||
followMouse: "Follow Mouse"
|
||||
followMouseDescription: "Content will follow the mouse. On mobile it will follow wherever the user taps."
|
||||
scale: "Scale"
|
||||
scaleDescription: "Scale content by a specified amount."
|
||||
foreground: "Foreground color"
|
||||
foregroundDescription: "Change the foreground color of text."
|
||||
fade: 'Fade'
|
||||
fadeDescription: 'Fade text in and out.'
|
||||
background: "Background color"
|
||||
backgroundDescription: "Change the background color of text."
|
||||
plain: "Plain"
|
||||
|
@ -2678,3 +2736,21 @@ _reversi:
|
|||
_offlineScreen:
|
||||
title: "Offline - cannot connect to the server"
|
||||
header: "Unable to connect to the server"
|
||||
_urlPreviewSetting:
|
||||
title: "URL preview settings"
|
||||
enable: "Enable URL preview"
|
||||
timeout: "Time out when getting preview (ms)"
|
||||
timeoutDescription: "If it takes longer than this value to get the preview, the preview won't be generated."
|
||||
maximumContentLength: "Maximum Content-Length (bytes)"
|
||||
maximumContentLengthDescription: "If Content-Length is higher than this value, the preview won't be generated."
|
||||
requireContentLength: "Generate the preview only if we can get Content-Length"
|
||||
requireContentLengthDescription: "If other server doesn't return Content-Length, the preview won't be generated."
|
||||
userAgent: "User-Agent"
|
||||
userAgentDescription: "Sets the User-Agent to be used when retrieving previews. If left blank, the default User-Agent will be used."
|
||||
summaryProxy: "Endpoint for proxy to generate previews"
|
||||
summaryProxyDescription: "Generate previews using Summaly Proxy, instead of Sharkey itself."
|
||||
summaryProxyDescription2: "The following parameters are sent to the proxy as a query string. If the proxy does not support them, the values are ignored."
|
||||
_mediaControls:
|
||||
pip: "Picture in Picture"
|
||||
playbackRate: "Playback Speed"
|
||||
loop: "Loop playback"
|
||||
|
|
|
@ -235,7 +235,7 @@ done: "Terminado"
|
|||
processing: "Procesando"
|
||||
preview: "Vista previa"
|
||||
default: "Predeterminado"
|
||||
defaultValueIs: "Predeterminado"
|
||||