Compare commits

..

2 Commits

Author SHA1 Message Date
rinsuki
a5a74f4434 12.119.2 2022-12-04 00:31:01 +09:00
mei23
993110d114 Fix: forkbomb 2 2022-12-04 00:29:42 +09:00
2914 changed files with 127667 additions and 202355 deletions

View File

@@ -1,180 +0,0 @@
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Misskey configuration
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ┌─────┐
#───┘ URL └─────────────────────────────────────────────────────
# Final accessible URL seen by a user.
url: https://example.tld/
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# URL SETTINGS AFTER THAT!
# ┌───────────────────────┐
#───┘ Port and TLS settings └───────────────────────────────────
#
# Misskey requires a reverse proxy to support HTTPS connections.
#
# +----- https://example.tld/ ------------+
# +------+ |+-------------+ +----------------+|
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
# +------+ |+-------------+ +----------------+|
# +---------------------------------------+
#
# You need to set up a reverse proxy. (e.g. nginx)
# An encrypted connection with HTTPS is highly recommended
# because tokens may be transferred in GET requests.
# The port that your Misskey server should listen on.
port: 3000
# ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────
db:
host: db
port: 5432
# Database name
db: misskey
# Auth
user: example-misskey-user
pass: example-misskey-pass
# Whether disable Caching queries
#disableCache: true
# Extra Connection options
#extra:
# ssl: true
dbReplications: false
# You can configure any number of replicas here
#dbSlaves:
# -
# host:
# port:
# db:
# user:
# pass:
# -
# host:
# port:
# db:
# user:
# pass:
# ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────
redis:
host: redis
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
#redisForPubsub:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
#redisForJobQueue:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
#meilisearch:
# host: meilisearch
# port: 7700
# apiKey: ''
# ssl: true
# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
# You can select the ID generation method.
# You don't usually need to change this setting, but you can
# change it according to your preferences.
# Available methods:
# aid ... Short, Millisecond accuracy
# aidx ... Millisecond accuracy
# meid ... Similar to ObjectID, Millisecond accuracy
# ulid ... Millisecond accuracy
# objectid ... This is left for backward compatibility
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# ID SETTINGS AFTER THAT!
id: 'aidx'
# ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────
# Whether disable HSTS
#disableHsts: true
# Number of worker processes
#clusterLimit: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
# Job rate limiter
# deliverJobPerSec: 128
# inboxJobPerSec: 16
# Job attempts
# deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4
# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128
proxyBypassHosts:
- api.deepl.com
- api-free.deepl.com
- www.recaptcha.net
- hcaptcha.com
- challenges.cloudflare.com
# Proxy for SMTP/SMTPS
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
#allowedPrivateNetworks: [
# '127.0.0.1/32'
#]
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@@ -30,10 +30,6 @@ url: https://example.tld/
# The port that your Misskey server should listen on.
port: 3000
# You can also use UNIX domain socket.
# socket: /path/to/misskey.sock
# chmodSocket: '777'
# ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────
@@ -55,23 +51,6 @@ db:
#extra:
# ssl: true
dbReplications: false
# You can configure any number of replicas here
#dbSlaves:
# -
# host:
# port:
# db:
# user:
# pass:
# -
# host:
# port:
# db:
# user:
# pass:
# ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────
@@ -82,39 +61,16 @@ redis:
#pass: example-pass
#prefix: example-prefix
#db: 1
# You can specify more ioredis options...
#username: example-username
#redisForPubsub:
# ┌─────────────────────────────┐
#───┘ Elasticsearch configuration └─────────────────────────────
#elasticsearch:
# host: localhost
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# # You can specify more ioredis options...
# #username: example-username
#redisForJobQueue:
# host: localhost
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# # You can specify more ioredis options...
# #username: example-username
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
#meilisearch:
# host: localhost
# port: 7700
# apiKey: ''
# ssl: true
# index: ''
# scope: local
# port: 9200
# ssl: false
# user:
# pass:
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
@@ -125,7 +81,6 @@ redis:
# Available methods:
# aid ... Short, Millisecond accuracy
# aidx ... Millisecond accuracy
# meid ... Similar to ObjectID, Millisecond accuracy
# ulid ... Millisecond accuracy
# objectid ... This is left for backward compatibility
@@ -133,7 +88,7 @@ redis:
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# ID SETTINGS AFTER THAT!
id: 'aidx'
id: 'aid'
# ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────
@@ -145,36 +100,32 @@ id: 'aidx'
#clusterLimit: 1
# Job concurrency per worker
#deliverJobConcurrency: 128
#inboxJobConcurrency: 16
#relashionshipJobConcurrency: 16
# What's relashionshipJob?:
# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations.
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
# Job rate limiter
#deliverJobPerSec: 128
#inboxJobPerSec: 16
#relashionshipJobPerSec: 64
# deliverJobPerSec: 128
# inboxJobPerSec: 16
# Job attempts
#deliverJobMaxAttempts: 12
#inboxJobMaxAttempts: 8
# Local address used for outgoing requests
#outgoingAddress: 127.0.0.1
# deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4
# Syslog option
#syslog:
# host: localhost
# port: 514
# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128
proxyBypassHosts:
- api.deepl.com
- api-free.deepl.com
- www.recaptcha.net
- hcaptcha.com
- challenges.cloudflare.com
#proxyBypassHosts: [
# 'example.com',
# '192.0.2.8'
#]
# Proxy for SMTP/SMTPS
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
@@ -182,23 +133,13 @@ proxyBypassHosts:
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
# Media Proxy
# Reference Implementation: https://github.com/misskey-dev/media-proxy
# * Deliver a common cache between instances
# * Perform image compression (on a different server resource than the main process)
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
# Proxy remote files by this instance or mediaProxy to prevent remote files from running in remote domains.
proxyRemoteFiles: true
# Proxy remote files (default: false)
#proxyRemoteFiles: true
# Movie Thumbnail Generation URL
# There is no reference implementation.
# For example, Misskey will point to the following URL:
# https://example.com/thumbnail.webp?thumbnail=1&url=https%3A%2F%2Fstorage.example.com%2Fpath%2Fto%2Fvideo.mp4
#videoThumbnailGenerator: https://example.com
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
# Sign to ActivityPub GET request (default: false)
#signToActivityPubGet: true
#allowedPrivateNetworks: [
# '127.0.0.1/32'

View File

@@ -1 +0,0 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18

View File

@@ -1,27 +0,0 @@
{
"name": "Misskey",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"features": {
"ghcr.io/devcontainers-contrib/features/pnpm:2": {},
"ghcr.io/devcontainers/features/node:1": {
"version": "20.5.1"
}
},
"forwardPorts": [3000],
"postCreateCommand": "sudo chmod 755 .devcontainer/init.sh && .devcontainer/init.sh",
"customizations": {
"vscode": {
"extensions": [
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"Orta.vscode-jest",
"dbaeumer.vscode-eslint",
"mrmlnc.vscode-json5"
]
}
}
}

View File

@@ -1,180 +0,0 @@
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Misskey configuration
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ┌─────┐
#───┘ URL └─────────────────────────────────────────────────────
# Final accessible URL seen by a user.
url: http://127.0.0.1:3000/
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# URL SETTINGS AFTER THAT!
# ┌───────────────────────┐
#───┘ Port and TLS settings └───────────────────────────────────
#
# Misskey requires a reverse proxy to support HTTPS connections.
#
# +----- https://example.tld/ ------------+
# +------+ |+-------------+ +----------------+|
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
# +------+ |+-------------+ +----------------+|
# +---------------------------------------+
#
# You need to set up a reverse proxy. (e.g. nginx)
# An encrypted connection with HTTPS is highly recommended
# because tokens may be transferred in GET requests.
# The port that your Misskey server should listen on.
port: 3000
# ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────
db:
host: db
port: 5432
# Database name
db: misskey
# Auth
user: postgres
pass: postgres
# Whether disable Caching queries
#disableCache: true
# Extra Connection options
#extra:
# ssl: true
dbReplications: false
# You can configure any number of replicas here
#dbSlaves:
# -
# host:
# port:
# db:
# user:
# pass:
# -
# host:
# port:
# db:
# user:
# pass:
# ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────
redis:
host: redis
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
#redisForPubsub:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
#redisForJobQueue:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
#meilisearch:
# host: meilisearch
# port: 7700
# apiKey: ''
# ssl: true
# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
# You can select the ID generation method.
# You don't usually need to change this setting, but you can
# change it according to your preferences.
# Available methods:
# aid ... Short, Millisecond accuracy
# aidx ... Millisecond accuracy
# meid ... Similar to ObjectID, Millisecond accuracy
# ulid ... Millisecond accuracy
# objectid ... This is left for backward compatibility
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# ID SETTINGS AFTER THAT!
id: 'aidx'
# ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────
# Whether disable HSTS
#disableHsts: true
# Number of worker processes
#clusterLimit: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
# Job rate limiter
# deliverJobPerSec: 128
# inboxJobPerSec: 16
# Job attempts
# deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4
# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128
proxyBypassHosts:
- api.deepl.com
- api-free.deepl.com
- www.recaptcha.net
- hcaptcha.com
- challenges.cloudflare.com
# Proxy for SMTP/SMTPS
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
allowedPrivateNetworks: [
'127.0.0.1/32'
]
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@@ -1,53 +0,0 @@
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ../:/workspace:cached
command: sleep infinity
networks:
- internal_network
- external_network
redis:
restart: unless-stopped
image: redis:7-alpine
networks:
- internal_network
volumes:
- redis-data:/data
healthcheck:
test: "redis-cli ping"
interval: 5s
retries: 20
db:
restart: unless-stopped
image: postgres:15-alpine
networks:
- internal_network
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: misskey
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s
retries: 20
volumes:
postgres-data:
redis-data:
networks:
internal_network:
internal: true
external_network:

View File

@@ -1,11 +0,0 @@
#!/bin/bash
set -xe
sudo chown -R node /workspace
git submodule update --init
pnpm config set store-dir /home/node/.local/share/pnpm/store
pnpm install --frozen-lockfile
cp .devcontainer/devcontainer.yml .config/default.yml
pnpm build
pnpm migrate

View File

@@ -8,24 +8,8 @@ build/
built/
db/
docker-compose.yml
elasticsearch/
node_modules/
packages/*/node_modules
redis/
files/
misskey-assets/
fluent-emojis/
.pnp.*
# .yarn関連
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnpm-store
.idea/
packages/*/.vscode/
packages/backend/test/docker-compose.yml

View File

@@ -1,3 +0,0 @@
DKL-DI-0005
DKL-DI-0006
DKL-LI-0003

View File

@@ -5,11 +5,6 @@ indent_style = tab
indent_size = 2
charset = utf-8
insert_final_newline = true
end_of_line = lf
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
[*.yml]
indent_style = space

1
.gitattributes vendored
View File

@@ -5,4 +5,3 @@
*.glb -diff -text
*.blend -diff -text
*.afdesign -diff -text
* text=auto eol=lf

View File

@@ -10,7 +10,6 @@ assignees: ''
<!--
Thanks for reporting!
First, in order to avoid duplicate Issues, please search to see if the problem you found has already been reported.
Also, If you are NOT owner/admin of server, PLEASE DONT REPORT SERVER SPECIFIC ISSUES TO HERE! (e.g. feature XXX is not working in misskey.example) Please try with another misskey servers, and if your issue is only reproducible with specific server, contact your server's owner/admin first.
-->
## 💡 Summary
@@ -37,24 +36,7 @@ Please include errors from the developer console and/or server log files if you
## 📌 Environment
<!-- Tell us where on the platform it happens -->
<!-- DO NOT WRITE "latest". Please provide the specific version. -->
### 💻 Frontend
* Model and OS of the device(s):
<!-- Example: MacBook Pro (14inch, 2021), macOS Ventura 13.4 -->
* Browser:
<!-- Example: Chrome 113.0.5672.126 -->
* Server URL:
<!-- Example: misskey.io -->
* Misskey:
13.x.x
### 🛰 Backend (for server admin)
<!-- If you are using a managed service, put that after the version. -->
* Installation Method or Hosting Service: <!-- Example: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment -->
* Misskey: 13.x.x
* Node: 20.x.x
* PostgreSQL: 15.x.x
* Redis: 7.x.x
* OS and Architecture: <!-- Example: Ubuntu 22.04.2 LTS aarch64 -->
Misskey version:
Your OS:
Your browser:

View File

@@ -1,4 +1,7 @@
contact_links:
- name: 👪 Misskey Forum
url: https://forum.misskey.io/
about: Ask questions and share knowledge
- name: 💬 Misskey official Discord
url: https://discord.gg/Wp8gVStHW3
about: Chat freely about Misskey

17
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,17 @@
<!-- お読みください / README
PRありがとうございます PRを作成する前に、コントリビューションガイドをご確認ください:
Thank you for your PR! Before creating a PR, please check the contribution guide:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
-->
# What
<!-- このPRで何をしたのか どう変わるのか? -->
<!-- What did you do with this PR? How will it change things? -->
# Why
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
<!-- Why do you do it? What are your intentions? What is the problem? -->
# Additional info (optional)
<!-- テスト観点など -->
<!-- Test perspective, etc -->

View File

@@ -1,23 +0,0 @@
<!-- お読みください / README
PRありがとうございます PRを作成する前に、コントリビューションガイドをご確認ください:
Thank you for your PR! Before creating a PR, please check the contribution guide:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
-->
## What
<!-- このPRで何をしたのか どう変わるのか? -->
<!-- What did you do with this PR? How will it change things? -->
## Why
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
<!-- Why do you do it? What are your intentions? What is the problem? -->
## Additional info (optional)
<!-- テスト観点など -->
<!-- Test perspective, etc -->
## Checklist
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
- [ ] Test working in a local environment
- [ ] (If needed) Update CHANGELOG.md
- [ ] (If possible) Add tests

View File

@@ -1,23 +0,0 @@
<!-- お読みください / README
PRありがとうございます PRを作成する前に、コントリビューションガイドをご確認ください:
Thank you for your PR! Before creating a PR, please check the contribution guide:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
-->
## What
<!-- このPRで何をしたのか どう変わるのか? -->
<!-- What did you do with this PR? How will it change things? -->
## Why
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
<!-- Why do you do it? What are your intentions? What is the problem? -->
## Additional info (optional)
<!-- テスト観点など -->
<!-- Test perspective, etc -->
## Checklist
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
- [ ] Test working in a local environment
- [ ] (If needed) Update CHANGELOG.md
- [ ] (If possible) Add tests

View File

@@ -1,20 +0,0 @@
## Summary
This is a release PR.
For more information on the release instructions, please see:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md#release
## For reviewers
- CHANGELOGに抜け漏れは無いか
- バージョンの上げ方は適切か
- 他にこのリリースに含めなければならない変更は無いか
- 全体的な変更内容を俯瞰し問題は無いか
- レビューされていないコミットがある場合は、それが問題ないか
- 最終的な動作確認を行い問題は無いか
などを確認し、リリースする準備が整っていると思われる場合は approve してください。
## Checklist
- [ ] package.jsonのバージョンが正しく更新されている
- [ ] CHANGELOGが過不足無く更新されている
- [ ] CIが全て通っている

View File

@@ -5,28 +5,18 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 100
# Add only the root, not each workspace item
# https://github.com/dependabot/dependabot-core/issues/4993#issuecomment-1289133027
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# PNPM has an issue with dependabot. See:
# https://github.com/dependabot/dependabot-core/issues/7258
# https://github.com/pnpm/pnpm/issues/6530
# TODO: Restore this when the issue is solved
open-pull-requests-limit: 0
groups:
swc:
patterns:
- "@swc/*"
storybook:
patterns:
- "storybook*"
- "@storybook/*"
- package-ecosystem: npm
directory: "/packages/backend"
schedule:
interval: daily
open-pull-requests-limit: 0
- package-ecosystem: npm
directory: "/packages/client"
schedule:
interval: daily
open-pull-requests-limit: 0

25
.github/labeler.yml vendored
View File

@@ -1,21 +1,12 @@
'packages/backend':
'Server':
- packages/backend/**/*
'packages/backend:test':
'🖥Client':
- packages/client/**/*
'🧪Test':
- cypress/**/*
- packages/backend/test/**/*
'packages/frontend':
- packages/frontend/**/*
'packages/frontend:test':
- cypress/**/*
'packages/sw':
- packages/sw/**/*
'packages/misskey-js':
- packages/misskey-js/**/*
'packages/misskey-js:test':
- packages/misskey-js/test/**/*
- packages/misskey-js/test-d/**/*
'‼️ wrong locales':
- any: ['locales/*.yml', '!locales/ja-JP.yml']

View File

@@ -4,12 +4,12 @@ url: 'http://misskey.local'
port: 61812
db:
host: 127.0.0.1
host: localhost
port: 54312
db: test-misskey
user: postgres
pass: ''
redis:
host: 127.0.0.1
host: localhost
port: 56312
id: aidx
id: aid

View File

@@ -1,24 +0,0 @@
<!-- お読みください / README
PRありがとうございます PRを作成する前に、コントリビューションガイドをご確認ください:
Thank you for your PR! Before creating a PR, please check the contribution guide:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
-->
## What
<!-- このPRで何をしたのか どう変わるのか? -->
<!-- What did you do with this PR? How will it change things? -->
## Why
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
<!-- Why do you do it? What are your intentions? What is the problem? -->
## Additional info (optional)
<!-- テスト観点など -->
<!-- Test perspective, etc -->
## Checklist
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
- [ ] Test working in a local environment
- [ ] (If needed) Add story of storybook
- [ ] (If needed) Update CHANGELOG.md
- [ ] (If possible) Add tests

View File

@@ -1,36 +0,0 @@
name: API report (misskey.js)
on: [push, pull_request]
jobs:
report:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.0.0
- run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v3.8.1
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
run: pnpm i --frozen-lockfile
- name: Build
run: pnpm --filter misskey-js build
- name: Check files
run: ls packages/misskey-js/built
- name: API report
run: pnpm --filter misskey-js api-prod
- name: Show report
if: always()
run: cat packages/misskey-js/temp/misskey-js.api.md

View File

@@ -1,18 +0,0 @@
name: Check copyright year
on:
push:
branches:
- master
- develop
jobs:
check_copyright_year:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.0.0
- run: |
if [ "$(grep Copyright COPYING | sed -e 's/.*2014-\([0-9]*\) .*/\1/g')" -ne "$(date +%Y)" ]; then
echo "Please change copyright year!"
exit 1
fi

View File

@@ -10,34 +10,24 @@ jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
if: github.repository == 'misskey-dev/misskey'
steps:
- name: Check out the repo
uses: actions/checkout@v4.0.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.0.0
with:
platforms: linux/amd64,linux/arm64
uses: actions/checkout@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v3
with:
images: misskey/misskey
- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v5
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
push: true
platforms: ${{ steps.buildx.outputs.platforms }}
provenance: false
tags: misskey/misskey:develop
labels: develop
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -12,38 +12,21 @@ jobs:
steps:
- name: Check out the repo
uses: actions/checkout@v4.0.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.0.0
with:
platforms: linux/amd64,linux/arm64
uses: actions/checkout@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v3
with:
images: misskey/misskey
tags: |
type=edge
type=ref,event=pr
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v5
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
push: true
platforms: ${{ steps.buildx.outputs.platforms }}
provenance: false
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -1,30 +0,0 @@
---
name: Dockle
on:
push:
branches:
- master
- develop
pull_request:
jobs:
dockle:
runs-on: ubuntu-latest
env:
DOCKER_CONTENT_TRUST: 1
steps:
- uses: actions/checkout@v4.0.0
- run: |
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v0.4.10/dockle_0.4.10_Linux-64bit.deb"
sudo dpkg -i dockle.deb
- run: |
cp .config/docker_example.env .config/docker.env
cp ./docker-compose.yml.example ./docker-compose.yml
- run: |
docker compose up -d web
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
- run: |
cmd="dockle --exit-code 1 misskey-web:latest ${image_name}"
echo "> ${cmd}"
eval "${cmd}"

View File

@@ -8,74 +8,32 @@ on:
pull_request:
jobs:
pnpm_install:
backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.0.0
- uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
version: 8
run_install: false
- uses: actions/setup-node@v3.8.1
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
node-version: 18.x
cache: 'yarn'
cache-dependency-path: |
packages/backend/yarn.lock
- run: yarn install
- run: yarn --cwd ./packages/backend lint
lint:
needs: [pnpm_install]
client:
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
workspace:
- backend
- frontend
- sw
- misskey-js
steps:
- uses: actions/checkout@v4.0.0
- uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
version: 7
run_install: false
- uses: actions/setup-node@v3.8.1
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: ubuntu-latest
continue-on-error: true
strategy:
matrix:
workspace:
- backend
- misskey-js
steps:
- uses: actions/checkout@v4.0.0
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
with:
version: 7
run_install: false
- uses: actions/setup-node@v3.8.1
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
node-version: 18.x
cache: 'yarn'
cache-dependency-path: |
packages/client/yarn.lock
- run: yarn install
- run: yarn --cwd ./packages/client lint

View File

@@ -17,13 +17,13 @@ jobs:
# See app.yml for an example app manifest
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@v2
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.DEPLOYBOT_APP_ID }}
private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }}
- name: Slash Command Dispatch
uses: peter-evans/slash-command-dispatch@v3
uses: peter-evans/slash-command-dispatch@v1
env:
TOKEN: ${{ steps.generate_token.outputs.token }}
with:

View File

@@ -1,5 +1,7 @@
# Run secret-dependent integration tests only after /deploy approval
on:
pull_request:
types: [opened, reopened, synchronize]
repository_dispatch:
types: [deploy-command]
@@ -10,10 +12,11 @@ jobs:
deploy-preview-environment:
runs-on: ubuntu-latest
if:
github.event_name == 'repository_dispatch' &&
github.event.client_payload.slash_command.sha != '' &&
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
steps:
- uses: actions/github-script@v6.3.3
- uses: actions/github-script@v5
id: check-id
env:
number: ${{ github.event.client_payload.pull_request.number }}
@@ -37,7 +40,7 @@ jobs:
return check[0].id;
- uses: actions/github-script@v6.3.3
- uses: actions/github-script@v5
env:
check_id: ${{ steps.check-id.outputs.result }}
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
@@ -53,7 +56,7 @@ jobs:
# Check out merge commit
- name: Fork based /deploy checkout
uses: actions/checkout@v4.0.0
uses: actions/checkout@v2
with:
ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge'
@@ -72,7 +75,7 @@ jobs:
timeout: 15m
# Update check run called "integration-fork"
- uses: actions/github-script@v6.3.3
- uses: actions/github-script@v5
id: update-check-run
if: ${{ always() }}
env:

View File

@@ -10,45 +10,12 @@ jobs:
destroy-preview-environment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6.3.3
id: check-conclusion
env:
number: ${{ github.event.number }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
result-encoding: string
script: |
const { data: pull } = await github.rest.pulls.get({
...context.repo,
pull_number: process.env.number
});
const ref = pull.head.sha;
const { data: checks } = await github.rest.checks.listForRef({
...context.repo,
ref
});
const check = checks.check_runs.filter(c => c.name === 'deploy-preview-environment');
if (check.length === 0) {
return;
}
const { data: result } = await github.rest.checks.get({
...context.repo,
check_run_id: check[0].id,
});
return result.conclusion;
- name: Context
if: steps.check-conclusion.outputs.result == 'success'
uses: okteto/context@latest
with:
token: ${{ secrets.OKTETO_TOKEN }}
- name: Destroy preview environment
if: steps.check-conclusion.outputs.result == 'success'
uses: okteto/destroy-preview@latest
with:
name: pr-${{ github.event.number }}-syuilo

View File

@@ -1,59 +0,0 @@
name: Test (backend)
on:
push:
branches:
- master
- develop
pull_request:
jobs:
jest:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.5.1]
services:
postgres:
image: postgres:13
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.0.0
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Test
run: pnpm jest-and-coverage
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json

View File

@@ -1,120 +0,0 @@
name: Test (frontend)
on:
push:
branches:
- master
- develop
pull_request:
jobs:
vitest:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.5.1]
steps:
- uses: actions/checkout@v4.0.0
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Test
run: pnpm --filter frontend test-and-coverage
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/frontend/coverage/coverage-final.json
e2e:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [20.5.1]
browser: [chrome]
services:
postgres:
image: postgres:13
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.0.0
with:
submodules: true
# https://github.com/cypress-io/cypress-docker-images/issues/150
#- name: Install mplayer for FireFox
# run: sudo apt install mplayer -y
# if: ${{ matrix.browser == 'firefox' }}
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 7
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
# https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
- name: ALSA Env
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
# XXX: This tries reinstalling Cypress if the binary is not cached
# Remove this when the cache issue is fixed
- name: Cypress install
run: pnpm exec cypress install
- name: Cypress run
uses: cypress-io/github-action@v6
with:
install: false
start: pnpm start:test
wait-on: 'http://localhost:61812'
headed: true
browser: ${{ matrix.browser }}
- uses: actions/upload-artifact@v2
if: failure()
with:
name: ${{ matrix.browser }}-cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v2
if: always()
with:
name: ${{ matrix.browser }}-cypress-videos
path: cypress/videos

View File

@@ -1,52 +0,0 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Test (misskey.js)
on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.5.1]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- name: Checkout
uses: actions/checkout@v4.0.0
- run: corepack enable
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Build
run: pnpm --filter misskey-js build
- name: Test
run: pnpm --filter misskey-js test
env:
CI: true
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/misskey-js/coverage/coverage-final.json

View File

@@ -1,42 +0,0 @@
name: Test (production install and build)
on:
push:
branches:
- master
- develop
pull_request:
env:
NODE_ENV: production
jobs:
production:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.5.1]
steps:
- uses: actions/checkout@v4.0.0
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config/default.yml
- name: Build
run: pnpm build

122
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: Test
on:
push:
branches:
- master
- develop
pull_request:
jobs:
mocha:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
services:
postgres:
image: postgres:13
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:6
ports:
- 56312:6379
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
packages/backend/yarn.lock
packages/client/yarn.lock
- name: Install dependencies
run: yarn install
- name: Check yarn.lock
run: git diff --exit-code yarn.lock
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: yarn build
- name: Test
run: yarn mocha
e2e:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [18.x]
browser: [chrome]
services:
postgres:
image: postgres:13
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:6
ports:
- 56312:6379
steps:
- uses: actions/checkout@v2
with:
submodules: true
# https://github.com/cypress-io/cypress-docker-images/issues/150
#- name: Install mplayer for FireFox
# run: sudo apt install mplayer -y
# if: ${{ matrix.browser == 'firefox' }}
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
packages/backend/yarn.lock
packages/client/yarn.lock
- name: Install dependencies
run: yarn install
- name: Check yarn.lock
run: git diff --exit-code yarn.lock
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: yarn build
# https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
- name: ALSA Env
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
- name: Cypress run
uses: cypress-io/github-action@v4
with:
install: false
start: npm run start:test
wait-on: 'http://localhost:61812'
headless: false
browser: ${{ matrix.browser }}
- uses: actions/upload-artifact@v2
if: failure()
with:
name: ${{ matrix.browser }}-cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v2
if: always()
with:
name: ${{ matrix.browser }}-cypress-videos
path: cypress/videos

24
.gitignore vendored
View File

@@ -9,20 +9,6 @@
node_modules
report.*.json
# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
packages/frontend/.yarn/cache
packages/backend/.yarn/cache
packages/sw/.yarn/cache
# pnpm
.pnpm-store
# Cypress
cypress/screenshots
cypress/videos
@@ -33,10 +19,7 @@ coverage
# config
/.config/*
!/.config/example.yml
!/.config/docker_example.yml
!/.config/docker_example.env
docker-compose.yml
!/.devcontainer/docker-compose.yml
# misskey
/build
@@ -44,7 +27,7 @@ built
/data
/.cache-loader
/db
/meili_data
/elasticsearch
npm-debug.log
*.pem
run.bat
@@ -55,8 +38,6 @@ api-docs.json
.DS_Store
/files
ormconfig.json
temp
/packages/frontend/src/**/*.stories.ts
# blender backups
*.blend1
@@ -64,6 +45,3 @@ temp
*.blend3
*.blend4
*.blend5
# VSCode addon
.favorites.json

3
.gitmodules vendored
View File

@@ -1,6 +1,3 @@
[submodule "misskey-assets"]
path = misskey-assets
url = https://github.com/misskey-dev/assets.git
[submodule "fluent-emojis"]
path = fluent-emojis
url = https://github.com/misskey-dev/emojis.git

View File

@@ -1 +1 @@
20.5.1
v16.15.0

2
.npmrc Normal file
View File

@@ -0,0 +1,2 @@
save-exact = true
package-lock = false

View File

@@ -1,11 +1,9 @@
{
"recommendations": [
"editorconfig.editorconfig",
"eg2.vscode-npm-script",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"Orta.vscode-jest",
"dbaeumer.vscode-eslint",
"mrmlnc.vscode-json5"
"Vue.vscode-typescript-vue-plugin"
]
}

11
.vscode/settings.json vendored
View File

@@ -1,11 +0,0 @@
{
"search.exclude": {
"**/node_modules": true
},
"typescript.tsdk": "node_modules/typescript/lib",
"files.associations": {
"*.test.ts": "typescript"
},
"jest.jestCommandLine": "pnpm run jest",
"jest.autoRun": "off"
}

1
.yarnrc Normal file
View File

@@ -0,0 +1 @@
network-timeout 600000

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,7 @@ Before creating an issue, please check the following:
- To avoid duplication, please search for similar issues before creating a new issue.
- Do not use Issues to ask questions or troubleshooting.
- Issues should only be used to feature requests, suggestions, and bug tracking.
- Please ask questions or troubleshooting in ~~the [Misskey Forum](https://forum.misskey.io/)~~ [GitHub Discussions](https://github.com/misskey-dev/misskey/discussions) or [Discord](https://discord.gg/Wp8gVStHW3).
- Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3).
> **Warning**
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
@@ -44,7 +44,7 @@ Thank you for your PR! Before creating a PR, please check the following:
- Check if there are any documents that need to be created or updated due to this change.
- If you have added a feature or fixed a bug, please add a test case if possible.
- Please make sure that tests and Lint are passed in advance.
- You can run it with `pnpm test` and `pnpm lint`. [See more info](#testing)
- You can run it with `npm run test` and `npm run lint`. [See more info](#testing)
- If this PR includes UI changes, please attach a screenshot in the text.
Thanks for your cooperation 🤗
@@ -83,18 +83,11 @@ An actual domain will be assigned so you can test the federation.
- The title must be in the format `Release: x.y.z`.
- `x.y.z` is the new version you are trying to release.
3. Deploy and perform a simple QA check. Also verify that the tests passed.
4. Merge it. (Do not squash commit)
4. Merge it.
5. Create a [release of GitHub](https://github.com/misskey-dev/misskey/releases)
- The target branch must be `master`
- The tag name must be the version
> **Note**
> Why this instruction is necessary:
> - To perform final QA checks
> - To distribute responsibility
> - To check direct commits to develop
> - To celebrate the release together 🎉
## Localization (l10n)
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
You can improve our translations with your Crowdin account.
@@ -106,70 +99,37 @@ If your language is not listed in Crowdin, please open an issue.
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
## Development
During development, it is useful to use the
```
pnpm dev
```
command.
- Server-side source files and automatically builds them if they are modified. Automatically start the server process(es).
- Vite HMR (just the `vite` command) is available. The behavior may be different from production.
- Service Worker is watched by esbuild.
### Dev Container
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
**Note:** If you are using Windows, please clone the repository with WSL. Using Git for Windows will result in broken files due to the difference in how newlines are handled.
It will run the following command automatically inside the container.
``` bash
git submodule update --init
pnpm install --frozen-lockfile
cp .devcontainer/devcontainer.yml .config/default.yml
pnpm build
pnpm migrate
```
After finishing the migration, run the `pnpm dev` command to start the development server.
``` bash
pnpm dev
```
During development, it is useful to use the `npm run dev` command.
This command monitors the server-side and client-side source files and automatically builds them if they are modified.
In addition, it will also automatically start the Misskey server process.
## Testing
- Test codes are located in [`/packages/backend/test`](/packages/backend/test).
- Test codes are located in [`/test`](/test).
### Run test
Create a config file.
```
cp .github/misskey/test.yml .config/
cp test/test.yml .config/
```
Prepare DB/Redis for testing.
```
docker compose -f packages/backend/test/docker-compose.yml up
docker-compose -f test/docker-compose.yml up
```
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
Run all test.
```
pnpm test
npm run test
```
#### Run specify test
```
pnpm jest -- foo.ts
npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/foo.ts --require ts-node/register
```
### e2e tests
TODO
## Environment Variable
- `MISSKEY_CONFIG_YML`: Specify the file path of config.yml instead of default.yml (e.g. `2nd.yml`).
- `MISSKEY_WEBFINGER_USE_HTTP`: If it's set true, WebFinger requests will be http instead of https, useful for testing federation between servers in localhost. NEVER USE IN PRODUCTION.
## Continuous integration
Misskey uses GitHub Actions for executing automated tests.
Configuration files are located in [`/.github/workflows`](/.github/workflows).
@@ -208,108 +168,10 @@ niraxは、Misskeyで使用しているオリジナルのフロントエンド
vue-routerとの最大の違いは、niraxは複数のルーターが存在することを許可している点です。
これにより、アプリ内ウィンドウでブラウザとは個別にルーティングすることなどが可能になります。
## Storybook
Misskey uses [Storybook](https://storybook.js.org/) for UI development.
### Setup & Run
#### Setup
```bash
pnpm --filter misskey-js build
```
#### Run
```bash
pnpm --filter frontend storybook-dev
```
### Usage
When you create a new component (in this example, `MyComponent.vue`), the story file (`MyComponent.stories.ts`) will be automatically generated by the `.storybook/generate.js` script.
You can override the default story by creating a impl story file (`MyComponent.stories.impl.ts`).
```ts
/* eslint-disable @typescript-eslint/explicit-function-return-type */
import { StoryObj } from '@storybook/vue3';
import MyComponent from './MyComponent.vue';
export const Default = {
render(args) {
return {
components: {
MyComponent,
},
setup() {
return {
args,
};
},
computed: {
props() {
return {
...this.args,
};
},
},
template: '<MyComponent v-bind="props" />',
};
},
args: {
foo: 'bar',
},
parameters: {
layout: 'centered',
},
} satisfies StoryObj<typeof MkAvatar>;
```
If you want to opt-out from the automatic generation, create a `MyComponent.stories.impl.ts` file and add the following line to the file.
```ts
import MyComponent from './MyComponent.vue';
void MyComponent;
```
You can override the component meta by creating a meta story file (`MyComponent.stories.meta.ts`).
```ts
export const argTypes = {
scale: {
control: {
type: 'range',
min: 1,
max: 4,
},
};
```
Also, you can use msw to mock API requests in the storybook. Creating a `MyComponent.stories.msw.ts` file to define the mock handlers.
```ts
import { rest } from 'msw';
export const handlers = [
rest.post('/api/notes/timeline', (req, res, ctx) => {
return res(
ctx.json([]),
);
}),
];
```
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
## Notes
### How to resolve conflictions occurred at yarn.lock?
### Misskeyのドメイン固有の概念は`Mi`をprefixする
例えばGoogleが自社サービスをMap、Earth、DriveではなくGoogle Map、Google Earth、Google Driveのように命名するのと同じ
コード上でMisskeyのドメイン固有の概念には`Mi`をprefixすることで、他のドメインの同様の概念と区別できるほか、名前の衝突を防ぐ。
ただし、文脈上Misskeyのものを指すことが明らかであり、名前の衝突の恐れがない場合は、一時的なローカル変数に限って`Mi`を省略してもよい。
### How to resolve conflictions occurred at pnpm-lock.yaml?
Just execute `pnpm` to fix it.
Just execute `yarn` to fix it.
### INSERTするときにはsaveではなくinsertを使用する
#6441
@@ -388,41 +250,19 @@ SQLでは配列のインデックスは**1始まり**。
### null IN
nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。
### enumの削除は気をつける
enumの列挙の内容の削除は、その値をもつレコードを全て削除しないといけない
削除が重たかったり不可能だったりする場合は、削除しないでおく
### `undefined`にご用心
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
### Migration作成方法
packages/backendで:
```sh
pnpm dlx typeorm migration:generate -d ormconfig.js -o <migration name>
npx typeorm migration:generate -d ormconfig.js -o <migration name>
```
- 生成後、ファイルをmigration下に移してください
- 作成されたスクリプトは不必要な変更を含むため除去してください
### JSON SchemaのobjectでanyOfを使うとき
JSON Schemaで、objectに対してanyOfを使う場合、anyOfの中でpropertiesを定義しないこと。
バリデーションが効かないため。SchemaTypeもそのように作られており、objectのanyOf内のpropertiesは捨てられます
https://github.com/misskey-dev/misskey/pull/10082
テキストhogeおよびfugaについて、片方を必須としつつ両方の指定もありうる場合:
```
export const paramDef = {
type: 'object',
properties: {
hoge: { type: 'string', minLength: 1 },
fuga: { type: 'string', minLength: 1 },
},
anyOf: [
{ required: ['hoge'] },
{ required: ['fuga'] },
],
} as const;
```
### コネクションには`markRaw`せよ
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
@@ -436,6 +276,3 @@ marginはそのコンポーネントを使う側が設定する
## その他
### HTMLのクラス名で follow という単語は使わない
広告ブロッカーで誤ってブロックされる
### indexというファイル名を使うな
ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる

View File

@@ -1,5 +1,5 @@
Unless otherwise stated this repository is
Copyright © 2014-2023 syuilo and contributers
Copyright © 2014-2022 syuilo and contributers
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.

View File

@@ -1,88 +1,32 @@
# syntax = docker/dockerfile:1.4
ARG NODE_VERSION=20.5.1-bullseye
# build assets & compile TypeScript
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION} AS native-builder
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
rm -f /etc/apt/apt.conf.d/docker-clean \
; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache \
&& apt-get update \
&& apt-get install -yqq --no-install-recommends \
build-essential
RUN corepack enable
WORKDIR /misskey
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
COPY --link ["scripts", "./scripts"]
COPY --link ["packages/backend/package.json", "./packages/backend/"]
COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
COPY --link ["packages/sw/package.json", "./packages/sw/"]
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output
COPY --link . ./
FROM node:16.15.1-bullseye AS builder
ARG NODE_ENV=production
WORKDIR /misskey
COPY . ./
RUN apt-get update
RUN apt-get install -y build-essential
RUN git submodule update --init
RUN pnpm build
RUN rm -rf .git/
RUN yarn install
RUN yarn build
RUN rm -rf .git
# build native dependencies for target platform
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION} AS target-builder
RUN apt-get update \
&& apt-get install -yqq --no-install-recommends \
build-essential
RUN corepack enable
FROM node:16.15.1-bullseye-slim AS runner
WORKDIR /misskey
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
COPY --link ["scripts", "./scripts"]
COPY --link ["packages/backend/package.json", "./packages/backend/"]
RUN apt-get update
RUN apt-get install -y ffmpeg tini
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output
COPY --from=builder /misskey/node_modules ./node_modules
COPY --from=builder /misskey/built ./built
COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
COPY --from=builder /misskey/packages/backend/built ./packages/backend/built
COPY --from=builder /misskey/packages/client/node_modules ./packages/client/node_modules
COPY . ./
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-slim AS runner
ARG UID="991"
ARG GID="991"
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ffmpeg tini curl libjemalloc-dev libjemalloc2 \
&& corepack enable \
&& groupadd -g "${GID}" misskey \
&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
&& find / -type d -path /proc -prune -o -type f -perm /u+s -ignore_readdir_race -exec chmod u-s {} \; \
&& find / -type d -path /proc -prune -o -type f -perm /g+s -ignore_readdir_race -exec chmod g-s {} \; \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists
USER misskey
WORKDIR /misskey
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
COPY --chown=misskey:misskey --from=native-builder /misskey/built ./built
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/backend/built ./packages/backend/built
COPY --chown=misskey:misskey --from=native-builder /misskey/fluent-emojis /misskey/fluent-emojis
COPY --chown=misskey:misskey . ./
ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
ENV NODE_ENV=production
HEALTHCHECK --interval=5s --retries=20 CMD ["/bin/bash", "/misskey/healthcheck.sh"]
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["pnpm", "run", "migrateandstart"]
CMD ["npm", "run", "migrateandstart"]

View File

@@ -24,8 +24,6 @@
---
[![codecov](https://codecov.io/gh/misskey-dev/misskey/branch/develop/graph/badge.svg?token=R6IQZ3QJOL)](https://codecov.io/gh/misskey-dev/misskey)
</div>
<div>
@@ -54,25 +52,6 @@ With Misskey's built in drive, you get cloud storage right in your social media,
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/), some of the links and graphics above also lead to specific portions of it.
## Sponsors
<div align="center">
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank"><img src="https://rss3.mypinata.cloud/ipfs/QmUG6H3Z7D5P511shn7sB4CPmpjH5uZWu4m5mWX7U3Gqbu" alt="RSS3" height="60"></a>
</div>
## Thanks
<a href="https://www.chromatic.com/"><img src="https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png" height="30" alt="Chromatic" /></a>
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
<a href="https://about.codecov.io/for/open-source/"><img src="https://about.codecov.io/wp-content/themes/codecov/assets/brand/sentry-cobranding/logos/codecov-by-sentry-logo.svg" height="30" alt="Codecov" /></a>
Thanks to [Codecov](https://about.codecov.io/for/open-source/) for providing the code coverage platform that helps us improve our test coverage.
<a href="https://crowdin.com/"><img src="https://user-images.githubusercontent.com/20679825/230709597-1299a011-171a-4294-a91e-355a9b37c672.svg" height="30" alt="Crowdin" /></a>
Thanks to [Crowdin](https://crowdin.com/) for providing the localization platform that helps us translate Misskey into many languages.
<a href="https://hub.docker.com/"><img src="https://user-images.githubusercontent.com/20679825/230148221-f8e73a32-a49b-47c3-9029-9a15c3824f92.png" height="30" alt="Docker" /></a>
Thanks to [Docker](https://hub.docker.com/) for providing the container platform that helps us run Misskey in production.

View File

@@ -5,24 +5,25 @@ Also, the later tasks are more indefinite and are subject to change as developme
## (1) Improve maintainability \<current phase\>
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
- ~~Make the number of type errors zero (backend)~~ → Done ✔️
- Make the number of type errors zero (backend)
- Probably need to switch some libraries to others that make it difficult to reduce type errors
- e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537
- Improve CI
- ~~Fix tests~~ → Done ✔️
- Fix tests
- mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work.
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
- Add more tests
- ~~May need to implement a mechanism that allows for DI~~ → Done ✔️
- May need to implement a mechanism that allows for DI
- https://github.com/misskey-dev/misskey/pull/9085
- ~~Measure coverage~~ → Done ✔️
- Measure coverage
- https://github.com/misskey-dev/misskey/pull/9081
- Improve documentation
- Refactoring
- Extract the logic of each endpoint definition into a service and just call it
## (2) Improve functionality
Once Phase 1 is complete and an environment conducive to the development of a stable system is in place, the implementation of new functions can begin gradually.
- Improve features for moderation
- ~~OAuth2 support https://github.com/misskey-dev/misskey/issues/8262~~ → Done ✔️
- OAuth2 support https://github.com/misskey-dev/misskey/issues/8262
- GraphQL support?
## (3) Improve scalability

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -1,4 +1,3 @@
apiVersion: v2
name: misskey
version: 0.0.0
description: This chart is created for the purpose of previewing Pull Requests. Do not use this for production use.

View File

@@ -72,59 +72,25 @@ db:
#extra:
# ssl: true
dbReplications: false
# You can configure any number of replicas here
#dbSlaves:
# -
# host:
# port:
# db:
# user:
# pass:
# -
# host:
# port:
# db:
# user:
# pass:
# ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────
redis:
host: localhost
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
#redisForPubsub:
# host: localhost
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌─────────────────────────────┐
#───┘ Elasticsearch configuration └─────────────────────────────
#redisForJobQueue:
#elasticsearch:
# host: localhost
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
#meilisearch:
# host: localhost
# port: 7700
# apiKey: ''
# ssl: true
# index: ''
# port: 9200
# ssl: false
# user:
# pass:
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
@@ -135,7 +101,6 @@ redis:
# Available methods:
# aid ... Short, Millisecond accuracy
# aidx ... Millisecond accuracy
# meid ... Similar to ObjectID, Millisecond accuracy
# ulid ... Millisecond accuracy
# objectid ... This is left for backward compatibility
@@ -143,7 +108,7 @@ redis:
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# ID SETTINGS AFTER THAT!
id: "aidx"
id: "aid"
# ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────
@@ -168,6 +133,11 @@ id: "aidx"
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4
# Syslog option
#syslog:
# host: localhost
# port: 514
# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128
@@ -184,12 +154,8 @@ id: "aidx"
# Media Proxy
#mediaProxy: https://example.com/proxy
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
# Limit of notes to fetch from outbox with remote user first fetched (default: 5)
# https://github.com/misskey-dev/misskey/pull/11130
outboxNotesFetchLimit: 5
# Sign to ActivityPub GET request (default: false)
#signToActivityPubGet: true
#allowedPrivateNetworks: [
# '127.0.0.1/32'

View File

@@ -3,16 +3,16 @@ kind: Deployment
metadata:
name: {{ include "misskey.fullname" . }}
labels:
{{- include "misskey.labels" . | nindent 4 }}
{{- include "misskey.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "misskey.selectorLabels" . | nindent 6 }}
{{- include "misskey.selectorLabels" . | nindent 6 }}
replicas: 1
template:
metadata:
labels:
{{- include "misskey.selectorLabels" . | nindent 8 }}
{{- include "misskey.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: misskey

View File

@@ -11,4 +11,4 @@ spec:
protocol: TCP
name: http
selector:
{{- include "misskey.selectorLabels" . | nindent 4 }}
{{- include "misskey.selectorLabels" . | nindent 4 }}

View File

@@ -1,4 +0,0 @@
coverage:
status:
project: false
patch: false

View File

@@ -10,11 +10,11 @@ describe('Before setup instance', () => {
});
it('successfully loads', () => {
cy.visitHome();
cy.visit('/');
});
it('setup instance', () => {
cy.visitHome();
cy.visit('/');
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
@@ -43,51 +43,22 @@ describe('After setup instance', () => {
});
it('successfully loads', () => {
cy.visitHome();
cy.visit('/');
});
it('signup', () => {
cy.visitHome();
cy.visit('/');
cy.intercept('POST', '/api/signup').as('signup');
cy.get('[data-cy-signup]').click();
cy.get('[data-cy-signup-rules-continue]').should('be.disabled');
cy.get('[data-cy-signup-rules-notes-agree] [data-cy-switch-toggle]').click();
cy.get('[data-cy-modal-dialog-ok]').click();
cy.get('[data-cy-signup-rules-continue]').should('not.be.disabled');
cy.get('[data-cy-signup-rules-continue]').click();
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-username] input').type('alice');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('not.be.disabled');
cy.get('[data-cy-signup-submit]').click();
cy.wait('@signup');
});
it('signup with duplicated username', () => {
cy.registerUser('alice', 'alice1234');
cy.visitHome();
// ユーザー名が重複している場合の挙動確認
cy.get('[data-cy-signup]').click();
cy.get('[data-cy-signup-rules-continue]').should('be.disabled');
cy.get('[data-cy-signup-rules-notes-agree] [data-cy-switch-toggle]').click();
cy.get('[data-cy-modal-dialog-ok]').click();
cy.get('[data-cy-signup-rules-continue]').should('not.be.disabled');
cy.get('[data-cy-signup-rules-continue]').click();
cy.get('[data-cy-signup-username] input').type('alice');
cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
});
});
describe('After user signup', () => {
@@ -108,11 +79,11 @@ describe('After user signup', () => {
});
it('successfully loads', () => {
cy.visitHome();
cy.visit('/');
});
it('signin', () => {
cy.visitHome();
cy.visit('/');
cy.intercept('POST', '/api/signin').as('signin');
@@ -130,7 +101,7 @@ describe('After user signup', () => {
userId: this.alice.id,
});
cy.visitHome();
cy.visit('/');
cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
@@ -141,7 +112,7 @@ describe('After user signup', () => {
});
});
describe('After user signed in', () => {
describe('After user singed in', () => {
beforeEach(() => {
cy.resetState();
@@ -161,77 +132,15 @@ describe('After user signed in', () => {
});
it('successfully loads', () => {
cy.get('[data-cy-user-setup-continue]').should('be.visible');
cy.get('[data-cy-open-post-form]').should('be.visible');
});
it('account setup wizard', () => {
cy.get('[data-cy-user-setup-continue]').click();
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
// TODO: アイコン設定テスト
cy.get('[data-cy-user-setup-continue]').click();
// プライバシー設定
cy.get('[data-cy-user-setup-continue]').click();
// フォローはスキップ
cy.get('[data-cy-user-setup-continue]').click();
// プッシュ通知設定はスキップ
cy.get('[data-cy-user-setup-continue]').click();
cy.get('[data-cy-user-setup-continue]').click();
});
});
describe('After user setup', () => {
beforeEach(() => {
cy.resetState();
// インスタンス初期セットアップ
cy.registerUser('admin', 'pass', true);
// ユーザー作成
cy.registerUser('alice', 'alice1234');
cy.login('alice', 'alice1234');
// アカウント初期設定ウィザード
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]').click();
cy.get('[data-cy-modal-dialog-ok]').click();
});
afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});
it('note', () => {
cy.get('[data-cy-open-post-form]').should('be.visible');
cy.get('[data-cy-open-post-form]').click();
cy.get('[data-cy-post-form-text]').type('Hello, Misskey!');
cy.get('[data-cy-open-post-form-submit]').click();
cy.contains('Hello, Misskey!');
});
it('open note form with hotkey', () => {
// Wait until the page loads
cy.get('[data-cy-open-post-form]').should('be.visible');
// Use trigger() to give different `code` to test if hotkeys also work on non-QWERTY keyboards.
cy.document().trigger("keydown", { eventConstructor: 'KeyboardEvent', key: "n", code: "KeyL" });
// See if the form is opened
cy.get('[data-cy-post-form-text]').should('be.visible');
// Close it
cy.focused().trigger("keydown", { eventConstructor: 'KeyboardEvent', key: "Escape", code: "Escape" });
// See if the form is closed
cy.get('[data-cy-post-form-text]').should('not.be.visible');
});
});

View File

@@ -10,10 +10,6 @@ describe('After user signed in', () => {
cy.registerUser('alice', 'alice1234');
cy.login('alice', 'alice1234');
// アカウント初期設定ウィザード
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]').click();
cy.get('[data-cy-modal-dialog-ok]').click();
});
afterEach(() => {
@@ -23,27 +19,27 @@ describe('After user signed in', () => {
});
it('widget edit toggle is visible', () => {
cy.get('[data-cy-widget-edit]').should('be.visible');
cy.get('.mk-widget-edit').should('be.visible');
});
it('widget select should be visible in edit mode', () => {
cy.get('[data-cy-widget-edit]').click();
cy.get('[data-cy-widget-select]').should('be.visible');
cy.get('.mk-widget-edit').click();
cy.get('.mk-widget-select').should('be.visible');
});
it('first widget should be removed', () => {
cy.get('[data-cy-widget-edit]').click();
cy.get('[data-cy-customize-container]:first-child [data-cy-customize-container-remove]._button').click();
cy.get('[data-cy-customize-container]').should('have.length', 2);
cy.get('.mk-widget-edit').click();
cy.get('.customize-container:first-child .remove._button').click();
cy.get('.customize-container').should('have.length', 2);
});
function buildWidgetTest(widgetName) {
it(`${widgetName} widget should get added`, () => {
cy.get('[data-cy-widget-edit]').click();
cy.get('[data-cy-widget-select] select').select(widgetName, { force: true });
cy.get('[data-cy-bg]._modalBg[data-cy-transparent]').click({ multiple: true, force: true });
cy.get('[data-cy-widget-add]').click({ force: true });
cy.get(`[data-cy-mkw-${widgetName}]`).should('exist');
cy.get('.mk-widget-edit').click();
cy.get('.mk-widget-select select').select(widgetName, { force: true });
cy.get('.bg._modalBg.transparent').click({ multiple: true, force: true });
cy.get('.mk-widget-add').click({ force: true });
cy.get(`.mkw-${widgetName}`).should('exist');
});
}

View File

@@ -24,16 +24,11 @@
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
Cypress.Commands.add('visitHome', () => {
cy.visit('/');
cy.get('button', { timeout: 30000 }).should('be.visible');
})
Cypress.Commands.add('resetState', () => {
cy.window(win => {
win.indexedDB.deleteDatabase('keyval-store');
});
cy.request('POST', '/api/reset-db', {}).as('reset');
cy.request('POST', '/api/reset-db').as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);
});
@@ -48,7 +43,7 @@ Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
});
Cypress.Commands.add('login', (username, password) => {
cy.visitHome();
cy.visit('/');
cy.intercept('POST', '/api/signin').as('signin');

View File

@@ -21,8 +21,6 @@ import './commands'
Cypress.on('uncaught:exception', (err, runnable) => {
if ([
'The source image cannot be decoded',
// Chrome
'ResizeObserver loop limit exceeded',

52
docker-compose.yml Normal file
View File

@@ -0,0 +1,52 @@
version: "3"
services:
web:
build: .
restart: always
links:
- db
- redis
# - es
ports:
- "3000:3000"
networks:
- internal_network
- external_network
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
redis:
restart: always
image: redis:4.0-alpine
networks:
- internal_network
volumes:
- ./redis:/data
db:
restart: always
image: postgres:12.2-alpine
networks:
- internal_network
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
# es:
# restart: always
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
# environment:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# - "TAKE_FILE_OWNERSHIP=111"
# networks:
# - internal_network
# volumes:
# - ./elasticsearch:/usr/share/elasticsearch/data
networks:
internal_network:
internal: true
external_network:

View File

@@ -1,67 +0,0 @@
version: "3"
services:
web:
build: .
restart: always
links:
- db
- redis
# - meilisearch
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
ports:
- "3000:3000"
networks:
- internal_network
- external_network
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
redis:
restart: always
image: redis:7-alpine
networks:
- internal_network
volumes:
- ./redis:/data
healthcheck:
test: "redis-cli ping"
interval: 5s
retries: 20
db:
restart: always
image: postgres:15-alpine
networks:
- internal_network
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s
retries: 20
# meilisearch:
# restart: always
# image: getmeili/meilisearch:v1.3.4
# environment:
# - MEILI_NO_ANALYTICS=true
# - MEILI_ENV=production
# env_file:
# - .config/meilisearch.env
# networks:
# - internal_network
# volumes:
# - ./meili_data:/meili_data
networks:
internal_network:
internal: true
external_network:

25
docs/DONATORS.md Normal file
View File

@@ -0,0 +1,25 @@
DONATORS
========
The list of people who have sent donation for Misskey.
(In random order, honorific titles are omitted.)
* らふぁ
* 俺様
* なぎうり
* スルメ https://surume.tk/
*
* 音船 https://otofune.me/
* aqz https://misskey.xyz/aqz
* kotodu "虚無創作中"
* Maya Minatsuki
* Knzk https://knzk.me/@Knzk
* ねじりわさび https://knzk.me/@y
* NCLS https://knzk.me/@imncls]
* こじま @skoji@sandbox.skoji.jp
:heart: Thanks for donating, guys!
---
If your name is missing, please contact us!

Submodule fluent-emojis deleted from cae981eb4c

65
gulpfile.js Normal file
View File

@@ -0,0 +1,65 @@
/**
* Gulp tasks
*/
const fs = require('fs');
const gulp = require('gulp');
const replace = require('gulp-replace');
const terser = require('gulp-terser');
const cssnano = require('gulp-cssnano');
const locales = require('./locales');
const meta = require('./package.json');
gulp.task('copy:backend:views', () =>
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
);
gulp.task('copy:client:fonts', () =>
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
);
gulp.task('copy:client:fontawesome', () =>
gulp.src('./packages/client/node_modules/@fortawesome/fontawesome-free/**/*').pipe(gulp.dest('./built/_client_dist_/fontawesome/'))
);
gulp.task('copy:client:locales', cb => {
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
const v = { '_version_': meta.version };
for (const [lang, locale] of Object.entries(locales)) {
fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
}
cb();
});
gulp.task('build:backend:script', () => {
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
.pipe(terser({
toplevel: true
}))
.pipe(gulp.dest('./packages/backend/built/server/web/'));
});
gulp.task('build:backend:style', () => {
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
.pipe(cssnano({
zindex: false
}))
.pipe(gulp.dest('./packages/backend/built/server/web/'));
});
gulp.task('build', gulp.parallel(
'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:fontawesome'
));
gulp.task('default', gulp.task('build'));
gulp.task('watch', () => {
gulp.watch([
'./packages/*/src/**/*',
], { ignoreInitial: false }, gulp.task('build'));
});

View File

@@ -1,7 +0,0 @@
#!/bin/bash
# SPDX-FileCopyrightText: syuilo and other misskey contributors
# SPDX-License-Identifier: AGPL-3.0-only
PORT=$(grep '^port:' /misskey/.config/default.yml | awk 'NR==1{print $2; exit}')
curl -s -S -o /dev/null "http://localhost:${PORT}"

File diff suppressed because it is too large Load Diff

View File

@@ -107,7 +107,6 @@ clickToShow: "দেখার জন্য ক্লিক করুন"
sensitive: "সংবেদনশীল বিষয়বস্তু"
add: "যুক্ত করুন"
reaction: "প্রতিক্রিয়া"
reactions: "প্রতিক্রিয়া"
reactionSetting: "রিঅ্যাকশন পিকারে যেসকল প্রতিক্রিয়া দেখানো হবে"
reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে + টিপুন।"
rememberNoteVisibility: "নোটের দৃশ্যমান্যতার সেটিংস মনে রাখুন"
@@ -165,6 +164,7 @@ annotation: "মন্তব্য"
federation: "ফেডিভার্স"
instances: "ইন্সট্যান্স"
registeredAt: "যোগ দিয়েছেন"
latestRequestSentAt: "শেষ রিকুয়েস্ট পাঠানো হয়েছে"
latestRequestReceivedAt: "শেষ রিকুয়েস্ট গৃহীত হয়েছে"
latestStatus: "সর্বশেষ অবস্থা"
storageUsage: "স্টোরেজের ব্যাবহার"
@@ -252,12 +252,12 @@ noMoreHistory: "আর কোন ইতিহাস নেই"
startMessaging: "চ্যাট শুরু করুন"
nUsersRead: "{n} জন পড়েছেন"
agreeTo: "{0} এর প্রতি আমি সম্মত"
tos: "পরিষেবার শর্তাদি"
start: "শুরু করুন"
home: "মূল পাতা"
remoteUserCaution: "এই ব্যাবহারকারী রিমোট ইন্সট্যান্সের, নিম্নক্ত তথ্য অসম্পূর্ণ হতে পারে।"
activity: "কার্যকলাপ"
images: "ছবি"
image: "ছবি"
birthday: "জন্মদিন"
yearsOld: "{age} বছর"
registeredDate: "যোগদানের তারিখ"
@@ -294,6 +294,7 @@ copyUrl: "URL কপি করুন"
rename: "পুনঃনামকরণ"
avatar: "প্রোফাইল ছবি"
banner: "ব্যানার"
nsfw: "সংবেদনশীল বিষয়বস্তু"
whenServerDisconnected: "সার্ভারের সাথে সংযোগ বিচ্ছিন্ন হয়ে গেলে"
disconnectedFromServer: "সার্ভার থেকে সংযোগ বিচ্ছিন্ন হয়েছে"
reload: "আবার লোড করুন"
@@ -346,8 +347,6 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHA চালু করুন"
recaptchaSiteKey: "সাইট কী"
recaptchaSecretKey: "সিক্রেট কী"
turnstileSiteKey: "সাইট কী"
turnstileSecretKey: "সিক্রেট কী"
avoidMultiCaptchaConfirm: "একাধিক Captcha ব্যবহার করলে তারা পরস্পরের কাজে বাধা দিতে পারে। আপনি কি অন্যান্য Captcha নিষ্ক্রিয় করতে চান? আপনি 'বাতিল' ক্লিক করার মাধ্যমে একাধিক Captcha চালু রাখতে পারেন।"
antennas: "অ্যান্টেনা"
manageAntennas: "অ্যান্টেনা ব্যবস্থাপনা"
@@ -381,9 +380,12 @@ about: "আপনার সম্পর্কে"
aboutMisskey: "Misskey সম্পর্কে"
administrator: "প্রশাসক"
token: "টোকেন"
twoStepAuthentication: "২-ধাপ প্রমাণীকরণ"
moderator: "মডারেটর"
nUsersMentioned: "{n} জনকে উল্লেখ করা হয়েছে"
securityKey: "সিকিউরিটি কী"
securityKeyName: "কী'র নাম"
registerSecurityKey: "সিকিউরিটি কী নিবন্ধন করুন"
lastUsed: "শেষ ব্যাবহার করা হয়েছে"
unregister: "নিবন্ধনমুক্ত হন"
passwordLessLogin: "পাসওয়ার্ড-বিহীন লগইন সেট আপ করুন"
@@ -401,15 +403,24 @@ markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হি
help: "সহায়তা"
inputMessageHere: "এখানে মেসেজ লিখুন"
close: "বন্ধ"
group: "গ্রুপ"
groups: "গ্রুপসমূহ"
createGroup: "গ্রুপ তৈরী করুন"
ownedGroups: "আপনার গ্রুপগুলি"
joinedGroups: "যেসব গ্রুপে আপনি আছেন"
invites: "আমন্ত্রণ"
groupName: "গ্রুপের নাম"
members: "সদস্যবৃন্দ"
transfer: "হস্তান্তর"
messagingWithUser: "প্রাইভেট চ্যাট"
messagingWithGroup: "গ্রুপ চ্যাট"
title: "শিরোনাম"
text: "পাঠ্য"
enable: "সক্রিয়"
next: "পরবর্তী"
retype: "পুনঃ প্রবেশ"
noteOf: "{user} এর নোট"
inviteToGroup: "গ্রুপে আমন্ত্রণ জানান"
quoteAttached: "উদ্ধৃত"
quoteQuestion: "উদ্ধৃতি হিসাবে সংযুক্ত করবেন?"
noMessagesYet: "কোন মেসেজ নেই"
@@ -431,13 +442,19 @@ passwordMatched: "মিলেছে"
passwordNotMatched: "মিলেনি"
signinWith: "{x} এর সাহায্যে সাইন ইন করুন"
signinFailed: "লগ ইন করা যায়নি। আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড চেক করুন."
tapSecurityKey: "সিকিউরিটি কী স্পর্শ করুন"
or: "অথবা"
language: "ভাষা"
uiLanguage: "UI এর ভাষা"
groupInvited: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
aboutX: "{x} সম্পর্কে"
useOsNativeEmojis: "অপারেটিং সিস্টেমের নেটিভ ইমোজি ব্যবহার করুন"
disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
youHaveNoGroups: "আপনার কোন গ্রুপ নেই "
joinOrCreateGroup: "একটি বিদ্যমান গ্রুপের আমন্ত্রণ পান বা একটি নতুন গ্রুপ তৈরি করুন৷"
noHistory: "কোনো ইতিহাস নেই"
signinHistory: "প্রবেশ করার ইতিহাস"
disableAnimatedMfm: "অ্যানিমেটেড MFM অক্ষম করুন"
doing: "প্রক্রিয়া করছে..."
category: "বিভাগ"
tags: "ট‍্যাগসমূহ"
@@ -484,7 +501,6 @@ deleteAll: "সব মুছুন"
showFixedPostForm: "টাইমলাইনের শীর্ষে পোস্ট করার ফর্মটি দেখান"
newNoteRecived: "নতুন নোট আছে"
sounds: "শব্দ"
sound: "শব্দ"
listen: "শুনুন"
none: "কিছুই না"
showInPage: "পেজে দেখান"
@@ -561,6 +577,7 @@ tokenRequested: "অ্যাকাউন্টে অ্যাক্সেস
pluginTokenRequestedDescription: "এই প্লাগইনটি এখানে দেওয়া অনুমুতিসমূহ ব্যাবহার করবে"
notificationType: "বিজ্ঞপ্তির ধরন"
edit: "সম্পাদনা"
useStarForReactionFallback: "রিঅ্যাকশনের ইমোজি না জানলে ★ ব্যবহার করুন"
emailServer: "ইমেইল সার্ভার"
enableEmail: "ইমেইল বিতরণ চালু করুন"
emailConfigInfo: "আপনার ইমেল ঠিকানা নিশ্চিত করতে এবং আপনার পাসওয়ার্ড পুনরায় সেট করতে ব্যবহৃত হয়"
@@ -628,7 +645,6 @@ createNew: "নতুন"
optional: "প্রয়োজনীয় নয়"
createNewClip: "নতুন ক্লিপ তৈরি করুন"
public: "সর্বজনীন"
private: "ব্যাক্তিগত"
i18nInfo: "Misskey স্বেচ্ছাসেবকদের দ্বারা বিভিন্ন ভাষায় অনুবাদ করা হচ্ছে। আপনি {link} এ গিয়ে অনুবাদে সহযোগিতা করতে পারেন।"
manageAccessTokens: "অ্যাক্সেস টোকেন পরিচালনা করুন"
accountInfo: "অ্যাকাউন্টের তথ্য"
@@ -803,6 +819,8 @@ deleteAccountConfirm: "আপনার অ্যাকাউন্ট মুছ
incorrectPassword: "আপনার দেওয়া পাসওয়ার্ডটি ভুল।"
voteConfirm: "\"{choice}\" এ ভোট দিতে চান?"
hide: "লুকান"
leaveGroup: "গ্রুপ ছেড়ে চলে যান"
leaveGroupConfirm: "\"{name}\" গ্রুপ ছেড়ে চলে যেতে চান?"
useDrawerReactionPickerForMobile: "মোবাইলে রিঅ্যাকশন পিকারকে ড্রয়ারে প্রদর্শন করুন"
welcomeBackWithName: "আবার স্বাগতম, {name}"
clickToFinishEmailVerification: " [{ok}] ক্লিক করার মাধ্যমে আপনার ইমেল ঠিকানা নিশ্চিত করুন।"
@@ -818,7 +836,6 @@ instanceDefaultLightTheme: "ইন্সট্যান্সের ডিফল
instanceDefaultDarkTheme: "ইন্সট্যান্সের ডিফল্ট ডার্ক থিম"
instanceDefaultThemeDescription: "অবজেক্ট ফরম্যাটে থিম কোড লিখুন"
mutePeriod: "মিউটের সময়কাল"
period: "পোলের সময়সীমা"
indefinitely: "অনির্দিষ্ট"
tenMinutes: "১০ মিনিট"
oneHour: "১ ঘণ্টা"
@@ -833,18 +850,6 @@ colored: "রঙ্গিন"
label: "লেবেল"
localOnly: "শুধুমাত্র লোকাল"
account: "অ্যাকাউন্টগুলি"
like: "পছন্দ করা"
show: "প্রদর্শন"
color: "রং"
horizontal: "পাশে"
youFollowing: "অনুসরণ করা হচ্ছে"
icon: "প্রোফাইল ছবি"
_role:
priority: "অগ্রাধিকার"
_priority:
low: "নিম্ন"
middle: "মাঝারি"
high: "উচ্চ"
_emailUnavailable:
used: "এই ইমেইল ঠিকানাটি ইতোমধ্যে ব্যবহৃত হয়েছে"
format: "এই ইমেল ঠিকানাটি সঠিকভাবে লিখা হয়নি"
@@ -869,7 +874,6 @@ _accountDelete:
_ad:
back: "পিছনে"
reduceFrequencyOfThisAd: "এই বিজ্ঞাপনটি কম দেখান"
hide: "দেখাবেন না"
_forgotPassword:
enterEmail: "আপনি আপনার অ্যাকাউন্টের জন্য নিবন্ধিত ইমেল ঠিকানা লিখুন. সেই ঠিকানায় একটি পাসওয়ার্ড রিসেট লিঙ্ক পাঠানো হবে।"
ifNoEmail: "আপনি যদি নিবন্ধনের সময় ই-মেইল ঠিকানা না দিয়ে থাকেন, তাহলে অনুগ্রহ করে প্রশাসকের সাথে যোগাযোগ করুন।"
@@ -903,6 +907,74 @@ _aboutMisskey:
donate: "Misskey তে দান করুন"
morePatrons: "আরও অনেকে আমাদের সাহায্য করছেন। তাদের সবাইকে ধন্যবাদ 🥰"
patrons: "সমর্থনকারী"
_nsfw:
respect: "স্পর্শকাতর মিডিয়া লুকান"
ignore: "স্পর্শকাতর মিডিয়া লুকাবেন না"
force: "সকল মিডিয়া লুকান"
_mfm:
cheatSheet: "MFM চিটশিট"
intro: "MFM একটি মার্কআপ ভাষা যা Misskey-এর মধ্যে বিভিন্ন জায়গায় ব্যবহার করা যেতে পারে। এখানে আপনি MFM-এর সিনট্যাক্সগুলির একটি তালিকা দেখতে পারবেন।"
dummy: "মিসকি ফেডিভার্সের বিশ্বকে প্রসারিত করে"
mention: "উল্লেখ"
mentionDescription: "@ চিহ্ন + ব্যবহারকারীর নাম একটি নির্দিষ্ট ব্যবহারকারীকে নির্দেশ করতে ব্যবহার করা যায়।"
hashtag: "হ্যাশট্যাগ"
hashtagDescription: "আপনি একটি # চিহ্ন + ট্যাগ সহ একটি হ্যাশট্যাগ নির্দেশ করতে পারেন।"
url: "URL"
urlDescription: "URL দেখানো সম্ভব।"
link: "লিংক"
linkDescription: "আপনি পাঠ্যের একটি নির্দিষ্ট অংশকে URL হিসাবে দেখাতে পারেন৷"
bold: "গাঢ়"
boldDescription: "অক্ষরগুলিকে মোটাকরে প্রদর্শন করা হবে।"
small: "ছোট"
smallDescription: "লেখা ছোট এবং পাতলা করে দেখানো হবে।"
center: "সেন্টার"
centerDescription: "লেখা মাঝ বরাবর দেখানো হবে"
inlineCode: "কোড (ইনলাইন)"
inlineCodeDescription: " প্রোগ্রামের কোডের জন্য ইনলাইন সিনট্যাক্স হাইলাইটিং করা হবে"
blockCode: "কোড (ব্লক)"
blockCodeDescription: "মাল্টি-লাইন প্রোগ্রামের কোডের জন্য সিনট্যাক্স হাইলাইট করে।"
inlineMath: "গাণিতিক সূত্র (ইনলাইন)"
inlineMathDescription: "গাণিতিক সূত্র প্রদর্শন করুন (KaTeX) ইনলাইন।"
blockMath: "গাণিতিক সূত্র (ব্লক)"
blockMathDescription: "একটি ব্লকে একাধিক লাইনের গাণিতিক সূত্র প্রদর্শন করুন (KaTeX)।"
quote: "উদ্ধৃতি"
quoteDescription: "বিষয়বস্তুকে একটি উদ্ধৃতি হিসাবে দেখানো হবে।"
emoji: "স্বনির্ধারিত ইমোজিগুলি"
emojiDescription: "আপনি একটি কাস্টম ইমোজির নাম কোলনে আবদ্ধ করে কাস্টম ইমোজিটি দেখাতে পারেন৷"
search: "খুঁজুন"
searchDescription: "পূর্ব-টাইপ করা পাঠ্য সহ একটি অনুসন্ধান বাক্স প্রদর্শন করে।"
flip: "উল্টান"
flipDescription: "বিষয়বস্তু উপরে/নীচে বা বাম/ডানে উল্টান।"
jelly: "অ্যানিমেশন (জেলি)"
jellyDescription: "জেলির মত অ্যানিমেশন দেখায়।"
tada: "অ্যানিমেশন (টাডা)"
tadaDescription: "\"টাডা!\" এর মত অ্যানিমেশন দেখায়।"
jump: "অ্যানিমেশন (লাফ)"
jumpDescription: "বিষয়বস্তুতে লাফ মারার মত অ্যানিমেশন দেখায়।"
bounce: "অ্যানিমেশন (তিড়িং বিড়িং)"
bounceDescription: "তিড়িং বিড়িং করার মত অ্যানিমেশন দেখায়।"
shake: "অ্যানিমেশন (ঝাঁকি)"
shakeDescription: "ঝাঁকির মত অ্যানিমেশন দেখায়।"
twitch: "অ্যানিমেশন (মোচড়ানো)"
twitchDescription: "মোচড়ানোর মত অ্যানিমেশন দেখায়।"
spin: "অ্যানিমেশন (ঘুরা)"
spinDescription: "ঘুরার মত অ্যানিমেশন দেখায়।"
x2: "বড়"
x2Description: "বিষয়বস্তু বড় করে দেখায়।"
x3: "অনেক বড়"
x3Description: "বিষয়বস্তু আরও বড় করে দেখায়।"
x4: "অস্বাভাবিক বড়"
x4Description: "বিষয়বস্তুকে আগের থেকেও আরও বড় করে দেখায়।"
blur: "ব্লার"
blurDescription: "বিষয়বস্তুকে ব্লার করতে পারেন। আপনি এর উপর মাউস কার্সার রাখলে, এটি পরিষ্কারভাবে দেখতে পাবেন।"
font: "ফন্ট"
fontDescription: "বিষয়বস্তুকে কোন ফন্টে দেখানো হবে তা নির্ধারণ করে।"
rainbow: "রেইনবো"
rainbowDescription: "বিষয়বস্তুকে রংধনুর রং গুলিতে প্রদর্শন করে।"
sparkle: "চিক চিক"
sparkleDescription: "বিষয়বস্তুকে একটি চিকচিকে কণা প্রভাব দেয়।"
rotate: "ঘুরান"
rotateDescription: "বিষয়বস্তুকে একটি নির্দিষ্ট কোনে ঘুরায়।"
_instanceTicker:
none: "দেখাবেন না"
remote: "রিমোট ব্যাবহারকারীদের জন্য দেখান"
@@ -1032,16 +1104,41 @@ _ago:
weeksAgo: "{n} সপ্তাহ আগে"
monthsAgo: "{n} মাস আগে"
yearsAgo: "{n} বছর আগে"
invalid: "এখানে কিছুই নাই"
_time:
second: "সেকেন্ড"
minute: "মিনিট"
hour: "ঘণ্টা"
day: "দিন"
_tutorial:
title: "Misskey কিভাবে ব্যাবহার করবেন"
step1_1: "স্বাগতম!"
step1_2: "এই স্ক্রীনটিকে \"টাইমলাইন\" বলা হয় এবং কালানুক্রমিক ক্রমে আপনার এবং আপনি যাদের \"অনুসরণ করেন\" তাদের \"নোটগুলি\" দেখায়৷"
step1_3: "আপনি আপনার টাইমলাইনে কিছু দেখতে পাবেন না কারণ আপনি এখনও কোনো নোট পোস্ট করেননি এবং আপনি কাউকে অনুসরণ করছেন না৷"
step2_1: "নোট তৈরি করার আগে বা কাউকে অনুসরণ করার আগে প্রথমে আপনার প্রোফাইলটি সম্পূর্ণ করুন।"
step2_2: "আপনি কে তা জানা অনেক লোকের জন্য আপনার নোটগুলি দেখা এবং অনুসরণ করাকে সহজ করে তোলে৷"
step3_1: "আপনি কি সফলভাবে আপনার প্রোফাইল সেট আপ করেছেন?"
step3_2: "এখন, কিছু নোট পোস্ট করার চেষ্টা করুন। পোস্ট ফর্ম খুলতে পেন্সিল চিহ্নযুক্ত বাটনে ক্লিক করুন।"
step3_3: "বিষয়বস্তু লেখার পরে, আপনি ফর্মের উপরের ডানদিকের বাটনে ক্লিক করে পোস্ট করতে পারেন।"
step3_4: "পোস্ট করার মত কিছু মনে পরছে না? \"আমি মিসকি সেট আপ করছি\" বললে কেমন হয়?"
step4_1: "পোস্ট করেছেন?"
step4_2: "সাবাশ! এখন আপনার নোট টাইমলাইনে দেখা যাবে।"
step5_1: "এখন অন্যদেরকে অনুসরণ করে আপনার টাইমলাইনকে প্রাণবন্ত করে তুলুন।"
step5_2: "আপনি {featured}-এ জনপ্রিয় নোটগুলি দেখতে পারেন, যাতে আপনি যে ব্যক্তিকে পছন্দ করেন তাকে বেছে নিতে এবং অনুসরণ করতে পারেন, অথবা {explore}-এ জনপ্রিয় ব্যবহারকারীদের দেখতে পারেন৷"
step5_3: "একজন ব্যবহারকারীকে অনুসরণ করতে, ব্যবহারকারীর আইকনে ক্লিক করুন এবং ব্যবহারকারীর পৃষ্ঠাতে \"অনুসরণ করুন\" বাটনে ক্লিক করুন।"
step5_4: "যদি ব্যবহারকারীর নামের পাশে একটি লক আইকন থাকে তাহলে আপনার অনুসরণের অনুরোধ গ্রহণ করার জন্য তারা কিছু সময় নিতে পারে।"
step6_1: "সবকিছু ঠিক থাকলে আপনি টাইমলাইনে অন্য ব্যবহারকারীদের নোট দেখতে পাবেন।"
step6_2: "আপনি সহজেই আপনার প্রতিক্রিয়া জানাতে অন্য ব্যক্তির নোটে \"রিঅ্যাকশন\" যোগ করতে পারেন।"
step6_3: "একটি রিঅ্যাকশন যোগ করতে, নোটে \"+\" চিহ্নে ক্লিক করুন এবং আপনার পছন্দের রিঅ্যাকশন নির্বাচন করুন।"
step7_1: "অভিনন্দন! আপনি এখন Misskey-র প্রাথমিক টিউটোরিয়ালটি শেষ করেছেন।"
step7_2: "আপনি যদি Misskey সম্পর্কে আরও জানতে চান, তাহলে {help} এ দেখুন।"
step7_3: "এখন Misskey উপভোগ করুন 🚀"
_2fa:
alreadyRegistered: "আপনি ইতিমধ্যে একটি 2-ফ্যাক্টর অথেনটিকেশন ডিভাইস নিবন্ধন করেছেন৷"
registerDevice: "নতুন ডিভাইস নিবন্ধন করুন"
registerKey: "সিকিউরিটি কী নিবন্ধন করুন"
step1: "প্রথমে, আপনার ডিভাইসে {a} বা {b} এর মতো একটি অথেনটিকেশন অ্যাপ ইনস্টল করুন৷"
step2: "এরপরে, অ্যাপের সাহায্যে প্রদর্শিত QR কোডটি স্ক্যান করুন।"
step2Url: "ডেস্কটপ অ্যাপে, নিম্নলিখিত URL লিখুন:"
step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।"
step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।"
securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷"
@@ -1090,6 +1187,7 @@ _antennaSources:
homeTimeline: "আপনি অনুসরণ করছেন, এমন ব্যবহারকারীদের নোট"
users: "এক বা একাধিক নির্দিষ্ট ব্যবহারকারীর নোট"
userList: "নির্দিষ্ট তালিকায় নাম থাকা ব্যবহারকারীদের নোট"
userGroup: "নির্দিষ্ট গ্রুপে থাকা ব্যবহারকারীদের নোট"
_weekday:
sunday: "রবিবার"
monday: "সোমবার"
@@ -1099,8 +1197,6 @@ _weekday:
friday: "শুক্রবার"
saturday: "শনিবার"
_widgets:
profile: "প্রোফাইল"
instanceInfo: "ইন্সট্যান্সের তথ্য"
memo: "স্টিকি নোট"
notifications: "বিজ্ঞপ্তি"
timeline: "টাইমলাইন"
@@ -1120,8 +1216,6 @@ _widgets:
serverMetric: "সার্ভার মেট্রিক্স"
aiscript: "AiScript কনসোল"
aichan: "আই চান"
_userList:
chooseList: "লিস্ট নির্বাচন করুন"
_cw:
hide: "লুকান"
show: "আরও দেখুন"
@@ -1158,6 +1252,8 @@ _visibility:
followersDescription: "শুধুমাত্র আপনার অনুসরণকারীদের নিকট পোস্ট করুন"
specified: "ডাইরেক্ট নোট"
specifiedDescription: "শুধুমাত্র নির্দিষ্ট ব্যাবহারকারীর নিকট পাঠান"
localOnly: "শুধুমাত্র লোকাল"
localOnlyDescription: "রিমোট ব্যাবহারকারীদের নিকট দৃশ্যমান নয়"
_postForm:
replyPlaceholder: "নোটটির জবাব দিন..."
quotePlaceholder: "নোটটিকে উদ্ধৃত করুন..."
@@ -1220,12 +1316,6 @@ _timelines:
local: "স্থানীয়"
social: "সামাজিক"
global: "গ্লোবাল"
_play:
viewSource: "উৎস দেখুন"
featured: "জনপ্রিয়"
title: "শিরোনাম"
script: "স্ক্রিপ্ট"
summary: "বর্ণনা"
_pages:
newPage: "নতুন পৃষ্ঠা বানান"
editPage: "পৃষ্ঠাটি সম্পাদনা করুন"
@@ -1261,6 +1351,8 @@ _pages:
eyeCatchingImageRemove: "থাম্বনেইল সরান"
chooseBlock: "ব্লক যোগ করুন"
selectType: "ধরন নির্বাচন করুন"
enterVariableName: "চলকের নাম লিখুন"
variableNameIsAlreadyUsed: "চলকের নামটি ইতিপূর্বে ব্যাবহৃত হয়েছে"
contentBlocks: "বিষয়বস্তু"
inputBlocks: "ইনপুট"
specialBlocks: "বিশেষ"
@@ -1270,11 +1362,249 @@ _pages:
section: "বিভাগ"
image: "ছবি"
button: "বাটন"
if: "যদি"
_if:
variable: "চলকগুলি"
post: "নোট লিখুন"
_post:
text: "বিষয়বস্তু"
attachCanvasImage: "ক্যানভাস ছবিসহ পোস্ট করুন"
canvasId: "ক্যানভাস ID"
textInput: "টেক্সট ইনপুট"
_textInput:
name: "চলকের নাম"
text: "শিরোনাম"
default: "ডিফল্ট মান"
textareaInput: "একাধিক লাইনের টেক্সট ইনপুট"
_textareaInput:
name: "চলকের নাম"
text: "শিরোনাম"
default: "ডিফল্ট মান"
numberInput: "সংখ্যা ইনপুট"
_numberInput:
name: "চলকের নাম"
text: "শিরোনাম"
default: "ডিফল্ট মান"
canvas: "ক্যানভাস"
_canvas:
id: "ক্যানভাস ID"
width: "প্রস্থ"
height: "উচ্চতা"
note: "এম্বেড নোট"
_note:
id: "নোট ID"
idDescription: "আপনি এর বদলে নোটের URL পেস্ট করতে পারেন."
detailed: "বিস্তারিত দেখুন"
switch: "সুইচ"
_switch:
name: "চলকের নাম"
text: "শিরোনাম"
default: "ডিফল্ট মান"
counter: "কাউন্টার"
_counter:
name: "চলকের নাম"
text: "শিরোনাম"
inc: "এভাবে মান বাড়ান"
_button:
text: "শিরোনাম"
colored: "রঙ্গিন"
action: "বাটনে ক্লিক করলে যা হবে"
_action:
dialog: "ডায়ালগ দেখান "
_dialog:
content: "বিষয়বস্তু"
resetRandom: "র‍্যানডম সিড রিসেট করুন"
pushEvent: "ইভেন্ট পাঠান"
_pushEvent:
event: "ইভেন্টের নাম"
message: "চালু হলে প্রদর্শনের জন্য বার্তা"
variable: "পাঠানো চলক"
no-variable: "কিছুই না"
callAiScript: "AiScript চালান"
_callAiScript:
functionName: "ফাংশনের নাম"
radioButton: "বহুনির্বাচনী"
_radioButton:
name: "চলকের নাম"
title: "শিরোনাম"
values: "বিকল্পগুলিকে আলাদা লাইনে লিখুন"
default: "ডিফল্ট মান"
script:
categories:
flow: "নিয়ন্ত্রণ"
logical: "লজিক্যাল অপারেশন"
operation: "হিসাব-নিকাশ"
comparison: "তুলনা"
random: "র‍্যান্ডম"
value: "মান"
fn: "ফাংশন"
text: "টেক্সট ম্যানিপুলেশন"
convert: "রুপান্তর"
list: "লিস্ট"
blocks:
text: "লেখা"
multiLineText: "লেখা (একাধিক লাইন)"
textList: "লেখার লিস্ট"
_textList:
info: "প্রতিটি এন্ট্রিকে আলাদা লাইনে লিখুন"
strLen: "লেখার দৈর্ঘ্য"
_strLen:
arg1: "লেখা"
strPick: "অক্ষর বের করে আনুন"
_strPick:
arg1: "লেখা"
arg2: "অক্ষরের অবস্থান"
strReplace: "লেখা প্রতিস্থাপন"
_strReplace:
arg1: "লেখা"
arg2: "যে লেখা প্রতিস্থাপন করা হবে"
arg3: "যা দ্বারা প্রতিস্থাপন করা হবে"
strReverse: "লেখা উল্টান"
_strReverse:
arg1: "লেখা"
join: "লেখা যুক্ত করুন"
_join:
arg1: "লিস্ট"
arg2: "বিভাজক"
add: "যোগ"
_add:
arg1: "A"
arg2: "B"
subtract: "বিয়োগ"
_subtract:
arg1: "A"
arg2: "B"
multiply: "গুন"
_multiply:
arg1: "A"
arg2: "B"
divide: "ভাগ"
_divide:
arg1: "A"
arg2: "B"
mod: "ভাগশেষ"
_mod:
arg1: "A"
arg2: "B"
round: "দশমিক রাউন্ড করুন"
_round:
arg1: "সংখ্যা"
eq: "A ও B সমান"
_eq:
arg1: "A"
arg2: "B"
notEq: "A ও B সমান না"
_notEq:
arg1: "A"
arg2: "B"
and: "A এবং B"
_and:
arg1: "A"
arg2: "B"
or: "A অথবা B"
_or:
arg1: "A"
arg2: "B"
lt: "< A , B হতে কম"
_lt:
arg1: "A"
arg2: "B"
gt: "> A , B হতে বেশী"
_gt:
arg1: "A"
arg2: "B"
ltEq: "<= A , B হতে কম বা সমান"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: ">= A , B হতে বেশী বা সমান"
_gtEq:
arg1: "A"
arg2: "B"
if: "যদি"
_if:
arg1: "যদি"
arg2: "তাহলে"
arg3: "তাছাড়া"
not: "না"
_not:
arg1: "না"
random: "র‍্যান্ডম"
_random:
arg1: "সম্ভাব্যতা"
rannum: "র‍্যানডম সংখ্যা"
_rannum:
arg1: "ন্যূনতম মান"
arg2: "সর্বোচ্চ মান"
randomPick: "তালিকা থেকে দৈবচয়ন করুন"
_randomPick:
arg1: "লিস্ট"
dailyRandom: "র‍্যান্ডম সংখ্যা (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)"
_dailyRandom:
arg1: "সম্ভাব্যতা"
dailyRannum: "র‍্যান্ডম সংখ্যা (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)"
_dailyRannum:
arg1: "ন্যূনতম মান"
arg2: "সর্বোচ্চ মান"
dailyRandomPick: "তালিকা থেকে এলোমেলোভাবে নির্বাচন করুন (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)"
_dailyRandomPick:
arg1: "লিস্ট"
seedRandom: "র‍্যানডম (সীড দ্বারা)"
_seedRandom:
arg1: "সীড"
arg2: "সম্ভাব্যতা"
seedRannum: "র‍্যানডম সংখ্যা (সীড দ্বারা)"
_seedRannum:
arg1: "সীড"
arg2: "ন্যূনতম মান"
arg3: "সর্বোচ্চ মান"
seedRandomPick: "তালিকা থেকে দৈবচয়ন করুন (সীড দ্বারা)"
_seedRandomPick:
arg1: "সীড"
arg2: "লিস্ট"
DRPWPM: "সম্ভাব্যতা সহ একটি তালিকা থেকে এলোমেলোভাবে নির্বাচন করুন (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন)"
_DRPWPM:
arg1: "লেখার লিস্ট"
pick: "তালিকা থেকে নির্বাচন করুন"
_pick:
arg1: "লিস্ট"
arg2: "অবস্থান"
listLen: "লিস্টের দৈর্ঘ্য পান"
_listLen:
arg1: "লিস্ট"
number: "সংখ্যা"
stringToNumber: "পাঠ্য থেকে সংখ্যা"
_stringToNumber:
arg1: "লেখা"
numberToString: "সংখ্যা থেকে পাঠ্য"
_numberToString:
arg1: "সংখ্যা"
splitStrByLine: "পাঠ্যকে লাইনে বিভক্ত করুন"
_splitStrByLine:
arg1: "লেখা"
ref: "চলক"
aiScriptVar: "AiScript চলক"
fn: "ফাংশন"
_fn:
slots: "স্লটগুলি"
slots-info: "প্রতিটি স্লটকে আলাদা লাইনে লিখুন"
arg1: "আউটপুট"
for: "for-লুপ"
_for:
arg1: "কতবার চলবে"
arg2: "অ্যাকশন"
typeError: "স্লট {slot}, {expect} ধরনের মান গ্রহণ করে, কিন্তু {actual} ধরনের মান দেওয়া হয়েছে!"
thereIsEmptySlot: "স্লট {slot} খালি!"
types:
string: "লেখা"
number: "সংখ্যা"
boolean: "ফ্ল্যাগ"
array: "লিস্ট"
stringArray: "লেখার লিস্ট"
emptySlot: "খালি স্লট"
enviromentVariables: "এনভাইরনমেন্ট ভ্যারিয়েবল"
pageVariables: "পেজের চলক"
argVariables: "ইনপুটের জায়গা"
_relayStatus:
requesting: "অপেক্ষমান"
accepted: "অনুমোদিত"
@@ -1285,9 +1615,13 @@ _notification:
youGotReply: "{name} আপনাকে জবাব দিয়েছে"
youGotQuote: "{name} আপনাকে উদ্ধৃত করেছে"
youRenoted: "{name} এর Renote"
youGotPoll: "{name} আপনার পোলে ভোট দিয়েছে"
youGotMessagingMessageFromUser: "{name} আপনাকে মেসেজ করেছে"
youGotMessagingMessageFromGroup: "{name} গ্রুপে একটি নতুন মেসেজ আছে"
youWereFollowed: "আপনাকে অনুসরণ করছে"
youReceivedFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে"
yourFollowRequestAccepted: "আপনার অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
youWereInvitedToGroup: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
pollEnded: "পোলের ফলাফল দেখা যাবে"
emptyPushNotificationMessage: "আপডেট করা পুশ বিজ্ঞপ্তি"
_types:
@@ -1298,9 +1632,11 @@ _notification:
renote: "রিনোট"
quote: "উদ্ধৃতি"
reaction: "প্রতিক্রিয়া"
pollVote: "পোলে ভোট আছে"
pollEnded: "পোল শেষ"
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
groupInvited: "গ্রুপের আমন্ত্রনসমূহ"
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
_actions:
followBack: "ফলো ব্যাক করেছে"
@@ -1325,9 +1661,5 @@ _deck:
tl: "টাইমলাইন"
antenna: "অ্যান্টেনা"
list: "লিস্ট"
channel: "চ্যানেলগুলি"
mentions: "উল্লেখসমূহ"
direct: "ডাইরেক্ট নোটগুলি"
_webhookSettings:
name: "নাম"
active: "চালু"

View File

@@ -2,7 +2,6 @@
_lang_: "Català"
headlineMisskey: "Una xarxa connectada per notes"
introMisskey: "Benvingut! Misskey és un servei de microblogging descentralitzat de codi obert.\nCrea \"notes\" per compartir els teus pensaments amb tots els que t'envolten. 📡\nAmb \"reaccions\", també pots expressar ràpidament els teus sentiments sobre les notes de tothom. 👍\nExplorem un món nou! 🚀"
poweredByMisskeyDescription: "{name} És un del serveis (anomenats instàncies de Misskey) que utilitzen la plataforma de codi obert <b>Misskey</b>."
monthAndDay: "{day}/{month}"
search: "Cercar"
notifications: "Notificacions"
@@ -13,14 +12,12 @@ fetchingAsApObject: "Cercant en el Fediverse..."
ok: "OK"
gotIt: "Ho he entès!"
cancel: "Cancel·lar"
noThankYou: "No, gràcies"
enterUsername: "Introdueix el teu nom d'usuari"
renotedBy: "Impulsat per {usuari}"
renotedBy: "Resignat per {usuari}"
noNotes: "Cap nota"
noNotifications: "Cap notificació"
instance: "Servidor"
instance: "Instàncies"
settings: "Preferències"
notificationSettings: "Paràmetres de notificacions"
basicSettings: "Configuració bàsica"
otherSettings: "Configuració avançada"
openInWindow: "Obrir en una nova finestra"
@@ -32,7 +29,7 @@ loggingIn: "Identificant-se"
logout: "Tancar la sessió"
signup: "Registrar-se"
uploading: "Pujant..."
save: "Desa"
save: "Desar"
users: "Usuaris"
addUser: "Afegir un usuari"
favorite: "Afegir a preferits"
@@ -45,24 +42,16 @@ pin: "Fixar al perfil"
unpin: "Para de fixar del perfil"
copyContent: "Copiar el contingut"
copyLink: "Copiar l'enllaç"
delete: "Elimina"
deleteAndEdit: "Elimina i edita"
deleteAndEditConfirm: "Segur que vols eliminar aquesta publicació i editar-la? Perdràs totes les reaccions, impulsos i respostes."
delete: "Eliminar"
deleteAndEdit: "Esborrar i editar"
deleteAndEditConfirm: "Estàs segur que vols suprimir aquesta nota i editar-la? Perdràs totes les reaccions, notes i respostes."
addToList: "Afegir a una llista"
addToAntenna: "Afegir a l'antena"
sendMessage: "Enviar un missatge"
copyRSS: "Copiar RSS"
copyUsername: "Copiar nom d'usuari"
copyUserId: "Copiar ID d'usuari"
copyNoteId: "Copiar ID de nota"
copyFileId: "Copiar ID d'arxiu"
copyFolderId: "Copiar ID de carpeta"
copyProfileUrl: "Copiar URL del perfil"
searchUser: "Cercar un usuari"
searchUser: "Cercar usuaris"
reply: "Respondre"
loadMore: "Carregar més"
showMore: "Veure més"
showLess: "Mostra menys"
youGotNewFollower: "t'ha seguit"
receiveFollowRequest: "Sol·licitud de seguiment rebuda"
followRequestAccepted: "Sol·licitud de seguiment acceptada"
@@ -71,7 +60,7 @@ mentions: "Mencions"
directNotes: "Notes directes"
importAndExport: "Importar / Exportar"
import: "Importar"
export: "Exporta"
export: "Exportar"
files: "Fitxers"
download: "Baixar"
driveFileDeleteConfirm: "Estàs segur que vols suprimir el fitxer \"{name}\"? Les notes associades a aquest fitxer adjunt també se suprimiran."
@@ -104,12 +93,12 @@ followRequests: "Sol·licituds de seguiment"
unfollow: "Deixar de seguir"
followRequestPending: "Sol·licituds de seguiment pendents"
enterEmoji: "Introduir un emoji"
renote: "Impulsa"
unrenote: "Anul·la l'impuls"
renoted: "S'ha impulsat"
cantRenote: "No es pot impulsar aquesta publicació"
cantReRenote: "No es pot impulsar l'impuls."
quote: "Cita"
renote: "Renotar"
unrenote: "Anul·lar renota"
renoted: "Renotat."
cantRenote: "Aquesta publicació no pot ser renotada."
cantReRenote: "Impossible renotar una renota."
quote: "Citar"
pinnedNote: "Nota fixada"
pinned: "Fixar al perfil"
you: "Tu"
@@ -117,7 +106,6 @@ clickToShow: "Fes clic per mostrar"
sensitive: "NSFW"
add: "Afegir"
reaction: "Reaccions"
reactions: "Reaccions"
reactionSetting: "Reaccions a mostrar al selector de reaccions"
reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem \"+\" per afegir."
rememberNoteVisibility: "Recorda la configuració de visibilitat de les notes"
@@ -131,264 +119,23 @@ block: "Bloqueja"
unblock: "Desbloqueja"
suspend: "Suspèn"
unsuspend: "Deixa de suspendre"
blockConfirm: "Vols bloquejar?"
unblockConfirm: "Vols desbloquejar-lo?"
suspendConfirm: "Estàs segur que vols suspendre aquest compte?"
unsuspendConfirm: "Estàs segur que vols treure la suspensió d'aquest compte?"
selectList: "Tria una llista"
selectAntenna: "Tria una antena"
editAntenna: "Modificar antena"
selectWidget: "Triar un giny"
editWidgets: "Editar ginys"
editWidgetsExit: "Fet"
customEmojis: "Emojis personalitzats"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nom del emoji"
emojiUrl: "URL del emoji"
addEmoji: "Afegeix un emoji"
settingGuide: "Configuració recomanada"
cacheRemoteFiles: "Emmagatzemar fitxers remots"
cacheRemoteFilesDescription: "Quan aquesta opció està desactivada, els fitxers remots es carreguen directament des del servidor remot. Si desactiveu això, es reduirà l'ús d'emmagatzematge, però augmentarà el trànsit, ja que no es generaran miniatures."
flagAsBot: "Marca aquest compte com a bot"
flagAsBotDescription: "Marca aquest compte com a bot"
flagAsCat: "Marca aquest compte com a gat"
flagAsCatDescription: "Activeu aquesta opció per marcar aquest compte com a gat."
flagShowTimelineReplies: "Mostra les respostes a la línia de temps"
flagShowTimelineRepliesDescription: "Mostra les respostes a la línia de temps"
autoAcceptFollowed: "Aprova automàticament les sol·licituds de seguiment dels usuaris que segueixes"
addAccount: "Afegeix un compte"
loginFailed: "S'ha produït un error al accedir."
showOnRemote: "Navega més en el perfil original"
general: "General"
wallpaper: "Fons de Pantalla"
setWallpaper: "Defineix el fons de pantalla"
removeWallpaper: "Elimina el fons de pantalla"
searchWith: "Cerca: {q}"
youHaveNoLists: "No tens cap llista"
followConfirm: "Estàs segur que vols deixar de seguir {name}?"
proxyAccount: "Compte de proxy"
proxyAccountDescription: "Un compte proxy és un compte que actua com a seguidor remot per als usuaris en determinades condicions. Per exemple, quan un usuari afegeix un usuari remot a la llista, l'activitat de l'usuari remot no es lliurarà al servidor si cap usuari local segueix aquest usuari, de manera que el compte proxy el seguirà."
host: "Amfitrió"
selectUser: "Selecciona usuari/a"
recipient: "Destinatari"
annotation: "Comentaris"
federation: "Federació"
instances: "Servidors"
registeredAt: "Registrat a"
latestRequestReceivedAt: "Última petició rebuda"
latestStatus: "Últim estat"
storageUsage: "Emmagatzematge utilitzat"
charts: "Gràfics"
perHour: "Per hora"
perDay: "Per dia"
stopActivityDelivery: "Deixa d'enviar activitats"
blockThisInstance: "Deixa d'enviar activitats"
operations: "Accions"
software: "Programari"
version: "Versió"
metadata: "Metadades"
withNFiles: "{n} fitxer(s)"
monitor: "Monitor"
jobQueue: "Cua de tasques"
cpuAndMemory: "CPU i memòria"
network: "Xarxa"
disk: "Disc"
instanceInfo: "Informació del fitxer d'instal·lació"
statistics: "Estadístiques"
clearQueue: "Esborrar la cua"
clearQueueConfirmTitle: "Esteu segur que voleu esborrar la cua?"
clearQueueConfirmText: "Les notes no lliurades que quedin a la cua no es federaran. Normalment aquesta operació no és necessària."
clearCachedFiles: "Esborra la memòria cau"
clearCachedFilesConfirm: "Segur que voleu eliminar tots els fitxers de la memòria cau?"
blockedInstances: "Instàncies bloquejades"
muteAndBlock: "Silencia i bloca"
mutedUsers: "Usuaris silenciats"
blockedUsers: "Usuaris bloquejats"
noUsers: "No hi ha usuaris"
editProfile: "Edita el perfil"
noteDeleteConfirm: "Segur que voleu eliminar aquesta publicació?"
pinLimitExceeded: "No podeu fixar més publicacions"
intro: "La instal·lació de Misskey ha acabat! Crea un usuari d'administrador."
done: "Fet"
processing: "S'està processant..."
preview: "Vista prèvia"
default: "Per defecte"
defaultValueIs: "Per defecte: {value}"
noCustomEmojis: "Cap emoji personalitzat"
federating: "Federant"
blocked: "Bloquejat"
suspended: "Suspés"
publishing: "S'està publicant"
notResponding: "Sense resposta"
instanceFollowing: "Seguits del servidor"
instanceFollowers: "Seguidors del servidor"
instanceUsers: "Usuaris del servidor"
changePassword: "Canvia la contrasenya"
security: "Seguretat"
retypedNotMatch: "L'entrada no coincideix"
currentPassword: "Contrasenya actual"
newPassword: "Contrasenya nova"
newPasswordRetype: "Contrasenya nou (repeteix-la)"
attachFile: "Adjunta fitxers"
more: "Més"
featured: "Destacat"
usernameOrUserId: "Nom o ID d'usuari"
noSuchUser: "No s'ha trobat l'usuari"
lookup: "Cerca"
announcements: "Anuncis"
imageUrl: "URL de la imatge"
instances: "Instàncies"
remove: "Eliminar"
removed: "Eliminat"
removeAreYouSure: "Segur que voleu retirar «{x}»?"
deleteAreYouSure: "Segur que voleu retirar «{x}»?"
resetAreYouSure: "Segur que voleu restablir-ho?"
saved: "S'ha desat"
messaging: "Xat"
upload: "Puja"
start: "Comença"
home: "Inici"
activity: "Activitat"
images: "Imatges"
image: "Imatges"
birthday: "Aniversari"
yearsOld: "{age} anys"
registeredDate: "Data de registre"
location: "Ubicació"
theme: "Tema"
themeForLightMode: "Tema del mode clar"
themeForDarkMode: "Tema del mode fosc"
light: "Clar"
dark: "Fosc"
lightThemes: "Temes clars"
darkThemes: "Temes foscos"
syncDeviceDarkMode: "Sincronitza el mode fosc amb la configuració del dispositiu"
renameFile: "Canvia el nom del fitxer"
folderName: "Nom de la carpeta"
createFolder: "Crea una carpeta"
renameFolder: "Canvia el nom de la carpeta"
deleteFolder: "Elimina la carpeta"
addFile: "Afegeix un fitxer"
emptyFolder: "La carpeta està buida"
unableToDelete: "No es pot eliminar"
copyUrl: "Copia l'URL"
rename: "Canvia el nom"
reload: "Actualitza"
doNothing: "Ignora"
accept: "Accepta"
normal: "Nomal"
instanceName: "Nom del servidor"
instanceDescription: "Descripció del servidor"
maintainerName: "Nom de l'administrador"
maintainerEmail: "Correu electrònic de l'administrador"
tosUrl: "URL de les Condicions d'ús"
thisYear: "Enguany"
thisMonth: "Aquest mes"
today: "Avui"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pàgines"
integration: "Integració"
connectService: "Connecta"
disconnectService: "Desconnecta"
enableLocalTimeline: "Activa la línia de temps local"
enableGlobalTimeline: "Activa la línia de temps global"
registration: "Registre"
invite: "Convida"
basicInfo: "Informació bàsica"
pinnedUsers: "Usuaris fixats"
nsfw: "NSFW"
pinnedNotes: "Nota fixada"
turnstile: "Turnstile"
enableTurnstile: "Activar Turnstile"
turnstileSiteKey: "Clau del lloc"
turnstileSecretKey: "Clau secreta"
antennas: "Antena"
manageAntennas: "Gestiona les antenes"
antennaSource: "Font de l'antena"
antennaKeywords: "Paraules clau a seguir"
antennaExcludeKeywords: "Paraules clau a excloure"
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"
antennaUsersDescription: "Llistar un nom d'usuari per línia"
notesAndReplies: "Amb respostes"
silence: "Silencia"
silenceConfirm: "Segur que vols silenciar aquest usuari?"
unsilence: "Deixa de silenciar"
unsilenceConfirm: "Segur que vols deixar de silenciar aquest usuari?"
popularUsers: "Usuaris populars"
recentlyUpdatedUsers: "Usuaris actius fa poc"
recentlyRegisteredUsers: "Usuaris nous"
recentlyDiscoveredUsers: "Usuaris descoberts fa poc"
exploreUsersCount: "Hi ha {count} usuaris"
exploreFediverse: "Explora el fedivers"
popularTags: "Etiquetes populars"
userList: "Llistes"
about: "Informació"
aboutMisskey: "Quant a Misskey"
administrator: "Administrador/a"
moderator: "Moderador/a"
moderation: "Moderació"
nUsersMentioned: "{n} usuaris mencionats"
securityKey: "Clau de seguretat"
unregister: "Cancel·la el registre"
passwordLessLogin: "Inici de sessió sense contrasenya"
resetPassword: "Restableix la contrasenya"
newPasswordIs: "La contrasenya nova és «{password}»"
reduceUiAnimation: "Redueix les animacions de la interfície"
share: "Comparteix"
notFound: "No s'ha trobat"
markAsReadAllUnreadNotes: "Marca-ho tot com a llegit"
help: "Ajuda"
invites: "Convida"
next: "Següent"
noteOf: "Publicació de: {user}"
invitations: "Convida"
tags: "Etiquetes"
docSource: "Font del document"
createAccount: "Crea un compte"
existingAccount: "Compte existent"
regenerate: "Regenera"
fontSize: "Mida del text"
noFollowRequests: "No tens sol·licituds de seguiment"
dashboard: "Panell de control"
local: "Local"
remote: "Remot"
total: "Total"
appearance: "Aparença"
clientSettings: "Configuració del client"
accountSettings: "Configuració del compte"
hideThisNote: "Amaga la publicació"
showFeaturedNotesInTimeline: "Mostra publicacions destacades en la línia de temps"
newNoteRecived: "Hi ha publicacions noves"
installedDate: "Data d'instal·lació"
state: "Estat"
sort: "Ordena"
ascendingOrder: "Ascendent"
descendingOrder: "Descendent"
deletedNote: "Publicacions eliminades"
invisibleNote: "Publicacions amagades"
smtpHost: "Amfitrió"
smtpUser: "Nom d'usuari"
smtpPass: "Contrasenya"
renotesCount: "Impulsos fets"
renotedCount: "Impulsos rebuts"
clearCache: "Esborra la memòria cau"
showingPastTimeline: "Estàs veient una línia de temps antiga"
info: "Informació"
user: "Usuaris"
global: "Global"
searchByGoogle: "Cercar"
file: "Fitxers"
_role:
_options:
antennaMax: "Nombre màxim d'antenes"
_email:
_follow:
title: "t'ha seguit"
_instanceMute:
instanceMuteDescription: "Silencia tots els impulsos dels servidors seleccionats, també els usuaris que responen a altres d'un servidor silenciat."
_mfm:
mention: "Menció"
quote: "Citar"
search: "Cercar"
_theme:
keys:
mention: "Menció"
@@ -396,84 +143,55 @@ _theme:
_sfx:
note: "Notes"
notification: "Notificacions"
chat: "Xat"
antenna: "Antenes"
_2fa:
renewTOTPCancel: "No, gràcies"
_antennaSources:
all: "Totes les publicacions"
homeTimeline: "Publicacions dels usuaris seguits"
users: "Publicacions d'usuaris específics"
userList: "Publicacions d'una llista d'usuaris"
step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:"
_widgets:
profile: "Perfil"
instanceInfo: "Informació del fitxer d'instal·lació"
notifications: "Notificacions"
timeline: "Línia de temps"
activity: "Activitat"
federation: "Federació"
jobQueue: "Cua de tasques"
_userList:
chooseList: "Tria una llista"
_cw:
show: "Carregar més"
_visibility:
home: "Inici"
followers: "Seguidors"
_profile:
username: "Nom d'usuari"
_exportOrImport:
allNotes: "Totes les publicacions"
followingList: "Seguint"
muteList: "Silencia"
blockingList: "Bloqueja"
userLists: "Llistes"
_charts:
federation: "Federació"
_timelines:
home: "Inici"
local: "Local"
social: "Social"
global: "Global"
_pages:
contents: "Contingut"
blocks:
image: "Imatges"
_note:
id: "ID de la publicació"
detailed: "Mostra els detalls"
script:
categories:
list: "Llistes"
blocks:
_join:
arg1: "Llistes"
_randomPick:
arg1: "Llistes"
_dailyRandomPick:
arg1: "Llistes"
_seedRandomPick:
arg2: "Llistes"
_pick:
arg1: "Llistes"
_listLen:
arg1: "Llistes"
types:
array: "Llistes"
_notification:
youRenoted: "Impulsat per {name}"
youWereFollowed: "t'ha seguit"
unreadAntennaNote: "Antena {name}"
_types:
all: "Tots"
follow: "Seguint"
mention: "Menció"
renote: "Renotar"
quote: "Citar"
reaction: "Reaccions"
_actions:
followBack: "t'ha seguit també"
reply: "Respondre"
renote: "Renotar"
_deck:
columnAlign: "Alinea les columnes"
addColumn: "Afig una columna"
swapLeft: "Mou a lesquerra"
swapRight: "Mou a la dreta"
swapUp: "Mou cap amunt"
swapDown: "Mou cap avall"
popRight: "Col·loca a la dreta"
profile: "Perfil"
newProfile: "Perfil nou"
deleteProfile: "Elimina el perfil"
_columns:
main: "Principal"
widgets: "Ginys"
notifications: "Notificacions"
tl: "Línia de temps"
antenna: "Antena"
list: "Llistes"
mentions: "Mencions"
direct: "Publicacions directes"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,397 +0,0 @@
---
_lang_: "Ελληνικά"
monthAndDay: "{day}/{month}"
search: "Αναζήτηση"
notifications: "Ειδοποιήσεις"
username: "Όνομα μέλους"
password: "Κωδικός πρόσβασης"
forgotPassword: "Ξέχασα τον κωδικό πρόσβασης"
fetchingAsApObject: "Μαζεύοντας από το Fediverse..."
ok: "Εντάξει"
gotIt: "Τό'πιασα!"
cancel: "Ακύρωση"
enterUsername: "Εισάγετε το όνομα μέλους"
renotedBy: "Κοινοποιήθηκε από {user}"
noNotes: "Δεν υπάρχουν σημειώματα"
noNotifications: "Δεν υπάρχουν ειδοποιήσεις"
settings: "Ρυθμίσεις"
basicSettings: "Βασικές ρυθμίσεις"
otherSettings: "Άλλες ρυθμίσεις"
openInWindow: "Άνοιγμα σε παράθυρο"
profile: "Προφίλ"
timeline: "Χρονολόγιο"
noAccountDescription: "Αυτό το μέλος δεν έχει γράψει βιογραφικό ακόμη."
login: "Σύνδεση"
loggingIn: "Συνδέεστε"
logout: "Αποσύνδεση"
signup: "Δημιουργία λογαριασμού"
uploading: "Ανέβασμα..."
save: "Αποθήκευση"
users: "Μέλη"
addUser: "Προσθήκη μέλους"
favorite: "Προσθήκη στα αγαπημένα"
favorites: "Αγαπημένα"
unfavorite: "Αφαίρεση από αγαπημένα"
favorited: "Προστέθηκε στα αγαπημένα."
alreadyFavorited: "Έχει ήδη προστεθεί στα αγαπημένα."
cantFavorite: "Αδυναμία προσθήκης στα αγαπημένα."
pin: "Καρφίτσωμα στο προφίλ"
unpin: "Ξεκαρφίτσωμα από το προφίλ"
copyContent: "Αντιγραφή περιεχομένων"
copyLink: "Αντιγραφή συνδέσμου"
delete: "Διαγραφή"
deleteAndEdit: "Διαγραφή και επεξεργασία"
deleteAndEditConfirm: "Σίγουρα θέλετε να διαγράψετε αυτό το σημείωμα και να το επεξεργαστείτε; Θα χάσετε όλες τις αντιδράσεις, κοινοποιήσεις και απαντήσεις σε αυτό."
addToList: "Προσθήκη στη λίστα"
sendMessage: "Αποστολή μηνύματος"
copyUsername: "Αντιγραφή ονόματος μέλους"
searchUser: "Αναζήτηση μέλους"
reply: "Απάντηση"
loadMore: "Φόρτωσε περισσότερα"
showMore: "Δείξε περισσότερα"
showLess: "Κλείσιμο"
youGotNewFollower: "σε ακολούθησε"
receiveFollowRequest: "Λάβατε αίτημα ακολούθησης"
followRequestAccepted: "Το αίτημα ακολούθησης έγινε δεκτό"
mention: "Επισήμανση"
mentions: "Επισημάνσεις"
directNotes: "Απευθείας σημειώματα"
importAndExport: "Εισαγωγή / Εξαγωγή"
import: "Εισαγωγή"
export: "Εξαγωγή"
files: "Αρχεία"
download: "Λήψη"
driveFileDeleteConfirm: "Θέλετε σίγουρα να διαγράψετε το αρχείο \"{name}\"; Τα σημειώματα με αυτό το συνημμένο αρχείο επίσης θα διαγραφούν."
unfollowConfirm: "Θέλετε σίγουρα να σταματήσετε να ακολουθείτε το μέλος {name};"
exportRequested: "Ζητήσατε μία εξαγωγή. Αυτό μπορεί να πάρει κάποιον χρόνο. Επίσης θα προστεθεί στον Δίσκο σας μόλις ολοκληρωθεί."
importRequested: "Ζητήσατε μία εισαγωγή. Αυτό μπορεί να πάρει κάποιον χρόνο."
lists: "Λίστες"
noLists: "Δεν έχετε λίστες"
note: "Σημείωμα"
notes: "Σημειώματα"
following: "Ακολουθεί"
followers: "Ακολουθούν"
followsYou: "Σε ακολουθεί"
createList: "Δημιουργία λίστας"
manageLists: "Διαχείριση λιστών"
error: "Σφάλμα"
somethingHappened: "Προέκυψε ένα σφάλμα"
retry: "Προσπάθεια ξανά"
pageLoadError: "Ένα σφάλμα προέκυψε φορτώνοντας τη σελίδα."
pageLoadErrorDescription: "Αυτό κανονικά προκαλείται από σφάλματα δικτύου ή από την προσωρινή μνήμη του προγράμματος περιήγησης. Δοκιμάστε να σβήσετε την προσωρινή μνήμη (cache) και ξαναδοκιμάστε μετά από λίγο."
serverIsDead: "Αυτός ο server δεν αποκρίνεται. Παρακαλώ περιμέντε λίγο και δοκιμάστε ξανά."
youShouldUpgradeClient: "Για να δείτε αυτή τη σελίδα, παρακαλώ επαναφορτώστε για να ενημερωθεί το πρόγραμμα."
enterListName: "Πληκτρολογήστε ένα όνομα για τη λίστα"
privacy: "Ιδιωτικότητα"
makeFollowManuallyApprove: "Τα αιτήματα ακολούθησης χρειάζονται έγκριση"
defaultNoteVisibility: "Προεπιλεγμένη ορατότητα"
follow: "Ακολουθήστε"
followRequest: "Στείλτε αίτημα ακολούθησης"
followRequests: "Αιτήματα ακολούθησης"
unfollow: "Να μην ακολουθώ"
followRequestPending: "Το αίτημα ακολούθησης εκκρεμεί"
enterEmoji: "Εισάγετε ένα emoji"
renote: "Κοινοποίηση σημειώματος"
unrenote: "Ακύρωση κοινοποίησης"
renoted: "Κοινοποιήθηκε."
cantRenote: "Αυτή η δημοσίευση δεν μπορεί να κοινοποιηθεί."
cantReRenote: "Μία κοινοποίηση δεν μπορεί να κοινοποιηθεί."
quote: "Παράθεση"
pinnedNote: "Καρφιτσωμένο σημείωμα"
pinned: "Καρφίτσωμα στο προφίλ"
you: "Εσύ"
clickToShow: "Κάντε κλικ για εμφάνιση"
add: "Προσθέστε"
reaction: "Αντιδράσεις"
reactions: "Αντιδράσεις"
reactionSetting: "Αντιδράσεις για εμφάνιση στην επιλογή αντίδρασης"
reactionSettingDescription2: "Σύρετε για να αλλάξετε τη σειρά, κάντε κλικ για να διαγράψετε, πατήστε \"+\" για να προσθέσετε."
rememberNoteVisibility: "Θυμήσου τις ρυθμίσεις ορατότητας σημειώματος"
attachCancel: "Διαγραφή αρχείου"
enterFileName: "Πληκτρολογήστε όνομα αρχείου"
mute: "Σίγαση"
unmute: "Άρση σίγασης"
block: "Μπλοκάρισμα"
unblock: "Άρση μπλοκαρίσματος"
suspend: "Αποβολή"
unsuspend: "Άρση αποβολής"
blockConfirm: "Θέλετε σίγουρα να μπλοκάρετε αυτόν τον λογαριασμό;"
unblockConfirm: "Θέλετε σίγουρα να ξεμπλοκάρετε αυτόν τον λογαριασμό;"
suspendConfirm: "Θέλετε σίγουρα να αποβάλλετε αυτόν τον λογαριασμό;"
unsuspendConfirm: "Θέλετε σίγουρα να άρετε την αποβολή αυτού του λογαριασμού;"
selectList: "Επιλέξτε μία λίστα"
selectAntenna: "Επιλέξτε μία αντένα"
selectWidget: "Επιλέξτε ένα μαραφέτι"
editWidgets: "Επεξεργασία μαραφετίων"
editWidgetsExit: "Ολοκληρώθηκε"
customEmojis: "Επιπλέον emoji"
emojiName: "Όνομα emoji"
addEmoji: "Προσθήκη emoji"
settingGuide: "Συνιστώμενες ρυθμίσεις"
flagAsBot: "Αυτός ο λογαριασμός είναι bot"
flagAsCat: "Αυτός ο λογαριασμός είναι γάτα"
flagShowTimelineReplies: "Εμφάνιση απαντήσεων στο χρονολόγιο"
addAccount: "Προσθήκη λογαριασμού"
general: "Γενικές"
wallpaper: "Ταπετσαρία"
setWallpaper: "Ορισμός ταπετσαρίας"
removeWallpaper: "Διαγραφή ταπετσαρίας"
searchWith: "Αναζήτηση: {q}"
youHaveNoLists: "Δεν έχετε λίστες"
followConfirm: "Θέλετε σίγουρα να ακολουθήσετε τον λογαριασμό {name};"
host: "Φιλοξενεί"
selectUser: "Επιλέξτε ένα μέλος"
recipient: "Αποδέκτης-τρια"
annotation: "Σχόλια"
federation: "Ομοσπονδία"
storageUsage: "Χρήση χώρου"
version: "Έκδοση"
metadata: "Μεταδεδομένα"
network: "Δίκτυο"
disk: "Δίσκος"
instanceInfo: "Πληροφορίες του instance"
statistics: "Στατιστικά"
clearQueue: "Εκκαθάριση ουράς"
clearQueueConfirmTitle: "Θέλετε να διαγράψετε την ουρά;"
clearCachedFiles: "Εκκαθάριση προσωρινής μνήμης"
done: "Ολοκληρώθηκε"
attachFile: "Επισύναψη αρχείων"
more: "Περισσότερα!"
noSuchUser: "Το μέλος δεν βρέθηκε"
announcements: "Ανακοινώσεις"
imageUrl: "URL εικόνας"
remove: "Διαγραφή"
removed: "Η διαγραφή ολοκληρώθηκε επιτυχώς"
saved: "Αποθηκεύτηκε"
messaging: "Συνομιλία"
upload: "Ανεβάστε"
fromDrive: "Από τον Αποθηκευτικό Χώρο"
fromUrl: "Από URL"
uploadFromUrl: "Ανεβάστε από URL"
explore: "Εξερευνήστε"
messageRead: "Διαβάστηκε"
startMessaging: "Ξεκινήστε μία συνομιλία"
nUsersRead: "διαβάστηκε από {n}"
start: "Ας αρχίσουμε"
home: "Κεντρικό"
activity: "Δραστηριότητα"
images: "Εικόνες"
image: "Εικόνες"
birthday: "Γενέθλια"
registeredDate: "Έγινε μέλος στις"
location: "Τοποθεσία"
theme: "Θέματα"
light: "Ανοιχτόχρωμο"
dark: "Σκούρο"
drive: "Αποθηκευτικός Χώρος"
fileName: "Όνομα αρχείου"
selectFile: "Επιλέξτε ένα αρχείο"
selectFiles: "Επιλέξτε αρχεία"
selectFolder: "Επιλέξτε φάκελο"
selectFolders: "Επιλέξτε φακέλους"
renameFile: "Μετονομασία αρχείου"
addFile: "Προσθήκη αρχείου"
emptyDrive: "Ο Αποθηκευτικός Χώρος σας είναι άδειος"
copyUrl: "Αντιγραφή URL"
rename: "Αλλαγή ονόματος"
avatar: "Εικονίδιο"
banner: "Πανό"
reload: "Ανανέωση"
doNothing: "Αγνόηση"
watch: "Παρακολούθηση"
unwatch: "Τέλος παρακολούθησης"
accept: "Αποδοχή"
reject: "Απόρριψη"
normal: "Κανονικό"
instanceName: "Όνομα instance"
thisYear: "Έτος"
thisMonth: "Μήνας"
today: "Σήμερα"
dayX: "{day}"
pages: "Σελίδες"
connectService: "Σύνδεση"
disconnectService: "Αποσύνδεση"
registration: "Εγγραφή"
pinnedPages: "Καρφιτσωμένες Σελίδες"
pinnedNotes: "Καρφιτσωμένα σημειώματα"
antennas: "Αντένες"
manageAntennas: "Διαχείριση αντενών"
name: "Όνομα"
antennaSource: "Πηγή αντένας"
antennaKeywords: "Λέξεις-κλειδιά για παρακολούθηση"
antennaExcludeKeywords: "Λέξεις-κλειδιά για αποκλεισμό"
notifyAntenna: "Ειδοποίηση για νέα σημειώματα"
withFileAntenna: "Μόνο σημειώματα με αρχεία"
caseSensitive: "Διάκριση Πεζών-Κεφαλαίων"
popularTags: "Δημοφιλείς ετικέτες"
userList: "Λίστες"
about: "Πληροφορίες"
moderator: "Συντονιστής"
moderation: "Συντονισμός"
cacheClear: "Εκκαθάριση προσωρινής μνήμης"
markAsReadAllNotifications: "Όλες οι ειδοποιήσεις διαβάστηκαν"
members: "Μέλη"
transfer: "Μεταφορά"
title: "Τίτλος"
text: "Κείμενο"
enable: "Ενεργοποίηση"
next: "Επόμενο"
noteOf: "Σημείωμα από {user}"
quoteAttached: "Παράθεση"
signinRequired: "Παρακαλούμε δημιουργήστε λογαριασμό ή συνδεθείτε πριν συνεχίσετε"
category: "Κατηγορία"
tags: "Ετικέτες"
createAccount: "Δημιουργία λογαριασμού"
local: "Τοπικό"
remote: "Απομακρυσμένo"
total: "Σύνολο"
appearance: "Εμφάνιση"
accountSettings: "Ρυθμίσεις λογαριασμού"
sounds: "Ήχοι"
sound: "Ήχοι"
listen: "Ακρόαση"
showInPage: "Εμφάνιση στη σελίδα"
volume: "Ένταση"
masterVolume: "Κύρια ένταση"
details: "Λεπτομέρειες"
install: "Εγκατάσταση"
uninstall: "Κατάργηση εγκατάστασης"
manage: "Διαχείριση"
smtpHost: "Φιλοξενεί"
smtpUser: "Όνομα μέλους"
smtpPass: "Κωδικός πρόσβασης"
notificationSetting: "Ρυθμίσεις ειδοποιήσεων"
notificationSettingDesc: "Επιλέξτε τους τύπους ειδοποιήσεων που εμφανίζονται"
switchUi: "Αλλαγή UI"
clip: "Κλιπ"
driveFilesCount: "Αριθμός αρχείων Αποθηκευτικού Χώρου"
driveUsage: "Χρήση Αποθηκευτικού Χώρου"
noteFavoritesCount: "Αριθμός αγαπημένων σημειωμάτων"
clips: "Κλιπ"
clearCache: "Εκκαθάριση προσωρινής μνήμης"
emailNotification: "Ειδοποιήσεις μέσω mail"
inChannelSearch: "Αναζήτηση στο κανάλι"
info: "Πληροφορίες"
notRecommended: "Δεν προτείνεται"
switchAccount: "Αλλαγή λογαριασμού"
user: "Μέλη"
administration: "Διαχείριση"
switch: "Εναλλαγή"
gallery: "Γκαλερί"
global: "Παγκόσμιο"
searchResult: "Αποτελέσματα αναζήτησης"
learnMore: "Μάθετε περισσότερα"
controlPanel: "Πίνακας ελέγχου"
manageAccounts: "Διαχείριση Λογαριασμών"
searchByGoogle: "Αναζήτηση"
file: "Αρχεία"
recommended: "Προτεινόμενα"
cannotUploadBecauseNoFreeSpace: "Το ανέβασμα απέτυχε λόγω ανεπαρκούς Αποθηκευτικού Χώρου"
icon: "Εικονίδιο"
_email:
_follow:
title: "Έχετε ένα νέο ακόλουθο"
_channel:
featured: "Δημοφιλή"
_theme:
keys:
panel: "Πίνακας"
mention: "Επισήμανση"
renote: "Κοινοποίηση σημειώματος"
_sfx:
note: "Σημειώματα"
notification: "Ειδοποιήσεις"
chat: "Συνομιλία"
chatBg: "Συνομιλία (Παρασκήνιο)"
antenna: "Αντένες"
channel: "Ειδοποιήσεις καναλιών"
_ago:
future: "Μελλοντικό"
justNow: "Μόλις τώρα"
secondsAgo: "{n} δευτερόλεπτο(α) πριν"
minutesAgo: "{n} λεπτό(ά) πριν"
hoursAgo: "{n} ώρα(ες) πριν"
daysAgo: "{n} μέρα(ες) πριν"
weeksAgo: "{n} εβδομάδα(ες) πριν"
monthsAgo: "{n} μήνα(ες) πριν"
yearsAgo: "{n} έτος(η) πριν"
_permissions:
"write:drive": "Επεξεργαστείτε ή διαγράψτε τα αρχεία και τους φακέλους του Αποθηκευτικού Χώρου σας"
"read:favorites": "Δείτε τη λίστα των αγαπημένων σας"
"write:favorites": "Επεξεργαστείτε τη λίστα των αγαπημένων σας"
"read:messaging": "Δείτε τις συνομιλίες σας"
"write:messaging": "Γράψτε ή διαγράψτε μηνύματα συνομιλίας"
"read:notifications": "Δείτε τις ειδοποιήσεις σας"
"write:notifications": "Διαχειριστείτε τις ειδοποιήσεις σας"
"read:pages": "Δείτε τις Σελίδες σας"
"write:pages": "Επεξεργαστείτε ή διαγράψτε τις σελίδες σας"
_antennaSources:
all: "Όλα τα σημειώματα"
homeTimeline: "Σημειώματα από μέλη που ακολουθείτε"
users: "Σημειώματα από συγκεκριμένα μέλη"
userList: "Σημειώματα από καθορισμένη λίστα μελών"
_widgets:
profile: "Προφίλ"
instanceInfo: "Πληροφορίες του instance"
notifications: "Ειδοποιήσεις"
timeline: "Χρονολόγιο"
calendar: "Ημερολόγιο"
trends: "Δημοφιλή"
clock: "Ρολόι"
activity: "Δραστηριότητα"
photos: "Φωτογραφίες"
digitalClock: "Ψηφιακό ρολόι"
federation: "Ομοσπονδία"
postForm: "Φόρμα δημοσίευσης"
button: "Κουμπί"
onlineUsers: "Συνδεδεμένα μέλη"
_userList:
chooseList: "Επιλέξτε μία λίστα"
_cw:
show: "Δείτε περισσότερα"
_visibility:
home: "Κεντρικό"
homeDescription: "Δημοσίευση στο κεντρικό χρονολόγιο μόνο"
followers: "Ακολουθούν"
_profile:
name: "Όνομα"
username: "Όνομα μέλους"
_exportOrImport:
allNotes: "Όλα τα σημειώματα"
followingList: "Ακολουθεί"
muteList: "Μέλη σε σίγαση"
blockingList: "Μπλοκαρισμένα μέλη"
userLists: "Λίστες"
_charts:
federation: "Ομοσπονδία"
_timelines:
home: "Κεντρικό"
local: "Τοπικό"
social: "Κοινωνικό"
global: "Παγκόσμιο"
_pages:
viewPage: "Δείτε τις Σελίδες σας"
blocks:
image: "Εικόνες"
_notification:
youWereFollowed: "σε ακολούθησε"
_types:
follow: "Νέοι ακόλουθοι"
mention: "Επισήμανση"
renote: "Κοινοποίηση σημειώματος"
quote: "Παράθεση"
reaction: "Αντιδράσεις"
_actions:
reply: "Απάντηση"
renote: "Κοινοποίηση σημειώματος"
_deck:
widgetsIntroduction: "Παρακαλούμε επιλέξτε \"Επεξεργασία μαραφετίων\" στο μενού και προσθέστε μαραφέτι."
_columns:
widgets: "Μαραφέτια"
notifications: "Ειδοποιήσεις"
tl: "Χρονολόγιο"
antenna: "Αντένες"
list: "Λίστα"
mentions: "Επισημάνσεις"
_webhookSettings:
name: "Όνομα"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,73 +0,0 @@
import * as fs from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname } from 'node:path';
import * as yaml from 'js-yaml';
import ts from 'typescript';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
function createMembers(record) {
return Object.entries(record)
.map(([k, v]) => ts.factory.createPropertySignature(
undefined,
ts.factory.createStringLiteral(k),
undefined,
typeof v === 'string'
? ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword)
: ts.factory.createTypeLiteralNode(createMembers(v)),
));
}
export default function generateDTS() {
const locale = yaml.load(fs.readFileSync(`${__dirname}/ja-JP.yml`, 'utf-8'));
const members = createMembers(locale);
const elements = [
ts.factory.createInterfaceDeclaration(
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
ts.factory.createIdentifier('Locale'),
undefined,
undefined,
members,
),
ts.factory.createVariableStatement(
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
ts.factory.createVariableDeclarationList(
[ts.factory.createVariableDeclaration(
ts.factory.createIdentifier('locales'),
undefined,
ts.factory.createTypeLiteralNode([ts.factory.createIndexSignature(
undefined,
[ts.factory.createParameterDeclaration(
undefined,
undefined,
ts.factory.createIdentifier('lang'),
undefined,
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
undefined,
)],
ts.factory.createTypeReferenceNode(
ts.factory.createIdentifier('Locale'),
undefined,
),
)]),
undefined,
)],
ts.NodeFlags.Const | ts.NodeFlags.Ambient | ts.NodeFlags.ContextFlags,
),
),
ts.factory.createExportDefault(ts.factory.createIdentifier('locales')),
];
const printed = ts.createPrinter({
newLine: ts.NewLineKind.LineFeed,
}).printList(
ts.ListFormat.MultiLine,
ts.factory.createNodeArray(elements),
ts.createSourceFile('index.d.ts', '', ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS),
);
fs.writeFileSync(`${__dirname}/index.d.ts`, `/* eslint-disable */
// This file is generated by locales/generateDTS.js
// Do not edit this file directly.
${printed}`, 'utf-8');
}

View File

@@ -1,103 +0,0 @@
---
_lang_: "Japán"
monthAndDay: "{month}.{day}."
search: "Keresés"
notifications: "Értesítések"
username: "Felhasználónév"
password: "Jelszó"
forgotPassword: "Elfelejtett jelszó"
ok: "OK"
gotIt: "Rendben"
cancel: "Mégse"
noThankYou: "Nem, köszönöm"
enterUsername: "Felhasználónév megadása"
renotedBy: "{user} Renotolta"
noNotes: "Nincs Note"
noNotifications: "Nincs értesítés"
instance: "Szerver"
settings: "Beállítások"
notificationSettings: "Értesítés beállításai"
basicSettings: "Alapbeállítás"
otherSettings: "Egyéb beállítások"
openInWindow: "Megnyitás ablakban"
profile: "Saját profil"
timeline: "Idővonal"
noAccountDescription: "Nincs leírás"
login: "Bejelentkezés"
loggingIn: "Belépés"
logout: "Kijelentkezés"
signup: "Regisztráció"
uploading: "Feltöltés"
save: "Mentés"
users: "Felhasználók"
addUser: "Felhasználó hozzáadása"
favorite: "Kedvencek"
favorites: "Kedvencek"
unfavorite: "Törlés a kedvencek közül."
favorited: "Kedvencek közé rakva."
alreadyFavorited: "Már a kedvencek között van."
cantFavorite: "Nem sikerült a kedvencek közé rakni."
pin: "Rögzítés"
unpin: "Rögzítés feloldása"
copyContent: "Tartalom másolása"
copyLink: "Hivatkozás Másolása"
delete: "Törlés"
deleteAndEdit: "Törlés és szerkesztés"
deleteAndEditConfirm: "Biztosan törlöd ezt a jegyzetet és újrafogalmazza? Így eveszíted az összes reakciót, renote-ot és választ."
addToList: "Hozzáadás a listákhoz"
privacy: "Adatvédelem"
makeFollowManuallyApprove: "Csak jóváhagyással követhetnek"
defaultNoteVisibility: "Alapértelmezett láthatóság"
follow: "Követés"
followRequest: "Követés kérése"
followRequests: "Követési kérések"
unfollow: "Követés visszavonása"
followRequestPending: "Függőben levő követési kérés"
enterEmoji: "Írj egy emoji-t"
renote: "Renote"
unrenote: "Renote visszavonása"
renoted: "Renotolva"
cantRenote: "Nem lehet Renotolni"
cantReRenote: "A Renote nem renotálható"
quote: "Idézet"
inChannelRenote: "Csak csatornán bellüli Renote"
inChannelQuote: "Csak csatornán bellüli idézet"
pinnedNote: "Csatolt jegyzet"
pinned: "Rögzítés"
you: "Te"
clickToShow: "Kattints ide"
sensitive: "Érzékeny"
add: "Hozzáad"
reaction: "Reakciók"
reactions: "Reakciók"
instances: "Szerver"
remove: "Törlés"
pinnedNotes: "Csatolt jegyzet"
smtpUser: "Felhasználónév"
smtpPass: "Jelszó"
user: "Felhasználók"
searchByGoogle: "Keresés"
_theme:
keys:
renote: "Renote"
_sfx:
notification: "Értesítések"
_2fa:
renewTOTPCancel: "Nem, köszönöm"
_widgets:
profile: "Saját profil"
notifications: "Értesítések"
timeline: "Idővonal"
_profile:
username: "Felhasználónév"
_notification:
_types:
renote: "Renote"
quote: "Idézet"
reaction: "Reakciók"
_actions:
renote: "Renote"
_deck:
_columns:
notifications: "Értesítések"
tl: "Idővonal"

File diff suppressed because it is too large Load Diff

2240
locales/index.d.ts vendored

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,8 @@
* Languages Loader
*/
import * as fs from 'node:fs';
import * as yaml from 'js-yaml';
const fs = require('fs');
const yaml = require('js-yaml');
const merge = (...args) => args.reduce((a, c) => ({
...a,
@@ -34,7 +34,6 @@ const languages = [
'pt-PT',
'ru-RU',
'sk-SK',
'th-TH',
'ug-CN',
'uk-UA',
'vi-VN',
@@ -51,9 +50,9 @@ const primaries = {
// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8'))) || {}, a), {});
export default Object.entries(locales)
module.exports = Object.entries(locales)
.reduce((a, [k ,v]) => (a[k] = (() => {
const [lang] = k.split('-');
switch (k) {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1 @@
---
_lang_: "la .lojban."
headlineMisskey: "lo se tcana noi jorne fi loi notci"

View File

@@ -39,8 +39,10 @@ remove: "Kkes"
connectService: "Qqen"
userList: "Tibdarin"
securityKey: "Tasarutt n tɣellist"
securityKeyName: "Isem n tsarutt"
signinRequired: "Ttxil jerred"
signinWith: "Tuqqna s {x}"
tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist"
uiLanguage: "Tutlayt n wegrudem"
accountSettings: "Iɣewwaṛen n umiḍan"
plugins: "Izegrar"
@@ -59,6 +61,10 @@ account: "Imiḍan"
_email:
_follow:
title: "Yeṭṭafaṛ-ik·em-id"
_mfm:
mention: "Bder"
search: "Nadi"
font: "Tasefsit"
_theme:
keys:
mention: "Bder"
@@ -67,10 +73,7 @@ _sfx:
_permissions:
"write:account": "Ẓreg talɣut n umiḍan-ik·im"
_widgets:
profile: "Amaɣnu"
notifications: "Ilɣuyen"
_userList:
chooseList: "Fren tabdart"
_cw:
show: "Wali ugar"
_visibility:
@@ -92,6 +95,24 @@ _pages:
contentBlocks: "Agbur"
inputBlocks: "Anekcum"
specialBlocks: "Uzzig"
script:
categories:
list: "Tibdarin"
blocks:
_join:
arg1: "Tibdarin"
_randomPick:
arg1: "Tibdarin"
_dailyRandomPick:
arg1: "Tibdarin"
_seedRandomPick:
arg2: "Tibdarin"
_pick:
arg1: "Tibdarin"
_listLen:
arg1: "Tibdarin"
types:
array: "Tibdarin"
_notification:
youWereFollowed: "Yeṭṭafaṛ-ik·em-id"
_types:

View File

@@ -64,10 +64,11 @@ file: "ಕಡತಗಳು"
_email:
_follow:
title: "ಹಿಂಬಾಲಿಸಿದರು"
_mfm:
search: "ಹುಡುಕು"
_sfx:
notification: "ಅಧಿಸೂಚನೆಗಳು"
_widgets:
profile: "ಪ್ರೊಫೈಲು"
notifications: "ಅಧಿಸೂಚನೆಗಳು"
timeline: "ಸಮಯಸಾಲು"
_cw:

File diff suppressed because it is too large Load Diff

View File

@@ -1,463 +0,0 @@
---
_lang_: "ພາສາລາວ"
headlineMisskey: "ເຊື່ອມຕໍ່ເຄືອຂ່າຍໂດຍຫມາຍເຫດ"
introMisskey: "ຍິນດີຕ້ອນຮັບ! Misskey ເປັນແຫຼ່ງເປີດ, ການບໍລິການ microblogging ກະຈາຍ\nສ້າງ \"ບັນທຶກ\" ເພື່ອແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບທຸກໆຄົນທີ່ຢູ່ອ້ອມຮອບທ່ານ 📡\nດ້ວຍ \"ປະຕິກິລິຍາ\", ທ່ານຍັງສາມາດສະແດງຄວາມຮູ້ສຶກຂອງທ່ານຢ່າງໄວວາກ່ຽວກັບບັນທຶກຂອງທຸກໆຄົນ 👍\nມາສຳຫຼວດໂລກໃໝ່! 🚀"
poweredByMisskeyDescription: "{name} ແມ່ນສ່ວນໜຶ່ງຂອງການບໍລິການທີ່ຂັບເຄື່ອນໂດຍແພລດຟອມ open source. <b>Misskey</b> (ເອີ້ນວ່າ \"Misskey instance\")"
monthAndDay: "{ເດືອນ}/{ມື້}"
search: "ຄົ້ນຫາ"
notifications: "ການແຈ້ງເຕືອນ"
username: "ຊື່ຜູ້ໃຊ້"
password: "ລະຫັດຜ່ານ"
forgotPassword: "ລືມລະຫັດຜ່ານ"
fetchingAsApObject: "ກຳລັງດຶງຂໍ້ມູນຈາກ fediverse..."
ok: "ຕົກ​ລົງ"
gotIt: "ເຂົ້າໃຈແລ້ວ!"
cancel: "ຍົກເລີກ"
noThankYou: "ບໍ່​ແມ່ນ​ຕອນ​ນີ້"
enterUsername: "ປ້ອນຊື່ຜູ້ໃຊ້"
renotedBy: "Renoted ໂດຍ {ຜູ້ໃຊ້}"
noNotes: "ບໍ່ມີຫມາຍເຫດ"
noNotifications: "ບໍ່ມີການແຈ້ງເຕືອນ"
instance: "ອີນສະແຕນ"
settings: "ກຳນົດຄ່າ"
notificationSettings: "ຕັ້ງຄ່າການແຈ້ງເຕືອນ"
basicSettings: "ການຕັ້ງຄ່າພື້ນຖານ"
otherSettings: "ການຕັ້ງຄ່າອື່ນໆ"
openInWindow: "ເປີດຢູ່ໃນປ່ອງຢ້ຽມ"
profile: "ໂພຼຟາຍ"
timeline: "​ເສັ້ນກຳ​ນົດ​ເວ​ລາ​"
noAccountDescription: "ຜູ້ໃຊ້ນີ້ຍັງບໍ່ໄດ້ຂຽນໃນຊີວະປະຫວັດຂອງເຂົາເຈົ້າເທື່ອ"
login: "ເຂົ້າ​ສູ່​ລະ​ບົບ"
loggingIn: "ກຳລັງເຂົ້າສູ່ລະບົບ..."
logout: "ອອກ​ຈາກ​ລະ​ບົບ"
signup: "ລົງ​ທະ​ບຽນ"
uploading: "ການອັບໂຫຼດ..."
save: "ບັນທຶກ"
users: "ຜູ້ໃຊ້ຕ່າງໆ"
addUser: "ເພີ່ມຜູ້ໃຊ້"
favorite: "ເພີ່ມໃສ່ລາຍການທີ່ມັກ"
favorites: "ລາຍການທີ່ມັກ"
unfavorite: "ລຶບອອກຈາກລາຍການທີ່ມັກ"
favorited: "ເພີ່ມໃສ່ລາຍການທີ່ມັກແລ້ວ"
alreadyFavorited: "ເພີ່ມເຂົ້າໃນລາຍການທີ່ມັກແລ້ວ."
cantFavorite: "ບໍ່ສາມາດເພີ່ມໃສ່ລາຍການທີ່ມັກໄດ້."
pin: "ປັກໝຸດໄປຫາໂປຣໄຟລ໌"
unpin: "ຖອດປັກໝຸດອອກຈາກໂປຣໄຟລ໌"
copyContent: "ຄັດລອກເນື້ອຫາ"
copyLink: "ສຳເນົາລິ້ງ"
delete: "ລຶບ"
deleteAndEdit: "ລົບ​ແລະ​ແກ້​ໄຂ​"
deleteAndEditConfirm: "ເຈົ້າ​ແນ່​ໃຈ​ບໍ່? ທີ່ທ່ານຕ້ອງການທີ່ຈະລຶບບັນທຶກນີ້ແລະແກ້ໄຂມັນ ທ່ານອາດຈະສູນເສຍການໂຕ້ຕອບ, ບັນທຶກ, ແລະການຕອບກັບທັງໝົດ"
addToList: "ເພີ່ມໃສ່ລາຍຊື່"
addToAntenna: "ເພີ່ມໃສ່ເສົາອາກາດ"
sendMessage: "ສົ່ງຂໍ້ຄວາມ"
copyRSS: "ສຳເນົາ RSS"
copyUsername: "ສຳເນົາຊື່ຜູ້ໃຊ້"
copyUserId: "ສຳເນົາ ID ຜູ້ໃຊ້"
copyNoteId: "ສຳເນົາ ID ບັນທຶກ"
copyFileId: "ສຳເນົາ ID ໄຟລ໌"
copyFolderId: "ສຳເນົາ ID ໂຟນເດີ"
copyProfileUrl: "ສຳເນົາ URL ໂປຣໄຟລ໌"
searchUser: "ຄົ້ນຫາຜູ້ໃຊ້"
reply: "ຕອບ​ໄປ​ທີ"
loadMore: "ໂຫຼດເພີ່ມເຕີມ"
showMore: "ໂຫຼດເພີ່ມເຕີມ"
showLess: "ປິດ"
youGotNewFollower: "ໄດ້ຕິດຕາມທ່ານ"
receiveFollowRequest: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍທີ່ໄດ້ຮັບ"
followRequestAccepted: "ຜູ້ຕິດຕາມໄດ້ຍອມຮັບຄໍາຮ້ອງຂໍຂອງທ່ານ"
mention: "ໄດ້ກ່າວມາ"
mentions: "ກ່າວເຖິງ"
directNotes: "ໂດຍກົງຫມາຍເຫດ"
importAndExport: "ນໍາເຂົ້າ / ສົ່ງອອກ"
import: "ນຳເຂົ້າ"
export: "ນຳອອກ"
files: "ໄຟລ໌"
download: "ດາວໂຫລດ"
driveFileDeleteConfirm: "ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການລຶບໄຟລ໌ \"{name}\"? ບັນທຶກທີ່ມີໄຟລ໌ແນບນີ້ຈະຖືກລຶບຖິ້ມ"
unfollowConfirm: "ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການເຊົາຕິດຕາມ {name}?"
exportRequested: "ໃນເວລາທີ່ທ່ານໄດ້ຮ້ອງຂໍການສົ່ງອອກ ມັນອາດຈະໃຊ້ເວລາບາງເວລາ ແລະມັນຈະຖືກເພີ່ມໃສ່ drive ຂອງທ່ານເມື່ອມັນສຳເລັດແລ້ວ"
importRequested: "ໃນເວລາທີ່ທ່ານໄດ້ຮ້ອງຂໍການນໍາເຂົ້າ ມັນອາດຈະໃຊ້ເວລາບາງເວລາ"
lists: "ລາຍການ"
noLists: "ທ່ານ​ບໍ່​ມີ​ລາຍ​ການ​ໃດໆ​"
note: "ບັນທຶກ"
notes: "ບັນທຶກ"
following: "ກຳລັງຕິດຕາມ"
followers: "ຜູ້ຕິດຕາມ"
followsYou: "ຕິດ​ຕາມ​ເຈົ້າ"
createList: "ສ້າງລາຍຊື່"
manageLists: "ການບໍລິຫານບັນຊີລາຍການ"
error: "ຂໍ້ຜິດພາດ"
somethingHappened: "​ອຸຍ, ມີ​ບາງ​ຢ່າງ​ຜິ​ດ​ພາດ"
retry: "ລອງໃຫມ່"
pageLoadError: "ເກີດຄວາມຜິດພາດໃນການໂຫລດໜ້ານີ້"
pageLoadErrorDescription: "ປົກກະຕິແລ້ວມັນເກີດຈາກຄວາມຜິດພາດເຄືອຂ່າຍ ຫຼື cache ຂອງຕົວທ່ອງເວັບ ລອງລຶບລ້າງແຄດແລ້ວລອງໃໝ່ພາຍຫຼັງສອງສາມນາທີ"
serverIsDead: "ເຊີບເວີນີ້ບໍ່ຕອບສະໜອງ ກະລຸນາລໍຖ້າຈັກໜ່ອຍແລ້ວລອງໃໝ່ອີກຄັ້ງ"
youShouldUpgradeClient: "ເພື່ອເບິ່ງໜ້ານີ້, ກະລຸນາໂຫຼດຂໍ້ມູນຄືນໃໝ່ເພື່ອອັບເດດລູກຄ້າຂອງທ່ານ"
enterListName: "ໃສ່ຊື່ສຳລັບລາຍຊື່"
privacy: "ຄວາມເປັນສ່ວນຕົວ"
makeFollowManuallyApprove: "ປະຕິບັດຕາມການຮ້ອງຂໍຮຽກຮ້ອງໃຫ້ມີການອະນຸມັດ"
defaultNoteVisibility: "ເປັນຄ່າເລີ່ມຕົ້ນ"
follow: "ກຳລັງຕິດຕາມ"
followRequest: "ສົ່ງ​ການ​ຮ້ອງ​ຂໍ​ປະ​ຕິ​ບ​ຕາມ​"
followRequests: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍ"
unfollow: "ເຊົາຕິດຕາມ"
followRequestPending: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍທີ່ລໍຖ້າຢູ່"
enterEmoji: "ປ້ອນອີໂມຈິ"
renote: "Renote"
unrenote: "ເລີກ Renote"
renoted: "ເກັບບັນທຶກໄວ້"
cantRenote: "ໂພສນີ້ບໍ່ສາມາດຖືກບັນທຶກໄວ້ຄືນໃໝ່ໄດ້"
cantReRenote: "ບໍ່ສາມາດບັນທຶກຄືນໃໝ່ໄດ້"
quote: "ລວມຂໍ້ຄວາມອ້າງອີງ"
inChannelRenote: "ຊ່ອງພຽງແຕ່ Renote"
inChannelQuote: "ຊ່ອງເທົ່ານັ້ນ Quote"
pinnedNote: "ບັນທຶກທີ່ປັກໝຸດໄວ້"
pinned: "ປັກໝຸດໄປຫາໂປຣໄຟລ໌"
you: "ເຈົ້າ"
clickToShow: "ກົດເພື່ອສະແດງໃຫ້ເຫັນ"
sensitive: "NSFW"
add: "ເພີ່ມ"
reaction: "ປະຕິກິລິຍາ"
reactions: "ປະຕິກິລິຍາ"
attachCancel: "ເອົາໄຟລ໌ແນບ"
mute: "ປີດສຽງ"
unmute: "ເປີດສຽງ"
block: "ບ໋ອກ"
unblock: "ຍົກເລີກກາຮົບລັອກ"
suspend: "ລະງັບ"
unsuspend: "ເຊົາ​ລະ​ງັບ"
selectList: "ເລືອກບັນຊີລາຍການ"
editList: "ແກ້ໄຂລາຍຊື່"
selectChannel: "ເລືອກຊ່ອງ"
selectAntenna: "ເລືອກເສົາອາກາດ"
editAntenna: "ແກ້ໄຂເສົາອາກາດ"
selectWidget: "ເລືອກວິກເຈັດ"
editWidgets: "ແກ້ໄຂ Widget"
editWidgetsExit: "ສຳເລັດແລ້ວ"
customEmojis: "ອີໂມຈິແບບກຳນົດເອງ"
emoji: "ອີໂມຈິ"
emojis: "ອີໂມຈິ"
emojiName: "ຊື່ Emoji"
emojiUrl: "URL ອີໂມຈິ"
addEmoji: "ຕື່ມອີໂມຈິ"
settingGuide: "ການຕັ້ງຄ່າທີ່ແນະນໍາ"
flagAsBot: "ໝາຍບັນຊີນີ້ເປັນບັອດ"
flagAsCat: "ໝາຍບັນຊີນີ້ເປັນແມວ"
flagAsCatDescription: "ເປີດໃຊ້ຕົວເລືອກນີ້ເພື່ອໝາຍບັນຊີນີ້ເປັນແມວ"
flagShowTimelineReplies: "ສະແດງການຕອບກັບໃນທາມລາຍ"
flagShowTimelineRepliesDescription: "ສະແດງການຕອບກັບຂອງຜູ້ໃຊ້ຕໍ່ກັບບັນທຶກຂອງຜູ້ໃຊ້ອື່ນໃນທາມລາຍຖ້າເປີດໃຊ້ງານ"
autoAcceptFollowed: "ອະນຸມັດອັດຕະໂນມັດຕາມຄຳຮ້ອງຂໍຈາກຜູ້ໃຊ້ທີ່ທ່ານກຳລັງຕິດຕາມຢູ່"
addAccount: "ເພີ່ມບັນຊີ"
loginFailed: "ການເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ"
showOnRemote: "ເບິ່ງຢູ່ໃນຕົວຢ່າງໄລຍະໄກ"
general: "ທົ່ວໄປ"
wallpaper: "ພາບພື້ນຫລັງ"
setWallpaper: "ຕັ້ງເປັນພາບພື້ນຫຼັງ"
removeWallpaper: "ລຶບຮູບວໍເປເປີອອກ"
searchWith: "ຊອກຫາ: {q}"
youHaveNoLists: "ທ່ານ​ບໍ່​ມີ​ລາຍ​ການ​ໃດໆ​"
proxyAccount: "ບັນຊີພຣັອກຊີ"
host: "ໂຮດສ"
selectUser: "ເລືອກຜູ້ໃຊ້"
recipient: "ເຖິງ"
annotation: "ຄຳເຫັນ"
federation: "ສະຫະພັນ"
instances: "ອີນສະແຕນ"
registeredAt: "ລົງທະບຽນຢູ່"
storageUsage: "ບ່ອນ​ຈັດ​ເກັບ​ຂໍ້​ມູນທີ່ໃຊ້"
charts: "ອັນດັບເພງ"
perHour: "ຕໍ່ຊົ່ວໂມງ"
perDay: "ຕໍ່​ມື້"
stopActivityDelivery: "ຢຸດເຊົາການສົ່ງກິດຈະກໍາ"
blockThisInstance: "ຂັດຂວາງຕົວຢ່າງນີ້"
operations: "ການດຳເນີນງານ"
software: "ຊອບແວ"
version: "ສະບັບ"
metadata: "Metadata"
withNFiles: "{n} ໄຟລ໌(s)"
monitor: "ຈໍພາບ"
jobQueue: "ຄິວວຽກ"
cpuAndMemory: "CPU ແລະ ຫນ່ວຍຄວາມຈໍາ"
network: "ເຄືອຂ່າຍ"
disk: "ດິສກ໌"
instanceInfo: "ອີນສະແຕນ"
statistics: "ສະຖິຕິ"
clearQueue: "ລ້າງຄິວ"
clearCachedFiles: "ລຶບລ້າງແຄສ"
noUsers: "ບໍ່ພົບຜູ້ໃຊ້"
editProfile: "ແກ້ໄຂໂປຣໄຟລ໌"
done: "ສຳເລັດ"
processing: "ກຳລັງປະມວນຜົນ"
preview: "ສະແດງເປັນຕົວຢ່າງ"
default: "ຄ່າເລີ່ມຕົ້ນ"
defaultValueIs: "ຄ່າເລີ່ມຕົ້ນ: {value}"
noCustomEmojis: "ບໍ່ມີອີໂມຈິ"
noJobs: "ບໍ່ມີຊິ້ນວຽກ"
federating: "ສະຫະພັນ"
blocked: "ບລັອກແລ້ວ "
suspended: "ໂຈະ"
all: "ທັງໝົດ"
subscribing: "ສະໝັກສະມາຊິກແລັວ"
publishing: "ການ​ພິມ​ເຜີຍ​ແຜ່"
notResponding: "ບໍ່ຕອບສະໜອງ"
instanceFollowing: "ກຳລັງຕິດຕາມສຸດຕົວຢ່າງ"
instanceFollowers: "ຜູ້ຕິດຕາມຕົວຢ່າງ"
instanceUsers: "ຜູ້​ຊົມ​ໃຊ້​ຂອງ​ຕົວ​ຢ່າງ​ນີ້​"
changePassword: "ປ່ຽນ​ລະ​ຫັດ​ຜ່ານ"
security: "ຄວາມປອດໄພ"
retypedNotMatch: "ວັດສະດຸປ້ອນບໍ່ກົງກັນ"
currentPassword: "ລະຫັດຜ່ານປະຈຸບັນ"
newPassword: "ລະຫັດຜ່ານໃໝ່"
newPasswordRetype: "ໃສ່ລະຫັດຜ່ານໃໝ່ອີກເທື່ອໜຶ່ງ"
attachFile: "ແນບໄຟລ໌"
more: "ເພີ່ມເຕີມ!"
featured: "ໄຮໄລທ໌"
usernameOrUserId: "ຊື່ຜູ້ໃຊ້ ຫຼື id ຜູ້ໃຊ້"
noSuchUser: "ບໍ່ພົບຜູ້ໃຊ້"
lookup: "ຄົ້ນ​ຫາ"
announcements: "ປະກາດ"
imageUrl: "URL ຮູບພາບ"
remove: "ລຶບ"
removed: "ລຶບແລ້ວ"
resetAreYouSure: "ຣີ​ເຊັດບໍ?"
saved: "ບັນທຶກແລ້ວ"
messaging: "ແຊ໋ດ"
upload: "ອັບໂຫຼດ"
keepOriginalUploading: "ຮັກສາຮູບພາບຕົ້ນສະບັບ"
fromDrive: "ຈາກ Drive"
fromUrl: "ຈາກ URL"
uploadFromUrl: "ອັບໂຫຼດຈາກ URL"
uploadFromUrlDescription: "URL ຂອງໄຟລ໌ທີ່ທ່ານຕ້ອງການອັບໂຫລດ"
uploadFromUrlRequested: "ຮ້ອງຂໍການອັບໂຫລດ"
explore: "ສຳຫຼວດ"
messageRead: "ອ່ານແລ້ວ"
startMessaging: "ເລີ່ມການສົນທະນາໃໝ່"
nUsersRead: "ອ່ານໂດຍ {n}"
agree: "ຍອມຮັບ"
termsOfService: "ເງື່ອນໄຂການບໍລິການ"
start: "ເລີ່ມຕົ້ນນຳໃຊ້ເລີຍ"
home: "ໜ້າຫຼັກ"
activity: "ກິດຈະກຳ"
images: "ຮູບພາບ"
image: "ຮູບພາບ"
birthday: "ວັນເກີດ"
yearsOld: "{age} ປີ"
registeredDate: "ວັນທີ່ເປັນສະມາຊິກ"
location: "ທີ່ຕັ້ງ"
theme: "ແທ໋ມ"
themeForLightMode: "ຮູບແບບສີສັນເພື່ອໃຊ້ໃນໂໝດແສງ"
themeForDarkMode: "ຮູບແບບສີສັນທີ່ຈະໃຊ້ຢູ່ໃນໂໝດມືດ"
light: "ສະຫວ່າງ"
dark: "ມືດ"
lightThemes: "ຊຸດຮູບແບບສະຫວ່າງ"
darkThemes: "ຮູບແບບສີສັນມືດ"
syncDeviceDarkMode: "ຊິງຄ໌ໂໝດມືດກັບການຕັ້ງຄ່າທົ່ວອຸປະກອນ"
drive: "ຂັບ"
fileName: "ຊື່ໄຟລ໌"
selectFile: "ເລືອກໄຟລ໌"
selectFiles: "ເລືອກໄຟລ໌"
selectFolder: "ເລືອກໂຟລເດີ"
selectFolders: "ເລືອກໂຟລເດີ"
renameFile: "ປ່ຽນຊື່ໄຟລ໌"
folderName: "ຊື່ໂຟນເດີ"
createFolder: "​ສ້າງ​ໂຟ​ລ​ເດີ"
renameFolder: "ປ່ຽນຊື່ໂຟນເດີນີ້"
deleteFolder: "ລົບໂຟ​ລ​ເດີ​"
addFile: "ເພີ່ມໄຟລ໌"
emptyDrive: "Drive ຂອງທ່ານຫວ່າງເປົ່າ"
emptyFolder: "ໂຟນເດີນີ້ເປົ່າຫວ່າງ"
unableToDelete: "ບໍ່​ສາ​ມາດລົບໄດ້"
inputNewFileName: "ໃສ່ຊື່ໄຟລ໌ໃໝ່"
inputNewDescription: "ໃສ່ຄຳບັນຍາຍໃໝ່"
inputNewFolderName: "ໃສ່ຊື່ໂຟນເດີໃໝ່"
circularReferenceFolder: "ໂຟນເດີປາຍທາງແມ່ນໂຟນເດີຍ່ອຍຂອງໂຟນເດີທີ່ທ່ານຕ້ອງການຍ້າຍ"
rename: "ປ່ຽນຊື່"
doNothing: "ບໍ່ສົນໃຈ"
watch: "ເບິ່ງ"
unwatch: "ຢຸດເບິ່ງ"
accept: "ອະນຸຍາດ"
reject: "ປະຕິເສດ"
normal: "ປົກກະຕິ"
instanceName: "ຊື່ເຊີເວີ້"
instanceDescription: "ຄໍາອະທິບາຍຕົວຢ່າງ"
maintainerName: "ຜູ້ດູແລ"
maintainerEmail: "ອີເມວ admin"
tosUrl: "ເງື່ອນໄຂການໃຫ້ບໍລິການ URL"
thisYear: "ປີນີ້"
thisMonth: "ເດືອນນີ້"
today: "ມື້ນີ້"
dayX: "ວັນ {day}"
monthX: "ເດືອນ {month}"
yearX: "ປີ {year}"
pages: "ໜ້າ"
integration: "ຄວາມສຳພັນຂອງ"
connectService: "ເຊື່ອມຕໍ່"
disconnectService: "ຕັດການເຊື່ອມຕໍ່"
enableLocalTimeline: "ເປີດໃຊ້ທາມລາຍທ້ອງຖິ່ນ"
enableGlobalTimeline: "ເປີດໃຊ້ທາມລາຍທົ່ວໂລກ"
disablingTimelinesInfo: "ຜູ້ເບິ່ງແຍງລະບົບ ແລະຜູ້ຄວບຄຸມຈະມີການເຂົ້າເຖິງທຸກກຳນົດເວລາ, ເຖິງແມ່ນວ່າຈະບໍ່ໄດ້ເປີດໃຊ້ງານກໍຕາມ"
registration: "ລົງທະບຽນ"
enableRegistration: "ເປີດໃຊ້ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່"
invite: "ເຊີນ"
driveCapacityPerLocalAccount: "ຄວາມອາດສາມາດຂັບຕໍ່ຜູ້ໃຊ້ທ້ອງຖິ່ນ"
driveCapacityPerRemoteAccount: "ໄດຣຟ໌ຄວາມອາດສາມາດຕໍ່ຜູ້ໃຊ້ທາງໄກ"
basicInfo: "ຂໍ້ມຸນເບື້ອງຕົ້ນ"
pinnedNotes: "ບັນທຶກທີ່ປັກໝຸດໄວ້"
hcaptchaSiteKey: "ກະແຈໄຊທ໌"
hcaptchaSecretKey: "ກະແຈລັບ"
recaptcha: "reCAPTCHA"
enableRecaptcha: "ເປີດໃຊ້ງານລີແຄ໋ບຈາ"
recaptchaSiteKey: "ກະແຈໄຊທ໌"
recaptchaSecretKey: "ກະແຈລັບ"
turnstileSiteKey: "ກະແຈໄຊທ໌"
turnstileSecretKey: "ກະແຈລັບ"
name: "ຊື່"
userList: "ລາຍການ"
about: "ກ່ຽວກັບ"
aboutMisskey: "ກ່ຽວກັບ Misskey"
administrator: "ຜູ້ບໍລິຫານ"
token: "ໂທເຄັນ"
share: "ແບ່ງປັນ"
notFound: "ບໍ່ພົບ"
cacheClear: "ລຶບລ້າງແຄສ"
help: "ຊ່ວຍເຫຼືອ"
close: "ປິດ"
invites: "ເຊີນ"
members: "ສະມາຊິກ"
transfer: "ໂອນຍ້າຍ"
title: "ຫົວຂໍ້"
text: "ຂໍ້ຄວາມ"
enable: "ເປີດໃຊ້"
next: "ຕໍ່ໄປ"
retype: "ເຂົ້າໄປອີກຄັ້ງ"
quoteAttached: "ວົງຢືມ"
invitations: "ເຊີນ"
unavailable: "ບໍ່​ສາ​ມາດ​ໃຊ້​ໄດ້"
language: "ພາສາ"
aboutX: "ກ່ຽວກັບ {x}"
emojiStyle: "ຮູບແບບອີໂມຈິ"
native: "ພາ​ສາ​ແມ່"
noHistory: "​ບໍ່​ມີ​ລາຍ​ການ​ຢູ່​ບ່ອນ​ນີ້"
doing: "ກຳລັງປະມວນຜົນ..."
category: "ຫມວດຫມູ່"
tags: "ແທ໋ກ"
createAccount: "ສ້າງບັນຊີ"
existingAccount: "ທີ່ມີຢູ່"
dashboard: "ໜ້າປັດ"
local: "ທ້ອງຖິ່ນ"
numberOfDays: "ຈຳນວນມື້"
objectStorageBucket: "Bucket"
objectStoragePrefix: "Prefix"
objectStorageEndpoint: "Endpoint"
objectStorageRegion: "ພາກ​ພື້ນ"
deleteAll: "ລຶບທັງໝົດ"
sounds: "ສຽງ"
sound: "ສຽງ"
none: "ບໍ່ມີ"
volume: "ລະດັບສຽງ"
details: "ລາຍລະອຽດ"
install: "ຕິດຕັ້ງ"
uninstall: "ຖອນການຕິດຕັ້ງ"
state: "ສະຖານະ"
sort: "ຈັດຮຽງໂດຍ"
ascendingOrder: "ນ້ອຍໄປຫາໃຫຍ່"
descendingOrder: "ໃຫຍ່ຫານ້ອຍ"
output: "ຜົນຜະລິດ"
script: "ບົດ​ຄວາມ"
menu: "ເມນູ"
rearrange: "ຈັດລຽງຄືນ"
poll: "ການພູນ"
description: "ລາຍລະອຽດ"
author: "ຜູ້ຂຽນ"
manage: "ການຈັດການ"
plugins: "ປລັ໋ກອີນ"
width: "ກວ້າງ"
height: "ຄວາມສູງ"
large: "ໃຫຍ່."
medium: "ປານກາງ"
small: "ເລັກ"
permission: "ການອະນຸຍາດ"
notificationType: "​ປະເພດການ​ແຈ້ງ​ເຕືອນ"
edit: "ແກ້ໄຂ"
email: "ອີເມວ"
smtpHost: "ໂຮດສ"
smtpUser: "ຊື່ຜູ້ໃຊ້"
smtpPass: "ລະຫັດຜ່ານ"
clearCache: "ລຶບລ້າງແຄສ"
info: "ກ່ຽວກັບ"
user: "ຜູ້ໃຊ້ຕ່າງໆ"
administration: "ການຈັດການ"
middle: "ປານກາງ"
searchByGoogle: "ຄົ້ນຫາ"
file: "ໄຟລ໌"
_role:
_priority:
middle: "ປານກາງ"
_email:
_follow:
title: "ໄດ້ຕິດຕາມທ່ານ"
_theme:
description: "ລາຍລະອຽດ"
keys:
mention: "ໄດ້ກ່າວມາ"
renote: "Renote"
_sfx:
note: "ບັນທຶກ"
notification: "ການແຈ້ງເຕືອນ"
chat: "ແຊ໋ດ"
_2fa:
renewTOTPCancel: "ບໍ່​ແມ່ນ​ຕອນ​ນີ້"
_widgets:
profile: "ໂພຼຟາຍ"
instanceInfo: "ອີນສະແຕນ"
notifications: "ການແຈ້ງເຕືອນ"
timeline: "​ເສັ້ນກຳ​ນົດ​ເວ​ລາ​"
activity: "ກິດຈະກຳ"
federation: "ສະຫະພັນ"
jobQueue: "ຄິວວຽກ"
_userList:
chooseList: "ເລືອກບັນຊີລາຍການ"
_cw:
show: "ໂຫຼດເພີ່ມເຕີມ"
_visibility:
home: "ໜ້າຫຼັກ"
followers: "ຜູ້ຕິດຕາມ"
_profile:
name: "ຊື່"
username: "ຊື່ຜູ້ໃຊ້"
_exportOrImport:
followingList: "ກຳລັງຕິດຕາມ"
muteList: "ປີດສຽງ"
blockingList: "ບ໋ອກ"
userLists: "ລາຍການ"
_charts:
federation: "ສະຫະພັນ"
_timelines:
home: "ໜ້າຫຼັກ"
_play:
script: "ບົດ​ຄວາມ"
summary: "ລາຍລະອຽດ"
_pages:
blocks:
image: "ຮູບພາບ"
_notification:
youWereFollowed: "ໄດ້ຕິດຕາມທ່ານ"
_types:
follow: "ກຳລັງຕິດຕາມ"
mention: "ໄດ້ກ່າວມາ"
renote: "Renote"
quote: "ລວມຂໍ້ຄວາມອ້າງອີງ"
reaction: "ປະຕິກິລິຍາ"
_actions:
reply: "ຕອບ​ໄປ​ທີ"
renote: "Renote"
_deck:
_columns:
notifications: "ການແຈ້ງເຕືອນ"
tl: "​ເສັ້ນກຳ​ນົດ​ເວ​ລາ​"
list: "ລາຍການ"
channel: "ຊ່ອງ"
mentions: "ກ່າວເຖິງ"
_webhookSettings:
name: "ຊື່"

View File

@@ -2,7 +2,6 @@
_lang_: "Nederlands"
headlineMisskey: "Netwerk verbonden door notities"
introMisskey: "Welkom! Misskey is een open source, gedecentraliseerde microblogdienst.\nMaak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\" kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe wereld verkennen! 🚀"
poweredByMisskeyDescription: "{name} is één van de services die door het open source platform <b>Misskey</b> wordt geleverd (het wordt ook wel een \"Misskey server genmoemd\")."
monthAndDay: "{day} {month}"
search: "Zoeken"
notifications: "Meldingen"
@@ -13,14 +12,12 @@ fetchingAsApObject: "Ophalen vanuit de Fediverse"
ok: "Ok"
gotIt: "Begrepen"
cancel: "Annuleren"
noThankYou: "Nee, bedankt"
enterUsername: "Voer een gebruikersnaam in"
renotedBy: "Hergedeeld door {user}"
noNotes: "Geen notities"
noNotifications: "Geen meldingen"
instance: "Server"
settings: "Instellingen"
notificationSettings: "Notificatie instellingen"
basicSettings: "Basisinstellingen"
otherSettings: "Overige instellingen"
openInWindow: "In een venster openen"
@@ -49,20 +46,12 @@ delete: "Verwijderen"
deleteAndEdit: "Verwijderen en bewerken"
deleteAndEditConfirm: "Weet je zeker dat je deze notitie wilt verwijderen en dan bewerken? Je verliest alle reacties, herdelingen en antwoorden erop."
addToList: "Aan lijst toevoegen"
addToAntenna: "Voeg toe aan antenne"
sendMessage: "Verstuur bericht"
copyRSS: "Kopieer RSS"
copyUsername: "Kopiëren gebruikersnaam "
copyUserId: "Kopieer gebruiker ID"
copyNoteId: "Kopieer notitie ID"
copyFileId: "Kopieer veld ID"
copyFolderId: "Kopieer folder ID"
copyProfileUrl: "Kopieer profiel URL"
searchUser: "Zoeken een gebruiker"
reply: "Antwoord"
loadMore: "Laad meer"
showMore: "Toon meer"
showLess: "Sluiten"
youGotNewFollower: "volgde jou"
receiveFollowRequest: "Volgverzoek ontvangen"
followRequestAccepted: "Volgverzoek geaccepteerd"
@@ -117,8 +106,6 @@ clickToShow: "Klik om te bekijken"
sensitive: "NSFW"
add: "Toevoegen"
reaction: "Reacties"
reactions: "Reacties"
reactionSetting: "Reacties die in de reactie-selector worden getoond"
reactionSettingDescription2: "Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen"
rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen"
attachCancel: "Verwijder bijlage"
@@ -135,19 +122,6 @@ blockConfirm: "Weet je zeker dat je dit account wil blokkeren?"
unblockConfirm: "Ben je zeker dat je deze account wil blokkeren?"
suspendConfirm: "Ben je zeker dat je deze account wil suspenderen?"
unsuspendConfirm: "Ben je zeker dat je deze account wil opnieuw aanstellen?"
selectList: "Kies een lijst."
selectAntenna: "Kies een antenne"
selectWidget: "Kies een widget"
editWidgets: "Bewerk widgets"
editWidgetsExit: "Klaar"
customEmojis: "Maatwerk emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Naam emoji"
emojiUrl: "URL emoji"
addEmoji: "Toevoegen emoji"
settingGuide: "Aanbevolen instellingen"
cacheRemoteFiles: "Externe bestanden cachen"
flagAsBot: "Markeer dit account als een robot."
flagAsBotDescription: "Als dit account van een programma wordt beheerd, zet deze vlag aan. Het aanzetten helpt andere ontwikkelaars om bijvoorbeeld onbedoelde feedback loops te doorbreken of om Misskey meer geschikt te maken."
flagAsCat: "Markeer dit account als een kat."
@@ -174,6 +148,7 @@ annotation: "Reacties"
federation: "Federatie"
instances: "Server"
registeredAt: "Geregistreerd op"
latestRequestSentAt: "Laatste aanvraag verstuurd"
latestRequestReceivedAt: "Laatste aanvraag ontvangen"
latestStatus: "Laatste status"
storageUsage: "Gebruikte opslagruimte"
@@ -213,7 +188,6 @@ done: "Klaar"
processing: "Bezig met verwerken"
preview: "Voorbeeld"
default: "Standaard"
defaultValueIs: "Standaard: {value}"
noCustomEmojis: "Er zijn geen emojis"
noJobs: "Er zijn geen taken"
federating: "Federeren"
@@ -262,12 +236,12 @@ noMoreHistory: "Er is geen verdere geschiedenis"
startMessaging: "Start een gesprek"
nUsersRead: "gelezen door {n}"
agreeTo: "Ik stem in met {0}"
tos: "Gebruiksvoorwaarden"
start: "Aan de slag"
home: "Startpagina"
remoteUserCaution: "Aangezien deze gebruiker van een externe server afkomstig is, kan de weergegeven informatie onvolledig zijn."
activity: "Activiteit"
images: "Afbeeldingen"
image: "Afbeeldingen"
birthday: "Geboortedatum"
yearsOld: "{age} jaar"
registeredDate: "Inschrijvingsdatum"
@@ -296,97 +270,21 @@ emptyDrive: "Jouw Drive is leeg."
emptyFolder: "Deze map is leeg"
unableToDelete: "Kan niet worden verwijderd"
inputNewFileName: "Voer een nieuwe naam in"
inputNewDescription: "Voer hier het onderschrift in"
inputNewFolderName: "Naam invoeren voor nieuwe map"
circularReferenceFolder: "De bestemmingsmap is een submap van de map die je wilt verplaatsen."
hasChildFilesOrFolders: "Omdat deze map niet leeg is, kan die niet worden verwijderd."
copyUrl: "URL kopiëren"
rename: "Hernoemen"
avatar: "Avatar"
banner: "Banner"
nsfw: "NSFW"
whenServerDisconnected: "Wanneer de verbinding met de server wordt onderbroken"
disconnectedFromServer: "Verbinding met de server onderbroken."
reload: "Verversen"
doNothing: "Negeren"
reloadConfirm: "Weet je zeker dat je je tijdlijn wil verversen?"
watch: "Volgen"
unwatch: "Niet meer volgen"
accept: "Accepteren"
reject: "Weigeren"
normal: "Normaal"
instanceName: "Naam van de server"
instanceDescription: "Beschrijving van de server"
maintainerName: "Onderhouder"
maintainerEmail: "E-mailadres beheerder"
tosUrl: "URL gebruiksvoorwaarden"
thisYear: "Jaar"
thisMonth: "Maand"
today: "Vandaag"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pagina's"
integration: "Integraties"
connectService: "Verbinden"
disconnectService: "Verbinding verbreken"
enableLocalTimeline: "Inschakelen lokale tijdlijn"
enableGlobalTimeline: "Inschakelen globale tijdlijn "
disablingTimelinesInfo: "Beheerders en moderators hebben altijd toegang tot alle tijdlijnen, ook als ze niet actief zijn."
registration: "Registreren"
enableRegistration: "Inschakelen registratie nieuwe gebruikers "
invite: "Uitnodigen"
driveCapacityPerLocalAccount: "Opslagruimte per lokale gebruiker"
driveCapacityPerRemoteAccount: "Opslagruimte per externe gebruiker"
inMb: "in megabytes"
iconUrl: "Pictogram URL"
bannerUrl: "Banner URL"
backgroundImageUrl: "URL afbeelding"
basicInfo: "Basisinformatie"
pinnedUsers: "Vastgeprikte gebruikers"
pinnedPages: "Vastgeprikte pagina's"
pinnedNotes: "Vastgemaakte notitie"
hcaptcha: "hCaptcha"
enableHcaptcha: "Inschakelen hCaptcha"
hcaptchaSiteKey: "Site sleutel"
hcaptchaSecretKey: "Geheime sleutel"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Inschakelen reCAPTCHA"
recaptchaSiteKey: "Site sleutel"
recaptchaSecretKey: "Geheime sleutel"
turnstile: "Tourniquet"
enableTurnstile: "Inschakelen tourniquet"
turnstileSiteKey: "Site sleutel"
turnstileSecretKey: "Geheime sleutel"
antennas: "Antennes"
manageAntennas: "Antennes beheren"
name: "Naam"
antennaSource: "Bron antenne"
antennaKeywords: "Sleutelwoorden"
antennaExcludeKeywords: "Blokkeerwoorden"
withReplies: "Antwoorden toevoegen"
connectedTo: "De volgende accounts zijn verbonden"
notesAndReplies: "Berichten en reacties"
withFiles: "Bestanden toevoegen"
silence: "Dempen"
silenceConfirm: "Weet je zeker dat je deze gebruiker wil dempen?"
unsilence: "Dempen uitschakelen"
unsilenceConfirm: "Weet je zeker dat je deze gebruiker niet meer wil dempen?"
popularUsers: "Populaire gebruikers"
recentlyUpdatedUsers: "Recent actieve gebruikers"
recentlyRegisteredUsers: "Recent geregistreerde gebruikers"
recentlyDiscoveredUsers: "Nieuw ontdekte gebruikers "
exploreUsersCount: "Er zijn {count} gebruikers"
exploreFediverse: "Ontdek de Fediverse"
popularTags: "Populaire tags"
userList: "Lijsten"
about: "Over"
aboutMisskey: "Over Misskey"
administrator: "Beheerder"
token: "Token"
moderator: "Moderator"
moderation: "Moderatie"
nUsersMentioned: "Vermeld door {n} gebruikers"
securityKey: "Beveiligingssleutel"
securityKeyName: "Sleutelnaam"
registerSecurityKey: "Zekerheids-Sleutel registreren"
lastUsed: "Laatst gebruikt"
unregister: "Uitschrijven"
passwordLessLogin: "Inloggen zonder wachtwoord"
@@ -395,22 +293,11 @@ newPasswordIs: "Het nieuwe wachtwoord is „{password}”."
reduceUiAnimation: "Verminder beweging in de UI"
share: "Delen"
notFound: "Niet gevonden"
uploadFolder: "Standaardmap voor uploaden"
cacheClear: "Cache verwijderen"
markAsReadAllNotifications: "Markeer alle meldingen als gelezen"
markAsReadAllUnreadNotes: "Markeer alle berichten als gelezen"
markAsReadAllTalkMessages: "Markeer alle berichten als gelezen"
help: "Help"
inputMessageHere: "Voer hier je bericht in"
close: "Sluiten"
invites: "Uitnodigen"
invitations: "Uitnodigen"
sound: "Geluid"
smtpHost: "Server"
smtpUser: "Gebruikersnaam"
smtpPass: "Wachtwoord"
clearCache: "Cache opschonen"
info: "Over"
user: "Gebruikers"
muteThread: "Discussies dempen "
unmuteThread: "Dempen van discussie ongedaan maken"
@@ -419,17 +306,13 @@ searchByGoogle: "Zoeken"
cropImage: "Afbeelding bijsnijden"
cropImageAsk: "Bijsnijdengevraagd"
file: "Bestanden"
pushNotification: "Pushberichten"
subscribePushNotification: "Push meldingen inschakelen"
unsubscribePushNotification: "Pushberichten uitschakelen"
pushNotificationAlreadySubscribed: "Pushberichtrn al ingeschakeld"
windowMaximize: "Maximaliseren"
windowRestore: "Herstellen"
loggedInAsBot: "Momenteel als bot ingelogd"
icon: "Avatar"
_email:
_follow:
title: "volgde jou"
_mfm:
mention: "Vermelding"
quote: "Quote"
search: "Zoeken"
_theme:
keys:
mention: "Vermelding"
@@ -438,25 +321,18 @@ _sfx:
note: "Notities"
notification: "Meldingen"
chat: "Chat"
_2fa:
renewTOTPCancel: "Nee, bedankt"
_widgets:
profile: "Profiel"
instanceInfo: "Serverinformatie"
notifications: "Meldingen"
timeline: "Tijdlijn"
activity: "Activiteit"
federation: "Federatie"
jobQueue: "Job Queue"
_userList:
chooseList: "Kies een lijst."
_cw:
show: "Laad meer"
_visibility:
home: "Startpagina"
followers: "Volgers"
_profile:
name: "Naam"
username: "Gebruikersnaam"
_exportOrImport:
followingList: "Volgend"
@@ -472,9 +348,26 @@ _timelines:
_pages:
blocks:
image: "Afbeeldingen"
script:
categories:
list: "Lijsten"
blocks:
_join:
arg1: "Lijsten"
_randomPick:
arg1: "Lijsten"
_dailyRandomPick:
arg1: "Lijsten"
_seedRandomPick:
arg2: "Lijsten"
_pick:
arg1: "Lijsten"
_listLen:
arg1: "Lijsten"
types:
array: "Lijsten"
_notification:
youWereFollowed: "volgde jou"
unreadAntennaNote: "Antenne {name}"
_types:
follow: "Volgend"
mention: "Vermelding"
@@ -488,8 +381,5 @@ _deck:
_columns:
notifications: "Meldingen"
tl: "Tijdlijn"
antenna: "Antennes"
list: "Lijsten"
mentions: "Vermeldingen"
_webhookSettings:
name: "Naam"

View File

@@ -1,725 +1,2 @@
---
_lang_: "Norsk Bokmål"
headlineMisskey: "Et nettverk forbundet med Notes"
introMisskey: "Velkommen! Misskey er en desentralisert mikrobloggtjeneste med åpen kildekode.\nOpprett \"Notes\" for å dele tankene dine med alle rundt deg. 📡\nMed \"reaksjoner\" kan du også raskt gi uttrykk for hva du synes om alles Notes. 👍\nLa oss utforske en ny verden! 🚀"
monthAndDay: "{day}-{month}"
search: "Søk"
notifications: "Varsler"
username: "Brukernavn"
password: "Passord"
forgotPassword: "Glemt passord"
fetchingAsApObject: "Henter fra Fediverse..."
ok: "OK"
gotIt: "Skjønner"
cancel: "Avbryt"
noThankYou: "Ikke nå"
enterUsername: "Skriv inn brukernavn"
renotedBy: "Renotes av {user}"
noNotes: "Ingen Notes"
noNotifications: "Ingen varsler"
instance: "Server"
settings: "Innstillinger"
notificationSettings: "Varslingsinnstillinger"
basicSettings: "Grunnleggende innstillinger"
otherSettings: "Andre innstillinger"
openInWindow: "Åpne i vindu"
profile: "Profil"
timeline: "Tidslinje"
noAccountDescription: "Denne brukeren har ikke skrevet sin biografi ennå."
login: "Logg inn"
loggingIn: "Logget inn"
logout: "Logg ut"
signup: "Bli med"
uploading: "Laster opp"
save: "Lagre"
users: "Brukere"
addUser: "Legg til bruker"
favorite: "Legg til i favoritter"
favorites: "Favoritter"
unfavorite: "Fjern fra favoritter"
favorited: "Lagt til i favoritter."
alreadyFavorited: "Allerede lagt til i favoritter."
cantFavorite: "Kunne ikke legge til i favoritter."
pin: "Fest til profil"
unpin: "Fjern fra profil"
copyContent: "Kopier innhold"
copyLink: "Kopier lenke"
delete: "Slett"
deleteAndEdit: "Slett og rediger"
deleteAndEditConfirm: "Er du sikker på at du vil slette denne Noten og redigere den? Du vil miste alle reaksjoner, Renotes og svar på den."
addToList: "Legg til i liste"
sendMessage: "Send en melding"
copyRSS: "Kopier RSS"
copyUsername: "Kopier brukernavn"
searchUser: "Søk brukere"
reply: "Svar"
loadMore: "Vis mer"
showMore: "Vis mer"
showLess: "Lukk"
youGotNewFollower: "fulgte deg"
followRequestAccepted: "Følgeforespørsel akseptert"
importAndExport: "Importer og eksporter"
import: "Importer"
export: "Eksporter"
files: "Filer"
download: "Nedlastinger"
driveFileDeleteConfirm: "Er du sikker på at du vil slette \"{name}\"? Det vil også forsvinne fra alt innhold som bruker det."
unfollowConfirm: "Er du sikker på at du vil slutte å følge {name}?"
importRequested: "Du har bedt om import. Dette kan ta en stund."
lists: "Lister"
noLists: "Ingen lister"
note: "Note"
notes: "Notes"
following: "Følger"
followers: "Følgere"
followsYou: "Følger deg"
createList: "Opprett liste"
error: "Feil"
somethingHappened: "En feil har oppstått"
retry: "Prøv igjen"
pageLoadError: "Kunne ikke hente side."
serverIsDead: "Denne serveren svarer ikke. Vennligst vent en stund og prøv igjen."
enterListName: "Skriv inn et navn på listen"
privacy: "Personvern"
defaultNoteVisibility: "Standard synlighet"
follow: "Følg"
followRequest: "Følgeforespørsel"
followRequests: "Følgeforespørsel"
unfollow: "Avfølg"
followRequestPending: "Venter på godkjenning"
enterEmoji: "Skriv inn en emoji"
renote: "Renote"
renoted: "Renotet."
cantRenote: "Dette innlegget kan ikke renotes."
cantReRenote: "En Renote kan ikke renotes."
quote: "Sitat"
inChannelRenote: "Renote kun for kanal"
inChannelQuote: "Sitat kun for kanal"
pinnedNote: "Festet Note"
pinned: "Fest til profil"
you: "Du"
clickToShow: "Klikk for å vise"
add: "Legg til"
reaction: "Reaksjon"
reactions: "Reaksjoner"
reactionSetting: "Reaksjoner som vises i reaksjonsvelgeren"
reactionSettingDescription2: "Dra for å endre rekkefølgen, klikk for å slette, trykk \"+\" for å legge til."
rememberNoteVisibility: "Husk innstillingene for synlighet av Notes"
attachCancel: "Fjern vedlegg"
enterFileName: "Skriv inn filnavn"
mute: "Skjul"
unmute: "Vis"
renoteMute: "Skjul Renotes"
renoteUnmute: "Vis Renotes"
block: "Blokker"
unblock: "Opphev blokkering"
suspend: "Suspender"
blockConfirm: "Er du sikker på at du vil blokke denne kontoen?"
unblockConfirm: "Er du sikker på at du vil oppheve blokkeringen av denne kontoen?"
suspendConfirm: "Er du sikker på at du vil suspendere denne kontoen?"
selectList: "Velg en liste"
selectChannel: "Velg en kanal"
selectAntenna: "Velg en antenne"
selectWidget: "Velg en widget"
editWidgets: "Rediger widgeter"
editWidgetsExit: "Ferdig"
emoji: "Emoji"
emojis: "Emojier"
addEmoji: "Legg til emoji"
settingGuide: "Anbefalte innstillinger"
flagAsBot: "Merk denne kontoen som en bot"
flagAsBotDescription: "Aktiver dette alternativet hvis denne kontoen styres av et program. Hvis det er aktivert, vil det fungere som et flagg for andre utviklere for å forhindre endeløse interaksjonskjeder med andre roboter og justere Misskeys interne systemer til å behandle denne kontoen som en bot."
flagAsCat: "Merk denne kontoen som en katt"
flagAsCatDescription: "Aktiver dette alternativet for å merke denne kontoen som en katt."
flagShowTimelineReplies: "Vis svar i tidslinje"
addAccount: "Legg til konto"
reloadAccountsList: "Last inn kontoliste på nytt"
loginFailed: "Kunne ikke logge inn"
general: "Generelt"
searchWith: "Søk: {q}"
youHaveNoLists: "Du har ingen lister"
followConfirm: "Er du sikker på at du vil følge {name}?"
host: "Vert"
selectUser: "Velg en bruker"
recipient: "Mottaker"
annotation: "Kommentarer"
federation: "Føderasjon"
instances: "Servere"
registeredAt: "Registrerte seg"
latestRequestReceivedAt: "Siste forespørsel mottatt"
latestStatus: "Siste status"
charts: "Diagrammer"
perHour: "Per time"
perDay: "Per dag"
stopActivityDelivery: "Slutt å sende aktiviteter"
blockThisInstance: "Blokker denne serveren"
operations: "Operasjoner"
software: "Programvare"
version: "Versjon"
metadata: "Metadata"
withNFiles: "{n} fil(er)"
network: "Nettverk"
instanceInfo: "Serverinformasjon"
statistics: "Statistikk"
clearQueue: "Tøm kø"
clearQueueConfirmTitle: "Er du sikker på at du vil tømme køen?"
blockedInstances: "Blokkerte severe"
blockedInstancesDescription: "Skriv opp vertsnavnene til serverne du vil blokkere, atskilt med linjeskift. Serverne i listen vil ikke lenger kunne kommunisere med denne serveren."
muteAndBlock: "Skjul og blokker"
mutedUsers: "Skjulte brukere"
blockedUsers: "Blokkerte brukere"
noUsers: "Det er ingen brukere"
editProfile: "Rediger profil"
noteDeleteConfirm: "Er du sikker på at du vil slette denne Noten?"
pinLimitExceeded: "Du kan ikke feste flere."
intro: "Installasjonen av Misskey er ferdig! Vennligst opprett en administratorkonto."
done: "Ferdig"
default: "Standard"
defaultValueIs: "Standard: {value}"
noCustomEmojis: "Det er ingen emoji"
noJobs: "Det er ingen jobber"
blocked: "Blokkert"
suspended: "Suspendert"
all: "Alle"
notResponding: "Svarer ikke"
changePassword: "Endre passord"
security: "Sikkerhet"
retypedNotMatch: "Inngangene stemmer ikke overens."
currentPassword: "Nåværende passord"
newPassword: "Nytt passord"
newPasswordRetype: "Nytt passord (gjenta)"
attachFile: "Legg ved filer"
more: "Mer!"
noSuchUser: "Bruker ikke funnet"
announcements: "Kunngjøringer"
remove: "Slett"
removed: "Vellykket slettet"
removeAreYouSure: "Er du sikker på at du vil fjerne \"{x}\"?"
deleteAreYouSure: "Er du sikker på at du vil slette \"{x}\"?"
saved: "Lagret"
upload: "Laste opp"
keepOriginalUploading: "Behold originalbildet"
fromUrl: "Fra URL"
uploadFromUrl: "Last opp fra en URL"
uploadFromUrlDescription: "URL til filen du vil laste opp"
explore: "Utforsk"
messageRead: "Lest"
nUsersRead: "lest av {n}"
agreeTo: "Jeg godtar {0}"
agree: "Godta"
agreeBelow: "Jeg godtar følgende"
basicNotesBeforeCreateAccount: "Viktige merknader"
termsOfService: "Vilkår for bruk"
home: "Hjem"
activity: "Aktivitet"
images: "Bilder"
image: "Bilde"
birthday: "Bursdag"
yearsOld: "{age} år gammel"
theme: "Temaer"
light: "Lys"
dark: "Mørk"
lightThemes: "Lyse temaer"
darkThemes: "Mørke temaer"
syncDeviceDarkMode: "Synkroniser mørkmodus med enhetens innstillinger"
fileName: "Filnavn"
selectFile: "Velg en fil"
selectFiles: "Velg filer"
selectFolder: "Velg en mappe"
selectFolders: "Velg mapper"
renameFile: "Endre filnavn"
folderName: "Mappenavn"
createFolder: "Opprett en mappe"
renameFolder: "Endre mappenavn"
deleteFolder: "Slett denne mappen"
addFile: "Legg til en fil"
emptyFolder: "Denne mappen er tom"
unableToDelete: "Kan ikke slette"
inputNewFileName: "Skriv inn et nytt filnavn"
inputNewDescription: "Skriv inn ny bildetekst"
inputNewFolderName: "Skriv inn et nytt mappenavn"
circularReferenceFolder: "Målmappen er en undermappe til mappen du ønsker å flytte."
hasChildFilesOrFolders: "Siden denne mappen ikke er tom, kan den ikke slettes."
copyUrl: "Kopier URL"
rename: "Endre navn"
avatar: "Avatar"
banner: "Banner"
doNothing: "Ignorer"
accept: "Tillatt"
reject: "Avslå"
instanceName: "Servernavn"
instanceDescription: "Serverbeskrivelse"
thisYear: "År"
thisMonth: "Måned"
today: "I dag"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Sider"
integration: "Integrasjon"
enableLocalTimeline: "Aktiver lokal tidslinje"
enableGlobalTimeline: "Aktiver global tidslinje"
disablingTimelinesInfo: "Administratorer og Moderatorer vil alltid ha tilgang til alle tidslinjer, selv om de ikke er aktivert."
registration: "Registrer"
enableRegistration: "Aktiver registrering av nye brukere"
invite: "Inviter"
basicInfo: "Grunnleggende informasjon"
pinnedUsers: "Festede brukrere"
pinnedUsersDescription: "Liste over brukernavn atskilt med linjeskift som skal festes i \"Utforsk\" fanen."
pinnedPages: "Festede sider"
pinnedNotes: "Festet Note"
hcaptcha: "hCaptcha"
enableHcaptcha: "Aktiver hCaptcha"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Aktiver reCAPTCHA"
turnstile: "Turnstile"
enableTurnstile: "Aktiver Turnstile"
antennas: "Antenner"
name: "Navn"
antennaSource: "Antennekilde"
notifyAntenna: "Varsle om nye Notes"
withFileAntenna: "Bare Notes med filer"
notesAndReplies: "Notes og svar"
popularUsers: "Populære brukere"
exploreUsersCount: "Det finnes {count} brukere"
exploreFediverse: "Utforsk Fediverse"
userList: "Lister"
about: "Informasjon"
aboutMisskey: "Om Misskey"
newPasswordIs: "Det nye passordet er \"{password}\"."
share: "Del"
notFound: "Ikke funnet"
markAsReadAllNotifications: "Merk alle varsler som lest"
markAsReadAllUnreadNotes: "Merk alle Notes som lest"
help: "Hjelp"
inputMessageHere: "Skriv inn melding her"
close: "Lukk"
invites: "Inviter"
members: "Medlemmer"
title: "Tittel"
text: "Tekst"
next: "Neste"
retype: "Gjenta"
quoteAttached: "Sitat"
noMessagesYet: "Ingen meldinger ennå"
newMessageExists: "Det er nye meldinger"
onlyOneFileCanBeAttached: "Du kan bare legge ved én fil i en melding"
invitations: "Inviter"
available: "Tilgjengelig"
unavailable: "Utilgjengelig"
tooShort: "For kort"
tooLong: "For langt"
weakPassword: "Svakt passord"
normalPassword: "Gjennomsnittlig passord"
strongPassword: "Sterkt passord"
signinWith: "Logg inn med {x}"
signinFailed: "Kunne ikke logge inn. Det oppgitte brukernavnet eller passordet er feil."
or: "eller"
language: "Språk"
aboutX: "Om {x}"
category: "Kategori"
createAccount: "Opprett konto"
openImageInNewTab: "Åpne bilder i ny fane"
clientSettings: "Klientinnstillinger"
accountSettings: "Kontoinnstillinger"
objectStorageRegion: "Region"
objectStorageUseSSL: "Bruk SSL"
objectStorageUseProxy: "Bruk Proxy"
deleteAll: "Slett alt"
newNoteRecived: "Det er nye Notes"
listen: "Lytt"
none: "Ingen"
volume: "Volum"
chooseEmoji: "Velg emoji"
recentUsed: "Sist brukte"
install: "Installer"
uninstall: "Avinstaller"
nothing: "Ingenting"
deleteAllFiles: "Slett alle filer"
deleteAllFilesConfirm: "Er du sikker på at du vil slette alle filer?"
userSuspended: "Denne brukeren har blitt suspendert."
accountDeleted: "Kontoen blir slettet"
accountDeletedDescription: "Denne kontoen har blitt slettet."
menu: "Meny"
poll: "Avstemning"
description: "Beskrivelse"
author: "Forfatter"
height: "Høyde"
large: "Stor"
small: "Liten"
notificationType: "Varseltype"
edit: "Rediger"
email: "E-post"
smtpHost: "Vert"
smtpUser: "Brukernavn"
smtpPass: "Passord"
userSaysSomething: "{name} sa noe"
copy: "Kopier"
channel: "Kanaler"
create: "Opprett"
notificationSetting: "Varslingsinnstillinger"
other: "Andre"
behavior: "Oppførsel"
sample: "Eksempel"
abuseReports: "Rappoter"
reportAbuse: "Rappoter"
send: "Send"
openInNewTab: "Åpne i ny fane"
waitingFor: "Venter på {x}"
random: "Tilfeldig"
system: "System"
desktop: "Skrivebord"
i18nInfo: "Misskey oversettes til flere språk av frivillige. Du kan hjelpe til på {link}."
followingCount: "Følger"
followersCount: "Følgere"
yes: "Ja"
no: "Nei"
contact: "Kontakt"
developer: "Utvikler"
makeExplorable: "Gjør konto synlig i \"Utforsk\""
makeExplorableDescription: "Hvis du slår av dette, vises ikke kontoen din i \"Utforsk\" delen."
left: "Venstre"
nNotes: "{n} Notes"
saveAs: "Lagre som"
value: "Verdi"
deleteConfirm: "Vil du slette?"
invalidValue: "Verdien er ugyldig."
closeAccount: "Avslutt konto"
emailNotification: "E-postvarsler"
inChannelSearch: "Søk i kanal"
clear: "Tøm"
markAllAsRead: "Merk alt som lest"
addDescription: "Legg til beskrivelse"
info: "Infomasjon"
unknown: "Ukjent"
selectAccount: "Velg konto"
user: "Brukere"
accounts: "Kontoer"
switch: "Bytt"
gallery: "Galleri"
ads: "Annonser"
memo: "Notat"
high: "Høy"
low: "Lav"
sent: "Sendt"
received: "Mottatt"
learnMore: "Les mer"
misskeyUpdated: "Misskey har blitt oppdatert!"
translate: "Oversett"
translatedFrom: "Oversatt fra {x}"
unread: "Ulest"
manageAccounts: "Administrer konto"
classic: "Klassisk"
muteThread: "Skjul denne tråden"
unmuteThread: "Vis denne tråden"
continueThread: "Vis fortsettelse av tråden"
hide: "Skjul"
smartphone: "Smarttelefon"
tablet: "Nettbrett"
auto: "Automatisk"
size: "Størrelse"
searchByGoogle: "Søk"
tenMinutes: "10 minutter"
oneHour: "1 time"
oneDay: "1 dag"
oneWeek: "1 uke"
oneMonth: "1 måned"
file: "Filer"
recommended: "Anbefalt"
check: "Sjekk"
deleteAccount: "Slett konto"
document: "Dokumenter"
logoutConfirm: "Vil du logge ut?"
pleaseSelect: "Velg et alternativ"
type: "Type"
beta: "Beta"
account: "Konto"
move: "Flytt"
pushNotification: "Push-varsler"
tools: "Verktøy"
like: "Liker!"
unlike: "Liker ikke"
numberOfLikes: "Likerklikk"
show: "Vis"
neverShow: "Ikke vis igjen"
remindMeLater: "Kanskje senere"
didYouLikeMisskey: "Likte du Misskey?"
roles: "Roller"
role: "Rolle"
color: "Farge"
youCannotCreateAnymore: "Du kan ikke opprette flere."
cannotPerformTemporary: "Midlertidig utilgjengelig"
achievements: "Prestasjoner"
thisPostMayBeAnnoyingCancel: "Avbryt"
exploreOtherServers: "Utforsk andre severe"
letsLookAtTimeline: "La oss se på tidslinje"
cannotBeChangedLater: "Du kan ikke endre senere."
likeOnly: "Bare liker"
retryAllQueuesConfirmTitle: "Vil du prøve igjen akkurat nå?"
video: "Video"
videos: "Videoer"
continue: "Fortsett"
youFollowing: "Følger"
options: "Alternativ"
icon: "Avatar"
_initialAccountSetting:
theseSettingsCanEditLater: "Du kan endre disse innstillingene senere."
_achievements:
_types:
_notes10:
title: "Noen Notes"
_notes100:
title: "Mange Notes"
_notes500:
title: "Dekket i Notes"
_notes1000:
title: "Et fjell av Notes"
_notes5000:
title: "Overfylte Notes"
_notes10000:
title: "Super Notes"
_notes20000:
title: "Trenger... mer... Notes..."
_notes30000:
title: "Notes Notes Notes!"
_notes40000:
title: "Note fabrikk"
_notes50000:
title: "Planet av Notes"
_notes100000:
flavor: "Du har jammen mye å si."
_noteFavorited1:
title: "Stjernekikker"
_myNoteFavorited1:
title: "Jeg vil gjerne få en stjerne"
_following50:
title: "Mange venner"
_following100:
title: "100 venner"
_following300:
title: "For mange venner"
_followers10:
title: "Følg meg!"
_followers100:
title: "Populær"
_postedAtLateNight:
flavor: "Det er på tide å gå til sengs."
_driveFolderCircularReference:
title: "Rundskrivreferanse"
_reactWithoutRead:
title: "Leste du det virkelig?"
_clickedClickHere:
title: "Klikk her"
description: "Du har klikket her"
_justPlainLucky:
title: "Rett og slett heldig"
_setNameToSyuilo:
description: "Du satte navnet ditt til \"syuilo\""
_passedSinceAccountCreated1:
title: "Ett års jubileum"
description: "Det har gått ett år siden kontoen din ble opprettet"
_passedSinceAccountCreated2:
title: "To års jubileum"
description: "Det har gått to år siden kontoen din ble opprettet"
_passedSinceAccountCreated3:
title: "Tre års jubileum"
description: "Det har gått tre år siden kontoen din ble opprettet"
_loggedInOnBirthday:
title: "Gratulerer med dagen"
description: "Du logget inn på bursdagen din"
_loggedInOnNewYearsDay:
title: "Godt nytt år"
description: "Du logget inn på årets første dag"
_cookieClicked:
description: "Du klikket på kjeksen"
flavor: "Er du på riktig nettsted?"
_brainDiver:
title: "Brain Diver"
flavor: "Misskey-Misskey La-Tu-Ma"
_role:
options: "Alternativ"
_priority:
low: "Lav"
high: "Høy"
_emailUnavailable:
used: "Allerede brukt"
_accountDelete:
accountDelete: "Slett konto"
_ad:
hide: "Ikke vis"
_gallery:
like: "Liker!"
unlike: "Liker ikke"
_email:
_follow:
title: "fulgte deg"
_preferencesBackups:
saveNew: "Lagre som ny"
cannotSave: "Kunne ikke lagre"
_registry:
key: "Nøkkel"
keys: "Nøkler"
_aboutMisskey:
about: "Misskey er programvare med åpen kildekode som har blitt utviklet av syuilo siden 2014."
translation: "Oversett Misskey"
_instanceTicker:
none: "Ikke vis"
always: "Alltid vis"
_channel:
create: "Opprett kanal"
edit: "Rediger kanal"
featured: "Populært"
following: "Følger"
nameAndDescription: "Navn og beskrivelse"
_menuDisplay:
hide: "Skjul"
_wordMute:
soft: "Myk"
hard: "Hard"
_theme:
description: "Beskrivelse"
color: "Farge"
key: "Nøkkel"
keys:
link: "Lenke"
renote: "Renote"
_sfx:
note: "Notes"
notification: "Varsler"
_ago:
future: "Fremitid"
justNow: "Akkurat nå"
secondsAgo: "{n}s siden"
minutesAgo: "{n}m siden"
hoursAgo: "{n}t siden"
daysAgo: "{n}d siden"
weeksAgo: "{n} uker siden"
monthsAgo: "{n} måneder siden"
yearsAgo: "{n} år siden"
invalid: "Ingenting"
_time:
second: "Sekunder"
minute: "Minutter"
hour: "Timer"
day: "Dager"
_timelineTutorial:
title: "Hvordan bruke Misskey"
step2_2: "Hva med å skrive en selvpresentasjon, eller bare \"Hei {name}!\" hvis du ikke har lyst?"
_2fa:
renewTOTPCancel: "Avbryt"
_weekday:
sunday: "Søndag"
monday: "Mandag"
tuesday: "Tirsdag"
wednesday: "Onsdag"
thursday: "Torsdag"
friday: "Fredag"
saturday: "Lørdag"
_widgets:
profile: "Profil"
instanceInfo: "Serverinformasjon"
notifications: "Varsler"
timeline: "Tidslinje"
calendar: "Kalender"
trends: "Populært"
clock: "Klokke"
activity: "Aktivitet"
photos: "Bilder"
federation: "Føderasjon"
button: "Knapp"
aiscriptApp: "AiScript App"
userList: "Brukerliste"
_userList:
chooseList: "Velg liste"
_cw:
hide: "Skjul"
show: "Vis mer"
_poll:
noOnlyOneChoice: "Trenger minst to valger."
choiceN: "Valg {n}"
noMore: "Du kan ikke legge til flere."
deadlineTime: "Timer"
votesCount: "{n} stemmer"
vote: "Stem"
showResult: "Vis resultatet"
voted: "Stemt"
closed: "Avsluttet"
_visibility:
home: "Hjem"
followers: "Følgere"
_postForm:
_placeholders:
a: "Hva skjer?"
_profile:
name: "Navn"
username: "Brukernavn"
description: "Biografi"
metadataContent: "Innhold"
_exportOrImport:
followingList: "Følg"
muteList: "Skjul"
blockingList: "Blokker"
userLists: "Lister"
_charts:
federation: "Føderasjon"
filesIncDec: "Forskjell på antall filer"
_instanceCharts:
users: "Forskjell på antall brukere"
ff: "Forskjell på antall Følg/Følgere"
files: "Forskjell på antall filer"
_timelines:
home: "Hjem"
_play:
new: "Opprett Play"
edit: "Rediger Play"
featured: "Populært"
title: "Tittel"
summary: "Beskrivelse"
_pages:
invalidNameText: "Pass på at sidetittelen ikke er tom"
like: "Liker"
unlike: "Liker ikke"
my: "Mine sider"
featured: "Populært"
contents: "Innhold"
title: "Tittel"
url: "Side URL"
hideTitleWhenPinned: "Skjul sidetittel når festet til profil"
fontSerif: "Serif"
fontSansSerif: "Sans Serif"
selectType: "Velg type"
blocks:
text: "Tekst"
section: "Seksjon"
image: "Bilde"
button: "Knapp"
_notification:
youWereFollowed: "fulgte deg"
unreadAntennaNote: "Antenne {name}"
achievementEarned: "Prestasjon låst opp"
_types:
follow: "Nye følgere"
reply: "Svar"
renote: "Renotes"
quote: "Sitater"
reaction: "Reaksjoner"
_actions:
reply: "Svar"
renote: "Renote"
_deck:
swapLeft: "Flytt til venstre"
swapRight: "Flytt til høyre"
swapUp: "Flytt opp"
swapDown: "Flytt ned"
profile: "Profil"
newProfile: "Ny profil"
deleteProfile: "Slett profil"
_columns:
notifications: "Varsler"
tl: "Tidslinje"
antenna: "Antenner"
list: "Lister"
channel: "Kanaler"
direct: "Direkte"
_webhookSettings:
name: "Navn"

View File

@@ -1,3 +0,0 @@
{
"type": "module"
}

View File

@@ -2,7 +2,6 @@
_lang_: "Polski"
headlineMisskey: "Sieć połączona wpisami"
introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!"
poweredByMisskeyDescription: "{name} jest jedną z usług działającą na otwartoźródłowej platformie <b>Misskey</b> (określana jako \"instancja Misskey\")."
monthAndDay: "{month}-{day}"
search: "Szukaj"
notifications: "Powiadomienia"
@@ -13,7 +12,6 @@ fetchingAsApObject: "Pobieranie z Fediwersum…"
ok: "OK"
gotIt: "Rozumiem!"
cancel: "Anuluj"
noThankYou: "Nie teraz"
enterUsername: "Wprowadź nazwę użytkownika"
renotedBy: "Udostępniono przez {user}"
noNotes: "Brak wpisów"
@@ -49,7 +47,6 @@ deleteAndEdit: "Usuń i edytuj"
deleteAndEditConfirm: "Czy na pewno chcesz usunąć ten wpis i zedytować go? Utracisz wszystkie reakcje, udostępnienia i odpowiedzi do tego wpisu."
addToList: "Dodaj do listy"
sendMessage: "Wyślij wiadomość"
copyRSS: "Kopiuj RSS"
copyUsername: "Kopiuj nazwę użytkownika"
searchUser: "Wyszukiwanie użytkowników"
reply: "Odpowiedz"
@@ -110,7 +107,6 @@ clickToShow: "Kliknij, aby wyświetlić"
sensitive: "NSFW"
add: "Dodaj"
reaction: "Reakcja"
reactions: "Reakcja"
reactionSetting: "Reakcje do pokazania w wyborniku reakcji"
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu"
@@ -129,7 +125,6 @@ unblockConfirm: "Czy na pewno chcesz odblokować to konto?"
suspendConfirm: "Czy na pewno chcesz zawiesić to konto?"
unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?"
selectList: "Wybierz listę"
selectChannel: "Wybierz kanał"
selectAntenna: "Wybierz Antennę"
selectWidget: "Wybierz widżet"
editWidgets: "Edytuj widżety"
@@ -150,7 +145,6 @@ flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot
flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu"
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
addAccount: "Dodaj konto"
reloadAccountsList: "Odśwież listę kont"
loginFailed: "Nie udało się zalogować"
showOnRemote: "Zobacz na zdalnej instancji"
general: "Ogólne"
@@ -161,7 +155,6 @@ searchWith: "Szukaj: {q}"
youHaveNoLists: "Nie masz żadnej listy"
followConfirm: "Czy na pewno chcesz zaobserwować {name}?"
proxyAccount: "Konto proxy"
proxyAccountDescription: "Opis konta pełnomocniczego"
host: "Host"
selectUser: "Wybierz użytkownika"
recipient: "Odbiorca"
@@ -169,6 +162,7 @@ annotation: "Komentarze"
federation: "Federacja"
instances: "Instancja"
registeredAt: "Zarejestrowano"
latestRequestSentAt: "Ostatnie żądanie wysłano o"
latestRequestReceivedAt: "Ostatnie żądanie otrzymano o"
latestStatus: "Najnowszy status"
storageUsage: "Użycie pamięci"
@@ -256,13 +250,12 @@ noMoreHistory: "Nie ma dalszej historii"
startMessaging: "Rozpocznij czat"
nUsersRead: "przeczytano przez {n}"
agreeTo: "Wyrażam zgodę na {0}"
agreeBelow: "Zaakceptuj poniżej"
tos: "Regulamin"
start: "Rozpocznij"
home: "Strona główna"
remoteUserCaution: "Te informacje mogą nie być aktualne, ponieważ użytkownik pochodzi ze zdalnej instancji."
activity: "Aktywność"
images: "Zdjęcia"
image: "Zdjęcia"
birthday: "Data urodzenia"
yearsOld: "{age} lat"
registeredDate: "Zarejestrowano"
@@ -299,6 +292,7 @@ copyUrl: "Skopiuj adres URL"
rename: "Zmień nazwę"
avatar: "Awatar"
banner: "Baner"
nsfw: "NSFW"
whenServerDisconnected: "Po utracie połączenia z serwerem"
disconnectedFromServer: "Utracono połączenie z serwerem."
reload: "Odśwież"
@@ -351,10 +345,6 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Włącz reCAPTCHA"
recaptchaSiteKey: "Klucz strony"
recaptchaSecretKey: "Tajny klucz"
turnstile: "Turnstile"
enableTurnstile: "Włącz Turnstile"
turnstileSiteKey: "Klucz strony"
turnstileSecretKey: "Tajny klucz"
avoidMultiCaptchaConfirm: "Używanie wielu Captchy może spowodować zakłócenia. Czy chcesz wyłączyć inną Captchę? Możesz zostawić wiele jednocześnie, klikając Anuluj."
antennas: "Anteny"
manageAntennas: "Zarządzaj Antenami"
@@ -388,19 +378,16 @@ about: "Informacje"
aboutMisskey: "O Misskey"
administrator: "Admin"
token: "Token"
2fa: "Klucz 2FA "
totp: "Klucz aplikacji uwierzytelniającej (totp)"
totpDescription: "Opis klucza czasowego"
twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe"
moderator: "Moderator"
moderation: "Moderacja"
nUsersMentioned: "{n} wspomnianych użytkowników"
securityKeyAndPasskey: "Klucz bezpieczeństwa i klucze Passkey"
securityKey: "Klucz bezpieczeństwa"
securityKeyName: "Nazwa klucza"
registerSecurityKey: "Zarejestruj klucz bezpieczeństwa"
lastUsed: "Ostatnio używane"
lastUsedAt: "Ostatnio używane w"
unregister: "Cofnij rejestrację"
passwordLessLogin: "Skonfiguruj logowanie bez użycia hasła"
passwordLessLoginDescription: "Opis logowania bez użycia hasła"
resetPassword: "Zresetuj hasło"
newPasswordIs: "Nowe hasło to „{password}”"
reduceUiAnimation: "Ogranicz animacje w UI"
@@ -415,15 +402,24 @@ markAsReadAllTalkMessages: "Oznacz wszystkie wiadomości jako przeczytane"
help: "Pomoc"
inputMessageHere: "Wprowadź wiadomość tutaj"
close: "Zamknij"
group: "Grupy"
groups: "Grupy"
createGroup: "Utwórz grupę"
ownedGroups: "Posiadane grupy"
joinedGroups: "Członkostwa w grupach"
invites: "Zaproś"
groupName: "Nazwa grupy"
members: "Członkowie"
transfer: "Transfer"
messagingWithUser: "Rozmowy z innym użytkownikiem"
messagingWithGroup: "Rozmowy wewnątrz grupy"
title: "Tytuł"
text: "Tekst"
enable: "Włącz"
next: "Dalej"
retype: "Wprowadź ponownie"
noteOf: "Wpisy {user}"
inviteToGroup: "Zaproś do grupy"
quoteAttached: "Zacytowano"
quoteQuestion: "Czy na pewno chcesz umieścić cytat?"
noMessagesYet: "Nie napisano jeszcze wiadomości"
@@ -445,15 +441,19 @@ passwordMatched: "Pasuje"
passwordNotMatched: "Hasła nie pasują do siebie"
signinWith: "Zaloguj się z {x}"
signinFailed: "Nie udało się zalogować. Wprowadzona nazwa użytkownika lub hasło są nieprawidłowe."
tapSecurityKey: "Wybierz swój klucz bezpieczeństwa"
or: "Lub"
language: "Język"
uiLanguage: "Język wyświetlania UI"
groupInvited: "Zaproszony(-a) do grupy"
aboutX: "O {x}"
emojiStyle: "Styl emoji"
native: "Natywny"
useOsNativeEmojis: "Używaj natywnych Emoji systemu"
disableDrawer: "Nie używaj menu w stylu szuflady"
youHaveNoGroups: "Nie masz żadnych grup"
joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę."
noHistory: "Brak historii"
signinHistory: "Historia logowania"
disableAnimatedMfm: "Wyłącz MFM z animacją"
doing: "Przetwarzanie..."
category: "Kategoria"
tags: "Tagi"
@@ -498,7 +498,6 @@ deleteAll: "Usuń wszystkie"
showFixedPostForm: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
newNoteRecived: "Masz nowy wpis"
sounds: "Dźwięk"
sound: "Dźwięki"
listen: "Słuchaj"
none: "Brak"
showInPage: "Pokaż na stronie"
@@ -527,16 +526,11 @@ disablePagesScript: "Wyłącz AiScript na Stronach"
updateRemoteUser: "Aktualizuj zdalne dane o użytkowniku"
deleteAllFiles: "Usuń wszystkie pliki"
deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
removeAllFollowing: "Przestań obserwować"
removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje."
userSuspended: "To konto zostało zawieszone."
userSilenced: "Ten użytkownik został wyciszony."
yourAccountSuspendedTitle: "To konto jest zawieszone"
yourAccountSuspendedDescription: "To konto zostało zawieszone z powodu złamania regulaminu serwera lub innych podobnych. Skontaktuj się z administratorem, jeśli chciałbyś poznać bardziej szczegółowy powód. Proszę nie zakładać nowego konta."
tokenRevoked: "Token odrzucony"
tokenRevokedDescription: "Opis odrzuconego tokena"
accountDeleted: "Konto usunięte"
accountDeletedDescription: "Opis konta usuniętego"
menu: "Menu"
divider: "Rozdzielacz"
addItem: "Dodaj element"
@@ -562,9 +556,7 @@ author: "Autor"
leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?"
manage: "Zarządzanie"
plugins: "Wtyczki"
preferencesBackups: "Kopia zapasowa ustawień"
deck: "Tablica"
undeck: "oddkouj"
useBlurEffectForModal: "Używaj efektu rozmycia w modalach"
useFullReactionPicker: "Używaj pełnowymiarowego wybornika reakcji"
width: "Szerokość"
@@ -580,6 +572,7 @@ tokenRequested: "Przydziel dostęp do konta"
pluginTokenRequestedDescription: "Ta wtyczka będzie mogła korzystać z ustawionych tu uprawnień."
notificationType: "Rodzaj powiadomień"
edit: "Edytuj"
useStarForReactionFallback: "Użyj ★ jako zapasowego emoji, gdy emoji reakcji jest nieznane"
emailServer: "Serwer poczty e-mail"
enableEmail: "Włącz dostarczanie wiadomości e-mail"
emailConfigInfo: "Wykorzystywany do potwierdzenia adresu e-mail w trakcie rejestracji, lub gdy zapomnisz hasła"
@@ -644,7 +637,6 @@ createNewClip: "Utwórz nowy klip"
unclip: "Odczep"
confirmToUnclipAlreadyClippedNote: "Ten wpis jest już częścią klipu \"{name}\". Czy chcesz ją usunąć z tego klipu?"
public: "Publiczny"
private: "Prywatne"
i18nInfo: "Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}."
manageAccessTokens: "Zarządzaj tokenami dostępu"
accountInfo: "Informacje o koncie"
@@ -816,6 +808,8 @@ deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kont
incorrectPassword: "Nieprawidłowe hasło."
voteConfirm: "Potwierdzić swój głos na \"{choice}\"?"
hide: "Ukryj"
leaveGroup: "Opuść grupę"
leaveGroupConfirm: "Czy na pewno chcesz opuścić \"{name}\"?"
useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych"
welcomeBackWithName: "Witaj z powrotem, {name}"
clickToFinishEmailVerification: "Kliknij [{ok}], aby zakończyć weryfikację e-mail."
@@ -826,20 +820,8 @@ auto: "Automatycznie"
size: "Rozmiar"
numberOfColumn: "Liczba kolumn"
searchByGoogle: "Szukaj"
period: "Ankieta kończy się"
indefinitely: "Nigdy"
tenMinutes: "10 minut"
oneHour: "1 godzina"
oneDay: "1 dzień"
oneWeek: "1 tydzień"
oneMonth: "jeden miesiąc"
failedToFetchAccountInformation: "Nie udało się uzyskać informacji o koncie"
file: "Pliki"
recommended: "Zalecane"
check: "Zweryfikuj"
deleteAccount: "Usuń konto"
document: "Dokumentacja"
numberOfPageCache: "Ilość stron w cache"
logoutConfirm: "Czy na pewno chcesz się wylogować?"
lastActiveDate: "Ostatnio użyte w"
statusbar: "Pasek stanu"
@@ -859,25 +841,6 @@ enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie
navbar: "Pasek nawigacyjny"
account: "Konta"
move: "Przenieś"
pushNotification: "Powiadomienia"
subscribePushNotification: "Włącz powiadomienia"
unsubscribePushNotification: "Wyłącz powiadomienia push"
pushNotificationAlreadySubscribed: "Powiadomienia push są włączone"
pushNotificationNotSupported: "Przeglądarka lub instancja nie obsługuje powiadomień push"
sendPushNotificationReadMessage: "Usuń powiadomienia push po przeczytaniu powiadomień i wiadomości."
sendPushNotificationReadMessageCaption: "Chwilowo pojawi się powiadomienie \"{emptyPushNotificationMessage}\". Może wzrosnąć zużycie baterii urządzenia."
loggedInAsBot: "Jesteś obecnie zalogowany/a jako bot"
like: "Polub"
show: "Wyświetlanie"
color: "Kolor"
youFollowing: "Śledzeni"
icon: "Awatar"
_role:
priority: "Priorytet"
_priority:
low: "Niski"
middle: "Średnie"
high: "Wysoki"
_sensitiveMediaDetection:
description: "Zmniejsza wysiłek związany z moderacją serwera dzięki automatycznemu rozpoznawaniu zawartości NSFW za pomocą uczenia maszynowego. To nieznacznie zwiększy obciążenie serwera."
setSensitiveFlagAutomatically: "Oznacz jako NSFW"
@@ -905,7 +868,6 @@ _accountDelete:
_ad:
back: "Wróć"
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
hide: "Nigdy nie pokazuj"
_forgotPassword:
enterEmail: "Wpisz adres e-mail użyty do rejestracji. Zostanie do niego wysłany link, za pomocą którego możesz zresetować hasło."
ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego."
@@ -956,6 +918,72 @@ _aboutMisskey:
donate: "Przekaż darowiznę na Misskey"
morePatrons: "Naprawdę doceniam wsparcie ze strony wielu niewymienionych tu osób. Dziękuję! 🥰"
patrons: "Wspierający"
_nsfw:
respect: "Ukrywaj media NSFW"
ignore: "Nie ukrywaj mediów NSFW"
force: "Ukrywaj wszystkie media"
_mfm:
cheatSheet: "Ściąga MFM"
intro: "MFM to język składniowy wyjątkowy dla Misskey, który może być użyty w wielu miejscach. Tu znajdziesz listę wszystkich możliwych elementów składni MFM."
dummy: "Misskey rozszerza świat Fediwersum"
mention: "Wspomnij"
mentionDescription: "Używając znaku @ i nazwy użytkownika, możesz określić danego użytkownika."
hashtag: "Hashtag"
hashtagDescription: "Używając kratki i tekstu, możesz określić hashtag."
url: "Adres URL"
urlDescription: "Adresy URL mogą być wyświetlane"
link: "Odnośnik"
linkDescription: "Określone części tekstu mogą być wyświetlane jako adres URL."
bold: "Pogrubienie"
boldDescription: "Wyróżnia litery pogrubiając je."
small: "Małe"
smallDescription: "Wyświetla treść jako małą i cienką."
center: "Wyśrodkowanie"
centerDescription: "Wyśrodkowuje zawartość."
inlineCode: "Kod (w wierszu)"
blockCode: "Kod (blok)"
blockCodeDescription: "Wyświetla kod z podświetlaną składnią składający się z wielu linii."
blockMath: "Matematyka (Blok)"
quote: "Cytuj"
quoteDescription: "Wyświetla treść jako cytat."
emoji: "Niestandardowe emoji"
emojiDescription: "Otaczając nazwę niestandardowego emoji dwukropkami, możesz użyć niestandardowego emoji."
search: "Szukaj"
searchDescription: "Wyświetla pole wyszukiwania z wcześniej wpisanym tekstem."
flip: "Odwróć"
flipDescription: "Przerzuca treść poziomo lub pionowo."
jelly: "Animacja (Galaretka)"
jellyDescription: "Nadaje treści galaretowatą animację."
tada: "Animation (Tada)"
tadaDescription: "Nadaje treści animację podobną do \"Tada!\"."
jump: "Animacja (Skok)"
jumpDescription: "Nadaje treści animację skakania."
bounce: "Animacja (Odbijanie)"
bounceDescription: "Nadaje treści animację odbijania się."
shake: "Animacja (Wstrząsanie)"
shakeDescription: "Nadaje treści animację wstrząsania."
twitch: "Animacja (Drganie)"
twitchDescription: "Nadaje treści mocno drgającą animację."
spin: "Animacja (Obrót)"
spinDescription: "Nadaje treści animację obracania."
x2: "Duże"
x2Description: "Czyni treść większą."
x3: "Bardzo duże"
x3Description: "Czyni treść jeszcze większą."
x4: "Ogromne"
x4Description: "Czyni treść jeszcze większą niż jeszcze większa."
blur: "Rozmycie"
blurDescription: "Rozmywa treść. Zostanie wyraźnie wyświetlona po najechaniu."
font: "Czcionka"
fontDescription: "Wybiera czcionkę do wyświetlania treści."
rainbow: "Tęcza"
rainbowDescription: "Sprawia, że zawartość pojawia się w kolorach tęczy."
sparkle: "Blask"
sparkleDescription: "Nadaje zawartości efekt lśniącego brokatu."
rotate: "Obróć"
rotateDescription: "Obraca zawartość o określony kąt."
plain: "Zwyczajny"
plainDescription: "Wyłącza efekty wszystkich MFM zawartych w tym efekcie MFM."
_instanceTicker:
none: "Nigdy nie pokazuj"
remote: "Pokaż dla zdalnych użytkowników"
@@ -1078,22 +1106,42 @@ _ago:
weeksAgo: "{n} tyg. temu"
monthsAgo: "{n} mies. temu"
yearsAgo: "{n} lat temu"
invalid: "Nie ma tu niczego"
_time:
second: "sekunda"
minute: "minuta"
hour: "godz."
day: "dzień"
_tutorial:
title: "Jak korzystać z Misskey"
step1_1: "Witaj!"
step1_2: "Ta strona nazywa się „oś czasu”. Pokazuje chronologicznie uporządkowane wpisy osób, które „śledzisz”."
step1_3: "Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo."
step2_1: "Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować."
step2_2: "Podanie pewnych informacji o tym, kim jesteś, ułatwi innym określenie, czy chcą widzieć Twoje wpisy lub Cię obserwować."
step3_1: "Zakończyłeś(-aś) konfigurację profilu?"
step3_2: "Następnie spróbujmy opublikować wpis. Możesz to zrobić, naciskając przycisk z ikoną ołówka na ekranie."
step3_3: "Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post."
step3_4: "Nie masz nic do powiedzenia? Spróbuj \"ustawiam swój misskey\"!"
step4_1: "Zakończyłeś publikowanie pierwszego wpisu?"
step4_2: "Hurra! Teraz Twój pierwszy wpis powinien być wyświetlany na Twojej osi czasu."
step5_1: "Teraz spróbujmy ożywić Twoją oś czasu, przez zaobserwowanie innych ludzi."
step5_2: "{featured} pokaże Ci popularne wpisy na tej instancji. {explore} pozwoli Ci znaleźć popularnych użytkowników. Spróbuj znaleźć tam osoby, które chcesz obserwować!"
step5_3: "Aby obserwować innych użytkowników, kliknij ich ikonę i naciśnij przycisk \"Obserwuj\" na ich profilu."
step5_4: "Jeśli inny użytkownik ma ikonę kłódki obok swojej nazwy, może minąć trochę czasu, zanim ten użytkownik ręcznie zatwierdzi Twoją prośbę o obserwowanie."
step6_1: "Powinieneś teraz widzieć wpisy innych użytkowników na swojej osi czasu."
step6_2: "Możesz także umieścić „reakcje” na wpisach innych osób, aby szybko na nie odpowiedzieć."
step6_3: "Aby dodać \"reakcję\", naciśnij znak \"+\" na wpisie innego użytkownika i wybierz emotikonę, którą chcesz zareagować."
step7_1: "Gratulacje! Ukończyłeś podstawowy samouczek Misskey."
step7_2: "Jeśli chcesz dowiedzieć się więcej o Misskey, wypróbuj sekcję {help}."
step7_3: "A teraz powodzenia i baw się dobrze z Misskey! 🚀"
_2fa:
alreadyRegistered: "Zarejestrowałeś już urządzenie do uwierzytelniania dwuskładnikowego."
registerDevice: "Zarejestruj nowe urządzenie"
registerKey: "Zarejestruj klucz bezpieczeństwa"
step1: "Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu."
step2: "Następnie, zeskanuje kod QR z ekranu."
step3: "Wprowadź token podany w aplikacji, aby ukończyć konfigurację."
step4: "Od teraz, przy każdej próbie logowania otrzymasz prośbę o token logowania."
removeKeyConfirm: "Usunąć kopię zapasową {name}?"
renewTOTPConfirm: "Spowoduje to, że kody weryfikacyjne z poprzedniej aplikacji przestaną działać"
renewTOTPOk: "Rekonfiguruj"
renewTOTPCancel: "Nie teraz"
_permissions:
"read:account": "Wyświetl informacje o swoim koncie"
"write:account": "Edytuj swoje informacje o koncie"
@@ -1106,10 +1154,8 @@ _permissions:
"read:following": "Wyświetlanie informacji o obserwowanych"
"write:following": "Obserwowanie lub cofanie obserwacji innych kont"
"read:messaging": "Zobacz swoje czaty"
"write:messaging": "Tworzenie lub usuwanie wiadomości czatu"
"read:mutes": "Wyświetlanie listy osób, które wyciszyłeś(-aś)"
"write:mutes": "Edycja listy osób, które wyciszyłeś(-aś)"
"write:notes": "Tworzenie lub usuwanie wpisów"
"read:notifications": "Wyświetlanie powiadomień"
"write:notifications": "Działanie na powiadomieniach"
"read:reactions": "Wyświetlanie reakcji"
@@ -1125,23 +1171,9 @@ _permissions:
"write:channels": "Edytuj swoje kanały"
"read:gallery": "Zobacz swoją galerię"
"write:gallery": "Edytuj swoją galerię"
"read:gallery-likes": "Wyświetlanie listy polubionych postów w galerii"
"write:gallery-likes": "Edytowanie listy polubionych postów w galerii"
_auth:
shareAccessTitle: "Przyznawanie uprawnień aplikacji"
shareAccess: "Czy chcesz autoryzować „{name}” do dostępu do tego konta?"
shareAccessAsk: "Czy na pewno chcesz zezwolić tej aplikacji na dostęp do Twojego konta?"
permission: "{name} żąda następujących uprawnień"
permissionAsk: "Ta aplikacja wymaga następujących uprawnień:"
pleaseGoBack: "Proszę, wróć do aplikacji"
callback: "Powracanie do aplikacji"
denied: "Odmowa dostępu"
pleaseLogin: "Zaloguj się, aby autoryzować aplikacje."
_antennaSources:
all: "Wszystkie wpisy"
homeTimeline: "Wpisy obserwowanych użytkowników"
users: "Wpisy określonych użytkowników"
userList: "Wpisy z określonej listy użytkowników"
_weekday:
sunday: "Niedziela"
monday: "Poniedziałek"
@@ -1151,8 +1183,6 @@ _weekday:
friday: "Piątek"
saturday: "Sobota"
_widgets:
profile: "Profil"
instanceInfo: "Informacje o instancji"
memo: "Przypięte notatki"
notifications: "Powiadomienia"
timeline: "Oś czasu"
@@ -1174,10 +1204,6 @@ _widgets:
serverMetric: "Metryka serwera"
aiscript: "Konsola AiScript"
aichan: "Ai"
userList: "Lista użytkowników"
_userList:
chooseList: "Wybierz listę"
clicker: "Clicker"
_cw:
hide: "Ukryj"
show: "Załaduj więcej"
@@ -1209,16 +1235,10 @@ _visibility:
public: "Publiczny"
publicDescription: "Twój wpis pojawi się w publicznych osiach czasu"
home: "Strona główna"
homeDescription: "Publikuj tylko na głównej osi czasu"
followers: "Obserwujący"
followersDescription: "Widoczne tylko dla obserwujących"
specified: "Bezpośredni"
specifiedDescription: "Napisz tylko określonym użytkownikom"
disableFederationDescription: "Nie przesyłaj do innych instancji"
_postForm:
replyPlaceholder: "Odpowiedz na ten wpis..."
quotePlaceholder: "Zacytuj ten wpis…"
channelPlaceholder: "Publikuj na kanale..."
_placeholders:
a: "Co się dzieje?"
b: "Co się wydarzyło?"
@@ -1240,29 +1260,17 @@ _profile:
changeBanner: "Zmień baner"
_exportOrImport:
allNotes: "Wszystkie wpisy"
favoritedNotes: "Ulubione wpisy"
followingList: "Obserwowani"
muteList: "Wycisz"
blockingList: "Zablokuj"
userLists: "Listy"
excludeMutingUsers: "Wyklucz wyciszonych użytkowników"
excludeInactiveUsers: "Wyklucz nieaktywnych użytkowników"
_charts:
federation: "Federacja"
apRequest: "Żądania"
usersIncDec: "Różnica w liczbie użytkowników"
usersTotal: "Łącznie # użytkowników"
activeUsers: "Aktywni użytkownicy"
notesIncDec: "Różnica w liczbie wpisów"
notesTotal: "Całkowita liczba wpisów"
filesIncDec: "Różnica w liczbie plików"
filesTotal: "Całkowita liczba plików"
storageUsageIncDec: "Różnica w wykorzystaniu pamięci"
storageUsageTotal: "Całkowite wykorzystanie pamięci"
_instanceCharts:
requests: "Żądania"
users: "Różnica w liczbie użytkowników"
notes: "Różnica w liczbie wpisów"
notesTotal: "Łącznie # wpisów"
ff: "Różnica w # obserwujących"
ffTotal: "Łączna liczba # obserwujących"
@@ -1275,12 +1283,6 @@ _timelines:
local: "Lokalne"
social: "Społeczność"
global: "Globalna"
_play:
viewSource: "Zobacz źródło"
featured: "Wyróżnione"
title: "Tytuł"
script: "Skrypt"
summary: "Opis"
_pages:
newPage: "Utwórz stronę"
editPage: "Edytuj tę stronę"
@@ -1316,6 +1318,8 @@ _pages:
eyeCatchingImageRemove: "Usuń przyciągające wzrok zdjęcie"
chooseBlock: "Dodaj blok"
selectType: "Wybierz typ"
enterVariableName: "Wprowadź nazwę dla swojej zmiennej"
variableNameIsAlreadyUsed: "Ta nazwa jest już używana przez inną zmienną"
contentBlocks: "Zawartość"
inputBlocks: "Wejście"
specialBlocks: "Specjalne"
@@ -1325,11 +1329,230 @@ _pages:
section: "Sekcja"
image: "Zdjęcia"
button: "Przycisk"
if: "Jeżeli"
_if:
variable: "Zmienna"
post: "Utwórz wpis"
_post:
text: "Treść"
textInput: "Pole tekstowe"
_textInput:
name: "Nazwa zmiennej"
text: "Tytuł"
default: "Domyślna wartość"
textareaInput: "Pole tekstowe na wiele wierszy"
_textareaInput:
name: "Nazwa zmiennej"
text: "Tytuł"
default: "Domyślna wartość"
numberInput: "Pole na liczbę"
_numberInput:
name: "Nazwa zmiennej"
text: "Tytuł"
default: "Domyślna wartość"
_canvas:
width: "Szerokość"
height: "Wysokość"
note: "Osadzony wpis"
_note:
id: "ID wpisu"
idDescription: "Możesz też wkleić adres URL wpisu, aby go ustawić."
detailed: "Szczegółowy widok"
switch: "Przełącznik"
_switch:
name: "Nazwa zmiennej"
text: "Tytuł"
default: "Domyślna wartość"
counter: "Licznik"
_counter:
name: "Nazwa zmiennej"
text: "Tytuł"
inc: "Zwiększ o"
_button:
text: "Tytuł"
colored: "Kolorowe"
action: "Działanie wykonywane przy naciśnięciu przycisku"
_action:
dialog: "Pokazuj okno dialogowe"
_dialog:
content: "Treść"
resetRandom: "Resetuj losowe ziarno"
pushEvent: "Wyślij zdarzenie"
_pushEvent:
event: "Nazwa zdarzenia"
message: "Wiadomość do wyświetlenia po aktywowaniu"
variable: "Zmienna do wysłania"
no-variable: "Brak"
callAiScript: "Wywołaj AiScript"
_callAiScript:
functionName: "Nazwa funkcji"
radioButton: "Wybór"
_radioButton:
name: "Nazwa zmiennej"
title: "Tytuł"
values: "Lista wyborów (oddzielonych znakiem nowego wiersza)"
default: "Domyślna wartość"
script:
categories:
flow: "Kontrola przepływu"
logical: "Operacje logiczne"
operation: "Obliczanie"
comparison: "Porównanie"
random: "Losowe"
value: "Wartość"
fn: "Funkcje"
text: "Działania na tekście"
convert: "Transformacja"
list: "Listy"
blocks:
text: "Tekst"
multiLineText: "Tekst (w wielu wierszach)"
_textList:
info: "Oddziel każdy wpis znakiem nowego wiersza"
strLen: "Długość tekstu"
_strLen:
arg1: "Tekst"
_strPick:
arg1: "Tekst"
arg2: "Położenie znaku"
strReplace: "Zamiana tekstu"
_strReplace:
arg1: "Tekst"
arg2: "Tekst do zamiany"
arg3: "Zamieniono z"
_strReverse:
arg1: "Tekst"
_join:
arg1: "Listy"
arg2: "Odstęp"
add: "Dodaj"
_add:
arg1: "A"
arg2: "B"
subtract: "Odejmij"
_subtract:
arg1: "A"
arg2: "B"
multiply: "Pomnóż"
_multiply:
arg1: "A"
arg2: "B"
divide: "Podziel"
_divide:
arg1: "A"
arg2: "B"
mod: "Reszta"
_mod:
arg1: "A"
arg2: "B"
_round:
arg1: "Liczba"
eq: "A i B są sobie równe"
_eq:
arg1: "A"
arg2: "B"
notEq: "A i B różnią się"
_notEq:
arg1: "A"
arg2: "B"
and: "A I B"
_and:
arg1: "A"
arg2: "B"
or: "A LUB B"
_or:
arg1: "A"
arg2: "B"
lt: "< A jest mniejsze niż B"
_lt:
arg1: "A"
arg2: "B"
gt: "> A jest większe od B"
_gt:
arg1: "A"
arg2: "B"
ltEq: "<= A jest mniejsze lub równe B"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: ">= A jest większe lub równe B"
_gtEq:
arg1: "A"
arg2: "B"
if: "Warunek"
_if:
arg1: "Jeżeli"
arg2: "Jeżeli prawda"
not: "NIE"
_not:
arg1: "NIE"
random: "Losowe"
_random:
arg1: "Prawdopodobieństwo"
rannum: "Losowa liczba"
_rannum:
arg1: "Minimalna wartość"
arg2: "Maksymalna wartość"
randomPick: "Wybierz losowo z listy"
_randomPick:
arg1: "Listy"
dailyRandom: "Losowo (zostaje na dzień)"
_dailyRandom:
arg1: "Prawdopodobieństwo"
dailyRannum: "Losowa liczba (zostaje na dzień)"
_dailyRannum:
arg1: "Minimalna wartość"
arg2: "Maksymalna wartość"
dailyRandomPick: "Wybierz losowo z listy (zostaje na dzień)"
_dailyRandomPick:
arg1: "Listy"
seedRandom: "Losowo (z ziarnem)"
_seedRandom:
arg1: "Ziarno"
arg2: "Prawdopodobieństwo"
seedRannum: "Losowa liczba (z ziarnem)"
_seedRannum:
arg1: "Ziarno"
arg2: "Minimalna wartość"
arg3: "Maksymalna wartość"
seedRandomPick: "Wybierz losowo z listy (z ziarnem)"
_seedRandomPick:
arg1: "Ziarno"
arg2: "Listy"
DRPWPM: "Wybierz losowo z ważonej listy (zostaje na dzień)"
pick: "Wybierz z listy"
_pick:
arg1: "Listy"
arg2: "Położenie"
listLen: "Uzyskaj długość listy"
_listLen:
arg1: "Listy"
number: "Liczba"
stringToNumber: "Tekst na liczbę"
_stringToNumber:
arg1: "Tekst"
numberToString: "Liczba na tekst"
_numberToString:
arg1: "Liczba"
splitStrByLine: "Rozdziel tekst znakami nowej linii"
_splitStrByLine:
arg1: "Tekst"
ref: "Zmienne"
aiScriptVar: "Zmienna AiScript"
fn: "Funkcje"
_fn:
arg1: "Wyjście"
for: "Powtórzenie"
_for:
arg1: "Liczba powtórzeń"
arg2: "Działanie"
types:
string: "Tekst"
number: "Liczba"
boolean: "Flaguj"
array: "Listy"
enviromentVariables: "Zmienna środowiskowa"
pageVariables: "Element strony"
_relayStatus:
requesting: "Oczekujące"
accepted: "Zaakceptowano"
@@ -1340,11 +1563,14 @@ _notification:
youGotReply: "{name} odpowiedział(a) Tobie"
youGotQuote: "{name} zacytował(a) Ciebie"
youRenoted: "{name} udostępnił(a) Twój wpis"
youGotPoll: "{name} zagłosował(a) w Twojej ankiecie"
youGotMessagingMessageFromUser: "{name} wysłał(a) Ci wiadomość"
youGotMessagingMessageFromGroup: "Została wysłana wiadomość do grupy {name}"
youWereFollowed: "Zaobserwował(a) Cię"
youReceivedFollowRequest: "Otrzymałeś(-aś) prośbę o możliwość obserwacji"
yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta"
youWereInvitedToGroup: "Zaproszony(-a) do grupy"
pollEnded: "Wyniki ankiety stały się dostępne"
unreadAntennaNote: "Antena {name}"
emptyPushNotificationMessage: "Powiadomienia push zostały zaktualizowane"
_types:
all: "Wszystkie"
@@ -1354,8 +1580,10 @@ _notification:
renote: "Udostępnij"
quote: "Cytuj"
reaction: "Reakcja"
pollVote: "Głosy w ankietach"
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji"
groupInvited: "Zaproszono do grup"
app: "Powiadomienia z aplikacji"
_actions:
followBack: "zaobserwował cię z powrotem"
@@ -1383,20 +1611,5 @@ _deck:
tl: "Oś czasu"
antenna: "Anteny"
list: "Listy"
channel: "Kanały"
mentions: "Wspomnienia"
direct: "Bezpośredni"
_webhookSettings:
createWebhook: "Stwórz Webhook"
name: "Nazwa"
secret: "Sekret"
events: "Uruchomienie Webhooka"
active: "Właczono"
_events:
follow: "Po zaobserwowaniu użytkownika"
followed: "Po zostaniu zaobserwowanym"
note: "Po opublikowaniu wpisu"
reply: "Po otrzymaniu odpowiedzi"
renote: "Po udostępnieniu wpisu"
reaction: "Po otrzymaniu reakcji"
mention: "Po zostaniu wspomnianym"

File diff suppressed because it is too large Load Diff

View File

@@ -107,7 +107,6 @@ clickToShow: "Click pentru a afișa"
sensitive: "NSFW"
add: "Adaugă"
reaction: "Reacție"
reactions: "Reacție"
reactionSetting: "Reacții care să apară in selectorul de reacții"
reactionSettingDescription2: "Trage pentru a rearanja, apasă pe \"+\" pentru a adăuga."
rememberNoteVisibility: "Amintește setarea de vizibilitate a notelor"
@@ -165,6 +164,7 @@ annotation: "Adnotări"
federation: "Federație"
instances: "Instanțe"
registeredAt: "Înregistrat în"
latestRequestSentAt: "Ultima cerere trimisă"
latestRequestReceivedAt: "Ultima cerere primită"
latestStatus: "Ultimul status"
storageUsage: "Utilizare stocare"
@@ -252,12 +252,12 @@ noMoreHistory: "Nu există mai mult istoric"
startMessaging: "Începe un chat nou"
nUsersRead: "citit de {n}"
agreeTo: "Sunt de acord cu {0}"
tos: "Termenii de utilizare"
start: "Să începem"
home: "Acasă"
remoteUserCaution: "Deoarece acest utilizator este dintr-o instanță externă, informația afișată poate fi incompletă."
activity: "Activitate"
images: "Imagini"
image: "Imagini"
birthday: "Zi de naștere"
yearsOld: "{age} ani"
registeredDate: "Data înregistrării"
@@ -294,6 +294,7 @@ copyUrl: "Copiază URL"
rename: "Redenumește"
avatar: "Avatar"
banner: "Banner"
nsfw: "NSFW"
whenServerDisconnected: "Când pierzi conexiunea cu serverul"
disconnectedFromServer: "Conecțiunea cu serverul a fost pierdută"
reload: "Reîncarcă"
@@ -346,8 +347,6 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Activează reCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
turnstileSiteKey: "Site key"
turnstileSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Folosirea mai multor sisteme Captcha poate cauza interferență între acestea. Ai dori să dezactivezi alte sisteme Captcha acum active? Dacă preferi să rămână activate, apasă Anulare."
antennas: "Antene"
manageAntennas: "Gestionează Antenele"
@@ -381,9 +380,12 @@ about: "Despre"
aboutMisskey: "Despre Misskey"
administrator: "Administrator"
token: "Token"
twoStepAuthentication: "Autentificare în doi pași"
moderator: "Moderator"
nUsersMentioned: "Menționat de {n} utilizatori"
securityKey: "Cheie de securitate"
securityKeyName: "Numele cheii"
registerSecurityKey: "Înregistrează o cheie de securitate"
lastUsed: "Ultima utilizată"
unregister: "Dezînregistrează"
passwordLessLogin: "Autentificare fără parolă"
@@ -401,15 +403,24 @@ markAsReadAllTalkMessages: "Marchează toate mesajele drept citit"
help: "Ajutor"
inputMessageHere: "Introdu un mesaj aici"
close: "Închide"
group: "Grup"
groups: "Grupuri"
createGroup: "Crează un grup"
ownedGroups: "Grupuri deținute"
joinedGroups: "Grupuri alăturate"
invites: "Invită"
groupName: "Numele grupului"
members: "Membri"
transfer: "Transferă"
messagingWithUser: "Chat privat"
messagingWithGroup: "Chat de grup"
title: "Titlu"
text: "Text"
enable: "Activează"
next: "Următorul"
retype: "Introdu din nou"
noteOf: "Notă de {user}"
inviteToGroup: "Invită în grup"
quoteAttached: "Citat"
quoteQuestion: "Vrei să adaugi ca citat?"
noMessagesYet: "Niciun mesaj încă"
@@ -431,13 +442,19 @@ passwordMatched: "Se potrivește!"
passwordNotMatched: "Nu se potrivește"
signinWith: "Autentifică-te cu {x}"
signinFailed: "Nu se poate autentifica. Numele de utilizator sau parola introduse sunt incorecte."
tapSecurityKey: "Apasă pe cheia ta de securitate."
or: "Sau"
language: "Limbă"
uiLanguage: "Limba interfeței"
groupInvited: "Ai fost invitat într-un grup"
aboutX: "Despre {x}"
useOsNativeEmojis: "Folosește emojiuri native OS-ului"
disableDrawer: "Nu folosi meniuri în stil sertar"
youHaveNoGroups: "Nu ai niciun grup"
joinOrCreateGroup: "Primește o invitație într-un grup sau creează unul nou."
noHistory: "Nu există istoric"
signinHistory: "Istoric autentificări"
disableAnimatedMfm: "Dezactivează MFM cu animații"
doing: "Se procesează..."
category: "Categorie"
tags: "Etichete"
@@ -484,7 +501,6 @@ deleteAll: "Șterge tot"
showFixedPostForm: "Arată caseta de postare în vârful cronologie"
newNoteRecived: "Sunt note noi"
sounds: "Sunete"
sound: "Sunete"
listen: "Ascultă"
none: "Nimic"
showInPage: "Arată în pagină"
@@ -560,6 +576,7 @@ tokenRequested: "Acordă acces la cont"
pluginTokenRequestedDescription: "Acest plugin va putea să folosească permisiunile setate aici."
notificationType: "Tipul notificării"
edit: "Editează"
useStarForReactionFallback: "Folosește ★ ca fallback dacă emoji-ul este necunoscut"
emailServer: "Server email"
enableEmail: "Activează distribuția de emailuri"
emailConfigInfo: "Folosit pentru a confirma emailul tău în timpul logări dacă îți uiți parola"
@@ -629,14 +646,14 @@ middle: "Mediu"
sent: "Trimite"
searchByGoogle: "Caută"
file: "Fișiere"
show: "Arată"
icon: "Avatar"
_role:
_priority:
middle: "Mediu"
_email:
_follow:
title: "te-a urmărit"
_mfm:
mention: "Mențiune"
quote: "Citează"
emoji: "Emoji personalizat"
search: "Caută"
_theme:
description: "Descriere"
keys:
@@ -647,18 +664,12 @@ _sfx:
note: "Note"
notification: "Notificări"
chat: "Chat"
_ago:
invalid: "Nu e nimic de văzut aici"
_widgets:
profile: "Profil"
instanceInfo: "Informații despre instanță"
notifications: "Notificări"
timeline: "Cronologie"
activity: "Activitate"
federation: "Federație"
jobQueue: "coada de job-uri"
_userList:
chooseList: "Selectează o listă"
_cw:
show: "Incarcă mai mult"
_visibility:
@@ -676,14 +687,30 @@ _charts:
federation: "Federație"
_timelines:
home: "Acasă"
_play:
script: "Script"
summary: "Descriere"
_pages:
blocks:
image: "Imagini"
script:
categories:
list: "Liste"
blocks:
_join:
arg1: "Liste"
_randomPick:
arg1: "Liste"
_dailyRandomPick:
arg1: "Liste"
_seedRandomPick:
arg2: "Liste"
_pick:
arg1: "Liste"
_listLen:
arg1: "Liste"
types:
array: "Liste"
_notification:
youWereFollowed: "te-a urmărit"
youWereInvitedToGroup: "Ai fost invitat într-un grup"
_types:
follow: "Urmărești"
mention: "Mențiune"
@@ -699,7 +726,4 @@ _deck:
tl: "Cronologie"
antenna: "Antene"
list: "Liste"
channel: "Canale"
mentions: "Mențiuni"
_webhookSettings:
name: "Nume"

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,6 @@
_lang_: "Slovenčina"
headlineMisskey: "Sieť prepojená poznámkami"
introMisskey: "Vitajte! Misskey je otvorená a decentralizovaná mikroblogovacia služba.\n\"Poznámkami\" môžete zdieľať svoje myšlienky so všetkými okolo. 📡\nPomocou \"reakcií\" môžete rýchlo vyjadri svoje pocity o každého poznámkach. 👍\nPoďte objavovať svet! 🚀"
poweredByMisskeyDescription: "{name} je jedným zo serverov využívajúcich open source platformu <b>Misskey</b> (nazývaných Misskey inštancia)."
monthAndDay: "{day}. {month}."
search: "Hľadať"
notifications: "Oznámenia"
@@ -13,7 +12,6 @@ fetchingAsApObject: "Načítam údaje z Fediverzu"
ok: "OK"
gotIt: "Rozumiem!"
cancel: "Zrušiť"
noThankYou: "Nie, ďakujem"
enterUsername: "Zadajte meno používateľa"
renotedBy: "{user} preposlal/a"
noNotes: "Žiadne poznámky"
@@ -49,7 +47,6 @@ deleteAndEdit: "Odstrániť a upraviť"
deleteAndEditConfirm: "Naozaj chcete odstrániť túto poznámku a upraviť ju? Stratíte tým všetky reakcie a odpovede na ňu."
addToList: "Pridať do zoznamu"
sendMessage: "Odoslať správu"
copyRSS: "Kopírovať RSS"
copyUsername: "Kopírovať meno používateľa"
searchUser: "Hľadať používateľov"
reply: "Odpovedať"
@@ -103,8 +100,6 @@ renoted: "Preposlané."
cantRenote: "Tento príspevok sa nedá preposlať."
cantReRenote: "Odpoveď nemôže byť odstránená."
quote: "Citovať"
inChannelRenote: "Preposlania v kanáli"
inChannelQuote: "Citácie v kanáli"
pinnedNote: "Pripnuté poznámky"
pinned: "Pripnúť"
you: "Vy"
@@ -112,7 +107,6 @@ clickToShow: "Kliknutím zobrazíte"
sensitive: "NSFW"
add: "Pridať"
reaction: "Reakcie"
reactions: "Reakcie"
reactionSetting: "Reakcie zobrazené vo výbere reakcií"
reactionSettingDescription2: "Ťahaním preusporiadate, kliknutím odstránite, Stlačením \"+\" pridáte"
rememberNoteVisibility: "Zapamätať nastavenia viditeľnosti poznámky"
@@ -131,7 +125,6 @@ unblockConfirm: "Naozaj chcete odblokovať tento účet?"
suspendConfirm: "Naozaj chcete zmraziť tento účet?"
unsuspendConfirm: "Naozaj chcete odmraziť tento účet?"
selectList: "Vyberte zoznam"
selectChannel: "Zvoľte kanál"
selectAntenna: "Vyberte anténu"
selectWidget: "Vyberte widget"
editWidgets: "Upraviť widget"
@@ -171,6 +164,7 @@ annotation: "Komentáre"
federation: "Federácia"
instances: "Inštancia"
registeredAt: "Registrácia"
latestRequestSentAt: "Posledná odoslaná požiadavka"
latestRequestReceivedAt: "Posledná prijatá požiadavka"
latestStatus: "Posledný status"
storageUsage: "Využité úložisko"
@@ -259,14 +253,12 @@ noMoreHistory: "To je všetko"
startMessaging: "Začať chat"
nUsersRead: "prečítané {n} používateľmi"
agreeTo: "Súhlasím s {0}"
agreeBelow: "Súhlasím s nasledovným"
basicNotesBeforeCreateAccount: "Základné bezpečnostné opatrenia"
tos: "Podmienky používania"
start: "Začať"
home: "Domov"
remoteUserCaution: "Tieto informácie nemusia byť aktuálne, keďže používateľ je na vzdialenom serveri."
activity: "Aktivita"
images: "Obrázky"
image: "Obrázky"
birthday: "Dátum narodenia"
yearsOld: "{age} rokov"
registeredDate: "Dátum registrácie"
@@ -303,6 +295,7 @@ copyUrl: "Kopírovať URL"
rename: "Premenovať"
avatar: "Avatar"
banner: "BAnner"
nsfw: "NSFW"
whenServerDisconnected: "Keď sa stratí spojenie so serverom"
disconnectedFromServer: "Spojenie so serverom bolo prerušené"
reload: "Obnoviť"
@@ -355,10 +348,6 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnúť ReCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
turnstile: "Turnstile"
enableTurnstile: "Povoliť turnstile"
turnstileSiteKey: "Site key"
turnstileSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Použitie viacerých Captcha systémov môže sposobiť problémy. Chcete radšej vypnúť ostatné Captcha systémy? Môžete ich povoliť viaceré stlačení Zrušiť."
antennas: "Antény"
manageAntennas: "Spravovať antény"
@@ -392,19 +381,16 @@ about: "Informácie"
aboutMisskey: "O Misskey"
administrator: "Administrátor"
token: "Token"
2fa: "Dvojfaktorové overenie (2FA)"
totp: "Overovacia aplikácia"
totpDescription: "Zadajte jednorazové heslo z overovacej aplikácie"
twoStepAuthentication: "Dvojfaktorová autentifikácia"
moderator: "Moderátor"
moderation: "Moderovanie"
nUsersMentioned: "{n} používateľov spomenulo"
securityKeyAndPasskey: "Bezpečnostný kľúč/heslo"
securityKey: "Bezpečnostný kľúč"
securityKeyName: "Názov kľúča"
registerSecurityKey: "Registrovať bezpečnostný kľúč"
lastUsed: "Naposledy použité"
lastUsedAt: "Naposledy použité: {t}"
unregister: "Odregistrovať"
passwordLessLogin: "Nastaviť bezheslové prihlásenie"
passwordLessLoginDescription: "Prihlásenie bez hesla, len bezpečnostným kľúčom alebo prístupovým kľúčom"
resetPassword: "Resetovať heslo"
newPasswordIs: "Nové heslo je \"{password}\""
reduceUiAnimation: "Menej UI animácií"
@@ -419,15 +405,24 @@ markAsReadAllTalkMessages: "Označiť všetky správy ako prečítané"
help: "Pomoc"
inputMessageHere: "Sem napíšte správu"
close: "Zavrieť"
group: "Skupina"
groups: "Skupiny"
createGroup: "Vytvoriť skupinu"
ownedGroups: "Vlastnené skupiny"
joinedGroups: "Členstvo v skupinách"
invites: "Pozvať"
groupName: "Názov skupiny"
members: "Členovia"
transfer: "Presun"
messagingWithUser: "Súkromný chat"
messagingWithGroup: "Skupinový chat"
title: "Nadpis"
text: "Text"
enable: "Povoliť"
next: "Ďalší"
retype: "Zadajte znovu"
noteOf: "Poznámky používateľa {user}"
inviteToGroup: "Pozvať do skupiny"
quoteAttached: "Citované"
quoteQuestion: "Pripojiť ako citát?"
noMessagesYet: "Zatiaľ žiadne správy"
@@ -449,18 +444,19 @@ passwordMatched: "Heslá sú rovnaké"
passwordNotMatched: "Heslá nie sú rovnaké"
signinWith: "Prihlásiť sa použitím {x}"
signinFailed: "Nedá sa prihlásiť. Skontrolujte prosím meno používateľa a heslo."
tapSecurityKey: "Ťuknite na bezpečnostný kľúč"
or: "Alebo"
language: "Jazyk"
uiLanguage: "Jazyk používateľského prostredia"
groupInvited: "Pozvať do skupiny"
aboutX: "O {x}"
emojiStyle: "Štýl emoji"
native: "Natívne"
useOsNativeEmojis: "Používať natívne emoji z OS"
disableDrawer: "Nepoužívať šuflíkové menu"
showNoteActionsOnlyHover: "Ovládacie prvky poznámky sa zobrazujú len po nabehnutí myši"
youHaveNoGroups: "Nemáte žiadne skupiny"
joinOrCreateGroup: "Požiadajte o pozvanie do existujúcej skupiny alebo vytvorte novú."
noHistory: "Žiadna história"
signinHistory: "História prihlásení"
enableAdvancedMfm: "Povolenie pokročilého MFM"
enableAnimatedMfm: "Povoliť animované MFM"
disableAnimatedMfm: "Vypnúť MFM s animáciou"
doing: "Pracujem..."
category: "Kategórie"
tags: "Značky"
@@ -507,7 +503,6 @@ deleteAll: "Odstrániť všetko"
showFixedPostForm: "Zobraziť formulár na nové príspevky nad časovou osou"
newNoteRecived: "Sú nové poznámky"
sounds: "Zvuky"
sound: "Zvuky"
listen: "Počúvať"
none: "Žiadne"
showInPage: "Zobraziť v stránke"
@@ -569,7 +564,6 @@ manage: "Administrácia"
plugins: "Pluginy"
preferencesBackups: "Zálohy nastavení"
deck: "Deck"
undeck: "Oddokovať"
useBlurEffectForModal: "Použiť efekt rozmazania na okná"
useFullReactionPicker: "Použiť plnú veľkosť výberu reakcií"
width: "Šírka"
@@ -585,6 +579,7 @@ tokenRequested: "Povoliť prístup k účtu"
pluginTokenRequestedDescription: "Tento plugin bude môcť používať oprávnenia nastavené tu."
notificationType: "Typ oznámenia"
edit: "Upraviť"
useStarForReactionFallback: "Použiť ★ keď emoji reakcie nie je známe"
emailServer: "Email server"
enableEmail: "Zapnúť email"
emailConfigInfo: "Používa sa na overenie emaily pri registrácii alebo pri zabudnutí hesla"
@@ -654,7 +649,6 @@ createNewClip: "Vytvoriť nový klip"
unclip: "Odopnúť"
confirmToUnclipAlreadyClippedNote: "Táto poznámka je už pripnutá ako \"{name}\". Naozaj ju chcete odopnúť?"
public: "Verejné"
private: "Súkromné"
i18nInfo: "Misskey je prekladaný do rôznych jazykov dobrovoľníkmi. Pomôcť môžete na {link}."
manageAccessTokens: "Spravovať prístupové tokeny"
accountInfo: "Informácie o účte"
@@ -713,7 +707,6 @@ accentColor: "Akcent"
textColor: "Text"
saveAs: "Uložiť ako..."
advanced: "Rozšírené"
advancedSettings: "Rozšírené nastavenia"
value: "Hodnoty"
createdAt: "Vytvorené"
updatedAt: "Upravené"
@@ -779,7 +772,6 @@ popularPosts: "Populárne príspevky"
shareWithNote: "Zdieľať s poznámkou"
ads: "Reklamy"
expiration: "Ukončiť hlasovanie"
startingperiod: "Začiatok"
memo: "Memo"
priority: "Priorita"
high: "Vysoká"
@@ -831,6 +823,8 @@ deleteAccountConfirm: "Toto nezvrátiteľne vymaže váš účet. Pokračovať?"
incorrectPassword: "Nesprávne heslo."
voteConfirm: "Potvrdzujete svoj hlas za \"{choice}\"?"
hide: "Skryť"
leaveGroup: "Opustiť skupiny"
leaveGroupConfirm: "Naozaj chcete opustiť \"{name}\"?"
useDrawerReactionPickerForMobile: "Zobraziť výber reakcií ako šuflík na mobile"
welcomeBackWithName: "Vitajte späť, {name}"
clickToFinishEmailVerification: "Kliknutím na [{ok}] dokončíte overeniu emailu."
@@ -846,13 +840,11 @@ instanceDefaultLightTheme: "Predvolená svetlá téma"
instanceDefaultDarkTheme: "Predvolená tmavá téma"
instanceDefaultThemeDescription: "Vložte kód témy v objektovom formáte"
mutePeriod: "Trvanie stíšenia"
period: "Ukončiť hlasovanie"
indefinitely: "Navždy"
tenMinutes: "10 minút"
oneHour: "1 hodina"
oneDay: "1 deň"
oneWeek: "1 týždeň"
oneMonth: "1 mesiac"
reflectMayTakeTime: "Zmeny môžu chvíľu trvať kým sa prejavia."
failedToFetchAccountInformation: "Nepodarilo sa načítať informácie o účte."
rateLimitExceeded: "Prekročený limit rýchlosti"
@@ -866,7 +858,6 @@ thereIsUnresolvedAbuseReportWarning: "Existuje nevyriešené nahlásenie zneuži
recommended: "Odporúčané"
driveCapOverrideLabel: "Zmena limitu úložiska pre tohoto používateľa"
driveCapOverrideCaption: "Ak je zadaná hodnota menšia alebo rovná 0, zruší sa."
requireAdminForView: "Na zobrazenie sa musíte prihlásiť pod administrátorským účtom."
isSystemAccount: "Tieto účty automaticky vytvoril a spravuje systém."
typeToConfirm: "Ak chcete vykonať túto operáciu, napíšte {x}"
deleteAccount: "Vymazať účet"
@@ -895,37 +886,8 @@ enableAutoSensitive: "Automatická detekcia NSFW"
enableAutoSensitiveDescription: "Ak je zapnuté, príznak NSFW sa na médiách automaticky nastaví pomocou strojového učenia. Aj keď je táto funkcia vypnutá, v niektorých prípadoch sa môže nastaviť automaticky."
activeEmailValidationDescription: "Dôkladnejšie overí e-mailovú adresu používateľa tým, že zistí, či ide o vyradenú e-mailovú adresu a či sa s ňou dá skutočne komunikovať. Ak nie je začiarknuté, e-mailová adresa sa kontroluje len ako text."
navbar: "Navigačný panel"
shuffle: "Zamiešať"
account: "Účty"
move: "Pohyb"
pushNotification: "Push notifikácie"
subscribePushNotification: "Push notifikácie zapnuté"
unsubscribePushNotification: "Vypnúť push notifikácie"
pushNotificationAlreadySubscribed: "Push notifikácie sú zapnuté"
pushNotificationNotSupported: "Prehliadač alebo server nepodporujú push notifikácie"
sendPushNotificationReadMessage: "Odstrániť push notifikácie po ich prečítaní"
sendPushNotificationReadMessageCaption: "Na chvíľu sa zobrazí oznámenie \"{emptyPushNotificationMessage}\". Môže to zvýšiť spotrebu batérie zariadenia."
windowMaximize: "Maximalizovať"
windowRestore: "Obnoviť"
caption: "Nadpis"
tools: "Nástroje"
cannotLoad: "Nedá sa načítať."
like: "Páči sa mi"
show: "Zobraziť"
neverShow: "Nabudúce nezobrazovať"
remindMeLater: "Pripomenúť neskôr"
didYouLikeMisskey: "Páči sa vám Misskey?"
pleaseDonate: "Misskey je bezplatný softvér, ktorý používa {host}. Prosím, prispejte, aby sme ho mohli ďalej rozvíjať!"
color: "Farba"
horizontal: "Strana"
youFollowing: "Sledované"
icon: "Avatar"
_role:
priority: "Priorita"
_priority:
low: "Málo"
middle: "Stredné"
high: "Vysoká"
_sensitiveMediaDetection:
description: "Strojové učenie sa použije na automatickú detekciu citlivých médií na účely ich moderovania. Mierne sa zvýši zaťaženie servera."
sensitivity: "Citlivosť detekcie"
@@ -958,7 +920,6 @@ _accountDelete:
_ad:
back: "Späť"
reduceFrequencyOfThisAd: "Túto reklamu zobrazovať menej"
hide: "Nikdy nezobrazovať"
_forgotPassword:
enterEmail: "Zadajte emailovú adresu, ktorú ste použili pri registrácii. Pošleme vám na ňu odkaz, cez ktorý si môžete obnoviť heslo."
ifNoEmail: "Ak ste pri registrácii nepoužili email, prosím kontaktujte administrátora."
@@ -1010,6 +971,76 @@ _aboutMisskey:
donate: "Podporiť Misskey"
morePatrons: "Takisto oceňujeme podporu mnoých ďalších, ktorí tu nie sú uvedení. Ďakujeme! 🥰"
patrons: "Prispievatelia"
_nsfw:
respect: "Skryť NSFW médiá"
ignore: "Neskrývať NSFW médiá"
force: "Skryť všetky médiá"
_mfm:
cheatSheet: "MFM Cheatsheet"
intro: "MFM je Misskey exkluzívny značkovací jazyk, ktorý sa dá používať na viacerých miestach. Tu môžete vidieť zoznam všetkej dostupnej MFM syntaxe."
dummy: "Misskey rozširuje svet Fediverza"
mention: "Zmienka"
mentionDescription: "Používateľa spomeniete použítím zavináča a mena používateľa"
hashtag: "Hashtag"
hashtagDescription: "Môžete zadať hashtag použitím mriežky a textu"
url: "URL"
urlDescription: "URL sa dajú zobraziť."
link: "Odkaz"
linkDescription: "Jednotlivé časti texty sa dajú zobraziť ako URL."
bold: "Tučné"
boldDescription: "Zvýrazní písmená tým, že budú tučnejšie."
small: "Malé"
smallDescription: "Zobrazí obsah malý a tenký."
center: "Vystrediť prvky"
centerDescription: "Zobrazí obsah v strede"
inlineCode: "Kód (inline)"
inlineCodeDescription: "Zobrazí kód so zvýraznením syntaxe."
blockCode: "Kód (blok)"
blockCodeDescription: "Zobrazí viacriadkový kód so zvýraznením syntaxe v bloku."
inlineMath: "Vzorec (inline)"
inlineMathDescription: "Zobrazí matematický vzorec (KaTeX) v riadku."
blockMath: "Vzorec (blok)"
blockMathDescription: "Zobrazí viacriadkový matematický vzorec (KaTeX) v bloku"
quote: "Citovať"
quoteDescription: "Zobrazí obsah ako citát."
emoji: "Vlastné emoji"
emojiDescription: "Pridaním dvojbodiek pred a za názov vlastnej emoji, sa dá zobraziť vlastná emoji."
search: "Hľadať"
searchDescription: "Zobrazí vyhľadávacie pole so zadaným textom."
flip: "Preklopiť"
flipDescription: "Preklopí obsah horizontálne alebo vertikálne"
jelly: "Animácia (želé)"
jellyDescription: "Obsah sa bude hýbať ako želé."
tada: "Animácia (tadá)"
tadaDescription: "Obsah sa bude hýbať ako Tada!"
jump: "Animácia (skok)"
jumpDescription: "Obsah skočí."
bounce: "Animácia (odraz)"
bounceDescription: "Obsah sa bude odrážať."
shake: "Animácia (trasenie)"
shakeDescription: "Obsah sa bude triasť."
twitch: "Animácia (myknutie)"
twitchDescription: "Obsahu dá animáciu silného trasenia."
spin: "Animácia (rotácia)"
spinDescription: "Obsahu pridá otáčajúcu animáciu."
x2: "Veľký"
x2Description: "Zobrazí obsah väčší."
x3: "Veľmi veľký"
x3Description: "Zobrazí obsah ešte väčší."
x4: "Neuveriteľne veľký"
x4Description: "Zobrazí obsah ešte viac veľký než veľmi veľký."
blur: "Rozmazanie"
blurDescription: "Týmto efektom môže byť obsah rozmazaný. Zaostrí sa keď ned neho príde kurzor."
font: "Písmo"
fontDescription: "Nastaví písmo, ktorým sa zobrazí text."
rainbow: "Dúha"
rainbowDescription: "Zobrazí obsah vo farbách dúhy."
sparkle: "Trblietky"
sparkleDescription: "Obsahu dodá trblietajúci efekt."
rotate: "Otáčať"
rotateDescription: "Otočí obsah o určitý uhol."
plain: "Obyčajné"
plainDescription: "Bez akejkoľvej syntaxe"
_instanceTicker:
none: "Nikdy nezobrazovať"
remote: "Zobraziť pre vzdialených používateľov"
@@ -1139,21 +1170,44 @@ _ago:
weeksAgo: "pred {n} týždňami"
monthsAgo: "pred {n} mesiacmi"
yearsAgo: "pred {n} rokmi"
invalid: "Nič tu nie je"
_time:
second: "s"
minute: "min"
hour: "hod"
day: "dní"
_tutorial:
title: "Ako používať Misskey"
step1_1: "Vitajte!"
step1_2: "Táto stránka sa volá \"časová os\". Zobrazuje chronologicky zoradené \"poznámky\" od ľudí, ktorých sledujete."
step1_3: "Vaša časová os je teraz prázdna pretože ste nepridali žiadne poznámky ani nikoho zatiaľ nesledujete."
step2_1: "Podˇme dokončiť nastavenia vášho profilu pred napísaním poznámky alebo sledovaním niekoho."
step2_2: "Poskytnutím informácií o vás uľahčíte ostatným, či chcú vidieť alebo sledovať vaše poznámky."
step3_1: "Dokončili ste nastavovanie svojho profilu?"
step3_2: "Poďme vyskúšať napísať poznámku. Môžete to spraviť stlačením ikony ceruzky na vrchu obrazovky."
step3_3: "Vyplňte polia a stlačte tlačítko vpravo hore."
step3_4: "Nemáte čo povedať? Skúste \"len si nastavujem môj msky\"!"
step4_1: "Napísali ste svoju prvú poznámku?"
step4_2: "Hurá! Teraz by vaša prvá poznámka mala byť na vašej časovej osi."
step5_1: "Teraz skúsme oživiť časovú os sledovaním nejakých ľudí."
step5_2: "{featured} zobrazí populárne poznámku na tomto serveri. {explore} môžete objavovať populárnych používateľov. Skúste tam nájsť ľudí, ktorých by ste radi sledovali!"
step5_3: "Ak chcete sledovať ďalších používateľov, kliknite na ich ikonu a stlačte tlačidlo \"Sledovať\" na ich profile."
step5_4: "Ak má niektorý používateľ ikonu zámku vedľa svojho mena, znamená to, že môže trvať určitý čas, kým daný používateľ schváli vašu žiadosť o sledovanie."
step6_1: "Teraz by ste mali vidieť poznámky ďalších používateľov na svojej časovej osi."
step6_2: "Môžete dať \"reakcie\" na poznámky ďalších ľudí ako rýchlu odpoveď."
step6_3: "Reakciu pridáte kliknutím na \"+\" niekoho poznámke a vybratím emoji, ktorou chcete reagovať."
step7_1: "Gralujeme! Dokončili ste základného sprievodcu Misskey."
step7_2: "Ak sa chcete naučiť viac o Misskey, skúste sekciu {help}."
step7_3: "A teraz, veľa šťastia, bavte sa s Misskey! 🚀"
_2fa:
alreadyRegistered: "Už ste zaregistrovali 2-faktorové autentifikačné zariadenie."
registerDevice: "Registrovať nové zariadenie"
registerKey: "Registrovať bezpečnostný kľúč"
step1: "Najprv si nainštalujte autentifikačnú aplikáciu (napríklad {a} alebo {b}) na svoje zariadenie."
step2: "Potom, naskenujte QR kód zobrazený na obrazovke."
step2Url: "Do aplikácie zadajte nasledujúcu URL adresu:"
step3: "Nastavenie dokončíte zadaním tokenu z vašej aplikácie."
step4: "Od teraz, všetky ďalšie prihlásenia budú vyžadovať prihlasovací token."
securityKeyInfo: "Okrem odtlačku prsta alebo PIN autentifikácie si môžete nastaviť autentifikáciu cez hardvérový bezpečnostný kľúč podporujúci FIDO2 a tak ešte viac zabezpečiť svoj účet."
removeKeyConfirm: "Naozaj chcete odstrániť \"{name}\"?"
renewTOTPCancel: "Nie, ďakujem"
_permissions:
"read:account": "Vidieť informácie o vašom účte"
"write:account": "Upraviť informácie o vašom účte"
@@ -1199,6 +1253,7 @@ _antennaSources:
homeTimeline: "Poznámky od sledovaného používateľa"
users: "Poznámky od konkrétneho používateľa"
userList: "Poznámky od používateľov v zozname"
userGroup: "Poznámky od používateľov z konkrétnej skupiny."
_weekday:
sunday: "Nedeľa"
monday: "Pondelok"
@@ -1208,8 +1263,6 @@ _weekday:
friday: "Piatok"
saturday: "Sobota"
_widgets:
profile: "Profil"
instanceInfo: "Informácie o serveri"
memo: "Prilepené poznámky"
notifications: "Oznámenia"
timeline: "Časová os"
@@ -1232,8 +1285,6 @@ _widgets:
serverMetric: "Metriky servera"
aiscript: "Konzola AiScript"
aichan: "Ai"
_userList:
chooseList: "Vyberte zoznam"
_cw:
hide: "Skryť"
show: "Zobraziť viac"
@@ -1270,6 +1321,8 @@ _visibility:
followersDescription: "Viditeľné iba tým, ktorí vás sledujú"
specified: "Priame"
specifiedDescription: "Viditeľné iba pre konkrétnych používateľov"
localOnly: "Iba lokálne"
localOnlyDescription: "Vzdialený používatelia nebudú vidieť"
_postForm:
replyPlaceholder: "Odpoveď na túto poznámku..."
quotePlaceholder: "Citovanie tejto poznámky..."
@@ -1332,12 +1385,6 @@ _timelines:
local: "Lokálne"
social: "Sociálne"
global: "Globálne"
_play:
viewSource: "Ukázať zdroj"
featured: "Význačné"
title: "Nadpis"
script: "Skript"
summary: "Popis"
_pages:
newPage: "Vytvoriť novú stránku"
editPage: "Upraviť túto stránku"
@@ -1373,6 +1420,8 @@ _pages:
eyeCatchingImageRemove: "Odstrániť miniatúru"
chooseBlock: "Pridať blok"
selectType: "Vyberte typ"
enterVariableName: "Zadajte meno premennej"
variableNameIsAlreadyUsed: "Meno premennej s už používa"
contentBlocks: "Obsah"
inputBlocks: "Vstup"
specialBlocks: "Špeciálne"
@@ -1382,11 +1431,249 @@ _pages:
section: "Sekcia"
image: "Obrázky"
button: "Tlačidlo"
if: "Ak"
_if:
variable: "Premenné"
post: "Napísať poznámku"
_post:
text: "Obsah"
attachCanvasImage: "Príspevok s obrázkom na plátne"
canvasId: "ID plátna"
textInput: "Textový vstup"
_textInput:
name: "Meno premennej"
text: "Nadpis"
default: "Predvolená hodnota"
textareaInput: "Viacriadkový textový vstup"
_textareaInput:
name: "Meno premennej"
text: "Nadpis"
default: "Predvolená hodnota"
numberInput: "Číselný vstup"
_numberInput:
name: "Meno premennej"
text: "Nadpis"
default: "Predvolená hodnota"
canvas: "Plátno"
_canvas:
id: "ID plátna"
width: "Šírka"
height: "Výška"
note: "Vložená poznámka"
_note:
id: "ID poznámky"
idDescription: "Alebo môžete vložiť URL poznámky sem"
detailed: "Podrobný pohľad"
switch: "Prepnúť"
_switch:
name: "Meno premennej"
text: "Nadpis"
default: "Predvolená hodnota"
counter: "Počítadlo"
_counter:
name: "Meno premennej"
text: "Nadpis"
inc: "Pripočítať"
_button:
text: "Nadpis"
colored: "Farebné"
action: "Operácia po stlačení tlačidla"
_action:
dialog: "Zobraziť dialóg"
_dialog:
content: "Obsah"
resetRandom: "Resetovať zdroj náhodnosti"
pushEvent: "Poslať udalosť"
_pushEvent:
event: "Názov udalosti"
message: "Zobrazená správa po aktivácii"
variable: "Odoslaná premenná"
no-variable: "Žiadne"
callAiScript: "Spustiť AiScript"
_callAiScript:
functionName: "Názov funkcie"
radioButton: "Možnosť"
_radioButton:
name: "Meno premennej"
title: "Nadpis"
values: "Zoznam možností oddelené novými riadkami"
default: "Predvolená hodnota"
script:
categories:
flow: "Riadenie behu"
logical: "Logická operácia"
operation: "Výpočet"
comparison: "Porovnanie"
random: "Náhodné"
value: "Hodnoty"
fn: "Funkcie"
text: "Textové operácie"
convert: "Transformácie"
list: "Zoznamy"
blocks:
text: "Text"
multiLineText: "Text (viacriadkový)"
textList: "Zoznam textov"
_textList:
info: "Oddeľte každú položku novým riadkom"
strLen: "Dĺžka textu"
_strLen:
arg1: "Text"
strPick: "Vybrať znak"
_strPick:
arg1: "Text"
arg2: "Pozícia znaku"
strReplace: "Náhradný text"
_strReplace:
arg1: "Text"
arg2: "Nahradený text"
arg3: "Nahradiť s"
strReverse: "Otočiť text"
_strReverse:
arg1: "Text"
join: "Spojiť texty"
_join:
arg1: "Zoznamy"
arg2: "Oddeľovač"
add: "Pridať"
_add:
arg1: "A"
arg2: "B"
subtract: "Odčítať"
_subtract:
arg1: "A"
arg2: "B"
multiply: "Násobiť"
_multiply:
arg1: "A"
arg2: "B"
divide: "Deliť"
_divide:
arg1: "A"
arg2: "B"
mod: "Zvyšok po delení"
_mod:
arg1: "A"
arg2: "B"
round: "Zaokrúhliť"
_round:
arg1: "Číslo"
eq: "A a B sa rovnajú"
_eq:
arg1: "A"
arg2: "B"
notEq: "A a B sa nerovnajú"
_notEq:
arg1: "A"
arg2: "B"
and: "A a zároveň B"
_and:
arg1: "A"
arg2: "B"
or: "A alebo B"
_or:
arg1: "A"
arg2: "B"
lt: "< A je menšie ako B"
_lt:
arg1: "A"
arg2: "B"
gt: "> A je väčšie ako B"
_gt:
arg1: "A"
arg2: "B"
ltEq: "<= A je menšie alebo rovné B"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: ">= A je väčšie alebo rovné B"
_gtEq:
arg1: "A"
arg2: "B"
if: "Vetva"
_if:
arg1: "Ak"
arg2: "Potom"
arg3: "Inak"
not: "Opak"
_not:
arg1: "Opak"
random: "Náhodné"
_random:
arg1: "Pravdepodobnosť"
rannum: "Náhodné číslo"
_rannum:
arg1: "Minimálna hodnota"
arg2: "Maximálna hodnota"
randomPick: "Náhodný výber zo zoznamu"
_randomPick:
arg1: "Zoznam"
dailyRandom: "Náhodne (zmení sa raz denne pre každého používateľa)"
_dailyRandom:
arg1: "Pravdepodobnosť"
dailyRannum: "Náhodné číslo (Mení sa denne pre každého používateľa)"
_dailyRannum:
arg1: "Minimálna hodnota"
arg2: "Maximálna hodnota"
dailyRandomPick: "Náhodný výber zo zoznamu (Mení sa denne pre každého používateľa)"
_dailyRandomPick:
arg1: "Zoznam"
seedRandom: "Náhodne (so seedom)"
_seedRandom:
arg1: "Seed"
arg2: "Pravdepodobnosť"
seedRannum: "Náhodné číslo (so seedom)"
_seedRannum:
arg1: "Seed"
arg2: "Minimálna hodnota"
arg3: "Maximálna hodnota"
seedRandomPick: "Náhodný výber zo zoznamu (so seedom)"
_seedRandomPick:
arg1: "Seed"
arg2: "Zoznam"
DRPWPM: "Náhodný výber z váženého zoznamu (Mení sa denne pre každého používateľa)"
_DRPWPM:
arg1: "Zoznam textov"
pick: "Vybrať zo zoznamu"
_pick:
arg1: "Zoznam"
arg2: "Pozícia"
listLen: "Získať dĺžku zoznamu"
_listLen:
arg1: "Zoznam"
number: "Číslo"
stringToNumber: "Text na číslo"
_stringToNumber:
arg1: "Text"
numberToString: "Číslo na text"
_numberToString:
arg1: "Číslo"
splitStrByLine: "Rozdelí text po riadkoch"
_splitStrByLine:
arg1: "Text"
ref: "Premenné"
aiScriptVar: "AiScript premenná"
fn: "Funkcie"
_fn:
slots: "Sloty"
slots-info: "Oddeľte každý slot novým riadkom"
arg1: "Výstup"
for: "For cyklus"
_for:
arg1: "Počet opakovaní"
arg2: "Akcia"
typeError: "Slot {slot} akceptuje hodnoty typu \"{expect}\", ale dodaná hodnota je typu \"{actual}\"!"
thereIsEmptySlot: "Slot {slot} je prázdny!"
types:
string: "Text"
number: "Číslo"
boolean: "Boolean"
array: "Zoznamy"
stringArray: "Zoznam textov"
emptySlot: "Prázdny slot"
enviromentVariables: "Premenné prostredia"
pageVariables: "Premenné stránky"
argVariables: "Vstupné sloty"
_relayStatus:
requesting: "Čaká sa"
accepted: "Akceptované"
@@ -1397,11 +1684,14 @@ _notification:
youGotReply: "{name} vám odpovedal/a"
youGotQuote: "{name} vás citoval/a"
youRenoted: "{name} preposlal/a vašu poznámku"
youGotPoll: "{name} hlasoval/a"
youGotMessagingMessageFromUser: "{name} vám poslal/a správu"
youGotMessagingMessageFromGroup: "Prišla správa do skupiny {name}"
youWereFollowed: "Máte nového sledujúceho"
youReceivedFollowRequest: "Dostali ste žiadosť o sledovanie"
yourFollowRequestAccepted: "Vaša žiadosť o sledovanie bola prijatá"
youWereInvitedToGroup: "Pozvať do skupiny"
pollEnded: "Výsledky hlasovania sú k dispozícii."
unreadAntennaNote: "Anténa {name}"
emptyPushNotificationMessage: "Push notifikácie aktualizované"
_types:
all: "Všetky"
@@ -1411,9 +1701,11 @@ _notification:
renote: "Preposlať"
quote: "Citovať"
reaction: "Reakcie"
pollVote: "Hlasy v hlasovaniach"
pollEnded: "Hlasovanie skončilo"
receiveFollowRequest: "Doručené žiadosti o sledovanie"
followRequestAccepted: "Schválené žiadosti o sledovanie"
groupInvited: "Pozvánky do skupín"
app: "Oznámenia z prepojených aplikácií"
_actions:
followBack: "Sledovať späť\n"
@@ -1443,9 +1735,5 @@ _deck:
tl: "Časová os"
antenna: "Antény"
list: "Zoznam"
channel: "Kanály"
mentions: "Zmienky"
direct: "Priame poznámky"
_webhookSettings:
name: "Názov"
active: "Zapnuté"

View File

@@ -1,8 +1,7 @@
---
_lang_: "Svenska"
headlineMisskey: "Ett nätverk kopplat av noter"
introMisskey: "Välkommen! Misskey är en öppen och decentraliserad mikrobloggningstjänst.\nSkapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\" kan du snabbt uttrycka dina känslor kring andras noter. 👍\nLåt oss utforska en ny värld! 🚀"
poweredByMisskeyDescription: "{name} är en tjänst driven av den öppna källkodsplatformen <b>Misskey</b> (benämns \"Misskey instans\")."
introMisskey: "Välkommen! Misskey är en öppen och decentraliserad mikrobloggningstjänst.\nSkapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\" kan du snabbt uttrycka dina känslor kring andras noter.👍\nLåt oss utforska en nya värld!🚀"
monthAndDay: "{day}/{month}"
search: "Sök"
notifications: "Notifikationer"
@@ -13,14 +12,12 @@ fetchingAsApObject: "Hämtar från Fediversum..."
ok: "OK"
gotIt: "Uppfattat!"
cancel: "Avbryt"
noThankYou: "Nej tack"
enterUsername: "Ange användarnamn"
renotedBy: "Omnoterad av {user}"
noNotes: "Inga noteringar"
noNotifications: "Inga notifikationer"
noNotifications: "Inga aviseringar"
instance: "Instanser"
settings: "Inställningar"
notificationSettings: "Notifieringsinställningar"
basicSettings: "Basinställningar"
otherSettings: "Andra inställningar"
openInWindow: "Öppna i ett fönster"
@@ -31,13 +28,13 @@ login: "Logga in"
loggingIn: "Loggar in"
logout: "Logga ut"
signup: "Registrera"
uploading: "Laddar upp..."
uploading: "Uppladdning sker..."
save: "Spara"
users: "Användare"
addUser: "Lägg till användare"
favorite: "Lägg till i favoriter"
favorites: "Favoriter"
unfavorite: "Ta bort från favoriter"
unfavorite: "Avfavorisera"
favorited: "Tillagd i favoriter."
alreadyFavorited: "Redan tillagd i favoriter."
cantFavorite: "Gick inte att lägga till i favoriter."
@@ -50,17 +47,11 @@ deleteAndEdit: "Radera och ändra"
deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den? Du kommer förlora alla reaktioner, omnoteringar och svar till den."
addToList: "Lägg till i lista"
sendMessage: "Skicka ett meddelande"
copyRSS: "Kopiera RSS"
copyUsername: "Kopiera användarnamn"
copyUserId: "Kopiera användar-ID"
copyNoteId: "Kopiera noter-ID"
copyFileId: "Kopiera Fil-ID"
copyFolderId: "Kopiera mapp-ID"
searchUser: "Sök användare"
reply: "Svara"
loadMore: "Ladda mer"
showMore: "Visa mer"
showLess: "Stäng"
youGotNewFollower: "följde dig"
receiveFollowRequest: "Följarförfrågan mottagen"
followRequestAccepted: "Följarförfrågan accepterad"
@@ -108,8 +99,6 @@ renoted: "Omnoterad."
cantRenote: "Inlägget kunde inte bli omnoterat."
cantReRenote: "En omnotering kan inte bli omnoterad."
quote: "Citat"
inChannelRenote: "Omnotera inom kanalen"
inChannelQuote: "I kanal citat"
pinnedNote: "Fästad not"
pinned: "Fäst till profil"
you: "Du"
@@ -117,7 +106,6 @@ clickToShow: "Klicka för att visa"
sensitive: "Känsligt innehåll"
add: "Lägg till"
reaction: "Reaktioner"
reactions: "Reaktioner"
reactionSetting: "Reaktioner som ska visas i reaktionsväljaren"
reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"+\" för att lägga till."
rememberNoteVisibility: "Komihåg notvisningsinställningar"
@@ -136,10 +124,7 @@ unblockConfirm: "Är du säkert att du vill avblockera kontot?"
suspendConfirm: "Är du säker att du vill suspendera detta konto?"
unsuspendConfirm: "Är du säker att du vill avsuspendera detta konto?"
selectList: "Välj lista"
editList: "Redigera lista"
selectChannel: "Välj en kanal"
selectAntenna: "Välj en antenn"
editAntenna: "Redigera en antenn"
selectWidget: "Välj en widget"
editWidgets: "Redigera widgets"
editWidgetsExit: "Avsluta redigering"
@@ -157,7 +142,7 @@ flagAsBotDescription: "Aktivera det här alternativet om kontot är kontrollerat
flagAsCat: "Markera konto som katt"
flagAsCatDescription: "Aktivera denna inställning för att markera kontot som en katt."
flagShowTimelineReplies: "Visa svar i tidslinje"
flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter i tidslinjen om aktiverad."
flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter i tidslinjen om påslagen."
autoAcceptFollowed: "Godkänn följarförfrågningar från användare du följer automatiskt"
addAccount: "Lägg till konto"
loginFailed: "Inloggningen misslyckades"
@@ -178,6 +163,7 @@ annotation: "Kommentarer"
federation: "Federation"
instances: "Instanser"
registeredAt: "Registrerad på"
latestRequestSentAt: "Senaste förfrågan skickad"
latestRequestReceivedAt: "Senaste begäran mottagen"
latestStatus: "Senaste status"
storageUsage: "Använt lagringsutrymme"
@@ -253,252 +239,24 @@ saved: "Sparad"
messaging: "Chatt"
upload: "Ladda upp"
keepOriginalUploading: "Behåll originalbild"
keepOriginalUploadingDescription: "Sparar den originellt uppladdade bilden i sitt i befintliga skick. Om avstängd, kommer en webbversion bli genererad vid uppladdning."
fromDrive: "Från Drive"
fromUrl: "Från en länk"
uploadFromUrl: "Ladda upp från länk"
uploadFromUrlDescription: "Länken av filen du vill ladda upp"
uploadFromUrlRequested: "Uppladdning begärd"
uploadFromUrlMayTakeTime: "Det kan ta tid tills att uppladdningen blir klar."
explore: "Utforska"
messageRead: "Läs"
noMoreHistory: "Det finns ingen mer historik"
startMessaging: "Starta en chatt"
nUsersRead: "läst av {n}"
agreeTo: "Jag accepterar {0}"
agree: "Överens"
termsOfService: "Användarvillkor"
start: "Kom igång"
home: "Hem"
remoteUserCaution: "Då denna användaren kommer från en fjärrinstans, kan informationen visad vara ofullständig."
activity: "Aktivitet"
images: "Bilder"
image: "Bilder"
birthday: "Födelsedag"
yearsOld: "{age} år gammal"
registeredDate: "Gick med"
location: "Plats"
theme: "Teman"
themeForLightMode: "Tema att använda i Ljust Läge"
themeForDarkMode: "Tema att använda i Mörkt Läge"
light: "Ljust"
dark: "Mörk"
lightThemes: "Ljusa teman"
darkThemes: "Mörka teman"
syncDeviceDarkMode: "Synka Mörkt Läge med din enhets inställningar"
drive: "Drive"
fileName: "Filnamn"
selectFile: "Välj en fil"
selectFiles: "Välj filer"
selectFolder: "Välj en mapp"
selectFolders: "Välj mappar"
renameFile: "Byt namn på filen"
folderName: "Mappnamn"
createFolder: "Skapa en mapp"
renameFolder: "Byt namn på mappen"
deleteFolder: "Ta bort mappen"
addFile: "Lägg till fil"
emptyDrive: "Din Drive är tom"
emptyFolder: "Denna mappen är tom"
unableToDelete: "Kunde inte ta bort"
inputNewFileName: "Ange nytt filnamn"
inputNewDescription: "Ange ny bildtext"
inputNewFolderName: "Ange nytt mappnamn"
circularReferenceFolder: "Destinationsmappen är en undermapp av mappen du vill flytta."
hasChildFilesOrFolders: "Då denna mappen inte är tom, kan den inte tas bort."
copyUrl: "Kopiera URL"
rename: "Byt namn"
avatar: "Profilbild"
banner: "Banner"
reload: "Ladda om"
doNothing: "Ignorera"
reloadConfirm: "Vill du ladda om tidslinjen?"
watch: "Titta"
accept: "Tillåt"
reject: "Neka"
normal: "Normal"
instanceName: "Instansnamn"
instanceDescription: "Instansbeskrivning"
maintainerEmail: "Administratörens epost"
tosUrl: "URL till användarvillkår"
thisYear: "Detta året"
thisMonth: "Denna månaden"
today: "Idag"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Sidor"
integration: "Integrationer"
connectService: "Anslut"
disconnectService: "Koppla från"
enableLocalTimeline: "Aktivera lokal tidslinje"
enableGlobalTimeline: "Aktivera global tidslinje"
registration: "Registrera"
enableRegistration: "Aktivera registrering av nya användare"
invite: "Inbjudan"
inMb: "I megabyte"
iconUrl: "URL till profilbilden"
bannerUrl: "URL till banner-bilden"
basicInfo: "Grundläggande info"
pinnedUsers: "Fästa användare"
pinnedPages: "Fästa sidor"
nsfw: "Känsligt innehåll"
pinnedNotes: "Fästad not"
hcaptcha: "hCaptcha"
enableHcaptcha: "Aktivera hCaptcha"
hcaptchaSiteKey: "Webbplatsnyckel"
hcaptchaSecretKey: "Hemlig nyckel"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Aktivera reCAPTCHA"
recaptchaSiteKey: "Webbplatsnyckel"
recaptchaSecretKey: "Hemlig nyckel"
turnstile: "Turnstile"
enableTurnstile: "Aktivera Turnstile"
turnstileSiteKey: "Webbplatsnyckel"
turnstileSecretKey: "Hemlig nyckel"
antennas: "Antenner"
manageAntennas: "Hantera Antenner"
name: "Namn"
antennaSource: "Antennkälla"
antennaKeywords: "Nyckelord att lyssna efter"
antennaExcludeKeywords: "Nyckelord att exkludera"
antennaKeywordsDescription: "Separera med mellanslag för en AND kondition, eller med nya linjer för en OR kondition"
notifyAntenna: "Notifiera om nya noter"
withFileAntenna: "Endast noter med filer"
enableServiceworker: "Aktivera pushnotiser i denna webbläsaren"
antennaUsersDescription: "Ange ett användarnamn per linje"
withReplies: "Med svar"
notesAndReplies: "Inlägg och svar"
silence: "Tystnad"
recentlyUpdatedUsers: "Nyligen aktiva användare"
recentlyRegisteredUsers: "Nyligen registrerade användare"
exploreFediverse: "Utforska Fediverse"
popularTags: "Populära taggar"
userList: "Listor"
about: "Om"
aboutMisskey: "Om Misskey"
administrator: "Administratör"
2fa: "Tvåfaktorsautentisering"
totp: "Autentiseringsapp"
moderator: "Moderator"
passwordLessLogin: "Lösenordsfri inloggning"
passwordLessLoginDescription: "Tillåter lösenordsfri inloggning med endast en säkerhetsnyckel eller en passkey."
resetPassword: "Återställ Lösenord"
newPasswordIs: "Det nya lösenordet är \"{password}\""
share: "Dela"
help: "Hjälp"
close: "Stäng"
invites: "Inbjudan"
members: "Medlemmar"
transfer: "Överför"
text: "Text"
enable: "Aktivera"
next: "Nästa"
invitations: "Inbjudan"
invitationCode: "Inbjudningskod"
available: "Tillgängligt"
weakPassword: "Svagt Lösenord"
normalPassword: "Medel Lösenord"
strongPassword: "Starkt Lösenord"
signinFailed: "Kan inte logga in. Det angivna användarnamnet eller lösenordet är felaktigt."
or: "eller"
language: "Språk"
aboutX: "Om {x}"
category: "Kategori"
tags: "Taggar"
createAccount: "Skapa ett konto"
existingAccount: "Existerande konto"
regenerate: "Regenerera"
fontSize: "Textstorlek"
openImageInNewTab: "Öppna bild i ny flik"
clientSettings: "Klientinställningar"
accountSettings: "Kontoinställningar"
numberOfDays: "Antal dagar"
deleteAll: "Radera alla"
sounds: "Ljud"
sound: "Ljud"
listen: "Lyssna"
none: "Ingen"
volume: "Volym"
chooseEmoji: "Välj en emoji"
recentUsed: "Senast använd"
install: "Installera"
uninstall: "Avinstallera"
menu: "Meny"
serviceworkerInfo: "Måste vara aktiverad för pushnotiser."
enableInfiniteScroll: "Ladda mer automatiskt"
enablePlayer: "Öppna videospelare"
permission: "Behörigheter"
enableAll: "Aktivera alla"
edit: "Ändra"
enableEmail: "Aktivera epost-utskick"
email: "E-post"
smtpHost: "Värd"
smtpUser: "Användarnamn"
smtpPass: "Lösenord"
emptyToDisableSmtpAuth: "Lämna användarnamn och lösenord tomt för att avaktivera SMTP verifiering"
logs: "Logg"
channel: "kanal"
create: "Skapa"
other: "Mer"
send: "Skicka"
openInNewTab: "Öppna i ny flik"
createNew: "Skapa ny"
i18nInfo: "Misskey översätts till många olika språk av volontärer. Du kan hjälpa till med översättningen på {link}."
accountInfo: "Kontoinformation"
clips: "Klipp"
duplicate: "Duplicera"
reloadToApplySetting: "Inställningen tillämpas efter sidan laddas om. Vill du göra det nu?"
clearCache: "Rensa cache"
onlineUsersCount: "{n} användare är online"
nNotes: "{n} Noter"
backgroundColor: "Bakgrundsbild"
textColor: "Text"
youAreRunningUpToDateClient: "Klienten du använder är uppdaterat."
newVersionOfClientAvailable: "Ny version av klienten är tillgänglig."
publish: "Publicera"
typingUsers: "{users} skriver"
info: "Om"
enabled: "Aktiverad"
user: "Användare"
customCssWarn: "Den här inställningen borde bara ändrats av en som har rätta kunskaper. Om du ställer in det här fel så kan klienten sluta fungera rätt."
global: "Global"
squareAvatars: "Visa fyrkantiga profilbilder"
sent: "Skicka"
misskeyUpdated: "Misskey har uppdaterats!"
incorrectPassword: "Fel lösenord."
welcomeBackWithName: "Välkommen tillbaka, {name}"
clickToFinishEmailVerification: "Tryck på [{ok}] för att slutföra bekräftelsen på e-postadressen."
searchByGoogle: "Sök"
file: "Filer"
cannotUploadBecauseNoFreeSpace: "Kan inte ladda upp filen för att det finns inget lagringsutrymme kvar."
cannotUploadBecauseExceedsFileSizeLimit: "Kan inte ladda upp filen för att den är större än filstorleksgränsen."
enableAutoSensitive: "Automatisk NSFW markering"
enableAutoSensitiveDescription: "Tillåter automatiskt detektering och marketing av NSFW media genom Maskininlärning när möjligt. Även om denna inställningen är avaktiverad, kan det vara aktiverat på hela instansen."
pushNotification: "Pushnotiser"
subscribePushNotification: "Aktivera pushnotiser"
unsubscribePushNotification: "Avaktivera pushnotiser"
pushNotificationAlreadySubscribed: "Pushnotiser är redan aktiverade"
pushNotificationNotSupported: "Din webbläsare eller instans har inte stöd för pushnotiser"
windowMaximize: "Maximera"
windowMinimize: "Minimera"
windowRestore: "Återställ"
pleaseDonate: "Misskey är en gratis programvara som används på {host}. Donera gärna för att göra utvecklingen ständigt, tack!"
resetPasswordConfirm: "Återställ verkligen ditt lösenord?"
dataSaver: "Databesparing"
icon: "Profilbild"
_achievements:
_types:
_open3windows:
title: "Flera Fönster"
description: "Ha minst 3 fönster öppna samtidigt"
_ffVisibility:
public: "Publicera"
_email:
_follow:
title: "följde dig"
_channel:
setBanner: "Välj banner"
removeBanner: "Ta bort banner"
_mfm:
mention: "Nämn"
quote: "Citat"
emoji: "Anpassa emoji"
search: "Sök"
_theme:
keys:
mention: "Nämn"
@@ -507,52 +265,45 @@ _sfx:
note: "Noter"
notification: "Notifikationer"
chat: "Chatt"
antenna: "Antenner"
_2fa:
passwordToTOTP: "Skriv in ditt lösenord"
renewTOTPCancel: "Nej tack"
_antennaSources:
all: "Alla noter"
homeTimeline: "Noter från följda användare"
users: "Noter från specifika användare"
userList: "Noter från en specificerad lista av användare"
_widgets:
profile: "Profil"
instanceInfo: "Instansinformation"
notifications: "Notifikationer"
timeline: "Tidslinje"
activity: "Aktivitet"
federation: "Federation"
jobQueue: "Jobbkö"
_userList:
chooseList: "Välj lista"
_cw:
show: "Ladda mer"
_visibility:
home: "Hem"
followers: "Följare"
_profile:
name: "Namn"
username: "Användarnamn"
changeAvatar: "Ändra profilbild"
changeBanner: "Ändra banner"
_exportOrImport:
allNotes: "Alla noter"
followingList: "Följer"
muteList: "Tysta"
blockingList: "Blockera"
userLists: "Listor"
_charts:
federation: "Federation"
_timelines:
home: "Hem"
global: "Global"
_pages:
blocks:
image: "Bilder"
script:
categories:
list: "Listor"
blocks:
_join:
arg1: "Listor"
_randomPick:
arg1: "Listor"
_dailyRandomPick:
arg1: "Listor"
_seedRandomPick:
arg2: "Listor"
_pick:
arg1: "Listor"
_listLen:
arg1: "Listor"
types:
array: "Listor"
_notification:
youWereFollowed: "följde dig"
unreadAntennaNote: "Antenn {name}"
_types:
follow: "Följer"
mention: "Nämn"
@@ -566,10 +317,5 @@ _deck:
_columns:
notifications: "Notifikationer"
tl: "Tidslinje"
antenna: "Antenner"
list: "Listor"
channel: "kanal"
mentions: "Omnämningar"
_webhookSettings:
name: "Namn"
active: "Aktiverad"

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,6 @@
---
_lang_: "Türkçe"
headlineMisskey: "Notlarla bağlanmış bir ağ"
introMisskey: "Açık kaynaklı bir dağıtılmış mikroblog hizmeti olan Misskey'e hoş geldiniz.\nMisskey, neler olup bittiğini paylaşmak ve herkese sizden bahsetmek için \"notlar\" oluşturmanıza olanak tanıyan, açık kaynaklı, dağıtılmış bir mikroblog hizmetidir.\nHerkesin notlarına kendi tepkilerinizi hızlıca eklemek için \"Tepkiler\" özelliğini de kullanabilirsiniz👍.\nYeni bir dünyayı keşfedin🚀."
poweredByMisskeyDescription: "name}Açık kaynak bir platform\n<b>Misskey</b>Dünya'nın en sunucularında biri。"
monthAndDay: "{month}Ay {day}Gün"
search: "Arama"
notifications: "Bildirim"
@@ -12,14 +10,10 @@ forgotPassword: "şifremi unuttum"
ok: "TAMAM"
gotIt: "Anladım"
cancel: "İptal"
noThankYou: "Hayır, teşekkürler"
enterUsername: "Kullanıcı adınızı giriniz"
renotedBy: "{user} tarafından Renotelandı"
noNotes: "Notlar mevcut değil."
noNotifications: "Bildirim bulunmuyor"
instance: "Sunucu"
settings: "Ayarlar"
notificationSettings: "Bildirim Ayarları"
basicSettings: "Temel Ayarlar"
otherSettings: "Diğer Ayarlar"
openInWindow: "Bir pencere ile aç"
@@ -27,11 +21,9 @@ profile: "Profil"
timeline: "Zaman çizelgesi"
noAccountDescription: "Bu kullanıcı henüz biyografisini yazmadı"
login: "Giriş Yap "
loggingIn: "Oturum aç"
logout: ıkış Yap"
signup: "Kayıt Ol"
uploading: "Yükleniyor"
save: "Kaydet"
users: "Kullanıcı"
addUser: "Kullanıcı Ekle"
favorite: "Favoriler"
@@ -39,7 +31,6 @@ favorites: "Favoriler"
unfavorite: "Favorilerden Kaldır"
favorited: "Favorilerime eklendi."
alreadyFavorited: "Zaten favorilerinizde kayıtlı."
cantFavorite: "Favorilere kayıt yapılamadı"
pin: "Sabitlenmiş"
unpin: "Sabitlemeyi kaldır"
copyContent: "İçeriği kopyala"
@@ -48,401 +39,25 @@ delete: "Sil"
deleteAndEdit: "Sil ve yeniden düzenle"
deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek istiyor musunuz? Bu nota ilişkin tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir."
addToList: "Listeye ekle"
addToAntenna: "Antene ekle"
sendMessage: "Mesaj Gönder"
copyRSS: "RSSKopyala"
copyUsername: "Kullanıcı Adını Kopyala"
copyUserId: "KullanıcıyıKopyala"
copyNoteId: "Kimlik notunu kopyala"
copyFileId: "Dosya ID'sini kopyala"
copyFolderId: "Klasör ID'sini kopyala"
copyProfileUrl: "Profil URL'sini kopyala"
searchUser: "Kullanıcıları ara"
reply: "yanıt"
loadMore: "Devamını yükle"
showMore: "Devamını yükle"
showLess: "Kapat"
youGotNewFollower: "seni takip etti"
receiveFollowRequest: "Takip isteği alındı"
followRequestAccepted: "Takip isteği kabul edildi"
mention: "Bahset"
mentions: "Bahsetmeler"
directNotes: "Kişisel mesajlar"
importAndExport: "İçeri/Dışarı aktar"
import: "İçeri aktar"
export: "Dışa aktar"
files: "Dosyalar"
download: "İndir"
driveFileDeleteConfirm: "\"{name}\" dosyası silinsin mi? Dosya kullanıldığı tüm notlardan kaybolacaktır."
unfollowConfirm: "{name} takipten çıkarılsın mı?"
exportRequested: "Dışa aktarım talep ettiniz. Bu biraz zaman alabilir. İşlem bitince Sürücünüze eklenecektir."
importRequested: "Dışa aktarım talep ettiniz. Bu işlem biraz zaman alabilir."
lists: "Listeler"
noLists: "Liste yok"
note: "not"
notes: "notlar"
following: "takipçi"
followers: "takipçi"
followsYou: "seni takip ediyor"
createList: "Liste oluştur"
manageLists: "Yönetici Listeleri"
error: "hata"
somethingHappened: "Bir hata oluştu"
retry: "Tekrar dene"
pageLoadError: "Sayfa yüklenemedi."
pageLoadErrorDescription: "Bu genelde ağ veya tarayıcı ön belleği hatalarından olur. Lütfen ön belleği temizlemeyi veya birkaç dakika beklemeyi ve sayfayı yenilemeyi deneyin."
serverIsDead: "Sunucu yanıt vermiyor. Birkaç dakika sonra tekrar deneyin."
youShouldUpgradeClient: "Sayfayı görüntülemek için yenileyin."
enterListName: "Liste ismi"
privacy: "Gizlilik"
makeFollowManuallyApprove: "Takip istekleri elle onaylansın"
defaultNoteVisibility: "Varsayılan görünürlük"
follow: "takipçi"
followRequest: "Takip isteği"
followRequests: "Takip istekleri"
unfollow: "takip etmeyi bırak"
followRequestPending: "Bekleyen Takip Etme Talebi"
enterEmoji: "Emoji Giriniz"
renote: "vazgeçme"
unrenote: "not alma"
renoted: "yeniden adlandırılmış"
cantRenote: "Ayrılamama"
cantReRenote: "not alabilirmiyim"
quote: "alıntı"
inChannelRenote: "Kanal içi Renote"
inChannelQuote: "Kanal içi Alıntı"
pinnedNote: "Sabitlenen"
pinned: "Sabitlenmiş"
you: "sen"
clickToShow: "Görüntülemek için tıkla"
sensitive: "Hassas içerik"
add: "Ekle"
reaction: "Tepkiler"
reactions: "Tepkiler"
reactionSetting: "Palette görünecek tepkiler"
reactionSettingDescription2: "Sıralamak için sürükleyin, silmek için tıklayın, eklemek için \"+\" tuşuna tıklayın."
rememberNoteVisibility: "Görünürlük ayarlarını hatırla"
attachCancel: "Eki sil"
markAsSensitive: "Hassas içerik olarak işaretle"
unmarkAsSensitive: "Hassas içerik işaretini kaldır"
enterFileName: "Dosya ismini gir"
mute: "Gizle"
unmute: "sesi aç"
renoteMute: "sesi kapat"
renoteUnmute: "sesi açmayı iptal et"
block: "engelle"
unblock: "engellemeyi kaldır"
suspend: "askıya al"
unsuspend: "askıya alma"
blockConfirm: "Onayı engelle"
unblockConfirm: "engellemeyi kaldır onayla"
suspendConfirm: "Hesap askıya alınsın mı?"
unsuspendConfirm: "Hesap askıdan kaldırılsın mı"
selectList: "Bir liste seç"
editList: "Listeyi düzenle"
selectChannel: "Kanal seç"
selectAntenna: "Bir anten seç"
editAntenna: "Anteni düzenle"
selectWidget: "Araç seç"
editWidgets: "Araçları düzenle"
editWidgetsExit: "Tamam"
customEmojis: "Özel Emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Emoji adı"
emojiUrl: "Emoji URL'si"
addEmoji: "Emoji ekle"
settingGuide: "Önerilen ayarlar"
cacheRemoteFiles: "Uzak dosyalar ön belleğe alınsın"
cacheRemoteFilesDescription: "Bu ayar açık olduğunda diğer sitelerin dosyaları doğrudan uzak sunucudan yüklenecektir. Bu ayarı kapatmak depolama kullanımını azaltacak ama küçük resimler oluşturulmadığından trafiği arttıracaktır."
cacheRemoteSensitiveFiles: "Hassas uzak dosyalar ön belleğe alınsın"
cacheRemoteSensitiveFilesDescription: "Bu ayar kapalı olduğunda hassas uzak dosyalar ön belleğe alınmadan doğrudan uzak sunucudan yüklenecektir."
flagAsBot: "Bot olarak işaretle"
flagAsBotDescription: "Bu seçeneği hesap bir program tarafından kontrol ediliyorsa işaretleyin. Bu, diğer geliştiricilerin sonsuz etkileşim zincirleri oluşturmasını engellemeye yardımcı olur ve Misskey'in iç sisteminin hesaba bir bot gibi davranmasını sağlar."
flagAsCat: "Kedi hesabı"
flagAsCatDescription: "Kedi hesabı"
flagShowTimelineReplies: "Zaman akışında notlara gelen cevapları göster"
flagShowTimelineRepliesDescription: "Açık olduğu durumda, zaman akışında kullanıcıların başkalarına verdiği cevaplar gözükür."
autoAcceptFollowed: "Takip edilen hesapların takip isteklerini kabul et"
addAccount: "Hesap ekle"
reloadAccountsList: "Hesap listesini güncelle"
loginFailed: "Giriş başarısız oldu"
showOnRemote: "Uzak sunucuda görüntüle"
general: "Genel"
wallpaper: "Duvar kağıdı"
setWallpaper: "Duvar kağıdını ayarla"
removeWallpaper: "Duvar kağıdını sil"
searchWith: "Arama: {q}"
youHaveNoLists: "Hiç listeniz yok"
followConfirm: "{name} takip edilsin mi?"
proxyAccount: "Vekil hesabı"
proxyAccountDescription: "Proxy hesabı, belirli koşullar altında kullanıcılar için uzaktan takipçi işlevi gören bir hesaptır. Örneğin, bir kullanıcı listeye bir uzak kullanıcı eklediğinde, o kullanıcıyı takip eden yerel bir kullanıcı yoksa uzak kullanıcının etkinliği örneğe teslim edilmeyecektir, dolayısıyla bunun yerine proxy hesabı takip edilecektir."
host: "Sağlayıcı"
selectUser: "Kullanıcı seç"
recipient: "Kime"
annotation: "Açıklamalar"
federation: "Federasyon"
instances: "Sunucu"
registeredAt: "Katılma tarihi"
latestRequestReceivedAt: "Alınan son talep"
latestStatus: "En son durum"
storageUsage: "Depolama kullanımı"
charts: "Çizelgeler"
perHour: "Saatlik"
perDay: "Günlük"
stopActivityDelivery: "Durum güncellemelerini gönderme"
blockThisInstance: "Bu sunucuyu engelle"
operations: "İşlemler"
software: "Yazılımlar"
version: "Sürüm"
metadata: "Meta Verileri"
withNFiles: "{n} tane dosya"
monitor: "Monitör"
jobQueue: "İşlem sırası"
cpuAndMemory: "İşlemci ve Hafıza"
network: "Ağ"
disk: "Disk"
instanceInfo: "Sunucu Bilgisi"
statistics: "İstatistikler"
clearQueue: "Sırayı temizle"
clearQueueConfirmTitle: "Sıra silinsin mi?"
clearQueueConfirmText: "Sırada kalan hiçbir şey iletilmeyecek. Genelde bu işlem gerekli değildir."
clearCachedFiles: "Ön belleği temizle"
clearCachedFilesConfirm: "Ön belleğe alınmış tüm uzak sunucu dosyaları silinsin mi?"
blockedInstances: "Engellenen sunucular"
blockedInstancesDescription: "Engellemek istediğiniz sunucuların alan adlarını satır sonlarıyla ayırarak yazın. Yazılan sunucular bu sunucuyla iletişime geçemeyecek."
muteAndBlock: "Susturma ve Engelleme"
mutedUsers: "Susturulan kullanıcılar"
blockedUsers: "Engellenen kullanıcılar"
noUsers: "Kullanıcı yok"
editProfile: "Profili düzenle"
noteDeleteConfirm: "Bu notu silmek istediğinizden emin misiniz?"
pinLimitExceeded: "Daha fazla not sabitlenemez"
intro: "Misskey yüklemesi tamamlandı! Lütfen yönetici hesabını oluşturun."
done: "Tamamlandı"
preview: "Önizleme"
default: "Varsayılan"
defaultValueIs: "Varsayılan: {value}"
noCustomEmojis: "Emoji bulunamadı"
noJobs: "Hiç işlem yok"
federating: "Federe ediliyor"
blocked: "Engellenmiş"
suspended: "Askıya alınmış"
all: "Tümü"
subscribing: "Abonelik"
publishing: "Paylaşım"
notResponding: "Cevap yok"
instanceFollowing: "Sunucuda takip edenler"
instanceFollowers: "Sunucu takipçileri"
instanceUsers: "Sunucu kullanıcıları"
changePassword: "Şifreyi değiştir"
security: "Güvenlik"
retypedNotMatch: "Girişler uyuşmuyor."
currentPassword: "Geçerli şifre"
newPassword: "Yeni şifre"
newPasswordRetype: "Yeni şifre (tekrar)"
attachFile: "Dosya ekle"
more: "Daha!"
featured: "Öne Çıkan"
usernameOrUserId: "Kullanıcı adı veya ID'si"
noSuchUser: "Kullanıcı bulunamadı"
lookup: "Sorgu"
announcements: "Duyurular"
imageUrl: "Görsel URL'si"
remove: "Sil"
removed: "Silindi"
removeAreYouSure: "\"{x}\" silmek istediğinizden emin misiniz?"
deleteAreYouSure: "\"{x}\" silmek istediğinizden emin misiniz?"
resetAreYouSure: "Sıfırlansın mı?"
saved: "Kaydedildi"
messaging: "Mesajlar"
upload: "Yükle"
keepOriginalUploading: "Orijinal görseli koru"
keepOriginalUploadingDescription: "Orijinal olarak yüklenen görüntüyü olduğu gibi kaydeder. Kapatılırsa, yükleme sırasında web'de görüntülenecek bir sürüm oluşturulur."
fromDrive: "Drive Dosyasından"
fromUrl: "Bağlantıdan"
uploadFromUrl: "Bağlantıdan yükle"
uploadFromUrlDescription: "Yüklemek istediğiniz dosyanın bağlantısı"
uploadFromUrlRequested: "Yükleme talep edildi"
uploadFromUrlMayTakeTime: "Yüklemenin tamamlanması biraz süre alabilir."
explore: "Keşfet"
messageRead: "Okundu"
noMoreHistory: "Bundan öncesi yok"
startMessaging: "Yeni bir sohbet başlat"
nUsersRead: "{n} kişi okudu"
agreeTo: "Kabul Ediyorum: {0}"
agree: "Kabul Et"
agreeBelow: "Aşağıdakileri kabul ederim"
basicNotesBeforeCreateAccount: "Önemli notlar"
termsOfService: "Şartlar ve Koşullar"
start: "Başla"
home: "Ana sayfa"
remoteUserCaution: "Bu kullanıcı bir uzak sunucudan olduğu için alınan bilgiler tam olmayabilir."
activity: "Etkinlik"
images: "Görseller"
image: "Görseller"
birthday: "Doğum günü"
yearsOld: "{age} yaşında"
registeredDate: "Kayıt tarihi"
location: "Konum"
theme: "Temalar"
themeForLightMode: "Aydınlık Tema"
themeForDarkMode: "Karanlık Tema"
light: "Aydınlık"
dark: "Karanlık"
lightThemes: "Aydınlık Temalar"
darkThemes: "Karanlık Temalar"
syncDeviceDarkMode: "Sistem Koyu Modu ile senkronize et"
drive: "Sürücü"
fileName: "Dosya adı"
selectFile: "Dosya seç"
selectFiles: "Dosya seç"
selectFolder: "Klasör seç"
selectFolders: "Klasör seç"
renameFile: "Dosyayı yeniden adlandır"
folderName: "Klasör adı"
createFolder: "Klasör oluştur"
renameFolder: "Klasörü Yeniden Adlandır"
deleteFolder: "Klasörü sil"
addFile: "Dosya ekle"
emptyDrive: "Sürücü boş"
emptyFolder: "Bu klasör boş"
unableToDelete: "Silme mümkün değil"
inputNewFileName: "Yeni dosya ismini girin"
inputNewDescription: "Yeni bir başlık gir"
inputNewFolderName: "Yeni klasör ismini girin"
circularReferenceFolder: "Hedef klasör taşınan klasörün bir alt klasörü."
hasChildFilesOrFolders: "Klasör boş olmadığından silinemiyor"
copyUrl: "URL'yi kopyala"
rename: "Yeniden adlandır"
avatar: "Avatar"
banner: "Banner"
displayOfSensitiveMedia: "Hassas içerik gösterimi"
whenServerDisconnected: "Sunucu bağlantısı kesildiğinde"
disconnectedFromServer: "Sunucu bağlantısı koptu"
reload: "Yenile"
doNothing: "Bir şey yapma"
reloadConfirm: "Zaman akışı yenilensin mi?"
watch: "İzle"
unwatch: "İzlemeyi bırak"
accept: "Kabul et"
reject: "Reddet"
normal: "Normal"
instanceName: "Sunucu ismi"
instanceDescription: "Sunucu açıklaması"
maintainerName: "Yönetici ismi"
maintainerEmail: "Yöneticinin e-postası"
tosUrl: "Hizmet Koşulları Bağlantısı"
thisYear: "Bu yıl"
thisMonth: "Bu ay"
today: "Bugün"
monthX: "{month} ay"
pages: "Sayfalar"
integration: "Entegrasyon"
enableRegistration: "Kayıtlara izin ver"
basicInfo: "Temel bilgiler"
pinnedUsers: "Sabitlenmiş kullanıcılar"
pinnedNotes: "Sabitlenen"
manageAntennas: "Anten ayarları"
userList: "Listeler"
resetPassword: "Şifre sıfırlama"
noMessagesYet: "Şimdilik mesaj yok"
details: "Detaylar"
deck: "Güverte"
smtpHost: "Sağlayıcı"
smtpUser: "Kullanıcı Adı"
smtpPass: "Şifre"
notificationSetting: "Bildirim ayarları"
instanceTicker: "Notların sunucu bilgileri"
noCrawleDescription: "Arama motorlarından profilinde, notlarında, sayfalarında vb. dolaşılmamasını ve dizine eklememesini talep et."
clearCache: "Ön belleği temizle"
onlineUsersCount: "{n} kullanıcı çevrim içi"
user: "Kullanıcı"
global: "Küresel"
squareAvatars: "Kare avatarlar"
searchByGoogle: "Arama"
file: "Dosyalar"
pushNotification: "Push bildirimleri"
subscribePushNotification: "Push bildirimlerini etkinleştir"
unsubscribePushNotification: "Push bildirimlerini kapat"
pushNotificationAlreadySubscribed: "Push bildirimleri zaten açık"
pushNotificationNotSupported: "Push bildirimleri sunucu veya tarayıcı tarafından desteklenmiyor"
noRole: "Rol bulunamadı"
color: "Renk"
addMemo: "Kısa not ekle"
icon: "Avatar"
_accountDelete:
started: "Silme işlemi başlatıldı"
_email:
_follow:
title: "seni takip etti"
_theme:
color: "Renk"
keys:
mention: "Bahset"
renote: "vazgeçme"
_mfm:
search: "Arama"
_sfx:
note: "notlar"
notification: "Bildirim"
chat: "Mesajlar"
_2fa:
renewTOTPCancel: "Hayır, teşekkürler"
_permissions:
"read:blocks": "Engellenen hesapları gör"
"write:blocks": "Engellenen hesap listesini düzenle"
_widgets:
profile: "Profil"
instanceInfo: "Sunucu Bilgisi"
notifications: "Bildirim"
timeline: "Zaman çizelgesi"
calendar: "Takvim"
clock: "Saat"
activity: "Etkinlik"
federation: "Federasyon"
jobQueue: "İşlem sırası"
_userList:
chooseList: "Bir liste seç"
_cw:
show: "Devamını yükle"
_poll:
vote: "Oy kullan"
_visibility:
publicDescription: "Herkese açık"
home: "Ana sayfa"
followers: "takipçi"
_profile:
username: "Kullanıcı Adı"
_exportOrImport:
followingList: "takipçi"
muteList: "Gizle"
blockingList: "engelle"
userLists: "Listeler"
_charts:
federation: "Federasyon"
_timelines:
home: "Ana sayfa"
global: "Küresel"
_pages:
blocks:
image: "Görseller"
_notification:
youWereFollowed: "seni takip etti"
unreadAntennaNote: "{name} anteni"
_types:
follow: "takipçi"
mention: "Bahset"
renote: "vazgeçme"
quote: "alıntı"
reaction: "Tepkiler"
receiveFollowRequest: "Takip isteği alındı"
followRequestAccepted: "Takip isteği kabul edildi"
_actions:
reply: "yanıt"
renote: "vazgeçme"
_deck:
configureColumn: "Sütun seçenekleri"
_columns:
notifications: "Bildirim"
tl: "Zaman çizelgesi"
list: "Listeler"
mentions: "Bahsetmeler"

View File

@@ -2,3 +2,5 @@
_lang_: "ياپونچە"
search: "ئىزدەش"
searchByGoogle: "ئىزدەش"
_mfm:
search: "ئىزدەش"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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