Compare commits
5 commits
develop
...
notificati
Author | SHA1 | Date | |
---|---|---|---|
5ec1d96048 | |||
441c0ca465 | |||
29b06994a2 | |||
314fb4bfd9 | |||
ce5ff70cb3 |
|
@ -1,224 +0,0 @@
|
||||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
# Misskey configuration
|
|
||||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
# ┌────────────────────────┐
|
|
||||||
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Password to initiate setting up admin account.
|
|
||||||
# It will not be used after the initial setup is complete.
|
|
||||||
#
|
|
||||||
# Be sure to change this when you set up Misskey via the Internet.
|
|
||||||
#
|
|
||||||
# The provider of the service who sets up Misskey on behalf of the customer should
|
|
||||||
# set this value to something unique when generating the Misskey config file,
|
|
||||||
# and provide it to the customer.
|
|
||||||
setupPassword: example_password_please_change_this_or_you_will_get_hacked
|
|
||||||
|
|
||||||
# ┌─────┐
|
|
||||||
#───┘ URL └─────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Final accessible URL seen by a user.
|
|
||||||
url: 'http://misskey.local'
|
|
||||||
|
|
||||||
# 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: 61812
|
|
||||||
|
|
||||||
# ┌──────────────────────────┐
|
|
||||||
#───┘ 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
|
|
||||||
|
|
||||||
#redisForTimelines:
|
|
||||||
# host: redis
|
|
||||||
# port: 6379
|
|
||||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
|
||||||
# #pass: example-pass
|
|
||||||
# #prefix: example-prefix
|
|
||||||
# #db: 1
|
|
||||||
|
|
||||||
#redisForReactions:
|
|
||||||
# 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'
|
|
||||||
|
|
||||||
# ┌────────────────┐
|
|
||||||
#───┘ Error tracking └──────────────────────────────────────────
|
|
||||||
|
|
||||||
# Sentry is available for error tracking.
|
|
||||||
# See the Sentry documentation for more details on options.
|
|
||||||
|
|
||||||
#sentryForBackend:
|
|
||||||
# enableNodeProfiling: true
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
#sentryForFrontend:
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
# ┌─────────────────────┐
|
|
||||||
#───┘ Other configuration └─────────────────────────────────────
|
|
||||||
|
|
||||||
# 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: 32
|
|
||||||
|
|
||||||
# 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
|
|
|
@ -1,11 +1,4 @@
|
||||||
# misskey settings
|
|
||||||
# MISSKEY_URL=https://example.tld/
|
|
||||||
|
|
||||||
# db settings
|
# db settings
|
||||||
POSTGRES_PASSWORD=example-misskey-pass
|
POSTGRES_PASSWORD=example-misskey-pass
|
||||||
# DATABASE_PASSWORD=${POSTGRES_PASSWORD}
|
|
||||||
POSTGRES_USER=example-misskey-user
|
POSTGRES_USER=example-misskey-user
|
||||||
# DATABASE_USER=${POSTGRES_USER}
|
|
||||||
POSTGRES_DB=misskey
|
POSTGRES_DB=misskey
|
||||||
# DATABASE_DB=${POSTGRES_DB}
|
|
||||||
DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}"
|
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#───┘ URL └─────────────────────────────────────────────────────
|
#───┘ URL └─────────────────────────────────────────────────────
|
||||||
|
|
||||||
# Final accessible URL seen by a user.
|
# Final accessible URL seen by a user.
|
||||||
# You can set url from an environment variable instead.
|
|
||||||
url: https://example.tld/
|
url: https://example.tld/
|
||||||
|
|
||||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||||
|
@ -39,11 +38,9 @@ db:
|
||||||
port: 5432
|
port: 5432
|
||||||
|
|
||||||
# Database name
|
# Database name
|
||||||
# You can set db from an environment variable instead.
|
|
||||||
db: misskey
|
db: misskey
|
||||||
|
|
||||||
# Auth
|
# Auth
|
||||||
# You can set user and pass from environment variables instead.
|
|
||||||
user: example-misskey-user
|
user: example-misskey-user
|
||||||
pass: example-misskey-pass
|
pass: example-misskey-pass
|
||||||
|
|
||||||
|
@ -106,27 +103,15 @@ redis:
|
||||||
# #prefix: example-prefix
|
# #prefix: example-prefix
|
||||||
# #db: 1
|
# #db: 1
|
||||||
|
|
||||||
#redisForReactions:
|
|
||||||
# host: redis
|
|
||||||
# port: 6379
|
|
||||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
|
||||||
# #pass: example-pass
|
|
||||||
# #prefix: example-prefix
|
|
||||||
# #db: 1
|
|
||||||
|
|
||||||
# ┌───────────────────────────┐
|
# ┌───────────────────────────┐
|
||||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||||
|
|
||||||
# You can set scope to local (default value) or global
|
|
||||||
# (include notes from remote).
|
|
||||||
|
|
||||||
#meilisearch:
|
#meilisearch:
|
||||||
# host: meilisearch
|
# host: meilisearch
|
||||||
# port: 7700
|
# port: 7700
|
||||||
# apiKey: ''
|
# apiKey: ''
|
||||||
# ssl: true
|
# ssl: true
|
||||||
# index: ''
|
# index: ''
|
||||||
# scope: local
|
|
||||||
|
|
||||||
# ┌───────────────┐
|
# ┌───────────────┐
|
||||||
#───┘ ID generation └───────────────────────────────────────────
|
#───┘ ID generation └───────────────────────────────────────────
|
||||||
|
@ -147,21 +132,6 @@ redis:
|
||||||
|
|
||||||
id: 'aidx'
|
id: 'aidx'
|
||||||
|
|
||||||
# ┌────────────────┐
|
|
||||||
#───┘ Error tracking └──────────────────────────────────────────
|
|
||||||
|
|
||||||
# Sentry is available for error tracking.
|
|
||||||
# See the Sentry documentation for more details on options.
|
|
||||||
|
|
||||||
#sentryForBackend:
|
|
||||||
# enableNodeProfiling: true
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
#sentryForFrontend:
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
# ┌─────────────────────┐
|
# ┌─────────────────────┐
|
||||||
#───┘ Other configuration └─────────────────────────────────────
|
#───┘ Other configuration └─────────────────────────────────────
|
||||||
|
|
||||||
|
@ -177,7 +147,7 @@ id: 'aidx'
|
||||||
|
|
||||||
# Job rate limiter
|
# Job rate limiter
|
||||||
# deliverJobPerSec: 128
|
# deliverJobPerSec: 128
|
||||||
# inboxJobPerSec: 32
|
# inboxJobPerSec: 16
|
||||||
|
|
||||||
# Job attempts
|
# Job attempts
|
||||||
# deliverJobMaxAttempts: 12
|
# deliverJobMaxAttempts: 12
|
||||||
|
@ -210,9 +180,6 @@ proxyRemoteFiles: true
|
||||||
# Sign to ActivityPub GET request (default: true)
|
# Sign to ActivityPub GET request (default: true)
|
||||||
signToActivityPubGet: true
|
signToActivityPubGet: true
|
||||||
|
|
||||||
# For security reasons, uploading attachments from the intranet is prohibited,
|
|
||||||
# but exceptions can be made from the following settings. Default value is "undefined".
|
|
||||||
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
|
|
||||||
#allowedPrivateNetworks: [
|
#allowedPrivateNetworks: [
|
||||||
# '127.0.0.1/32'
|
# '127.0.0.1/32'
|
||||||
#]
|
#]
|
||||||
|
|
|
@ -2,77 +2,6 @@
|
||||||
# Misskey configuration
|
# Misskey configuration
|
||||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
|
||||||
# ┌──────────────────────────────┐
|
|
||||||
#───┘ a boring but important thing └────────────────────────────
|
|
||||||
|
|
||||||
#
|
|
||||||
# First of all, let me tell you a story that may possibly be
|
|
||||||
# boring to you and possibly important to you.
|
|
||||||
#
|
|
||||||
# Misskey is licensed under the AGPLv3 license. This license is
|
|
||||||
# known to be often misunderstood. Please read the following
|
|
||||||
# instructions carefully and select the appropriate option so
|
|
||||||
# that you do not negligently cause a license violation.
|
|
||||||
#
|
|
||||||
|
|
||||||
# --------
|
|
||||||
# Option 1: If you host Misskey AS-IS (without any changes to
|
|
||||||
# the source code. forks are not included).
|
|
||||||
#
|
|
||||||
# Step 1: Congratulations! You don't need to do anything.
|
|
||||||
|
|
||||||
# --------
|
|
||||||
# Option 2: If you have made changes to the source code (forks
|
|
||||||
# are included) and publish a Git repository of source
|
|
||||||
# code. There should be no access restrictions on
|
|
||||||
# this repository. Strictly speaking, it doesn't have
|
|
||||||
# to be a Git repository, but you'll probably use Git!
|
|
||||||
#
|
|
||||||
# Step 1: Build and run the Misskey server first.
|
|
||||||
# Step 2: Open <https://your.misskey.example/admin/settings> in
|
|
||||||
# your browser with the administrator account.
|
|
||||||
# Step 3: Enter the URL of your Git repository in the
|
|
||||||
# "Repository URL" field.
|
|
||||||
|
|
||||||
# --------
|
|
||||||
# Option 3: If neither of the above applies to you.
|
|
||||||
# (In this case, the source code should be published
|
|
||||||
# on the Misskey interface. IT IS NOT ENOUGH TO
|
|
||||||
# DISCLOSE THE SOURCE CODE WHEN A USER REQUESTS IT BY
|
|
||||||
# E-MAIL OR OTHER MEANS. If you are not satisfied
|
|
||||||
# with this, it is recommended that you read the
|
|
||||||
# license again carefully. Anyway, enabling this
|
|
||||||
# option will automatically generate and publish a
|
|
||||||
# tarball at build time, protecting you from
|
|
||||||
# inadvertent license violations. (There is no legal
|
|
||||||
# guarantee, of course.) The tarball will generated
|
|
||||||
# from the root directory of your codebase. So it is
|
|
||||||
# also recommended to check <built/tarball> directory
|
|
||||||
# once after building and before activating the server
|
|
||||||
# to avoid ACCIDENTAL LEAKING OF SENSITIVE INFORMATION.
|
|
||||||
# To prevent certain files from being included in the
|
|
||||||
# tarball, add a glob pattern after line 15 in
|
|
||||||
# <scripts/tarball.mjs>. DO NOT FORGET TO BUILD AFTER
|
|
||||||
# ENABLING THIS OPTION!)
|
|
||||||
#
|
|
||||||
# Step 1: Uncomment the following line.
|
|
||||||
#
|
|
||||||
# publishTarballInsteadOfProvideRepositoryUrl: true
|
|
||||||
|
|
||||||
# ┌────────────────────────┐
|
|
||||||
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Password to initiate setting up admin account.
|
|
||||||
# It will not be used after the initial setup is complete.
|
|
||||||
#
|
|
||||||
# Be sure to change this when you set up Misskey via the Internet.
|
|
||||||
#
|
|
||||||
# The provider of the service who sets up Misskey on behalf of the customer should
|
|
||||||
# set this value to something unique when generating the Misskey config file,
|
|
||||||
# and provide it to the customer.
|
|
||||||
#
|
|
||||||
# setupPassword: example_password_please_change_this_or_you_will_get_hacked
|
|
||||||
|
|
||||||
# ┌─────┐
|
# ┌─────┐
|
||||||
#───┘ URL └─────────────────────────────────────────────────────
|
#───┘ URL └─────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
@ -186,22 +115,9 @@ redis:
|
||||||
# # You can specify more ioredis options...
|
# # You can specify more ioredis options...
|
||||||
# #username: example-username
|
# #username: example-username
|
||||||
|
|
||||||
#redisForReactions:
|
|
||||||
# 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 configuration └─────────────────────────────
|
||||||
|
|
||||||
# You can set scope to local (default value) or global
|
|
||||||
# (include notes from remote).
|
|
||||||
|
|
||||||
#meilisearch:
|
#meilisearch:
|
||||||
# host: localhost
|
# host: localhost
|
||||||
# port: 7700
|
# port: 7700
|
||||||
|
@ -229,21 +145,6 @@ redis:
|
||||||
|
|
||||||
id: 'aidx'
|
id: 'aidx'
|
||||||
|
|
||||||
# ┌────────────────┐
|
|
||||||
#───┘ Error tracking └──────────────────────────────────────────
|
|
||||||
|
|
||||||
# Sentry is available for error tracking.
|
|
||||||
# See the Sentry documentation for more details on options.
|
|
||||||
|
|
||||||
#sentryForBackend:
|
|
||||||
# enableNodeProfiling: true
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
#sentryForFrontend:
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
# ┌─────────────────────┐
|
# ┌─────────────────────┐
|
||||||
#───┘ Other configuration └─────────────────────────────────────
|
#───┘ Other configuration └─────────────────────────────────────
|
||||||
|
|
||||||
|
@ -256,14 +157,14 @@ id: 'aidx'
|
||||||
# Job concurrency per worker
|
# Job concurrency per worker
|
||||||
#deliverJobConcurrency: 128
|
#deliverJobConcurrency: 128
|
||||||
#inboxJobConcurrency: 16
|
#inboxJobConcurrency: 16
|
||||||
#relationshipJobConcurrency: 16
|
#relashionshipJobConcurrency: 16
|
||||||
# What's relationshipJob?:
|
# What's relashionshipJob?:
|
||||||
# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations.
|
# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations.
|
||||||
|
|
||||||
# Job rate limiter
|
# Job rate limiter
|
||||||
#deliverJobPerSec: 128
|
#deliverJobPerSec: 128
|
||||||
#inboxJobPerSec: 32
|
#inboxJobPerSec: 16
|
||||||
#relationshipJobPerSec: 64
|
#relashionshipJobPerSec: 64
|
||||||
|
|
||||||
# Job attempts
|
# Job attempts
|
||||||
#deliverJobMaxAttempts: 12
|
#deliverJobMaxAttempts: 12
|
||||||
|
@ -309,9 +210,6 @@ proxyRemoteFiles: true
|
||||||
# Sign to ActivityPub GET request (default: true)
|
# Sign to ActivityPub GET request (default: true)
|
||||||
signToActivityPubGet: true
|
signToActivityPubGet: true
|
||||||
|
|
||||||
# For security reasons, uploading attachments from the intranet is prohibited,
|
|
||||||
# but exceptions can be made from the following settings. Default value is "undefined".
|
|
||||||
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
|
|
||||||
#allowedPrivateNetworks: [
|
#allowedPrivateNetworks: [
|
||||||
# '127.0.0.1/32'
|
# '127.0.0.1/32'
|
||||||
#]
|
#]
|
||||||
|
|
|
@ -1,22 +1,25 @@
|
||||||
{
|
{
|
||||||
"name": "Misskey",
|
"name": "Misskey",
|
||||||
"dockerComposeFile": "compose.yml",
|
"dockerComposeFile": "docker-compose.yml",
|
||||||
"service": "app",
|
"service": "app",
|
||||||
"workspaceFolder": "/workspace",
|
"workspaceFolder": "/workspace",
|
||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/node:1": {
|
"ghcr.io/devcontainers-contrib/features/pnpm:2": {
|
||||||
"version": "20.16.0"
|
"version": "8.9.2"
|
||||||
},
|
},
|
||||||
"ghcr.io/devcontainers-contrib/features/corepack:1": {}
|
"ghcr.io/devcontainers/features/node:1": {
|
||||||
|
"version": "20.5.1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forwardPorts": [3000],
|
"forwardPorts": [3000],
|
||||||
"postCreateCommand": "/bin/bash .devcontainer/init.sh",
|
"postCreateCommand": "sudo chmod 755 .devcontainer/init.sh && .devcontainer/init.sh",
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"extensions": [
|
"extensions": [
|
||||||
"editorconfig.editorconfig",
|
"editorconfig.editorconfig",
|
||||||
"dbaeumer.vscode-eslint",
|
"dbaeumer.vscode-eslint",
|
||||||
"Vue.volar",
|
"Vue.volar",
|
||||||
|
"Vue.vscode-typescript-vue-plugin",
|
||||||
"Orta.vscode-jest",
|
"Orta.vscode-jest",
|
||||||
"dbaeumer.vscode-eslint",
|
"dbaeumer.vscode-eslint",
|
||||||
"mrmlnc.vscode-json5"
|
"mrmlnc.vscode-json5"
|
||||||
|
|
|
@ -103,14 +103,6 @@ redis:
|
||||||
# #prefix: example-prefix
|
# #prefix: example-prefix
|
||||||
# #db: 1
|
# #db: 1
|
||||||
|
|
||||||
#redisForReactions:
|
|
||||||
# host: redis
|
|
||||||
# port: 6379
|
|
||||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
|
||||||
# #pass: example-pass
|
|
||||||
# #prefix: example-prefix
|
|
||||||
# #db: 1
|
|
||||||
|
|
||||||
# ┌───────────────────────────┐
|
# ┌───────────────────────────┐
|
||||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||||
|
|
||||||
|
@ -140,21 +132,6 @@ redis:
|
||||||
|
|
||||||
id: 'aidx'
|
id: 'aidx'
|
||||||
|
|
||||||
# ┌────────────────┐
|
|
||||||
#───┘ Error tracking └──────────────────────────────────────────
|
|
||||||
|
|
||||||
# Sentry is available for error tracking.
|
|
||||||
# See the Sentry documentation for more details on options.
|
|
||||||
|
|
||||||
#sentryForBackend:
|
|
||||||
# enableNodeProfiling: true
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
#sentryForFrontend:
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
# ┌─────────────────────┐
|
# ┌─────────────────────┐
|
||||||
#───┘ Other configuration └─────────────────────────────────────
|
#───┘ Other configuration └─────────────────────────────────────
|
||||||
|
|
||||||
|
@ -170,7 +147,7 @@ id: 'aidx'
|
||||||
|
|
||||||
# Job rate limiter
|
# Job rate limiter
|
||||||
# deliverJobPerSec: 128
|
# deliverJobPerSec: 128
|
||||||
# inboxJobPerSec: 32
|
# inboxJobPerSec: 16
|
||||||
|
|
||||||
# Job attempts
|
# Job attempts
|
||||||
# deliverJobMaxAttempts: 12
|
# deliverJobMaxAttempts: 12
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
build:
|
build:
|
||||||
|
@ -6,7 +8,6 @@ services:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- ../:/workspace:cached
|
- ../:/workspace:cached
|
||||||
- node_modules:/workspace/node_modules
|
|
||||||
|
|
||||||
command: sleep infinity
|
command: sleep infinity
|
||||||
|
|
||||||
|
@ -45,7 +46,6 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
redis-data:
|
redis-data:
|
||||||
node_modules:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internal_network:
|
internal_network:
|
|
@ -2,16 +2,10 @@
|
||||||
|
|
||||||
set -xe
|
set -xe
|
||||||
|
|
||||||
sudo chown node node_modules
|
sudo chown -R node /workspace
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get -y install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
|
|
||||||
git config --global --add safe.directory /workspace
|
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
corepack install
|
|
||||||
corepack enable
|
|
||||||
pnpm config set store-dir /home/node/.local/share/pnpm/store
|
pnpm config set store-dir /home/node/.local/share/pnpm/store
|
||||||
pnpm install --frozen-lockfile
|
pnpm install --frozen-lockfile
|
||||||
cp .devcontainer/devcontainer.yml .config/default.yml
|
cp .devcontainer/devcontainer.yml .config/default.yml
|
||||||
pnpm build
|
pnpm build
|
||||||
pnpm migrate
|
pnpm migrate
|
||||||
pnpm exec cypress install
|
|
||||||
|
|
|
@ -7,11 +7,12 @@ Dockerfile
|
||||||
build/
|
build/
|
||||||
built/
|
built/
|
||||||
db/
|
db/
|
||||||
.devcontainer/compose.yml
|
docker-compose.yml
|
||||||
node_modules/
|
node_modules/
|
||||||
packages/*/node_modules
|
packages/*/node_modules
|
||||||
redis/
|
redis/
|
||||||
files/
|
files/
|
||||||
|
misskey-assets/
|
||||||
fluent-emojis/
|
fluent-emojis/
|
||||||
.pnp.*
|
.pnp.*
|
||||||
|
|
||||||
|
@ -27,4 +28,4 @@ fluent-emojis/
|
||||||
|
|
||||||
.idea/
|
.idea/
|
||||||
packages/*/.vscode/
|
packages/*/.vscode/
|
||||||
packages/backend/test/compose.yml
|
packages/backend/test/docker-compose.yml
|
||||||
|
|
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
patreon: syuilo
|
14
.github/ISSUE_TEMPLATE/01_bug-report.yml
vendored
14
.github/ISSUE_TEMPLATE/01_bug-report.yml
vendored
|
@ -53,8 +53,8 @@ body:
|
||||||
Examples:
|
Examples:
|
||||||
* Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4
|
* Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4
|
||||||
* Browser: Chrome 113.0.5672.126
|
* Browser: Chrome 113.0.5672.126
|
||||||
* Server URL: misskey.example.com
|
* Server URL: misskey.io
|
||||||
* Misskey: 2024.x.x
|
* Misskey: 13.x.x
|
||||||
value: |
|
value: |
|
||||||
* Model and OS of the device(s):
|
* Model and OS of the device(s):
|
||||||
* Browser:
|
* Browser:
|
||||||
|
@ -74,11 +74,11 @@ body:
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
* Installation Method or Hosting Service: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment
|
* Installation Method or Hosting Service: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment
|
||||||
* Misskey: 2024.x.x
|
* Misskey: 13.x.x
|
||||||
* Node: 20.x.x
|
* Node: 20.x.x
|
||||||
* PostgreSQL: 15.x.x
|
* PostgreSQL: 15.x.x
|
||||||
* Redis: 7.x.x
|
* Redis: 7.x.x
|
||||||
* OS and Architecture: Ubuntu 24.04.2 LTS aarch64
|
* OS and Architecture: Ubuntu 22.04.2 LTS aarch64
|
||||||
value: |
|
value: |
|
||||||
* Installation Method or Hosting Service:
|
* Installation Method or Hosting Service:
|
||||||
* Misskey:
|
* Misskey:
|
||||||
|
@ -89,9 +89,3 @@ body:
|
||||||
render: markdown
|
render: markdown
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Do you want to address this bug yourself?
|
|
||||||
options:
|
|
||||||
- label: Yes, I will patch the bug myself and send a pull request
|
|
||||||
|
|
11
.github/ISSUE_TEMPLATE/02_feature-request.yml
vendored
11
.github/ISSUE_TEMPLATE/02_feature-request.yml
vendored
|
@ -9,14 +9,3 @@ body:
|
||||||
description: Tell us what the suggestion is
|
description: Tell us what the suggestion is
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Purpose
|
|
||||||
description: Describe the specific problem or need you think this feature will solve, and who it will help.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Do you want to implement this feature yourself?
|
|
||||||
options:
|
|
||||||
- label: Yes, I will implement this by myself and send a pull request
|
|
||||||
|
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -2,7 +2,3 @@ contact_links:
|
||||||
- name: 💬 Misskey official Discord
|
- name: 💬 Misskey official Discord
|
||||||
url: https://discord.gg/Wp8gVStHW3
|
url: https://discord.gg/Wp8gVStHW3
|
||||||
about: Chat freely about Misskey
|
about: Chat freely about Misskey
|
||||||
# 仮
|
|
||||||
- name: 💬 Start discussion
|
|
||||||
url: https://github.com/misskey-dev/misskey/discussions
|
|
||||||
about: The official forum to join conversation and ask question
|
|
||||||
|
|
30
.github/dependabot.yml
vendored
30
.github/dependabot.yml
vendored
|
@ -17,32 +17,16 @@ updates:
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
open-pull-requests-limit: 10
|
# PNPM has an issue with dependabot. See:
|
||||||
# List dependencies required to be updated together, sharing the same version numbers.
|
# https://github.com/dependabot/dependabot-core/issues/7258
|
||||||
# Those who simply have the common owner (e.g. @fastify) don't need to be listed.
|
# https://github.com/pnpm/pnpm/issues/6530
|
||||||
|
# TODO: Restore this when the issue is solved
|
||||||
|
open-pull-requests-limit: 0
|
||||||
groups:
|
groups:
|
||||||
aws-sdk:
|
swc:
|
||||||
patterns:
|
patterns:
|
||||||
- "@aws-sdk/*"
|
- "@swc/*"
|
||||||
bull-board:
|
|
||||||
patterns:
|
|
||||||
- "@bull-board/*"
|
|
||||||
nestjs:
|
|
||||||
patterns:
|
|
||||||
- "@nestjs/*"
|
|
||||||
slacc:
|
|
||||||
patterns:
|
|
||||||
- "slacc-*"
|
|
||||||
storybook:
|
storybook:
|
||||||
patterns:
|
patterns:
|
||||||
- "storybook*"
|
- "storybook*"
|
||||||
- "@storybook/*"
|
- "@storybook/*"
|
||||||
swc-core:
|
|
||||||
patterns:
|
|
||||||
- "@swc/core*"
|
|
||||||
typescript-eslint:
|
|
||||||
patterns:
|
|
||||||
- "@typescript-eslint/*"
|
|
||||||
tensorflow:
|
|
||||||
patterns:
|
|
||||||
- "@tensorflow/*"
|
|
||||||
|
|
29
.github/labeler.yml
vendored
29
.github/labeler.yml
vendored
|
@ -1,34 +1,21 @@
|
||||||
'packages/backend':
|
'packages/backend':
|
||||||
- any:
|
- packages/backend/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['packages/backend/**/*']
|
|
||||||
|
|
||||||
'packages/backend:test':
|
'packages/backend:test':
|
||||||
- any:
|
- packages/backend/test/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['packages/backend/test/**/*', 'packages/backend/test-federation/**/*']
|
|
||||||
|
|
||||||
'packages/frontend':
|
'packages/frontend':
|
||||||
- any:
|
- packages/frontend/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['packages/frontend/**/*']
|
|
||||||
|
|
||||||
'packages/frontend:test':
|
'packages/frontend:test':
|
||||||
- any:
|
- cypress/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['cypress/**/*']
|
|
||||||
|
|
||||||
'packages/sw':
|
'packages/sw':
|
||||||
- any:
|
- packages/sw/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['packages/sw/**/*']
|
|
||||||
|
|
||||||
'packages/misskey-js':
|
'packages/misskey-js':
|
||||||
- any:
|
- packages/misskey-js/**/*
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: ['packages/misskey-js/**/*']
|
|
||||||
|
|
||||||
'packages/misskey-js:test':
|
'packages/misskey-js:test':
|
||||||
- any:
|
- packages/misskey-js/test/**/*
|
||||||
- changed-files:
|
- packages/misskey-js/test-d/**/*
|
||||||
- any-glob-to-any-file: ['packages/misskey-js/test/**/*', 'packages/misskey-js/test-d/**/*']
|
|
||||||
|
|
2
.github/misskey/test.yml
vendored
2
.github/misskey/test.yml
vendored
|
@ -1,7 +1,5 @@
|
||||||
url: 'http://misskey.local'
|
url: 'http://misskey.local'
|
||||||
|
|
||||||
setupPassword: example_password_please_change_this_or_you_will_get_hacked
|
|
||||||
|
|
||||||
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
|
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
|
||||||
port: 61812
|
port: 61812
|
||||||
|
|
||||||
|
|
13
.github/workflows/api-misskey-js.yml
vendored
13
.github/workflows/api-misskey-js.yml
vendored
|
@ -1,14 +1,7 @@
|
||||||
name: API report (misskey.js)
|
name: API report (misskey.js)
|
||||||
|
|
||||||
on:
|
on: [push, pull_request]
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/api-misskey-js.yml
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/api-misskey-js.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
report:
|
report:
|
||||||
|
|
||||||
|
@ -21,7 +14,7 @@ jobs:
|
||||||
- run: corepack enable
|
- run: corepack enable
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version-file: '.node-version'
|
node-version-file: '.node-version'
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|
43
.github/workflows/changelog-check.yml
vendored
43
.github/workflows/changelog-check.yml
vendored
|
@ -1,43 +0,0 @@
|
||||||
name: Check the description in CHANGELOG.md
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-changelog:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout head
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version-file: '.node-version'
|
|
||||||
|
|
||||||
- name: Checkout base
|
|
||||||
run: |
|
|
||||||
mkdir _base
|
|
||||||
cp -r .git _base/.git
|
|
||||||
cd _base
|
|
||||||
git fetch --depth 1 origin ${{ github.base_ref }}
|
|
||||||
git checkout origin/${{ github.base_ref }} CHANGELOG.md
|
|
||||||
|
|
||||||
- name: Copy to Checker directory for CHANGELOG-base.md
|
|
||||||
run: cp _base/CHANGELOG.md scripts/changelog-checker/CHANGELOG-base.md
|
|
||||||
- name: Copy to Checker directory for CHANGELOG-head.md
|
|
||||||
run: cp CHANGELOG.md scripts/changelog-checker/CHANGELOG-head.md
|
|
||||||
- name: diff
|
|
||||||
continue-on-error: true
|
|
||||||
run: diff -u CHANGELOG-base.md CHANGELOG-head.md
|
|
||||||
working-directory: scripts/changelog-checker
|
|
||||||
|
|
||||||
- name: Setup Checker
|
|
||||||
run: npm install
|
|
||||||
working-directory: scripts/changelog-checker
|
|
||||||
- name: Run Checker
|
|
||||||
run: npm run run
|
|
||||||
working-directory: scripts/changelog-checker
|
|
139
.github/workflows/check-misskey-js-autogen.yml
vendored
139
.github/workflows/check-misskey-js-autogen.yml
vendored
|
@ -1,139 +0,0 @@
|
||||||
name: Check Misskey JS autogen
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
- improve-misskey-js-autogen-check
|
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job
|
|
||||||
generate-misskey-js:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
|
|
||||||
steps:
|
|
||||||
- name: checkout
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
persist-credentials: false
|
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
|
||||||
|
|
||||||
- name: setup pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
|
|
||||||
- name: setup node
|
|
||||||
id: setup-node
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version-file: '.node-version'
|
|
||||||
cache: pnpm
|
|
||||||
|
|
||||||
- name: install dependencies
|
|
||||||
run: pnpm i --frozen-lockfile
|
|
||||||
|
|
||||||
# generate api.json
|
|
||||||
- name: Copy Config
|
|
||||||
run: cp .config/example.yml .config/default.yml
|
|
||||||
- name: Build
|
|
||||||
run: pnpm build
|
|
||||||
- name: Generate API JSON
|
|
||||||
run: pnpm --filter backend generate-api-json
|
|
||||||
|
|
||||||
# build misskey js
|
|
||||||
- name: Build misskey-js
|
|
||||||
run: |-
|
|
||||||
cp packages/backend/built/api.json packages/misskey-js/generator/api.json
|
|
||||||
pnpm run --filter misskey-js-type-generator generate
|
|
||||||
|
|
||||||
# packages/misskey-js/generator/built/autogen
|
|
||||||
- name: Upload Generated
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: generated-misskey-js
|
|
||||||
path: packages/misskey-js/generator/built/autogen
|
|
||||||
|
|
||||||
# pull_request_target safety: permissions: read-all, and no user codes are executed
|
|
||||||
get-actual-misskey-js:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
|
|
||||||
steps:
|
|
||||||
- name: checkout
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
persist-credentials: false
|
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
|
||||||
|
|
||||||
- name: Upload From Merged
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: actual-misskey-js
|
|
||||||
path: packages/misskey-js/src/autogen
|
|
||||||
|
|
||||||
# pull_request_target safety: nothing is cloned from repository
|
|
||||||
comment-misskey-js-autogen:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [generate-misskey-js, get-actual-misskey-js]
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- name: download generated-misskey-js
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: generated-misskey-js
|
|
||||||
path: misskey-js-generated
|
|
||||||
|
|
||||||
- name: download actual-misskey-js
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: actual-misskey-js
|
|
||||||
path: misskey-js-actual
|
|
||||||
|
|
||||||
- name: check misskey-js changes
|
|
||||||
id: check-changes
|
|
||||||
run: |
|
|
||||||
diff -r -u --label=generated --label=on-tree ./misskey-js-generated ./misskey-js-actual > misskey-js.diff || true
|
|
||||||
|
|
||||||
if [ -s misskey-js.diff ]; then
|
|
||||||
echo "changes=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "changes=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Print full diff
|
|
||||||
run: cat ./misskey-js.diff
|
|
||||||
|
|
||||||
- name: send message
|
|
||||||
if: steps.check-changes.outputs.changes == 'true'
|
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
|
||||||
with:
|
|
||||||
comment_tag: check-misskey-js-autogen
|
|
||||||
message: |-
|
|
||||||
Thank you for sending us a great Pull Request! 👍
|
|
||||||
Please regenerate misskey-js type definitions! 🙏
|
|
||||||
|
|
||||||
example:
|
|
||||||
```sh
|
|
||||||
pnpm run build-misskey-js-with-types
|
|
||||||
```
|
|
||||||
|
|
||||||
- name: send message
|
|
||||||
if: steps.check-changes.outputs.changes == 'false'
|
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
|
||||||
with:
|
|
||||||
comment_tag: check-misskey-js-autogen
|
|
||||||
mode: delete
|
|
||||||
message: "Thank you!"
|
|
||||||
create_if_not_exists: false
|
|
||||||
|
|
||||||
- name: Make failure if changes are detected
|
|
||||||
if: steps.check-changes.outputs.changes == 'true'
|
|
||||||
run: exit 1
|
|
29
.github/workflows/check-misskey-js-version.yml
vendored
29
.github/workflows/check-misskey-js-version.yml
vendored
|
@ -1,29 +0,0 @@
|
||||||
name: Check Misskey JS version
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ develop ]
|
|
||||||
paths:
|
|
||||||
- packages/misskey-js/package.json
|
|
||||||
- package.json
|
|
||||||
- .github/workflows/check-misskey-js-version.yml
|
|
||||||
pull_request:
|
|
||||||
branches: [ develop ]
|
|
||||||
paths:
|
|
||||||
- packages/misskey-js/package.json
|
|
||||||
- package.json
|
|
||||||
- .github/workflows/check-misskey-js-version.yml
|
|
||||||
jobs:
|
|
||||||
check-version:
|
|
||||||
# ルートの package.json と packages/misskey-js/package.json のバージョンが一致しているかを確認する
|
|
||||||
name: Check version
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
- name: Check version
|
|
||||||
run: |
|
|
||||||
if [ "$(jq -r '.version' package.json)" != "$(jq -r '.version' packages/misskey-js/package.json)" ]; then
|
|
||||||
echo "Version mismatch!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
79
.github/workflows/check-spdx-license-id.yml
vendored
79
.github/workflows/check-spdx-license-id.yml
vendored
|
@ -1,79 +0,0 @@
|
||||||
name: Check SPDX-License-Identifier
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-spdx-license-id:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
- name: Check
|
|
||||||
run: |
|
|
||||||
counter=0
|
|
||||||
|
|
||||||
search() {
|
|
||||||
local directory="$1"
|
|
||||||
find "$directory" -type f \
|
|
||||||
'(' \
|
|
||||||
-name "*.cjs" -and -not -name '*.config.cjs' -o \
|
|
||||||
-name "*.html" -o \
|
|
||||||
-name "*.js" -and -not -name '*.config.js' -o \
|
|
||||||
-name "*.mjs" -and -not -name '*.config.mjs' -o \
|
|
||||||
-name "*.scss" -o \
|
|
||||||
-name "*.ts" -and -not -name '*.config.ts' -o \
|
|
||||||
-name "*.vue" \
|
|
||||||
')' -and \
|
|
||||||
-not -name '*eslint*'
|
|
||||||
}
|
|
||||||
|
|
||||||
check() {
|
|
||||||
local file="$1"
|
|
||||||
if ! (
|
|
||||||
grep -q "SPDX-FileCopyrightText: syuilo and misskey-project" "$file" ||
|
|
||||||
grep -q "SPDX-License-Identifier: AGPL-3.0-only" "$file"
|
|
||||||
); then
|
|
||||||
echo "Missing: $file"
|
|
||||||
((counter++))
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
directories=(
|
|
||||||
"cypress/e2e"
|
|
||||||
"packages/backend/migration"
|
|
||||||
"packages/backend/src"
|
|
||||||
"packages/backend/test"
|
|
||||||
"packages/frontend-shared/@types"
|
|
||||||
"packages/frontend-shared/js"
|
|
||||||
"packages/frontend/.storybook"
|
|
||||||
"packages/frontend/@types"
|
|
||||||
"packages/frontend/lib"
|
|
||||||
"packages/frontend/public"
|
|
||||||
"packages/frontend/src"
|
|
||||||
"packages/frontend/test"
|
|
||||||
"packages/frontend-embed/@types"
|
|
||||||
"packages/frontend-embed/src"
|
|
||||||
"packages/misskey-bubble-game/src"
|
|
||||||
"packages/misskey-reversi/src"
|
|
||||||
"packages/sw/src"
|
|
||||||
"scripts"
|
|
||||||
)
|
|
||||||
|
|
||||||
for directory in "${directories[@]}"; do
|
|
||||||
for file in $(search $directory); do
|
|
||||||
check "$file"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $counter -gt 0 ]; then
|
|
||||||
echo "SPDX-License-Identifier is missing in $counter files."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "SPDX-License-Identifier is certainly described in all target files!"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
84
.github/workflows/deploy-test-environment.yml
vendored
84
.github/workflows/deploy-test-environment.yml
vendored
|
@ -1,84 +0,0 @@
|
||||||
name: deploy-test-environment
|
|
||||||
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: [created]
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
repository:
|
|
||||||
description: 'Repository to deploy (optional, use the repository where this workflow is stored by default)'
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
branch_or_hash:
|
|
||||||
description: 'Branch or Commit hash to deploy (optional, use the branch where this workflow is stored by default)'
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
wait_time:
|
|
||||||
description: 'Time to wait in seconds (optional, 1800 seconds by default)'
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-pr-ref:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/preview')
|
|
||||||
outputs:
|
|
||||||
is-allowed-user: ${{ steps.check-allowed-users.outputs.is-allowed-user }}
|
|
||||||
pr-ref: ${{ steps.get-ref.outputs.pr-ref }}
|
|
||||||
wait_time: ${{ steps.get-wait-time.outputs.wait_time }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
|
|
||||||
- name: Check allowed users
|
|
||||||
id: check-allowed-users
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
ORG_ID: ${{ github.repository_owner_id }}
|
|
||||||
COMMENT_AUTHOR: ${{ github.event.comment.user.login }}
|
|
||||||
run: |
|
|
||||||
MEMBERSHIP_STATUS=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
|
|
||||||
-H "Accept: application/vnd.github+json" \
|
|
||||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
|
||||||
"https://api.github.com/organizations/$ORG_ID/public_members/$COMMENT_AUTHOR" \
|
|
||||||
-o /dev/null -w '%{http_code}\n' -s)
|
|
||||||
if [ "$MEMBERSHIP_STATUS" -eq 204 ]; then
|
|
||||||
echo "is-allowed-user=true" > $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "is-allowed-user=false" > $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Get PR ref
|
|
||||||
id: get-ref
|
|
||||||
run: |
|
|
||||||
PR_REF="refs/pull/${{ github.event.issue.number }}/head"
|
|
||||||
echo "pr-ref=$PR_REF" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Extract wait time
|
|
||||||
id: get-wait-time
|
|
||||||
env:
|
|
||||||
COMMENT_BODY: ${{ github.event.comment.body }}
|
|
||||||
run: |
|
|
||||||
WAIT_TIME=$(echo "$COMMENT_BODY" | grep -oP '(?<=/preview\s)\d+' || echo "1800")
|
|
||||||
echo "wait_time=$WAIT_TIME" > $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
deploy-test-environment-pr-comment:
|
|
||||||
needs: get-pr-ref
|
|
||||||
if: needs.get-pr-ref.outputs.is-allowed-user == 'true'
|
|
||||||
uses: joinmisskey/misskey-tga/.github/workflows/deploy-test-environment.yml@main
|
|
||||||
with:
|
|
||||||
repository: ${{ github.repository }}
|
|
||||||
branch_or_hash: ${{ needs.get-pr-ref.outputs.pr-ref }}
|
|
||||||
wait_time: ${{ needs.get-pr-ref.outputs.wait_time }}
|
|
||||||
secrets:
|
|
||||||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
|
||||||
|
|
||||||
deploy-test-environment-wd:
|
|
||||||
if: github.event_name == 'workflow_dispatch'
|
|
||||||
uses: joinmisskey/misskey-tga/.github/workflows/deploy-test-environment.yml@main
|
|
||||||
with:
|
|
||||||
repository: ${{ inputs.repository || github.repository }}
|
|
||||||
branch_or_hash: ${{ inputs.branch_or_hash || github.ref_name }}
|
|
||||||
wait_time: ${{ inputs.wait_time || '1800' }}
|
|
||||||
secrets:
|
|
||||||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
|
77
.github/workflows/docker-develop.yml
vendored
77
.github/workflows/docker-develop.yml
vendored
|
@ -6,83 +6,38 @@ on:
|
||||||
- develop
|
- develop
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY_IMAGE: misskey/misskey
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# see https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
|
push_to_registry:
|
||||||
build:
|
name: Push Docker image to Docker Hub
|
||||||
name: Build
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
if: github.repository == 'misskey-dev/misskey'
|
if: github.repository == 'misskey-dev/misskey'
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare
|
|
||||||
run: |
|
|
||||||
platform=${{ matrix.platform }}
|
|
||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
|
||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.1
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v3.0.0
|
||||||
|
with:
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: misskey/misskey
|
||||||
- name: Log in to Docker Hub
|
- name: Log in to Docker Hub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
- name: Build and push by digest
|
- name: Build and Push to Docker Hub
|
||||||
id: build
|
uses: docker/build-push-action@v5
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
with:
|
||||||
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: true
|
||||||
platforms: ${{ matrix.platform }}
|
platforms: ${{ steps.buildx.outputs.platforms }}
|
||||||
provenance: false
|
provenance: false
|
||||||
|
tags: misskey/misskey:develop
|
||||||
labels: develop
|
labels: develop
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
||||||
- name: Export digest
|
|
||||||
run: |
|
|
||||||
mkdir -p /tmp/digests
|
|
||||||
digest="${{ steps.build.outputs.digest }}"
|
|
||||||
touch "/tmp/digests/${digest#sha256:}"
|
|
||||||
- name: Upload digest
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: digests-${{ env.PLATFORM_PAIR }}
|
|
||||||
path: /tmp/digests/*
|
|
||||||
if-no-files-found: error
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
merge:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs:
|
|
||||||
- build
|
|
||||||
steps:
|
|
||||||
- name: Download digests
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
path: /tmp/digests
|
|
||||||
pattern: digests-*
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
||||||
- name: Create manifest list and push
|
|
||||||
working-directory: /tmp/digests
|
|
||||||
run: |
|
|
||||||
docker buildx imagetools create --tag ${{ env.REGISTRY_IMAGE }}:develop \
|
|
||||||
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
|
|
||||||
- name: Inspect image
|
|
||||||
run: |
|
|
||||||
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:develop
|
|
||||||
|
|
102
.github/workflows/docker.yml
vendored
102
.github/workflows/docker.yml
vendored
|
@ -5,101 +5,45 @@ on:
|
||||||
types: [published]
|
types: [published]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
jobs:
|
||||||
REGISTRY_IMAGE: misskey/misskey
|
push_to_registry:
|
||||||
TAGS: |
|
name: Push Docker image to Docker Hub
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out the repo
|
||||||
|
uses: actions/checkout@v4.1.1
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v3.0.0
|
||||||
|
with:
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: misskey/misskey
|
||||||
|
tags: |
|
||||||
type=edge
|
type=edge
|
||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
type=ref,event=branch
|
type=ref,event=branch
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
type=semver,pattern={{major}}
|
type=semver,pattern={{major}}
|
||||||
|
|
||||||
jobs:
|
|
||||||
# see https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
steps:
|
|
||||||
- name: Prepare
|
|
||||||
run: |
|
|
||||||
platform=${{ matrix.platform }}
|
|
||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
|
||||||
- name: Check out the repo
|
|
||||||
uses: actions/checkout@v4.1.1
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
- name: Docker meta
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v5
|
|
||||||
with:
|
|
||||||
images: ${{ env.REGISTRY_IMAGE }}
|
|
||||||
tags: ${{ env.TAGS }}
|
|
||||||
- name: Log in to Docker Hub
|
- name: Log in to Docker Hub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
- name: Build and Push to Docker Hub
|
- name: Build and Push to Docker Hub
|
||||||
id: build
|
uses: docker/build-push-action@v5
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
with:
|
||||||
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: true
|
||||||
platforms: ${{ matrix.platform }}
|
platforms: ${{ steps.buildx.outputs.platforms }}
|
||||||
provenance: false
|
provenance: false
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
||||||
- name: Export digest
|
|
||||||
run: |
|
|
||||||
mkdir -p /tmp/digests
|
|
||||||
digest="${{ steps.build.outputs.digest }}"
|
|
||||||
touch "/tmp/digests/${digest#sha256:}"
|
|
||||||
- name: Upload digest
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: digests-${{ env.PLATFORM_PAIR }}
|
|
||||||
path: /tmp/digests/*
|
|
||||||
if-no-files-found: error
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
merge:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs:
|
|
||||||
- build
|
|
||||||
steps:
|
|
||||||
- name: Download digests
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
path: /tmp/digests
|
|
||||||
pattern: digests-*
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
- name: Docker meta
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v5
|
|
||||||
with:
|
|
||||||
images: ${{ env.REGISTRY_IMAGE }}
|
|
||||||
tags: ${{ env.TAGS }}
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
||||||
- name: Create manifest list and push
|
|
||||||
working-directory: /tmp/digests
|
|
||||||
run: |
|
|
||||||
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
|
||||||
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
|
|
||||||
- name: Inspect image
|
|
||||||
run: |
|
|
||||||
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
|
|
||||||
|
|
8
.github/workflows/dockle.yml
vendored
8
.github/workflows/dockle.yml
vendored
|
@ -13,16 +13,14 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
DOCKER_CONTENT_TRUST: 1
|
DOCKER_CONTENT_TRUST: 1
|
||||||
DOCKLE_VERSION: 0.4.14
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
- name: Download and install dockle v${{ env.DOCKLE_VERSION }}
|
- run: |
|
||||||
run: |
|
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v0.4.10/dockle_0.4.10_Linux-64bit.deb"
|
||||||
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v${DOCKLE_VERSION}/dockle_${DOCKLE_VERSION}_Linux-64bit.deb"
|
|
||||||
sudo dpkg -i dockle.deb
|
sudo dpkg -i dockle.deb
|
||||||
- run: |
|
- run: |
|
||||||
cp .config/docker_example.env .config/docker.env
|
cp .config/docker_example.env .config/docker.env
|
||||||
cp ./compose_example.yml ./compose.yml
|
cp ./docker-compose.yml.example ./docker-compose.yml
|
||||||
- run: |
|
- run: |
|
||||||
docker compose up -d web
|
docker compose up -d web
|
||||||
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
|
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
|
||||||
|
|
163
.github/workflows/get-api-diff.yml
vendored
163
.github/workflows/get-api-diff.yml
vendored
|
@ -6,34 +6,45 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- develop
|
- develop
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- .github/workflows/get-api-diff.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
get-from-misskey:
|
get-base:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
api-json-name: [api-base.json, api-head.json]
|
|
||||||
include:
|
services:
|
||||||
- api-json-name: api-base.json
|
db:
|
||||||
ref: ${{ github.base_ref }}
|
image: postgres:13
|
||||||
- api-json-name: api-head.json
|
ports:
|
||||||
ref: refs/pull/${{ github.event.number }}/merge
|
- 5432:5432
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: misskey
|
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
POSTGRES_USER: example-misskey-user
|
||||||
|
POSTGRESS_PASS: example-misskey-pass
|
||||||
|
redis:
|
||||||
|
image: redis:7
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.ref }}
|
repository: ${{ github.event.pull_request.base.repo.full_name }}
|
||||||
|
ref: ${{ github.base_ref }}
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
run_install: false
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -45,15 +56,121 @@ jobs:
|
||||||
run: cp .config/example.yml .config/default.yml
|
run: cp .config/example.yml .config/default.yml
|
||||||
- name: Build
|
- name: Build
|
||||||
run: pnpm build
|
run: pnpm build
|
||||||
- name: Generate API JSON
|
- name : Migrate
|
||||||
run: pnpm --filter backend generate-api-json
|
run: pnpm migrate
|
||||||
- name: Copy API.json
|
- name: Launch misskey
|
||||||
run: cp packages/backend/built/api.json ${{ matrix.api-json-name }}
|
run: |
|
||||||
|
screen -S misskey -dm pnpm run dev
|
||||||
|
sleep 30s
|
||||||
|
- name: Wait for Misskey to be ready
|
||||||
|
run: |
|
||||||
|
MAX_RETRIES=12
|
||||||
|
RETRY_DELAY=5
|
||||||
|
count=0
|
||||||
|
until $(curl --output /dev/null --silent --head --fail http://localhost:3000) || [[ $count -eq $MAX_RETRIES ]]; do
|
||||||
|
printf '.'
|
||||||
|
sleep $RETRY_DELAY
|
||||||
|
count=$((count + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $count -eq $MAX_RETRIES ]]; then
|
||||||
|
echo "Failed to connect to Misskey after $MAX_RETRIES attempts."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- id: fetch
|
||||||
|
name: Get api.json from Misskey
|
||||||
|
run: |
|
||||||
|
RESULT=$(curl --retry 5 --retry-delay 5 --retry-max-time 60 http://localhost:3000/api.json)
|
||||||
|
echo $RESULT > api-base.json
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: api-artifact-${{ matrix.api-json-name }}
|
name: api-artifact
|
||||||
path: ${{ matrix.api-json-name }}
|
path: api-base.json
|
||||||
|
- name: Kill Misskey Job
|
||||||
|
run: screen -S misskey -X quit
|
||||||
|
|
||||||
|
get-head:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [20.5.1]
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:13
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: misskey
|
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
POSTGRES_USER: example-misskey-user
|
||||||
|
POSTGRESS_PASS: example-misskey-pass
|
||||||
|
redis:
|
||||||
|
image: redis:7
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4.1.1
|
||||||
|
with:
|
||||||
|
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
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@v4.0.0
|
||||||
|
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 .config/example.yml .config/default.yml
|
||||||
|
- name: Build
|
||||||
|
run: pnpm build
|
||||||
|
- name : Migrate
|
||||||
|
run: pnpm migrate
|
||||||
|
- name: Launch misskey
|
||||||
|
run: |
|
||||||
|
screen -S misskey -dm pnpm run dev
|
||||||
|
sleep 30s
|
||||||
|
- name: Wait for Misskey to be ready
|
||||||
|
run: |
|
||||||
|
MAX_RETRIES=12
|
||||||
|
RETRY_DELAY=5
|
||||||
|
count=0
|
||||||
|
until $(curl --output /dev/null --silent --head --fail http://localhost:3000) || [[ $count -eq $MAX_RETRIES ]]; do
|
||||||
|
printf '.'
|
||||||
|
sleep $RETRY_DELAY
|
||||||
|
count=$((count + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $count -eq $MAX_RETRIES ]]; then
|
||||||
|
echo "Failed to connect to Misskey after $MAX_RETRIES attempts."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- id: fetch
|
||||||
|
name: Get api.json from Misskey
|
||||||
|
run: |
|
||||||
|
RESULT=$(curl --retry 5 --retry-delay 5 --retry-max-time 60 http://localhost:3000/api.json)
|
||||||
|
echo $RESULT > api-head.json
|
||||||
|
- name: Upload Artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: api-artifact
|
||||||
|
path: api-head.json
|
||||||
|
- name: Kill Misskey Job
|
||||||
|
run: screen -S misskey -X quit
|
||||||
|
|
||||||
save-pr-number:
|
save-pr-number:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -63,7 +180,7 @@ jobs:
|
||||||
PR_NUMBER: ${{ github.event.number }}
|
PR_NUMBER: ${{ github.event.number }}
|
||||||
run: |
|
run: |
|
||||||
echo "$PR_NUMBER" > ./pr_number
|
echo "$PR_NUMBER" > ./pr_number
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: api-artifact-pr-number
|
name: api-artifact
|
||||||
path: pr_number
|
path: pr_number
|
||||||
|
|
2
.github/workflows/labeler.yml
vendored
2
.github/workflows/labeler.yml
vendored
|
@ -11,6 +11,6 @@ jobs:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/labeler@v5
|
- uses: actions/labeler@v4
|
||||||
with:
|
with:
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
64
.github/workflows/lint.yml
vendored
64
.github/workflows/lint.yml
vendored
|
@ -5,29 +5,8 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- develop
|
- develop
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- packages/frontend/**
|
|
||||||
- packages/frontend-shared/**
|
|
||||||
- packages/frontend-embed/**
|
|
||||||
- packages/sw/**
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- packages/misskey-bubble-game/**
|
|
||||||
- packages/misskey-reversi/**
|
|
||||||
- packages/shared/eslint.config.js
|
|
||||||
- .github/workflows/lint.yml
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- packages/frontend/**
|
|
||||||
- packages/frontend-shared/**
|
|
||||||
- packages/frontend-embed/**
|
|
||||||
- packages/sw/**
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- packages/misskey-bubble-game/**
|
|
||||||
- packages/misskey-reversi/**
|
|
||||||
- packages/shared/eslint.config.js
|
|
||||||
- .github/workflows/lint.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
pnpm_install:
|
pnpm_install:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -36,8 +15,11 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
- uses: actions/setup-node@v4.0.4
|
with:
|
||||||
|
version: 8
|
||||||
|
run_install: false
|
||||||
|
- uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version-file: '.node-version'
|
node-version-file: '.node-version'
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -53,34 +35,24 @@ jobs:
|
||||||
workspace:
|
workspace:
|
||||||
- backend
|
- backend
|
||||||
- frontend
|
- frontend
|
||||||
- frontend-shared
|
|
||||||
- frontend-embed
|
|
||||||
- sw
|
- sw
|
||||||
- misskey-js
|
- misskey-js
|
||||||
- misskey-bubble-game
|
|
||||||
- misskey-reversi
|
|
||||||
env:
|
|
||||||
eslint-cache-version: v1
|
|
||||||
eslint-cache-path: ${{ github.workspace }}/node_modules/.cache/eslint-${{ matrix.workspace }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
- uses: actions/setup-node@v4.0.4
|
with:
|
||||||
|
version: 7
|
||||||
|
run_install: false
|
||||||
|
- uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version-file: '.node-version'
|
node-version-file: '.node-version'
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
- run: corepack enable
|
- run: corepack enable
|
||||||
- run: pnpm i --frozen-lockfile
|
- run: pnpm i --frozen-lockfile
|
||||||
- name: Restore eslint cache
|
- run: pnpm --filter ${{ matrix.workspace }} run eslint
|
||||||
uses: actions/cache@v4.1.0
|
|
||||||
with:
|
|
||||||
path: ${{ env.eslint-cache-path }}
|
|
||||||
key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}
|
|
||||||
restore-keys: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-
|
|
||||||
- run: pnpm --filter ${{ matrix.workspace }} run eslint --cache --cache-location ${{ env.eslint-cache-path }} --cache-strategy content
|
|
||||||
|
|
||||||
typecheck:
|
typecheck:
|
||||||
needs: [pnpm_install]
|
needs: [pnpm_install]
|
||||||
|
@ -90,22 +62,20 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
workspace:
|
workspace:
|
||||||
- backend
|
- backend
|
||||||
- sw
|
|
||||||
- misskey-js
|
- misskey-js
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
- uses: actions/setup-node@v4.0.4
|
with:
|
||||||
|
version: 7
|
||||||
|
run_install: false
|
||||||
|
- uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version-file: '.node-version'
|
node-version-file: '.node-version'
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
- run: corepack enable
|
- run: corepack enable
|
||||||
- run: pnpm i --frozen-lockfile
|
- run: pnpm i --frozen-lockfile
|
||||||
- run: pnpm --filter misskey-js run build
|
|
||||||
if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'sw' }}
|
|
||||||
- run: pnpm --filter misskey-reversi run build
|
|
||||||
if: ${{ matrix.workspace == 'backend' }}
|
|
||||||
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
|
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
|
||||||
|
|
28
.github/workflows/locale.yml
vendored
28
.github/workflows/locale.yml
vendored
|
@ -1,28 +0,0 @@
|
||||||
name: Lint
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- locales/**
|
|
||||||
- .github/workflows/locale.yml
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- locales/**
|
|
||||||
- .github/workflows/locale.yml
|
|
||||||
jobs:
|
|
||||||
locale_verify:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
continue-on-error: true
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4.1.1
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
submodules: true
|
|
||||||
- uses: pnpm/action-setup@v4
|
|
||||||
- uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version-file: '.node-version'
|
|
||||||
cache: 'pnpm'
|
|
||||||
- run: corepack enable
|
|
||||||
- run: pnpm i --frozen-lockfile
|
|
||||||
- run: cd locales && node verify.js
|
|
2
.github/workflows/ok-to-test.yml
vendored
2
.github/workflows/ok-to-test.yml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
||||||
private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }}
|
private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Slash Command Dispatch
|
- name: Slash Command Dispatch
|
||||||
uses: peter-evans/slash-command-dispatch@v4
|
uses: peter-evans/slash-command-dispatch@v3
|
||||||
env:
|
env:
|
||||||
TOKEN: ${{ steps.generate_token.outputs.token }}
|
TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
with:
|
with:
|
||||||
|
|
42
.github/workflows/on-release-created.yml
vendored
42
.github/workflows/on-release-created.yml
vendored
|
@ -1,42 +0,0 @@
|
||||||
name: On Release Created (Publish misskey-js)
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [created]
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish-misskey-js:
|
|
||||||
name: Publish misskey-js
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [20.16.0]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4.1.1
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: 'pnpm'
|
|
||||||
registry-url: 'https://registry.npmjs.org'
|
|
||||||
- name: Publish package
|
|
||||||
run: |
|
|
||||||
corepack enable
|
|
||||||
pnpm i --frozen-lockfile
|
|
||||||
pnpm build
|
|
||||||
pnpm --filter misskey-js publish --access public --no-git-checks --provenance
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
|
||||||
NPM_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
|
6
.github/workflows/pr-preview-deploy.yml
vendored
6
.github/workflows/pr-preview-deploy.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
||||||
github.event.client_payload.slash_command.sha != '' &&
|
github.event.client_payload.slash_command.sha != '' &&
|
||||||
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
|
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v7.0.1
|
- uses: actions/github-script@v6.3.3
|
||||||
id: check-id
|
id: check-id
|
||||||
env:
|
env:
|
||||||
number: ${{ github.event.client_payload.pull_request.number }}
|
number: ${{ github.event.client_payload.pull_request.number }}
|
||||||
|
@ -37,7 +37,7 @@ jobs:
|
||||||
|
|
||||||
return check[0].id;
|
return check[0].id;
|
||||||
|
|
||||||
- uses: actions/github-script@v7.0.1
|
- uses: actions/github-script@v6.3.3
|
||||||
env:
|
env:
|
||||||
check_id: ${{ steps.check-id.outputs.result }}
|
check_id: ${{ steps.check-id.outputs.result }}
|
||||||
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
|
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
|
||||||
|
@ -72,7 +72,7 @@ jobs:
|
||||||
timeout: 15m
|
timeout: 15m
|
||||||
|
|
||||||
# Update check run called "integration-fork"
|
# Update check run called "integration-fork"
|
||||||
- uses: actions/github-script@v7.0.1
|
- uses: actions/github-script@v6.3.3
|
||||||
id: update-check-run
|
id: update-check-run
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
env:
|
env:
|
||||||
|
|
2
.github/workflows/pr-preview-destroy.yml
vendored
2
.github/workflows/pr-preview-destroy.yml
vendored
|
@ -10,7 +10,7 @@ jobs:
|
||||||
destroy-preview-environment:
|
destroy-preview-environment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v7.0.1
|
- uses: actions/github-script@v6.3.3
|
||||||
id: check-conclusion
|
id: check-conclusion
|
||||||
env:
|
env:
|
||||||
number: ${{ github.event.number }}
|
number: ${{ github.event.number }}
|
||||||
|
|
48
.github/workflows/release-edit-with-push.yml
vendored
48
.github/workflows/release-edit-with-push.yml
vendored
|
@ -1,48 +0,0 @@
|
||||||
name: "Release Manager: sync changelog with PR"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
paths:
|
|
||||||
- 'CHANGELOG.md'
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
edit:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
# headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
|
|
||||||
- name: Get PR
|
|
||||||
run: |
|
|
||||||
echo "pr_number=$(gh pr list --limit 1 --search "head:$GITHUB_REF_NAME base:$STABLE_BRANCH is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
|
|
||||||
id: get_pr
|
|
||||||
env:
|
|
||||||
STABLE_BRANCH: ${{ vars.STABLE_BRANCH }}
|
|
||||||
- name: Get target version
|
|
||||||
if: steps.get_pr.outputs.pr_number != ''
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/actions/get-target-version@v2
|
|
||||||
id: v
|
|
||||||
# CHANGELOG.mdの内容を取得
|
|
||||||
- name: Get changelog
|
|
||||||
if: steps.get_pr.outputs.pr_number != ''
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/actions/get-changelog@v2
|
|
||||||
with:
|
|
||||||
version: ${{ steps.v.outputs.target_version }}
|
|
||||||
id: changelog
|
|
||||||
# PRのnotesを更新
|
|
||||||
- name: Update PR
|
|
||||||
if: steps.get_pr.outputs.pr_number != ''
|
|
||||||
run: |
|
|
||||||
gh pr edit "$PR_NUMBER" --body "$CHANGELOG"
|
|
||||||
env:
|
|
||||||
PR_NUMBER: ${{ steps.get_pr.outputs.pr_number }}
|
|
||||||
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
|
|
135
.github/workflows/release-with-dispatch.yml
vendored
135
.github/workflows/release-with-dispatch.yml
vendored
|
@ -1,135 +0,0 @@
|
||||||
name: "Release Manager [Dispatch]"
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
## Specify the type of the next release.
|
|
||||||
#version_increment_type:
|
|
||||||
# type: choice
|
|
||||||
# description: 'VERSION INCREMENT TYPE'
|
|
||||||
# default: 'patch'
|
|
||||||
# required: false
|
|
||||||
# options:
|
|
||||||
# - 'major'
|
|
||||||
# - 'minor'
|
|
||||||
# - 'patch'
|
|
||||||
merge:
|
|
||||||
type: boolean
|
|
||||||
description: 'MERGE RELEASE BRANCH TO MAIN'
|
|
||||||
default: false
|
|
||||||
start-rc:
|
|
||||||
type: boolean
|
|
||||||
description: 'Start Release Candidate'
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
get-pr:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
pr_number: ${{ steps.get_pr.outputs.pr_number }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
# headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
|
|
||||||
- name: Get PRs
|
|
||||||
run: |
|
|
||||||
echo "pr_number=$(gh pr list --limit 1 --search "head:$GITHUB_REF_NAME base:$STABLE_BRANCH is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
|
|
||||||
id: get_pr
|
|
||||||
env:
|
|
||||||
STABLE_BRANCH: ${{ vars.STABLE_BRANCH }}
|
|
||||||
|
|
||||||
merge:
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/workflows/merge.yml@v2
|
|
||||||
needs: get-pr
|
|
||||||
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge == true }}
|
|
||||||
with:
|
|
||||||
pr_number: ${{ needs.get-pr.outputs.pr_number }}
|
|
||||||
user: 'github-actions[bot]'
|
|
||||||
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
|
|
||||||
# Text to prepend to the changelog
|
|
||||||
# The first line must be `## Unreleased`
|
|
||||||
changes_template: |
|
|
||||||
## Unreleased
|
|
||||||
|
|
||||||
### General
|
|
||||||
-
|
|
||||||
|
|
||||||
### Client
|
|
||||||
-
|
|
||||||
|
|
||||||
### Server
|
|
||||||
-
|
|
||||||
|
|
||||||
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
|
|
||||||
indent: ${{ vars.INDENT }}
|
|
||||||
secrets:
|
|
||||||
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
|
|
||||||
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
||||||
|
|
||||||
create-prerelease:
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v2
|
|
||||||
needs: get-pr
|
|
||||||
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge != true }}
|
|
||||||
with:
|
|
||||||
pr_number: ${{ needs.get-pr.outputs.pr_number }}
|
|
||||||
user: 'github-actions[bot]'
|
|
||||||
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
|
|
||||||
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
|
|
||||||
indent: ${{ vars.INDENT }}
|
|
||||||
draft_prerelease_channel: alpha
|
|
||||||
ready_start_prerelease_channel: beta
|
|
||||||
prerelease_channel: ${{ inputs.start-rc && 'rc' || '' }}
|
|
||||||
secrets:
|
|
||||||
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
|
|
||||||
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
||||||
|
|
||||||
create-target:
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/workflows/create-target.yml@v2
|
|
||||||
needs: get-pr
|
|
||||||
if: ${{ needs.get-pr.outputs.pr_number == '' }}
|
|
||||||
with:
|
|
||||||
user: 'github-actions[bot]'
|
|
||||||
# The script for version increment.
|
|
||||||
# process.env.CURRENT_VERSION: The current version.
|
|
||||||
#
|
|
||||||
# Misskey calender versioning (yyyy.MM.patch) example
|
|
||||||
version_increment_script: |
|
|
||||||
const now = new Date();
|
|
||||||
const year = now.toLocaleDateString('en-US', { year: 'numeric', timeZone: 'Asia/Tokyo' });
|
|
||||||
const month = now.toLocaleDateString('en-US', { month: 'numeric', timeZone: 'Asia/Tokyo' });
|
|
||||||
const [major, minor, _patch] = process.env.CURRENT_VERSION.split('.');
|
|
||||||
const patch = Number(_patch.split('-')[0]);
|
|
||||||
if (Number.isNaN(patch)) {
|
|
||||||
console.error('Invalid patch version', year, month, process.env.CURRENT_VERSION, major, minor, _patch);
|
|
||||||
throw new Error('Invalid patch version');
|
|
||||||
}
|
|
||||||
if (year !== major || month !== minor) {
|
|
||||||
return `${year}.${month}.0`;
|
|
||||||
} else {
|
|
||||||
return `${major}.${minor}.${patch + 1}`;
|
|
||||||
}
|
|
||||||
##Semver example
|
|
||||||
#version_increment_script: |
|
|
||||||
# const [major, minor, patch] = process.env.CURRENT_VERSION.split('.');
|
|
||||||
# if ("${{ inputs.version_increment_type }}" === "major") {
|
|
||||||
# return `${Number(major) + 1}.0.0`;
|
|
||||||
# } else if ("${{ inputs.version_increment_type }}" === "minor") {
|
|
||||||
# return `${major}.${Number(minor) + 1}.0`;
|
|
||||||
# } else {
|
|
||||||
# return `${major}.${minor}.${Number(patch) + 1}`;
|
|
||||||
# }
|
|
||||||
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
|
|
||||||
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
|
|
||||||
indent: ${{ vars.INDENT }}
|
|
||||||
stable_branch: ${{ vars.STABLE_BRANCH }}
|
|
||||||
draft_prerelease_channel: alpha
|
|
||||||
secrets:
|
|
||||||
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
|
|
||||||
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
46
.github/workflows/release-with-ready.yml
vendored
46
.github/workflows/release-with-ready.yml
vendored
|
@ -1,46 +0,0 @@
|
||||||
name: "Release Manager: release RC when ready for review"
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [ready_for_review]
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
head: ${{ steps.get_pr.outputs.head }}
|
|
||||||
base: ${{ steps.get_pr.outputs.base }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
# PR情報を取得
|
|
||||||
- name: Get PR
|
|
||||||
run: |
|
|
||||||
pr_json=$(gh pr view "$PR_NUMBER" --json isDraft,headRefName,baseRefName)
|
|
||||||
echo "head=$(echo $pr_json | jq -r '.headRefName')" >> $GITHUB_OUTPUT
|
|
||||||
echo "base=$(echo $pr_json | jq -r '.baseRefName')" >> $GITHUB_OUTPUT
|
|
||||||
id: get_pr
|
|
||||||
env:
|
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
||||||
release:
|
|
||||||
uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v2
|
|
||||||
needs: check
|
|
||||||
if: needs.check.outputs.head == github.event.repository.default_branch && needs.check.outputs.base == vars.STABLE_BRANCH
|
|
||||||
with:
|
|
||||||
pr_number: ${{ github.event.pull_request.number }}
|
|
||||||
user: 'github-actions[bot]'
|
|
||||||
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
|
|
||||||
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
|
|
||||||
indent: ${{ vars.INDENT }}
|
|
||||||
draft_prerelease_channel: alpha
|
|
||||||
ready_start_prerelease_channel: beta
|
|
||||||
secrets:
|
|
||||||
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
|
|
||||||
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
59
.github/workflows/report-api-diff.yml
vendored
59
.github/workflows/report-api-diff.yml
vendored
|
@ -16,31 +16,27 @@ jobs:
|
||||||
# api-artifact
|
# api-artifact
|
||||||
steps:
|
steps:
|
||||||
- name: Download artifact
|
- name: Download artifact
|
||||||
uses: actions/github-script@v7.0.1
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const fs = require('fs');
|
|
||||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
run_id: context.payload.workflow_run.id,
|
run_id: context.payload.workflow_run.id,
|
||||||
});
|
});
|
||||||
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
|
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
|
||||||
return artifact.name.startsWith("api-artifact-") || artifact.name == "api-artifact"
|
return artifact.name == "api-artifact"
|
||||||
});
|
})[0];
|
||||||
await Promise.all(matchArtifacts.map(async (artifact) => {
|
|
||||||
let download = await github.rest.actions.downloadArtifact({
|
let download = await github.rest.actions.downloadArtifact({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
artifact_id: artifact.id,
|
artifact_id: matchArtifact.id,
|
||||||
archive_format: 'zip',
|
archive_format: 'zip',
|
||||||
});
|
});
|
||||||
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
|
let fs = require('fs');
|
||||||
}));
|
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/api-artifact.zip`, Buffer.from(download.data));
|
||||||
- name: Extract all artifacts
|
- name: Extract artifact
|
||||||
run: |
|
run: unzip api-artifact.zip -d artifacts
|
||||||
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d artifacts ';'
|
|
||||||
ls -la
|
|
||||||
- name: Load PR Number
|
- name: Load PR Number
|
||||||
id: load-pr-num
|
id: load-pr-num
|
||||||
run: echo "pr-number=$(cat artifacts/pr_number)" >> "$GITHUB_OUTPUT"
|
run: echo "pr-number=$(cat artifacts/pr_number)" >> "$GITHUB_OUTPUT"
|
||||||
|
@ -60,7 +56,7 @@ jobs:
|
||||||
- name: Echo full diff
|
- name: Echo full diff
|
||||||
run: cat ./api-full.json.diff
|
run: cat ./api-full.json.diff
|
||||||
- name: Upload full diff to Artifact
|
- name: Upload full diff to Artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: api-artifact
|
name: api-artifact
|
||||||
path: |
|
path: |
|
||||||
|
@ -70,35 +66,20 @@ jobs:
|
||||||
- id: out-diff
|
- id: out-diff
|
||||||
name: Build diff Comment
|
name: Build diff Comment
|
||||||
run: |
|
run: |
|
||||||
HEADER="このPRによるapi.jsonの差分"
|
cat <<- EOF > ./output.md
|
||||||
FOOTER="[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})"
|
このPRによるapi.jsonの差分
|
||||||
DIFF_BYTES="$(stat ./api.json.diff -c '%s' | tr -d '\n')"
|
<details>
|
||||||
|
<summary>差分はこちら</summary>
|
||||||
|
|
||||||
echo "$HEADER" > ./output.md
|
\`\`\`diff
|
||||||
|
$(cat ./api.json.diff)
|
||||||
|
\`\`\`
|
||||||
|
</details>
|
||||||
|
|
||||||
if (( "$DIFF_BYTES" <= 1 )); then
|
[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})
|
||||||
echo '差分はありません。' >> ./output.md
|
EOF
|
||||||
else
|
|
||||||
echo '<details>' >> ./output.md
|
|
||||||
echo '<summary>差分はこちら</summary>' >> ./output.md
|
|
||||||
echo >> ./output.md
|
|
||||||
echo '```diff' >> ./output.md
|
|
||||||
cat ./api.json.diff >> ./output.md
|
|
||||||
echo '```' >> ./output.md
|
|
||||||
echo '</details>' >> .output.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$FOOTER" >> ./output.md
|
|
||||||
- uses: thollander/actions-comment-pull-request@v2
|
- uses: thollander/actions-comment-pull-request@v2
|
||||||
with:
|
with:
|
||||||
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
|
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
|
||||||
comment_tag: show_diff
|
comment_tag: show_diff
|
||||||
filePath: ./output.md
|
filePath: ./output.md
|
||||||
- name: Tell error to PR
|
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
|
||||||
if: failure() && steps.load-pr-num.outputs.pr-number
|
|
||||||
with:
|
|
||||||
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
|
|
||||||
comment_tag: show_diff_error
|
|
||||||
message: |
|
|
||||||
api.jsonの差分作成中にエラーが発生しました。詳細は[Workflowのログ](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})を確認してください。
|
|
||||||
|
|
116
.github/workflows/storybook.yml
vendored
116
.github/workflows/storybook.yml
vendored
|
@ -1,116 +0,0 @@
|
||||||
name: Storybook
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
- dev/storybook8 # for testing
|
|
||||||
pull_request_target:
|
|
||||||
branches-ignore:
|
|
||||||
# Since pull requests targets master mostly is the "develop" branch.
|
|
||||||
# Storybook CI is checked on the "push" event of "develop" branch so it would cause a duplicate build.
|
|
||||||
# This is a waste of chromatic build quota, so we don't run storybook CI on pull requests targets master.
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
env:
|
|
||||||
NODE_OPTIONS: "--max_old_space_size=7168"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4.1.1
|
|
||||||
if: github.event_name != 'pull_request_target'
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
submodules: true
|
|
||||||
- uses: actions/checkout@v4.1.1
|
|
||||||
if: github.event_name == 'pull_request_target'
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
submodules: true
|
|
||||||
ref: "refs/pull/${{ github.event.number }}/merge"
|
|
||||||
- name: Checkout actual HEAD
|
|
||||||
if: github.event_name == 'pull_request_target'
|
|
||||||
id: rev
|
|
||||||
run: |
|
|
||||||
echo "base=$(git rev-list --parents -n1 HEAD | cut -d" " -f2)" >> $GITHUB_OUTPUT
|
|
||||||
git checkout $(git rev-list --parents -n1 HEAD | cut -d" " -f3)
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
- name: Use Node.js 20.x
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version-file: '.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: Build misskey-js
|
|
||||||
run: pnpm --filter misskey-js build
|
|
||||||
- name: Build storybook
|
|
||||||
run: pnpm --filter frontend build-storybook
|
|
||||||
- name: Publish to Chromatic
|
|
||||||
if: github.event_name != 'pull_request_target' && github.ref == 'refs/heads/master'
|
|
||||||
run: pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static
|
|
||||||
env:
|
|
||||||
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
||||||
- name: Publish to Chromatic
|
|
||||||
if: github.event_name != 'pull_request_target' && github.ref != 'refs/heads/master'
|
|
||||||
id: chromatic_push
|
|
||||||
run: |
|
|
||||||
DIFF="${{ github.event.before }} HEAD"
|
|
||||||
if [ "$DIFF" = "0000000000000000000000000000000000000000 HEAD" ]; then
|
|
||||||
DIFF="HEAD"
|
|
||||||
fi
|
|
||||||
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff-tree --no-commit-id --name-only -r $(echo "$DIFF") | xargs))"
|
|
||||||
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
|
|
||||||
echo "skip=true" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
if pnpm --filter frontend chromatic -d storybook-static $(echo "$CHROMATIC_PARAMETER"); then
|
|
||||||
echo "success=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "success=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
env:
|
|
||||||
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
||||||
- name: Publish to Chromatic
|
|
||||||
if: github.event_name == 'pull_request_target'
|
|
||||||
id: chromatic_pull_request
|
|
||||||
run: |
|
|
||||||
DIFF="${{ steps.rev.outputs.base }} HEAD"
|
|
||||||
if [ "$DIFF" = "0000000000000000000000000000000000000000 HEAD" ]; then
|
|
||||||
DIFF="HEAD"
|
|
||||||
fi
|
|
||||||
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff-tree --no-commit-id --name-only -r $(echo "$DIFF") | xargs))"
|
|
||||||
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
|
|
||||||
echo "skip=true" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
BRANCH="${{ github.event.pull_request.head.user.login }}:$HEAD_REF"
|
|
||||||
if [ "$BRANCH" = "misskey-dev:$HEAD_REF" ]; then
|
|
||||||
BRANCH="$HEAD_REF"
|
|
||||||
fi
|
|
||||||
pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name "$BRANCH" $(echo "$CHROMATIC_PARAMETER")
|
|
||||||
env:
|
|
||||||
HEAD_REF: ${{ github.event.pull_request.head.ref }}
|
|
||||||
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
||||||
- name: Notify that Chromatic detects changes
|
|
||||||
uses: actions/github-script@v7.0.1
|
|
||||||
if: github.event_name != 'pull_request_target' && steps.chromatic_push.outputs.success == 'false'
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
script: |
|
|
||||||
github.rest.repos.createCommitComment({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
commit_sha: context.sha,
|
|
||||||
body: 'Chromatic detects changes. Please [review the changes on Chromatic](https://www.chromatic.com/builds?appId=6428f7d7b962f0b79f97d6e4).'
|
|
||||||
})
|
|
||||||
- name: Upload Artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: storybook
|
|
||||||
path: packages/frontend/storybook-static
|
|
79
.github/workflows/test-backend.yml
vendored
79
.github/workflows/test-backend.yml
vendored
|
@ -5,28 +5,19 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- develop
|
- develop
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
# for permissions
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-backend.yml
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
# for permissions
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-backend.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
unit:
|
jest:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:15
|
image: postgres:13
|
||||||
ports:
|
ports:
|
||||||
- 54312:5432
|
- 54312:5432
|
||||||
env:
|
env:
|
||||||
|
@ -42,11 +33,12 @@ jobs:
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v2
|
||||||
- name: Install FFmpeg
|
with:
|
||||||
uses: FedericoCarboni/setup-ffmpeg@v3
|
version: 8
|
||||||
|
run_install: false
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -59,56 +51,9 @@ jobs:
|
||||||
- name: Build
|
- name: Build
|
||||||
run: pnpm build
|
run: pnpm build
|
||||||
- name: Test
|
- name: Test
|
||||||
run: pnpm --filter backend test-and-coverage
|
run: pnpm jest-and-coverage
|
||||||
- name: Upload to Codecov
|
- name: Upload Coverage
|
||||||
uses: codecov/codecov-action@v4
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
|
||||||
files: ./packages/backend/coverage/coverage-final.json
|
|
||||||
|
|
||||||
e2e:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [20.16.0]
|
|
||||||
|
|
||||||
services:
|
|
||||||
postgres:
|
|
||||||
image: postgres:15
|
|
||||||
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.1.1
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
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 backend test-and-coverage:e2e
|
|
||||||
- name: Upload to Codecov
|
|
||||||
uses: codecov/codecov-action@v4
|
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: ./packages/backend/coverage/coverage-final.json
|
files: ./packages/backend/coverage/coverage-final.json
|
||||||
|
|
59
.github/workflows/test-federation.yml
vendored
59
.github/workflows/test-federation.yml
vendored
|
@ -1,59 +0,0 @@
|
||||||
name: Test (federation)
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-federation.yml
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-federation.yml
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [20.16.0]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
- name: Install FFmpeg
|
|
||||||
uses: FedericoCarboni/setup-ffmpeg@v3
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v4.0.3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: 'pnpm'
|
|
||||||
- name: Build Misskey
|
|
||||||
run: |
|
|
||||||
corepack enable && corepack prepare
|
|
||||||
pnpm i --frozen-lockfile
|
|
||||||
pnpm build
|
|
||||||
- name: Setup
|
|
||||||
run: |
|
|
||||||
cd packages/backend/test-federation
|
|
||||||
bash ./setup.sh
|
|
||||||
sudo chmod 644 ./certificates/*.test.key
|
|
||||||
- name: Start servers
|
|
||||||
# https://github.com/docker/compose/issues/1294#issuecomment-374847206
|
|
||||||
run: |
|
|
||||||
cd packages/backend/test-federation
|
|
||||||
docker compose up -d --scale tester=0
|
|
||||||
- name: Test
|
|
||||||
run: |
|
|
||||||
cd packages/backend/test-federation
|
|
||||||
docker compose run --no-deps tester
|
|
||||||
- name: Stop servers
|
|
||||||
run: |
|
|
||||||
cd packages/backend/test-federation
|
|
||||||
docker compose down
|
|
42
.github/workflows/test-frontend.yml
vendored
42
.github/workflows/test-frontend.yml
vendored
|
@ -5,37 +5,27 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- develop
|
- develop
|
||||||
paths:
|
|
||||||
- packages/frontend/**
|
|
||||||
# for permissions
|
|
||||||
- packages/misskey-js/**
|
|
||||||
# for e2e
|
|
||||||
- packages/backend/**
|
|
||||||
- .github/workflows/test-frontend.yml
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
- packages/frontend/**
|
|
||||||
# for permissions
|
|
||||||
- packages/misskey-js/**
|
|
||||||
# for e2e
|
|
||||||
- packages/backend/**
|
|
||||||
- .github/workflows/test-frontend.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
vitest:
|
vitest:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
run_install: false
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -50,7 +40,7 @@ jobs:
|
||||||
- name: Test
|
- name: Test
|
||||||
run: pnpm --filter frontend test-and-coverage
|
run: pnpm --filter frontend test-and-coverage
|
||||||
- name: Upload Coverage
|
- name: Upload Coverage
|
||||||
uses: codecov/codecov-action@v4
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: ./packages/frontend/coverage/coverage-final.json
|
files: ./packages/frontend/coverage/coverage-final.json
|
||||||
|
@ -61,12 +51,12 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
browser: [chrome]
|
browser: [chrome]
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:15
|
image: postgres:13
|
||||||
ports:
|
ports:
|
||||||
- 54312:5432
|
- 54312:5432
|
||||||
env:
|
env:
|
||||||
|
@ -88,9 +78,12 @@ jobs:
|
||||||
#- uses: browser-actions/setup-firefox@latest
|
#- uses: browser-actions/setup-firefox@latest
|
||||||
# if: ${{ matrix.browser == 'firefox' }}
|
# if: ${{ matrix.browser == 'firefox' }}
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 7
|
||||||
|
run_install: false
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -109,19 +102,18 @@ jobs:
|
||||||
run: pnpm exec cypress install
|
run: pnpm exec cypress install
|
||||||
- name: Cypress run
|
- name: Cypress run
|
||||||
uses: cypress-io/github-action@v6
|
uses: cypress-io/github-action@v6
|
||||||
timeout-minutes: 15
|
|
||||||
with:
|
with:
|
||||||
install: false
|
install: false
|
||||||
start: pnpm start:test
|
start: pnpm start:test
|
||||||
wait-on: 'http://localhost:61812'
|
wait-on: 'http://localhost:61812'
|
||||||
headed: true
|
headed: true
|
||||||
browser: ${{ matrix.browser }}
|
browser: ${{ matrix.browser }}
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v2
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-cypress-screenshots
|
name: ${{ matrix.browser }}-cypress-screenshots
|
||||||
path: cypress/screenshots
|
path: cypress/screenshots
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v2
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.browser }}-cypress-videos
|
name: ${{ matrix.browser }}-cypress-videos
|
||||||
|
|
13
.github/workflows/test-misskey-js.yml
vendored
13
.github/workflows/test-misskey-js.yml
vendored
|
@ -6,14 +6,9 @@ name: Test (misskey.js)
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ develop ]
|
branches: [ develop ]
|
||||||
paths:
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-misskey-js.yml
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ develop ]
|
branches: [ develop ]
|
||||||
paths:
|
|
||||||
- packages/misskey-js/**
|
|
||||||
- .github/workflows/test-misskey-js.yml
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
|
||||||
|
@ -21,7 +16,7 @@ jobs:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -31,7 +26,7 @@ jobs:
|
||||||
- run: corepack enable
|
- run: corepack enable
|
||||||
|
|
||||||
- name: Setup Node.js ${{ matrix.node-version }}
|
- name: Setup Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
@ -51,7 +46,7 @@ jobs:
|
||||||
CI: true
|
CI: true
|
||||||
|
|
||||||
- name: Upload Coverage
|
- name: Upload Coverage
|
||||||
uses: codecov/codecov-action@v4
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: ./packages/misskey-js/coverage/coverage-final.json
|
files: ./packages/misskey-js/coverage/coverage-final.json
|
||||||
|
|
9
.github/workflows/test-production.yml
vendored
9
.github/workflows/test-production.yml
vendored
|
@ -16,16 +16,19 @@ jobs:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.16.0]
|
node-version: [20.5.1]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
run_install: false
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.4
|
uses: actions/setup-node@v4.0.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|
45
.github/workflows/validate-api-json.yml
vendored
45
.github/workflows/validate-api-json.yml
vendored
|
@ -1,45 +0,0 @@
|
||||||
name: Test (backend)
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- develop
|
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- .github/workflows/validate-api-json.yml
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- packages/backend/**
|
|
||||||
- .github/workflows/validate-api-json.yml
|
|
||||||
jobs:
|
|
||||||
validate-api-json:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [20.16.0]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4.1.1
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: Install pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v4.0.4
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: 'pnpm'
|
|
||||||
- name: Install Redocly CLI
|
|
||||||
run: npm i -g @redocly/cli
|
|
||||||
- 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 .config/example.yml .config/default.yml
|
|
||||||
- name: Build and generate
|
|
||||||
run: pnpm build && pnpm --filter backend generate-api-json
|
|
||||||
- name: Validation
|
|
||||||
run: npx @redocly/cli lint --extends=minimal ./packages/backend/built/api.json
|
|
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -35,17 +35,12 @@ coverage
|
||||||
!/.config/example.yml
|
!/.config/example.yml
|
||||||
!/.config/docker_example.yml
|
!/.config/docker_example.yml
|
||||||
!/.config/docker_example.env
|
!/.config/docker_example.env
|
||||||
!/.config/cypress-devcontainer.yml
|
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
./compose.yml
|
!/.devcontainer/docker-compose.yml
|
||||||
.devcontainer/compose.yml
|
|
||||||
!/.devcontainer/compose.yml
|
|
||||||
|
|
||||||
# misskey
|
# misskey
|
||||||
/build
|
/build
|
||||||
built
|
built
|
||||||
built-test
|
|
||||||
js-built
|
|
||||||
/data
|
/data
|
||||||
/.cache-loader
|
/.cache-loader
|
||||||
/db
|
/db
|
||||||
|
@ -62,12 +57,6 @@ api-docs.json
|
||||||
ormconfig.json
|
ormconfig.json
|
||||||
temp
|
temp
|
||||||
/packages/frontend/src/**/*.stories.ts
|
/packages/frontend/src/**/*.stories.ts
|
||||||
tsdoc-metadata.json
|
|
||||||
misskey-assets
|
|
||||||
|
|
||||||
# Vite temporary files
|
|
||||||
vite.config.js.timestamp-*
|
|
||||||
vite.config.ts.timestamp-*
|
|
||||||
|
|
||||||
# blender backups
|
# blender backups
|
||||||
*.blend1
|
*.blend1
|
||||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
[submodule "misskey-assets"]
|
||||||
|
path = misskey-assets
|
||||||
|
url = https://github.com/misskey-dev/assets.git
|
||||||
[submodule "fluent-emojis"]
|
[submodule "fluent-emojis"]
|
||||||
path = fluent-emojis
|
path = fluent-emojis
|
||||||
url = https://github.com/misskey-dev/emojis.git
|
url = https://github.com/misskey-dev/emojis.git
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
20.16.0
|
20.5.1
|
||||||
|
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
|
@ -3,7 +3,9 @@
|
||||||
"editorconfig.editorconfig",
|
"editorconfig.editorconfig",
|
||||||
"dbaeumer.vscode-eslint",
|
"dbaeumer.vscode-eslint",
|
||||||
"Vue.volar",
|
"Vue.volar",
|
||||||
|
"Vue.vscode-typescript-vue-plugin",
|
||||||
"Orta.vscode-jest",
|
"Orta.vscode-jest",
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
"mrmlnc.vscode-json5"
|
"mrmlnc.vscode-json5"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
6
.vscode/settings.json
vendored
6
.vscode/settings.json
vendored
|
@ -7,9 +7,5 @@
|
||||||
"*.test.ts": "typescript"
|
"*.test.ts": "typescript"
|
||||||
},
|
},
|
||||||
"jest.jestCommandLine": "pnpm run jest",
|
"jest.jestCommandLine": "pnpm run jest",
|
||||||
"jest.runMode": "on-demand",
|
"jest.autoRun": "off"
|
||||||
"editor.codeActionsOnSave": {
|
|
||||||
"source.fixAll": "explicit"
|
|
||||||
},
|
|
||||||
"editor.formatOnSave": false
|
|
||||||
}
|
}
|
766
CHANGELOG.md
766
CHANGELOG.md
|
@ -1,776 +1,38 @@
|
||||||
## 2024.11.0
|
<!--
|
||||||
|
## 2023.x.x (unreleased)
|
||||||
### General
|
|
||||||
- Feat: コンテンツの表示にログインを必須にできるように
|
|
||||||
- Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように
|
|
||||||
- Enhance: 依存関係の更新
|
|
||||||
- Enhance: l10nの更新
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: Bull DashboardでRelationship Queueの状態も確認できるように
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751)
|
|
||||||
- Enhance: ドライブでソートができるように
|
|
||||||
- Enhance: アイコンデコレーション管理画面の改善
|
|
||||||
- Enhance: 「単なるラッキー」の取得条件を変更
|
|
||||||
- Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 )
|
|
||||||
- Enhance: MiAuth, OAuthの認可画面の改善
|
|
||||||
- どのアカウントで認証しようとしているのかがわかるように
|
|
||||||
- 認証するアカウントを切り替えられるように
|
|
||||||
- Enhance: Self-XSS防止用の警告を追加
|
|
||||||
- Enhance: カタルーニャ語 (ca-ES) に対応
|
|
||||||
- Enhance: 個別お知らせページではMetaタグを出力するように
|
|
||||||
- Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正
|
|
||||||
- Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768)
|
|
||||||
- Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正
|
|
||||||
- Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used
|
|
||||||
- Fix: リンク切れを修正
|
|
||||||
= Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正
|
|
||||||
(Cherry-picked from https://github.com/taiyme/misskey/pull/305)
|
|
||||||
- Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように
|
|
||||||
(Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588)
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715)
|
|
||||||
- Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように
|
|
||||||
- Fix: フォロワーへのメッセージの絵文字をemojisに含めるように
|
|
||||||
- Fix: Nested proxy requestsを検出した際にブロックするように
|
|
||||||
[ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236)
|
|
||||||
- Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706)
|
|
||||||
- Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711)
|
|
||||||
- Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712)
|
|
||||||
- Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709)
|
|
||||||
- Fix: User Webhookテスト機能のMock Payloadを修正
|
|
||||||
|
|
||||||
### Misskey.js
|
|
||||||
- Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正
|
|
||||||
|
|
||||||
## 2024.10.1
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 )
|
|
||||||
- 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: ユーザーの名前に禁止ワードを設定できるように
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: タイムライン表示時のパフォーマンスを向上
|
|
||||||
- Enhance: アーカイブした個人宛のお知らせを表示・編集できるように
|
|
||||||
- Enhance: l10nの更新
|
|
||||||
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 )
|
|
||||||
- Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように
|
|
||||||
- Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正
|
|
||||||
- Fix: RBT有効時、リノートのリアクションが反映されない問題を修正
|
|
||||||
- Fix: キューのエラーログを簡略化するように
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649)
|
|
||||||
|
|
||||||
## 2024.10.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません)
|
|
||||||
- ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。
|
|
||||||
- なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。
|
|
||||||
- ユーザーデータを読み込む際の型が一部変更されました。
|
|
||||||
- `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: サーバー初期設定時に初期パスワードを設定できるように
|
|
||||||
- Feat: 通報にモデレーションノートを残せるように
|
|
||||||
- Feat: 通報の解決種別を設定できるように
|
|
||||||
- Enhance: 通報の解決と転送を個別に行えるように
|
|
||||||
- Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました
|
|
||||||
- Enhance: 依存関係の更新
|
|
||||||
- Enhance: l10nの更新
|
|
||||||
- Enhance: Playの「人気」タブで10件以上表示可能に #14399
|
|
||||||
- Fix: 連合のホワイトリストが正常に登録されない問題を修正
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: デザインの調整
|
|
||||||
- Enhance: ログイン画面の認証フローを改善
|
|
||||||
- Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657)
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように
|
|
||||||
- Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように
|
|
||||||
- Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 )
|
|
||||||
- Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正
|
|
||||||
|
|
||||||
## 2024.9.0
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能
|
|
||||||
- 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください
|
|
||||||
- Feat: パスキーでログインボタンを実装 (#14574)
|
|
||||||
- Feat: フォローされた際のメッセージを設定できるように
|
|
||||||
- Feat: 連合をホワイトリスト制にできるように
|
|
||||||
- Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445)
|
|
||||||
- Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680)
|
|
||||||
- Feat: データエクスポートが完了した際に通知を発行するように
|
|
||||||
- Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように
|
|
||||||
- Enhance: 依存関係の更新
|
|
||||||
- Enhance: l10nの更新
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように
|
|
||||||
- Enhance: アイコンデコレーション管理画面にプレビューを追加
|
|
||||||
- Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく
|
|
||||||
- Enhance: ScratchpadにUIインスペクターを追加
|
|
||||||
- Enhance: Play編集画面の項目の並びを少しリデザイン
|
|
||||||
- Enhance: 各種メニューをドロワー表示するかどうか設定可能に
|
|
||||||
- Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加
|
|
||||||
- Enhance: CWでも絵文字をクリックしてメニューを表示できるように
|
|
||||||
- Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正
|
|
||||||
- Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正
|
|
||||||
- Fix: 月の違う同じ日はセパレータが表示されないのを修正
|
|
||||||
- Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正
|
|
||||||
(Cherry-picked from https://github.com/taiyme/misskey/pull/265)
|
|
||||||
- Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725)
|
|
||||||
- Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正
|
|
||||||
- Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110)
|
|
||||||
- Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 )
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に
|
|
||||||
- Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように
|
|
||||||
- この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます
|
|
||||||
- Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正
|
|
||||||
- Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8)
|
|
||||||
- Fix: Continue importing from file if single emoji import fails
|
|
||||||
- Fix: `Retry-After`ヘッダーが送信されなかった問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624)
|
|
||||||
- Fix: サーバーサイドのDOM解析完了時にリソースを開放するように
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634)
|
|
||||||
- Fix: `<link rel="alternate">`を追って照会するのはOKレスポンスが返却された場合のみに
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633)
|
|
||||||
- Fix: メールにスタイルが適用されていなかった問題を修正
|
|
||||||
|
|
||||||
## 2024.8.0
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように
|
|
||||||
- Enhance: アカウントの削除のモデレーションログを残すように
|
|
||||||
- Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように
|
|
||||||
- Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように
|
|
||||||
- Enhance: 不適切なページ、ギャラリー、Playを通報できるように
|
|
||||||
- Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正
|
|
||||||
- Fix: ページ遷移に失敗することがある問題を修正
|
|
||||||
- Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制
|
|
||||||
- Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正
|
|
||||||
- Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正
|
|
||||||
- Fix: 特定の条件下でノートの削除ボタンが出ないのを修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように
|
|
||||||
- Enhance: 凍結されたアカウントのフォローリクエストを表示しないように
|
|
||||||
- Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374
|
|
||||||
- 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。
|
|
||||||
- これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。
|
|
||||||
- Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正
|
|
||||||
- Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582)
|
|
||||||
- Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679)
|
|
||||||
- Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように
|
|
||||||
- キュー処理のつまりが改善される可能性があります
|
|
||||||
- Fix: リバーシの対局設定の変更が反映されないのを修正
|
|
||||||
- Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正
|
|
||||||
- Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700)
|
|
||||||
- Fix: Prevent memory leak from memory caches (#14310)
|
|
||||||
- Fix: More reliable memory cache eviction (#14311)
|
|
||||||
|
|
||||||
## 2024.7.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。
|
|
||||||
- Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705
|
|
||||||
- Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に
|
|
||||||
- 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます
|
|
||||||
- Feat: ユーザ作成時にSystemWebhookを送信可能に #14281
|
|
||||||
- Feat: メディアサイレンスを実装 #13842
|
|
||||||
- メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。
|
|
||||||
- Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように
|
|
||||||
- Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正
|
|
||||||
- Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題
|
|
||||||
- Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正
|
|
||||||
- 翻訳の更新
|
|
||||||
- 依存関係の更新
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128)
|
|
||||||
- Feat: 検索ページはクエリを受け付けるようになりました (#14128)
|
|
||||||
- Enhance: 検索ページのUI改善 (#14128)
|
|
||||||
- Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善
|
|
||||||
- Enhance: 非ログイン時に他サーバーに遷移するアクションを追加
|
|
||||||
- Enhance: 非ログイン時のハイライトTLのデザインを改善
|
|
||||||
- Enhance: フロントエンドのアクセシビリティ改善
|
|
||||||
(Based on https://github.com/taiyme/misskey/pull/226)
|
|
||||||
- Enhance: サーバー情報ページ・お問い合わせページを改善
|
|
||||||
(Cherry-picked from https://github.com/taiyme/misskey/pull/238)
|
|
||||||
- Enhance: AiScriptを0.19.0にアップデート
|
|
||||||
- Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)
|
|
||||||
- Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように
|
|
||||||
- Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように
|
|
||||||
- Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように
|
|
||||||
- Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように
|
|
||||||
- Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように
|
|
||||||
- Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように
|
|
||||||
(Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99)
|
|
||||||
- Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように
|
|
||||||
- Enhance: ブラウザのコンテキストメニューを使用できるように
|
|
||||||
- Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように
|
|
||||||
- Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正
|
|
||||||
- Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968)
|
|
||||||
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
|
|
||||||
- Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正
|
|
||||||
- Fix: アンテナの編集画面のボタンに隙間を追加
|
|
||||||
- Fix: テーマプレビューが見れない問題を修正
|
|
||||||
- Fix: ショートカットキーが連打できる問題を修正
|
|
||||||
(Cherry-picked from https://github.com/taiyme/misskey/pull/234)
|
|
||||||
- Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため)
|
|
||||||
- Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574)
|
|
||||||
- Fix: Twitchの埋め込みが開けない問題を修正
|
|
||||||
- Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正
|
|
||||||
- Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正
|
|
||||||
- Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正
|
|
||||||
- Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672)
|
|
||||||
- Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正
|
|
||||||
- Fix: deck uiの通知音が重なる問題 (#14029)
|
|
||||||
- Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正
|
|
||||||
- Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正
|
|
||||||
- Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正
|
|
||||||
- Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正
|
|
||||||
- Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正
|
|
||||||
- Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正
|
|
||||||
- Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正
|
|
||||||
- Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正
|
|
||||||
- Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正
|
|
||||||
- Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正
|
|
||||||
- Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
|
|
||||||
- Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに
|
|
||||||
- Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに
|
|
||||||
- Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに
|
|
||||||
- Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに
|
|
||||||
- Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに
|
|
||||||
- Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに
|
|
||||||
- Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように
|
|
||||||
- Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します
|
|
||||||
- Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
|
|
||||||
- Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006)
|
|
||||||
- Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036)
|
|
||||||
- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
|
|
||||||
- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
|
|
||||||
- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
|
|
||||||
- Fix: 空文字列のリアクションはフォールバックされるように
|
|
||||||
- Fix: リノートにリアクションできないように
|
|
||||||
- Fix: ユーザー名の前後に空白文字列がある場合は省略するように
|
|
||||||
- Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正
|
|
||||||
- Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149
|
|
||||||
1. フォロー中かつアクティブなユーザ
|
|
||||||
2. フォロー中かつ非アクティブなユーザ
|
|
||||||
3. フォローしていないアクティブなユーザ
|
|
||||||
4. フォローしていない非アクティブなユーザ
|
|
||||||
|
|
||||||
また、自分自身のアカウントもサジェストされるようになりました。
|
|
||||||
- Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652)
|
|
||||||
- Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正
|
|
||||||
- Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正
|
|
||||||
- Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正
|
|
||||||
- Fix: エラーメッセージの誤字を修正 (#14213)
|
|
||||||
- Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正
|
|
||||||
- Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正
|
|
||||||
(Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1)
|
|
||||||
- Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251
|
|
||||||
- Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正
|
|
||||||
- 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります
|
|
||||||
- Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題
|
|
||||||
(Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76)
|
|
||||||
- NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます
|
|
||||||
Migrationではカラム定義の変更のみが行われます。
|
|
||||||
サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です
|
|
||||||
- Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正
|
|
||||||
- Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正
|
|
||||||
|
|
||||||
### Misskey.js
|
|
||||||
- Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応)
|
|
||||||
- Feat: `/admin/role/create` のロールポリシーの型を修正
|
|
||||||
|
|
||||||
## 2024.5.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。
|
|
||||||
- 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。
|
|
||||||
- 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: エラートラッキングにSentryを使用できるようになりました
|
|
||||||
- Enhance: URLプレビューの有効化・無効化を設定できるように #13569
|
|
||||||
- Enhance: アンテナでBotによるノートを除外できるように
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545)
|
|
||||||
- Enhance: クリップのノート数を表示するように
|
|
||||||
- Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667)
|
|
||||||
- 猫ユーザーか
|
|
||||||
- botユーザーか
|
|
||||||
- サスペンド済みユーザーか
|
|
||||||
- 鍵アカウントユーザーか
|
|
||||||
- 「アカウントを見つけやすくする」が有効なユーザーか
|
|
||||||
- Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように
|
|
||||||
- もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します
|
|
||||||
- Enhance: 配信停止の理由を表示するように
|
|
||||||
- Enhance: サーバーのお問い合わせ先URLを設定できるようになりました
|
|
||||||
- Fix: Play作成時に設定した公開範囲が機能していない問題を修正
|
|
||||||
- Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正
|
|
||||||
- Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Feat: アップロードするファイルの名前をランダム文字列にできるように
|
|
||||||
- Feat: 個別のお知らせにリンクで飛べるように
|
|
||||||
(Based on https://github.com/MisskeyIO/misskey/pull/639)
|
|
||||||
- Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように
|
|
||||||
- Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように
|
|
||||||
- Enhance: リアクション・いいねの総数を表示するように
|
|
||||||
- Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように
|
|
||||||
- Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように
|
|
||||||
- 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました
|
|
||||||
- Enhance: ページのデザインを変更
|
|
||||||
- Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善
|
|
||||||
- Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように
|
|
||||||
- Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように
|
|
||||||
- Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加
|
|
||||||
- Enhance: 映像・音声の再生にキーボードショートカットが使えるように
|
|
||||||
- Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように
|
|
||||||
- Enhance: リプライにて引用がある場合テキストが空でもノートできるように
|
|
||||||
- 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます
|
|
||||||
- Enhance: フォローするかどうかの確認ダイアログを出せるように
|
|
||||||
- Enhance: Playを手動でリロードできるように
|
|
||||||
- Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように
|
|
||||||
- Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように
|
|
||||||
- Enhance: AiScriptを0.18.0にバージョンアップ
|
|
||||||
- Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように
|
|
||||||
- Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように
|
|
||||||
- Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました
|
|
||||||
- Enhance: コントロールパネルのクイックアクションからファイルを照会できるように
|
|
||||||
- Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように
|
|
||||||
- Fix: 一部のページ内リンクが正しく動作しない問題を修正
|
|
||||||
- Fix: 周年の実績が閏年を考慮しない問題を修正
|
|
||||||
- Fix: ローカルURLのプレビューポップアップが左上に表示される
|
|
||||||
- Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459)
|
|
||||||
- Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528)
|
|
||||||
- Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177
|
|
||||||
- CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。
|
|
||||||
- Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正
|
|
||||||
- Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正
|
|
||||||
- Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正
|
|
||||||
- Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正
|
|
||||||
- Fix: ダイレクト投稿の宛先が保存されない問題を修正
|
|
||||||
- Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正
|
|
||||||
- Fix: ページのOGP URLが間違っているのを修正
|
|
||||||
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
|
|
||||||
- Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正
|
|
||||||
- Fix: 連合なしの状態の読み書きができない問題を修正
|
|
||||||
- Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正
|
|
||||||
- Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに
|
|
||||||
- Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化)
|
|
||||||
- Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756)
|
|
||||||
- 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります
|
|
||||||
- Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける
|
|
||||||
- Fix: フォローリクエストを作成する際に既存のものは削除するように
|
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440)
|
|
||||||
- Fix: エンドポイント`notes/translate`のエラーを改善
|
|
||||||
- Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632)
|
|
||||||
- Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正
|
|
||||||
- Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正
|
|
||||||
- Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように
|
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606)
|
|
||||||
- Fix: Add Cache-Control to Bull Board
|
|
||||||
- Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正
|
|
||||||
- Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正
|
|
||||||
- Fix: グローバルタイムラインで返信が表示されないことがある問題を修正
|
|
||||||
- Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正
|
|
||||||
- Fix: AP Link等は添付ファイル扱いしないようになど (#13754)
|
|
||||||
- Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正
|
|
||||||
- Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正
|
|
||||||
- Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正
|
|
||||||
- Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように
|
|
||||||
- Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように
|
|
||||||
- センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます
|
|
||||||
|
|
||||||
## 2024.3.1
|
|
||||||
|
|
||||||
### General
|
### General
|
||||||
-
|
-
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- Fix: 絵文字関係の不具合を修正 (#13485)
|
-
|
||||||
- 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる
|
|
||||||
- Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる
|
|
||||||
- Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487
|
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
-
|
-
|
||||||
|
|
||||||
## 2024.3.0
|
-->
|
||||||
|
|
||||||
### General
|
## 2023.11.0 (unreleased)
|
||||||
- Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように
|
|
||||||
* デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。)
|
|
||||||
* 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。
|
|
||||||
- Enhance: 通知がミュート、凍結を考慮するようになりました
|
|
||||||
- Enhance: サーバーごとにモデレーションノートを残せるように
|
|
||||||
- Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加
|
|
||||||
- Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加
|
|
||||||
- Enhance: 通知の履歴をリセットできるように
|
|
||||||
- Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整
|
|
||||||
- Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題
|
|
||||||
- Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正
|
|
||||||
- Fix: チャートのラベルが消えている問題を修正
|
|
||||||
- Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正
|
|
||||||
- Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正
|
|
||||||
- Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正
|
|
||||||
- Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正
|
|
||||||
- Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました
|
|
||||||
- Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正
|
|
||||||
- Fix: 破損した通知をクライアントに送信しないように
|
|
||||||
* 通知欄が無限にリロードされる問題が改善する可能性があります
|
|
||||||
- Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正
|
|
||||||
- Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正
|
|
||||||
- Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正
|
|
||||||
- Fix: エンドポイント`admin/emoji/update`の各種修正
|
|
||||||
- 必須パラメータを`id`または`name`のいずれかのみに
|
|
||||||
- `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動)
|
|
||||||
- `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正
|
|
||||||
- Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正
|
|
||||||
|
|
||||||
## 2024.2.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加
|
|
||||||
- Feat: Add support for TrueMail
|
|
||||||
- Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加
|
|
||||||
- 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります
|
|
||||||
- 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します
|
|
||||||
- Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように
|
|
||||||
- Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正
|
|
||||||
- Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正
|
|
||||||
* すべてのリモートユーザーのリアクション一覧を見えないようにします
|
|
||||||
- Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207
|
|
||||||
* デフォルトは空欄なので適用前と同等の動作になります
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Feat: 新しいゲームを追加
|
|
||||||
- Feat: 音声・映像プレイヤーを追加
|
|
||||||
- Feat: 絵文字の詳細ダイアログを追加
|
|
||||||
- Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加
|
|
||||||
- デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です
|
|
||||||
- Feat: スワイプでタブを切り替えられるように
|
|
||||||
- Enhance: MFM等のコードブロックに全文コピー用のボタンを追加
|
|
||||||
- Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように
|
|
||||||
- Enhance: チャンネルノートのピン留めをノートのメニューからできるように
|
|
||||||
- Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように
|
|
||||||
- Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md)
|
|
||||||
- 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意
|
|
||||||
- Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように
|
|
||||||
- Enhance: Playの説明欄にMFMを使えるように
|
|
||||||
- Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように
|
|
||||||
- Enhance: 季節に応じた画面の演出を南半球でも利用できるように
|
|
||||||
- Enhance: タイムラインフィルターの設定をすべて保持できるように
|
|
||||||
- 今までの「TLに他の人への返信を含める」設定は一旦リセットされます
|
|
||||||
- Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加
|
|
||||||
- Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように
|
|
||||||
- Enhance: MFMの属性でオートコンプリートが使用できるように #12735
|
|
||||||
- Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように
|
|
||||||
- Enhance: リモートのユーザーはメニューから直接リモートで表示できるように
|
|
||||||
- Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように
|
|
||||||
- Enhance: コードのシンタックスハイライトにテーマを適用できるように
|
|
||||||
- Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように
|
|
||||||
- リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合
|
|
||||||
- センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合
|
|
||||||
- ロールが必要な絵文字をリアクションしようとした場合
|
|
||||||
- Enhance: ページ遷移時にPlayerを閉じるように
|
|
||||||
- Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように
|
|
||||||
- Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように
|
|
||||||
- Enhance: オフライン表示のデザインを改善・多言語対応
|
|
||||||
- Fix: ネイティブモードの絵文字がモノクロにならないように
|
|
||||||
- Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正
|
|
||||||
- Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正
|
|
||||||
- Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正
|
|
||||||
- Fix: Renoteのキーボードショートカットが機能していなかった問題を修正
|
|
||||||
- Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正
|
|
||||||
- Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正
|
|
||||||
- Fix: デッキのプロファイル作成時に名前を空にできる問題を修正
|
|
||||||
- Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正
|
|
||||||
- Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正
|
|
||||||
- Fix: iOSで大きな画像を変換してアップロードできない問題を修正
|
|
||||||
- Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正
|
|
||||||
- Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正
|
|
||||||
- Fix: 画像をクロップ時、正常に完了できない問題の修正
|
|
||||||
- Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正
|
|
||||||
- Fix: プロフィールを編集してもリロードするまで反映されない問題を修正
|
|
||||||
- Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正
|
|
||||||
- Fix: MkCodeEditorで行がずれていってしまう問題の修正
|
|
||||||
- Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: 連合先のレートリミットを超過した際にリトライするようになりました
|
|
||||||
- Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916)
|
|
||||||
- Enhance: クリップをエクスポートできるように
|
|
||||||
- Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように
|
|
||||||
- Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新
|
|
||||||
- Enhance: 連合向けのノート配信を軽量化 #13192
|
|
||||||
- Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正
|
|
||||||
- Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更
|
|
||||||
- Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更
|
|
||||||
- Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正
|
|
||||||
- Fix: properly handle cc followers
|
|
||||||
- Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec
|
|
||||||
- Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122
|
|
||||||
- Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273
|
|
||||||
|
|
||||||
## 2023.12.2
|
|
||||||
|
|
||||||
### General
|
|
||||||
- v2023.12.1でDockerを利用してサーバーを起動できない問題を修正
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: 検索画面においてEnterキー押下で検索できるように
|
|
||||||
|
|
||||||
## 2023.12.1
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\
|
|
||||||
権限不足になる場合には権限を再設定して再生成してください。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Enhance: ローカリゼーションの更新
|
|
||||||
- Fix: 自分のdirect noteがuser list timelineに追加されない
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す
|
|
||||||
- Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787
|
|
||||||
- Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正
|
|
||||||
- Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました
|
|
||||||
- Enhance: `oauth/token`エンドポイントのCORS対応
|
|
||||||
- Fix: 1702718871541-ffVisibility.jsのdownが壊れている
|
|
||||||
- Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正
|
|
||||||
- Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正
|
|
||||||
- Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正
|
|
||||||
- Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正
|
|
||||||
|
|
||||||
## 2023.12.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました
|
|
||||||
- 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします
|
|
||||||
- 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。
|
|
||||||
|
|
||||||
**影響:**
|
|
||||||
それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。
|
|
||||||
投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。
|
|
||||||
|
|
||||||
1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。
|
|
||||||
2. 「ピン留 (全般)」のタブを選択します。
|
|
||||||
3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed)
|
|
||||||
- Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83)
|
|
||||||
- Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加
|
|
||||||
- Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように
|
|
||||||
- Enhance: 公開ロールにアサインされたときに通知が作成されるように
|
|
||||||
- Enhance: アイコンデコレーションを複数設定できるように
|
|
||||||
- Enhance: アイコンデコレーションの位置を微調整できるように
|
|
||||||
- Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072
|
|
||||||
- Enhance: ローカリゼーションの更新
|
|
||||||
- Enhance: 依存関係の更新
|
|
||||||
- Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加
|
|
||||||
- Feat: 画面に雪を降らせられるように
|
|
||||||
- Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加
|
|
||||||
- Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に
|
|
||||||
- ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。
|
|
||||||
- Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560
|
|
||||||
- Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560
|
|
||||||
- Enhance: 絵文字のオートコンプリート機能強化 #12364
|
|
||||||
- Enhance: ユーザーのRawデータを表示するページが復活
|
|
||||||
- Enhance: リアクション選択時に音を鳴らせるように
|
|
||||||
- Enhance: サウンドにドライブのファイルを使用できるように
|
|
||||||
- Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加
|
|
||||||
- Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように
|
|
||||||
- Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305
|
|
||||||
- Enhance: ノートプレビューに「内容を隠す」が反映されるように
|
|
||||||
- Enhance: データセーバーでコードハイライトの読み込みを削減できるように
|
|
||||||
- Enhance: データセーバーの適用範囲を個別で設定できるように
|
|
||||||
- 従来のデータセーバーの設定はリセットされます
|
|
||||||
- Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように
|
|
||||||
- Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように
|
|
||||||
- Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように
|
|
||||||
- Enhance: 絵文字の詳細ページに記載される情報を追加
|
|
||||||
- Enhance: リアクションの表示幅制限を設定可能に
|
|
||||||
- Enhance: Unicode 15.0のサポート
|
|
||||||
- Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように
|
|
||||||
- MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました
|
|
||||||
- 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります
|
|
||||||
(例: ` ```js ` → Javascript, ` ```ais ` → AiScript)
|
|
||||||
- Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように
|
|
||||||
- Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる
|
|
||||||
- Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加
|
|
||||||
- Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように
|
|
||||||
- Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように
|
|
||||||
- Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正
|
|
||||||
- Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367
|
|
||||||
- Fix: コードエディタが正しく表示されない問題を修正
|
|
||||||
- Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正
|
|
||||||
- Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正
|
|
||||||
- Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305
|
|
||||||
- Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470
|
|
||||||
- Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正
|
|
||||||
- Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化
|
|
||||||
- Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正
|
|
||||||
- Fix: ノート中のリアクションの表示を微調整 #12650
|
|
||||||
- Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正
|
|
||||||
- Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正
|
|
||||||
- Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。
|
|
||||||
- Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正
|
|
||||||
- Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正
|
|
||||||
- Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正
|
|
||||||
- Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように
|
|
||||||
- Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正
|
|
||||||
- Fix: MFMでルビの中のテキストがnyaizeされない問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように
|
|
||||||
- Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように
|
|
||||||
- Enhance: カスタム絵文字のインポート時の動作を改善
|
|
||||||
- Enhance: json-schema(OpenAPIの戻り値として使用されるスキーマ定義)を出来る限り最新化 #12311
|
|
||||||
- Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303
|
|
||||||
- Fix: ロールタイムラインが保存されない問題を修正
|
|
||||||
- Fix: api.jsonの生成ロジックを改善 #12402
|
|
||||||
- Fix: 招待コードが使い回せる問題を修正
|
|
||||||
- Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正
|
|
||||||
- Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正
|
|
||||||
- Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443
|
|
||||||
- Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383
|
|
||||||
- Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題
|
|
||||||
- Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題
|
|
||||||
- Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題
|
|
||||||
- Fix: 「みつける」が年越し時に壊れる問題を修正
|
|
||||||
- Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正
|
|
||||||
- Fix: モデレーションログがモデレーターは閲覧できないように修正
|
|
||||||
- Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正
|
|
||||||
- Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない
|
|
||||||
|
|
||||||
## 2023.11.1
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。
|
|
||||||
|
|
||||||
### General
|
|
||||||
- Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました
|
|
||||||
- Enhance: ローカリゼーションの更新
|
|
||||||
- Enhance: 依存関係の更新
|
|
||||||
|
|
||||||
### Client
|
|
||||||
- Enhance: MFMでルビを振れるように
|
|
||||||
- 例: `$[ruby 三須木 みすき]`
|
|
||||||
- Enhance: MFMでUNIX時間を指定して日時を表示できるように
|
|
||||||
- 例: `$[unixtime 1701356400]`
|
|
||||||
- Enhance: プラグインでエラーが発生した場合のハンドリングを強化
|
|
||||||
- Enhance: 細かなUIのブラッシュアップ
|
|
||||||
- Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339
|
|
||||||
- Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236
|
|
||||||
- Fix: プラグインでノートの表示を書き換えられない問題を修正
|
|
||||||
- Fix: アイコンデコレーションが見切れる場合がある問題を修正
|
|
||||||
- Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正
|
|
||||||
- Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309
|
|
||||||
- Fix: 絵文字ピッカーでの検索が更新されない問題を修正
|
|
||||||
- Fix: 特定の条件下でノートがnyaizeされない問題を修正
|
|
||||||
|
|
||||||
### Server
|
|
||||||
- Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に
|
|
||||||
- Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように
|
|
||||||
- Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました
|
|
||||||
- Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306
|
|
||||||
- Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正
|
|
||||||
- Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正
|
|
||||||
- Fix: ActivityPubに関するセキュリティの向上
|
|
||||||
- Fix: 非公開の投稿に対して返信できないように
|
|
||||||
|
|
||||||
## 2023.11.0
|
|
||||||
|
|
||||||
### Note
|
|
||||||
- iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします
|
|
||||||
|
|
||||||
### General
|
### General
|
||||||
- Feat: アイコンデコレーション機能
|
- Feat: アイコンデコレーション機能
|
||||||
- サーバーで用意された画像をアイコンに重ねることができます
|
- サーバーで用意された画像をアイコンに重ねることができます
|
||||||
- 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/
|
- 画像のテンプレートはこちらです: https://misskey-hub.net/avatar-decoration-template.png
|
||||||
- 最大でも黄色いエリア内にデコレーションを収めることを推奨します。
|
- 最大でも黄色いエリア内にデコレーションを収めることを推奨します。
|
||||||
- 画像は512x512pxを推奨します。
|
- 画像は512x512pxを推奨します。
|
||||||
- Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加
|
|
||||||
- Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定
|
|
||||||
- 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。
|
|
||||||
- ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。
|
|
||||||
- Enhance: すでにフォローしたすべての人の返信をTLに追加できるように
|
- Enhance: すでにフォローしたすべての人の返信をTLに追加できるように
|
||||||
- Enhance: 未読の通知数を表示できるように
|
- Enhance: 未読の通知数を表示できるように
|
||||||
- Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました
|
|
||||||
- Enhance: ローカリゼーションの更新
|
- Enhance: ローカリゼーションの更新
|
||||||
- Enhance: 依存関係の更新
|
- Enhance: 依存関係の更新
|
||||||
- Change: CWを使用する場合、注釈を空にすることは許可されなくなりました
|
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました
|
- Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました
|
||||||
- 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください
|
- 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください
|
||||||
https://misskey-hub.net/docs/for-developers/publish-on-your-website/
|
https://misskey-hub.net/docs/advanced/publish-on-your-website.html
|
||||||
- Feat: 通知をグルーピングして表示するオプション(オプトアウト)
|
- Enhance: スワイプしてタイムラインを再読込できるように
|
||||||
- Feat: Misskeyの基本的なチュートリアルを実装
|
|
||||||
- Feat: スワイプしてタイムラインを再読込できるように
|
|
||||||
- PCの場合は右上のボタンからでも再読込できます
|
- PCの場合は右上のボタンからでも再読込できます
|
||||||
- Enhance: タイムラインの自動更新を無効にできるように
|
- Enhance: タイムラインの自動更新を無効にできるように
|
||||||
|
- Enhance: 通知をグルーピングして表示するオプション(オプトアウト)
|
||||||
- Enhance: コードのシンタックスハイライトエンジンをShikiに変更
|
- Enhance: コードのシンタックスハイライトエンジンをShikiに変更
|
||||||
- AiScriptのシンタックスハイライトに対応
|
- AiScriptのシンタックスハイライトに対応
|
||||||
- MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください
|
- MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください
|
||||||
|
@ -779,7 +41,6 @@
|
||||||
- Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました
|
- Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました
|
||||||
- Enhance: AiScript関数`Mk:nyaize()`が追加されました
|
- Enhance: AiScript関数`Mk:nyaize()`が追加されました
|
||||||
- Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました
|
- Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました
|
||||||
- Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように
|
|
||||||
- Enhance: その他細かなブラッシュアップ
|
- Enhance: その他細かなブラッシュアップ
|
||||||
- Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正
|
- Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正
|
||||||
- Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう
|
- Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう
|
||||||
|
@ -788,21 +49,13 @@
|
||||||
- Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983
|
- Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983
|
||||||
- Fix: 個人カードのemojiがバッテリーになっている問題を修正
|
- Fix: 個人カードのemojiがバッテリーになっている問題を修正
|
||||||
- Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正
|
- Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正
|
||||||
- Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197
|
|
||||||
- Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174
|
|
||||||
- Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224
|
|
||||||
- Fix: In deck layout, replies option is not saved after refresh
|
|
||||||
- Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正
|
|
||||||
- Note: アップデート後、サウンドに関する設定が初期化されます
|
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Feat: Registry APIがサードパーティから利用可能になりました
|
|
||||||
- Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように
|
- Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように
|
||||||
- Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善
|
- Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善
|
||||||
- Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました
|
- Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました
|
||||||
- 相手がMisskey v2023.11.0以降である必要があります
|
- 相手がMisskey v2023.11.0以降である必要があります
|
||||||
- Enhance: チャンネル取得時のパフォーマンスを向上
|
- Enhance: チャンネル取得時のパフォーマンスを向上
|
||||||
- Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように
|
|
||||||
- Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正
|
- Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正
|
||||||
- Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正
|
- Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正
|
||||||
- Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正
|
- Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正
|
||||||
|
@ -814,7 +67,6 @@
|
||||||
- Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正
|
- Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正
|
||||||
- Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正
|
- Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正
|
||||||
- Fix: サーバーサイドからのテスト通知を正しく行えるように修正
|
- Fix: サーバーサイドからのテスト通知を正しく行えるように修正
|
||||||
- Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #12233
|
|
||||||
|
|
||||||
## 2023.10.2
|
## 2023.10.2
|
||||||
|
|
||||||
|
|
|
@ -2,131 +2,45 @@
|
||||||
|
|
||||||
## Our Pledge
|
## Our Pledge
|
||||||
|
|
||||||
We as members, contributors, and leaders pledge to make participation in our
|
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||||
community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
||||||
identity and expression, level of experience, education, socio-economic status,
|
|
||||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
|
||||||
identity and orientation.
|
|
||||||
|
|
||||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
||||||
diverse, inclusive, and healthy community.
|
|
||||||
|
|
||||||
## Our Standards
|
## Our Standards
|
||||||
|
|
||||||
Examples of behavior that contributes to a positive environment for our
|
Examples of behavior that contributes to creating a positive environment include:
|
||||||
community include:
|
|
||||||
|
|
||||||
* Demonstrating empathy and kindness toward other people
|
* Using welcoming and inclusive language
|
||||||
* Being respectful of differing opinions, viewpoints, and experiences
|
* Being respectful of differing viewpoints and experiences
|
||||||
* Giving and gracefully accepting constructive feedback
|
* Gracefully accepting constructive criticism
|
||||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
* Focusing on what is best for the community
|
||||||
and learning from the experience
|
* Showing empathy towards other community members
|
||||||
* Focusing on what is best not just for us as individuals, but for the overall
|
|
||||||
community
|
|
||||||
|
|
||||||
Examples of unacceptable behavior include:
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||||
any kind
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or email address,
|
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||||
without their explicit permission
|
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Enforcement Responsibilities
|
## Our Responsibilities
|
||||||
|
|
||||||
Community leaders are responsible for clarifying and enforcing our standards of
|
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||||
acceptable behavior and will take appropriate and fair corrective action in
|
|
||||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
|
||||||
or harmful.
|
|
||||||
|
|
||||||
Community leaders have the right and responsibility to remove, edit, or reject
|
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
|
||||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
|
||||||
decisions when appropriate.
|
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
This Code of Conduct applies within all community spaces, and also applies when
|
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||||
an individual is officially representing the community in public spaces.
|
|
||||||
Examples of representing our community include using an official e-mail address,
|
|
||||||
posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event.
|
|
||||||
|
|
||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at syuilotan@yahoo.co.jp. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||||
reported to the community leaders responsible for enforcement at
|
|
||||||
<syuilotan@yahoo.co.jp>.
|
|
||||||
All complaints will be reviewed and investigated promptly and fairly.
|
|
||||||
|
|
||||||
All community leaders are obligated to respect the privacy and security of the
|
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||||
reporter of any incident.
|
|
||||||
|
|
||||||
## Enforcement Guidelines
|
|
||||||
|
|
||||||
Community leaders will follow these Community Impact Guidelines in determining
|
|
||||||
the consequences for any action they deem in violation of this Code of Conduct:
|
|
||||||
|
|
||||||
### 1. Correction
|
|
||||||
|
|
||||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
|
||||||
unprofessional or unwelcome in the community.
|
|
||||||
|
|
||||||
**Consequence**: A private, written warning from community leaders, providing
|
|
||||||
clarity around the nature of the violation and an explanation of why the
|
|
||||||
behavior was inappropriate. A public apology may be requested.
|
|
||||||
|
|
||||||
### 2. Warning
|
|
||||||
|
|
||||||
**Community Impact**: A violation through a single incident or series of
|
|
||||||
actions.
|
|
||||||
|
|
||||||
**Consequence**: A warning with consequences for continued behavior. No
|
|
||||||
interaction with the people involved, including unsolicited interaction with
|
|
||||||
those enforcing the Code of Conduct, for a specified period of time. This
|
|
||||||
includes avoiding interactions in community spaces as well as external channels
|
|
||||||
like social media. Violating these terms may lead to a temporary or permanent
|
|
||||||
ban.
|
|
||||||
|
|
||||||
### 3. Temporary Ban
|
|
||||||
|
|
||||||
**Community Impact**: A serious violation of community standards, including
|
|
||||||
sustained inappropriate behavior.
|
|
||||||
|
|
||||||
**Consequence**: A temporary ban from any sort of interaction or public
|
|
||||||
communication with the community for a specified period of time. No public or
|
|
||||||
private interaction with the people involved, including unsolicited interaction
|
|
||||||
with those enforcing the Code of Conduct, is allowed during this period.
|
|
||||||
Violating these terms may lead to a permanent ban.
|
|
||||||
|
|
||||||
### 4. Permanent Ban
|
|
||||||
|
|
||||||
**Community Impact**: Demonstrating a pattern of violation of community
|
|
||||||
standards, including sustained inappropriate behavior, harassment of an
|
|
||||||
individual, or aggression toward or disparagement of classes of individuals.
|
|
||||||
|
|
||||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
|
||||||
community.
|
|
||||||
|
|
||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||||
version 2.1, available at
|
|
||||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
||||||
|
|
||||||
Community Impact Guidelines were inspired by
|
[homepage]: http://contributor-covenant.org
|
||||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
[version]: http://contributor-covenant.org/version/1/4/
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see the FAQ at
|
|
||||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
|
||||||
[https://www.contributor-covenant.org/translations][translations].
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
|
||||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
|
||||||
[FAQ]: https://www.contributor-covenant.org/faq
|
|
||||||
[translations]: https://www.contributor-covenant.org/translations
|
|
||||||
|
|
279
CONTRIBUTING.md
279
CONTRIBUTING.md
|
@ -1,7 +1,7 @@
|
||||||
# Contribution guide
|
# Contribution guide
|
||||||
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
|
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
|
||||||
|
|
||||||
> [!NOTE]
|
> **Note**
|
||||||
> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
|
> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
|
||||||
> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
|
> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
|
||||||
> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
|
> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
|
||||||
|
@ -15,33 +15,18 @@ Before creating an issue, please check the following:
|
||||||
- To avoid duplication, please search for similar issues before creating a new issue.
|
- To avoid duplication, please search for similar issues before creating a new issue.
|
||||||
- Do not use Issues to ask questions or troubleshooting.
|
- Do not use Issues to ask questions or troubleshooting.
|
||||||
- Issues should only be used to feature requests, suggestions, and bug tracking.
|
- Issues should only be used to feature requests, suggestions, and bug tracking.
|
||||||
- Please ask questions or troubleshooting in [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/)~~ [GitHub Discussions](https://github.com/misskey-dev/misskey/discussions) or [Discord](https://discord.gg/Wp8gVStHW3).
|
||||||
|
|
||||||
> [!WARNING]
|
> **Warning**
|
||||||
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
|
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
|
||||||
|
|
||||||
### Recommended discussing before implementation
|
## Before implementation
|
||||||
We welcome your proposal.
|
|
||||||
|
|
||||||
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
|
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
|
||||||
|
|
||||||
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
|
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
|
||||||
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
|
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
|
||||||
|
|
||||||
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask Committer to assign you).
|
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask another member to assign you). By expressing your intention to work the Issue, you can prevent conflicts in the work.
|
||||||
By expressing your intention to work on the Issue, you can prevent conflicts in the work.
|
|
||||||
|
|
||||||
To the Committers: you should not assign someone on it before the Final Decision.
|
|
||||||
|
|
||||||
### How issues are triaged
|
|
||||||
|
|
||||||
The Committers may:
|
|
||||||
* close an issue that is not reproducible on latest stable release,
|
|
||||||
* merge an issue into another issue,
|
|
||||||
* split an issue into multiple issues,
|
|
||||||
* or re-open that has been closed for some reason which is not applicable anymore.
|
|
||||||
|
|
||||||
@syuilo reserves the Final Decision rights including whether the project will implement feature and how to implement, these rights are not always exercised.
|
|
||||||
|
|
||||||
## Well-known branches
|
## Well-known branches
|
||||||
- **`master`** branch is tracking the latest release and used for production purposes.
|
- **`master`** branch is tracking the latest release and used for production purposes.
|
||||||
|
@ -64,29 +49,9 @@ Thank you for your PR! Before creating a PR, please check the following:
|
||||||
|
|
||||||
Thanks for your cooperation 🤗
|
Thanks for your cooperation 🤗
|
||||||
|
|
||||||
### Additional things for ActivityPub payload changes
|
|
||||||
*This section is specific to misskey-dev implementation. Other fork or implementation may take different way. A significant difference is that non-"misskey-dev" extension is not described in the misskey-hub's document.*
|
|
||||||
|
|
||||||
If PR includes changes to ActivityPub payload, please reflect it in [misskey-hub's document](https://github.com/misskey-dev/misskey-hub-next/blob/master/content/ns.md) by sending PR.
|
|
||||||
|
|
||||||
The name of purporsed extension property (referred as "extended property" in later) to ActivityPub shall be prefixed by `_misskey_`. (i.e. `_misskey_quote`)
|
|
||||||
|
|
||||||
The extended property in `packages/backend/src/core/activitypub/type.ts` **must** be declared as optional because ActivityPub payloads that comes from older Misskey or other implementation may not contain it.
|
|
||||||
|
|
||||||
The extended property must be included in the context definition. Context is defined in `packages/backend/src/core/activitypub/misc/contexts.ts`.
|
|
||||||
The key shall be same as the name of extended property, and the value shall be same as "short IRI".
|
|
||||||
|
|
||||||
"Short IRI" is defined in misskey-hub's document, but usually takes form of `misskey:<name of extended property>`. (i.e. `misskey:_misskey_quote`)
|
|
||||||
|
|
||||||
One should not add property that has defined before by other implementation, or add custom variant value to "well-known" property.
|
|
||||||
|
|
||||||
## Reviewers guide
|
## Reviewers guide
|
||||||
Be willing to comment on the good points and not just the things you want fixed 💯
|
Be willing to comment on the good points and not just the things you want fixed 💯
|
||||||
|
|
||||||
読んでおくといいやつ
|
|
||||||
- https://blog.lacolaco.net/posts/1e2cf439b3c2/
|
|
||||||
- https://konifar-zatsu.hatenadiary.jp/entry/2024/11/05/192421
|
|
||||||
|
|
||||||
### Review perspective
|
### Review perspective
|
||||||
- Scope
|
- Scope
|
||||||
- Are the goals of the PR clear?
|
- Are the goals of the PR clear?
|
||||||
|
@ -112,7 +77,7 @@ An actual domain will be assigned so you can test the federation.
|
||||||
|
|
||||||
## Release
|
## Release
|
||||||
### Release Instructions
|
### Release Instructions
|
||||||
1. Commit version changes in the `develop` branch ([package.json](package.json))
|
1. Commit version changes in the `develop` branch ([package.json](https://github.com/misskey-dev/misskey/blob/develop/package.json))
|
||||||
2. Create a release PR.
|
2. Create a release PR.
|
||||||
- Into `master` from `develop` branch.
|
- Into `master` from `develop` branch.
|
||||||
- The title must be in the format `Release: x.y.z`.
|
- The title must be in the format `Release: x.y.z`.
|
||||||
|
@ -123,7 +88,7 @@ An actual domain will be assigned so you can test the federation.
|
||||||
- The target branch must be `master`
|
- The target branch must be `master`
|
||||||
- The tag name must be the version
|
- The tag name must be the version
|
||||||
|
|
||||||
> [!NOTE]
|
> **Note**
|
||||||
> Why this instruction is necessary:
|
> Why this instruction is necessary:
|
||||||
> - To perform final QA checks
|
> - To perform final QA checks
|
||||||
> - To distribute responsibility
|
> - To distribute responsibility
|
||||||
|
@ -136,28 +101,24 @@ You can improve our translations with your Crowdin account.
|
||||||
Your changes in Crowdin are automatically submitted as a PR (with the title "New Crowdin translations") to the repository.
|
Your changes in Crowdin are automatically submitted as a PR (with the title "New Crowdin translations") to the repository.
|
||||||
The owner [@syuilo](https://github.com/syuilo) merges the PR into the develop branch before the next release.
|
The owner [@syuilo](https://github.com/syuilo) merges the PR into the develop branch before the next release.
|
||||||
|
|
||||||
If your language is not listed in Crowdin, please open an issue. We will add it to Crowdin.
|
If your language is not listed in Crowdin, please open an issue.
|
||||||
For newly added languages, once the translation progress per language exceeds 70%, it will be officially introduced into Misskey and made available to users.
|
|
||||||
|
|
||||||
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
|
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
### Setup
|
During development, it is useful to use the
|
||||||
Before developing, you have to set up environment. Misskey requires Redis, PostgreSQL, and FFmpeg.
|
|
||||||
|
|
||||||
You would want to install Meilisearch to experiment related features. Technically, meilisearch is not strict requirement, but some features and tests require it.
|
```
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
There are a few ways to proceed.
|
command.
|
||||||
|
|
||||||
#### Use system-wide software
|
- Server-side source files and automatically builds them if they are modified. Automatically start the server process(es).
|
||||||
You could install them in system-wide (such as from package manager).
|
- Vite HMR (just the `vite` command) is available. The behavior may be different from production.
|
||||||
|
- Service Worker is watched by esbuild.
|
||||||
#### Use `docker compose`
|
|
||||||
You could obtain middleware container by typing `docker compose -f $PROJECT_ROOT/compose.local-db.yml up -d`.
|
|
||||||
|
|
||||||
#### Use Devcontainer
|
|
||||||
Devcontainer also has necessary setting. This method can be done by connecting from VSCode.
|
|
||||||
|
|
||||||
|
### Dev Container
|
||||||
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
|
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.
|
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.
|
**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.
|
||||||
|
@ -171,76 +132,38 @@ pnpm build
|
||||||
pnpm migrate
|
pnpm migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
After finishing the migration, you can proceed.
|
After finishing the migration, run the `pnpm dev` command to start the development server.
|
||||||
|
|
||||||
### Start developing
|
``` bash
|
||||||
During development, it is useful to use the
|
|
||||||
```
|
|
||||||
pnpm dev
|
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.
|
|
||||||
- The front end can be viewed by accessing `http://localhost:5173`.
|
|
||||||
- The backend listens on the port configured with `port` in .config/default.yml.
|
|
||||||
If you have not changed it from the default, it will be "http://localhost:3000".
|
|
||||||
If "port" in .config/default.yml is set to something other than 3000, you need to change the proxy settings in packages/frontend/vite.config.local-dev.ts.
|
|
||||||
|
|
||||||
### `MK_DEV_PREFER=backend pnpm dev`
|
|
||||||
pnpm dev has another mode with `MK_DEV_PREFER=backend`.
|
|
||||||
|
|
||||||
```
|
|
||||||
MK_DEV_PREFER=backend pnpm dev
|
|
||||||
```
|
|
||||||
|
|
||||||
- This mode is closer to the production environment than the default mode.
|
|
||||||
- Vite runs behind the backend (the backend will proxy Vite at /vite).
|
|
||||||
- You can see Misskey by accessing `http://localhost:3000` (Replace `3000` with the port configured with `port` in .config/default.yml).
|
|
||||||
- To change the port of Vite, specify with `VITE_PORT` environment variable.
|
|
||||||
- HMR may not work in some environments such as Windows.
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
You can run non-backend tests by executing following commands:
|
- Test codes are located in [`/packages/backend/test`](/packages/backend/test).
|
||||||
```sh
|
|
||||||
pnpm --filter frontend test
|
### Run test
|
||||||
pnpm --filter misskey-js test
|
Create a config file.
|
||||||
```
|
```
|
||||||
|
|
||||||
Backend tests require manual preparation of servers. See the next section for more on this.
|
|
||||||
|
|
||||||
### Backend
|
|
||||||
There are three types of test codes for the backend:
|
|
||||||
- Unit tests: [`/packages/backend/test/unit`](/packages/backend/test/unit)
|
|
||||||
- Single-server E2E tests: [`/packages/backend/test/e2e`](/packages/backend/test/e2e)
|
|
||||||
- Multiple-server E2E tests: [`/packages/backend/test-federation`](/packages/backend/test-federation)
|
|
||||||
|
|
||||||
#### Running Unit Tests or Single-server E2E Tests
|
|
||||||
1. Create a config file:
|
|
||||||
```sh
|
|
||||||
cp .github/misskey/test.yml .config/
|
cp .github/misskey/test.yml .config/
|
||||||
```
|
```
|
||||||
|
Prepare DB/Redis for testing.
|
||||||
2. Start DB and Redis servers for testing:
|
|
||||||
```sh
|
|
||||||
docker compose -f packages/backend/test/compose.yml up
|
|
||||||
```
|
```
|
||||||
Instead, you can prepare an empty (data can be erased) DB and edit `.config/test.yml` appropriately.
|
docker compose -f packages/backend/test/docker-compose.yml up
|
||||||
|
|
||||||
3. Run all tests:
|
|
||||||
```sh
|
|
||||||
pnpm --filter backend test # unit tests
|
|
||||||
pnpm --filter backend test:e2e # single-server E2E tests
|
|
||||||
```
|
```
|
||||||
If you want to run a specific test, run as a following command:
|
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
|
||||||
```sh
|
|
||||||
pnpm --filter backend test -- packages/backend/test/unit/activitypub.ts
|
Run all test.
|
||||||
pnpm --filter backend test:e2e -- packages/backend/test/e2e/nodeinfo.ts
|
```
|
||||||
|
pnpm test
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running Multiple-server E2E Tests
|
#### Run specify test
|
||||||
See [`/packages/backend/test-federation/README.md`](/packages/backend/test-federation/README.md).
|
```
|
||||||
|
pnpm jest -- foo.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
### e2e tests
|
||||||
|
TODO
|
||||||
|
|
||||||
## Environment Variable
|
## Environment Variable
|
||||||
|
|
||||||
|
@ -277,7 +200,7 @@ niraxは、Misskeyで使用しているオリジナルのフロントエンド
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!WARNING]
|
> **Warning**
|
||||||
> 現状、ルートは定義された順に評価されます。
|
> 現状、ルートは定義された順に評価されます。
|
||||||
> たとえば、`/foo/:id`ルート定義の次に`/foo/bar`ルート定義がされていた場合、後者がマッチすることはありません。
|
> たとえば、`/foo/:id`ルート定義の次に`/foo/bar`ルート定義がされていた場合、後者がマッチすることはありません。
|
||||||
|
|
||||||
|
@ -339,7 +262,7 @@ export const Default = {
|
||||||
parameters: {
|
parameters: {
|
||||||
layout: 'centered',
|
layout: 'centered',
|
||||||
},
|
},
|
||||||
} satisfies StoryObj<typeof MyComponent>;
|
} 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.
|
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.
|
||||||
|
@ -359,115 +282,24 @@ export const argTypes = {
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 4,
|
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.
|
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
|
```ts
|
||||||
import { HttpResponse, http } from 'msw';
|
import { rest } from 'msw';
|
||||||
export const handlers = [
|
export const handlers = [
|
||||||
http.post('/api/notes/timeline', ({ request }) => {
|
rest.post('/api/notes/timeline', (req, res, ctx) => {
|
||||||
return HttpResponse.json([]);
|
return res(
|
||||||
|
ctx.json([]),
|
||||||
|
);
|
||||||
}),
|
}),
|
||||||
];
|
];
|
||||||
```
|
```
|
||||||
|
|
||||||
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
|
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
|
||||||
|
|
||||||
## Nest
|
|
||||||
|
|
||||||
### Nest Service Circular dependency / Nestでサービスの循環参照でエラーが起きた場合
|
|
||||||
|
|
||||||
#### forwardRef
|
|
||||||
まずは簡単に`forwardRef`を試してみる
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
export class FooService {
|
|
||||||
constructor(
|
|
||||||
@Inject(forwardRef(() => BarService))
|
|
||||||
private barService: BarService
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### OnModuleInit
|
|
||||||
できなければ`OnModuleInit`を使う
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
|
||||||
import { ModuleRef } from '@nestjs/core';
|
|
||||||
import { BarService } from '@/core/BarService';
|
|
||||||
|
|
||||||
@Injectable()
|
|
||||||
export class FooService implements OnModuleInit {
|
|
||||||
private barService: BarService // constructorから移動してくる
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
private moduleRef: ModuleRef,
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
async onModuleInit() {
|
|
||||||
this.barService = this.moduleRef.get(BarService.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async niceMethod() {
|
|
||||||
return await this.barService.incredibleMethod({ hoge: 'fuga' });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Service Unit Test
|
|
||||||
テストで`onModuleInit`を呼び出す必要がある
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
// import ...
|
|
||||||
|
|
||||||
describe('test', () => {
|
|
||||||
let app: TestingModule;
|
|
||||||
let fooService: FooService; // for test case
|
|
||||||
let barService: BarService; // for test case
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
app = await Test.createTestingModule({
|
|
||||||
imports: ...,
|
|
||||||
providers: [
|
|
||||||
FooService,
|
|
||||||
{ // mockする (mockは必須ではないかもしれない)
|
|
||||||
provide: BarService,
|
|
||||||
useFactory: () => ({
|
|
||||||
incredibleMethod: jest.fn(),
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
{ // Provideにする
|
|
||||||
provide: BarService.name,
|
|
||||||
useExisting: BarService,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.useMocker(...
|
|
||||||
.compile();
|
|
||||||
|
|
||||||
fooService = app.get<FooService>(FooService);
|
|
||||||
barService = app.get<BarService>(BarService) as jest.Mocked<BarService>;
|
|
||||||
|
|
||||||
// onModuleInitを実行する
|
|
||||||
await fooService.onModuleInit();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('nice', () => {
|
|
||||||
await fooService.niceMethod();
|
|
||||||
|
|
||||||
expect(barService.incredibleMethod).toHaveBeenCalled();
|
|
||||||
expect(barService.incredibleMethod.mock.lastCall![0])
|
|
||||||
.toEqual({ hoge: 'fuga' });
|
|
||||||
});
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
### Misskeyのドメイン固有の概念は`Mi`をprefixする
|
### Misskeyのドメイン固有の概念は`Mi`をprefixする
|
||||||
|
@ -577,7 +409,7 @@ https://github.com/misskey-dev/misskey/pull/10082
|
||||||
|
|
||||||
テキストhogeおよびfugaについて、片方を必須としつつ両方の指定もありうる場合:
|
テキストhogeおよびfugaについて、片方を必須としつつ両方の指定もありうる場合:
|
||||||
|
|
||||||
```ts
|
```
|
||||||
export const paramDef = {
|
export const paramDef = {
|
||||||
type: 'object',
|
type: 'object',
|
||||||
properties: {
|
properties: {
|
||||||
|
@ -607,24 +439,3 @@ marginはそのコンポーネントを使う側が設定する
|
||||||
|
|
||||||
### indexというファイル名を使うな
|
### indexというファイル名を使うな
|
||||||
ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる
|
ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる
|
||||||
|
|
||||||
## CSS Recipe
|
|
||||||
|
|
||||||
### Lighten CSS vars
|
|
||||||
|
|
||||||
``` css
|
|
||||||
color: hsl(from var(--MI_THEME-accent) h s calc(l + 10));
|
|
||||||
```
|
|
||||||
|
|
||||||
### Darken CSS vars
|
|
||||||
|
|
||||||
``` css
|
|
||||||
color: hsl(from var(--MI_THEME-accent) h s calc(l - 10));
|
|
||||||
```
|
|
||||||
|
|
||||||
### Add alpha to CSS vars
|
|
||||||
|
|
||||||
``` css
|
|
||||||
color: color(from var(--MI_THEME-accent) srgb r g b / 0.5);
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
2
COPYING
2
COPYING
|
@ -1,5 +1,5 @@
|
||||||
Unless otherwise stated this repository is
|
Unless otherwise stated this repository is
|
||||||
Copyright © 2014-2024 syuilo and contributors
|
Copyright © 2014-2023 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.
|
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.
|
||||||
|
|
||||||
|
|
29
Dockerfile
29
Dockerfile
|
@ -1,6 +1,6 @@
|
||||||
# syntax = docker/dockerfile:1.4
|
# syntax = docker/dockerfile:1.4
|
||||||
|
|
||||||
ARG NODE_VERSION=20.16.0-bullseye
|
ARG NODE_VERSION=20.5.1-bullseye
|
||||||
|
|
||||||
# build assets & compile TypeScript
|
# build assets & compile TypeScript
|
||||||
|
|
||||||
|
@ -21,21 +21,17 @@ WORKDIR /misskey
|
||||||
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
||||||
COPY --link ["scripts", "./scripts"]
|
COPY --link ["scripts", "./scripts"]
|
||||||
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
||||||
COPY --link ["packages/frontend-shared/package.json", "./packages/frontend-shared/"]
|
|
||||||
COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
|
COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
|
||||||
COPY --link ["packages/frontend-embed/package.json", "./packages/frontend-embed/"]
|
|
||||||
COPY --link ["packages/sw/package.json", "./packages/sw/"]
|
COPY --link ["packages/sw/package.json", "./packages/sw/"]
|
||||||
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
|
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
|
||||||
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
|
|
||||||
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
|
|
||||||
|
|
||||||
ARG NODE_ENV=production
|
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
||||||
pnpm i --frozen-lockfile --aggregate-output
|
pnpm i --frozen-lockfile --aggregate-output
|
||||||
|
|
||||||
COPY --link . ./
|
COPY --link . ./
|
||||||
|
|
||||||
|
ARG NODE_ENV=production
|
||||||
|
|
||||||
RUN git submodule update --init
|
RUN git submodule update --init
|
||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
RUN rm -rf .git/
|
RUN rm -rf .git/
|
||||||
|
@ -55,11 +51,6 @@ WORKDIR /misskey
|
||||||
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
||||||
COPY --link ["scripts", "./scripts"]
|
COPY --link ["scripts", "./scripts"]
|
||||||
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
||||||
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
|
|
||||||
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
|
|
||||||
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
|
|
||||||
|
|
||||||
ARG NODE_ENV=production
|
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
||||||
pnpm i --frozen-lockfile --aggregate-output
|
pnpm i --frozen-lockfile --aggregate-output
|
||||||
|
@ -76,27 +67,17 @@ RUN apt-get update \
|
||||||
&& corepack enable \
|
&& corepack enable \
|
||||||
&& groupadd -g "${GID}" misskey \
|
&& groupadd -g "${GID}" misskey \
|
||||||
&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
|
&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
|
||||||
&& find / -type d -path /sys -prune -o -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 /u+s -ignore_readdir_race -exec chmod u-s {} \; \
|
||||||
&& find / -type d -path /sys -prune -o -type d -path /proc -prune -o -type f -perm /g+s -ignore_readdir_race -exec chmod g-s {} \; \
|
&& find / -type d -path /proc -prune -o -type f -perm /g+s -ignore_readdir_race -exec chmod g-s {} \; \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists
|
&& rm -rf /var/lib/apt/lists
|
||||||
|
|
||||||
USER misskey
|
USER misskey
|
||||||
WORKDIR /misskey
|
WORKDIR /misskey
|
||||||
|
|
||||||
# add package.json to add pnpm
|
|
||||||
COPY --chown=misskey:misskey ./package.json ./package.json
|
|
||||||
RUN corepack install
|
|
||||||
|
|
||||||
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
|
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=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules
|
|
||||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-reversi/node_modules ./packages/misskey-reversi/node_modules
|
|
||||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-bubble-game/node_modules ./packages/misskey-bubble-game/node_modules
|
|
||||||
COPY --chown=misskey:misskey --from=native-builder /misskey/built ./built
|
COPY --chown=misskey:misskey --from=native-builder /misskey/built ./built
|
||||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-js/built ./packages/misskey-js/built
|
|
||||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-reversi/built ./packages/misskey-reversi/built
|
|
||||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-bubble-game/built ./packages/misskey-bubble-game/built
|
|
||||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/backend/built ./packages/backend/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 --from=native-builder /misskey/fluent-emojis /misskey/fluent-emojis
|
||||||
COPY --chown=misskey:misskey . ./
|
COPY --chown=misskey:misskey . ./
|
||||||
|
|
49
README.md
49
README.md
|
@ -1,18 +1,16 @@
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://misskey-hub.net">
|
<a href="https://misskey-hub.net">
|
||||||
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="300"/>
|
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="400"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
**🌎 **Misskey** is an open source, federated social media platform that's free forever! 🚀**
|
**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀**
|
||||||
|
|
||||||
[Learn more](https://misskey-hub.net/)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<a href="https://misskey-hub.net/servers/">
|
<a href="https://misskey-hub.net/instances.html">
|
||||||
<img src="https://custom-icon-badges.herokuapp.com/badge/find_an-instance-acea31?logoColor=acea31&style=for-the-badge&logo=misskey&labelColor=363B40" alt="find an instance"/></a>
|
<img src="https://custom-icon-badges.herokuapp.com/badge/find_an-instance-acea31?logoColor=acea31&style=for-the-badge&logo=misskey&labelColor=363B40" alt="find an instance"/></a>
|
||||||
|
|
||||||
<a href="https://misskey-hub.net/docs/for-admin/install/guides/">
|
<a href="https://misskey-hub.net/docs/install.html">
|
||||||
<img src="https://custom-icon-badges.herokuapp.com/badge/create_an-instance-FBD53C?logoColor=FBD53C&style=for-the-badge&logo=server&labelColor=363B40" alt="create an instance"/></a>
|
<img src="https://custom-icon-badges.herokuapp.com/badge/create_an-instance-FBD53C?logoColor=FBD53C&style=for-the-badge&logo=server&labelColor=363B40" alt="create an instance"/></a>
|
||||||
|
|
||||||
<a href="./CONTRIBUTING.md">
|
<a href="./CONTRIBUTING.md">
|
||||||
|
@ -24,14 +22,45 @@
|
||||||
<a href="https://www.patreon.com/syuilo">
|
<a href="https://www.patreon.com/syuilo">
|
||||||
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
|
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[![codecov](https://codecov.io/gh/misskey-dev/misskey/branch/develop/graph/badge.svg?token=R6IQZ3QJOL)](https://codecov.io/gh/misskey-dev/misskey)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<a href="https://xn--931a.moe/"><img src="https://github.com/misskey-dev/misskey/blob/develop/assets/ai.png?raw=true" align="right" height="320px"/></a>
|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
- **ActivityPub support**\
|
||||||
|
Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!
|
||||||
|
- **Reactions**\
|
||||||
|
You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button.
|
||||||
|
- **Drive**\
|
||||||
|
With Misskey's built in drive, you get cloud storage right in your social media, where you can upload any files, make folders, and find media from posts you've made!
|
||||||
|
- **Rich Web UI**\
|
||||||
|
Misskey has a rich and easy to use Web UI!
|
||||||
|
It is highly customizable, from changing the layout and adding widgets to making custom themes.
|
||||||
|
Furthermore, plugins can be created using AiScript, an original programming language.
|
||||||
|
- And much more...
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="clear: both;"></div>
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
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>
|
</div>
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
|
|
||||||
<a href="https://sentry.io/"><img src="https://github.com/misskey-dev/misskey/assets/4439005/98576556-222f-467a-94be-e98dbda1d852" height="30" alt="Sentry" /></a>
|
|
||||||
|
|
||||||
Thanks to [Sentry](https://sentry.io/) for providing the error tracking platform that helps us catch unexpected errors.
|
|
||||||
|
|
||||||
<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>
|
<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.
|
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
|
||||||
|
|
|
@ -6,7 +6,6 @@ Also, the later tasks are more indefinite and are subject to change as developme
|
||||||
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
|
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)~~ → Done ✔️
|
||||||
- Make the number of type errors zero (frontend)
|
|
||||||
- Improve CI
|
- Improve CI
|
||||||
- ~~Fix tests~~ → Done ✔️
|
- ~~Fix tests~~ → Done ✔️
|
||||||
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Reporting Security Issues
|
# Reporting Security Issues
|
||||||
|
|
||||||
If you discover a security issue in Misskey, please report it by **[this form](https://github.com/misskey-dev/misskey/security/advisories/new)**.
|
If you discover a security issue in Misskey, please report it by sending an
|
||||||
|
email to [syuilotan@yahoo.co.jp](mailto:syuilotan@yahoo.co.jp).
|
||||||
|
|
||||||
This will allow us to assess the risk, and make a fix available before we add a
|
This will allow us to assess the risk, and make a fix available before we add a
|
||||||
bug report to the GitHub repository.
|
bug report to the GitHub repository.
|
||||||
|
|
|
@ -124,14 +124,6 @@ redis:
|
||||||
# #prefix: example-prefix
|
# #prefix: example-prefix
|
||||||
# #db: 1
|
# #db: 1
|
||||||
|
|
||||||
#redisForReactions:
|
|
||||||
# host: redis
|
|
||||||
# port: 6379
|
|
||||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
|
||||||
# #pass: example-pass
|
|
||||||
# #prefix: example-prefix
|
|
||||||
# #db: 1
|
|
||||||
|
|
||||||
# ┌───────────────────────────┐
|
# ┌───────────────────────────┐
|
||||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||||
|
|
||||||
|
@ -160,22 +152,6 @@ redis:
|
||||||
# ID SETTINGS AFTER THAT!
|
# ID SETTINGS AFTER THAT!
|
||||||
|
|
||||||
id: "aidx"
|
id: "aidx"
|
||||||
|
|
||||||
# ┌────────────────┐
|
|
||||||
#───┘ Error tracking └──────────────────────────────────────────
|
|
||||||
|
|
||||||
# Sentry is available for error tracking.
|
|
||||||
# See the Sentry documentation for more details on options.
|
|
||||||
|
|
||||||
#sentryForBackend:
|
|
||||||
# enableNodeProfiling: true
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
#sentryForFrontend:
|
|
||||||
# options:
|
|
||||||
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
|
|
||||||
|
|
||||||
# ┌─────────────────────┐
|
# ┌─────────────────────┐
|
||||||
#───┘ Other configuration └─────────────────────────────────────
|
#───┘ Other configuration └─────────────────────────────────────
|
||||||
|
|
||||||
|
@ -191,7 +167,7 @@ id: "aidx"
|
||||||
|
|
||||||
# Job rate limiter
|
# Job rate limiter
|
||||||
# deliverJobPerSec: 128
|
# deliverJobPerSec: 128
|
||||||
# inboxJobPerSec: 32
|
# inboxJobPerSec: 16
|
||||||
|
|
||||||
# Job attempts
|
# Job attempts
|
||||||
# deliverJobMaxAttempts: 12
|
# deliverJobMaxAttempts: 12
|
||||||
|
|
|
@ -27,7 +27,7 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
- name: postgres
|
- name: postgres
|
||||||
image: postgres:15-alpine
|
image: postgres:14-alpine
|
||||||
env:
|
env:
|
||||||
- name: POSTGRES_USER
|
- name: POSTGRES_USER
|
||||||
value: "example-misskey-user"
|
value: "example-misskey-user"
|
||||||
|
@ -38,7 +38,7 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5432
|
- containerPort: 5432
|
||||||
- name: redis
|
- name: redis
|
||||||
image: redis:7-alpine
|
image: redis:alpine
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 6379
|
- containerPort: 6379
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
# このconfigは、 dockerでMisskey本体を起動せず、 redisとpostgresql などだけを起動します
|
|
||||||
|
|
||||||
services:
|
|
||||||
redis:
|
|
||||||
restart: always
|
|
||||||
image: redis:7-alpine
|
|
||||||
ports:
|
|
||||||
- "6379:6379"
|
|
||||||
volumes:
|
|
||||||
- ./redis:/data
|
|
||||||
healthcheck:
|
|
||||||
test: "redis-cli ping"
|
|
||||||
interval: 5s
|
|
||||||
retries: 20
|
|
||||||
|
|
||||||
db:
|
|
||||||
restart: always
|
|
||||||
image: postgres:15-alpine
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
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
|
|
||||||
# volumes:
|
|
||||||
# - ./meili_data:/meili_data
|
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
describe('Before setup instance', () => {
|
describe('Before setup instance', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.resetState();
|
cy.resetState();
|
||||||
|
@ -23,7 +18,6 @@ describe('Before setup instance', () => {
|
||||||
|
|
||||||
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
|
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
|
||||||
|
|
||||||
cy.get('[data-cy-admin-initial-password] input').type('example_password_please_change_this_or_you_will_get_hacked');
|
|
||||||
cy.get('[data-cy-admin-username] input').type('admin');
|
cy.get('[data-cy-admin-username] input').type('admin');
|
||||||
cy.get('[data-cy-admin-password] input').type('admin1234');
|
cy.get('[data-cy-admin-password] input').type('admin1234');
|
||||||
cy.get('[data-cy-admin-ok]').click();
|
cy.get('[data-cy-admin-ok]').click();
|
||||||
|
@ -120,16 +114,11 @@ describe('After user signup', () => {
|
||||||
it('signin', () => {
|
it('signin', () => {
|
||||||
cy.visitHome();
|
cy.visitHome();
|
||||||
|
|
||||||
cy.intercept('POST', '/api/signin-flow').as('signin');
|
cy.intercept('POST', '/api/signin').as('signin');
|
||||||
|
|
||||||
cy.get('[data-cy-signin]').click();
|
cy.get('[data-cy-signin]').click();
|
||||||
|
cy.get('[data-cy-signin-username] input').type('alice');
|
||||||
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
|
// Enterキーでサインインできるかの確認も兼ねる
|
||||||
// Enterキーで続行できるかの確認も兼ねる
|
|
||||||
cy.get('[data-cy-signin-username] input').type('alice{enter}');
|
|
||||||
|
|
||||||
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
|
|
||||||
// Enterキーで続行できるかの確認も兼ねる
|
|
||||||
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
||||||
|
|
||||||
cy.wait('@signin');
|
cy.wait('@signin');
|
||||||
|
@ -144,9 +133,8 @@ describe('After user signup', () => {
|
||||||
cy.visitHome();
|
cy.visitHome();
|
||||||
|
|
||||||
cy.get('[data-cy-signin]').click();
|
cy.get('[data-cy-signin]').click();
|
||||||
|
cy.get('[data-cy-signin-username] input').type('alice');
|
||||||
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
|
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
||||||
cy.get('[data-cy-signin-username] input').type('alice{enter}');
|
|
||||||
|
|
||||||
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
|
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
|
||||||
cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi);
|
cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi);
|
||||||
|
@ -173,13 +161,11 @@ describe('After user signed in', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('successfully loads', () => {
|
it('successfully loads', () => {
|
||||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
cy.get('[data-cy-user-setup-continue]').should('be.visible');
|
||||||
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).should('be.visible');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('account setup wizard', () => {
|
it('account setup wizard', () => {
|
||||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
cy.get('[data-cy-user-setup-continue]').click();
|
||||||
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).click();
|
|
||||||
|
|
||||||
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
|
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
|
||||||
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
|
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
|
||||||
|
@ -216,8 +202,7 @@ describe('After user setup', () => {
|
||||||
cy.login('alice', 'alice1234');
|
cy.login('alice', 'alice1234');
|
||||||
|
|
||||||
// アカウント初期設定ウィザード
|
// アカウント初期設定ウィザード
|
||||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]').click();
|
||||||
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 30000 }).click();
|
|
||||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
cy.get('[data-cy-modal-dialog-ok]').click();
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
describe('Router transition', () => {
|
|
||||||
describe('Redirect', () => {
|
|
||||||
// サーバの初期化。ルートのテストに関しては各describeごとに1度だけ実行で十分だと思う(使いまわした方が早い)
|
|
||||||
before(() => {
|
|
||||||
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]', { timeout: 30000 }).click();
|
|
||||||
cy.wait(500);
|
|
||||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('redirect to user profile', () => {
|
|
||||||
// テストのためだけに用意されたリダイレクト用ルートに飛ぶ
|
|
||||||
cy.visit('/redirect-test');
|
|
||||||
|
|
||||||
// プロフィールページのURLであることを確認する
|
|
||||||
cy.url().should('include', '/@alice')
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,8 +1,3 @@
|
||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* flaky
|
/* flaky
|
||||||
describe('After user signed in', () => {
|
describe('After user signed in', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
|
@ -30,13 +30,9 @@ Cypress.Commands.add('visitHome', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
Cypress.Commands.add('resetState', () => {
|
Cypress.Commands.add('resetState', () => {
|
||||||
// iframe.contentWindow.indexedDB.deleteDatabase() がchromeのバグで使用できないため、indexedDBを無効化している。
|
cy.window(win => {
|
||||||
// see https://github.com/misskey-dev/misskey/issues/13605#issuecomment-2053652123
|
|
||||||
/*
|
|
||||||
cy.window().then(win => {
|
|
||||||
win.indexedDB.deleteDatabase('keyval-store');
|
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.get('@reset').its('status').should('equal', 204);
|
||||||
cy.reload(true);
|
cy.reload(true);
|
||||||
|
@ -48,19 +44,16 @@ Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
|
||||||
cy.request('POST', route, {
|
cy.request('POST', route, {
|
||||||
username: username,
|
username: username,
|
||||||
password: password,
|
password: password,
|
||||||
...(isAdmin ? { setupPassword: 'example_password_please_change_this_or_you_will_get_hacked' } : {}),
|
|
||||||
}).its('body').as(username);
|
}).its('body').as(username);
|
||||||
});
|
});
|
||||||
|
|
||||||
Cypress.Commands.add('login', (username, password) => {
|
Cypress.Commands.add('login', (username, password) => {
|
||||||
cy.visitHome();
|
cy.visitHome();
|
||||||
|
|
||||||
cy.intercept('POST', '/api/signin-flow').as('signin');
|
cy.intercept('POST', '/api/signin').as('signin');
|
||||||
|
|
||||||
cy.get('[data-cy-signin]').click();
|
cy.get('[data-cy-signin]').click();
|
||||||
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
|
cy.get('[data-cy-signin-username] input').type(username);
|
||||||
cy.get('[data-cy-signin-username] input').type(`${username}{enter}`);
|
|
||||||
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
|
|
||||||
cy.get('[data-cy-signin-password] input').type(`${password}{enter}`);
|
cy.get('[data-cy-signin-password] input').type(`${password}{enter}`);
|
||||||
|
|
||||||
cy.wait('@signin').as('signedIn');
|
cy.wait('@signin').as('signedIn');
|
|
@ -1,19 +0,0 @@
|
||||||
declare global {
|
|
||||||
namespace Cypress {
|
|
||||||
interface Chainable {
|
|
||||||
login(username: string, password: string): Chainable<void>;
|
|
||||||
|
|
||||||
registerUser(
|
|
||||||
username: string,
|
|
||||||
password: string,
|
|
||||||
isAdmin?: boolean
|
|
||||||
): Chainable<void>;
|
|
||||||
|
|
||||||
resetState(): Chainable<void>;
|
|
||||||
|
|
||||||
visitHome(): Chainable<void>;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export {}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"lib": ["dom", "es5"],
|
|
||||||
"target": "es5",
|
|
||||||
"types": ["cypress", "node"]
|
|
||||||
},
|
|
||||||
"include": ["./**/*.ts"]
|
|
||||||
}
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
version: "3"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
|
@ -5,7 +7,6 @@ services:
|
||||||
links:
|
links:
|
||||||
- db
|
- db
|
||||||
- redis
|
- redis
|
||||||
# - mcaptcha
|
|
||||||
# - meilisearch
|
# - meilisearch
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
|
@ -17,8 +18,6 @@ services:
|
||||||
networks:
|
networks:
|
||||||
- internal_network
|
- internal_network
|
||||||
- external_network
|
- external_network
|
||||||
# env_file:
|
|
||||||
# - .config/docker.env
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./files:/misskey/files
|
- ./files:/misskey/files
|
||||||
- ./.config:/misskey/.config:ro
|
- ./.config:/misskey/.config:ro
|
||||||
|
@ -49,36 +48,6 @@ services:
|
||||||
interval: 5s
|
interval: 5s
|
||||||
retries: 20
|
retries: 20
|
||||||
|
|
||||||
# mcaptcha:
|
|
||||||
# restart: always
|
|
||||||
# image: mcaptcha/mcaptcha:latest
|
|
||||||
# networks:
|
|
||||||
# internal_network:
|
|
||||||
# external_network:
|
|
||||||
# aliases:
|
|
||||||
# - localhost
|
|
||||||
# ports:
|
|
||||||
# - 7493:7493
|
|
||||||
# env_file:
|
|
||||||
# - .config/docker.env
|
|
||||||
# environment:
|
|
||||||
# PORT: 7493
|
|
||||||
# MCAPTCHA_redis_URL: "redis://mcaptcha_redis/"
|
|
||||||
# depends_on:
|
|
||||||
# db:
|
|
||||||
# condition: service_healthy
|
|
||||||
# mcaptcha_redis:
|
|
||||||
# condition: service_healthy
|
|
||||||
#
|
|
||||||
# mcaptcha_redis:
|
|
||||||
# image: mcaptcha/cache:latest
|
|
||||||
# networks:
|
|
||||||
# - internal_network
|
|
||||||
# healthcheck:
|
|
||||||
# test: "redis-cli ping"
|
|
||||||
# interval: 5s
|
|
||||||
# retries: 20
|
|
||||||
|
|
||||||
# meilisearch:
|
# meilisearch:
|
||||||
# restart: always
|
# restart: always
|
||||||
# image: getmeili/meilisearch:v1.3.4
|
# image: getmeili/meilisearch:v1.3.4
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: syuilo and misskey-project
|
# SPDX-FileCopyrightText: syuilo and other misskey contributors
|
||||||
# SPDX-License-Identifier: AGPL-3.0-only
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
PORT=$(grep '^port:' /misskey/.config/default.yml | awk 'NR==1{print $2; exit}')
|
PORT=$(grep '^port:' /misskey/.config/default.yml | awk 'NR==1{print $2; exit}')
|
||||||
curl -Sfso/dev/null "http://localhost:${PORT}/healthz"
|
curl -s -S -o /dev/null "http://localhost:${PORT}"
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
<!--
|
|
||||||
SPDX-FileCopyrightText: syuilo and misskey-project
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
-->
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div :class="[$style.root]">
|
|
||||||
<div :inert="disabled" :class="[{ [$style.disabled]: disabled }]">
|
|
||||||
<slot></slot>
|
|
||||||
</div>
|
|
||||||
<div v-if="disabled" :class="[$style.cover]"></div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts" setup>
|
|
||||||
defineProps<{
|
|
||||||
disabled?: boolean;
|
|
||||||
}>();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" module>
|
|
||||||
.root {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.disabled {
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
cursor: not-allowed;
|
|
||||||
--color: color(from var(--MI_THEME-error) srgb r g b / 0.25);
|
|
||||||
background-size: auto auto;
|
|
||||||
background-image: repeating-linear-gradient(135deg, transparent, transparent 10px, var(--color) 4px, var(--color) 14px);
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1 +0,0 @@
|
||||||
使われなくなったけど消すのは勿体ない(将来使えるかもしれない)コードを入れておくとこ
|
|
|
@ -120,10 +120,10 @@ sensitive: "محتوى حساس"
|
||||||
add: "إضافة"
|
add: "إضافة"
|
||||||
reaction: "التفاعلات"
|
reaction: "التفاعلات"
|
||||||
reactions: "التفاعلات"
|
reactions: "التفاعلات"
|
||||||
|
reactionSetting: "التفاعلات المراد عرضها في منتقي التفاعلات."
|
||||||
reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة."
|
reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة."
|
||||||
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||||
attachCancel: "أزل المرفق"
|
attachCancel: "أزل المرفق"
|
||||||
deleteFile: "حُذف الملف"
|
|
||||||
markAsSensitive: "علّمه كمحتوى حساس"
|
markAsSensitive: "علّمه كمحتوى حساس"
|
||||||
unmarkAsSensitive: "ألغ تعيينه كمحتوى حساس"
|
unmarkAsSensitive: "ألغ تعيينه كمحتوى حساس"
|
||||||
enterFileName: "ادخل اسم الملف"
|
enterFileName: "ادخل اسم الملف"
|
||||||
|
@ -361,8 +361,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "فعّل hCaptcha"
|
enableHcaptcha: "فعّل hCaptcha"
|
||||||
hcaptchaSiteKey: "مفتاح الموقع"
|
hcaptchaSiteKey: "مفتاح الموقع"
|
||||||
hcaptchaSecretKey: "المفتاح السري"
|
hcaptchaSecretKey: "المفتاح السري"
|
||||||
mcaptchaSiteKey: "مفتاح الموقع"
|
|
||||||
mcaptchaSecretKey: "المفتاح السري"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "تمكين reCAPTCHA"
|
enableRecaptcha: "تمكين reCAPTCHA"
|
||||||
recaptchaSiteKey: "مفتاح الموقع"
|
recaptchaSiteKey: "مفتاح الموقع"
|
||||||
|
@ -420,6 +418,7 @@ share: "شارِك"
|
||||||
notFound: "غير موجود"
|
notFound: "غير موجود"
|
||||||
notFoundDescription: "تعذر العثور على صفحة يقود إليها هذا الرابط."
|
notFoundDescription: "تعذر العثور على صفحة يقود إليها هذا الرابط."
|
||||||
uploadFolder: "المجلد الافتراضي للرفع"
|
uploadFolder: "المجلد الافتراضي للرفع"
|
||||||
|
cacheClear: "مسح ذاكرة التخزين المؤقت"
|
||||||
markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة"
|
markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة"
|
||||||
markAsReadAllUnreadNotes: "علّم جميع الملاحظات كمقروءة"
|
markAsReadAllUnreadNotes: "علّم جميع الملاحظات كمقروءة"
|
||||||
markAsReadAllTalkMessages: "علّم جميع الرسائل كمقروءة"
|
markAsReadAllTalkMessages: "علّم جميع الرسائل كمقروءة"
|
||||||
|
@ -626,7 +625,10 @@ abuseReported: "أُرسل البلاغ، شكرًا لك"
|
||||||
reporter: "المُبلّغ"
|
reporter: "المُبلّغ"
|
||||||
reporteeOrigin: "أصل البلاغ"
|
reporteeOrigin: "أصل البلاغ"
|
||||||
reporterOrigin: "أصل المُبلّغ"
|
reporterOrigin: "أصل المُبلّغ"
|
||||||
|
forwardReport: "وجّه البلاغ إلى المثيل البعيد"
|
||||||
|
forwardReportIsAnonymous: "في المثيل البعيد سيظهر المبلّغ كحساب مجهول."
|
||||||
send: "أرسل"
|
send: "أرسل"
|
||||||
|
abuseMarkAsResolved: "علّم البلاغ كمحلول"
|
||||||
openInNewTab: "افتح في لسان جديد"
|
openInNewTab: "افتح في لسان جديد"
|
||||||
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
|
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
|
||||||
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
|
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
|
||||||
|
@ -816,6 +818,8 @@ makeReactionsPublicDescription: "هذا سيجعل قائمة تفاعلاتك
|
||||||
classic: "تقليدي"
|
classic: "تقليدي"
|
||||||
muteThread: "اكتم النقاش"
|
muteThread: "اكتم النقاش"
|
||||||
unmuteThread: "ارفع الكتم عن النقاش"
|
unmuteThread: "ارفع الكتم عن النقاش"
|
||||||
|
ffVisibility: "مرئية المتابِعين/المتابَعين"
|
||||||
|
ffVisibilityDescription: "يسمح لك بتحديد من يمكنهم رؤية متابِعيك ومتابَعيك."
|
||||||
continueThread: "اعرض بقية النقاش"
|
continueThread: "اعرض بقية النقاش"
|
||||||
deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟"
|
deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟"
|
||||||
incorrectPassword: "كلمة السر خاطئة."
|
incorrectPassword: "كلمة السر خاطئة."
|
||||||
|
@ -944,12 +948,9 @@ rolesAssignedToMe: "الأدوار المسندة إلي"
|
||||||
resetPasswordConfirm: "هل تريد إعادة تعيين كلمة السر؟"
|
resetPasswordConfirm: "هل تريد إعادة تعيين كلمة السر؟"
|
||||||
license: "الرخصة"
|
license: "الرخصة"
|
||||||
unfavoriteConfirm: "أتريد إزالتها من المفضلة؟"
|
unfavoriteConfirm: "أتريد إزالتها من المفضلة؟"
|
||||||
reactionsDisplaySize: "حجم التفاعلات"
|
|
||||||
limitWidthOfReaction: "تصغير حجم التفاعلات"
|
|
||||||
noteIdOrUrl: "معرف الملاحظة أو رابطها"
|
noteIdOrUrl: "معرف الملاحظة أو رابطها"
|
||||||
video: "فيديو"
|
video: "فيديو"
|
||||||
videos: "فيديوهات"
|
videos: "فيديوهات"
|
||||||
dataSaver: "موفر البيانات"
|
|
||||||
accountMigration: "ترحيل الحساب"
|
accountMigration: "ترحيل الحساب"
|
||||||
accountMoved: "نقل هذا المستخدم حسابه:"
|
accountMoved: "نقل هذا المستخدم حسابه:"
|
||||||
accountMovedShort: "رُحل هذا الحساب."
|
accountMovedShort: "رُحل هذا الحساب."
|
||||||
|
@ -957,7 +958,6 @@ operationForbidden: "عملية ممنوعة"
|
||||||
forceShowAds: "أظهر الإعلانات التجارية دائما"
|
forceShowAds: "أظهر الإعلانات التجارية دائما"
|
||||||
reactionsList: "التفاعلات"
|
reactionsList: "التفاعلات"
|
||||||
renotesList: "إعادات النشر"
|
renotesList: "إعادات النشر"
|
||||||
notificationDisplay: "إشعارات"
|
|
||||||
leftTop: "أعلى اليسار"
|
leftTop: "أعلى اليسار"
|
||||||
rightTop: "أعلى اليمين"
|
rightTop: "أعلى اليمين"
|
||||||
leftBottom: "أسفل اليسار"
|
leftBottom: "أسفل اليسار"
|
||||||
|
@ -980,7 +980,6 @@ thisChannelArchived: "أُرشفت هذه القناة."
|
||||||
displayOfNote: "عرض الملاحظة"
|
displayOfNote: "عرض الملاحظة"
|
||||||
initialAccountSetting: "إعداد الملف الشخصي"
|
initialAccountSetting: "إعداد الملف الشخصي"
|
||||||
youFollowing: "متابَع"
|
youFollowing: "متابَع"
|
||||||
preventAiLearning: "منع استخدام البيانات في تعليم الآلة"
|
|
||||||
options: "خيارات"
|
options: "خيارات"
|
||||||
specifyUser: "مستخدم محدد"
|
specifyUser: "مستخدم محدد"
|
||||||
failedToPreviewUrl: "تتعذر المعاينة"
|
failedToPreviewUrl: "تتعذر المعاينة"
|
||||||
|
@ -994,27 +993,13 @@ later: "لاحقاً"
|
||||||
goToMisskey: "لميسكي"
|
goToMisskey: "لميسكي"
|
||||||
additionalEmojiDictionary: "قواميس إيموجي إضافية"
|
additionalEmojiDictionary: "قواميس إيموجي إضافية"
|
||||||
installed: "مُثبت"
|
installed: "مُثبت"
|
||||||
enableServerMachineStats: "نشر إحصائيات عتاد الخادم"
|
|
||||||
turnOffToImprovePerformance: "تفعيله قد يزيد الأداء."
|
|
||||||
createInviteCode: "ولِّد دعوة"
|
|
||||||
inviteCodeCreated: "ولِّدت دعوة"
|
|
||||||
inviteLimitExceeded: "وصلتَ لحد عدد الدعوات المسموح لك توليدها."
|
|
||||||
createLimitRemaining: "حد عدد الدعوات: {limit} دعوة"
|
|
||||||
expirationDate: "تاريخ انتهاء الصلاحية"
|
expirationDate: "تاريخ انتهاء الصلاحية"
|
||||||
noExpirationDate: "لا نهاية لصلاحيتها"
|
|
||||||
inviteCodeUsedAt: "اُستخدم رمز الدعوة في"
|
|
||||||
registeredUserUsingInviteCode: "اِستخدم رمز الدعوة"
|
|
||||||
unused: "غير مستعمَل"
|
unused: "غير مستعمَل"
|
||||||
expired: "منتهية صلاحيته"
|
expired: "منتهية صلاحيته"
|
||||||
icon: "الصورة الرمزية"
|
icon: "الصورة الرمزية"
|
||||||
replies: "رد"
|
replies: "رد"
|
||||||
renotes: "أعد النشر"
|
renotes: "أعد النشر"
|
||||||
sourceCode: "الشفرة المصدرية"
|
|
||||||
flip: "اقلب"
|
flip: "اقلب"
|
||||||
lastNDays: "آخر {n} أيام"
|
|
||||||
surrender: "ألغِ"
|
|
||||||
_delivery:
|
|
||||||
stop: "مُعلّق"
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "نجح إنشاء حسابك!"
|
accountCreated: "نجح إنشاء حسابك!"
|
||||||
letsStartAccountSetup: "إذا كنت جديدًا لنعدّ حسابك الشخصي."
|
letsStartAccountSetup: "إذا كنت جديدًا لنعدّ حسابك الشخصي."
|
||||||
|
@ -1252,12 +1237,15 @@ _theme:
|
||||||
buttonBg: "خلفية الأزرار"
|
buttonBg: "خلفية الأزرار"
|
||||||
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
|
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
|
||||||
inputBorder: "حواف حقل الإدخال"
|
inputBorder: "حواف حقل الإدخال"
|
||||||
|
listItemHoverBg: "خلفية عناصر القائمة (عند التمرير فوقها)"
|
||||||
driveFolderBg: "خلفية مجلد قرص التخزين"
|
driveFolderBg: "خلفية مجلد قرص التخزين"
|
||||||
messageBg: "خلفية المحادثة"
|
messageBg: "خلفية المحادثة"
|
||||||
_sfx:
|
_sfx:
|
||||||
note: "الملاحظات"
|
note: "الملاحظات"
|
||||||
noteMy: "ملاحظتي"
|
noteMy: "ملاحظتي"
|
||||||
notification: "الإشعارات"
|
notification: "الإشعارات"
|
||||||
|
antenna: "الهوائيات"
|
||||||
|
channel: "إشعارات القنات"
|
||||||
_ago:
|
_ago:
|
||||||
future: "المستقبَل"
|
future: "المستقبَل"
|
||||||
justNow: "اللحظة"
|
justNow: "اللحظة"
|
||||||
|
@ -1274,6 +1262,9 @@ _time:
|
||||||
minute: "د"
|
minute: "د"
|
||||||
hour: "سا"
|
hour: "سا"
|
||||||
day: "ي"
|
day: "ي"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "كيف تستخدم Misskey"
|
||||||
|
step3_1: "هل نشرت ملاحظتك الأولى؟"
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين."
|
alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين."
|
||||||
step1: "أولًا ثبّت تطبيق استيثاق على جهازك (مثل {a} و{b})."
|
step1: "أولًا ثبّت تطبيق استيثاق على جهازك (مثل {a} و{b})."
|
||||||
|
@ -1416,7 +1407,6 @@ _profile:
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "كل الملاحظات"
|
allNotes: "كل الملاحظات"
|
||||||
favoritedNotes: " الملاحظات المفضلة"
|
favoritedNotes: " الملاحظات المفضلة"
|
||||||
clips: "مِشبك"
|
|
||||||
followingList: "المتابَعون"
|
followingList: "المتابَعون"
|
||||||
muteList: "المستخدمون المكتومون"
|
muteList: "المستخدمون المكتومون"
|
||||||
blockingList: "المستخدمون المحجوبون"
|
blockingList: "المستخدمون المحجوبون"
|
||||||
|
@ -1529,7 +1519,6 @@ _notification:
|
||||||
reaction: "التفاعل"
|
reaction: "التفاعل"
|
||||||
receiveFollowRequest: "طلبات المتابعة"
|
receiveFollowRequest: "طلبات المتابعة"
|
||||||
followRequestAccepted: "طلبات المتابعة المقبولة"
|
followRequestAccepted: "طلبات المتابعة المقبولة"
|
||||||
login: "لِج"
|
|
||||||
app: "إشعارات التطبيقات المرتبطة"
|
app: "إشعارات التطبيقات المرتبطة"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "تابعك بالمثل"
|
followBack: "تابعك بالمثل"
|
||||||
|
@ -1561,27 +1550,6 @@ _webhookSettings:
|
||||||
active: "مُفعّل"
|
active: "مُفعّل"
|
||||||
_events:
|
_events:
|
||||||
reaction: "عند التفاعل"
|
reaction: "عند التفاعل"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "البريد الإلكتروني "
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "علِق"
|
suspend: "علِق"
|
||||||
deleteDriveFile: "حُذف الملف"
|
|
||||||
deleteNote: "حُذفت الملاحظة"
|
|
||||||
createGlobalAnnouncement: "أُنشئ إعلان عام"
|
|
||||||
createUserAnnouncement: "أُنشئ إعلان مستخدم"
|
|
||||||
updateGlobalAnnouncement: "حُدث إعلان عام"
|
|
||||||
updateUserAnnouncement: "حُدث إعلان مستخدم"
|
|
||||||
resetPassword: "أعد تعيين كلمتك السرية"
|
resetPassword: "أعد تعيين كلمتك السرية"
|
||||||
createInvitation: "ولِّد دعوة"
|
|
||||||
_reversi:
|
|
||||||
total: "المجموع"
|
|
||||||
lookingForPlayer: "يبحث عن خصم..."
|
|
||||||
gameCanceled: "أُلغيت اللعبة."
|
|
||||||
opponentHasSettingsChanged: "غيَر الخصم إعدادته."
|
|
||||||
showBoardLabels: "اعرض ترقيم الصفوف والأعمدة على اللوح"
|
|
||||||
useAvatarAsStone: "حوَل الحجارة إلى صور مستخدمين"
|
|
||||||
_offlineScreen:
|
|
||||||
title: "غير متصل - يتعذر الاتصال بالخادم"
|
|
||||||
header: "يتعذر الاتصال بالخادم"
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
_lang_: "বাংলা"
|
_lang_: "বাংলা"
|
||||||
headlineMisskey: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক"
|
headlineMisskey: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক"
|
||||||
introMisskey: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n"
|
introMisskey: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n"
|
||||||
poweredByMisskeyDescription: "{name} হল ওপেন সোর্স প্ল্যাটফর্ম <b>Misskey</b>-এর সার্ভারগুলির একটি৷"
|
|
||||||
monthAndDay: "{day}/{month}"
|
monthAndDay: "{day}/{month}"
|
||||||
search: "খুঁজুন"
|
search: "খুঁজুন"
|
||||||
notifications: "বিজ্ঞপ্তি"
|
notifications: "বিজ্ঞপ্তি"
|
||||||
|
@ -13,14 +12,12 @@ fetchingAsApObject: "ফেডিভার্স থেকে খবর আন
|
||||||
ok: "ঠিক"
|
ok: "ঠিক"
|
||||||
gotIt: "বুঝেছি"
|
gotIt: "বুঝেছি"
|
||||||
cancel: "বাতিল"
|
cancel: "বাতিল"
|
||||||
noThankYou: "না, ধন্যবাদ"
|
|
||||||
enterUsername: "ইউজারনেম লিখুন"
|
enterUsername: "ইউজারনেম লিখুন"
|
||||||
renotedBy: "{user} রিনোট করেছেন"
|
renotedBy: "{user} রিনোট করেছেন"
|
||||||
noNotes: "কোন নোট নেই"
|
noNotes: "কোন নোট নেই"
|
||||||
noNotifications: "কোনো বিজ্ঞপ্তি নেই"
|
noNotifications: "কোনো বিজ্ঞপ্তি নেই"
|
||||||
instance: "ইন্সট্যান্স"
|
instance: "ইন্সট্যান্স"
|
||||||
settings: "সেটিংস"
|
settings: "সেটিংস"
|
||||||
notificationSettings: "বিজ্ঞপ্তির সেটিংস"
|
|
||||||
basicSettings: "সাধারণ সেটিংস"
|
basicSettings: "সাধারণ সেটিংস"
|
||||||
otherSettings: "অন্যান্য সেটিংস"
|
otherSettings: "অন্যান্য সেটিংস"
|
||||||
openInWindow: "নতুন উইন্ডোতে খুলা"
|
openInWindow: "নতুন উইন্ডোতে খুলা"
|
||||||
|
@ -45,20 +42,12 @@ pin: "পিন করা"
|
||||||
unpin: "পিন সরান"
|
unpin: "পিন সরান"
|
||||||
copyContent: "বিষয়বস্তু কপি করুন"
|
copyContent: "বিষয়বস্তু কপি করুন"
|
||||||
copyLink: "লিঙ্ক কপি করুন"
|
copyLink: "লিঙ্ক কপি করুন"
|
||||||
copyLinkRenote: "রিনোট লিঙ্ক কপি করুন"
|
|
||||||
delete: "মুছুন"
|
delete: "মুছুন"
|
||||||
deleteAndEdit: "মুছুন এবং সম্পাদনা করুন"
|
deleteAndEdit: "মুছুন এবং সম্পাদনা করুন"
|
||||||
deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।"
|
deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।"
|
||||||
addToList: "লিস্ট এ যোগ করুন"
|
addToList: "লিস্ট এ যোগ করুন"
|
||||||
addToAntenna: "অ্যান্টেনা এ যোগ করুন"
|
|
||||||
sendMessage: "একটি বার্তা পাঠান"
|
sendMessage: "একটি বার্তা পাঠান"
|
||||||
copyRSS: "RSS কপি করুন"
|
|
||||||
copyUsername: "ব্যবহারকারীর নাম কপি করুন"
|
copyUsername: "ব্যবহারকারীর নাম কপি করুন"
|
||||||
copyUserId: "ব্যবহারকারীর ID কপি করুন"
|
|
||||||
copyNoteId: "নোটের ID কপি করুন"
|
|
||||||
copyFileId: "ফাইল ID কপি করুন"
|
|
||||||
copyFolderId: "ফোল্ডার ID কপি করুন"
|
|
||||||
copyProfileUrl: "প্রোফাইল URL কপি করুন"
|
|
||||||
searchUser: "ব্যবহারকারী খুঁজুন..."
|
searchUser: "ব্যবহারকারী খুঁজুন..."
|
||||||
reply: "জবাব"
|
reply: "জবাব"
|
||||||
loadMore: "আরও দেখুন"
|
loadMore: "আরও দেখুন"
|
||||||
|
@ -111,8 +100,6 @@ renoted: "রিনোট করা হয়েছে"
|
||||||
cantRenote: "এই নোটটি রিনোট করা যাবে না।"
|
cantRenote: "এই নোটটি রিনোট করা যাবে না।"
|
||||||
cantReRenote: "রিনোটকে রিনোট করা যাবে না।"
|
cantReRenote: "রিনোটকে রিনোট করা যাবে না।"
|
||||||
quote: "উদ্ধৃতি"
|
quote: "উদ্ধৃতি"
|
||||||
inChannelRenote: "চ্যানেলে রিনোট"
|
|
||||||
inChannelQuote: "চ্যানেলে উদ্ধৃতি"
|
|
||||||
pinnedNote: "পিন করা নোট"
|
pinnedNote: "পিন করা নোট"
|
||||||
pinned: "পিন করা"
|
pinned: "পিন করা"
|
||||||
you: "আপনি"
|
you: "আপনি"
|
||||||
|
@ -121,10 +108,7 @@ sensitive: "সংবেদনশীল বিষয়বস্তু"
|
||||||
add: "যুক্ত করুন"
|
add: "যুক্ত করুন"
|
||||||
reaction: "প্রতিক্রিয়া"
|
reaction: "প্রতিক্রিয়া"
|
||||||
reactions: "প্রতিক্রিয়া"
|
reactions: "প্রতিক্রিয়া"
|
||||||
emojiPicker: "ইমোজি পিকার"
|
reactionSetting: "রিঅ্যাকশন পিকারে যেসকল প্রতিক্রিয়া দেখানো হবে"
|
||||||
pinnedEmojisForReactionSettingDescription: "রিঅ্যাকশন দেয়ার সময় আপনি ইমোজিটিকে পিন করা এবং প্রদর্শিত হওয়ার জন্য সেট করতে পারেন।"
|
|
||||||
pinnedEmojisSettingDescription: "ইমোজি ইনপুট দেয়ার সময় আপনি ইমোজিটিকে পিন করা এবং প্রদর্শিত হওয়ার জন্য সেট করতে পারেন।"
|
|
||||||
emojiPickerDisplay: "পিকার ডিসপ্লে"
|
|
||||||
reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে + টিপুন।"
|
reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে + টিপুন।"
|
||||||
rememberNoteVisibility: "নোটের দৃশ্যমান্যতার সেটিংস মনে রাখুন"
|
rememberNoteVisibility: "নোটের দৃশ্যমান্যতার সেটিংস মনে রাখুন"
|
||||||
attachCancel: "অ্যাটাচমেন্ট সরান "
|
attachCancel: "অ্যাটাচমেন্ট সরান "
|
||||||
|
@ -357,8 +341,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "hCaptcha চালু করুন"
|
enableHcaptcha: "hCaptcha চালু করুন"
|
||||||
hcaptchaSiteKey: "সাইট কী"
|
hcaptchaSiteKey: "সাইট কী"
|
||||||
hcaptchaSecretKey: "সিক্রেট কী"
|
hcaptchaSecretKey: "সিক্রেট কী"
|
||||||
mcaptchaSiteKey: "সাইট কী"
|
|
||||||
mcaptchaSecretKey: "সিক্রেট কী"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "reCAPTCHA চালু করুন"
|
enableRecaptcha: "reCAPTCHA চালু করুন"
|
||||||
recaptchaSiteKey: "সাইট কী"
|
recaptchaSiteKey: "সাইট কী"
|
||||||
|
@ -411,6 +393,7 @@ share: "শেয়ার"
|
||||||
notFound: "পাওয়া যায়নি"
|
notFound: "পাওয়া যায়নি"
|
||||||
notFoundDescription: "এই URL-এর সাথে সম্পর্কিত কোনো পৃষ্ঠা নেই।"
|
notFoundDescription: "এই URL-এর সাথে সম্পর্কিত কোনো পৃষ্ঠা নেই।"
|
||||||
uploadFolder: "আপলোডের জন্য ডিফল্ট ফোল্ডার"
|
uploadFolder: "আপলোডের জন্য ডিফল্ট ফোল্ডার"
|
||||||
|
cacheClear: "ক্যাশ পরিষ্কার করুন"
|
||||||
markAsReadAllNotifications: "সমস্ত বিজ্ঞপ্তিগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
markAsReadAllNotifications: "সমস্ত বিজ্ঞপ্তিগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
||||||
markAsReadAllUnreadNotes: "সমস্ত নোটগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
markAsReadAllUnreadNotes: "সমস্ত নোটগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
||||||
markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হিসাবে চিহ্নিত করুন"
|
markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হিসাবে চিহ্নিত করুন"
|
||||||
|
@ -451,6 +434,7 @@ or: "অথবা"
|
||||||
language: "ভাষা"
|
language: "ভাষা"
|
||||||
uiLanguage: "UI এর ভাষা"
|
uiLanguage: "UI এর ভাষা"
|
||||||
aboutX: "{x} সম্পর্কে"
|
aboutX: "{x} সম্পর্কে"
|
||||||
|
disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
|
||||||
noHistory: "কোনো ইতিহাস নেই"
|
noHistory: "কোনো ইতিহাস নেই"
|
||||||
signinHistory: "প্রবেশ করার ইতিহাস"
|
signinHistory: "প্রবেশ করার ইতিহাস"
|
||||||
doing: "প্রক্রিয়া করছে..."
|
doing: "প্রক্রিয়া করছে..."
|
||||||
|
@ -624,7 +608,10 @@ abuseReported: "আপনার অভিযোগটি দাখিল কর
|
||||||
reporter: "অভিযোগকারী"
|
reporter: "অভিযোগকারী"
|
||||||
reporteeOrigin: "অভিযোগটির উৎস"
|
reporteeOrigin: "অভিযোগটির উৎস"
|
||||||
reporterOrigin: "অভিযোগকারীর উৎস"
|
reporterOrigin: "অভিযোগকারীর উৎস"
|
||||||
|
forwardReport: "রিমোট ইন্সত্যান্সে অভিযোগটি পাঠান"
|
||||||
|
forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন্সত্যান্সে পাঠানো হবে না এবং একটি বেনামী সিস্টেম অ্যাকাউন্ট হিসাবে প্রদর্শিত হবে।"
|
||||||
send: "পাঠান"
|
send: "পাঠান"
|
||||||
|
abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন"
|
||||||
openInNewTab: "নতুন ট্যাবে খুলুন"
|
openInNewTab: "নতুন ট্যাবে খুলুন"
|
||||||
openInSideView: "সাইড ভিউতে খুলুন"
|
openInSideView: "সাইড ভিউতে খুলুন"
|
||||||
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
|
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
|
||||||
|
@ -808,6 +795,8 @@ makeReactionsPublicDescription: "আপনার পূর্ববর্তী
|
||||||
classic: "ক্লাসিক"
|
classic: "ক্লাসিক"
|
||||||
muteThread: "থ্রেড মিউট করুন"
|
muteThread: "থ্রেড মিউট করুন"
|
||||||
unmuteThread: "থ্রেড আনমিউট করুন"
|
unmuteThread: "থ্রেড আনমিউট করুন"
|
||||||
|
ffVisibility: "অনুসরণ/অনুসরণকারীদের দৃশ্যমান্যতা"
|
||||||
|
ffVisibilityDescription: "আপনি কাকে অনুসরণ করেন এবং কে আপনাকে অনুসরণ করে, সেটা কারা দেখতে পাবে তা নির্ধারণ করে।"
|
||||||
continueThread: "আরো থ্রেড দেখুন"
|
continueThread: "আরো থ্রেড দেখুন"
|
||||||
deleteAccountConfirm: "আপনার অ্যাকাউন্ট মুছে ফেলা হবে। ঠিক আছে?"
|
deleteAccountConfirm: "আপনার অ্যাকাউন্ট মুছে ফেলা হবে। ঠিক আছে?"
|
||||||
incorrectPassword: "আপনার দেওয়া পাসওয়ার্ডটি ভুল।"
|
incorrectPassword: "আপনার দেওয়া পাসওয়ার্ডটি ভুল।"
|
||||||
|
@ -851,12 +840,7 @@ youFollowing: "অনুসরণ করা হচ্ছে"
|
||||||
icon: "প্রোফাইল ছবি"
|
icon: "প্রোফাইল ছবি"
|
||||||
replies: "জবাব"
|
replies: "জবাব"
|
||||||
renotes: "রিনোট"
|
renotes: "রিনোট"
|
||||||
sourceCode: "সোর্স কোড"
|
|
||||||
flip: "উল্টান"
|
flip: "উল্টান"
|
||||||
_delivery:
|
|
||||||
stop: "স্থগিত করা হয়েছে"
|
|
||||||
_type:
|
|
||||||
none: "প্রকাশ করা হচ্ছে"
|
|
||||||
_role:
|
_role:
|
||||||
priority: "অগ্রাধিকার"
|
priority: "অগ্রাধিকার"
|
||||||
_priority:
|
_priority:
|
||||||
|
@ -1017,6 +1001,7 @@ _theme:
|
||||||
buttonBg: "বাটনের পটভূমি"
|
buttonBg: "বাটনের পটভূমি"
|
||||||
buttonHoverBg: "বাটনের পটভূমি (হভার)"
|
buttonHoverBg: "বাটনের পটভূমি (হভার)"
|
||||||
inputBorder: "ইনপুট ফিল্ডের বর্ডার"
|
inputBorder: "ইনপুট ফিল্ডের বর্ডার"
|
||||||
|
listItemHoverBg: "লিস্ট আইটেমের পটভূমি (হোভার)"
|
||||||
driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি"
|
driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি"
|
||||||
wallpaperOverlay: "ওয়ালপেপার ওভারলে"
|
wallpaperOverlay: "ওয়ালপেপার ওভারলে"
|
||||||
badge: "ব্যাজ"
|
badge: "ব্যাজ"
|
||||||
|
@ -1028,6 +1013,8 @@ _sfx:
|
||||||
note: "নোটগুলি"
|
note: "নোটগুলি"
|
||||||
noteMy: "নোট (আপনার)"
|
noteMy: "নোট (আপনার)"
|
||||||
notification: "বিজ্ঞপ্তি"
|
notification: "বিজ্ঞপ্তি"
|
||||||
|
antenna: "অ্যান্টেনাগুলি"
|
||||||
|
channel: "চ্যানেলের বিজ্ঞপ্তি"
|
||||||
_ago:
|
_ago:
|
||||||
future: "ভবিষ্যৎ"
|
future: "ভবিষ্যৎ"
|
||||||
justNow: "এইমাত্র"
|
justNow: "এইমাত্র"
|
||||||
|
@ -1051,7 +1038,6 @@ _2fa:
|
||||||
step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।"
|
step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।"
|
||||||
step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।"
|
step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।"
|
||||||
securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷"
|
securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷"
|
||||||
renewTOTPCancel: "না, ধন্যবাদ"
|
|
||||||
_permissions:
|
_permissions:
|
||||||
"read:account": "অ্যাকাউন্টের তথ্য দেখুন"
|
"read:account": "অ্যাকাউন্টের তথ্য দেখুন"
|
||||||
"write:account": "অ্যাকাউন্টের তথ্য সম্পাদন করুন"
|
"write:account": "অ্যাকাউন্টের তথ্য সম্পাদন করুন"
|
||||||
|
@ -1190,7 +1176,6 @@ _profile:
|
||||||
changeBanner: "ব্যানার পরিবর্তন করুন"
|
changeBanner: "ব্যানার পরিবর্তন করুন"
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "সকল নোট"
|
allNotes: "সকল নোট"
|
||||||
clips: "ক্লিপ"
|
|
||||||
followingList: "অনুসরণ করা হচ্ছে"
|
followingList: "অনুসরণ করা হচ্ছে"
|
||||||
muteList: "মিউট"
|
muteList: "মিউট"
|
||||||
blockingList: "ব্লক"
|
blockingList: "ব্লক"
|
||||||
|
@ -1309,7 +1294,6 @@ _notification:
|
||||||
pollEnded: "পোল শেষ"
|
pollEnded: "পোল শেষ"
|
||||||
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
|
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
|
||||||
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
|
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
|
||||||
login: "প্রবেশ করুন"
|
|
||||||
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
|
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "ফলো ব্যাক করেছে"
|
followBack: "ফলো ব্যাক করেছে"
|
||||||
|
@ -1340,12 +1324,6 @@ _deck:
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
name: "নাম"
|
name: "নাম"
|
||||||
active: "চালু"
|
active: "চালু"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "ইমেইল"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "স্থগিত করা"
|
suspend: "স্থগিত করা"
|
||||||
resetPassword: "পাসওয়ার্ড রিসেট করুন"
|
resetPassword: "পাসওয়ার্ড রিসেট করুন"
|
||||||
_reversi:
|
|
||||||
total: "মোট"
|
|
||||||
|
|
2268
locales/ca-ES.yml
2268
locales/ca-ES.yml
File diff suppressed because it is too large
Load diff
|
@ -120,6 +120,7 @@ sensitive: "NSFW"
|
||||||
add: "Přidat"
|
add: "Přidat"
|
||||||
reaction: "Reakce"
|
reaction: "Reakce"
|
||||||
reactions: "Reakce"
|
reactions: "Reakce"
|
||||||
|
reactionSetting: "Reakce zobrazené ve výběru reakcí"
|
||||||
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
|
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
|
||||||
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
|
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
|
||||||
attachCancel: "Odstranit přílohu"
|
attachCancel: "Odstranit přílohu"
|
||||||
|
@ -366,8 +367,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Aktivovat hCaptchu"
|
enableHcaptcha: "Aktivovat hCaptchu"
|
||||||
hcaptchaSiteKey: "Klíč stránky"
|
hcaptchaSiteKey: "Klíč stránky"
|
||||||
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||||
mcaptchaSiteKey: "Klíč stránky"
|
|
||||||
mcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Zapnout ReCAPTCHu"
|
enableRecaptcha: "Zapnout ReCAPTCHu"
|
||||||
recaptchaSiteKey: "Klíč stránky"
|
recaptchaSiteKey: "Klíč stránky"
|
||||||
|
@ -429,6 +428,7 @@ share: "Sdílet"
|
||||||
notFound: "Nenalezeno"
|
notFound: "Nenalezeno"
|
||||||
notFoundDescription: "Nebyla nalezená žádná stránka korespondující se zadanou URL."
|
notFoundDescription: "Nebyla nalezená žádná stránka korespondující se zadanou URL."
|
||||||
uploadFolder: "Výchozí lokace pro upload"
|
uploadFolder: "Výchozí lokace pro upload"
|
||||||
|
cacheClear: "Vymazat cache"
|
||||||
markAsReadAllNotifications: "Označit všechna oznámení za přečtená"
|
markAsReadAllNotifications: "Označit všechna oznámení za přečtená"
|
||||||
markAsReadAllUnreadNotes: "Označit všechny příspěvky za přečtené"
|
markAsReadAllUnreadNotes: "Označit všechny příspěvky za přečtené"
|
||||||
markAsReadAllTalkMessages: "Označit všechny zprávy za přečtené"
|
markAsReadAllTalkMessages: "Označit všechny zprávy za přečtené"
|
||||||
|
@ -471,6 +471,7 @@ uiLanguage: "Jazyk uživatelského rozhraní"
|
||||||
aboutX: "O {x}"
|
aboutX: "O {x}"
|
||||||
emojiStyle: "Styl emoji"
|
emojiStyle: "Styl emoji"
|
||||||
native: "Výchozí"
|
native: "Výchozí"
|
||||||
|
disableDrawer: "Nepoužívat šuplíkové menu"
|
||||||
showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši"
|
showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši"
|
||||||
noHistory: "Žádná historie"
|
noHistory: "Žádná historie"
|
||||||
signinHistory: "Historie přihlášení"
|
signinHistory: "Historie přihlášení"
|
||||||
|
@ -657,7 +658,10 @@ abuseReported: "Nahlášení bylo odesláno. Děkujeme převelice."
|
||||||
reporter: "Nahlásil"
|
reporter: "Nahlásil"
|
||||||
reporteeOrigin: "Původ nahlášení"
|
reporteeOrigin: "Původ nahlášení"
|
||||||
reporterOrigin: "Původ nahlasovače"
|
reporterOrigin: "Původ nahlasovače"
|
||||||
|
forwardReport: "Přeposlat nahlášení do vzdálené instance"
|
||||||
|
forwardReportIsAnonymous: "Místo vašeho účtu se ve vzdálené instanci zobrazí anonymní systémový účet jako nahlašovač."
|
||||||
send: "Odeslat"
|
send: "Odeslat"
|
||||||
|
abuseMarkAsResolved: "Označit nahlášení jako vyřešené"
|
||||||
openInNewTab: "Otevřít v nové kartě"
|
openInNewTab: "Otevřít v nové kartě"
|
||||||
openInSideView: "Otevřít v bočním panelu"
|
openInSideView: "Otevřít v bočním panelu"
|
||||||
defaultNavigationBehaviour: "Výchozí chování navigace"
|
defaultNavigationBehaviour: "Výchozí chování navigace"
|
||||||
|
@ -852,6 +856,8 @@ makeReactionsPublicDescription: "Tohle zviditelný seznam vašich předchozích
|
||||||
classic: "Klasický"
|
classic: "Klasický"
|
||||||
muteThread: "Ztlumit vlákno"
|
muteThread: "Ztlumit vlákno"
|
||||||
unmuteThread: "Zrušit ztlumení vlákna"
|
unmuteThread: "Zrušit ztlumení vlákna"
|
||||||
|
ffVisibility: "Viditelnost Sledovaných/Sledujících"
|
||||||
|
ffVisibilityDescription: "Umožní vám nastavit kdo uvidí koho sledujete a kdo vás sleduje."
|
||||||
continueThread: "Zobrazit pokračování vlákna"
|
continueThread: "Zobrazit pokračování vlákna"
|
||||||
deleteAccountConfirm: "Tohle nenávratně smaže váš účet, chcete pokračovat?"
|
deleteAccountConfirm: "Tohle nenávratně smaže váš účet, chcete pokračovat?"
|
||||||
incorrectPassword: "Nesprávné heslo."
|
incorrectPassword: "Nesprávné heslo."
|
||||||
|
@ -1001,7 +1007,6 @@ resetPasswordConfirm: "Opravdu chcete resetovat heslo?"
|
||||||
sensitiveWords: "Citlivá slova"
|
sensitiveWords: "Citlivá slova"
|
||||||
sensitiveWordsDescription: "Viditelnost všech poznámek obsahujících některé z nakonfigurovaných slov bude automaticky nastavena na \"Domů\". Můžete jich uvést více tak, že je oddělíte pomocí řádků."
|
sensitiveWordsDescription: "Viditelnost všech poznámek obsahujících některé z nakonfigurovaných slov bude automaticky nastavena na \"Domů\". Můžete jich uvést více tak, že je oddělíte pomocí řádků."
|
||||||
sensitiveWordsDescription2: "Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
|
sensitiveWordsDescription2: "Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
|
||||||
prohibitedWordsDescription2: "Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
|
|
||||||
notesSearchNotAvailable: "Vyhledávání poznámek je nedostupné."
|
notesSearchNotAvailable: "Vyhledávání poznámek je nedostupné."
|
||||||
license: "Licence"
|
license: "Licence"
|
||||||
unfavoriteConfirm: "Opravdu chcete odstranit z oblíbených?"
|
unfavoriteConfirm: "Opravdu chcete odstranit z oblíbených?"
|
||||||
|
@ -1091,14 +1096,7 @@ iHaveReadXCarefullyAndAgree: "Přečetl jsem si text \"{x}\" a souhlasím s ním
|
||||||
icon: "Avatar"
|
icon: "Avatar"
|
||||||
replies: "Odpovědět"
|
replies: "Odpovědět"
|
||||||
renotes: "Přeposlat"
|
renotes: "Přeposlat"
|
||||||
sourceCode: "Zdrojový kód"
|
|
||||||
flip: "Otočit"
|
flip: "Otočit"
|
||||||
lastNDays: "Posledních {n} dnů"
|
|
||||||
surrender: "Zrušit"
|
|
||||||
_delivery:
|
|
||||||
stop: "Suspendováno"
|
|
||||||
_type:
|
|
||||||
none: "Publikuji"
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "Váš účet byl úspěšně vytvořen!"
|
accountCreated: "Váš účet byl úspěšně vytvořen!"
|
||||||
letsStartAccountSetup: "Pro začátek si nastavte svůj profil."
|
letsStartAccountSetup: "Pro začátek si nastavte svůj profil."
|
||||||
|
@ -1111,6 +1109,7 @@ _initialAccountSetting:
|
||||||
pushNotificationDescription: "Povolení push oznámení vám umožní přijímat oznámení od {name} přímo ve vašem zařízení."
|
pushNotificationDescription: "Povolení push oznámení vám umožní přijímat oznámení od {name} přímo ve vašem zařízení."
|
||||||
initialAccountSettingCompleted: "Nastavení profilu dokončeno!"
|
initialAccountSettingCompleted: "Nastavení profilu dokončeno!"
|
||||||
haveFun: "Užívejte {name}!"
|
haveFun: "Užívejte {name}!"
|
||||||
|
ifYouNeedLearnMore: "Pokud se chcete dozvědět více o tom, jak používat {name} (Misskey), navštivte {link}."
|
||||||
skipAreYouSure: "Opravdu chcete přeskočit nastavení profilu?"
|
skipAreYouSure: "Opravdu chcete přeskočit nastavení profilu?"
|
||||||
laterAreYouSure: "Opravdu chcete provést nastavení profilu později?"
|
laterAreYouSure: "Opravdu chcete provést nastavení profilu později?"
|
||||||
_serverRules:
|
_serverRules:
|
||||||
|
@ -1629,6 +1628,7 @@ _theme:
|
||||||
buttonBg: "Pozadí tlačítka"
|
buttonBg: "Pozadí tlačítka"
|
||||||
buttonHoverBg: "Pozadí tlačítka (Hover)"
|
buttonHoverBg: "Pozadí tlačítka (Hover)"
|
||||||
inputBorder: "Ohraničení vstupního pole"
|
inputBorder: "Ohraničení vstupního pole"
|
||||||
|
listItemHoverBg: "Pozadí položky seznamu (Hover)"
|
||||||
driveFolderBg: "Pozadí složky disku"
|
driveFolderBg: "Pozadí složky disku"
|
||||||
wallpaperOverlay: "Překrytí tapety"
|
wallpaperOverlay: "Překrytí tapety"
|
||||||
badge: "Odznak"
|
badge: "Odznak"
|
||||||
|
@ -1640,6 +1640,8 @@ _sfx:
|
||||||
note: "Poznámky"
|
note: "Poznámky"
|
||||||
noteMy: "Moje poznámka"
|
noteMy: "Moje poznámka"
|
||||||
notification: "Oznámení"
|
notification: "Oznámení"
|
||||||
|
antenna: "Antény"
|
||||||
|
channel: "Oznámení kanálu"
|
||||||
_ago:
|
_ago:
|
||||||
future: "Budoucí"
|
future: "Budoucí"
|
||||||
justNow: "Teď"
|
justNow: "Teď"
|
||||||
|
@ -1656,11 +1658,22 @@ _time:
|
||||||
minute: "Minut"
|
minute: "Minut"
|
||||||
hour: "Hodin"
|
hour: "Hodin"
|
||||||
day: "Dnů"
|
day: "Dnů"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Jak používat Misskey"
|
||||||
|
step1_1: "Toto je \"časová osa\". Zde se chronologicky zobrazují všechny \"poznámky\" odeslané na {name}."
|
||||||
|
step1_2: "Existuje několik různých časových plánů. Například \"Domácí časová osa\" bude obsahovat poznámky uživatelů, které sledujete, a \"Místní časová osa\" bude obsahovat poznámky všech uživatelů {name}."
|
||||||
|
step2_1: "Zkusme zveřejnit poznámku. Můžete tak učinit stisknutím tlačítka s ikonou tužky."
|
||||||
|
step2_2: "Co takhle napsat sebepředstavení, nebo jen \"Ahoj {name}!\", pokud se vám nechce?"
|
||||||
|
step3_1: "Dokončil jsi svou první poznámku?"
|
||||||
|
step3_2: "Na časové ose by se nyní měla zobrazit vaše první poznámka."
|
||||||
|
step4_1: "K poznámkám můžete také připojit \"Reakce\"."
|
||||||
|
step4_2: "Chcete-li připojit reakci, stiskněte na poznámce znaménko \"+\" a vyberte emoji, kterým chcete reagovat."
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "Již jste zaregistrovali dvoufaktorové ověřovací zařízení."
|
alreadyRegistered: "Již jste zaregistrovali dvoufaktorové ověřovací zařízení."
|
||||||
registerTOTP: "Registrovat aplikaci autentizátoru"
|
registerTOTP: "Registrovat aplikaci autentizátoru"
|
||||||
step1: "Nejprve si do zařízení nainstalujte aplikaci pro ověřování (například {a} nebo {b})."
|
step1: "Nejprve si do zařízení nainstalujte aplikaci pro ověřování (například {a} nebo {b})."
|
||||||
step2: "Poté naskenujte QR kód zobrazený na této obrazovce."
|
step2: "Poté naskenujte QR kód zobrazený na této obrazovce."
|
||||||
|
step2Click: "Kliknutím na tento QR kód můžete zaregistrovat 2FA do bezpečnostního klíče nebo aplikace autentizace telefonu."
|
||||||
step3Title: "Zadejte ověřovací kód"
|
step3Title: "Zadejte ověřovací kód"
|
||||||
step3: "Pro dokončení nastavení zadejte token poskytnutý vaší aplikací."
|
step3: "Pro dokončení nastavení zadejte token poskytnutý vaší aplikací."
|
||||||
step4: "Od této chvíle budou všechny budoucí pokusy o přihlášení vyžadovat tento přihlašovací token."
|
step4: "Od této chvíle budou všechny budoucí pokusy o přihlášení vyžadovat tento přihlašovací token."
|
||||||
|
@ -1714,7 +1727,7 @@ _auth:
|
||||||
shareAccessTitle: "Udělovat oprávnění k aplikacím"
|
shareAccessTitle: "Udělovat oprávnění k aplikacím"
|
||||||
shareAccess: "Chcete autorizovat \"{name}\" pro přístup k tomuto účtu?"
|
shareAccess: "Chcete autorizovat \"{name}\" pro přístup k tomuto účtu?"
|
||||||
shareAccessAsk: "Opravdu chcete této aplikaci povolit přístup k vašemu účtu?"
|
shareAccessAsk: "Opravdu chcete této aplikaci povolit přístup k vašemu účtu?"
|
||||||
permission: "{name} požaduje tato oprávnění"
|
permission: "{jméno} požaduje tato oprávnění"
|
||||||
permissionAsk: "Tato aplikace požaduje následující oprávnění"
|
permissionAsk: "Tato aplikace požaduje následující oprávnění"
|
||||||
pleaseGoBack: "Vraťte se prosím zpět do aplikace"
|
pleaseGoBack: "Vraťte se prosím zpět do aplikace"
|
||||||
callback: "Návrat k aplikaci"
|
callback: "Návrat k aplikaci"
|
||||||
|
@ -1827,7 +1840,6 @@ _profile:
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Všechny poznámky"
|
allNotes: "Všechny poznámky"
|
||||||
favoritedNotes: "Oblíbené poznámky"
|
favoritedNotes: "Oblíbené poznámky"
|
||||||
clips: "Oříznout"
|
|
||||||
followingList: "Sledovaní"
|
followingList: "Sledovaní"
|
||||||
muteList: "Ztlumit"
|
muteList: "Ztlumit"
|
||||||
blockingList: "Zablokovat"
|
blockingList: "Zablokovat"
|
||||||
|
@ -1938,7 +1950,7 @@ _notification:
|
||||||
youGotMention: "{name} vás zmínil"
|
youGotMention: "{name} vás zmínil"
|
||||||
youGotReply: "{name} vám odpověděl"
|
youGotReply: "{name} vám odpověděl"
|
||||||
youGotQuote: "{name} vás citoval"
|
youGotQuote: "{name} vás citoval"
|
||||||
youRenoted: "Poznámka od {name}"
|
youRenoted: "Poznámka od {jméno}"
|
||||||
youWereFollowed: "Máte nového následovníka"
|
youWereFollowed: "Máte nového následovníka"
|
||||||
youReceivedFollowRequest: "Obdrželi jste žádost o sledování"
|
youReceivedFollowRequest: "Obdrželi jste žádost o sledování"
|
||||||
yourFollowRequestAccepted: "Vaše žádost o sledování byla přijata"
|
yourFollowRequestAccepted: "Vaše žádost o sledování byla přijata"
|
||||||
|
@ -1958,7 +1970,6 @@ _notification:
|
||||||
receiveFollowRequest: "Obdržené žádosti o sledování"
|
receiveFollowRequest: "Obdržené žádosti o sledování"
|
||||||
followRequestAccepted: "Přijaté žádosti o sledování"
|
followRequestAccepted: "Přijaté žádosti o sledování"
|
||||||
achievementEarned: "Úspěch odemčen"
|
achievementEarned: "Úspěch odemčen"
|
||||||
login: "Přihlásit se"
|
|
||||||
app: "Oznámení z propojených aplikací"
|
app: "Oznámení z propojených aplikací"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "vás začal sledovat zpět"
|
followBack: "vás začal sledovat zpět"
|
||||||
|
@ -2006,6 +2017,7 @@ _webhookSettings:
|
||||||
createWebhook: "Vytvořit Webhook"
|
createWebhook: "Vytvořit Webhook"
|
||||||
name: "Jméno"
|
name: "Jméno"
|
||||||
secret: "Tajné"
|
secret: "Tajné"
|
||||||
|
events: "Události Webhook"
|
||||||
active: "Zapnuto"
|
active: "Zapnuto"
|
||||||
_events:
|
_events:
|
||||||
follow: "Při sledování uživatele"
|
follow: "Při sledování uživatele"
|
||||||
|
@ -2015,13 +2027,7 @@ _webhookSettings:
|
||||||
renote: "Při renotaci poznámky"
|
renote: "Při renotaci poznámky"
|
||||||
reaction: "Při obdržení reakce"
|
reaction: "Při obdržení reakce"
|
||||||
mention: "Při zmínce"
|
mention: "Při zmínce"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Email"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "Zmrazit"
|
suspend: "Zmrazit"
|
||||||
resetPassword: "Resetovat heslo"
|
resetPassword: "Resetovat heslo"
|
||||||
createInvitation: "Vygenerovat pozvánku"
|
createInvitation: "Vygenerovat pozvánku"
|
||||||
_reversi:
|
|
||||||
total: "Celkem"
|
|
||||||
|
|
|
@ -1,4 +1,2 @@
|
||||||
---
|
---
|
||||||
_lang_: "Dansk"
|
_lang_: "Dansk"
|
||||||
headlineMisskey: ""
|
|
||||||
introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスです。\n「ノート」を作成して、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「リアクション」機能で、皆のノートに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀"
|
|
||||||
|
|
|
@ -121,15 +121,10 @@ sensitive: "Sensibel"
|
||||||
add: "Hinzufügen"
|
add: "Hinzufügen"
|
||||||
reaction: "Reaktionen"
|
reaction: "Reaktionen"
|
||||||
reactions: "Reaktionen"
|
reactions: "Reaktionen"
|
||||||
emojiPicker: "Emoji auswählen"
|
reactionSetting: "In der Reaktionsauswahl anzuzeigende Reaktionen"
|
||||||
pinnedEmojisForReactionSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie beim Reagieren als Erstes anzuzeigen."
|
|
||||||
pinnedEmojisSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie in der Emoji-Auswahl als Erstes anzuzeigen"
|
|
||||||
overwriteFromPinnedEmojisForReaction: "Überschreiben mit den Reaktions-Einstellungen"
|
|
||||||
overwriteFromPinnedEmojis: "Überschreiben mit den allgemeinen Einstellungen"
|
|
||||||
reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen"
|
reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen"
|
||||||
rememberNoteVisibility: "Notizsichtbarkeit merken"
|
rememberNoteVisibility: "Notizsichtbarkeit merken"
|
||||||
attachCancel: "Anhang entfernen"
|
attachCancel: "Anhang entfernen"
|
||||||
deleteFile: "Datei gelöscht"
|
|
||||||
markAsSensitive: "Als sensibel markieren"
|
markAsSensitive: "Als sensibel markieren"
|
||||||
unmarkAsSensitive: "Als nicht sensibel markieren"
|
unmarkAsSensitive: "Als nicht sensibel markieren"
|
||||||
enterFileName: "Dateinamen eingeben"
|
enterFileName: "Dateinamen eingeben"
|
||||||
|
@ -184,7 +179,7 @@ searchWith: "Suchen: {q}"
|
||||||
youHaveNoLists: "Du hast keine Listen"
|
youHaveNoLists: "Du hast keine Listen"
|
||||||
followConfirm: "Möchtest du {name} wirklich folgen?"
|
followConfirm: "Möchtest du {name} wirklich folgen?"
|
||||||
proxyAccount: "Proxy-Benutzerkonto"
|
proxyAccount: "Proxy-Benutzerkonto"
|
||||||
proxyAccountDescription: "Ein Proxy-Konto ist ein Benutzerkonto, das unter bestimmten Bedingungen als Follower für Benutzer fremder Instanzen fungiert. Wenn zum Beispiel ein Benutzer einen Benutzer einer fremden Instanz zu einer Liste hinzufügt, werden die Aktivitäten des entfernten Benutzers nicht an die Instanz übermittelt, wenn kein lokaler Benutzer diesem Benutzer folgt; stattdessen folgt das Proxy-Konto."
|
proxyAccountDescription: "Ein Proxy-Benutzerkonto ist ein Benutzerkonto, das sich für Nutzer unter bestimmten Konditionen wie ein Follower aus einer fremden Instanz verhält. Zum Beispiel wird die Aktivität eines Nutzers aus einer fremden Instanz nicht an diese Instanz übermittelt, falls es keinen Benutzer dieser Instanz gibt, der diesem Nutzer aus fremder Instanz folgt. In diesem Fall folgt stattdessen das Proxy-Benutzerkonto."
|
||||||
host: "Hostname"
|
host: "Hostname"
|
||||||
selectUser: "Benutzer auswählen"
|
selectUser: "Benutzer auswählen"
|
||||||
recipient: "Empfänger"
|
recipient: "Empfänger"
|
||||||
|
@ -266,7 +261,6 @@ removed: "Erfolgreich gelöscht"
|
||||||
removeAreYouSure: "Möchtest du „{x}“ wirklich entfernen?"
|
removeAreYouSure: "Möchtest du „{x}“ wirklich entfernen?"
|
||||||
deleteAreYouSure: "Möchtest du „{x}“ wirklich löschen?"
|
deleteAreYouSure: "Möchtest du „{x}“ wirklich löschen?"
|
||||||
resetAreYouSure: "Wirklich zurücksetzen?"
|
resetAreYouSure: "Wirklich zurücksetzen?"
|
||||||
areYouSure: "Bist du sicher?"
|
|
||||||
saved: "Erfolgreich gespeichert"
|
saved: "Erfolgreich gespeichert"
|
||||||
messaging: "Chat"
|
messaging: "Chat"
|
||||||
upload: "Hochladen"
|
upload: "Hochladen"
|
||||||
|
@ -317,7 +311,6 @@ folderName: "Ordnername"
|
||||||
createFolder: "Ordner erstellen"
|
createFolder: "Ordner erstellen"
|
||||||
renameFolder: "Ordner umbenennen"
|
renameFolder: "Ordner umbenennen"
|
||||||
deleteFolder: "Ordner löschen"
|
deleteFolder: "Ordner löschen"
|
||||||
folder: "Ordner"
|
|
||||||
addFile: "Datei hinzufügen"
|
addFile: "Datei hinzufügen"
|
||||||
emptyDrive: "Deine Drive ist leer"
|
emptyDrive: "Deine Drive ist leer"
|
||||||
emptyFolder: "Dieser Ordner ist leer"
|
emptyFolder: "Dieser Ordner ist leer"
|
||||||
|
@ -361,7 +354,7 @@ enableLocalTimeline: "Lokale Chronik aktivieren"
|
||||||
enableGlobalTimeline: "Globale Chronik aktivieren"
|
enableGlobalTimeline: "Globale Chronik aktivieren"
|
||||||
disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind."
|
disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind."
|
||||||
registration: "Registrieren"
|
registration: "Registrieren"
|
||||||
enableRegistration: "Registrierung neuer Benutzer erlauben"
|
enableRegistration: "Registration neuer Benutzer erlauben"
|
||||||
invite: "Einladen"
|
invite: "Einladen"
|
||||||
driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto"
|
driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto"
|
||||||
driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen"
|
driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen"
|
||||||
|
@ -379,11 +372,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "hCaptcha aktivieren"
|
enableHcaptcha: "hCaptcha aktivieren"
|
||||||
hcaptchaSiteKey: "Site key"
|
hcaptchaSiteKey: "Site key"
|
||||||
hcaptchaSecretKey: "Secret key"
|
hcaptchaSecretKey: "Secret key"
|
||||||
mcaptcha: "mCaptcha"
|
|
||||||
enableMcaptcha: "mCaptcha aktivieren"
|
|
||||||
mcaptchaSiteKey: "Site key"
|
|
||||||
mcaptchaSecretKey: "Secret key"
|
|
||||||
mcaptchaInstanceUrl: "mCaptcha Instanz-URL"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "reCAPTCHA aktivieren"
|
enableRecaptcha: "reCAPTCHA aktivieren"
|
||||||
recaptchaSiteKey: "Site key"
|
recaptchaSiteKey: "Site key"
|
||||||
|
@ -441,7 +429,7 @@ lastUsed: "Zuletzt benutzt"
|
||||||
lastUsedAt: "Zuletzt verwendet: {t}"
|
lastUsedAt: "Zuletzt verwendet: {t}"
|
||||||
unregister: "Deaktivieren"
|
unregister: "Deaktivieren"
|
||||||
passwordLessLogin: "Passwortloses Anmelden"
|
passwordLessLogin: "Passwortloses Anmelden"
|
||||||
passwordLessLoginDescription: "Ermöglicht passwortloses Einloggen mit einem Security-Token oder Passkey"
|
passwordLessLoginDescription: "Ermöglicht passwortfreies Einloggen, nur via Security-Token oder Passkey"
|
||||||
resetPassword: "Passwort zurücksetzen"
|
resetPassword: "Passwort zurücksetzen"
|
||||||
newPasswordIs: "Das neue Passwort ist „{password}“"
|
newPasswordIs: "Das neue Passwort ist „{password}“"
|
||||||
reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren"
|
reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren"
|
||||||
|
@ -449,6 +437,7 @@ share: "Teilen"
|
||||||
notFound: "Nicht gefunden"
|
notFound: "Nicht gefunden"
|
||||||
notFoundDescription: "Es konnte keine Seite unter dieser URL gefunden werden."
|
notFoundDescription: "Es konnte keine Seite unter dieser URL gefunden werden."
|
||||||
uploadFolder: "Standardordner für Uploads"
|
uploadFolder: "Standardordner für Uploads"
|
||||||
|
cacheClear: "Cache leeren"
|
||||||
markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren"
|
markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren"
|
||||||
markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren"
|
markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren"
|
||||||
markAsReadAllTalkMessages: "Alle Chats als gelesen markieren"
|
markAsReadAllTalkMessages: "Alle Chats als gelesen markieren"
|
||||||
|
@ -491,6 +480,7 @@ uiLanguage: "Sprache der Benutzeroberfläche"
|
||||||
aboutX: "Über {x}"
|
aboutX: "Über {x}"
|
||||||
emojiStyle: "Emoji-Stil"
|
emojiStyle: "Emoji-Stil"
|
||||||
native: "Nativ"
|
native: "Nativ"
|
||||||
|
disableDrawer: "Keine ausfahrbaren Menüs verwenden"
|
||||||
showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen"
|
showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen"
|
||||||
noHistory: "Kein Verlauf gefunden"
|
noHistory: "Kein Verlauf gefunden"
|
||||||
signinHistory: "Anmeldungsverlauf"
|
signinHistory: "Anmeldungsverlauf"
|
||||||
|
@ -554,8 +544,6 @@ showInPage: "In einer Seite anzeigen"
|
||||||
popout: "Pop-Up"
|
popout: "Pop-Up"
|
||||||
volume: "Lautstärke"
|
volume: "Lautstärke"
|
||||||
masterVolume: "Gesamtlautstärke"
|
masterVolume: "Gesamtlautstärke"
|
||||||
notUseSound: "Gebe kein Ton aus"
|
|
||||||
useSoundOnlyWhenActive: "Gebe nur Ton aus, wenn Misskey aktiv ist"
|
|
||||||
details: "Details"
|
details: "Details"
|
||||||
chooseEmoji: "Emoji auswählen"
|
chooseEmoji: "Emoji auswählen"
|
||||||
unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden"
|
unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden"
|
||||||
|
@ -576,10 +564,6 @@ output: "Ausgabe"
|
||||||
script: "Skript"
|
script: "Skript"
|
||||||
disablePagesScript: "AiScript auf Seiten deaktivieren"
|
disablePagesScript: "AiScript auf Seiten deaktivieren"
|
||||||
updateRemoteUser: "Benutzerinformationen aktualisieren"
|
updateRemoteUser: "Benutzerinformationen aktualisieren"
|
||||||
unsetUserAvatar: "Entferne Profilbild"
|
|
||||||
unsetUserAvatarConfirm: "Möchtest du dein Profilbild entfernen?"
|
|
||||||
unsetUserBanner: "Entferne Profilbanner"
|
|
||||||
unsetUserBannerConfirm: "Möchtest du dein Profilbanner entfernen?"
|
|
||||||
deleteAllFiles: "Alle Dateien löschen"
|
deleteAllFiles: "Alle Dateien löschen"
|
||||||
deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?"
|
deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?"
|
||||||
removeAllFollowing: "Allen gefolgten Benutzern entfolgen"
|
removeAllFollowing: "Allen gefolgten Benutzern entfolgen"
|
||||||
|
@ -630,7 +614,6 @@ medium: "Mittel"
|
||||||
small: "Klein"
|
small: "Klein"
|
||||||
generateAccessToken: "Zugriffstoken generieren"
|
generateAccessToken: "Zugriffstoken generieren"
|
||||||
permission: "Berechtigungen"
|
permission: "Berechtigungen"
|
||||||
adminPermission: "Administratorberechtigung"
|
|
||||||
enableAll: "Alle aktivieren"
|
enableAll: "Alle aktivieren"
|
||||||
disableAll: "Alle deaktivieren"
|
disableAll: "Alle deaktivieren"
|
||||||
tokenRequested: "Zugriff zum Benutzerkonto gewähren"
|
tokenRequested: "Zugriff zum Benutzerkonto gewähren"
|
||||||
|
@ -653,7 +636,7 @@ smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest."
|
||||||
testEmail: "Emailversand testen"
|
testEmail: "Emailversand testen"
|
||||||
wordMute: "Wortstummschaltung"
|
wordMute: "Wortstummschaltung"
|
||||||
regexpError: "Fehler in einem regulären Ausdruck"
|
regexpError: "Fehler in einem regulären Ausdruck"
|
||||||
regexpErrorDescription: "Im regulären Ausdruck deiner in Zeile {line} von {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
|
regexpErrorDescription: "Im regulären Ausdruck deiner {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
|
||||||
instanceMute: "Instanzstummschaltungen"
|
instanceMute: "Instanzstummschaltungen"
|
||||||
userSaysSomething: "{name} hat etwas gesagt"
|
userSaysSomething: "{name} hat etwas gesagt"
|
||||||
makeActive: "Aktivieren"
|
makeActive: "Aktivieren"
|
||||||
|
@ -686,7 +669,10 @@ abuseReported: "Deine Meldung wurde versendet. Vielen Dank."
|
||||||
reporter: "Melder"
|
reporter: "Melder"
|
||||||
reporteeOrigin: "Herkunft des Gemeldeten"
|
reporteeOrigin: "Herkunft des Gemeldeten"
|
||||||
reporterOrigin: "Herkunft des Meldenden"
|
reporterOrigin: "Herkunft des Meldenden"
|
||||||
|
forwardReport: "Meldung an fremde Instanz weiterleiten"
|
||||||
|
forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt."
|
||||||
send: "Senden"
|
send: "Senden"
|
||||||
|
abuseMarkAsResolved: "Meldung als gelöst markieren"
|
||||||
openInNewTab: "In neuem Tab öffnen"
|
openInNewTab: "In neuem Tab öffnen"
|
||||||
openInSideView: "In Seitenansicht öffnen"
|
openInSideView: "In Seitenansicht öffnen"
|
||||||
defaultNavigationBehaviour: "Standardnavigationsverhalten"
|
defaultNavigationBehaviour: "Standardnavigationsverhalten"
|
||||||
|
@ -882,6 +868,8 @@ makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktion
|
||||||
classic: "Classic"
|
classic: "Classic"
|
||||||
muteThread: "Thread stummschalten"
|
muteThread: "Thread stummschalten"
|
||||||
unmuteThread: "Threadstummschaltung aufheben"
|
unmuteThread: "Threadstummschaltung aufheben"
|
||||||
|
ffVisibility: "Sichtbarkeit von Gefolgten/Followern"
|
||||||
|
ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir folgt."
|
||||||
continueThread: "Weiteren Threadverlauf anzeigen"
|
continueThread: "Weiteren Threadverlauf anzeigen"
|
||||||
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
|
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
|
||||||
incorrectPassword: "Falsches Passwort."
|
incorrectPassword: "Falsches Passwort."
|
||||||
|
@ -991,7 +979,6 @@ assign: "Zuweisen"
|
||||||
unassign: "Entfernen"
|
unassign: "Entfernen"
|
||||||
color: "Farbe"
|
color: "Farbe"
|
||||||
manageCustomEmojis: "Kann benutzerdefinierte Emojis verwalten"
|
manageCustomEmojis: "Kann benutzerdefinierte Emojis verwalten"
|
||||||
manageAvatarDecorations: "Profilbilddekorationen verwalten"
|
|
||||||
youCannotCreateAnymore: "Du hast das Erstellungslimit erreicht."
|
youCannotCreateAnymore: "Du hast das Erstellungslimit erreicht."
|
||||||
cannotPerformTemporary: "Vorübergehend nicht verfügbar"
|
cannotPerformTemporary: "Vorübergehend nicht verfügbar"
|
||||||
cannotPerformTemporaryDescription: "Diese Aktion ist wegen des Überschreitenes des Ausführungslimits temporär nicht verfügbar. Bitte versuche es nach einiger Zeit erneut."
|
cannotPerformTemporaryDescription: "Diese Aktion ist wegen des Überschreitenes des Ausführungslimits temporär nicht verfügbar. Bitte versuche es nach einiger Zeit erneut."
|
||||||
|
@ -1032,9 +1019,6 @@ resetPasswordConfirm: "Wirklich Passwort zurücksetzen?"
|
||||||
sensitiveWords: "Sensible Wörter"
|
sensitiveWords: "Sensible Wörter"
|
||||||
sensitiveWordsDescription: "Die Notizsichtbarkeit aller Notizen, die diese Wörter enthalten, wird automatisch auf \"Startseite\" gesetzt. Durch Zeilenumbrüche können mehrere konfiguriert werden."
|
sensitiveWordsDescription: "Die Notizsichtbarkeit aller Notizen, die diese Wörter enthalten, wird automatisch auf \"Startseite\" gesetzt. Durch Zeilenumbrüche können mehrere konfiguriert werden."
|
||||||
sensitiveWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
|
sensitiveWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
|
||||||
prohibitedWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
|
|
||||||
hiddenTags: "Ausgeblendete Hashtags"
|
|
||||||
hiddenTagsDescription: "Die hier eingestellten Tags werden nicht mehr in den Trends angezeigt. Mit der Umschalttaste können mehrere ausgewählt werden."
|
|
||||||
notesSearchNotAvailable: "Die Notizsuche ist nicht verfügbar."
|
notesSearchNotAvailable: "Die Notizsuche ist nicht verfügbar."
|
||||||
license: "Lizenz"
|
license: "Lizenz"
|
||||||
unfavoriteConfirm: "Wirklich aus Favoriten entfernen?"
|
unfavoriteConfirm: "Wirklich aus Favoriten entfernen?"
|
||||||
|
@ -1047,7 +1031,6 @@ enableChartsForRemoteUser: "Diagramme für Nutzer fremder Instanzen erstellen"
|
||||||
enableChartsForFederatedInstances: "Diagramme für fremde Instanzen erstellen"
|
enableChartsForFederatedInstances: "Diagramme für fremde Instanzen erstellen"
|
||||||
showClipButtonInNoteFooter: "\"Clip\" zum Notizmenu hinzufügen"
|
showClipButtonInNoteFooter: "\"Clip\" zum Notizmenu hinzufügen"
|
||||||
reactionsDisplaySize: "Reaktionsanzeigegröße"
|
reactionsDisplaySize: "Reaktionsanzeigegröße"
|
||||||
limitWidthOfReaction: "Begrenze die Breite der Reaktion und zeige sie verkleinert an"
|
|
||||||
noteIdOrUrl: "Notiz-ID oder URL"
|
noteIdOrUrl: "Notiz-ID oder URL"
|
||||||
video: "Video"
|
video: "Video"
|
||||||
videos: "Videos"
|
videos: "Videos"
|
||||||
|
@ -1154,7 +1137,6 @@ hideRepliesToOthersInTimelineAll: "Antworten von allen momentan gefolgten Benutz
|
||||||
confirmShowRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern in der Chronik anzeigen?"
|
confirmShowRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern in der Chronik anzeigen?"
|
||||||
confirmHideRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern nicht in der Chronik anzeigen?"
|
confirmHideRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern nicht in der Chronik anzeigen?"
|
||||||
externalServices: "Externe Dienste"
|
externalServices: "Externe Dienste"
|
||||||
sourceCode: "Quellcode"
|
|
||||||
impressum: "Impressum"
|
impressum: "Impressum"
|
||||||
impressumUrl: "Impressums-URL"
|
impressumUrl: "Impressums-URL"
|
||||||
impressumDescription: "In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend."
|
impressumDescription: "In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend."
|
||||||
|
@ -1167,24 +1149,6 @@ detach: "Entfernen"
|
||||||
angle: "Winkel"
|
angle: "Winkel"
|
||||||
flip: "Umdrehen"
|
flip: "Umdrehen"
|
||||||
showAvatarDecorations: "Profilbilddekoration anzeigen"
|
showAvatarDecorations: "Profilbilddekoration anzeigen"
|
||||||
releaseToRefresh: "Zum Aktualisieren loslassen"
|
|
||||||
refreshing: "Wird aktualisiert..."
|
|
||||||
pullDownToRefresh: "Zum Aktualisieren ziehen"
|
|
||||||
disableStreamingTimeline: "Echtzeitaktualisierung der Chronik deaktivieren"
|
|
||||||
useGroupedNotifications: "Benachrichtigungen gruppieren"
|
|
||||||
signupPendingError: "Beim Überprüfen der Mailadresse ist etwas schiefgelaufen. Der Link könnte abgelaufen sein."
|
|
||||||
cwNotationRequired: "Ist \"Inhaltswarnung verwenden\" aktiviert, muss eine Beschreibung gegeben werden."
|
|
||||||
doReaction: "Reagieren"
|
|
||||||
code: "Code"
|
|
||||||
decorate: "Dekorieren"
|
|
||||||
addMfmFunction: "MFM hinzufügen"
|
|
||||||
sfx: "Soundeffekte"
|
|
||||||
lastNDays: "Letzten {n} Tage"
|
|
||||||
surrender: "Abbrechen"
|
|
||||||
_delivery:
|
|
||||||
stop: "Gesperrt"
|
|
||||||
_type:
|
|
||||||
none: "Wird veröffentlicht"
|
|
||||||
_announcement:
|
_announcement:
|
||||||
forExistingUsers: "Nur für existierende Nutzer"
|
forExistingUsers: "Nur für existierende Nutzer"
|
||||||
forExistingUsersDescription: "Ist diese Option aktiviert, wird diese Ankündigung nur Nutzern angezeigt, die zum Zeitpunkt der Ankündigung bereits registriert sind. Ist sie deaktiviert, wird sie auch Nutzern, die sich nach dessen Veröffentlichung registrieren, angezeigt."
|
forExistingUsersDescription: "Ist diese Option aktiviert, wird diese Ankündigung nur Nutzern angezeigt, die zum Zeitpunkt der Ankündigung bereits registriert sind. Ist sie deaktiviert, wird sie auch Nutzern, die sich nach dessen Veröffentlichung registrieren, angezeigt."
|
||||||
|
@ -1194,10 +1158,6 @@ _announcement:
|
||||||
tooManyActiveAnnouncementDescription: "Zu viele aktive Ankündigungen können die Benutzerfreundlichkeit verschlechtern. Es wird empfohlen, veraltete Ankündigungen zu archivieren."
|
tooManyActiveAnnouncementDescription: "Zu viele aktive Ankündigungen können die Benutzerfreundlichkeit verschlechtern. Es wird empfohlen, veraltete Ankündigungen zu archivieren."
|
||||||
readConfirmTitle: "Als gelesen markieren?"
|
readConfirmTitle: "Als gelesen markieren?"
|
||||||
readConfirmText: "Dies markiert den Inhalt von \"{title}\" als gelesen."
|
readConfirmText: "Dies markiert den Inhalt von \"{title}\" als gelesen."
|
||||||
shouldNotBeUsedToPresentPermanentInfo: "Es wird empfohlen, Ankündigungen für aktuelle und zeitlich begrenzte Neuigkeiten zu nutzen, statt für Informationen, die langfristig relevant sind."
|
|
||||||
dialogAnnouncementUxWarn: "Bei der Verwendung von mehr als zwei Meldungen im Dialog-Format wird um Vorsicht geboten, da dies negative Auswirkungen auf die UX haben kann."
|
|
||||||
silence: "Keine Benachrichtigung"
|
|
||||||
silenceDescription: "Wenn aktiviert, gibt diese Meldung keine Nachricht aus und muss nicht als \"gelesen\" markiert werden."
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "Dein Konto wurde erfolgreich erstellt!"
|
accountCreated: "Dein Konto wurde erfolgreich erstellt!"
|
||||||
letsStartAccountSetup: "Lass uns nun dein Konto einrichten."
|
letsStartAccountSetup: "Lass uns nun dein Konto einrichten."
|
||||||
|
@ -1210,38 +1170,9 @@ _initialAccountSetting:
|
||||||
pushNotificationDescription: "Durch die Aktivierung von Push-Benachrichtigungen kannst du von {name} Benachrichtigungen direkt auf dein Gerät erhalten."
|
pushNotificationDescription: "Durch die Aktivierung von Push-Benachrichtigungen kannst du von {name} Benachrichtigungen direkt auf dein Gerät erhalten."
|
||||||
initialAccountSettingCompleted: "Kontoeinrichtung abgeschlossen!"
|
initialAccountSettingCompleted: "Kontoeinrichtung abgeschlossen!"
|
||||||
haveFun: "Viel Spaß mit {name}!"
|
haveFun: "Viel Spaß mit {name}!"
|
||||||
youCanContinueTutorial: "Du kannst mit dem Tutorial von {name}(Misskey) fortfahren, oder auch abbrechen und gleich anfangen Misskey zu benutzen."
|
ifYouNeedLearnMore: "Besuche {link}, falls du mehr über {name} (Misskey) lernen möchtest."
|
||||||
startTutorial: "Fange mit dem Tutorial an"
|
|
||||||
skipAreYouSure: "Die Kontoeinrichtung wirklich überspringen?"
|
skipAreYouSure: "Die Kontoeinrichtung wirklich überspringen?"
|
||||||
laterAreYouSure: "Die Kontoeinrichtung wirklich später erledigen?"
|
laterAreYouSure: "Die Kontoeinrichtung wirklich später erledigen?"
|
||||||
_initialTutorial:
|
|
||||||
launchTutorial: "Tutorial ansehen"
|
|
||||||
title: "Tutorial"
|
|
||||||
wellDone: "Gut gemacht!"
|
|
||||||
skipAreYouSure: "Möchtest du das Tutorial verlassen?"
|
|
||||||
_landing:
|
|
||||||
title: "Willkommen zum Tutorial"
|
|
||||||
description: "Hier kannst du sehen, wie Misskey funktioniert"
|
|
||||||
_note:
|
|
||||||
title: "Was sind Notizen?"
|
|
||||||
description: "Beiträge auf Misskey heißen \"Notizen\". Notizen werden chronologisch in der Chronik angeordnet und in Echtzeit aktualisiert."
|
|
||||||
reply: "Klicke auf diesen Button, um auf eine Nachricht zu antworten. Es ist auch möglich, auf Antworten zu antworten und die Unterhaltung wie einen Thread fortzusetzen."
|
|
||||||
_reaction:
|
|
||||||
title: "Was sind Reaktionen?"
|
|
||||||
reactToContinue: "Füge eine Reaktion hinzu, um fortzufahren."
|
|
||||||
reactNotification: "Du erhältst Echtzeit-Benachrichtigungen, wenn jemand auf deine Notiz reagiert."
|
|
||||||
_postNote:
|
|
||||||
_visibility:
|
|
||||||
description: "Du kannst einschränken, wer deine Notiz sehen kann."
|
|
||||||
public: "Deine Notiz wird für alle Nutzer sichtbar sein."
|
|
||||||
doNotSendConfidencialOnDirect1: "Sei vorsichtig, wenn du sensible Informationen verschickst!"
|
|
||||||
_cw:
|
|
||||||
title: "Inhaltswarnung"
|
|
||||||
_done:
|
|
||||||
title: "Du hast das Tutorial abgeschlossen! 🎉"
|
|
||||||
_timelineDescription:
|
|
||||||
local: "In der lokalen Chronik siehst du Notizen von allen Benutzern auf diesem Server."
|
|
||||||
global: "In der globalen Chronik siehst du Notizen von allen föderierten Servern."
|
|
||||||
_serverRules:
|
_serverRules:
|
||||||
description: "Eine Reihe von Regeln, die vor der Registrierung angezeigt werden. Eine Zusammenfassung der Nutzungsbedingungen anzuzeigen ist empfohlen."
|
description: "Eine Reihe von Regeln, die vor der Registrierung angezeigt werden. Eine Zusammenfassung der Nutzungsbedingungen anzuzeigen ist empfohlen."
|
||||||
_serverSettings:
|
_serverSettings:
|
||||||
|
@ -1254,8 +1185,6 @@ _serverSettings:
|
||||||
shortName: "Abkürzung"
|
shortName: "Abkürzung"
|
||||||
shortNameDescription: "Ein Kürzel für den Namen der Instanz, der angezeigt werden kann, falls der volle Instanzname lang ist."
|
shortNameDescription: "Ein Kürzel für den Namen der Instanz, der angezeigt werden kann, falls der volle Instanzname lang ist."
|
||||||
fanoutTimelineDescription: "Ist diese Option aktiviert, kann eine erhebliche Verbesserung im Abrufen von Chroniken und eine Reduzierung der Datenbankbelastung erzielt werden, im Gegenzug zu einer Steigerung in der Speichernutzung von Redis. Bei geringem Serverspeicher oder Serverinstabilität kann diese Option deaktiviert werden."
|
fanoutTimelineDescription: "Ist diese Option aktiviert, kann eine erhebliche Verbesserung im Abrufen von Chroniken und eine Reduzierung der Datenbankbelastung erzielt werden, im Gegenzug zu einer Steigerung in der Speichernutzung von Redis. Bei geringem Serverspeicher oder Serverinstabilität kann diese Option deaktiviert werden."
|
||||||
fanoutTimelineDbFallback: "Auf die Datenbank zurückfallen"
|
|
||||||
fanoutTimelineDbFallbackDescription: "Ist diese Option aktiviert, wird die Chronik auf zusätzliche Abfragen in der Datenbank zurückgreifen, wenn sich die Chronik nicht im Cache befindet. Eine Deaktivierung führt zu geringerer Serverlast, aber schränkt den Zeitraum der abrufbaren Chronik ein. "
|
|
||||||
_accountMigration:
|
_accountMigration:
|
||||||
moveFrom: "Von einem anderen Konto zu diesem migrieren"
|
moveFrom: "Von einem anderen Konto zu diesem migrieren"
|
||||||
moveFromSub: "Alias für ein anderes Konto erstellen"
|
moveFromSub: "Alias für ein anderes Konto erstellen"
|
||||||
|
@ -1513,8 +1442,6 @@ _achievements:
|
||||||
_smashTestNotificationButton:
|
_smashTestNotificationButton:
|
||||||
title: "Testüberfluss"
|
title: "Testüberfluss"
|
||||||
description: "Betätige den Benachrichtigungstest mehrfach innerhalb einer extrem kurzen Zeitspanne"
|
description: "Betätige den Benachrichtigungstest mehrfach innerhalb einer extrem kurzen Zeitspanne"
|
||||||
_tutorialCompleted:
|
|
||||||
description: "Tutorial abgeschlossen"
|
|
||||||
_role:
|
_role:
|
||||||
new: "Rolle erstellen"
|
new: "Rolle erstellen"
|
||||||
edit: "Rolle bearbeiten"
|
edit: "Rolle bearbeiten"
|
||||||
|
@ -1525,9 +1452,7 @@ _role:
|
||||||
assignTarget: "Zuweisungsart"
|
assignTarget: "Zuweisungsart"
|
||||||
descriptionOfAssignTarget: "<b>Manuell</b> bedeutet, dass die Liste der Benutzer einer Rolle manuell verwaltet wird.\n<b>Konditional</b> bedeutet, dass die Liste der Benutzer einer Rolle durch eine Bedingung automatisch verwaltet wird."
|
descriptionOfAssignTarget: "<b>Manuell</b> bedeutet, dass die Liste der Benutzer einer Rolle manuell verwaltet wird.\n<b>Konditional</b> bedeutet, dass die Liste der Benutzer einer Rolle durch eine Bedingung automatisch verwaltet wird."
|
||||||
manual: "Manuell"
|
manual: "Manuell"
|
||||||
manualRoles: "Manuelle Rollen"
|
|
||||||
conditional: "Konditional"
|
conditional: "Konditional"
|
||||||
conditionalRoles: "Bedingte Rolle"
|
|
||||||
condition: "Bedingung"
|
condition: "Bedingung"
|
||||||
isConditionalRole: "Dies ist eine konditionale Rolle."
|
isConditionalRole: "Dies ist eine konditionale Rolle."
|
||||||
isPublic: "Öffentliche Rolle"
|
isPublic: "Öffentliche Rolle"
|
||||||
|
@ -1560,7 +1485,6 @@ _role:
|
||||||
inviteLimitCycle: "Zyklus des Einladungslimits"
|
inviteLimitCycle: "Zyklus des Einladungslimits"
|
||||||
inviteExpirationTime: "Gültigkeitsdauer von Einladungen"
|
inviteExpirationTime: "Gültigkeitsdauer von Einladungen"
|
||||||
canManageCustomEmojis: "Benutzerdefinierte Emojis verwalten"
|
canManageCustomEmojis: "Benutzerdefinierte Emojis verwalten"
|
||||||
canManageAvatarDecorations: "Profilbilddekorationen verwalten"
|
|
||||||
driveCapacity: "Drive-Kapazität"
|
driveCapacity: "Drive-Kapazität"
|
||||||
alwaysMarkNsfw: "Dateien immer als NSFW markieren"
|
alwaysMarkNsfw: "Dateien immer als NSFW markieren"
|
||||||
pinMax: "Maximale Anzahl an angehefteten Notizen"
|
pinMax: "Maximale Anzahl an angehefteten Notizen"
|
||||||
|
@ -1569,14 +1493,13 @@ _role:
|
||||||
webhookMax: "Maximale Anzahl an Webhooks"
|
webhookMax: "Maximale Anzahl an Webhooks"
|
||||||
clipMax: "Maximale Anzahl an Clips"
|
clipMax: "Maximale Anzahl an Clips"
|
||||||
noteEachClipsMax: "Maximale Anzahl an Notizen innerhalb eines Clips"
|
noteEachClipsMax: "Maximale Anzahl an Notizen innerhalb eines Clips"
|
||||||
userListMax: "Maximale Anzahl an Benutzerlisten"
|
userListMax: "Maximale Anzahl an Benutzern in einer Benutzerliste"
|
||||||
userEachUserListsMax: "Maximale Anzahl an Benutzern in einer Benutzerliste"
|
userEachUserListsMax: "Maximale Anzahl an Benutzerlisten"
|
||||||
rateLimitFactor: "Versuchsanzahl"
|
rateLimitFactor: "Versuchsanzahl"
|
||||||
descriptionOfRateLimitFactor: "Je niedriger desto weniger restriktiv, je höher destro restriktiver."
|
descriptionOfRateLimitFactor: "Je niedriger desto weniger restriktiv, je höher destro restriktiver."
|
||||||
canHideAds: "Kann Werbung ausblenden"
|
canHideAds: "Kann Werbung ausblenden"
|
||||||
canSearchNotes: "Nutzung der Notizsuchfunktion"
|
canSearchNotes: "Nutzung der Notizsuchfunktion"
|
||||||
canUseTranslator: "Verwendung des Übersetzers"
|
canUseTranslator: "Verwendung des Übersetzers"
|
||||||
avatarDecorationLimit: "Maximale Anzahl an Profilbilddekorationen, die angebracht werden können"
|
|
||||||
_condition:
|
_condition:
|
||||||
isLocal: "Lokaler Benutzer"
|
isLocal: "Lokaler Benutzer"
|
||||||
isRemote: "Benutzer fremder Instanz"
|
isRemote: "Benutzer fremder Instanz"
|
||||||
|
@ -1605,7 +1528,6 @@ _emailUnavailable:
|
||||||
disposable: "Wegwerf-Email-Adressen können nicht verwendet werden"
|
disposable: "Wegwerf-Email-Adressen können nicht verwendet werden"
|
||||||
mx: "Dieser Email-Server ist ungültig"
|
mx: "Dieser Email-Server ist ungültig"
|
||||||
smtp: "Dieser Email-Server antwortet nicht"
|
smtp: "Dieser Email-Server antwortet nicht"
|
||||||
banned: "Du kannst dich mit dieser E-Mail-Adresse nicht registrieren"
|
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "Öffentlich"
|
public: "Öffentlich"
|
||||||
followers: "Nur für Follower sichtbar"
|
followers: "Nur für Follower sichtbar"
|
||||||
|
@ -1682,7 +1604,6 @@ _aboutMisskey:
|
||||||
donate: "An Misskey spenden"
|
donate: "An Misskey spenden"
|
||||||
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰"
|
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰"
|
||||||
patrons: "UnterstützerInnen"
|
patrons: "UnterstützerInnen"
|
||||||
projectMembers: "Projektmitglieder"
|
|
||||||
_displayOfSensitiveMedia:
|
_displayOfSensitiveMedia:
|
||||||
respect: "Sensible Medien verbergen"
|
respect: "Sensible Medien verbergen"
|
||||||
ignore: "Sensible Medien anzeigen"
|
ignore: "Sensible Medien anzeigen"
|
||||||
|
@ -1784,6 +1705,7 @@ _theme:
|
||||||
buttonBg: "Hintergrund von Schaltflächen"
|
buttonBg: "Hintergrund von Schaltflächen"
|
||||||
buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)"
|
buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)"
|
||||||
inputBorder: "Rahmen von Eingabefeldern"
|
inputBorder: "Rahmen von Eingabefeldern"
|
||||||
|
listItemHoverBg: "Hintergrund von Listeneinträgen (Mouseover)"
|
||||||
driveFolderBg: "Hintergrund von Drive-Ordnern"
|
driveFolderBg: "Hintergrund von Drive-Ordnern"
|
||||||
wallpaperOverlay: "Hintergrundbild-Overlay"
|
wallpaperOverlay: "Hintergrundbild-Overlay"
|
||||||
badge: "Wappen"
|
badge: "Wappen"
|
||||||
|
@ -1795,6 +1717,8 @@ _sfx:
|
||||||
note: "Notizen"
|
note: "Notizen"
|
||||||
noteMy: "Meine Notizen"
|
noteMy: "Meine Notizen"
|
||||||
notification: "Benachrichtigungen"
|
notification: "Benachrichtigungen"
|
||||||
|
antenna: "Antennen"
|
||||||
|
channel: "Kanalbenachrichtigung"
|
||||||
_ago:
|
_ago:
|
||||||
future: "Zukunft"
|
future: "Zukunft"
|
||||||
justNow: "Gerade eben"
|
justNow: "Gerade eben"
|
||||||
|
@ -1811,11 +1735,22 @@ _time:
|
||||||
minute: "Minute(n)"
|
minute: "Minute(n)"
|
||||||
hour: "Stunde(n)"
|
hour: "Stunde(n)"
|
||||||
day: "Tag(en)"
|
day: "Tag(en)"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Wie du Misskey verwendest"
|
||||||
|
step1_1: "Dieser Bildschirm ist die \"Chronik\". Hier werden alle \"Notizen\" von {name} angezeigt."
|
||||||
|
step1_2: "Es gibt einige verschiedene Chroniken. Beispielsweise werden in der \"Startseite\" alle Notizen von Nutzern, denen du folgst, angezeigt, und in der \"Lokalen Chronik\" werden Notizen aller Nutzer auf {name} angezeigt."
|
||||||
|
step2_1: "Lass uns als nächstes versuchen, eine Notiz zu schreiben. Dies kannst du tun, indem du auf den Knopf mit dem Stift-Icon drückst."
|
||||||
|
step2_2: "Stell dich den anderen vor oder schreibe einfach \"Hallo {name}!\", wenn du darauf keine Lust hast oder dir nichts einfällt."
|
||||||
|
step3_1: "Fertig mit dem Senden deiner ersten Notiz?"
|
||||||
|
step3_2: "Falls deine Notiz nun in deiner Chronik auftaucht, hast du alles richtig gemacht."
|
||||||
|
step4_1: "Notizen können zusätzlich mit \"Reaktionen\" ausgestattet werden."
|
||||||
|
step4_2: "Um eine Reaktion anzufügen, klicke auf das „+“-Symbol einer Notiz und wähle ein Emoji aus, mit dem du reagieren möchtest."
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "Du hast bereits ein Gerät für Zwei-Faktor-Authentifizierung registriert."
|
alreadyRegistered: "Du hast bereits ein Gerät für Zwei-Faktor-Authentifizierung registriert."
|
||||||
registerTOTP: "Authentifizierungs-App registrieren"
|
registerTOTP: "Authentifizierungs-App registrieren"
|
||||||
step1: "Installiere zuerst eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät."
|
step1: "Installiere zuerst eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät."
|
||||||
step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerät."
|
step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerät."
|
||||||
|
step2Click: "Durch Klicken dieses QR-Codes kannst du Verifikation mit deinem Security-Token oder einer App registrieren."
|
||||||
step2Uri: "Nutzt du ein Desktopprogramm, gib folgende URI eingeben"
|
step2Uri: "Nutzt du ein Desktopprogramm, gib folgende URI eingeben"
|
||||||
step3Title: "Authentifizierungsscode eingeben"
|
step3Title: "Authentifizierungsscode eingeben"
|
||||||
step3: "Gib zum Abschluss den Code (Token) ein, der von deiner App angezeigt wird."
|
step3: "Gib zum Abschluss den Code (Token) ein, der von deiner App angezeigt wird."
|
||||||
|
@ -1930,7 +1865,6 @@ _widgets:
|
||||||
_userList:
|
_userList:
|
||||||
chooseList: "Liste auswählen"
|
chooseList: "Liste auswählen"
|
||||||
clicker: "Klickzähler"
|
clicker: "Klickzähler"
|
||||||
birthdayFollowings: "Nutzer, die heute Geburtstag haben"
|
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Inhalt verbergen"
|
hide: "Inhalt verbergen"
|
||||||
show: "Inhalt anzeigen"
|
show: "Inhalt anzeigen"
|
||||||
|
@ -1996,7 +1930,6 @@ _profile:
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Alle Notizen"
|
allNotes: "Alle Notizen"
|
||||||
favoritedNotes: "Als Favorit markierte Notizen"
|
favoritedNotes: "Als Favorit markierte Notizen"
|
||||||
clips: "Clip erstellen"
|
|
||||||
followingList: "Gefolgte Benutzer"
|
followingList: "Gefolgte Benutzer"
|
||||||
muteList: "Stummschaltungen"
|
muteList: "Stummschaltungen"
|
||||||
blockingList: "Blockierungen"
|
blockingList: "Blockierungen"
|
||||||
|
@ -2121,9 +2054,6 @@ _notification:
|
||||||
checkNotificationBehavior: "Aussehen von Benachrichtigungen überprüfen"
|
checkNotificationBehavior: "Aussehen von Benachrichtigungen überprüfen"
|
||||||
sendTestNotification: "Testbenachrichtigung senden"
|
sendTestNotification: "Testbenachrichtigung senden"
|
||||||
notificationWillBeDisplayedLikeThis: "Benachrichtigungen sehen so aus"
|
notificationWillBeDisplayedLikeThis: "Benachrichtigungen sehen so aus"
|
||||||
reactedBySomeUsers: "{n} Benutzer haben eine Reaktion geschickt"
|
|
||||||
renotedBySomeUsers: "Renote von {n} Benutzern"
|
|
||||||
followedBySomeUsers: "Von {n} Benutzern gefolgt"
|
|
||||||
_types:
|
_types:
|
||||||
all: "Alle"
|
all: "Alle"
|
||||||
note: "Neue Notizen"
|
note: "Neue Notizen"
|
||||||
|
@ -2137,7 +2067,6 @@ _notification:
|
||||||
receiveFollowRequest: "Erhaltene Follow-Anfragen"
|
receiveFollowRequest: "Erhaltene Follow-Anfragen"
|
||||||
followRequestAccepted: "Akzeptierte Follow-Anfragen"
|
followRequestAccepted: "Akzeptierte Follow-Anfragen"
|
||||||
achievementEarned: "Errungenschaft freigeschaltet"
|
achievementEarned: "Errungenschaft freigeschaltet"
|
||||||
login: "Anmelden"
|
|
||||||
app: "Benachrichtigungen von Apps"
|
app: "Benachrichtigungen von Apps"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "folgt dir nun auch"
|
followBack: "folgt dir nun auch"
|
||||||
|
@ -2187,6 +2116,7 @@ _webhookSettings:
|
||||||
createWebhook: "Webhook erstellen"
|
createWebhook: "Webhook erstellen"
|
||||||
name: "Name"
|
name: "Name"
|
||||||
secret: "Secret"
|
secret: "Secret"
|
||||||
|
events: "Webhook-Ereignisse"
|
||||||
active: "Aktiviert"
|
active: "Aktiviert"
|
||||||
_events:
|
_events:
|
||||||
follow: "Wenn du jemandem folgst"
|
follow: "Wenn du jemandem folgst"
|
||||||
|
@ -2196,10 +2126,6 @@ _webhookSettings:
|
||||||
renote: "Wenn du ein Renote erhältst"
|
renote: "Wenn du ein Renote erhältst"
|
||||||
reaction: "Wenn du eine Reaktion erhältst"
|
reaction: "Wenn du eine Reaktion erhältst"
|
||||||
mention: "Wenn du erwähnt wirst"
|
mention: "Wenn du erwähnt wirst"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Email"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
createRole: "Rolle erstellt"
|
createRole: "Rolle erstellt"
|
||||||
deleteRole: "Rolle gelöscht"
|
deleteRole: "Rolle gelöscht"
|
||||||
|
@ -2283,9 +2209,3 @@ _externalResourceInstaller:
|
||||||
_themeInstallFailed:
|
_themeInstallFailed:
|
||||||
title: "Das Farbschema konnte nicht installiert werden"
|
title: "Das Farbschema konnte nicht installiert werden"
|
||||||
description: "Während der Installation des Farbschemas ist ein Problem aufgetreten. Bitte versuche es erneut. Detaillierte Fehlerinformationen können über die Javascript-Konsole abgerufen werden."
|
description: "Während der Installation des Farbschemas ist ein Problem aufgetreten. Bitte versuche es erneut. Detaillierte Fehlerinformationen können über die Javascript-Konsole abgerufen werden."
|
||||||
_reversi:
|
|
||||||
blackOrWhite: "Schwarz/Weiß"
|
|
||||||
rules: "Regeln"
|
|
||||||
black: "Schwarz"
|
|
||||||
white: "Weiß"
|
|
||||||
total: "Gesamt"
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ clickToShow: "Κάντε κλικ για εμφάνιση"
|
||||||
add: "Προσθέστε"
|
add: "Προσθέστε"
|
||||||
reaction: "Αντιδράσεις"
|
reaction: "Αντιδράσεις"
|
||||||
reactions: "Αντιδράσεις"
|
reactions: "Αντιδράσεις"
|
||||||
|
reactionSetting: "Αντιδράσεις για εμφάνιση στην επιλογή αντίδρασης"
|
||||||
reactionSettingDescription2: "Σύρετε για να αλλάξετε τη σειρά, κάντε κλικ για να διαγράψετε, πατήστε \"+\" για να προσθέσετε."
|
reactionSettingDescription2: "Σύρετε για να αλλάξετε τη σειρά, κάντε κλικ για να διαγράψετε, πατήστε \"+\" για να προσθέσετε."
|
||||||
rememberNoteVisibility: "Θυμήσου τις ρυθμίσεις ορατότητας σημειώματος"
|
rememberNoteVisibility: "Θυμήσου τις ρυθμίσεις ορατότητας σημειώματος"
|
||||||
attachCancel: "Διαγραφή αρχείου"
|
attachCancel: "Διαγραφή αρχείου"
|
||||||
|
@ -227,6 +228,7 @@ userList: "Λίστες"
|
||||||
about: "Πληροφορίες"
|
about: "Πληροφορίες"
|
||||||
moderator: "Συντονιστής"
|
moderator: "Συντονιστής"
|
||||||
moderation: "Συντονισμός"
|
moderation: "Συντονισμός"
|
||||||
|
cacheClear: "Εκκαθάριση προσωρινής μνήμης"
|
||||||
markAsReadAllNotifications: "Όλες οι ειδοποιήσεις διαβάστηκαν"
|
markAsReadAllNotifications: "Όλες οι ειδοποιήσεις διαβάστηκαν"
|
||||||
members: "Μέλη"
|
members: "Μέλη"
|
||||||
transfer: "Μεταφορά"
|
transfer: "Μεταφορά"
|
||||||
|
@ -301,6 +303,8 @@ _theme:
|
||||||
_sfx:
|
_sfx:
|
||||||
note: "Σημειώματα"
|
note: "Σημειώματα"
|
||||||
notification: "Ειδοποιήσεις"
|
notification: "Ειδοποιήσεις"
|
||||||
|
antenna: "Αντένες"
|
||||||
|
channel: "Ειδοποιήσεις καναλιών"
|
||||||
_ago:
|
_ago:
|
||||||
future: "Μελλοντικό"
|
future: "Μελλοντικό"
|
||||||
justNow: "Μόλις τώρα"
|
justNow: "Μόλις τώρα"
|
||||||
|
@ -354,7 +358,6 @@ _profile:
|
||||||
username: "Όνομα μέλους"
|
username: "Όνομα μέλους"
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Όλα τα σημειώματα"
|
allNotes: "Όλα τα σημειώματα"
|
||||||
clips: "Κλιπ"
|
|
||||||
followingList: "Ακολουθεί"
|
followingList: "Ακολουθεί"
|
||||||
muteList: "Μέλη σε σίγαση"
|
muteList: "Μέλη σε σίγαση"
|
||||||
blockingList: "Μπλοκαρισμένα μέλη"
|
blockingList: "Μπλοκαρισμένα μέλη"
|
||||||
|
@ -378,7 +381,6 @@ _notification:
|
||||||
renote: "Κοινοποίηση σημειώματος"
|
renote: "Κοινοποίηση σημειώματος"
|
||||||
quote: "Παράθεση"
|
quote: "Παράθεση"
|
||||||
reaction: "Αντιδράσεις"
|
reaction: "Αντιδράσεις"
|
||||||
login: "Σύνδεση"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "Απάντηση"
|
reply: "Απάντηση"
|
||||||
renote: "Κοινοποίηση σημειώματος"
|
renote: "Κοινοποίηση σημειώματος"
|
||||||
|
@ -395,5 +397,3 @@ _webhookSettings:
|
||||||
name: "Όνομα"
|
name: "Όνομα"
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "Αποβολή"
|
suspend: "Αποβολή"
|
||||||
_reversi:
|
|
||||||
total: "Σύνολο"
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -8,12 +8,10 @@ search: "Buscar"
|
||||||
notifications: "Notificaciones"
|
notifications: "Notificaciones"
|
||||||
username: "Nombre de usuario"
|
username: "Nombre de usuario"
|
||||||
password: "Contraseña"
|
password: "Contraseña"
|
||||||
initialPasswordForSetup: "Contraseña para iniciar la inicialización"
|
|
||||||
initialPasswordIsIncorrect: "La contraseña para iniciar la configuración inicial es incorrecta."
|
|
||||||
forgotPassword: "Olvidé mi contraseña"
|
forgotPassword: "Olvidé mi contraseña"
|
||||||
fetchingAsApObject: "Buscando en el fediverso"
|
fetchingAsApObject: "Buscando en el fediverso"
|
||||||
ok: "OK"
|
ok: "OK"
|
||||||
gotIt: "¡Lo tengo!"
|
gotIt: "Entendido"
|
||||||
cancel: "Cancelar"
|
cancel: "Cancelar"
|
||||||
noThankYou: "No gracias"
|
noThankYou: "No gracias"
|
||||||
enterUsername: "Introduce el nombre de usuario"
|
enterUsername: "Introduce el nombre de usuario"
|
||||||
|
@ -62,7 +60,6 @@ copyFileId: "Copiar ID del archivo"
|
||||||
copyFolderId: "Copiar ID de carpeta"
|
copyFolderId: "Copiar ID de carpeta"
|
||||||
copyProfileUrl: "Copiar la URL del perfil"
|
copyProfileUrl: "Copiar la URL del perfil"
|
||||||
searchUser: "Buscar un usuario"
|
searchUser: "Buscar un usuario"
|
||||||
searchThisUsersNotes: ""
|
|
||||||
reply: "Responder"
|
reply: "Responder"
|
||||||
loadMore: "Ver más"
|
loadMore: "Ver más"
|
||||||
showMore: "Ver más"
|
showMore: "Ver más"
|
||||||
|
@ -111,14 +108,11 @@ enterEmoji: "Ingresar emojis"
|
||||||
renote: "Renotar"
|
renote: "Renotar"
|
||||||
unrenote: "Quitar renota"
|
unrenote: "Quitar renota"
|
||||||
renoted: "Renotado"
|
renoted: "Renotado"
|
||||||
renotedToX: "{name} usuarios han renotado。"
|
|
||||||
cantRenote: "No se puede renotar este post"
|
cantRenote: "No se puede renotar este post"
|
||||||
cantReRenote: "No se puede renotar una renota"
|
cantReRenote: "No se puede renotar una renota"
|
||||||
quote: "Citar"
|
quote: "Citar"
|
||||||
inChannelRenote: "Renota sólo del canal"
|
inChannelRenote: "Renota sólo del canal"
|
||||||
inChannelQuote: "Cita sólo del canal"
|
inChannelQuote: "Cita sólo del canal"
|
||||||
renoteToChannel: "Renotar a otro canal"
|
|
||||||
renoteToOtherChannel: "Renotar a otro canal"
|
|
||||||
pinnedNote: "Nota fijada"
|
pinnedNote: "Nota fijada"
|
||||||
pinned: "Fijar al perfil"
|
pinned: "Fijar al perfil"
|
||||||
you: "Tú"
|
you: "Tú"
|
||||||
|
@ -127,16 +121,10 @@ sensitive: "Marcado como sensible"
|
||||||
add: "Agregar"
|
add: "Agregar"
|
||||||
reaction: "Reacción"
|
reaction: "Reacción"
|
||||||
reactions: "Reacción"
|
reactions: "Reacción"
|
||||||
emojiPicker: "Selector de emojis"
|
reactionSetting: "Reacciones para mostrar en el menú de reacciones"
|
||||||
pinnedEmojisForReactionSettingDescription: "Puedes seleccionar reacciones para fijarlos en el selector"
|
|
||||||
pinnedEmojisSettingDescription: "Puedes seleccionar emojis para fijarlos en el selector"
|
|
||||||
emojiPickerDisplay: "Mostrar el selector de emojis"
|
|
||||||
overwriteFromPinnedEmojisForReaction: "Sobreescribir las reacciones fijadas"
|
|
||||||
overwriteFromPinnedEmojis: "Sobreescribir los emojis fijados"
|
|
||||||
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
|
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
|
||||||
rememberNoteVisibility: "Recordar visibilidad"
|
rememberNoteVisibility: "Recordar visibilidad"
|
||||||
attachCancel: "Quitar adjunto"
|
attachCancel: "Quitar adjunto"
|
||||||
deleteFile: "Archivo eliminado"
|
|
||||||
markAsSensitive: "Marcar como sensible"
|
markAsSensitive: "Marcar como sensible"
|
||||||
unmarkAsSensitive: "Desmarcar como sensible"
|
unmarkAsSensitive: "Desmarcar como sensible"
|
||||||
enterFileName: "Ingrese el nombre del archivo"
|
enterFileName: "Ingrese el nombre del archivo"
|
||||||
|
@ -157,7 +145,6 @@ editList: "Editar lista"
|
||||||
selectChannel: "Seleccionar canal"
|
selectChannel: "Seleccionar canal"
|
||||||
selectAntenna: "Seleccionar antena"
|
selectAntenna: "Seleccionar antena"
|
||||||
editAntenna: "Editar antena"
|
editAntenna: "Editar antena"
|
||||||
createAntenna: "Crear una antena"
|
|
||||||
selectWidget: "Seleccionar widget"
|
selectWidget: "Seleccionar widget"
|
||||||
editWidgets: "Editar widgets"
|
editWidgets: "Editar widgets"
|
||||||
editWidgetsExit: "Terminar edición"
|
editWidgetsExit: "Terminar edición"
|
||||||
|
@ -184,10 +171,6 @@ addAccount: "Agregar Cuenta"
|
||||||
reloadAccountsList: "Recargar lista de cuentas"
|
reloadAccountsList: "Recargar lista de cuentas"
|
||||||
loginFailed: "Error al iniciar sesión."
|
loginFailed: "Error al iniciar sesión."
|
||||||
showOnRemote: "Ver en una instancia remota"
|
showOnRemote: "Ver en una instancia remota"
|
||||||
continueOnRemote: "Ver en una instancia remota"
|
|
||||||
chooseServerOnMisskeyHub: "Elegir un servidor en Misskey Hub"
|
|
||||||
specifyServerHost: "Especifica una instancia directamente"
|
|
||||||
inputHostName: "Introduzca el dominio"
|
|
||||||
general: "General"
|
general: "General"
|
||||||
wallpaper: "Fondo de pantalla"
|
wallpaper: "Fondo de pantalla"
|
||||||
setWallpaper: "Establecer fondo de pantalla"
|
setWallpaper: "Establecer fondo de pantalla"
|
||||||
|
@ -246,7 +229,7 @@ done: "Terminado"
|
||||||
processing: "Procesando"
|
processing: "Procesando"
|
||||||
preview: "Vista previa"
|
preview: "Vista previa"
|
||||||
default: "Predeterminado"
|
default: "Predeterminado"
|
||||||
defaultValueIs: "Por defecto: {value}"
|
defaultValueIs: "Predeterminado"
|
||||||
noCustomEmojis: "No hay emojis personalizados"
|
noCustomEmojis: "No hay emojis personalizados"
|
||||||
noJobs: "No hay trabajos"
|
noJobs: "No hay trabajos"
|
||||||
federating: "Federando"
|
federating: "Federando"
|
||||||
|
@ -278,7 +261,6 @@ removed: "Borrado"
|
||||||
removeAreYouSure: "¿Desea borrar \"{x}\"?"
|
removeAreYouSure: "¿Desea borrar \"{x}\"?"
|
||||||
deleteAreYouSure: "¿Desea borrar \"{x}\"?"
|
deleteAreYouSure: "¿Desea borrar \"{x}\"?"
|
||||||
resetAreYouSure: "¿Desea reestablecer?"
|
resetAreYouSure: "¿Desea reestablecer?"
|
||||||
areYouSure: "¿Estás conforme?"
|
|
||||||
saved: "Guardado"
|
saved: "Guardado"
|
||||||
messaging: "Chat"
|
messaging: "Chat"
|
||||||
upload: "Subir"
|
upload: "Subir"
|
||||||
|
@ -313,7 +295,7 @@ location: "Lugar"
|
||||||
theme: "Tema"
|
theme: "Tema"
|
||||||
themeForLightMode: "Tema para usar en Modo Linterna"
|
themeForLightMode: "Tema para usar en Modo Linterna"
|
||||||
themeForDarkMode: "Tema para usar en Modo Oscuro"
|
themeForDarkMode: "Tema para usar en Modo Oscuro"
|
||||||
light: "Claro"
|
light: "Linterna"
|
||||||
dark: "Oscuro"
|
dark: "Oscuro"
|
||||||
lightThemes: "Tema claro"
|
lightThemes: "Tema claro"
|
||||||
darkThemes: "Tema oscuro"
|
darkThemes: "Tema oscuro"
|
||||||
|
@ -329,7 +311,6 @@ folderName: "Nombre de la carpeta"
|
||||||
createFolder: "Crear carpeta"
|
createFolder: "Crear carpeta"
|
||||||
renameFolder: "Renombrar carpeta"
|
renameFolder: "Renombrar carpeta"
|
||||||
deleteFolder: "Borrar carpeta"
|
deleteFolder: "Borrar carpeta"
|
||||||
folder: "Carpeta"
|
|
||||||
addFile: "Agregar archivo"
|
addFile: "Agregar archivo"
|
||||||
emptyDrive: "El drive está vacío"
|
emptyDrive: "El drive está vacío"
|
||||||
emptyFolder: "La carpeta está vacía"
|
emptyFolder: "La carpeta está vacía"
|
||||||
|
@ -391,11 +372,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Habilitar hCaptcha"
|
enableHcaptcha: "Habilitar hCaptcha"
|
||||||
hcaptchaSiteKey: "Clave del sitio"
|
hcaptchaSiteKey: "Clave del sitio"
|
||||||
hcaptchaSecretKey: "Clave secreta"
|
hcaptchaSecretKey: "Clave secreta"
|
||||||
mcaptcha: "mCaptcha"
|
|
||||||
enableMcaptcha: "Activar mCaptcha"
|
|
||||||
mcaptchaSiteKey: "Clave del sitio"
|
|
||||||
mcaptchaSecretKey: "Clave secreta"
|
|
||||||
mcaptchaInstanceUrl: "URL del servidor mCaptcha"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "activar reCAPTCHA"
|
enableRecaptcha: "activar reCAPTCHA"
|
||||||
recaptchaSiteKey: "Clave del sitio"
|
recaptchaSiteKey: "Clave del sitio"
|
||||||
|
@ -411,7 +387,6 @@ name: "Nombre"
|
||||||
antennaSource: "Origen de la antena"
|
antennaSource: "Origen de la antena"
|
||||||
antennaKeywords: "Palabras clave para recibir"
|
antennaKeywords: "Palabras clave para recibir"
|
||||||
antennaExcludeKeywords: "Palabras clave para excluir"
|
antennaExcludeKeywords: "Palabras clave para excluir"
|
||||||
antennaExcludeBots: "Excluir bots"
|
|
||||||
antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
|
antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
|
||||||
notifyAntenna: "Notificar nueva nota"
|
notifyAntenna: "Notificar nueva nota"
|
||||||
withFileAntenna: "Sólo notas con archivos adjuntados"
|
withFileAntenna: "Sólo notas con archivos adjuntados"
|
||||||
|
@ -462,6 +437,7 @@ share: "Compartir"
|
||||||
notFound: "No se encuentra"
|
notFound: "No se encuentra"
|
||||||
notFoundDescription: "No se encontró la página correspondiente a la URL elegida"
|
notFoundDescription: "No se encontró la página correspondiente a la URL elegida"
|
||||||
uploadFolder: "Carpeta de subidas por defecto"
|
uploadFolder: "Carpeta de subidas por defecto"
|
||||||
|
cacheClear: "Borrar caché"
|
||||||
markAsReadAllNotifications: "Marcar todas las notificaciones como leídas"
|
markAsReadAllNotifications: "Marcar todas las notificaciones como leídas"
|
||||||
markAsReadAllUnreadNotes: "Marcar todas las notas como leídas"
|
markAsReadAllUnreadNotes: "Marcar todas las notas como leídas"
|
||||||
markAsReadAllTalkMessages: "Marcar todos los chats como leídos"
|
markAsReadAllTalkMessages: "Marcar todos los chats como leídos"
|
||||||
|
@ -504,10 +480,8 @@ uiLanguage: "Idioma de visualización de la interfaz"
|
||||||
aboutX: "Acerca de {x}"
|
aboutX: "Acerca de {x}"
|
||||||
emojiStyle: "Estilo de emoji"
|
emojiStyle: "Estilo de emoji"
|
||||||
native: "Nativo"
|
native: "Nativo"
|
||||||
menuStyle: "Diseño del menú"
|
disableDrawer: "No mostrar los menús en cajones"
|
||||||
style: "Diseño"
|
|
||||||
showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor"
|
showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor"
|
||||||
showReactionsCount: "Mostrar el número de reacciones en las notas"
|
|
||||||
noHistory: "No hay datos en el historial"
|
noHistory: "No hay datos en el historial"
|
||||||
signinHistory: "Historial de ingresos"
|
signinHistory: "Historial de ingresos"
|
||||||
enableAdvancedMfm: "Habilitar MFM avanzado"
|
enableAdvancedMfm: "Habilitar MFM avanzado"
|
||||||
|
@ -570,8 +544,6 @@ showInPage: "Mostrar en la página"
|
||||||
popout: "Popout"
|
popout: "Popout"
|
||||||
volume: "Volumen"
|
volume: "Volumen"
|
||||||
masterVolume: "Volumen principal"
|
masterVolume: "Volumen principal"
|
||||||
notUseSound: "Sin sonido"
|
|
||||||
useSoundOnlyWhenActive: "Sonar solo cuando Misskey esté activo"
|
|
||||||
details: "Detalles"
|
details: "Detalles"
|
||||||
chooseEmoji: "Elije un emoji"
|
chooseEmoji: "Elije un emoji"
|
||||||
unableToProcess: "La operación no se puede llevar a cabo"
|
unableToProcess: "La operación no se puede llevar a cabo"
|
||||||
|
@ -592,10 +564,6 @@ output: "Salida"
|
||||||
script: "Script"
|
script: "Script"
|
||||||
disablePagesScript: "Deshabilitar AiScript en Páginas"
|
disablePagesScript: "Deshabilitar AiScript en Páginas"
|
||||||
updateRemoteUser: "Actualizar información de usuario remoto"
|
updateRemoteUser: "Actualizar información de usuario remoto"
|
||||||
unsetUserAvatar: "Quitar avatar"
|
|
||||||
unsetUserAvatarConfirm: "¿Confirmas que quieres quitar tu avatar?"
|
|
||||||
unsetUserBanner: "Quitar banner"
|
|
||||||
unsetUserBannerConfirm: "¿Confirmas que quieres quitar tu banner?"
|
|
||||||
deleteAllFiles: "Borrar todos los archivos"
|
deleteAllFiles: "Borrar todos los archivos"
|
||||||
deleteAllFilesConfirm: "¿Desea borrar todos los archivos?"
|
deleteAllFilesConfirm: "¿Desea borrar todos los archivos?"
|
||||||
removeAllFollowing: "Retener todos los siguientes"
|
removeAllFollowing: "Retener todos los siguientes"
|
||||||
|
@ -646,7 +614,6 @@ medium: "Mediano"
|
||||||
small: "Pequeño"
|
small: "Pequeño"
|
||||||
generateAccessToken: "Generar token de acceso"
|
generateAccessToken: "Generar token de acceso"
|
||||||
permission: "Permisos"
|
permission: "Permisos"
|
||||||
adminPermission: "Permiso de administrador"
|
|
||||||
enableAll: "Activar todo"
|
enableAll: "Activar todo"
|
||||||
disableAll: "Desactivar todo"
|
disableAll: "Desactivar todo"
|
||||||
tokenRequested: "Permiso de acceso a la cuenta"
|
tokenRequested: "Permiso de acceso a la cuenta"
|
||||||
|
@ -668,7 +635,6 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
|
||||||
smtpSecureInfo: "Apagar cuando se use STARTTLS"
|
smtpSecureInfo: "Apagar cuando se use STARTTLS"
|
||||||
testEmail: "Prueba de envío"
|
testEmail: "Prueba de envío"
|
||||||
wordMute: "Silenciar palabras"
|
wordMute: "Silenciar palabras"
|
||||||
hardWordMute: "Filtro de palabra fuerte"
|
|
||||||
regexpError: "Error de la expresión regular"
|
regexpError: "Error de la expresión regular"
|
||||||
regexpErrorDescription: "Ocurrió un error en la expresión regular en la linea {line} de las palabras muteadas {tab}"
|
regexpErrorDescription: "Ocurrió un error en la expresión regular en la linea {line} de las palabras muteadas {tab}"
|
||||||
instanceMute: "Instancias silenciadas"
|
instanceMute: "Instancias silenciadas"
|
||||||
|
@ -690,7 +656,6 @@ useGlobalSettingDesc: "Al activarse, se usará la configuración de notificacion
|
||||||
other: "Otro"
|
other: "Otro"
|
||||||
regenerateLoginToken: "Regenerar token de login"
|
regenerateLoginToken: "Regenerar token de login"
|
||||||
regenerateLoginTokenDescription: "Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos."
|
regenerateLoginTokenDescription: "Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos."
|
||||||
theKeywordWhenSearchingForCustomEmoji: "Palabra clave para buscar el emoji personalizado."
|
|
||||||
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
|
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
|
||||||
fileIdOrUrl: "Id del archivo o URL"
|
fileIdOrUrl: "Id del archivo o URL"
|
||||||
behavior: "Comportamiento"
|
behavior: "Comportamiento"
|
||||||
|
@ -704,7 +669,10 @@ abuseReported: "Se ha enviado el reporte. Muchas gracias."
|
||||||
reporter: "Reportador"
|
reporter: "Reportador"
|
||||||
reporteeOrigin: "Reportar a"
|
reporteeOrigin: "Reportar a"
|
||||||
reporterOrigin: "Origen del reporte"
|
reporterOrigin: "Origen del reporte"
|
||||||
|
forwardReport: "Transferir un informe a una instancia remota"
|
||||||
|
forwardReportIsAnonymous: "No puede ver su información de la instancia remota y aparecerá como una cuenta anónima del sistema"
|
||||||
send: "Enviar"
|
send: "Enviar"
|
||||||
|
abuseMarkAsResolved: "Marcar reporte como resuelto"
|
||||||
openInNewTab: "Abrir en una Nueva Pestaña"
|
openInNewTab: "Abrir en una Nueva Pestaña"
|
||||||
openInSideView: "Abrir en una vista al costado"
|
openInSideView: "Abrir en una vista al costado"
|
||||||
defaultNavigationBehaviour: "Navegación por defecto"
|
defaultNavigationBehaviour: "Navegación por defecto"
|
||||||
|
@ -900,8 +868,8 @@ makeReactionsPublicDescription: "Todas las reacciones que hayas hecho serán pú
|
||||||
classic: "Clásico"
|
classic: "Clásico"
|
||||||
muteThread: "Silenciar hilo"
|
muteThread: "Silenciar hilo"
|
||||||
unmuteThread: "Mostrar hilo"
|
unmuteThread: "Mostrar hilo"
|
||||||
followingVisibility: "Visibilidad de seguidos"
|
ffVisibility: "Visibilidad de seguidores y seguidos"
|
||||||
followersVisibility: "Visibilidad de seguidores"
|
ffVisibilityDescription: "Puedes configurar quien puede ver a quienes sigues y quienes te siguen"
|
||||||
continueThread: "Ver la continuación del hilo"
|
continueThread: "Ver la continuación del hilo"
|
||||||
deleteAccountConfirm: "La cuenta será borrada. ¿Está seguro?"
|
deleteAccountConfirm: "La cuenta será borrada. ¿Está seguro?"
|
||||||
incorrectPassword: "La contraseña es incorrecta"
|
incorrectPassword: "La contraseña es incorrecta"
|
||||||
|
@ -929,9 +897,6 @@ oneHour: "1 hora"
|
||||||
oneDay: "1 día"
|
oneDay: "1 día"
|
||||||
oneWeek: "1 semana"
|
oneWeek: "1 semana"
|
||||||
oneMonth: "1 mes"
|
oneMonth: "1 mes"
|
||||||
threeMonths: "Tres meses"
|
|
||||||
oneYear: "Un año"
|
|
||||||
threeDays: "Tres días"
|
|
||||||
reflectMayTakeTime: "Puede pasar un tiempo hasta que se reflejen los cambios"
|
reflectMayTakeTime: "Puede pasar un tiempo hasta que se reflejen los cambios"
|
||||||
failedToFetchAccountInformation: "No se pudo obtener información de la cuenta"
|
failedToFetchAccountInformation: "No se pudo obtener información de la cuenta"
|
||||||
rateLimitExceeded: "Se excedió el límite de peticiones"
|
rateLimitExceeded: "Se excedió el límite de peticiones"
|
||||||
|
@ -1005,7 +970,6 @@ neverShow: "No mostrar de nuevo"
|
||||||
remindMeLater: "Recordar después"
|
remindMeLater: "Recordar después"
|
||||||
didYouLikeMisskey: "¿Te gusta Misskey?"
|
didYouLikeMisskey: "¿Te gusta Misskey?"
|
||||||
pleaseDonate: "{host} usa el software gratuito Misskey. Por favor ¡Considera donar al proyecto principal para que podamos continuar!"
|
pleaseDonate: "{host} usa el software gratuito Misskey. Por favor ¡Considera donar al proyecto principal para que podamos continuar!"
|
||||||
correspondingSourceIsAvailable: "El código fuente correspondiente se encuentra disponible en {anchor}"
|
|
||||||
roles: "Roles"
|
roles: "Roles"
|
||||||
role: "Rol"
|
role: "Rol"
|
||||||
noRole: "Rol no encontrado"
|
noRole: "Rol no encontrado"
|
||||||
|
@ -1015,7 +979,6 @@ assign: "Asignar"
|
||||||
unassign: "Quitar"
|
unassign: "Quitar"
|
||||||
color: "Color"
|
color: "Color"
|
||||||
manageCustomEmojis: "Administrar emojis personalizados"
|
manageCustomEmojis: "Administrar emojis personalizados"
|
||||||
manageAvatarDecorations: "Administrar decoraciones de avatar"
|
|
||||||
youCannotCreateAnymore: "Has llegado al límite de creaciones."
|
youCannotCreateAnymore: "Has llegado al límite de creaciones."
|
||||||
cannotPerformTemporary: "Temporalmente no disponible"
|
cannotPerformTemporary: "Temporalmente no disponible"
|
||||||
cannotPerformTemporaryDescription: "Esta acción no se puede realizar porque se excedió el límite de ejecución. Espera un poco y prueba de nuevo."
|
cannotPerformTemporaryDescription: "Esta acción no se puede realizar porque se excedió el límite de ejecución. Espera un poco y prueba de nuevo."
|
||||||
|
@ -1056,11 +1019,6 @@ resetPasswordConfirm: "¿Realmente quieres cambiar la contraseña?"
|
||||||
sensitiveWords: "Palabras sensibles"
|
sensitiveWords: "Palabras sensibles"
|
||||||
sensitiveWordsDescription: "La visibilidad de todas las notas que contienen cualquiera de las palabras configuradas serán puestas en \"Inicio\" automáticamente. Puedes enumerás varias separándolas con saltos de línea"
|
sensitiveWordsDescription: "La visibilidad de todas las notas que contienen cualquiera de las palabras configuradas serán puestas en \"Inicio\" automáticamente. Puedes enumerás varias separándolas con saltos de línea"
|
||||||
sensitiveWordsDescription2: "Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
|
sensitiveWordsDescription2: "Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
|
||||||
prohibitedWords: "Palabras explícitas"
|
|
||||||
prohibitedWordsDescription: "Activa un error cuando se intenta publicar una nota que contiene una o varias palabras prohibidas. Se pueden establecer varias palabras, una por línea."
|
|
||||||
prohibitedWordsDescription2: "Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
|
|
||||||
hiddenTags: "Hashtags ocultos"
|
|
||||||
hiddenTagsDescription: "Selecciona las etiquetas que no se mostrarán en tendencias. Una etiqueta por línea."
|
|
||||||
notesSearchNotAvailable: "No se puede buscar una nota"
|
notesSearchNotAvailable: "No se puede buscar una nota"
|
||||||
license: "Licencia"
|
license: "Licencia"
|
||||||
unfavoriteConfirm: "¿Desea quitar de favoritos?"
|
unfavoriteConfirm: "¿Desea quitar de favoritos?"
|
||||||
|
@ -1073,12 +1031,9 @@ enableChartsForRemoteUser: "Generar gráficas de usuarios remotos."
|
||||||
enableChartsForFederatedInstances: "Generar gráficos de servidores remotos"
|
enableChartsForFederatedInstances: "Generar gráficos de servidores remotos"
|
||||||
showClipButtonInNoteFooter: "Añadir \"Clip\" al menú de notas"
|
showClipButtonInNoteFooter: "Añadir \"Clip\" al menú de notas"
|
||||||
reactionsDisplaySize: "Tamaño de las reacciones"
|
reactionsDisplaySize: "Tamaño de las reacciones"
|
||||||
limitWidthOfReaction: "Limitar ancho de las reacciones"
|
|
||||||
noteIdOrUrl: "ID o URL de la nota"
|
noteIdOrUrl: "ID o URL de la nota"
|
||||||
video: "Video"
|
video: "Video"
|
||||||
videos: "Video"
|
videos: "Video"
|
||||||
audio: "Sonido"
|
|
||||||
audioFiles: "Sonido"
|
|
||||||
dataSaver: "Ahorro de datos"
|
dataSaver: "Ahorro de datos"
|
||||||
accountMigration: "Migración de cuenta"
|
accountMigration: "Migración de cuenta"
|
||||||
accountMoved: "Este usuario se movió a una nueva cuenta:"
|
accountMoved: "Este usuario se movió a una nueva cuenta:"
|
||||||
|
@ -1106,8 +1061,6 @@ preservedUsernames: "Nombre de usuario reservado"
|
||||||
preservedUsernamesDescription: "La lista de nombres de usuario para reservar tienen que separarse con saltos de línea.\nEstos estarán indisponibles durante la creación de cuentas, pero pueden ser usados para que los administradores puedan crear esas cuentas manualmente. Las cuentas existentes con esos nombres de usuario no se verán afectadas."
|
preservedUsernamesDescription: "La lista de nombres de usuario para reservar tienen que separarse con saltos de línea.\nEstos estarán indisponibles durante la creación de cuentas, pero pueden ser usados para que los administradores puedan crear esas cuentas manualmente. Las cuentas existentes con esos nombres de usuario no se verán afectadas."
|
||||||
createNoteFromTheFile: "Componer una nota desde éste archivo"
|
createNoteFromTheFile: "Componer una nota desde éste archivo"
|
||||||
archive: "Archivo"
|
archive: "Archivo"
|
||||||
archived: "Archivado"
|
|
||||||
unarchive: "Desarchivar"
|
|
||||||
channelArchiveConfirmTitle: "¿Seguro de archivar {name}?"
|
channelArchiveConfirmTitle: "¿Seguro de archivar {name}?"
|
||||||
channelArchiveConfirmDescription: "Un canal archivado no aparecerá en la lista de canales ni en los resultados. Las nuevas publicaciones tampoco serán añadidas."
|
channelArchiveConfirmDescription: "Un canal archivado no aparecerá en la lista de canales ni en los resultados. Las nuevas publicaciones tampoco serán añadidas."
|
||||||
thisChannelArchived: "El canal ha sido archivado."
|
thisChannelArchived: "El canal ha sido archivado."
|
||||||
|
@ -1176,104 +1129,17 @@ showRenotes: "Mostrar renotas"
|
||||||
edited: "Editado"
|
edited: "Editado"
|
||||||
notificationRecieveConfig: "Ajustes de Notificaciones"
|
notificationRecieveConfig: "Ajustes de Notificaciones"
|
||||||
mutualFollow: "Os seguís mutuamente"
|
mutualFollow: "Os seguís mutuamente"
|
||||||
followingOrFollower: "Siguiendo o seguidor"
|
|
||||||
fileAttachedOnly: "Solo notas con archivos"
|
fileAttachedOnly: "Solo notas con archivos"
|
||||||
showRepliesToOthersInTimeline: "Mostrar respuestas a otros en la línea de tiempo"
|
showRepliesToOthersInTimeline: "Mostrar respuestas a otros en la línea de tiempo"
|
||||||
hideRepliesToOthersInTimeline: "Ocultar respuestas a otros en la línea de tiempo"
|
hideRepliesToOthersInTimeline: "Ocultar respuestas a otros en la línea de tiempo"
|
||||||
showRepliesToOthersInTimelineAll: "Muestra tus respuestas a otros usuarios que sigues en la línea de tiempo"
|
|
||||||
hideRepliesToOthersInTimelineAll: "Ocultar tus respuestas a otros usuarios que sigues en la línea de tiempo"
|
|
||||||
confirmShowRepliesAll: "Esta operación es irreversible. ¿Confirmas que quieres mostrar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
|
|
||||||
confirmHideRepliesAll: "Esta operación es irreversible. ¿Confirmas que quieres ocultar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
|
|
||||||
externalServices: "Servicios Externos"
|
externalServices: "Servicios Externos"
|
||||||
sourceCode: "Código fuente"
|
|
||||||
sourceCodeIsNotYetProvided: "El código fuente aún no está disponible. Contacta con el administrador para solucionarlo."
|
|
||||||
repositoryUrl: "URL del repositorio"
|
|
||||||
repositoryUrlDescription: "Si estás usando Misskey tal cual (sin cambios en el código fuente), entra en https://github.com/misskey-dev/misskey"
|
|
||||||
repositoryUrlOrTarballRequired: "Si no has publicado un repositorio aún, deberás publicar un tarball en su lugar. Mira el archivo .config/example.yml para más información."
|
|
||||||
feedback: "Comentarios"
|
|
||||||
feedbackUrl: "URL de comentarios"
|
|
||||||
impressum: "Impressum"
|
impressum: "Impressum"
|
||||||
impressumUrl: "Impressum URL"
|
impressumUrl: "Impressum URL"
|
||||||
impressumDescription: "En algunos países, como Alemania, la inclusión del operador de datos (el Impressum) es requerido legalmente para sitios web comerciales."
|
impressumDescription: "En algunos países, como Alemania, la inclusión del operador de datos (el Impressum) es requerido legalmente para sitios web comerciales."
|
||||||
privacyPolicy: "Política de Privacidad"
|
privacyPolicy: "Política de Privacidad"
|
||||||
privacyPolicyUrl: "URL de la Política de Privacidad"
|
privacyPolicyUrl: "URL de la Política de Privacidad"
|
||||||
tosAndPrivacyPolicy: "Condiciones de Uso y Política de Privacidad"
|
tosAndPrivacyPolicy: "Condiciones de Uso y Política de Privacidad"
|
||||||
avatarDecorations: "Decoraciones de avatar"
|
|
||||||
attach: "Acoplar"
|
|
||||||
detach: "Quitar"
|
|
||||||
detachAll: "Quitar todo"
|
|
||||||
angle: "Ángulo"
|
|
||||||
flip: "Echar de un capirotazo"
|
flip: "Echar de un capirotazo"
|
||||||
showAvatarDecorations: "Mostrar decoraciones de avatar"
|
|
||||||
releaseToRefresh: "Soltar para recargar"
|
|
||||||
refreshing: "Recargando..."
|
|
||||||
pullDownToRefresh: "Tira hacia abajo para recargar"
|
|
||||||
disableStreamingTimeline: "Desactivar actualizaciones en tiempo real de la línea de tiempo"
|
|
||||||
useGroupedNotifications: "Mostrar notificaciones agrupadas"
|
|
||||||
signupPendingError: "Ha habido un problema al verificar tu dirección de correo electrónico. Es posible que el enlace haya caducado."
|
|
||||||
cwNotationRequired: "Si se ha activado \"ocultar contenido\", es necesario proporcionar una descripción."
|
|
||||||
doReaction: "Añadir reacción"
|
|
||||||
code: "Código"
|
|
||||||
reloadRequiredToApplySettings: "Es necesario recargar para que se aplique la configuración."
|
|
||||||
remainingN: "Faltan: {n}"
|
|
||||||
overwriteContentConfirm: "¿Quieres sustituir todo el contenido actual?"
|
|
||||||
seasonalScreenEffect: "Efectos de pantalla asociados a estaciones"
|
|
||||||
decorate: "Decorar"
|
|
||||||
addMfmFunction: "Añadir función MFM"
|
|
||||||
enableQuickAddMfmFunction: "Activar acceso rápido para añadir funciones MFM"
|
|
||||||
bubbleGame: "Bubble Game"
|
|
||||||
sfx: "Efectos de sonido"
|
|
||||||
soundWillBePlayed: "Se reproducirán efectos sonoros"
|
|
||||||
showReplay: "Ver reproducción"
|
|
||||||
replay: "Reproducir"
|
|
||||||
replaying: "Reproduciendo"
|
|
||||||
endReplay: "Terminar reproducción"
|
|
||||||
copyReplayData: "Copiar datos de reproducción"
|
|
||||||
ranking: "Clasificación"
|
|
||||||
lastNDays: "Últimos {n} días"
|
|
||||||
backToTitle: "Regresar al inicio"
|
|
||||||
hemisphere: "Región"
|
|
||||||
withSensitive: "Mostrar notas que contengan material sensible"
|
|
||||||
userSaysSomethingSensitive: "La publicación de {name} contiene material sensible"
|
|
||||||
enableHorizontalSwipe: "Deslice para cambiar de pestaña"
|
|
||||||
loading: "Cargando"
|
|
||||||
surrender: "detener"
|
|
||||||
gameRetry: "Reintentar"
|
|
||||||
notUsePleaseLeaveBlank: "Dejar en blanco si no se usa"
|
|
||||||
useTotp: "Introduce la contraseña de un solo uso"
|
|
||||||
useBackupCode: "Usar códigos de respaldo"
|
|
||||||
launchApp: "Ejecutar la app"
|
|
||||||
useNativeUIForVideoAudioPlayer: "Usar la interfaz del navegador cuando se reproduce audio y vídeo"
|
|
||||||
keepOriginalFilename: "Mantener el nombre original del archivo"
|
|
||||||
noDescription: "No hay descripción"
|
|
||||||
alwaysConfirmFollow: "Confirmar siempre cuando se sigue a alguien"
|
|
||||||
inquiry: "Contacto"
|
|
||||||
tryAgain: "Por favor , inténtalo de nuevo"
|
|
||||||
performance: "Rendimiento"
|
|
||||||
unknownWebAuthnKey: "Esto no se ha registrado llave maestra."
|
|
||||||
messageToFollower: "Mensaje a seguidores"
|
|
||||||
_abuseUserReport:
|
|
||||||
accept: "Acepte"
|
|
||||||
reject: "repudio"
|
|
||||||
_delivery:
|
|
||||||
stop: "Suspendido"
|
|
||||||
_type:
|
|
||||||
none: "Publicando"
|
|
||||||
_bubbleGame:
|
|
||||||
howToPlay: "Cómo jugar"
|
|
||||||
hold: "Mantener"
|
|
||||||
_score:
|
|
||||||
score: "Puntos"
|
|
||||||
scoreYen: "Cantidad de dinero ganada"
|
|
||||||
highScore: "Puntuación más alta"
|
|
||||||
maxChain: "Número máximo de cadenas"
|
|
||||||
yen: "{yen} Yenes"
|
|
||||||
estimatedQty: "{qty} Piezas"
|
|
||||||
scoreSweets: "{onigiriQtyWithUnit} Onigiris"
|
|
||||||
_howToPlay:
|
|
||||||
section1: "Ajuste la posición y deje caer el objeto en la caja"
|
|
||||||
section2: "Cuando dos objetos del mismo tipo se tocan, cambian a otro tipo y consigues puntos"
|
|
||||||
section3: "El juego termina cuando la caja se desborda de objetos. ¡Intenta conseguir una puntuación alta al juntar objetos mientras evitas desbordar la caja!"
|
|
||||||
_announcement:
|
_announcement:
|
||||||
forExistingUsers: "Solo para usuarios registrados"
|
forExistingUsers: "Solo para usuarios registrados"
|
||||||
forExistingUsersDescription: "Este anuncio solo se mostrará a aquellos usuarios registrados en el momento de su publicación. Si se deshabilita esta opción, aquellos usuarios que se registren tras su publicación también lo verán."
|
forExistingUsersDescription: "Este anuncio solo se mostrará a aquellos usuarios registrados en el momento de su publicación. Si se deshabilita esta opción, aquellos usuarios que se registren tras su publicación también lo verán."
|
||||||
|
@ -1283,10 +1149,6 @@ _announcement:
|
||||||
tooManyActiveAnnouncementDescription: "Tener demasiados anuncios activos empeora la experiencia de usuario. Por favor, considera archivar aquellos anuncios que hayan quedado obsoletos."
|
tooManyActiveAnnouncementDescription: "Tener demasiados anuncios activos empeora la experiencia de usuario. Por favor, considera archivar aquellos anuncios que hayan quedado obsoletos."
|
||||||
readConfirmTitle: "¿Marcar como leído?"
|
readConfirmTitle: "¿Marcar como leído?"
|
||||||
readConfirmText: "Esto marcará el contenido de \"{title}\" como leído."
|
readConfirmText: "Esto marcará el contenido de \"{title}\" como leído."
|
||||||
shouldNotBeUsedToPresentPermanentInfo: "Dado que puede impactar en la experiencia de usuario de forma significativa, es recomendable usar notificaciones en el flujo de información en vez de información persistente."
|
|
||||||
dialogAnnouncementUxWarn: "Mostrar dos o más notificaciones en formato diálogo a la vez puede impactar en la experiencia de usuario de forma significativa, úsalos con cuidado."
|
|
||||||
silence: "Silenciar notificaciones"
|
|
||||||
silenceDescription: "Si lo activas, no enviarás notificación sobre este anuncio y el usuario no tendrá que leerlo."
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "¡La cuenta ha sido creada!"
|
accountCreated: "¡La cuenta ha sido creada!"
|
||||||
letsStartAccountSetup: "Para empezar, creemos tu perfil."
|
letsStartAccountSetup: "Para empezar, creemos tu perfil."
|
||||||
|
@ -1299,77 +1161,9 @@ _initialAccountSetting:
|
||||||
pushNotificationDescription: "Habilitar las notificaciones push te permitirá recibir notificaciones de {name} directamente en tu dispositivo."
|
pushNotificationDescription: "Habilitar las notificaciones push te permitirá recibir notificaciones de {name} directamente en tu dispositivo."
|
||||||
initialAccountSettingCompleted: "¡Configuración del perfil completada!"
|
initialAccountSettingCompleted: "¡Configuración del perfil completada!"
|
||||||
haveFun: "¡Disfruta de {name}!"
|
haveFun: "¡Disfruta de {name}!"
|
||||||
youCanContinueTutorial: "Puedes proceder a un tutorial sobre cómo usar {name} (Misskey) o puedes terminar la instalación aquí y empezar a usarlo ya mismo."
|
ifYouNeedLearnMore: "Si quieres aprender cómo usar {name} (Misskey), por favor, visita {link}."
|
||||||
startTutorial: "Comenzar tutorial"
|
|
||||||
skipAreYouSure: "¿Realmente quieres saltarte la configuración del perfil?"
|
skipAreYouSure: "¿Realmente quieres saltarte la configuración del perfil?"
|
||||||
laterAreYouSure: "¿Realmente quieres configurar tu perfil después?"
|
laterAreYouSure: "¿Realmente quieres configurar tu perfil después?"
|
||||||
_initialTutorial:
|
|
||||||
launchTutorial: "Comenzar tutorial"
|
|
||||||
title: "Tutorial"
|
|
||||||
wellDone: "¡Bien hecho!"
|
|
||||||
skipAreYouSure: "¿Salir del tutorial?"
|
|
||||||
_landing:
|
|
||||||
title: "Bienvenid@ al tutorial"
|
|
||||||
description: "Aquí podrás aprender las nociones básicas sobre cómo usar Misskey y sus funciones."
|
|
||||||
_note:
|
|
||||||
title: "¿Qué es una nota?"
|
|
||||||
description: "Las publicaciones en Misskey se llaman 'Notas'. Las notas se ordenan de forma cronológica en la línea de tiempo y se actualizan en tiempo real."
|
|
||||||
reply: "Pulsa en este botón para contestar a un mensaje. También es posible contestar a otras contestaciones, continuando así la conversación como un hilo."
|
|
||||||
renote: "Puedes compartir esa nota en tu propia línea de tiempo. También puedes añadir una cita con tus comentarios."
|
|
||||||
reaction: "Puedes añadir reacciones a la Nota. Se explicarán más detalles en la siguiente página."
|
|
||||||
menu: "Puedes ver los detalles de la Nota, copiar enlaces, y realizar otras acciones."
|
|
||||||
_reaction:
|
|
||||||
title: "¿Qué son las reacciones?"
|
|
||||||
description: "Se puede reaccionar a las Notas con diferentes emojis. Las reacciones te permiten expresar matices que no se pueden transmitir con un simple 'me gusta'."
|
|
||||||
letsTryReacting: "Puedes añadir reacciones pulsando en el botón '+' de la nota. ¡Intenta reaccionar a esta nota de ejemplo!"
|
|
||||||
reactToContinue: "Añade una reacción para continuar."
|
|
||||||
reactNotification: "Recibirás notificaciones en tiempo real cuando alguien reaccione a tu nota."
|
|
||||||
reactDone: "Puedes deshacer una reacción pulsando en el botón '-'."
|
|
||||||
_timeline:
|
|
||||||
title: "El concepto de Línea de tiempo"
|
|
||||||
description1: "Misskey proporciona múltiples líneas de tiempo basadas en su uso (algunas pueden no estar disponibles dependiendo de las políticas de la instancia)."
|
|
||||||
home: "Puedes ver los posts de las cuentas que sigues."
|
|
||||||
local: "Puedes ver los posts de todos los usuarios de este servidor."
|
|
||||||
social: "Se ven los posts de la línea de tiempo de inicio junto con los de la línea de tiempo local."
|
|
||||||
global: "Puedes ver notas de todos los servidores conectados."
|
|
||||||
description2: "Puedes cambiar la línea de tiempo en la parte superior de la pantalla cuando quieras."
|
|
||||||
description3: "Además, hay listas de líneas de tiempo y listas de canales. Para más detalle, por favor visita este enlace: {link}"
|
|
||||||
_postNote:
|
|
||||||
title: "Ajustes de publicación de nota"
|
|
||||||
description1: "Cuando publicas una nota en Misskey, hay varias opciones disponibles. El formulario tiene este aspecto."
|
|
||||||
_visibility:
|
|
||||||
description: "Puedes limitar quién puede ver tu nota."
|
|
||||||
public: "Tu nota será visible para todos los usuarios."
|
|
||||||
home: "Publicar solo en la línea de tiempo de Inicio. La nota se verá en tu perfil, la verán tus seguidores y también cuando sea renotada."
|
|
||||||
followers: "Visible solo para seguidores. Sólo tus seguidores podrán ver la nota, y no podrá ser renotada por otras personas."
|
|
||||||
direct: "Visible sólo para usuarios específicos, y el destinatario será notificado. Puede usarse como alternativa a la mensajería directa."
|
|
||||||
doNotSendConfidencialOnDirect1: "¡Ten cuidado cuando vayas a enviar información sensible!"
|
|
||||||
doNotSendConfidencialOnDirect2: "Los administradores del servidor pueden leer lo que escribes. Ten cuidado cuando envíes información sensible en notas directas en servidores no confiables."
|
|
||||||
localOnly: "Publicando con esta opción seleccionada, la nota no se federará hacia otros servidores. Los usuarios de otros servidores no podrán ver estas notas directamente, sin importar los ajustes seleccionados más arriba."
|
|
||||||
_cw:
|
|
||||||
title: "Alerta de contenido (CW)"
|
|
||||||
description: "En lugar de mostrarse el contenido de la nota, se mostrará lo que escribas en el campo \"comentarios\". Pulsando en \"leer más\" desplegará el contenido de la nota."
|
|
||||||
_exampleNote:
|
|
||||||
cw: "¡Esto te hará tener hambre!"
|
|
||||||
note: "Acabo de comerme un donut de chocolate glaseado 🍩😋"
|
|
||||||
useCases: "Esto se usa cuando las normas del servidor lo requieren, o para ocultar spoilers o contenido sensible."
|
|
||||||
_howToMakeAttachmentsSensitive:
|
|
||||||
title: "¿Cómo puedo marcar adjuntos como contenido sensible?"
|
|
||||||
description: "Cuando las normas del servidor lo requieran, o el contenido lo requiera, marca la opción de \"contenido sensible\" para el adjunto."
|
|
||||||
tryThisFile: "¡Prueba a marcar la imagen adjunta como contenido sensible!"
|
|
||||||
_exampleNote:
|
|
||||||
note: "Ups, la he liado al abrir la tapa del natto..."
|
|
||||||
method: "Para marcar un adjunto como sensible, haz clic en la miniatura, abre el menú, y haz clic en \"Marcar como sensible\"."
|
|
||||||
sensitiveSucceeded: "Cuando adjuntes archivos, por favor, ten en cuenta las normas del servidor para marcarlos como contenido sensible."
|
|
||||||
doItToContinue: "Marca el archivo adjunto como sensible para continuar."
|
|
||||||
_done:
|
|
||||||
title: "¡Has completado el tutorial! 🎉"
|
|
||||||
description: "Las funciones que mostramos aquí son sólo una pequeña parte. Para más detalles sobre el funcionamiento de Misskey, pulsa en este enlace: {link}"
|
|
||||||
_timelineDescription:
|
|
||||||
home: "En la línea de tiempo de Inicio puedes ver las notas de las cuentas a las que sigues."
|
|
||||||
local: "En la línea de tiempo Local puedes ver las notas de todos los usuarios del servidor."
|
|
||||||
social: "En la línea de tiempo Social verás las notas de Inicio y Local a la vez."
|
|
||||||
global: "En la línea de tiempo Global verás las notas de todos los servidores conectados."
|
|
||||||
_serverRules:
|
_serverRules:
|
||||||
description: "Un conjunto de reglas que serán mostradas antes del registro. Configurar un sumario de términos de servicio es recomendado."
|
description: "Un conjunto de reglas que serán mostradas antes del registro. Configurar un sumario de términos de servicio es recomendado."
|
||||||
_serverSettings:
|
_serverSettings:
|
||||||
|
@ -1381,13 +1175,10 @@ _serverSettings:
|
||||||
manifestJsonOverride: "Sobreescribir manifest.json"
|
manifestJsonOverride: "Sobreescribir manifest.json"
|
||||||
shortName: "Nombre corto"
|
shortName: "Nombre corto"
|
||||||
shortNameDescription: "Forma corta del nombre de la instancia que puede mostrarse si el nombre completo es demasiado largo."
|
shortNameDescription: "Forma corta del nombre de la instancia que puede mostrarse si el nombre completo es demasiado largo."
|
||||||
fanoutTimelineDescription: "Incrementa el rendimiento de forma significativa cuando se obtienen las líneas de tiempo y reduce la carga en la base de datos. A cambio, el uso de la memoria en Redis incrementará. Considera desactivar esta opción en caso de que tu servidor tenga poca memoria o detectes inestabilidad."
|
|
||||||
fanoutTimelineDbFallback: "Cargar desde la base de datos"
|
|
||||||
fanoutTimelineDbFallbackDescription: "Cuando esta opción está habilitada, la carga de peticiones adicionales de la línea de tiempo se hará desde la base de datos cuando éstas no se encuentren en la caché. Al deshabilitar esta opción se reduce la carga del servidor, pero limita el número de líneas de tiempo que pueden obtenerse."
|
|
||||||
_accountMigration:
|
_accountMigration:
|
||||||
moveFrom: "Trasladar de otra cuenta a ésta"
|
moveFrom: "Trasladar de otra cuenta a ésta"
|
||||||
moveFromSub: "Crear un alias para otra cuenta."
|
moveFromSub: "Crear un alias para otra cuenta."
|
||||||
moveFromLabel: "Cuenta desde la que se realiza el traslado #{n}"
|
moveFromLabel: "Cuenta desde la que se realiza el traslado:"
|
||||||
moveFromDescription: "Si quieres transferir seguidores de otra cuenta a esta cuenta y trasladarlos, tendrás que crear un alias aquí. Asegúrate de crearlo antes de realizar el traslado. Introduce la cuenta desde la que estás moviendo los seguidores así: @person@instance.com"
|
moveFromDescription: "Si quieres transferir seguidores de otra cuenta a esta cuenta y trasladarlos, tendrás que crear un alias aquí. Asegúrate de crearlo antes de realizar el traslado. Introduce la cuenta desde la que estás moviendo los seguidores así: @person@instance.com"
|
||||||
moveTo: "Mover esta cuenta a una nueva"
|
moveTo: "Mover esta cuenta a una nueva"
|
||||||
moveToLabel: "Cuenta destino:"
|
moveToLabel: "Cuenta destino:"
|
||||||
|
@ -1641,16 +1432,6 @@ _achievements:
|
||||||
_smashTestNotificationButton:
|
_smashTestNotificationButton:
|
||||||
title: "Sobrecarga de pruebas"
|
title: "Sobrecarga de pruebas"
|
||||||
description: "Envía muchas notificaciones de prueba en un corto espacio de tiempo"
|
description: "Envía muchas notificaciones de prueba en un corto espacio de tiempo"
|
||||||
_tutorialCompleted:
|
|
||||||
title: "Diploma del Curso Básico de Misskey"
|
|
||||||
description: "Tutorial completado"
|
|
||||||
_bubbleGameExplodingHead:
|
|
||||||
title: "🤯"
|
|
||||||
description: "El objeto más grande en el juego de burbujas"
|
|
||||||
_bubbleGameDoubleExplodingHead:
|
|
||||||
title: "Doble 🤯"
|
|
||||||
description: "Dos de los objetos más grandes en el juego de burbujas al mismo tiempo"
|
|
||||||
flavor: "Puedes llenar el bento un poco de esta forma 🤯 🤯."
|
|
||||||
_role:
|
_role:
|
||||||
new: "Crear rol"
|
new: "Crear rol"
|
||||||
edit: "Editar rol"
|
edit: "Editar rol"
|
||||||
|
@ -1661,9 +1442,7 @@ _role:
|
||||||
assignTarget: "Asignar objetivo"
|
assignTarget: "Asignar objetivo"
|
||||||
descriptionOfAssignTarget: "<b>Manual</b> Para cambiar manualmente lo que se incluye en este rol.\n<b>Condicional</b> configura una condición, y los usuarios que cumplan la condición serán incluídos automáticamente."
|
descriptionOfAssignTarget: "<b>Manual</b> Para cambiar manualmente lo que se incluye en este rol.\n<b>Condicional</b> configura una condición, y los usuarios que cumplan la condición serán incluídos automáticamente."
|
||||||
manual: "manual"
|
manual: "manual"
|
||||||
manualRoles: "Roles manuales"
|
|
||||||
conditional: "condicional"
|
conditional: "condicional"
|
||||||
conditionalRoles: "Roles condicionales"
|
|
||||||
condition: "condición"
|
condition: "condición"
|
||||||
isConditionalRole: "Esto es un rol condicional"
|
isConditionalRole: "Esto es un rol condicional"
|
||||||
isPublic: "Publicar rol"
|
isPublic: "Publicar rol"
|
||||||
|
@ -1691,13 +1470,11 @@ _role:
|
||||||
gtlAvailable: "Explorar la línea de tiempo global"
|
gtlAvailable: "Explorar la línea de tiempo global"
|
||||||
ltlAvailable: "Explorar la línea de tiempo local"
|
ltlAvailable: "Explorar la línea de tiempo local"
|
||||||
canPublicNote: "Permitir la publicación"
|
canPublicNote: "Permitir la publicación"
|
||||||
mentionMax: "Número máximo de menciones en una nota"
|
|
||||||
canInvite: "Puede crear códigos de invitación"
|
canInvite: "Puede crear códigos de invitación"
|
||||||
inviteLimit: "Límite de invitaciones"
|
inviteLimit: "Límite de invitaciones"
|
||||||
inviteLimitCycle: "Enfriamiento del límite de invitaciones"
|
inviteLimitCycle: "Enfriamiento del límite de invitaciones"
|
||||||
inviteExpirationTime: "Intervalo de caducidad de invitaciones"
|
inviteExpirationTime: "Intervalo de caducidad de invitaciones"
|
||||||
canManageCustomEmojis: "Administrar emojis personalizados"
|
canManageCustomEmojis: "Administrar emojis personalizados"
|
||||||
canManageAvatarDecorations: "Administrar decoraciones de avatar"
|
|
||||||
driveCapacity: "Capacidad del drive"
|
driveCapacity: "Capacidad del drive"
|
||||||
alwaysMarkNsfw: "Siempre marcar archivos como NSFW"
|
alwaysMarkNsfw: "Siempre marcar archivos como NSFW"
|
||||||
pinMax: "Máximo de notas fijadas"
|
pinMax: "Máximo de notas fijadas"
|
||||||
|
@ -1713,15 +1490,9 @@ _role:
|
||||||
canHideAds: "Puede ocultar anuncios"
|
canHideAds: "Puede ocultar anuncios"
|
||||||
canSearchNotes: "Uso de la búsqueda de notas"
|
canSearchNotes: "Uso de la búsqueda de notas"
|
||||||
canUseTranslator: "Uso de traductor"
|
canUseTranslator: "Uso de traductor"
|
||||||
avatarDecorationLimit: "Número máximo de decoraciones de avatar"
|
|
||||||
_condition:
|
_condition:
|
||||||
roleAssignedTo: "Asignado a roles manuales"
|
|
||||||
isLocal: "Usuario local"
|
isLocal: "Usuario local"
|
||||||
isRemote: "Usuario remoto"
|
isRemote: "Usuario remoto"
|
||||||
isCat: "Usuarios Gato"
|
|
||||||
isBot: "Usuarios Bot"
|
|
||||||
isSuspended: "Usuario suspendido"
|
|
||||||
isLocked: "Cuentas privadas"
|
|
||||||
createdLessThan: "Menos de X han pasado desde la creación de la cuenta"
|
createdLessThan: "Menos de X han pasado desde la creación de la cuenta"
|
||||||
createdMoreThan: "Más de X han pasado desde la creación de la cuenta"
|
createdMoreThan: "Más de X han pasado desde la creación de la cuenta"
|
||||||
followersLessThanOrEq: "Tiene X o menos seguidores"
|
followersLessThanOrEq: "Tiene X o menos seguidores"
|
||||||
|
@ -1747,7 +1518,6 @@ _emailUnavailable:
|
||||||
disposable: "No es un correo reutilizable"
|
disposable: "No es un correo reutilizable"
|
||||||
mx: "Servidor de correo inválido"
|
mx: "Servidor de correo inválido"
|
||||||
smtp: "Servidor de correo no disponible"
|
smtp: "Servidor de correo no disponible"
|
||||||
banned: "Email no disponible"
|
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "Publicar"
|
public: "Publicar"
|
||||||
followers: "Visible solo para seguidores"
|
followers: "Visible solo para seguidores"
|
||||||
|
@ -1791,7 +1561,6 @@ _plugin:
|
||||||
installWarn: "Por favor no instale plugins que no son de confianza"
|
installWarn: "Por favor no instale plugins que no son de confianza"
|
||||||
manage: "Gestionar plugins"
|
manage: "Gestionar plugins"
|
||||||
viewSource: "Ver la fuente"
|
viewSource: "Ver la fuente"
|
||||||
viewLog: "Ver log"
|
|
||||||
_preferencesBackups:
|
_preferencesBackups:
|
||||||
list: "Respaldos creados"
|
list: "Respaldos creados"
|
||||||
saveNew: "Guardar nuevo respaldo"
|
saveNew: "Guardar nuevo respaldo"
|
||||||
|
@ -1821,13 +1590,10 @@ _aboutMisskey:
|
||||||
contributors: "Principales colaboradores"
|
contributors: "Principales colaboradores"
|
||||||
allContributors: "Todos los colaboradores"
|
allContributors: "Todos los colaboradores"
|
||||||
source: "Código fuente"
|
source: "Código fuente"
|
||||||
original: "Original"
|
|
||||||
thisIsModifiedVersion: "{name} usa una versión modificada de Misskey."
|
|
||||||
translation: "Traducir Misskey"
|
translation: "Traducir Misskey"
|
||||||
donate: "Donar a Misskey"
|
donate: "Donar a Misskey"
|
||||||
morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰"
|
morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰"
|
||||||
patrons: "Patrocinadores"
|
patrons: "Patrocinadores"
|
||||||
projectMembers: "Miembros del proyecto"
|
|
||||||
_displayOfSensitiveMedia:
|
_displayOfSensitiveMedia:
|
||||||
respect: "Esconder medios marcados como sensibles"
|
respect: "Esconder medios marcados como sensibles"
|
||||||
ignore: "Mostrar medios marcados como sensibles"
|
ignore: "Mostrar medios marcados como sensibles"
|
||||||
|
@ -1852,7 +1618,6 @@ _channel:
|
||||||
notesCount: "{n} notas"
|
notesCount: "{n} notas"
|
||||||
nameAndDescription: "Nombre y descripción"
|
nameAndDescription: "Nombre y descripción"
|
||||||
nameOnly: "Sólo nombre"
|
nameOnly: "Sólo nombre"
|
||||||
allowRenoteToExternal: "Permitir renotas y menciones fuera del canal"
|
|
||||||
_menuDisplay:
|
_menuDisplay:
|
||||||
sideFull: "Horizontal"
|
sideFull: "Horizontal"
|
||||||
sideIcon: "Horizontal (ícono)"
|
sideIcon: "Horizontal (ícono)"
|
||||||
|
@ -1930,6 +1695,7 @@ _theme:
|
||||||
buttonBg: "Fondo de botón"
|
buttonBg: "Fondo de botón"
|
||||||
buttonHoverBg: "Fondo de botón (hover)"
|
buttonHoverBg: "Fondo de botón (hover)"
|
||||||
inputBorder: "Borde de los campos de entrada"
|
inputBorder: "Borde de los campos de entrada"
|
||||||
|
listItemHoverBg: "Fondo de elemento de listas (hover)"
|
||||||
driveFolderBg: "Fondo de capeta del drive"
|
driveFolderBg: "Fondo de capeta del drive"
|
||||||
wallpaperOverlay: "Transparencia del fondo de pantalla"
|
wallpaperOverlay: "Transparencia del fondo de pantalla"
|
||||||
badge: "Medalla"
|
badge: "Medalla"
|
||||||
|
@ -1941,14 +1707,8 @@ _sfx:
|
||||||
note: "Notas"
|
note: "Notas"
|
||||||
noteMy: "Nota (a mí mismo)"
|
noteMy: "Nota (a mí mismo)"
|
||||||
notification: "Notificaciones"
|
notification: "Notificaciones"
|
||||||
reaction: "Al seleccionar una reacción"
|
antenna: "Antena receptora"
|
||||||
_soundSettings:
|
channel: "Notificaciones del canal"
|
||||||
driveFile: "Usar un archivo de audio en Drive"
|
|
||||||
driveFileWarn: "Selecciona un archivo de audio en Drive."
|
|
||||||
driveFileTypeWarn: "Este archivo es incompatible"
|
|
||||||
driveFileTypeWarnDescription: "Selecciona un archivo de audio"
|
|
||||||
driveFileDurationWarn: "La duración del audio es demasiado larga."
|
|
||||||
driveFileDurationWarnDescription: "Usar un audio de larga duración puede llegar a molestar mientras usas Misskey. ¿Quieres continuar?"
|
|
||||||
_ago:
|
_ago:
|
||||||
future: "Futuro"
|
future: "Futuro"
|
||||||
justNow: "Justo ahora"
|
justNow: "Justo ahora"
|
||||||
|
@ -1960,24 +1720,27 @@ _ago:
|
||||||
monthsAgo: "Hace {n} meses"
|
monthsAgo: "Hace {n} meses"
|
||||||
yearsAgo: "Hace {n} años"
|
yearsAgo: "Hace {n} años"
|
||||||
invalid: "No hay nada que ver aqui"
|
invalid: "No hay nada que ver aqui"
|
||||||
_timeIn:
|
|
||||||
seconds: "En {n} segundos"
|
|
||||||
minutes: "En {n}m"
|
|
||||||
hours: "En {n}h"
|
|
||||||
days: "En {n}d"
|
|
||||||
weeks: "En {n}sem."
|
|
||||||
months: "En {n}M"
|
|
||||||
years: "En {n} años"
|
|
||||||
_time:
|
_time:
|
||||||
second: "Segundos"
|
second: "Segundos"
|
||||||
minute: "Minutos"
|
minute: "Minutos"
|
||||||
hour: "Horas"
|
hour: "Horas"
|
||||||
day: "Días"
|
day: "Días"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Cómo usar Misskey"
|
||||||
|
step1_1: "Ésta es la \"línea de tiempo\". Todas las \"notas\" que sean publicadas en {name} serán mostradas cronológicamente aquí."
|
||||||
|
step1_2: "Hay varias líneas de tiempo. Por ejemplo, la línea temporal \"Inicio\" contiene las notas de otros usuarios que sigues, y la línea \"Local\" contandrá las notas de todos los usuarios de {name}."
|
||||||
|
step2_1: "Ahora probemos publicar una nota. Puedes hacerlo presionando el botón que tiene un ícono de lápiz."
|
||||||
|
step2_2: "¿Qué tal si escribimos una introducción? o sólo un \"¡Hola {name}!\" ¿No te apetece?"
|
||||||
|
step3_1: "¿Terminaste de publicar tu primera nota?"
|
||||||
|
step3_2: "Tu primera nota ahora se mostrará en tu línea de tiempo."
|
||||||
|
step4_1: "También puedes añadir \"Reacciones\" a notas."
|
||||||
|
step4_2: "Para añadir una reacción selecciona el botón \"+\" en la nota y escoge el emoji que quieras para reaccionar."
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "Ya has completado la configuración."
|
alreadyRegistered: "Ya has completado la configuración."
|
||||||
registerTOTP: "Registrar aplicación autenticadora"
|
registerTOTP: "Registrar aplicación autenticadora"
|
||||||
step1: "Primero, instale en su dispositivo la aplicación de autenticación {a} o {b} u otra."
|
step1: "Primero, instale en su dispositivo la aplicación de autenticación {a} o {b} u otra."
|
||||||
step2: "Luego, escanee con la aplicación el código QR mostrado en pantalla."
|
step2: "Luego, escanee con la aplicación el código QR mostrado en pantalla."
|
||||||
|
step2Click: "Clicking on this QR code will allow you to register 2FA to your security key or phone authenticator app.\nTocar este código QR te permitirá registrar la autenticación 2FA a tu llave de seguridad o aplicación autenticadora."
|
||||||
step2Uri: "Si usas una aplicación de escritorio, introduce en ella la siguiente URL."
|
step2Uri: "Si usas una aplicación de escritorio, introduce en ella la siguiente URL."
|
||||||
step3Title: "Ingresa un código de autenticación"
|
step3Title: "Ingresa un código de autenticación"
|
||||||
step3: "Para terminar, ingrese el token mostrado en la aplicación."
|
step3: "Para terminar, ingrese el token mostrado en la aplicación."
|
||||||
|
@ -2001,7 +1764,6 @@ _2fa:
|
||||||
backupCodesDescription: "En caso de que no puedas usar tu aplicación de autenticación, podrás usar los códigos de respaldo que figuran abajo para acceder a tu cuenta. Asegúrate de guardar en lugar seguro los códigos de respaldo. Cada uno de los códigos de respaldo es de un solo uso."
|
backupCodesDescription: "En caso de que no puedas usar tu aplicación de autenticación, podrás usar los códigos de respaldo que figuran abajo para acceder a tu cuenta. Asegúrate de guardar en lugar seguro los códigos de respaldo. Cada uno de los códigos de respaldo es de un solo uso."
|
||||||
backupCodeUsedWarning: "Has usado todos los códigos de respaldo. Si dejas de tener acceso a tu aplicación de autenticación, no podrás volver a iniciar sesión en tu cuenta. Por favor, reconfigura tu aplicación de autenticación lo antes posible."
|
backupCodeUsedWarning: "Has usado todos los códigos de respaldo. Si dejas de tener acceso a tu aplicación de autenticación, no podrás volver a iniciar sesión en tu cuenta. Por favor, reconfigura tu aplicación de autenticación lo antes posible."
|
||||||
backupCodesExhaustedWarning: "Has usado todos los códigos de respaldo. Si dejas de tener acceso a tu aplicación de autenticación, no podrás volver a iniciar sesión en la cuenta que figura arriba. Por favor, reconfigura tu aplicación de autenticación lo antes posible."
|
backupCodesExhaustedWarning: "Has usado todos los códigos de respaldo. Si dejas de tener acceso a tu aplicación de autenticación, no podrás volver a iniciar sesión en la cuenta que figura arriba. Por favor, reconfigura tu aplicación de autenticación lo antes posible."
|
||||||
moreDetailedGuideHere: "Guía detallada"
|
|
||||||
_permissions:
|
_permissions:
|
||||||
"read:account": "Ver información de la cuenta"
|
"read:account": "Ver información de la cuenta"
|
||||||
"write:account": "Editar información de la cuenta"
|
"write:account": "Editar información de la cuenta"
|
||||||
|
@ -2039,54 +1801,6 @@ _permissions:
|
||||||
"write:flash": "Editar Plays"
|
"write:flash": "Editar Plays"
|
||||||
"read:flash-likes": "Ver los Play que me gustan"
|
"read:flash-likes": "Ver los Play que me gustan"
|
||||||
"write:flash-likes": "Editar lista de Play que me gustan"
|
"write:flash-likes": "Editar lista de Play que me gustan"
|
||||||
"read:admin:abuse-user-reports": "Ver reportes de usuarios"
|
|
||||||
"write:admin:delete-account": "Eliminar cuentas de usuario"
|
|
||||||
"write:admin:delete-all-files-of-a-user": "Eliminar todos los archivos de un usuario"
|
|
||||||
"read:admin:index-stats": "Ver datos indexados"
|
|
||||||
"read:admin:table-stats": "Ver estadísticas de las tablas de la base de datos"
|
|
||||||
"read:admin:user-ips": "Ver dirección IP de usuario"
|
|
||||||
"read:admin:meta": "Ver metadatos de la instancia"
|
|
||||||
"write:admin:reset-password": "Restablecer contraseñas de usuario"
|
|
||||||
"write:admin:resolve-abuse-user-report": "Resolución de reportes de usuario"
|
|
||||||
"write:admin:send-email": "Enviar email"
|
|
||||||
"read:admin:server-info": "Ver información del servidor"
|
|
||||||
"read:admin:show-moderation-log": "Ver log de moderación"
|
|
||||||
"read:admin:show-user": "Ver información privada de usuario"
|
|
||||||
"write:admin:suspend-user": "Suspender cuentas de usuario"
|
|
||||||
"write:admin:unset-user-avatar": "Quitar avatares de usuario"
|
|
||||||
"write:admin:unset-user-banner": "Quitar banner de usuarios"
|
|
||||||
"write:admin:unsuspend-user": "Quitar suspensión de cuentas de usuario"
|
|
||||||
"write:admin:meta": "Edición de metadatos de la instancia"
|
|
||||||
"write:admin:user-note": "Moderación de notas"
|
|
||||||
"write:admin:roles": "Edición de roles de usuario"
|
|
||||||
"read:admin:roles": "Ver roles de usuario"
|
|
||||||
"write:admin:relays": "Edición de relays"
|
|
||||||
"read:admin:relays": "Ver relays"
|
|
||||||
"write:admin:invite-codes": "Edición de códigos de invitación"
|
|
||||||
"read:admin:invite-codes": "Ver códigos de invitación"
|
|
||||||
"write:admin:announcements": "Edición de anuncios"
|
|
||||||
"read:admin:announcements": "Ver anuncios"
|
|
||||||
"write:admin:avatar-decorations": "Edición de decoración de avatares"
|
|
||||||
"read:admin:avatar-decorations": "Ver decoraciones de avatar"
|
|
||||||
"write:admin:federation": "Edición de federación de instancias"
|
|
||||||
"write:admin:account": "Edición de cuentas de usuario"
|
|
||||||
"read:admin:account": "Ver cuentas de usuario"
|
|
||||||
"write:admin:emoji": "Edición de emojis"
|
|
||||||
"read:admin:emoji": "Ver emojis"
|
|
||||||
"write:admin:queue": "Edición de cola de tareas"
|
|
||||||
"read:admin:queue": "Ver cola de tareas"
|
|
||||||
"write:admin:promo": "Edición de promociones"
|
|
||||||
"write:admin:drive": "Edición de Drive de usuarios"
|
|
||||||
"read:admin:drive": "Ver Drive de usuarios"
|
|
||||||
"read:admin:stream": "Usar la API de Websocket para administradores"
|
|
||||||
"write:admin:ad": "Edición de anuncios"
|
|
||||||
"read:admin:ad": "Ver anuncios"
|
|
||||||
"write:invite-codes": "Crear códigos de invitación"
|
|
||||||
"read:invite-codes": "Ver códigos de invitación"
|
|
||||||
"write:clip-favorite": "Marcar me gusta en clips"
|
|
||||||
"read:clip-favorite": "Ver los clips que me gustan"
|
|
||||||
"read:federation": "Ver instancias federadas"
|
|
||||||
"write:report-abuse": "Crear reportes de usuario"
|
|
||||||
_auth:
|
_auth:
|
||||||
shareAccessTitle: "Permisos de la aplicación"
|
shareAccessTitle: "Permisos de la aplicación"
|
||||||
shareAccess: "¿Desea permitir el acceso a la cuenta \"{name}\"?"
|
shareAccess: "¿Desea permitir el acceso a la cuenta \"{name}\"?"
|
||||||
|
@ -2141,7 +1855,6 @@ _widgets:
|
||||||
_userList:
|
_userList:
|
||||||
chooseList: "Seleccione una lista"
|
chooseList: "Seleccione una lista"
|
||||||
clicker: "Cliqueador"
|
clicker: "Cliqueador"
|
||||||
birthdayFollowings: "Hoy cumplen años"
|
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Ocultar"
|
hide: "Ocultar"
|
||||||
show: "Ver más"
|
show: "Ver más"
|
||||||
|
@ -2204,11 +1917,9 @@ _profile:
|
||||||
changeAvatar: "Cambiar avatar"
|
changeAvatar: "Cambiar avatar"
|
||||||
changeBanner: "Cambiar banner"
|
changeBanner: "Cambiar banner"
|
||||||
verifiedLinkDescription: "Introduciendo una URL que contiene un enlace a tu perfil, se puede mostrar un icono de verificación de propiedad al lado del campo."
|
verifiedLinkDescription: "Introduciendo una URL que contiene un enlace a tu perfil, se puede mostrar un icono de verificación de propiedad al lado del campo."
|
||||||
avatarDecorationMax: "Puedes añadir un máximo de {max} decoraciones de avatar."
|
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Todas las notas"
|
allNotes: "Todas las notas"
|
||||||
favoritedNotes: "Notas favoritas"
|
favoritedNotes: "Notas favoritas"
|
||||||
clips: "Clip"
|
|
||||||
followingList: "Siguiendo"
|
followingList: "Siguiendo"
|
||||||
muteList: "Silenciados"
|
muteList: "Silenciados"
|
||||||
blockingList: "Bloqueados"
|
blockingList: "Bloqueados"
|
||||||
|
@ -2262,7 +1973,6 @@ _play:
|
||||||
title: "Título"
|
title: "Título"
|
||||||
script: "Script"
|
script: "Script"
|
||||||
summary: "Descripción"
|
summary: "Descripción"
|
||||||
visibilityDescription: "Poniéndola como privada significa que no será visible en tu perfil, pero cualquiera que tenga la URL aún podrá acceder a ella."
|
|
||||||
_pages:
|
_pages:
|
||||||
newPage: "Crear página"
|
newPage: "Crear página"
|
||||||
editPage: "Editar página"
|
editPage: "Editar página"
|
||||||
|
@ -2307,8 +2017,6 @@ _pages:
|
||||||
section: "Sección"
|
section: "Sección"
|
||||||
image: "Imagen"
|
image: "Imagen"
|
||||||
button: "Botón"
|
button: "Botón"
|
||||||
dynamic: "Bloques Dinámicos"
|
|
||||||
dynamicDescription: "Los bloques dinámicos están obsoletos. A partir de ahora, utiliza {play} por favor."
|
|
||||||
note: "Nota embebida"
|
note: "Nota embebida"
|
||||||
_note:
|
_note:
|
||||||
id: "Id de la nota"
|
id: "Id de la nota"
|
||||||
|
@ -2330,16 +2038,12 @@ _notification:
|
||||||
pollEnded: "Estan disponibles los resultados de la encuesta"
|
pollEnded: "Estan disponibles los resultados de la encuesta"
|
||||||
newNote: "Nueva nota"
|
newNote: "Nueva nota"
|
||||||
unreadAntennaNote: "Antena {name}"
|
unreadAntennaNote: "Antena {name}"
|
||||||
roleAssigned: "Rol asignado"
|
|
||||||
emptyPushNotificationMessage: "Se han actualizado las notificaciones push"
|
emptyPushNotificationMessage: "Se han actualizado las notificaciones push"
|
||||||
achievementEarned: "Logro desbloqueado"
|
achievementEarned: "Logro desbloqueado"
|
||||||
testNotification: "Notificación de prueba"
|
testNotification: "Notificación de prueba"
|
||||||
checkNotificationBehavior: "Comprobar comportamiento de la notificación"
|
checkNotificationBehavior: "Comprobar comportamiento de la notificación"
|
||||||
sendTestNotification: "Enviar notificación de prueba"
|
sendTestNotification: "Enviar notificación de prueba"
|
||||||
notificationWillBeDisplayedLikeThis: "Las notificaciones tendrán este aspecto"
|
notificationWillBeDisplayedLikeThis: "Las notificaciones tendrán este aspecto"
|
||||||
reactedBySomeUsers: "{n} usuarios han reaccionado"
|
|
||||||
renotedBySomeUsers: "{n} usuarios han renotado"
|
|
||||||
followedBySomeUsers: "Seguido por {n} usuarios"
|
|
||||||
_types:
|
_types:
|
||||||
all: "Todo"
|
all: "Todo"
|
||||||
note: "Nuevas notas"
|
note: "Nuevas notas"
|
||||||
|
@ -2352,10 +2056,7 @@ _notification:
|
||||||
pollEnded: "La encuesta terminó"
|
pollEnded: "La encuesta terminó"
|
||||||
receiveFollowRequest: "Recibió una solicitud de seguimiento"
|
receiveFollowRequest: "Recibió una solicitud de seguimiento"
|
||||||
followRequestAccepted: "El seguimiento fue aceptado"
|
followRequestAccepted: "El seguimiento fue aceptado"
|
||||||
roleAssigned: "Rol asignado"
|
|
||||||
achievementEarned: "Logro desbloqueado"
|
achievementEarned: "Logro desbloqueado"
|
||||||
login: "Iniciar sesión"
|
|
||||||
test: "Pruebas de nofiticaciones"
|
|
||||||
app: "Notificaciones desde aplicaciones"
|
app: "Notificaciones desde aplicaciones"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "Te sigue de vuelta"
|
followBack: "Te sigue de vuelta"
|
||||||
|
@ -2405,6 +2106,7 @@ _webhookSettings:
|
||||||
createWebhook: "Crear Webhook"
|
createWebhook: "Crear Webhook"
|
||||||
name: "Nombre"
|
name: "Nombre"
|
||||||
secret: "Secreto"
|
secret: "Secreto"
|
||||||
|
events: "Eventos de webhook"
|
||||||
active: "Activado"
|
active: "Activado"
|
||||||
_events:
|
_events:
|
||||||
follow: "Cuando se sigue a alguien"
|
follow: "Cuando se sigue a alguien"
|
||||||
|
@ -2414,14 +2116,6 @@ _webhookSettings:
|
||||||
renote: "Cuando reciba un \"re-note\""
|
renote: "Cuando reciba un \"re-note\""
|
||||||
reaction: "Cuando se recibe una reacción"
|
reaction: "Cuando se recibe una reacción"
|
||||||
mention: "Cuando hay una mención"
|
mention: "Cuando hay una mención"
|
||||||
_systemEvents:
|
|
||||||
userCreated: "Cuando se crea el usuario."
|
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Correo"
|
|
||||||
webhook: "Webhook"
|
|
||||||
keywords: "Palabras Clave"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
createRole: "Rol creado"
|
createRole: "Rol creado"
|
||||||
deleteRole: "Rol eliminado"
|
deleteRole: "Rol eliminado"
|
||||||
|
@ -2453,11 +2147,6 @@ _moderationLogTypes:
|
||||||
createAd: "Anuncio creado"
|
createAd: "Anuncio creado"
|
||||||
deleteAd: "Anuncio eliminado"
|
deleteAd: "Anuncio eliminado"
|
||||||
updateAd: "Anuncio actualizado"
|
updateAd: "Anuncio actualizado"
|
||||||
createAvatarDecoration: "Decoración de avatar creada"
|
|
||||||
updateAvatarDecoration: "Decoración de avatar actualizada"
|
|
||||||
deleteAvatarDecoration: "Decoración de avatar eliminada"
|
|
||||||
unsetUserAvatar: "Quitar decoración de avatar de este usuario"
|
|
||||||
unsetUserBanner: "Quitar banner de este usuario"
|
|
||||||
_fileViewer:
|
_fileViewer:
|
||||||
title: "Detalles del archivo"
|
title: "Detalles del archivo"
|
||||||
type: "Tipo de archivo"
|
type: "Tipo de archivo"
|
||||||
|
@ -2466,73 +2155,3 @@ _fileViewer:
|
||||||
uploadedAt: "Subido el"
|
uploadedAt: "Subido el"
|
||||||
attachedNotes: "Notas adjuntas"
|
attachedNotes: "Notas adjuntas"
|
||||||
thisPageCanBeSeenFromTheAuthor: "Esta página solo puede ser vista por el autor."
|
thisPageCanBeSeenFromTheAuthor: "Esta página solo puede ser vista por el autor."
|
||||||
_externalResourceInstaller:
|
|
||||||
title: "Instalar desde sitio externo"
|
|
||||||
checkVendorBeforeInstall: "Asegúrate de que el distribuidor de este recurso es de confianza antes de proceder a la instalación."
|
|
||||||
_plugin:
|
|
||||||
title: "¿Quieres instalar este plugin?"
|
|
||||||
metaTitle: "Información del plugin"
|
|
||||||
_theme:
|
|
||||||
title: "¿Quieres instalar este tema?"
|
|
||||||
metaTitle: "Información del tema"
|
|
||||||
_meta:
|
|
||||||
base: "Esquema de color base"
|
|
||||||
_vendorInfo:
|
|
||||||
title: "Información del distribuidor"
|
|
||||||
endpoint: "Terminal referenciada"
|
|
||||||
hashVerify: "Verificación de hash"
|
|
||||||
_errors:
|
|
||||||
_invalidParams:
|
|
||||||
title: "Parámetros inválidos"
|
|
||||||
description: "No hay información suficiente para cargar datos de un sitio externo. Por favor, confirma la URL introducida."
|
|
||||||
_resourceTypeNotSupported:
|
|
||||||
title: "Este recurso externo no es compatible"
|
|
||||||
description: "El tipo de este recurso externo no es compatible. Por favor, contacta con el administrador del sitio."
|
|
||||||
_failedToFetch:
|
|
||||||
title: "No se pudo obtener los datos"
|
|
||||||
fetchErrorDescription: "Ha ocurrido un error al comunicarse con el sitio externo. Si no se soluciona tras intentarlo otra vez, por favor, contacta con el administrador del sitio."
|
|
||||||
parseErrorDescription: "Ha ocurrido un error al procesar los datos obtenidos del sitio externo. Por favor, contacta con el administrador del sitio."
|
|
||||||
_hashUnmatched:
|
|
||||||
title: "Verificación de datos fallida"
|
|
||||||
description: "Ha ocurrido un error al verificar la integridad de los datos obtenidos. Por seguridad, la instalación no se puede realizar. Por favor, contacta con el administrador del sitio."
|
|
||||||
_pluginParseFailed:
|
|
||||||
title: "Error de AiScript"
|
|
||||||
description: "Los datos se han obtenido correctamente, pero ha ocurrido un error de AiScript al procesarlos. Por favor, contacta con el autor del plugin. Se pueden ver más detalles del error en la consola de Javascript."
|
|
||||||
_pluginInstallFailed:
|
|
||||||
title: "Instalación del plugin fallida."
|
|
||||||
description: "Ha ocurrido un problema al instalar el plugin. Por favor, inténtalo de nuevo. Se pueden ver más detalles del error en la consola de Javascript."
|
|
||||||
_themeParseFailed:
|
|
||||||
title: "Análisis del tema fallido"
|
|
||||||
description: "Los datos se han obtenido correctamente, pero ha ocurrido un error al analizar el tema. Por favor, contacta con el autor. Se pueden ver más detalles del error en la consola de Javascript."
|
|
||||||
_themeInstallFailed:
|
|
||||||
title: "Instalación de tema fallida"
|
|
||||||
description: "Ha ocurrido un problema al instalar el tema. Por favor, inténtalo de nuevo. Se pueden ver más detalles del error en la consola de Javascript."
|
|
||||||
_dataSaver:
|
|
||||||
_media:
|
|
||||||
title: "Cargando Multimedia"
|
|
||||||
description: "Desactiva la carga automática de imágenes y vídeos. Tendrás que tocar en las imágenes y vídeos ocultos para cargarlos."
|
|
||||||
_avatar:
|
|
||||||
title: "Avatares animados"
|
|
||||||
description: "Desactiva la animación de los avatares. Las imágenes animadas pueden llegar a ser de mayor tamaño que las normales, por lo que al desactivarlas puedes reducir el consumo de datos."
|
|
||||||
_urlPreview:
|
|
||||||
title: "Vista previa de URLs"
|
|
||||||
description: "Desactiva la carga de vistas previas de las URLs."
|
|
||||||
_code:
|
|
||||||
title: "Resaltar código"
|
|
||||||
description: "Si se usa resaltado de código en MFM, etc., no se cargará hasta pulsar en ello. El resaltado de sintaxis requiere la descarga de archivos de definición para cada lenguaje de programación. Debido a esto, al deshabilitar la carga automática de estos archivos reducirás el consumo de datos."
|
|
||||||
_hemisphere:
|
|
||||||
N: "Hemisferio norte"
|
|
||||||
S: "Hemisferio sur"
|
|
||||||
_reversi:
|
|
||||||
reversi: "Reversi"
|
|
||||||
rules: "Reglas"
|
|
||||||
won: "{name} ha ganado"
|
|
||||||
total: "Total"
|
|
||||||
_urlPreviewSetting:
|
|
||||||
timeout: "Timeout de la carga de vista previa de las URLs (ms)"
|
|
||||||
maximumContentLength: "Content-Length Máximo (bytes)"
|
|
||||||
userAgent: "User-Agent"
|
|
||||||
_mediaControls:
|
|
||||||
pip: "Picture in Picture"
|
|
||||||
playbackRate: "Velocidad de reproducción"
|
|
||||||
loop: "Reproducción en bucle"
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
_lang_: "Français"
|
_lang_: "Français"
|
||||||
headlineMisskey: "Réseau relié par des notes"
|
headlineMisskey: "Réseau relié par des notes"
|
||||||
introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à l’instant présent, autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également d’ajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀"
|
introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à l’instant présent, autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également d’ajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀"
|
||||||
poweredByMisskeyDescription: "{name} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
|
poweredByMisskeyDescription: "{nom} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
|
||||||
monthAndDay: "{day}/{month}"
|
monthAndDay: "{day}/{month}"
|
||||||
search: "Rechercher"
|
search: "Rechercher"
|
||||||
notifications: "Notifications"
|
notifications: "Notifications"
|
||||||
|
@ -75,7 +75,7 @@ import: "Importer"
|
||||||
export: "Exporter"
|
export: "Exporter"
|
||||||
files: "Fichiers"
|
files: "Fichiers"
|
||||||
download: "Télécharger"
|
download: "Télécharger"
|
||||||
driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier « {name} » ? Les notes avec ce fichier joint seront aussi supprimées."
|
driveFileDeleteConfirm: "Êtes-vous sûr de vouloir supprimer le fichier \"{name}\" ? Les notes liées à ce fichier seront aussi supprimées."
|
||||||
unfollowConfirm: "Désirez-vous vous désabonner de {name} ?"
|
unfollowConfirm: "Désirez-vous vous désabonner de {name} ?"
|
||||||
exportRequested: "Vous avez demandé une exportation. L’opération pourrait prendre un peu de temps. Une fois terminée, le fichier sera ajouté au Drive."
|
exportRequested: "Vous avez demandé une exportation. L’opération pourrait prendre un peu de temps. Une fois terminée, le fichier sera ajouté au Drive."
|
||||||
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
|
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
|
||||||
|
@ -121,16 +121,10 @@ sensitive: "Contenu sensible"
|
||||||
add: "Ajouter"
|
add: "Ajouter"
|
||||||
reaction: "Réactions"
|
reaction: "Réactions"
|
||||||
reactions: "Réactions"
|
reactions: "Réactions"
|
||||||
emojiPicker: "Sélecteur d’émojis"
|
reactionSetting: "Réactions à afficher dans le sélecteur de réactions"
|
||||||
pinnedEmojisForReactionSettingDescription: "Vous pouvez définir les émojis épinglés lors de la réaction"
|
|
||||||
pinnedEmojisSettingDescription: "Vous pouvez définir les émojis épinglés lors de la saisie de l'émoji"
|
|
||||||
emojiPickerDisplay: "Affichage du sélecteur d'émojis"
|
|
||||||
overwriteFromPinnedEmojisForReaction: "Remplacer par les émojis épinglés pour la réaction"
|
|
||||||
overwriteFromPinnedEmojis: "Remplacer par les émojis épinglés globalement"
|
|
||||||
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
|
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
|
||||||
rememberNoteVisibility: "Se souvenir de la visibilité des notes"
|
rememberNoteVisibility: "Se souvenir de la visibilité des notes"
|
||||||
attachCancel: "Supprimer le fichier joint"
|
attachCancel: "Supprimer le fichier attaché"
|
||||||
deleteFile: "Fichier supprimé"
|
|
||||||
markAsSensitive: "Marquer comme sensible"
|
markAsSensitive: "Marquer comme sensible"
|
||||||
unmarkAsSensitive: "Supprimer le marquage comme sensible"
|
unmarkAsSensitive: "Supprimer le marquage comme sensible"
|
||||||
enterFileName: "Entrer le nom du fichier"
|
enterFileName: "Entrer le nom du fichier"
|
||||||
|
@ -163,13 +157,12 @@ addEmoji: "Ajouter un émoji"
|
||||||
settingGuide: "Configuration proposée"
|
settingGuide: "Configuration proposée"
|
||||||
cacheRemoteFiles: "Mise en cache des fichiers distants"
|
cacheRemoteFiles: "Mise en cache des fichiers distants"
|
||||||
cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis l’instance distante. La désactiver diminuera certes l’utilisation de l’espace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées."
|
cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis l’instance distante. La désactiver diminuera certes l’utilisation de l’espace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées."
|
||||||
youCanCleanRemoteFilesCache: "Vous pouvez supprimer tous les caches en cliquant le bouton 🗑️ dans la gestion des fichiers."
|
|
||||||
cacheRemoteSensitiveFiles: "Mettre en cache les fichiers distants sensibles"
|
cacheRemoteSensitiveFiles: "Mettre en cache les fichiers distants sensibles"
|
||||||
cacheRemoteSensitiveFilesDescription: "Si vous désactivez ce paramètre, les fichiers sensibles distants ne seront pas mis en cache et un lien direct sera utilisé à la place"
|
cacheRemoteSensitiveFilesDescription: "Si vous désactivez ce paramètre, les fichiers sensibles distants ne seront pas mis en cache et un lien direct sera utilisé à la place"
|
||||||
flagAsBot: "Ce compte est un robot"
|
flagAsBot: "Ce compte est un robot"
|
||||||
flagAsBotDescription: "Si ce compte est géré de manière automatisée, choisissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot."
|
flagAsBotDescription: "Si ce compte est géré de manière automatisée, choisissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot."
|
||||||
flagAsCat: "Ce compte est un chat"
|
flagAsCat: "Ce compte est un chat"
|
||||||
flagAsCatDescription: "Miaou miaou miaou ?"
|
flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte."
|
||||||
flagShowTimelineReplies: "Afficher les réponses dans le fil"
|
flagShowTimelineReplies: "Afficher les réponses dans le fil"
|
||||||
flagShowTimelineRepliesDescription: "Affiche les réponses des utilisateurs aux notes des autres utilisateurs dans la timeline si cette option est activée."
|
flagShowTimelineRepliesDescription: "Affiche les réponses des utilisateurs aux notes des autres utilisateurs dans la timeline si cette option est activée."
|
||||||
autoAcceptFollowed: "Accepter automatiquement les demandes d’abonnement venant d’utilisateur·rice·s que vous suivez"
|
autoAcceptFollowed: "Accepter automatiquement les demandes d’abonnement venant d’utilisateur·rice·s que vous suivez"
|
||||||
|
@ -265,15 +258,14 @@ imageUrl: "URL de l’image"
|
||||||
remove: "Supprimer"
|
remove: "Supprimer"
|
||||||
removed: "Supprimé"
|
removed: "Supprimé"
|
||||||
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer « {x} » ?"
|
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer « {x} » ?"
|
||||||
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer « {x} » ?"
|
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?"
|
||||||
resetAreYouSure: "Voulez-vous réinitialiser ?"
|
resetAreYouSure: "Voulez-vous réinitialiser ?"
|
||||||
areYouSure: "Êtes-vous sûr·e ?"
|
|
||||||
saved: "Enregistré"
|
saved: "Enregistré"
|
||||||
messaging: "Discuter"
|
messaging: "Discuter"
|
||||||
upload: "Téléverser"
|
upload: "Téléverser"
|
||||||
keepOriginalUploading: "Garder l’image d’origine"
|
keepOriginalUploading: "Garder l’image d’origine"
|
||||||
keepOriginalUploadingDescription: "Conserve la version originale lors du téléchargement d'images. S'il est désactivé, le navigateur génère l'image pour la publication web lors du téléchargement."
|
keepOriginalUploadingDescription: "Conserve la version originale lors du téléchargement d'images. S'il est désactivé, le navigateur génère l'image pour la publication web lors du téléchargement."
|
||||||
fromDrive: "Depuis le Disque"
|
fromDrive: "Depuis le Drive"
|
||||||
fromUrl: "Depuis une URL"
|
fromUrl: "Depuis une URL"
|
||||||
uploadFromUrl: "Téléverser via une URL"
|
uploadFromUrl: "Téléverser via une URL"
|
||||||
uploadFromUrlDescription: "URL du fichier que vous souhaitez téléverser"
|
uploadFromUrlDescription: "URL du fichier que vous souhaitez téléverser"
|
||||||
|
@ -307,7 +299,7 @@ dark: "Sombre"
|
||||||
lightThemes: "Thèmes clairs"
|
lightThemes: "Thèmes clairs"
|
||||||
darkThemes: "Thèmes sombres"
|
darkThemes: "Thèmes sombres"
|
||||||
syncDeviceDarkMode: "Utiliser le mode sombre de votre appareil"
|
syncDeviceDarkMode: "Utiliser le mode sombre de votre appareil"
|
||||||
drive: "Disque"
|
drive: "Drive"
|
||||||
fileName: "Nom du fichier"
|
fileName: "Nom du fichier"
|
||||||
selectFile: "Choisir le fichier"
|
selectFile: "Choisir le fichier"
|
||||||
selectFiles: "Choisir les fichiers"
|
selectFiles: "Choisir les fichiers"
|
||||||
|
@ -318,9 +310,8 @@ folderName: "Nom du dossier"
|
||||||
createFolder: "Créer un dossier"
|
createFolder: "Créer un dossier"
|
||||||
renameFolder: "Renommer le dossier"
|
renameFolder: "Renommer le dossier"
|
||||||
deleteFolder: "Supprimer le dossier"
|
deleteFolder: "Supprimer le dossier"
|
||||||
folder: "Dossier"
|
|
||||||
addFile: "Ajouter un fichier"
|
addFile: "Ajouter un fichier"
|
||||||
emptyDrive: "Le Disque est vide"
|
emptyDrive: "Le Drive est vide"
|
||||||
emptyFolder: "Le dossier est vide"
|
emptyFolder: "Le dossier est vide"
|
||||||
unableToDelete: "Suppression impossible"
|
unableToDelete: "Suppression impossible"
|
||||||
inputNewFileName: "Entrez un nouveau nom de fichier"
|
inputNewFileName: "Entrez un nouveau nom de fichier"
|
||||||
|
@ -364,8 +355,8 @@ disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur
|
||||||
registration: "S’inscrire"
|
registration: "S’inscrire"
|
||||||
enableRegistration: "Autoriser les nouvelles inscriptions"
|
enableRegistration: "Autoriser les nouvelles inscriptions"
|
||||||
invite: "Inviter"
|
invite: "Inviter"
|
||||||
driveCapacityPerLocalAccount: "Capacité de stockage du Disque par utilisateur local"
|
driveCapacityPerLocalAccount: "Volume du Drive par utilisateur local"
|
||||||
driveCapacityPerRemoteAccount: "Capacité de stockage du Disque par utilisateur distant"
|
driveCapacityPerRemoteAccount: "Volume du Drive par utilisateur distant"
|
||||||
inMb: "en mégaoctets"
|
inMb: "en mégaoctets"
|
||||||
bannerUrl: "URL de l’image de la bannière"
|
bannerUrl: "URL de l’image de la bannière"
|
||||||
backgroundImageUrl: "URL de l'image d'arrière-plan"
|
backgroundImageUrl: "URL de l'image d'arrière-plan"
|
||||||
|
@ -380,11 +371,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Activer hCaptcha"
|
enableHcaptcha: "Activer hCaptcha"
|
||||||
hcaptchaSiteKey: "Clé du site"
|
hcaptchaSiteKey: "Clé du site"
|
||||||
hcaptchaSecretKey: "Clé secrète"
|
hcaptchaSecretKey: "Clé secrète"
|
||||||
mcaptcha: "mCaptcha"
|
|
||||||
enableMcaptcha: "Activer mCaptcha"
|
|
||||||
mcaptchaSiteKey: "Clé du site"
|
|
||||||
mcaptchaSecretKey: "Clé secrète"
|
|
||||||
mcaptchaInstanceUrl: "URL de l'instance de mCaptcha"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Activer reCAPTCHA"
|
enableRecaptcha: "Activer reCAPTCHA"
|
||||||
recaptchaSiteKey: "Clé du site"
|
recaptchaSiteKey: "Clé du site"
|
||||||
|
@ -400,10 +386,9 @@ name: "Nom"
|
||||||
antennaSource: "Source de l’antenne"
|
antennaSource: "Source de l’antenne"
|
||||||
antennaKeywords: "Mots clés à recevoir"
|
antennaKeywords: "Mots clés à recevoir"
|
||||||
antennaExcludeKeywords: "Mots clés à exclure"
|
antennaExcludeKeywords: "Mots clés à exclure"
|
||||||
antennaExcludeBots: "Exclure les comptes robot"
|
|
||||||
antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR."
|
antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR."
|
||||||
notifyAntenna: "Me notifier pour les nouvelles notes"
|
notifyAntenna: "Me notifier pour les nouvelles notes"
|
||||||
withFileAntenna: "Notes ayant des fichiers joints uniquement"
|
withFileAntenna: "Notes ayant des attachements uniquement"
|
||||||
enableServiceworker: "Activer ServiceWorker"
|
enableServiceworker: "Activer ServiceWorker"
|
||||||
antennaUsersDescription: "Saisissez un seul nom d’utilisateur·rice par ligne"
|
antennaUsersDescription: "Saisissez un seul nom d’utilisateur·rice par ligne"
|
||||||
caseSensitive: "Sensible à la casse"
|
caseSensitive: "Sensible à la casse"
|
||||||
|
@ -443,7 +428,6 @@ lastUsed: "Dernier utilisé"
|
||||||
lastUsedAt: "Dernière utilisation : {t}"
|
lastUsedAt: "Dernière utilisation : {t}"
|
||||||
unregister: "Se désinscrire"
|
unregister: "Se désinscrire"
|
||||||
passwordLessLogin: "Se connecter sans mot de passe"
|
passwordLessLogin: "Se connecter sans mot de passe"
|
||||||
passwordLessLoginDescription: "Se connecter uniquement avec une clé de sécurité ou une clé d'accès sans utiliser de mot de passe"
|
|
||||||
resetPassword: "Réinitialiser le mot de passe"
|
resetPassword: "Réinitialiser le mot de passe"
|
||||||
newPasswordIs: "Votre nouveau mot de passe est \"{password}\""
|
newPasswordIs: "Votre nouveau mot de passe est \"{password}\""
|
||||||
reduceUiAnimation: "Réduire les animations dans l’interface"
|
reduceUiAnimation: "Réduire les animations dans l’interface"
|
||||||
|
@ -451,6 +435,7 @@ share: "Partager"
|
||||||
notFound: "Non trouvé"
|
notFound: "Non trouvé"
|
||||||
notFoundDescription: "Aucune page ne correspond à l’URL spécifiée."
|
notFoundDescription: "Aucune page ne correspond à l’URL spécifiée."
|
||||||
uploadFolder: "Emplacement de téléversement par défaut"
|
uploadFolder: "Emplacement de téléversement par défaut"
|
||||||
|
cacheClear: "Vider le cache"
|
||||||
markAsReadAllNotifications: "Marquer toutes les notifications comme lues"
|
markAsReadAllNotifications: "Marquer toutes les notifications comme lues"
|
||||||
markAsReadAllUnreadNotes: "Marquer toutes les notes comme lues"
|
markAsReadAllUnreadNotes: "Marquer toutes les notes comme lues"
|
||||||
markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues"
|
markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues"
|
||||||
|
@ -493,12 +478,11 @@ uiLanguage: "Langue d’affichage de l’interface"
|
||||||
aboutX: "À propos de {x}"
|
aboutX: "À propos de {x}"
|
||||||
emojiStyle: "Style des émojis"
|
emojiStyle: "Style des émojis"
|
||||||
native: "Natif"
|
native: "Natif"
|
||||||
|
disableDrawer: "Les menus ne s'affichent pas dans le tiroir"
|
||||||
showNoteActionsOnlyHover: "Afficher les actions de note uniquement au survol"
|
showNoteActionsOnlyHover: "Afficher les actions de note uniquement au survol"
|
||||||
showReactionsCount: "Afficher le nombre de réactions des notes"
|
|
||||||
noHistory: "Pas d'historique"
|
noHistory: "Pas d'historique"
|
||||||
signinHistory: "Historique de connexion"
|
signinHistory: "Historique de connexion"
|
||||||
enableAdvancedMfm: "Activer la MFM avancée"
|
enableAdvancedMfm: "Activer la MFM avancée"
|
||||||
enableAnimatedMfm: "Activer le MFM animé"
|
|
||||||
doing: "En cours..."
|
doing: "En cours..."
|
||||||
category: "Catégorie"
|
category: "Catégorie"
|
||||||
tags: "Étiquettes"
|
tags: "Étiquettes"
|
||||||
|
@ -507,7 +491,6 @@ createAccount: "Créer un compte"
|
||||||
existingAccount: "Compte existant"
|
existingAccount: "Compte existant"
|
||||||
regenerate: "Générer à nouveau"
|
regenerate: "Générer à nouveau"
|
||||||
fontSize: "Taille de la police"
|
fontSize: "Taille de la police"
|
||||||
mediaListWithOneImageAppearance: "Hauteur des listes de médias n'ayant qu'une image "
|
|
||||||
limitTo: "Limiter à {x}"
|
limitTo: "Limiter à {x}"
|
||||||
noFollowRequests: "Vous n’avez aucune demande d’abonnement en attente"
|
noFollowRequests: "Vous n’avez aucune demande d’abonnement en attente"
|
||||||
openImageInNewTab: "Ouvrir les images dans un nouvel onglet"
|
openImageInNewTab: "Ouvrir les images dans un nouvel onglet"
|
||||||
|
@ -527,7 +510,7 @@ hideThisNote: "Masquer cette note"
|
||||||
showFeaturedNotesInTimeline: "Afficher les notes des Tendances dans le fil d'actualité"
|
showFeaturedNotesInTimeline: "Afficher les notes des Tendances dans le fil d'actualité"
|
||||||
objectStorage: "Stockage d'objets"
|
objectStorage: "Stockage d'objets"
|
||||||
useObjectStorage: "Utiliser le stockage d'objets"
|
useObjectStorage: "Utiliser le stockage d'objets"
|
||||||
objectStorageBaseUrl: "URL de base"
|
objectStorageBaseUrl: "Base URL"
|
||||||
objectStorageBaseUrlDesc: "Préfixe d’URL utilisé pour construire l’URL vers le référencement d’objet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez l’adresse accessible au public selon le guide de service que vous allez utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>' pour GCS."
|
objectStorageBaseUrlDesc: "Préfixe d’URL utilisé pour construire l’URL vers le référencement d’objet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez l’adresse accessible au public selon le guide de service que vous allez utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>' pour GCS."
|
||||||
objectStorageBucket: "Bucket"
|
objectStorageBucket: "Bucket"
|
||||||
objectStorageBucketDesc: "Veuillez spécifier le nom du compartiment utilisé sur le service configuré."
|
objectStorageBucketDesc: "Veuillez spécifier le nom du compartiment utilisé sur le service configuré."
|
||||||
|
@ -542,11 +525,9 @@ objectStorageUseSSLDesc: "Désactivez cette option si vous n'utilisez pas HTTPS
|
||||||
objectStorageUseProxy: "Se connecter via proxy"
|
objectStorageUseProxy: "Se connecter via proxy"
|
||||||
objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API"
|
objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API"
|
||||||
objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi"
|
objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi"
|
||||||
s3ForcePathStyleDesc: "Si s3ForcePathStyle est activé, le nom du compartiment doit être spécifié comme une partie du chemin de l'URL plutôt que le nom d'hôte. Il faudra peut-être l'activer lors de l'utilisation d'une instance de Minio autohébergée, etc."
|
|
||||||
serverLogs: "Journal du serveur"
|
serverLogs: "Journal du serveur"
|
||||||
deleteAll: "Supprimer tout"
|
deleteAll: "Supprimer tout"
|
||||||
showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité"
|
showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité"
|
||||||
showFixedPostFormInChannel: "Afficher le formulaire de publication en haut du fil (canaux)"
|
|
||||||
withRepliesByDefaultForNewlyFollowed: "Afficher les réponses des nouvelles personnes que vous suivez dans le fil par défaut"
|
withRepliesByDefaultForNewlyFollowed: "Afficher les réponses des nouvelles personnes que vous suivez dans le fil par défaut"
|
||||||
newNoteRecived: "Voir les nouvelles notes"
|
newNoteRecived: "Voir les nouvelles notes"
|
||||||
sounds: "Sons"
|
sounds: "Sons"
|
||||||
|
@ -557,8 +538,6 @@ showInPage: "Afficher dans la page"
|
||||||
popout: "Fenêtre contextuelle"
|
popout: "Fenêtre contextuelle"
|
||||||
volume: "Volume"
|
volume: "Volume"
|
||||||
masterVolume: "Volume principal"
|
masterVolume: "Volume principal"
|
||||||
notUseSound: "Ne pas émettre de son"
|
|
||||||
useSoundOnlyWhenActive: "Émettre des sons uniquement quand Misskey est active"
|
|
||||||
details: "Détails"
|
details: "Détails"
|
||||||
chooseEmoji: "Choisissez un émoji"
|
chooseEmoji: "Choisissez un émoji"
|
||||||
unableToProcess: "L’opération n’a pas pu être complétée."
|
unableToProcess: "L’opération n’a pas pu être complétée."
|
||||||
|
@ -579,13 +558,9 @@ output: "Sortie"
|
||||||
script: "Script"
|
script: "Script"
|
||||||
disablePagesScript: "Désactiver AiScript sur les Pages"
|
disablePagesScript: "Désactiver AiScript sur les Pages"
|
||||||
updateRemoteUser: "Mettre à jour les informations de l’utilisateur·rice distant·e"
|
updateRemoteUser: "Mettre à jour les informations de l’utilisateur·rice distant·e"
|
||||||
unsetUserAvatar: "Supprimer l’avatar"
|
|
||||||
unsetUserAvatarConfirm: "Êtes-vous sûr·e de vouloir supprimer l'avatar ?"
|
|
||||||
unsetUserBanner: "Supprimer la bannière"
|
|
||||||
unsetUserBannerConfirm: "Êtes-vous sûr·e de vouloir supprimer la bannière ?"
|
|
||||||
deleteAllFiles: "Supprimer tous les fichiers"
|
deleteAllFiles: "Supprimer tous les fichiers"
|
||||||
deleteAllFilesConfirm: "Êtes-vous sûr·e de vouloir supprimer tous les fichiers ?"
|
deleteAllFilesConfirm: "Êtes-vous sûr·e de vouloir supprimer tous les fichiers ?"
|
||||||
removeAllFollowing: "Se désabonner de tous les utilisateurs auxquels vous êtes abonné·e"
|
removeAllFollowing: "Retenir tous les abonnements"
|
||||||
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action dans les cas où l’instance n’existe plus, etc."
|
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action dans les cas où l’instance n’existe plus, etc."
|
||||||
userSuspended: "Cet·te utilisateur·rice a été suspendu·e."
|
userSuspended: "Cet·te utilisateur·rice a été suspendu·e."
|
||||||
userSilenced: "Cette utilisateur·trice a été mis·e en sourdine."
|
userSilenced: "Cette utilisateur·trice a été mis·e en sourdine."
|
||||||
|
@ -633,7 +608,6 @@ medium: "Moyen"
|
||||||
small: "Petit"
|
small: "Petit"
|
||||||
generateAccessToken: "Générer un jeton d'accès"
|
generateAccessToken: "Générer un jeton d'accès"
|
||||||
permission: "Autorisations "
|
permission: "Autorisations "
|
||||||
adminPermission: "Droits de l'administrateur"
|
|
||||||
enableAll: "Tout activer"
|
enableAll: "Tout activer"
|
||||||
disableAll: "Tout désactiver"
|
disableAll: "Tout désactiver"
|
||||||
tokenRequested: "Autoriser l'accès au compte"
|
tokenRequested: "Autoriser l'accès au compte"
|
||||||
|
@ -642,9 +616,9 @@ notificationType: "Type de notifications"
|
||||||
edit: "Editer"
|
edit: "Editer"
|
||||||
emailServer: "Serveur de messagerie"
|
emailServer: "Serveur de messagerie"
|
||||||
enableEmail: "Activer la distribution de courriel"
|
enableEmail: "Activer la distribution de courriel"
|
||||||
emailConfigInfo: "Utilisé pour confirmer votre adresse e-mail et réinitialiser votre mot de passe en cas d’oubli"
|
emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation de votre mot de passe en cas d’oubli."
|
||||||
email: "E-mail "
|
email: "E-mail "
|
||||||
emailAddress: "Adresse e-mail"
|
emailAddress: "Adresses e-mail"
|
||||||
smtpConfig: "Paramètres du serveur SMTP"
|
smtpConfig: "Paramètres du serveur SMTP"
|
||||||
smtpHost: "Serveur distant"
|
smtpHost: "Serveur distant"
|
||||||
smtpPort: "Port"
|
smtpPort: "Port"
|
||||||
|
@ -655,9 +629,8 @@ smtpSecure: "Utiliser SSL/TLS implicitement dans les connexions SMTP"
|
||||||
smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé"
|
smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé"
|
||||||
testEmail: "Tester la distribution de courriel"
|
testEmail: "Tester la distribution de courriel"
|
||||||
wordMute: "Filtre de mots"
|
wordMute: "Filtre de mots"
|
||||||
hardWordMute: "Filtre de mots dur"
|
|
||||||
regexpError: "Erreur d’expression régulière"
|
regexpError: "Erreur d’expression régulière"
|
||||||
regexpErrorDescription: "Une erreur s'est produite dans l'expression régulière sur la ligne {line} de votre mot muet {tab} :"
|
regexpErrorDescription: "Une erreur s'est produite dans l'expression régulière sur la ligne {ligne} de votre mot muet {tab} :"
|
||||||
instanceMute: "Instance en sourdine"
|
instanceMute: "Instance en sourdine"
|
||||||
userSaysSomething: "{name} a dit quelque chose"
|
userSaysSomething: "{name} a dit quelque chose"
|
||||||
makeActive: "Activer"
|
makeActive: "Activer"
|
||||||
|
@ -677,7 +650,6 @@ useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votr
|
||||||
other: "Autre"
|
other: "Autre"
|
||||||
regenerateLoginToken: "Régénérer le jeton de connexion"
|
regenerateLoginToken: "Régénérer le jeton de connexion"
|
||||||
regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. "
|
regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. "
|
||||||
theKeywordWhenSearchingForCustomEmoji: "Ce mot-clé est utilisé lors de la recherche des émojis personnalisés."
|
|
||||||
setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant par des espaces."
|
setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant par des espaces."
|
||||||
fileIdOrUrl: "ID du fichier ou URL"
|
fileIdOrUrl: "ID du fichier ou URL"
|
||||||
behavior: "Comportement"
|
behavior: "Comportement"
|
||||||
|
@ -691,7 +663,10 @@ abuseReported: "Le rapport est envoyé. Merci."
|
||||||
reporter: "Signalé par"
|
reporter: "Signalé par"
|
||||||
reporteeOrigin: "Origine du signalement"
|
reporteeOrigin: "Origine du signalement"
|
||||||
reporterOrigin: "Signalé par"
|
reporterOrigin: "Signalé par"
|
||||||
|
forwardReport: "Transférer le signalement à l’instance distante"
|
||||||
|
forwardReportIsAnonymous: "L'instance distante ne sera pas en mesure de voir vos informations et apparaîtra comme un compte anonyme du système."
|
||||||
send: "Envoyer"
|
send: "Envoyer"
|
||||||
|
abuseMarkAsResolved: "Marquer le signalement comme résolu"
|
||||||
openInNewTab: "Ouvrir dans un nouvel onglet"
|
openInNewTab: "Ouvrir dans un nouvel onglet"
|
||||||
openInSideView: "Ouvrir en vue latérale"
|
openInSideView: "Ouvrir en vue latérale"
|
||||||
defaultNavigationBehaviour: "Navigation par défaut"
|
defaultNavigationBehaviour: "Navigation par défaut"
|
||||||
|
@ -703,7 +678,7 @@ system: "Système"
|
||||||
switchUi: "Modifier l'interface utilisateur"
|
switchUi: "Modifier l'interface utilisateur"
|
||||||
desktop: "Bureau"
|
desktop: "Bureau"
|
||||||
clip: "Clip"
|
clip: "Clip"
|
||||||
createNew: "Créer"
|
createNew: "Créer nouveau"
|
||||||
optional: "Facultatif"
|
optional: "Facultatif"
|
||||||
createNewClip: "Créer un nouveau clip"
|
createNewClip: "Créer un nouveau clip"
|
||||||
unclip: "Supprimer le clip"
|
unclip: "Supprimer le clip"
|
||||||
|
@ -718,7 +693,7 @@ repliesCount: "Nombre de réponses envoyées"
|
||||||
renotesCount: "Nombre de notes que vous avez renotées"
|
renotesCount: "Nombre de notes que vous avez renotées"
|
||||||
repliedCount: "Nombre de réponses reçues"
|
repliedCount: "Nombre de réponses reçues"
|
||||||
renotedCount: "Nombre de vos notes renotées"
|
renotedCount: "Nombre de vos notes renotées"
|
||||||
followingCount: "Nombre d'abonnements"
|
followingCount: "Nombre de comptes suivis"
|
||||||
followersCount: "Nombre d'abonnés"
|
followersCount: "Nombre d'abonnés"
|
||||||
sentReactionsCount: "Nombre de réactions envoyées"
|
sentReactionsCount: "Nombre de réactions envoyées"
|
||||||
receivedReactionsCount: "Nombre de réactions reçues"
|
receivedReactionsCount: "Nombre de réactions reçues"
|
||||||
|
@ -726,15 +701,14 @@ pollVotesCount: "Nombre de votes envoyés"
|
||||||
pollVotedCount: "Nombre de votes reçus"
|
pollVotedCount: "Nombre de votes reçus"
|
||||||
yes: "Oui"
|
yes: "Oui"
|
||||||
no: "Non"
|
no: "Non"
|
||||||
driveFilesCount: "Nombre de fichiers sur le Disque"
|
driveFilesCount: "Nombre de fichiers dans le Drive"
|
||||||
driveUsage: "Utilisation du Disque"
|
driveUsage: "Utilisation du Drive"
|
||||||
noCrawle: "Refuser l'indexation par les robots"
|
noCrawle: "Refuser l'indexation par les robots"
|
||||||
noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page de profil, vos notes, vos pages, etc."
|
noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page de profil, vos notes, vos pages, etc."
|
||||||
lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre note sur \"Abonné-e-s\", vos notes sont visibles par tous, même si vous exigez que les demandes d'abonnement soient approuvées manuellement."
|
lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre note sur \"Abonné-e-s\", vos notes sont visibles par tous, même si vous exigez que les demandes d'abonnement soient approuvées manuellement."
|
||||||
alwaysMarkSensitive: "Marquer les médias comme contenu sensible par défaut"
|
alwaysMarkSensitive: "Marquer les médias comme contenu sensible par défaut"
|
||||||
loadRawImages: "Affichage complet des images jointes au lieu des vignettes"
|
loadRawImages: "Affichage complet des images jointes au lieu des vignettes"
|
||||||
disableShowingAnimatedImages: "Désactiver l'animation des images"
|
disableShowingAnimatedImages: "Désactiver l'animation des images"
|
||||||
highlightSensitiveMedia: "Mettre en évidence les médias sensibles"
|
|
||||||
verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au lien pour compléter la vérification."
|
verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au lien pour compléter la vérification."
|
||||||
notSet: "Non défini"
|
notSet: "Non défini"
|
||||||
emailVerified: "Votre adresse e-mail a été vérifiée."
|
emailVerified: "Votre adresse e-mail a été vérifiée."
|
||||||
|
@ -790,7 +764,7 @@ inUse: "utilisé"
|
||||||
editCode: "Modifier le code"
|
editCode: "Modifier le code"
|
||||||
apply: "Appliquer"
|
apply: "Appliquer"
|
||||||
receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance"
|
receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance"
|
||||||
emailNotification: "Notifications par courriel"
|
emailNotification: "Notifications par mail"
|
||||||
publish: "Public"
|
publish: "Public"
|
||||||
inChannelSearch: "Chercher dans le canal"
|
inChannelSearch: "Chercher dans le canal"
|
||||||
useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions"
|
useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions"
|
||||||
|
@ -807,7 +781,7 @@ addDescription: "Ajouter une description"
|
||||||
userPagePinTip: "Vous pouvez afficher des notes ici en sélectionnant l'option « Épingler au profil » dans le menu de chaque note."
|
userPagePinTip: "Vous pouvez afficher des notes ici en sélectionnant l'option « Épingler au profil » dans le menu de chaque note."
|
||||||
notSpecifiedMentionWarning: "Vous avez mentionné des utilisateur·rice·s qui ne font pas partie de la liste des destinataires"
|
notSpecifiedMentionWarning: "Vous avez mentionné des utilisateur·rice·s qui ne font pas partie de la liste des destinataires"
|
||||||
info: "Informations"
|
info: "Informations"
|
||||||
userInfo: "Informations sur l'utilisateur·rice"
|
userInfo: "Informations sur l'utilisateur"
|
||||||
unknown: "Inconnu"
|
unknown: "Inconnu"
|
||||||
onlineStatus: "Statut"
|
onlineStatus: "Statut"
|
||||||
hideOnlineStatus: "Se rendre invisible"
|
hideOnlineStatus: "Se rendre invisible"
|
||||||
|
@ -871,7 +845,7 @@ pubSub: "Comptes Pub/Sub"
|
||||||
lastCommunication: "Dernière communication"
|
lastCommunication: "Dernière communication"
|
||||||
resolved: "Résolu"
|
resolved: "Résolu"
|
||||||
unresolved: "En attente"
|
unresolved: "En attente"
|
||||||
breakFollow: "Supprimer l'abonné·e"
|
breakFollow: "Ne plus suivre"
|
||||||
breakFollowConfirm: "Êtes-vous sûr de vouloir vous désabonner ?"
|
breakFollowConfirm: "Êtes-vous sûr de vouloir vous désabonner ?"
|
||||||
itsOn: "Activé"
|
itsOn: "Activé"
|
||||||
itsOff: "Désactivé"
|
itsOff: "Désactivé"
|
||||||
|
@ -887,8 +861,8 @@ makeReactionsPublicDescription: "Ceci rendra la liste de toutes vos réactions d
|
||||||
classic: "Classique"
|
classic: "Classique"
|
||||||
muteThread: "Masquer cette discussion"
|
muteThread: "Masquer cette discussion"
|
||||||
unmuteThread: "Ne plus masquer le fil"
|
unmuteThread: "Ne plus masquer le fil"
|
||||||
followingVisibility: "Visibilité des abonnements"
|
ffVisibility: "Visibilité des abonnés/abonnements"
|
||||||
followersVisibility: "Visibilité des abonnés"
|
ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu suis et les personnes qui te suivent."
|
||||||
continueThread: "Afficher la suite du fil"
|
continueThread: "Afficher la suite du fil"
|
||||||
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?"
|
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?"
|
||||||
incorrectPassword: "Le mot de passe est incorrect."
|
incorrectPassword: "Le mot de passe est incorrect."
|
||||||
|
@ -930,7 +904,7 @@ noEmailServerWarning: "Serveur de courrier non configuré."
|
||||||
thereIsUnresolvedAbuseReportWarning: "Il n’y a aucun rapport non résolu."
|
thereIsUnresolvedAbuseReportWarning: "Il n’y a aucun rapport non résolu."
|
||||||
recommended: "Recommandé"
|
recommended: "Recommandé"
|
||||||
check: "Vérifier"
|
check: "Vérifier"
|
||||||
driveCapOverrideLabel: "Modifier la capacité de stockage du Disque de cet·te utilisateur·rice"
|
driveCapOverrideLabel: "Modifier la capacité de stockage du drive de cet·te utilisateur·rice"
|
||||||
driveCapOverrideCaption: "Si une valeur inférieure à 0 est spécifiée, elle est annulée."
|
driveCapOverrideCaption: "Si une valeur inférieure à 0 est spécifiée, elle est annulée."
|
||||||
requireAdminForView: "Vous devez être connecté avec un compte administrateur pour les visualiser."
|
requireAdminForView: "Vous devez être connecté avec un compte administrateur pour les visualiser."
|
||||||
isSystemAccount: "Ces comptes sont automatiquement créés et gérés par le système."
|
isSystemAccount: "Ces comptes sont automatiquement créés et gérés par le système."
|
||||||
|
@ -972,7 +946,6 @@ unsubscribePushNotification: "Désactiver les notifications push"
|
||||||
pushNotificationAlreadySubscribed: "Les notifications push sont déjà activées"
|
pushNotificationAlreadySubscribed: "Les notifications push sont déjà activées"
|
||||||
pushNotificationNotSupported: "Votre navigateur ou votre instance ne prend pas en charge les notifications push"
|
pushNotificationNotSupported: "Votre navigateur ou votre instance ne prend pas en charge les notifications push"
|
||||||
sendPushNotificationReadMessage: "Supprimer les notifications push une fois que les notifications ou messages pertinents ont été lus."
|
sendPushNotificationReadMessage: "Supprimer les notifications push une fois que les notifications ou messages pertinents ont été lus."
|
||||||
sendPushNotificationReadMessageCaption: "Cela peut augmenter la consommation de batterie de votre appareil."
|
|
||||||
windowMaximize: "Maximiser"
|
windowMaximize: "Maximiser"
|
||||||
windowMinimize: "Minimaliser"
|
windowMinimize: "Minimaliser"
|
||||||
windowRestore: "Restaurer"
|
windowRestore: "Restaurer"
|
||||||
|
@ -988,8 +961,6 @@ show: "Affichage"
|
||||||
neverShow: "Ne plus afficher"
|
neverShow: "Ne plus afficher"
|
||||||
remindMeLater: "Peut-être plus tard"
|
remindMeLater: "Peut-être plus tard"
|
||||||
didYouLikeMisskey: "Avez-vous aimé Misskey ?"
|
didYouLikeMisskey: "Avez-vous aimé Misskey ?"
|
||||||
pleaseDonate: "Misskey est le logiciel libre utilisé par {host}. Merci de faire un don pour que nous puissions continuer à le développer !"
|
|
||||||
correspondingSourceIsAvailable: "Le code source correspondant est disponible à {anchor}"
|
|
||||||
roles: "Rôles"
|
roles: "Rôles"
|
||||||
role: "Rôles"
|
role: "Rôles"
|
||||||
noRole: "Aucun rôle"
|
noRole: "Aucun rôle"
|
||||||
|
@ -999,70 +970,34 @@ assign: "Attribuer"
|
||||||
unassign: "Retirer"
|
unassign: "Retirer"
|
||||||
color: "Couleur"
|
color: "Couleur"
|
||||||
manageCustomEmojis: "Gestion des émojis personnalisés"
|
manageCustomEmojis: "Gestion des émojis personnalisés"
|
||||||
manageAvatarDecorations: "Gérer les décorations d'avatar"
|
|
||||||
youCannotCreateAnymore: "Vous avez atteint la limite de création."
|
youCannotCreateAnymore: "Vous avez atteint la limite de création."
|
||||||
cannotPerformTemporary: "Temporairement indisponible"
|
cannotPerformTemporary: "Temporairement indisponible"
|
||||||
cannotPerformTemporaryDescription: "Temporairement indisponible puisque le nombre d'opérations dépasse la limite. Veuillez patienter un peu, puis réessayer."
|
|
||||||
invalidParamError: "Paramètres invalides"
|
invalidParamError: "Paramètres invalides"
|
||||||
invalidParamErrorDescription: "Les paramètres de la requête sont invalides. Il s'agit généralement d'un bogue, mais cela peut aussi être causé par un excès de caractères ou quelque chose de similaire."
|
|
||||||
permissionDeniedError: "Opération refusée"
|
permissionDeniedError: "Opération refusée"
|
||||||
permissionDeniedErrorDescription: "Ce compte n'a pas la permission d'effectuer cette opération."
|
|
||||||
preset: "Préréglage"
|
preset: "Préréglage"
|
||||||
selectFromPresets: "Sélectionner à partir des préréglages"
|
selectFromPresets: "Sélectionner à partir des préréglages"
|
||||||
achievements: "Accomplissements"
|
achievements: "Accomplissements"
|
||||||
gotInvalidResponseError: "Réponse du serveur invalide"
|
gotInvalidResponseError: "Réponse du serveur invalide"
|
||||||
gotInvalidResponseErrorDescription: "Il se peut que le serveur soit hors ligne ou en maintenance. Veuillez réessayer plus tard."
|
|
||||||
thisPostMayBeAnnoying: "Cette note peut gêner d'autres personnes."
|
thisPostMayBeAnnoying: "Cette note peut gêner d'autres personnes."
|
||||||
thisPostMayBeAnnoyingHome: "Publier vers le fil principal"
|
thisPostMayBeAnnoyingHome: "Publier vers le fil principal"
|
||||||
thisPostMayBeAnnoyingCancel: "Annuler"
|
thisPostMayBeAnnoyingCancel: "Annuler"
|
||||||
thisPostMayBeAnnoyingIgnore: "Publier quand-même"
|
thisPostMayBeAnnoyingIgnore: "Publier quand-même"
|
||||||
collapseRenotes: "Réduire les renotes déjà vues"
|
collapseRenotes: "Réduire les renotes déjà vues"
|
||||||
internalServerError: "Erreur interne du serveur"
|
internalServerError: "Erreur interne du serveur"
|
||||||
internalServerErrorDescription: "Une erreur inattendue s'est produite sur le serveur."
|
|
||||||
copyErrorInfo: "Copier les détails de l’erreur"
|
copyErrorInfo: "Copier les détails de l’erreur"
|
||||||
joinThisServer: "S'inscrire à cette instance"
|
|
||||||
exploreOtherServers: "Trouver une autre instance"
|
exploreOtherServers: "Trouver une autre instance"
|
||||||
letsLookAtTimeline: "Jetez un coup d'œil au fil"
|
|
||||||
disableFederationConfirm: "Voulez-vous vraiment désactiver la fédération ?"
|
|
||||||
disableFederationConfirmWarn: "Même sans fédération, la note ne sera pas privée. Dans la plupart des cas, ce n'est pas nécessaire de désactiver la fédération."
|
|
||||||
disableFederationOk: "Désactiver"
|
disableFederationOk: "Désactiver"
|
||||||
invitationRequiredToRegister: "Actuellement, cette instance est uniquement sur invitation. Seuls ceux qui ont un code d'invitation peuvent s'inscrire."
|
|
||||||
emailNotSupported: "Cette instance ne prend pas en charge l'envoi de courriels"
|
|
||||||
postToTheChannel: "Publier au canal"
|
postToTheChannel: "Publier au canal"
|
||||||
cannotBeChangedLater: "Cela ne peut pas être modifié plus tard."
|
|
||||||
reactionAcceptance: "Acceptation des réactions"
|
|
||||||
likeOnly: "Les favoris uniquement"
|
likeOnly: "Les favoris uniquement"
|
||||||
likeOnlyForRemote: "Toutes (mentions j'aime seulement pour les instances distantes)"
|
|
||||||
nonSensitiveOnly: "Non sensibles seulement"
|
|
||||||
nonSensitiveOnlyForLocalLikeOnlyForRemote: "Non sensibles seulement (mentions j'aime seulement pour les instances distantes)"
|
|
||||||
rolesAssignedToMe: "Rôles attribués à moi"
|
|
||||||
resetPasswordConfirm: "Souhaitez-vous réinitialiser votre mot de passe ?"
|
|
||||||
sensitiveWords: "Mots sensibles"
|
sensitiveWords: "Mots sensibles"
|
||||||
sensitiveWordsDescription: "Définir la visibilité des notes contenant un mot défini ici au fil principal automatiquement. Vous pouvez définir plusieurs valeurs en les séparant par des sauts de ligne."
|
|
||||||
sensitiveWordsDescription2: "Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
|
|
||||||
prohibitedWords: "Mots interdits"
|
|
||||||
prohibitedWordsDescription: "Publier une note contenant un mot défini ici produira une erreur. Vous pouvez définir plusieurs valeurs en les séparant par des sauts de ligne."
|
|
||||||
prohibitedWordsDescription2: "Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
|
|
||||||
hiddenTags: "Hashtags cachés"
|
|
||||||
hiddenTagsDescription: "Les hashtags définis ne s'afficheront pas dans les tendances. Vous pouvez définir plusieurs hashtags en faisant un saut de ligne."
|
|
||||||
notesSearchNotAvailable: "La recherche de notes n'est pas disponible."
|
notesSearchNotAvailable: "La recherche de notes n'est pas disponible."
|
||||||
license: "Licence"
|
license: "Licence"
|
||||||
unfavoriteConfirm: "Vraiment supprimer des favoris ?"
|
|
||||||
myClips: "Mes clips"
|
myClips: "Mes clips"
|
||||||
drivecleaner: "Nettoyeur du Disque"
|
|
||||||
retryAllQueuesNow: "Réessayer tous les fils d'attente immédiatement"
|
|
||||||
retryAllQueuesConfirmTitle: "Vraiment réessayer ?"
|
|
||||||
retryAllQueuesConfirmText: "Cela peut augmenter temporairement la charge du serveur."
|
retryAllQueuesConfirmText: "Cela peut augmenter temporairement la charge du serveur."
|
||||||
enableChartsForRemoteUser: "Générer les graphiques pour les utilisateurs distants"
|
|
||||||
enableChartsForFederatedInstances: "Générer les graphiques pour les instances distantes"
|
|
||||||
showClipButtonInNoteFooter: "Ajouter « Clip » au menu d'action de la note"
|
showClipButtonInNoteFooter: "Ajouter « Clip » au menu d'action de la note"
|
||||||
reactionsDisplaySize: "Taille de l'affichage des réactions"
|
|
||||||
limitWidthOfReaction: "Limiter la largeur maximale des réactions et les afficher en taille réduite"
|
|
||||||
noteIdOrUrl: "Identifiant de la note ou URL"
|
noteIdOrUrl: "Identifiant de la note ou URL"
|
||||||
video: "Vidéo"
|
video: "Vidéo"
|
||||||
videos: "Vidéos"
|
videos: "Vidéos"
|
||||||
audio: "Audio"
|
|
||||||
audioFiles: "Fichiers audio"
|
|
||||||
dataSaver: "Économiseur de données"
|
dataSaver: "Économiseur de données"
|
||||||
accountMigration: "Migration de compte"
|
accountMigration: "Migration de compte"
|
||||||
accountMoved: "Cet·te utilisateur·rice a migré son compte vers :"
|
accountMoved: "Cet·te utilisateur·rice a migré son compte vers :"
|
||||||
|
@ -1070,7 +1005,6 @@ accountMovedShort: "Ce compte a migré"
|
||||||
operationForbidden: "Opération non autorisée"
|
operationForbidden: "Opération non autorisée"
|
||||||
forceShowAds: "Toujours afficher les publicités"
|
forceShowAds: "Toujours afficher les publicités"
|
||||||
addMemo: "Ajouter un mémo"
|
addMemo: "Ajouter un mémo"
|
||||||
editMemo: "Éditer le mémo"
|
|
||||||
reactionsList: "Réactions"
|
reactionsList: "Réactions"
|
||||||
renotesList: "Liste de renotes"
|
renotesList: "Liste de renotes"
|
||||||
notificationDisplay: "Style des notifications"
|
notificationDisplay: "Style des notifications"
|
||||||
|
@ -1083,85 +1017,42 @@ vertical: "Vertical"
|
||||||
horizontal: "Latéral"
|
horizontal: "Latéral"
|
||||||
position: "Position"
|
position: "Position"
|
||||||
serverRules: "Règles du serveur"
|
serverRules: "Règles du serveur"
|
||||||
pleaseConfirmBelowBeforeSignup: "Pour vous inscrire sur cette instance, vous devez confirmer et accepter le contenu suivant."
|
|
||||||
pleaseAgreeAllToContinue: "Pour continuer, veuillez accepter tous les champs ci-dessus."
|
pleaseAgreeAllToContinue: "Pour continuer, veuillez accepter tous les champs ci-dessus."
|
||||||
continue: "Continuer"
|
continue: "Continuer"
|
||||||
preservedUsernames: "Noms d'utilisateur·rice réservés"
|
preservedUsernames: "Noms d'utilisateur·rice réservés"
|
||||||
preservedUsernamesDescription: "Énumérez les noms d'utilisateur à réserver, séparés par des nouvelles lignes. Les noms d'utilisateur spécifiés ici ne seront plus utilisables lors de la création d'un compte, sauf la création manuelle par un administrateur. De plus, les comptes existants ne seront pas affectés."
|
|
||||||
createNoteFromTheFile: "Rédiger une note de ce fichier"
|
|
||||||
archive: "Archive"
|
archive: "Archive"
|
||||||
archived: "Archivé"
|
|
||||||
unarchive: "Annuler l'archivage"
|
|
||||||
channelArchiveConfirmTitle: "Voulez-vous vraiment archiver {name} ?"
|
|
||||||
channelArchiveConfirmDescription: "Une fois archivé, le canal n'apparaîtra plus dans la liste des canaux ni dans les résultats de recherche, et la publication des nouvelles notes sera impossible."
|
|
||||||
thisChannelArchived: "Ce canal a été archivé."
|
|
||||||
displayOfNote: "Affichage de la note"
|
displayOfNote: "Affichage de la note"
|
||||||
initialAccountSetting: "Configuration initiale du profil"
|
initialAccountSetting: "Réglage initial du profil"
|
||||||
youFollowing: "Abonné·e"
|
youFollowing: "Abonné·e"
|
||||||
preventAiLearning: "Refuser l'usage dans l'apprentissage automatique d'IA générative"
|
preventAiLearning: "Refuser l'usage dans l'apprentissage automatique d'IA générative"
|
||||||
preventAiLearningDescription: "Demander aux robots d'indexation de ne pas utiliser le contenu publié, tel que les notes et les images, dans l'apprentissage automatique d'IA générative. Cela est réalisé en incluant le drapeau « noai » dans la réponse HTML. Une prévention complète n'est toutefois pas possible, car il est au robot d'indexation de respecter cette demande."
|
preventAiLearningDescription: "Demander aux robots d'indexation de ne pas utiliser le contenu publié, tel que les notes et les images, dans l'apprentissage automatique d'IA générative. Cela est réalisé en incluant le drapeau « noai » dans la réponse HTML. Une prévention complète n'est toutefois pas possible, car il est au robot d'indexation de respecter cette demande."
|
||||||
options: "Options"
|
options: "Options"
|
||||||
specifyUser: "Spécifier l'utilisateur·rice"
|
specifyUser: "Spécifier l'utilisateur"
|
||||||
failedToPreviewUrl: "Aperçu d'URL échoué"
|
failedToPreviewUrl: "Aperçu d'URL échoué"
|
||||||
update: "Mettre à jour"
|
update: "Mettre à jour"
|
||||||
rolesThatCanBeUsedThisEmojiAsReaction: "Rôles qui peuvent utiliser cet émoji comme réaction"
|
|
||||||
rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "Si aucun rôle n'est spécifié, tout le monde peut utiliser cet émoji comme réaction."
|
|
||||||
rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "Il faut un rôle public."
|
|
||||||
cancelReactionConfirm: "Supprimez la réaction ?"
|
|
||||||
changeReactionConfirm: "Changer la réaction ?"
|
|
||||||
later: "Plus tard"
|
later: "Plus tard"
|
||||||
goToMisskey: "Retour vers Misskey"
|
goToMisskey: "Retour vers Misskey"
|
||||||
additionalEmojiDictionary: "Dictionnaires d'émojis additionnels"
|
|
||||||
installed: "Installé"
|
|
||||||
branding: "Image de marque"
|
|
||||||
enableServerMachineStats: "Publier les statistiques du matériel du serveur"
|
|
||||||
enableIdenticonGeneration: "Générer les identicons des utilisateurs"
|
|
||||||
turnOffToImprovePerformance: "Désactiver peut améliorer la performance."
|
|
||||||
createInviteCode: "Créer un code d'invitation"
|
|
||||||
createWithOptions: "Options"
|
|
||||||
createCount: "Quantité à créer"
|
|
||||||
inviteCodeCreated: "Code d'invitation créé"
|
|
||||||
inviteLimitExceeded: "Vous avez atteint la limite de codes d'invitation que vous pouvez générer."
|
|
||||||
createLimitRemaining: "Codes d'invitation pouvant être créés : {limit} restants"
|
|
||||||
inviteLimitResetCycle: "Vous pouvez créer jusqu'à {limit} codes d'invitation en {time}."
|
|
||||||
expirationDate: "Date d’expiration"
|
expirationDate: "Date d’expiration"
|
||||||
noExpirationDate: "Ne pas expirer"
|
|
||||||
inviteCodeUsedAt: "Code d'invitation utilisé à"
|
|
||||||
registeredUserUsingInviteCode: "Code d'invitation utilisé par"
|
|
||||||
waitingForMailAuth: "En attente de la vérification de l'adresse courriel"
|
waitingForMailAuth: "En attente de la vérification de l'adresse courriel"
|
||||||
inviteCodeCreator: "Créateur·rice de ce code d'invitation"
|
|
||||||
usedAt: "Utilisé le"
|
usedAt: "Utilisé le"
|
||||||
unused: "Non-utilisé"
|
unused: "Non-utilisé"
|
||||||
used: "Utilisé"
|
used: "Utilisé"
|
||||||
expired: "Expiré"
|
expired: "Expiré"
|
||||||
doYouAgree: "Êtes-vous d’accord ?"
|
doYouAgree: "Êtes-vous d’accord ?"
|
||||||
beSureToReadThisAsItIsImportant: "Assurez-vous de le lire ; c'est important."
|
beSureToReadThisAsItIsImportant: "Assurez-vous de le lire ; c'est important."
|
||||||
iHaveReadXCarefullyAndAgree: "J'ai lu le contenu de « {x} » et donne mon accord."
|
|
||||||
dialog: "Dialogue"
|
dialog: "Dialogue"
|
||||||
icon: "Avatar"
|
icon: "Avatar"
|
||||||
forYou: "Pour vous"
|
forYou: "Pour vous"
|
||||||
currentAnnouncements: "Annonces actuelles"
|
currentAnnouncements: "Annonces actuelles"
|
||||||
pastAnnouncements: "Annonces passées"
|
pastAnnouncements: "Annonces passées"
|
||||||
youHaveUnreadAnnouncements: "Il y a des annonces non lues."
|
replies: "Répondre"
|
||||||
useSecurityKey: "Suivez les instructions de votre navigateur ou de votre appareil pour utiliser une clé de sécurité ou une clé d'accès."
|
renotes: "Renoter"
|
||||||
replies: "Réponses"
|
|
||||||
renotes: "Renotes"
|
|
||||||
loadReplies: "Inclure les réponses"
|
loadReplies: "Inclure les réponses"
|
||||||
loadConversation: "Afficher la conversation"
|
|
||||||
pinnedList: "Liste épinglée"
|
pinnedList: "Liste épinglée"
|
||||||
keepScreenOn: "Garder l'écran toujours allumé"
|
|
||||||
verifiedLink: "Votre propriété de ce lien a été vérifiée"
|
|
||||||
notifyNotes: "Notifier à propos des nouvelles notes"
|
notifyNotes: "Notifier à propos des nouvelles notes"
|
||||||
unnotifyNotes: "Ne pas notifier pour la publication des notes"
|
|
||||||
authentication: "Authentification"
|
authentication: "Authentification"
|
||||||
authenticationRequiredToContinue: "Veuillez vous authentifier pour continuer"
|
authenticationRequiredToContinue: "Veuillez vous authentifier pour continuer"
|
||||||
dateAndTime: "Date et heure"
|
|
||||||
showRenotes: "Afficher les renotes"
|
showRenotes: "Afficher les renotes"
|
||||||
edited: "Modifié"
|
|
||||||
notificationRecieveConfig: "Paramètres des notifications"
|
|
||||||
mutualFollow: "Abonnement mutuel"
|
|
||||||
followingOrFollower: "Abonnement ou abonné"
|
|
||||||
fileAttachedOnly: "Avec fichiers joints seulement"
|
|
||||||
showRepliesToOthersInTimeline: "Afficher les réponses aux autres dans le fil"
|
showRepliesToOthersInTimeline: "Afficher les réponses aux autres dans le fil"
|
||||||
hideRepliesToOthersInTimeline: "Masquer les réponses aux autres dans le fil"
|
hideRepliesToOthersInTimeline: "Masquer les réponses aux autres dans le fil"
|
||||||
showRepliesToOthersInTimelineAll: "Afficher les réponses de toutes les personnes que vous suivez dans le fil"
|
showRepliesToOthersInTimelineAll: "Afficher les réponses de toutes les personnes que vous suivez dans le fil"
|
||||||
|
@ -1169,12 +1060,6 @@ hideRepliesToOthersInTimelineAll: "Masquer les réponses de toutes les personnes
|
||||||
confirmShowRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment afficher les réponses de toutes les personnes que vous suivez dans le fil ?"
|
confirmShowRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment afficher les réponses de toutes les personnes que vous suivez dans le fil ?"
|
||||||
confirmHideRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
|
confirmHideRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
|
||||||
externalServices: "Services externes"
|
externalServices: "Services externes"
|
||||||
sourceCode: "Code source"
|
|
||||||
sourceCodeIsNotYetProvided: "Le code source n'est pas encore disponible. Veuillez signaler ce problème aux administrateurs."
|
|
||||||
repositoryUrl: "URL du dépôt"
|
|
||||||
repositoryUrlDescription: "Entrez l'URL du dépôt où se trouve le code source ici. Si vous utilisez Misskey tel quel (sans changer le code source), entrez https://github.com/misskey-dev/misskey"
|
|
||||||
feedback: "Commentaires"
|
|
||||||
feedbackUrl: "URL pour les commentaires"
|
|
||||||
impressum: "Impressum"
|
impressum: "Impressum"
|
||||||
impressumUrl: "URL de l'impressum"
|
impressumUrl: "URL de l'impressum"
|
||||||
impressumDescription: "Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
|
impressumDescription: "Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
|
||||||
|
@ -1184,158 +1069,19 @@ tosAndPrivacyPolicy: "Conditions d'utilisation et politique de confidentialité"
|
||||||
avatarDecorations: "Décorations d'avatar"
|
avatarDecorations: "Décorations d'avatar"
|
||||||
attach: "Mettre"
|
attach: "Mettre"
|
||||||
detach: "Enlever"
|
detach: "Enlever"
|
||||||
detachAll: "Tout enlever"
|
|
||||||
angle: "Angle"
|
angle: "Angle"
|
||||||
flip: "Inverser"
|
flip: "Inverser"
|
||||||
showAvatarDecorations: "Afficher les décorations d'avatar"
|
showAvatarDecorations: "Afficher les décorations d'avatar"
|
||||||
releaseToRefresh: "Relâcher pour rafraîchir"
|
|
||||||
refreshing: "Rafraîchissement..."
|
|
||||||
pullDownToRefresh: "Tirer vers le bas pour rafraîchir"
|
|
||||||
disableStreamingTimeline: "Désactiver les mises à jour en temps réel de la ligne du temps"
|
|
||||||
useGroupedNotifications: "Grouper les notifications"
|
|
||||||
signupPendingError: "Un problème est survenu lors de la vérification de votre adresse e-mail. Le lien a peut-être expiré."
|
|
||||||
cwNotationRequired: "Si « Masquer le contenu » est activé, une description doit être fournie."
|
|
||||||
doReaction: "Réagir"
|
|
||||||
code: "Code"
|
|
||||||
reloadRequiredToApplySettings: "Le rafraîchissement est nécessaire pour que les paramètres prennent effet."
|
|
||||||
remainingN: "Restants : {n}"
|
|
||||||
overwriteContentConfirm: "Voulez-vous remplacer le contenu actuel ?"
|
|
||||||
seasonalScreenEffect: "Effet d'écran saisonnier"
|
|
||||||
decorate: "Décorer"
|
|
||||||
addMfmFunction: "Insérer MFM"
|
|
||||||
enableQuickAddMfmFunction: "Afficher le sélecteur de MFM avancé"
|
|
||||||
bubbleGame: "Jeu de bulles"
|
|
||||||
sfx: "Effets sonores"
|
|
||||||
soundWillBePlayed: "Le son sera joué"
|
|
||||||
showReplay: "Voir le replay"
|
|
||||||
replay: "Rediffusion"
|
|
||||||
replaying: "En cours de rediffusion"
|
|
||||||
endReplay: "Arrêter la rediffusion"
|
|
||||||
copyReplayData: "Copier les données de la rediffusion"
|
|
||||||
ranking: "Classement"
|
|
||||||
lastNDays: "Derniers {n} jours"
|
|
||||||
backToTitle: "Retourner au titre"
|
|
||||||
hemisphere: "Votre région"
|
|
||||||
withSensitive: "Afficher les notes contenant des fichiers joints sensibles"
|
|
||||||
userSaysSomethingSensitive: "Note de {name} contenant des fichiers joints sensibles"
|
|
||||||
enableHorizontalSwipe: "Glisser pour changer d'onglet"
|
|
||||||
loading: "Chargement en cours"
|
|
||||||
surrender: "Annuler"
|
|
||||||
gameRetry: "Réessayer"
|
|
||||||
launchApp: "Lancer l'app"
|
|
||||||
inquiry: "Contact"
|
|
||||||
_delivery:
|
|
||||||
status: "Statut de la diffusion"
|
|
||||||
stop: "Suspendu·e"
|
|
||||||
_type:
|
|
||||||
none: "Publié"
|
|
||||||
_bubbleGame:
|
|
||||||
howToPlay: "Comment jouer"
|
|
||||||
hold: "Réserver"
|
|
||||||
_score:
|
|
||||||
score: "Score"
|
|
||||||
scoreYen: "Montant gagné"
|
|
||||||
highScore: "Meilleur score"
|
|
||||||
maxChain: "Nombre maximum de chaînes"
|
|
||||||
yen: "{yen} yens"
|
|
||||||
estimatedQty: "{qty} pièces"
|
|
||||||
_announcement:
|
_announcement:
|
||||||
forExistingUsers: "Pour les utilisateurs existants seulement"
|
|
||||||
needConfirmationToRead: "Exiger la confirmation de la lecture"
|
|
||||||
needConfirmationToReadDescription: "Si activé, afficher un dialogue de confirmation quand l'annonce est marquée comme lue. Aussi, elle sera exclue de « marquer tout comme lu » ."
|
|
||||||
end: "Archiver l'annonce"
|
|
||||||
tooManyActiveAnnouncementDescription: "Un grand nombre d'annonces actives peut baisser l'expérience utilisateur. Considérez d'archiver les annonces obsolètes."
|
|
||||||
readConfirmTitle: "Marquer comme lu ?"
|
readConfirmTitle: "Marquer comme lu ?"
|
||||||
readConfirmText: "Cela marquera le contenu de « {title} » comme lu."
|
|
||||||
shouldNotBeUsedToPresentPermanentInfo: "Puisque cela pourrait nuire considérablement à l'expérience utilisateur pour les nouveaux utilisateurs, il est recommandé d'utiliser les annonces pour afficher des informations temporaires plutôt que des informations persistantes."
|
|
||||||
dialogAnnouncementUxWarn: "Avoir deux ou plus annonces de style dialogue en même temps pourrait nuire considérablement à l'expérience utilisateur. Veuillez les utiliser avec caution."
|
|
||||||
silence: "Ne pas me notifier"
|
|
||||||
silenceDescription: "Si activée, vous ne recevrez pas de notifications sur les annonces et n'aurez pas besoin de les marquer comme lues."
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "Votre compte a été créé avec succès !"
|
|
||||||
letsStartAccountSetup: "Procédons au réglage initial du compte."
|
|
||||||
letsFillYourProfile: "Commençons par configurer votre profil !"
|
|
||||||
profileSetting: "Paramètres du profil"
|
profileSetting: "Paramètres du profil"
|
||||||
privacySetting: "Paramètres de confidentialité"
|
privacySetting: "Paramètres de confidentialité"
|
||||||
initialAccountSettingCompleted: "Configuration du profil terminée avec succès !"
|
initialAccountSettingCompleted: "Configuration du profil terminée avec succès !"
|
||||||
youCanContinueTutorial: "Vous pouvez procéder au tutoriel sur l'utilisation de {name}(Misskey) ou vous arrêter ici et commencer à l'utiliser immédiatement."
|
ifYouNeedLearnMore: "Si vous voulez en savoir plus comment utiliser {name}(Misskey), veuillez visiter {link}."
|
||||||
startTutorial: "Démarrer le tutoriel"
|
skipAreYouSure: "Désirez-vous ignorer la configuration du profile ?"
|
||||||
skipAreYouSure: "Désirez-vous ignorer la configuration du profil ?"
|
|
||||||
_initialTutorial:
|
|
||||||
launchTutorial: "Visionner le tutoriel"
|
|
||||||
title: "Tutoriel"
|
|
||||||
wellDone: "Bien joué !"
|
|
||||||
skipAreYouSure: "Quitter le tutoriel ?"
|
|
||||||
_landing:
|
|
||||||
title: "Bienvenue dans le tutoriel"
|
|
||||||
description: "Ici, vous pouvez apprendre l'utilisation de base de Misskey et ses fonctionnalités."
|
|
||||||
_note:
|
|
||||||
title: "Qu'est-ce que les notes ?"
|
|
||||||
description: "Les messages sur Misskey sont appelés des « notes » . Les notes sont classées par ordre chronologique sur le fil et sont mises à jour en temps réel."
|
|
||||||
reply: "Vous pouvez répondre aux messages. Vous pouvez également répondre aux réponses et poursuivre la conversation comme un fil de discussion."
|
|
||||||
renote: "Vous pouvez partager cette note sur votre propre fil. Vous pouvez aussi ajouter du texte en citant."
|
|
||||||
reaction: "Vous pouvez ajouter des réactions. Les détails sont expliqués à la page suivante."
|
|
||||||
menu: "Vous pouvez afficher les détails de la note, copier le lien et effectuer d'autres actions."
|
|
||||||
_reaction:
|
|
||||||
title: "Qu'est-ce que les réactions ?"
|
|
||||||
description: "Vous pouvez ajouter des « réactions » aux notes. Les réactions vous permettent d'exprimer à l'aise des nuances qui ne peuvent pas être exprimées par des mentions j'aime."
|
|
||||||
letsTryReacting: "Des réactions peuvent être ajoutées en cliquant sur le bouton « + » de la note. Essayez d'ajouter une réaction à cet exemple de note !"
|
|
||||||
reactToContinue: "Ajoutez une réaction pour procéder."
|
|
||||||
reactNotification: "Vous recevez des notifications en temps réel lorsque quelqu'un réagit à votre note."
|
|
||||||
reactDone: "Vous pouvez annuler la réaction en cliquant sur le bouton « - » ."
|
|
||||||
_timeline:
|
|
||||||
title: "Fonctionnement des fils"
|
|
||||||
description1: "Misskey offre plusieurs fils selon l'usage (certains peuvent être désactivés par le serveur)."
|
|
||||||
home: "Vous pouvez voir les notes des utilisateurs auxquels vous êtes abonné·e."
|
|
||||||
local: "Vous pouvez voir les notes de tous les utilisateurs sur cette instance."
|
|
||||||
social: "Les notes des fils principal et local sont affichées."
|
|
||||||
global: "Vous pouvez voir les notes de toutes les instances connectées."
|
|
||||||
description2: "Vous pouvez passer d'un fil à l'autre en haut de l'écran à tout moment."
|
|
||||||
description3: "De plus, il y a les fils des listes et des canaux. Pour plus de détails, consultez {link}."
|
|
||||||
_postNote:
|
|
||||||
title: "Paramètres de la publication de note"
|
|
||||||
description1: "Lorsque vous publiez des notes sur Misskey, diverses options sont disponibles. Voici le formulaire de publication."
|
|
||||||
_visibility:
|
|
||||||
description: "Vous pouvez choisir qui peut voir vos notes."
|
|
||||||
public: "Visible à tous les utilisateurs."
|
|
||||||
home: "Uniquement visible sur le fil principal. Les utilisateurs pourront la voir en visitant ton profil, en s'abonnant à vous et par les renotes."
|
|
||||||
followers: "Uniquement visible à vos abonnés. Elle ne pourra être renotée que par vous-même."
|
|
||||||
direct: "Uniquement visible aux utilisateurs de votre choix. Les récipients seront notifiés. Cette option peut être utilisée comme alternative aux messages directs."
|
|
||||||
doNotSendConfidencialOnDirect1: "Faites attention quand vous envoyez vos informations sensibles !"
|
|
||||||
doNotSendConfidencialOnDirect2: "Les administrateurs de l'instance destinataire peuvent voir toutes les notes publiées. Soyez prudent·e avec vos informations sensibles quand vous envoyez des notes directes aux utilisateurs dont vous ne vous fiez pas aux instances."
|
|
||||||
localOnly: "Désactiver la fédération de la note aux autres instances. Les utilisateurs des autres instances ne pourront pas voir directement la note quelle que soit l'étendue de la publication mentionnée ci-dessus."
|
|
||||||
_cw:
|
|
||||||
title: "Masquer le contenu (CW)"
|
|
||||||
description: "Au lieu du corps du texte, le contenu du champ « commentaires » s'affichera. Appuyez sur « afficher le contenu » pour voir le corps du texte."
|
|
||||||
_exampleNote:
|
|
||||||
cw: "Attention : cela vous donnera faim !"
|
|
||||||
note: "J'ai mangé un beignet enrobé de chocolat 🍩😋"
|
|
||||||
useCases: "Utilisé pour désigner certaines notes selon les règles du serveur ou pour cacher des spoilers ou des textes sensibles."
|
|
||||||
_howToMakeAttachmentsSensitive:
|
|
||||||
title: "Comment marquer un fichier joint comme sensible ?"
|
|
||||||
description: "Attachez un drapeau « sensible » aux fichiers joints selon les règles du serveur ou si vous ne voulez pas que le fichier soit vu directement."
|
|
||||||
tryThisFile: "Essayez de marquer l'image jointe à ce formulaire de publication comme sensible !"
|
|
||||||
_exampleNote:
|
|
||||||
note: "Oups, j'ai échoué à ouvrir le couvercle du natto..."
|
|
||||||
method: "Pour marquer un fichier joint comme sensible, cliquez sur la vignette du fichier pour ouvrir le menu et cliquez sur « marquer comme sensible » ."
|
|
||||||
sensitiveSucceeded: "Quand vous joignez des fichiers, veuillez indiquer la sensibilité selon les règles du serveur."
|
|
||||||
doItToContinue: "Marquez le fichier joint comme sensible pour procéder."
|
|
||||||
_done:
|
|
||||||
title: "Le tutoriel est terminé ! 🎉"
|
|
||||||
description: "Les fonctionnalités introduites ici ne sont que quelques-unes. Pour savoir plus sur l'utilisation de Misskey, veuillez consulter {link}."
|
|
||||||
_timelineDescription:
|
|
||||||
home: "Sur le fil principal, vous pouvez voir les notes des utilisateurs auxquels vous êtes abonné·e."
|
|
||||||
local: "Sur le fil local, vous pouvez voir les notes de tous les utilisateurs sur cette instance."
|
|
||||||
social: "Sur le fil social, les notes des fils principal et local sont affichées."
|
|
||||||
global: "Sur le fil global, vous pouvez voir les notes de toutes les instances connectées."
|
|
||||||
_serverSettings:
|
_serverSettings:
|
||||||
iconUrl: "URL de l’icône"
|
iconUrl: "URL de l’icône"
|
||||||
appIconResolutionMustBe: "La résolution doit être au moins {resolution}."
|
|
||||||
shortName: "Nom court"
|
|
||||||
shortNameDescription: "Si le nom officiel de l'instance est long, cette abréviation peut être affichée à la place."
|
|
||||||
fanoutTimelineDescription: "Si activée, la performance de la récupération de la chronologie augmentera considérablement et la charge sur la base de données sera réduite. En revanche, l'utilisation de la mémoire de Redis augmentera. Considérez désactiver cette option si le serveur est bas en mémoire ou instable."
|
|
||||||
fanoutTimelineDbFallback: "Recours à la base de données"
|
|
||||||
fanoutTimelineDbFallbackDescription: "Si activée, une demande supplémentaire à la base de données est effectuée comme solution de rechange quand le fil n'est pas mis en cache. Si désactivée, la demande à la base de données n'est pas effectuée, ce qui réduit davantage la charge du serveur mais limite l'étendue du fil récupérable."
|
|
||||||
_accountMigration:
|
_accountMigration:
|
||||||
moveFrom: "Migrer un autre compte vers le présent compte"
|
moveFrom: "Migrer un autre compte vers le présent compte"
|
||||||
moveFromSub: "Créer un alias vers un autre compte"
|
moveFromSub: "Créer un alias vers un autre compte"
|
||||||
|
@ -1343,7 +1089,6 @@ _accountMigration:
|
||||||
startMigration: "Migrer"
|
startMigration: "Migrer"
|
||||||
movedTo: "Compte vers lequel vous migrez :"
|
movedTo: "Compte vers lequel vous migrez :"
|
||||||
_achievements:
|
_achievements:
|
||||||
earnedAt: "Date d'obtention"
|
|
||||||
_types:
|
_types:
|
||||||
_notes1:
|
_notes1:
|
||||||
title: "Je viens tout juste de configurer mon msky"
|
title: "Je viens tout juste de configurer mon msky"
|
||||||
|
@ -1384,13 +1129,10 @@ _achievements:
|
||||||
title: "Régulier III"
|
title: "Régulier III"
|
||||||
description: "Se connecter pour un total de 400 jours"
|
description: "Se connecter pour un total de 400 jours"
|
||||||
_login500:
|
_login500:
|
||||||
title: "Expert I"
|
|
||||||
description: "Se connecter pour un total de 500 jours"
|
description: "Se connecter pour un total de 500 jours"
|
||||||
_login600:
|
_login600:
|
||||||
title: "Expert II"
|
|
||||||
description: "Se connecter pour un total de 600 jours"
|
description: "Se connecter pour un total de 600 jours"
|
||||||
_login700:
|
_login700:
|
||||||
title: "Expert III"
|
|
||||||
description: "Se connecter pour un total de 700 jours"
|
description: "Se connecter pour un total de 700 jours"
|
||||||
_login800:
|
_login800:
|
||||||
description: "Se connecter pour un total de 800 jours"
|
description: "Se connecter pour un total de 800 jours"
|
||||||
|
@ -1406,16 +1148,9 @@ _achievements:
|
||||||
description: "Rendre votre compte comme un chat"
|
description: "Rendre votre compte comme un chat"
|
||||||
flavor: "Je n'ai pas encore de nom"
|
flavor: "Je n'ai pas encore de nom"
|
||||||
_following1:
|
_following1:
|
||||||
title: "Vous suivez votre premier·ère utilisateur·rice"
|
title: "Vous suivez votre premier utilisateur·rice"
|
||||||
_following10:
|
|
||||||
description: "S'abonner à plus de 10 utilisateur·rice·s"
|
|
||||||
_following50:
|
_following50:
|
||||||
title: "Beaucoup d'amis"
|
title: "Beaucoup d'amis"
|
||||||
description: "S'abonner à plus de 50 utilisateur·rice·s"
|
|
||||||
_following100:
|
|
||||||
description: "S'abonner à plus de 100 utilisateur·rice·s"
|
|
||||||
_following300:
|
|
||||||
description: "S'abonner à plus de 300 utilisateur·rice·s"
|
|
||||||
_followers10:
|
_followers10:
|
||||||
title: "Abonnez-moi !"
|
title: "Abonnez-moi !"
|
||||||
description: "Obtenir plus de 10 abonné·e·s"
|
description: "Obtenir plus de 10 abonné·e·s"
|
||||||
|
@ -1450,7 +1185,7 @@ _achievements:
|
||||||
_viewInstanceChart:
|
_viewInstanceChart:
|
||||||
title: "Analyste"
|
title: "Analyste"
|
||||||
_outputHelloWorldOnScratchpad:
|
_outputHelloWorldOnScratchpad:
|
||||||
title: "Hello, world!"
|
title: "Bonjour tout le monde !"
|
||||||
_open3windows:
|
_open3windows:
|
||||||
title: "Multi-fenêtres"
|
title: "Multi-fenêtres"
|
||||||
_driveFolderCircularReference:
|
_driveFolderCircularReference:
|
||||||
|
@ -1472,25 +1207,14 @@ _achievements:
|
||||||
flavor: "Attendez une minute, vous êtes sur le mauvais site web ?"
|
flavor: "Attendez une minute, vous êtes sur le mauvais site web ?"
|
||||||
_brainDiver:
|
_brainDiver:
|
||||||
flavor: "Misskey-Misskey La-Tu-Ma"
|
flavor: "Misskey-Misskey La-Tu-Ma"
|
||||||
_smashTestNotificationButton:
|
|
||||||
title: "Débordement de tests"
|
|
||||||
description: "Détruire le bouton de test de notifications dans un intervalle extrêmement court"
|
|
||||||
_tutorialCompleted:
|
|
||||||
title: "Diplôme de la course élémentaire de Misskey"
|
|
||||||
description: "Terminer le tutoriel"
|
|
||||||
_role:
|
_role:
|
||||||
new: "Nouveau rôle"
|
new: "Nouveau rôle"
|
||||||
edit: "Modifier le rôle"
|
edit: "Modifier le rôle"
|
||||||
name: "Nom du rôle"
|
name: "Nom du rôle"
|
||||||
description: "Description du rôle"
|
description: "Description du rôle"
|
||||||
permission: "Autorisations du rôle"
|
permission: "Rôle et autorisations"
|
||||||
assignTarget: "Attribuer"
|
assignTarget: "Attribuer"
|
||||||
manual: "Manuel"
|
|
||||||
manualRoles: "Rôles manuels"
|
|
||||||
conditional: "Conditionnel"
|
|
||||||
conditionalRoles: "Rôles conditionnels"
|
|
||||||
condition: "Condition"
|
condition: "Condition"
|
||||||
isConditionalRole: "Ceci est un rôle conditionnel."
|
|
||||||
isPublic: "Rôle public"
|
isPublic: "Rôle public"
|
||||||
options: "Options"
|
options: "Options"
|
||||||
policies: "Stratégies"
|
policies: "Stratégies"
|
||||||
|
@ -1506,11 +1230,7 @@ _role:
|
||||||
high: "Haute"
|
high: "Haute"
|
||||||
_options:
|
_options:
|
||||||
canManageCustomEmojis: "Gestion des émojis personnalisés"
|
canManageCustomEmojis: "Gestion des émojis personnalisés"
|
||||||
canManageAvatarDecorations: "Gestion des décorations d'avatar"
|
|
||||||
driveCapacity: "Capacité de stockage du Disque"
|
|
||||||
wordMuteMax: "Nombre maximal de caractères dans le filtre de mots"
|
wordMuteMax: "Nombre maximal de caractères dans le filtre de mots"
|
||||||
canUseTranslator: "Usage de la fonctionnalité de traduction"
|
|
||||||
avatarDecorationLimit: "Nombre maximal de décorations d'avatar"
|
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "L'apprentissage automatique peut être utilisé pour détecter automatiquement les médias sensibles à modérer. La sollicitation des serveurs augmente légèrement."
|
description: "L'apprentissage automatique peut être utilisé pour détecter automatiquement les médias sensibles à modérer. La sollicitation des serveurs augmente légèrement."
|
||||||
sensitivity: "Sensibilité de la détection"
|
sensitivity: "Sensibilité de la détection"
|
||||||
|
@ -1544,10 +1264,8 @@ _ad:
|
||||||
back: "Retour"
|
back: "Retour"
|
||||||
reduceFrequencyOfThisAd: "Voir cette publicité moins souvent"
|
reduceFrequencyOfThisAd: "Voir cette publicité moins souvent"
|
||||||
hide: "Cacher "
|
hide: "Cacher "
|
||||||
adsSettings: "Paramètres des publicités"
|
adsSettings: "Réglages des publicités"
|
||||||
notesPerOneAd: "Intervalle de diffusion de publicités lors de la mise à jour en temps réel (nombre de notes par publicité)"
|
notesPerOneAd: "Intervalle de diffusion de publicités lors de la mise à jour en temps réel (nombre de notes par publicité)"
|
||||||
setZeroToDisable: "Mettre cette valeur à 0 pour désactiver la diffusion de publicités lors de la mise à jour en temps réel"
|
|
||||||
adsTooClose: "L'expérience utilisateur peut être gravement compromise par un intervalle de diffusion de publicités extrêmement court."
|
|
||||||
_forgotPassword:
|
_forgotPassword:
|
||||||
enterEmail: "Entrez ici l'adresse e-mail que vous avez enregistrée pour votre compte. Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette adresse."
|
enterEmail: "Entrez ici l'adresse e-mail que vous avez enregistrée pour votre compte. Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette adresse."
|
||||||
ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice de votre instance."
|
ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice de votre instance."
|
||||||
|
@ -1578,7 +1296,7 @@ _preferencesBackups:
|
||||||
nameAlreadyExists: "Le nom de sauvegarde \"{name}\" existe déjà. Veuillez spécifier un autre nom."
|
nameAlreadyExists: "Le nom de sauvegarde \"{name}\" existe déjà. Veuillez spécifier un autre nom."
|
||||||
applyConfirm: "Voulez-vous appliquer la sauvegarde '{name}' au dispositif actuel ? La configuration actuelle de l'appareil sera perdue."
|
applyConfirm: "Voulez-vous appliquer la sauvegarde '{name}' au dispositif actuel ? La configuration actuelle de l'appareil sera perdue."
|
||||||
saveConfirm: "Voulez-vous écraser {name} ?"
|
saveConfirm: "Voulez-vous écraser {name} ?"
|
||||||
deleteConfirm: "Êtes-vous sûr·e de vouloir supprimer {name} ?"
|
deleteConfirm: "Voulez-vous supprimer {name} ?"
|
||||||
renameConfirm: "Voulez-vous remplacer \"{old}\" par \"{new}\" ?"
|
renameConfirm: "Voulez-vous remplacer \"{old}\" par \"{new}\" ?"
|
||||||
noBackups: "Aucune sauvegarde n'est disponible. L'option \"Nouvelle sauvegarde\" vous permet de sauvegarder la configuration actuelle du client sur le serveur."
|
noBackups: "Aucune sauvegarde n'est disponible. L'option \"Nouvelle sauvegarde\" vous permet de sauvegarder la configuration actuelle du client sur le serveur."
|
||||||
createdAt: "Créé : {date} {time}"
|
createdAt: "Créé : {date} {time}"
|
||||||
|
@ -1600,7 +1318,6 @@ _aboutMisskey:
|
||||||
donate: "Soutenir Misskey"
|
donate: "Soutenir Misskey"
|
||||||
morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰"
|
morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰"
|
||||||
patrons: "Contributeurs"
|
patrons: "Contributeurs"
|
||||||
projectMembers: "Membres du projet"
|
|
||||||
_displayOfSensitiveMedia:
|
_displayOfSensitiveMedia:
|
||||||
force: "Masquer tous les médias"
|
force: "Masquer tous les médias"
|
||||||
_instanceTicker:
|
_instanceTicker:
|
||||||
|
@ -1623,7 +1340,6 @@ _channel:
|
||||||
notesCount: "{n} Notes"
|
notesCount: "{n} Notes"
|
||||||
nameAndDescription: "Nom et description"
|
nameAndDescription: "Nom et description"
|
||||||
nameOnly: "Nom seulement"
|
nameOnly: "Nom seulement"
|
||||||
allowRenoteToExternal: "Permettre la renote et la citation hors du canal"
|
|
||||||
_menuDisplay:
|
_menuDisplay:
|
||||||
sideFull: "Latéral"
|
sideFull: "Latéral"
|
||||||
sideIcon: "Latéral (icônes)"
|
sideIcon: "Latéral (icônes)"
|
||||||
|
@ -1701,6 +1417,7 @@ _theme:
|
||||||
buttonBg: "Arrière-plan du bouton"
|
buttonBg: "Arrière-plan du bouton"
|
||||||
buttonHoverBg: "Arrière-plan du bouton (survolé)"
|
buttonHoverBg: "Arrière-plan du bouton (survolé)"
|
||||||
inputBorder: "Cadre de la zone de texte"
|
inputBorder: "Cadre de la zone de texte"
|
||||||
|
listItemHoverBg: "Arrière-plan d'item de liste (survolé)"
|
||||||
driveFolderBg: "Arrière-plan du dossier de disque"
|
driveFolderBg: "Arrière-plan du dossier de disque"
|
||||||
wallpaperOverlay: "Superposition de fond d'écran"
|
wallpaperOverlay: "Superposition de fond d'écran"
|
||||||
badge: "Badge"
|
badge: "Badge"
|
||||||
|
@ -1712,14 +1429,8 @@ _sfx:
|
||||||
note: "Nouvelle note"
|
note: "Nouvelle note"
|
||||||
noteMy: "Ma note"
|
noteMy: "Ma note"
|
||||||
notification: "Notifications"
|
notification: "Notifications"
|
||||||
reaction: "Lors de la sélection de la réaction"
|
antenna: "Réception de l’antenne"
|
||||||
_soundSettings:
|
channel: "Notifications de canal"
|
||||||
driveFile: "Utiliser un effet sonore sur le Disque"
|
|
||||||
driveFileWarn: "Veuillez sélectionner le fichier sur le Disque"
|
|
||||||
driveFileTypeWarn: "Ce fichier n'est pas pris en charge"
|
|
||||||
driveFileTypeWarnDescription: "Veuillez sélectionner un fichier audio"
|
|
||||||
driveFileDurationWarn: "L'effet sonore est trop long"
|
|
||||||
driveFileDurationWarnDescription: "Utiliser un effet sonore long peut affecter l'utilisation de Misskey. Voulez-vous encore continuer ?"
|
|
||||||
_ago:
|
_ago:
|
||||||
future: "Futur"
|
future: "Futur"
|
||||||
justNow: "à l’instant"
|
justNow: "à l’instant"
|
||||||
|
@ -1731,19 +1442,14 @@ _ago:
|
||||||
monthsAgo: "Il y a {n} mois"
|
monthsAgo: "Il y a {n} mois"
|
||||||
yearsAgo: "Il y a {n} ans"
|
yearsAgo: "Il y a {n} ans"
|
||||||
invalid: "Il n'y a rien à voir ici"
|
invalid: "Il n'y a rien à voir ici"
|
||||||
_timeIn:
|
|
||||||
seconds: "Dans {n}s"
|
|
||||||
minutes: "Dans {n}min"
|
|
||||||
hours: "Dans {n}h"
|
|
||||||
days: "Dans {n}j"
|
|
||||||
weeks: "Dans {n} sem."
|
|
||||||
months: "Dans {n} mois"
|
|
||||||
years: "Dans {n}a"
|
|
||||||
_time:
|
_time:
|
||||||
second: "s"
|
second: "s"
|
||||||
minute: "min"
|
minute: "min"
|
||||||
hour: "h"
|
hour: "h"
|
||||||
day: "j"
|
day: "j"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Comment utiliser Misskey"
|
||||||
|
step3_1: "Avez-vous publié votre première note ?"
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "Configuration déjà achevée."
|
alreadyRegistered: "Configuration déjà achevée."
|
||||||
step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil."
|
step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil."
|
||||||
|
@ -1756,7 +1462,7 @@ _2fa:
|
||||||
securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion grâce à une clé de sécurité matérielle qui prend en charge FIDO2, ou bien en configurant l'authentification par empreinte digitale ou par code PIN sur votre appareil."
|
securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion grâce à une clé de sécurité matérielle qui prend en charge FIDO2, ou bien en configurant l'authentification par empreinte digitale ou par code PIN sur votre appareil."
|
||||||
securityKeyName: "Nom de la clé"
|
securityKeyName: "Nom de la clé"
|
||||||
removeKey: "Supprimer la clé de sécurité"
|
removeKey: "Supprimer la clé de sécurité"
|
||||||
removeKeyConfirm: "Êtes-vous sûr·e de vouloir supprimer {name} ?"
|
removeKeyConfirm: "Voulez-vous supprimer {name} ?"
|
||||||
renewTOTPOk: "Reconfigurer"
|
renewTOTPOk: "Reconfigurer"
|
||||||
renewTOTPCancel: "Pas maintenant"
|
renewTOTPCancel: "Pas maintenant"
|
||||||
backupCodes: "Codes de Secours"
|
backupCodes: "Codes de Secours"
|
||||||
|
@ -1765,8 +1471,8 @@ _permissions:
|
||||||
"write:account": "Mettre à jour les informations de votre compte"
|
"write:account": "Mettre à jour les informations de votre compte"
|
||||||
"read:blocks": "Voir les comptes bloqués"
|
"read:blocks": "Voir les comptes bloqués"
|
||||||
"write:blocks": "Gérer les comptes bloqués"
|
"write:blocks": "Gérer les comptes bloqués"
|
||||||
"read:drive": "Parcourir le Disque"
|
"read:drive": "Parcourir le Drive"
|
||||||
"write:drive": "Modifier le Disque"
|
"write:drive": "Écrire sur le Drive"
|
||||||
"read:favorites": "Afficher les favoris"
|
"read:favorites": "Afficher les favoris"
|
||||||
"write:favorites": "Gérer les favoris"
|
"write:favorites": "Gérer les favoris"
|
||||||
"read:following": "Voir les informations de vos abonnements"
|
"read:following": "Voir les informations de vos abonnements"
|
||||||
|
@ -1786,7 +1492,7 @@ _permissions:
|
||||||
"read:page-likes": "Voir les mentions « J'aime » des pages"
|
"read:page-likes": "Voir les mentions « J'aime » des pages"
|
||||||
"write:page-likes": "Gérer les mentions « J'aime » sur les pages"
|
"write:page-likes": "Gérer les mentions « J'aime » sur les pages"
|
||||||
"read:user-groups": "Voir les groupes d'utilisateur·rice·s"
|
"read:user-groups": "Voir les groupes d'utilisateur·rice·s"
|
||||||
"write:user-groups": "Éditer les groupes d'utilisateur·rice·s"
|
"write:user-groups": "Éditer les groupes des utilisateur·rice·s"
|
||||||
"read:channels": "Lire les canaux"
|
"read:channels": "Lire les canaux"
|
||||||
"write:channels": "Gérer les canaux"
|
"write:channels": "Gérer les canaux"
|
||||||
"read:gallery": "Voir la galerie"
|
"read:gallery": "Voir la galerie"
|
||||||
|
@ -1840,10 +1546,9 @@ _widgets:
|
||||||
userList: "Liste utilisateur"
|
userList: "Liste utilisateur"
|
||||||
_userList:
|
_userList:
|
||||||
chooseList: "Sélectionner une liste"
|
chooseList: "Sélectionner une liste"
|
||||||
birthdayFollowings: "Utilisateurs qui fêtent l'anniversaire aujourd'hui"
|
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Masquer"
|
hide: "Masquer"
|
||||||
show: "Afficher le contenu"
|
show: "Afficher plus …"
|
||||||
chars: "{count} caractères"
|
chars: "{count} caractères"
|
||||||
files: "{count} fichiers"
|
files: "{count} fichiers"
|
||||||
_poll:
|
_poll:
|
||||||
|
@ -1877,7 +1582,6 @@ _visibility:
|
||||||
followersDescription: "Publier à vos abonné·e·s uniquement"
|
followersDescription: "Publier à vos abonné·e·s uniquement"
|
||||||
specified: "Direct"
|
specified: "Direct"
|
||||||
specifiedDescription: "Publier uniquement aux utilisateur·rice·s mentionné·e·s"
|
specifiedDescription: "Publier uniquement aux utilisateur·rice·s mentionné·e·s"
|
||||||
disableFederation: "Défédérer"
|
|
||||||
_postForm:
|
_postForm:
|
||||||
replyPlaceholder: "Répondre à cette note ..."
|
replyPlaceholder: "Répondre à cette note ..."
|
||||||
quotePlaceholder: "Citez cette note ..."
|
quotePlaceholder: "Citez cette note ..."
|
||||||
|
@ -1899,19 +1603,16 @@ _profile:
|
||||||
metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires dans votre profil."
|
metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires dans votre profil."
|
||||||
metadataLabel: "Étiquette"
|
metadataLabel: "Étiquette"
|
||||||
metadataContent: "Contenu"
|
metadataContent: "Contenu"
|
||||||
changeAvatar: "Changer l'avatar"
|
changeAvatar: "Changer l'image de profil"
|
||||||
changeBanner: "Changer de bannière"
|
changeBanner: "Changer de bannière"
|
||||||
avatarDecorationMax: "Vous pouvez mettre au plus {max} décorations d'avatar."
|
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Toutes les notes"
|
allNotes: "Toutes les notes"
|
||||||
clips: "Clip"
|
|
||||||
followingList: "Abonnements"
|
followingList: "Abonnements"
|
||||||
muteList: "Comptes masqués"
|
muteList: "Comptes masqués"
|
||||||
blockingList: "Comptes bloqués"
|
blockingList: "Comptes bloqués"
|
||||||
userLists: "Listes"
|
userLists: "Listes"
|
||||||
excludeMutingUsers: "Exclure les utilisateur·rice·s mis en sourdine"
|
excludeMutingUsers: "Exclure les utilisateur·rice·s mis en sourdine"
|
||||||
excludeInactiveUsers: "Exclure les utilisateur·rice·s inactifs"
|
excludeInactiveUsers: "Exclure les utilisateur·rice·s inactifs"
|
||||||
withReplies: "Inclure les réponses des utilisateur·rice·s importé·e·s dans le fil"
|
|
||||||
_charts:
|
_charts:
|
||||||
federation: "Fédération"
|
federation: "Fédération"
|
||||||
apRequest: "Requêtes"
|
apRequest: "Requêtes"
|
||||||
|
@ -2008,18 +1709,13 @@ _notification:
|
||||||
youGotReply: "Réponse de {name}"
|
youGotReply: "Réponse de {name}"
|
||||||
youGotQuote: "Cité·e par {name}"
|
youGotQuote: "Cité·e par {name}"
|
||||||
youRenoted: "{name} vous a Renoté"
|
youRenoted: "{name} vous a Renoté"
|
||||||
youWereFollowed: "s'est abonné·e à vous"
|
youWereFollowed: "Vous suit"
|
||||||
youReceivedFollowRequest: "Vous avez reçu une demande d’abonnement"
|
youReceivedFollowRequest: "Vous avez reçu une demande d’abonnement"
|
||||||
yourFollowRequestAccepted: "Votre demande d’abonnement a été accepté"
|
yourFollowRequestAccepted: "Votre demande d’abonnement a été accepté"
|
||||||
pollEnded: "Les résultats du sondage sont disponibles"
|
pollEnded: "Les résultats du sondage sont disponibles"
|
||||||
unreadAntennaNote: "Antenne {name}"
|
unreadAntennaNote: "Antenne {name}"
|
||||||
roleAssigned: "Rôle attribué"
|
|
||||||
emptyPushNotificationMessage: "Les notifications push ont été mises à jour"
|
emptyPushNotificationMessage: "Les notifications push ont été mises à jour"
|
||||||
achievementEarned: "Accomplissement déverrouillé"
|
achievementEarned: "Accomplissement"
|
||||||
testNotification: "Tester la notification"
|
|
||||||
reactedBySomeUsers: "{n} utilisateur·rice·s ont réagi"
|
|
||||||
renotedBySomeUsers: "{n} utilisateur·rice·s ont renoté"
|
|
||||||
followedBySomeUsers: "{n} utilisateur·rice·s se sont abonné·e·s à vous"
|
|
||||||
_types:
|
_types:
|
||||||
all: "Toutes"
|
all: "Toutes"
|
||||||
follow: "Nouvel·le abonné·e"
|
follow: "Nouvel·le abonné·e"
|
||||||
|
@ -2031,9 +1727,7 @@ _notification:
|
||||||
pollEnded: "Sondages se cloturant"
|
pollEnded: "Sondages se cloturant"
|
||||||
receiveFollowRequest: "Demande d'abonnement reçue"
|
receiveFollowRequest: "Demande d'abonnement reçue"
|
||||||
followRequestAccepted: "Demande d'abonnement acceptée"
|
followRequestAccepted: "Demande d'abonnement acceptée"
|
||||||
roleAssigned: "Rôle reçu"
|
achievementEarned: "Accomplissement"
|
||||||
achievementEarned: "Déverrouillage d'accomplissement"
|
|
||||||
login: "Se connecter"
|
|
||||||
app: "Notifications provenant des apps"
|
app: "Notifications provenant des apps"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "Suivre"
|
followBack: "Suivre"
|
||||||
|
@ -2063,19 +1757,12 @@ _deck:
|
||||||
tl: "Fil"
|
tl: "Fil"
|
||||||
antenna: "Antennes"
|
antenna: "Antennes"
|
||||||
list: "Listes"
|
list: "Listes"
|
||||||
channel: "Canal"
|
channel: "Canaux"
|
||||||
mentions: "Mentions"
|
mentions: "Mentions"
|
||||||
direct: "Direct"
|
direct: "Direct"
|
||||||
_drivecleaner:
|
|
||||||
orderBySizeDesc: "Taille descendante"
|
|
||||||
orderByCreatedAtAsc: "Date d'ajout ascendante"
|
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
name: "Nom"
|
name: "Nom"
|
||||||
active: "Activé"
|
active: "Activé"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "E-mail "
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
createRole: "Rôle créé"
|
createRole: "Rôle créé"
|
||||||
deleteRole: "Rôle supprimé"
|
deleteRole: "Rôle supprimé"
|
||||||
|
@ -2087,7 +1774,7 @@ _moderationLogTypes:
|
||||||
addCustomEmoji: "Émoji personnalisé ajouté"
|
addCustomEmoji: "Émoji personnalisé ajouté"
|
||||||
updateCustomEmoji: "Émoji personnalisé mis à jour"
|
updateCustomEmoji: "Émoji personnalisé mis à jour"
|
||||||
deleteCustomEmoji: "Émoji personnalisé supprimé"
|
deleteCustomEmoji: "Émoji personnalisé supprimé"
|
||||||
updateServerSettings: "Paramètres du serveur mis à jour"
|
updateServerSettings: "Réglages du serveur mis à jour"
|
||||||
updateUserNote: "Note de modération mise à jour"
|
updateUserNote: "Note de modération mise à jour"
|
||||||
deleteDriveFile: "Fichier supprimé"
|
deleteDriveFile: "Fichier supprimé"
|
||||||
deleteNote: "Note supprimée"
|
deleteNote: "Note supprimée"
|
||||||
|
@ -2110,8 +1797,6 @@ _moderationLogTypes:
|
||||||
createAvatarDecoration: "Décoration d'avatar créée"
|
createAvatarDecoration: "Décoration d'avatar créée"
|
||||||
updateAvatarDecoration: "Décoration d'avatar mise à jour"
|
updateAvatarDecoration: "Décoration d'avatar mise à jour"
|
||||||
deleteAvatarDecoration: "Décoration d'avatar supprimée"
|
deleteAvatarDecoration: "Décoration d'avatar supprimée"
|
||||||
unsetUserAvatar: "Supprimer l'avatar de l'utilisateur·rice"
|
|
||||||
unsetUserBanner: "Supprimer la bannière de l'utilisateur·rice"
|
|
||||||
_fileViewer:
|
_fileViewer:
|
||||||
title: "Détails du fichier"
|
title: "Détails du fichier"
|
||||||
type: "Type du fichier"
|
type: "Type du fichier"
|
||||||
|
@ -2161,19 +1846,3 @@ _externalResourceInstaller:
|
||||||
_themeInstallFailed:
|
_themeInstallFailed:
|
||||||
title: "Échec d'installation du thème"
|
title: "Échec d'installation du thème"
|
||||||
description: "Il y a eu un problème lors de l'installation du thème. Veuillez réessayer. Pour plus de détails sur l'erreur, veuillez consulter la console JavaScript."
|
description: "Il y a eu un problème lors de l'installation du thème. Veuillez réessayer. Pour plus de détails sur l'erreur, veuillez consulter la console JavaScript."
|
||||||
_dataSaver:
|
|
||||||
_media:
|
|
||||||
title: "Chargement des médias"
|
|
||||||
description: "Empêche le chargement automatique des images et des vidéos. Appuyez sur les images et les vidéos cachées pour les charger."
|
|
||||||
_avatar:
|
|
||||||
title: "Animation d'avatars"
|
|
||||||
description: "Arrête l'animation d'avatars. Comme les images animées peuvent être plus volumineuses que les images normales, cela permet de réduire davantage le trafic de données."
|
|
||||||
_urlPreview:
|
|
||||||
title: "Vignettes d'aperçu des URL"
|
|
||||||
description: "Les vignettes d'aperçu des URL ne seront plus chargées."
|
|
||||||
_code:
|
|
||||||
title: "Mise en évidence du code"
|
|
||||||
description: "Si la notation de mise en évidence du code est utilisée, par exemple dans la MFM, elle ne sera pas chargée tant qu'elle n'aura pas été tapée. La mise en évidence du code nécessite le chargement du fichier de définition de chaque langue à mettre en évidence, mais comme ces fichiers ne sont plus chargés automatiquement, on peut s'attendre à une réduction du trafic de données."
|
|
||||||
_reversi:
|
|
||||||
waitingBoth: "Préparez-vous"
|
|
||||||
total: "Total"
|
|
||||||
|
|
|
@ -6,225 +6,68 @@ import ts from 'typescript';
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
const parameterRegExp = /\{(\w+)\}/g;
|
|
||||||
|
|
||||||
function createMemberType(item) {
|
|
||||||
if (typeof item !== 'string') {
|
|
||||||
return ts.factory.createTypeLiteralNode(createMembers(item));
|
|
||||||
}
|
|
||||||
const parameters = Array.from(
|
|
||||||
item.matchAll(parameterRegExp),
|
|
||||||
([, parameter]) => parameter,
|
|
||||||
);
|
|
||||||
return parameters.length
|
|
||||||
? ts.factory.createTypeReferenceNode(
|
|
||||||
ts.factory.createIdentifier('ParameterizedString'),
|
|
||||||
[
|
|
||||||
ts.factory.createUnionTypeNode(
|
|
||||||
parameters.map((parameter) =>
|
|
||||||
ts.factory.createStringLiteral(parameter),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
: ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
|
|
||||||
}
|
|
||||||
|
|
||||||
function createMembers(record) {
|
function createMembers(record) {
|
||||||
return Object.entries(record).map(([k, v]) => {
|
return Object.entries(record)
|
||||||
const node = ts.factory.createPropertySignature(
|
.map(([k, v]) => ts.factory.createPropertySignature(
|
||||||
undefined,
|
undefined,
|
||||||
ts.factory.createStringLiteral(k),
|
ts.factory.createStringLiteral(k),
|
||||||
undefined,
|
undefined,
|
||||||
createMemberType(v),
|
typeof v === 'string'
|
||||||
);
|
? ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword)
|
||||||
if (typeof v === 'string') {
|
: ts.factory.createTypeLiteralNode(createMembers(v)),
|
||||||
ts.addSyntheticLeadingComment(
|
));
|
||||||
node,
|
|
||||||
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
||||||
`*
|
|
||||||
* ${v.replace(/\n/g, '\n * ')}
|
|
||||||
`,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function generateDTS() {
|
export default function generateDTS() {
|
||||||
const locale = yaml.load(fs.readFileSync(`${__dirname}/ja-JP.yml`, 'utf-8'));
|
const locale = yaml.load(fs.readFileSync(`${__dirname}/ja-JP.yml`, 'utf-8'));
|
||||||
const members = createMembers(locale);
|
const members = createMembers(locale);
|
||||||
const elements = [
|
const elements = [
|
||||||
ts.factory.createVariableStatement(
|
|
||||||
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
|
|
||||||
ts.factory.createVariableDeclarationList(
|
|
||||||
[
|
|
||||||
ts.factory.createVariableDeclaration(
|
|
||||||
ts.factory.createIdentifier('kParameters'),
|
|
||||||
undefined,
|
|
||||||
ts.factory.createTypeOperatorNode(
|
|
||||||
ts.SyntaxKind.UniqueKeyword,
|
|
||||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.SymbolKeyword),
|
|
||||||
),
|
|
||||||
undefined,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
ts.NodeFlags.Const,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
ts.factory.createInterfaceDeclaration(
|
|
||||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
|
||||||
ts.factory.createIdentifier('ParameterizedString'),
|
|
||||||
[
|
|
||||||
ts.factory.createTypeParameterDeclaration(
|
|
||||||
undefined,
|
|
||||||
ts.factory.createIdentifier('T'),
|
|
||||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
||||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
undefined,
|
|
||||||
[
|
|
||||||
ts.factory.createPropertySignature(
|
|
||||||
undefined,
|
|
||||||
ts.factory.createComputedPropertyName(
|
|
||||||
ts.factory.createIdentifier('kParameters'),
|
|
||||||
),
|
|
||||||
undefined,
|
|
||||||
ts.factory.createTypeReferenceNode(
|
|
||||||
ts.factory.createIdentifier('T'),
|
|
||||||
undefined,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
ts.factory.createInterfaceDeclaration(
|
|
||||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
|
||||||
ts.factory.createIdentifier('ILocale'),
|
|
||||||
undefined,
|
|
||||||
undefined,
|
|
||||||
[
|
|
||||||
ts.factory.createIndexSignature(
|
|
||||||
undefined,
|
|
||||||
[
|
|
||||||
ts.factory.createParameterDeclaration(
|
|
||||||
undefined,
|
|
||||||
undefined,
|
|
||||||
ts.factory.createIdentifier('_'),
|
|
||||||
undefined,
|
|
||||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
||||||
undefined,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
ts.factory.createUnionTypeNode([
|
|
||||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
||||||
ts.factory.createTypeReferenceNode(
|
|
||||||
ts.factory.createIdentifier('ParameterizedString'),
|
|
||||||
),
|
|
||||||
ts.factory.createTypeReferenceNode(
|
|
||||||
ts.factory.createIdentifier('ILocale'),
|
|
||||||
undefined,
|
|
||||||
),
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
ts.factory.createInterfaceDeclaration(
|
ts.factory.createInterfaceDeclaration(
|
||||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
||||||
ts.factory.createIdentifier('Locale'),
|
ts.factory.createIdentifier('Locale'),
|
||||||
undefined,
|
undefined,
|
||||||
[
|
|
||||||
ts.factory.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [
|
|
||||||
ts.factory.createExpressionWithTypeArguments(
|
|
||||||
ts.factory.createIdentifier('ILocale'),
|
|
||||||
undefined,
|
undefined,
|
||||||
),
|
|
||||||
]),
|
|
||||||
],
|
|
||||||
members,
|
members,
|
||||||
),
|
),
|
||||||
ts.factory.createVariableStatement(
|
ts.factory.createVariableStatement(
|
||||||
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
|
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
|
||||||
ts.factory.createVariableDeclarationList(
|
ts.factory.createVariableDeclarationList(
|
||||||
[
|
[ts.factory.createVariableDeclaration(
|
||||||
ts.factory.createVariableDeclaration(
|
|
||||||
ts.factory.createIdentifier('locales'),
|
ts.factory.createIdentifier('locales'),
|
||||||
undefined,
|
undefined,
|
||||||
ts.factory.createTypeLiteralNode([
|
ts.factory.createTypeLiteralNode([ts.factory.createIndexSignature(
|
||||||
ts.factory.createIndexSignature(
|
|
||||||
undefined,
|
undefined,
|
||||||
[
|
[ts.factory.createParameterDeclaration(
|
||||||
ts.factory.createParameterDeclaration(
|
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
ts.factory.createIdentifier('lang'),
|
ts.factory.createIdentifier('lang'),
|
||||||
undefined,
|
undefined,
|
||||||
ts.factory.createKeywordTypeNode(
|
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
||||||
ts.SyntaxKind.StringKeyword,
|
|
||||||
),
|
|
||||||
undefined,
|
undefined,
|
||||||
),
|
)],
|
||||||
],
|
|
||||||
ts.factory.createTypeReferenceNode(
|
ts.factory.createTypeReferenceNode(
|
||||||
ts.factory.createIdentifier('Locale'),
|
ts.factory.createIdentifier('Locale'),
|
||||||
undefined,
|
undefined,
|
||||||
),
|
),
|
||||||
),
|
)]),
|
||||||
]),
|
|
||||||
undefined,
|
undefined,
|
||||||
|
)],
|
||||||
|
ts.NodeFlags.Const | ts.NodeFlags.Ambient | ts.NodeFlags.ContextFlags,
|
||||||
),
|
),
|
||||||
],
|
|
||||||
ts.NodeFlags.Const,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
ts.factory.createFunctionDeclaration(
|
|
||||||
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
||||||
undefined,
|
|
||||||
ts.factory.createIdentifier('build'),
|
|
||||||
undefined,
|
|
||||||
[],
|
|
||||||
ts.factory.createTypeReferenceNode(
|
|
||||||
ts.factory.createIdentifier('Locale'),
|
|
||||||
undefined,
|
|
||||||
),
|
|
||||||
undefined,
|
|
||||||
),
|
),
|
||||||
ts.factory.createExportDefault(ts.factory.createIdentifier('locales')),
|
ts.factory.createExportDefault(ts.factory.createIdentifier('locales')),
|
||||||
];
|
];
|
||||||
ts.addSyntheticLeadingComment(
|
const printed = ts.createPrinter({
|
||||||
elements[0],
|
|
||||||
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
||||||
' eslint-disable ',
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
ts.addSyntheticLeadingComment(
|
|
||||||
elements[0],
|
|
||||||
ts.SyntaxKind.SingleLineCommentTrivia,
|
|
||||||
' This file is generated by locales/generateDTS.js',
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
ts.addSyntheticLeadingComment(
|
|
||||||
elements[0],
|
|
||||||
ts.SyntaxKind.SingleLineCommentTrivia,
|
|
||||||
' Do not edit this file directly.',
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
const printed = ts
|
|
||||||
.createPrinter({
|
|
||||||
newLine: ts.NewLineKind.LineFeed,
|
newLine: ts.NewLineKind.LineFeed,
|
||||||
})
|
}).printList(
|
||||||
.printList(
|
|
||||||
ts.ListFormat.MultiLine,
|
ts.ListFormat.MultiLine,
|
||||||
ts.factory.createNodeArray(elements),
|
ts.factory.createNodeArray(elements),
|
||||||
ts.createSourceFile(
|
ts.createSourceFile('index.d.ts', '', ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS),
|
||||||
'index.d.ts',
|
|
||||||
'',
|
|
||||||
ts.ScriptTarget.ESNext,
|
|
||||||
true,
|
|
||||||
ts.ScriptKind.TS,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
fs.writeFileSync(`${__dirname}/index.d.ts`, printed, 'utf-8');
|
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');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
_lang_: "Magyar"
|
_lang_: "Japán"
|
||||||
monthAndDay: "{month}.{day}."
|
monthAndDay: "{month}.{day}."
|
||||||
search: "Keresés"
|
search: "Keresés"
|
||||||
notifications: "Értesítések"
|
notifications: "Értesítések"
|
||||||
|
@ -96,7 +96,6 @@ _notification:
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
quote: "Idézet"
|
quote: "Idézet"
|
||||||
reaction: "Reakciók"
|
reaction: "Reakciók"
|
||||||
login: "Bejelentkezés"
|
|
||||||
_actions:
|
_actions:
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
_deck:
|
_deck:
|
||||||
|
|
|
@ -60,7 +60,6 @@ copyFileId: "Salin Berkas"
|
||||||
copyFolderId: "Salin Folder"
|
copyFolderId: "Salin Folder"
|
||||||
copyProfileUrl: "Salin Alamat Web Profil"
|
copyProfileUrl: "Salin Alamat Web Profil"
|
||||||
searchUser: "Cari pengguna"
|
searchUser: "Cari pengguna"
|
||||||
searchThisUsersNotes: "Mencari catatan pengguna"
|
|
||||||
reply: "Balas"
|
reply: "Balas"
|
||||||
loadMore: "Selebihnya"
|
loadMore: "Selebihnya"
|
||||||
showMore: "Selebihnya"
|
showMore: "Selebihnya"
|
||||||
|
@ -82,7 +81,7 @@ exportRequested: "Kamu telah meminta ekspor. Ini akan memakan waktu sesaat. Sete
|
||||||
importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat."
|
importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat."
|
||||||
lists: "Daftar"
|
lists: "Daftar"
|
||||||
noLists: "Kamu tidak memiliki daftar apapun"
|
noLists: "Kamu tidak memiliki daftar apapun"
|
||||||
note: "Catatan"
|
note: "Catat"
|
||||||
notes: "Catatan"
|
notes: "Catatan"
|
||||||
following: "Ikuti"
|
following: "Ikuti"
|
||||||
followers: "Pengikut"
|
followers: "Pengikut"
|
||||||
|
@ -109,14 +108,11 @@ enterEmoji: "Masukkan emoji"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
unrenote: "Hapus renote"
|
unrenote: "Hapus renote"
|
||||||
renoted: "Telah direnote"
|
renoted: "Telah direnote"
|
||||||
renotedToX: "{name} telah merenote"
|
|
||||||
cantRenote: "Postingan ini tidak dapat direnote"
|
cantRenote: "Postingan ini tidak dapat direnote"
|
||||||
cantReRenote: "Renote tidak dapat direnote"
|
cantReRenote: "Renote tidak dapat direnote"
|
||||||
quote: "Kutip"
|
quote: "Kutip"
|
||||||
inChannelRenote: "Hanya renote dalam kanal"
|
inChannelRenote: "Hanya renote dalam kanal"
|
||||||
inChannelQuote: "Hanya kutip dalam kanal"
|
inChannelQuote: "Hanya kutip dalam kanal"
|
||||||
renoteToChannel: "Renote ke kanal"
|
|
||||||
renoteToOtherChannel: "Renote ke kanal lainnya"
|
|
||||||
pinnedNote: "Catatan yang disematkan"
|
pinnedNote: "Catatan yang disematkan"
|
||||||
pinned: "Sematkan ke profil"
|
pinned: "Sematkan ke profil"
|
||||||
you: "Kamu"
|
you: "Kamu"
|
||||||
|
@ -125,16 +121,10 @@ sensitive: "Konten sensitif"
|
||||||
add: "Tambahkan"
|
add: "Tambahkan"
|
||||||
reaction: "Reaksi"
|
reaction: "Reaksi"
|
||||||
reactions: "Reaksi"
|
reactions: "Reaksi"
|
||||||
emojiPicker: "Emoji Picker"
|
reactionSetting: "Reaksi untuk dimunculkan di bilah reaksi"
|
||||||
pinnedEmojisForReactionSettingDescription: "Atur sematan emoji pada reaksi"
|
|
||||||
pinnedEmojisSettingDescription: "Atur sematan emoji pada masukan emoji"
|
|
||||||
emojiPickerDisplay: "Tampilan Emoji Picker"
|
|
||||||
overwriteFromPinnedEmojisForReaction: "Timpa dari pengaturan reaksi"
|
|
||||||
overwriteFromPinnedEmojis: "Timpa dari pengaturan umum"
|
|
||||||
reactionSettingDescription2: "Geser untuk memindah urutan emoji, klik untuk menghapus, tekan \"+\" untuk menambahkan"
|
reactionSettingDescription2: "Geser untuk memindah urutan emoji, klik untuk menghapus, tekan \"+\" untuk menambahkan"
|
||||||
rememberNoteVisibility: "Ingat pengaturan visibilitas catatan"
|
rememberNoteVisibility: "Ingat pengaturan visibilitas catatan"
|
||||||
attachCancel: "Hapus lampiran"
|
attachCancel: "Hapus lampiran"
|
||||||
deleteFile: "Berkas dihapus"
|
|
||||||
markAsSensitive: "Tandai sebagai konten sensitif"
|
markAsSensitive: "Tandai sebagai konten sensitif"
|
||||||
unmarkAsSensitive: "Hapus tanda konten sensitif"
|
unmarkAsSensitive: "Hapus tanda konten sensitif"
|
||||||
enterFileName: "Masukkan nama berkas"
|
enterFileName: "Masukkan nama berkas"
|
||||||
|
@ -155,7 +145,6 @@ editList: "Sunting daftar"
|
||||||
selectChannel: "Pilih kanal"
|
selectChannel: "Pilih kanal"
|
||||||
selectAntenna: "Pilih Antena"
|
selectAntenna: "Pilih Antena"
|
||||||
editAntenna: "Sunting antena"
|
editAntenna: "Sunting antena"
|
||||||
createAntenna: "Membuat antena."
|
|
||||||
selectWidget: "Pilih gawit"
|
selectWidget: "Pilih gawit"
|
||||||
editWidgets: "Sunting gawit"
|
editWidgets: "Sunting gawit"
|
||||||
editWidgetsExit: "Selesai"
|
editWidgetsExit: "Selesai"
|
||||||
|
@ -182,10 +171,6 @@ addAccount: "Tambahkan akun"
|
||||||
reloadAccountsList: "Muat ulang daftar akun"
|
reloadAccountsList: "Muat ulang daftar akun"
|
||||||
loginFailed: "Gagal untuk masuk"
|
loginFailed: "Gagal untuk masuk"
|
||||||
showOnRemote: "Lihat profil asli"
|
showOnRemote: "Lihat profil asli"
|
||||||
continueOnRemote: "Lihat di peladen asal"
|
|
||||||
chooseServerOnMisskeyHub: "Pilih peladen dari Misskey Hub"
|
|
||||||
specifyServerHost: "Tentukan domain peladen"
|
|
||||||
inputHostName: "Masukkan nama domain"
|
|
||||||
general: "Umum"
|
general: "Umum"
|
||||||
wallpaper: "Wallpaper"
|
wallpaper: "Wallpaper"
|
||||||
setWallpaper: "Atur wallpaper"
|
setWallpaper: "Atur wallpaper"
|
||||||
|
@ -196,7 +181,6 @@ followConfirm: "Apakah kamu yakin ingin mengikuti {name}?"
|
||||||
proxyAccount: "Akun proksi"
|
proxyAccount: "Akun proksi"
|
||||||
proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebagai pengikut instansi luar untuk pengguna dalam kondisi tertentu. Sebagai contoh, ketika pengguna menambahkan seorang pengguna instansi luar ke dalam daftar, aktivitas dari pengguna instansi luar tidak akan disampaikan ke instansi apabila tidak ada pengguna lokal yang mengikuti pengguna tersebut, dengan begitu akun proksilah yang akan mengikutinya."
|
proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebagai pengikut instansi luar untuk pengguna dalam kondisi tertentu. Sebagai contoh, ketika pengguna menambahkan seorang pengguna instansi luar ke dalam daftar, aktivitas dari pengguna instansi luar tidak akan disampaikan ke instansi apabila tidak ada pengguna lokal yang mengikuti pengguna tersebut, dengan begitu akun proksilah yang akan mengikutinya."
|
||||||
host: "Host"
|
host: "Host"
|
||||||
selectSelf: "Pilih diri sendiri"
|
|
||||||
selectUser: "Pilih pengguna"
|
selectUser: "Pilih pengguna"
|
||||||
recipient: "Penerima"
|
recipient: "Penerima"
|
||||||
annotation: "Keterangan konten"
|
annotation: "Keterangan konten"
|
||||||
|
@ -233,7 +217,6 @@ blockedInstances: "Instansi terblokir"
|
||||||
blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini."
|
blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini."
|
||||||
silencedInstances: "Instansi yang disenyapkan"
|
silencedInstances: "Instansi yang disenyapkan"
|
||||||
silencedInstancesDescription: "Daftar nama host dari instansi yang ingin kamu senyapkan. Semua akun dari instansi yang terdaftar akan diperlakukan sebagai disenyapkan. Hal ini membuat akun hanya dapat membuat permintaan mengikuti, dan tidak dapat menyebutkan akun lokal apabila tidak mengikuti. Hal ini tidak akan mempengaruhi instansi yang diblokir."
|
silencedInstancesDescription: "Daftar nama host dari instansi yang ingin kamu senyapkan. Semua akun dari instansi yang terdaftar akan diperlakukan sebagai disenyapkan. Hal ini membuat akun hanya dapat membuat permintaan mengikuti, dan tidak dapat menyebutkan akun lokal apabila tidak mengikuti. Hal ini tidak akan mempengaruhi instansi yang diblokir."
|
||||||
federationAllowedHosts: "Server yang membolehkan federasi"
|
|
||||||
muteAndBlock: "Bisukan / Blokir"
|
muteAndBlock: "Bisukan / Blokir"
|
||||||
mutedUsers: "Pengguna yang dibisukan"
|
mutedUsers: "Pengguna yang dibisukan"
|
||||||
blockedUsers: "Pengguna yang diblokir"
|
blockedUsers: "Pengguna yang diblokir"
|
||||||
|
@ -278,7 +261,6 @@ removed: "Telah dihapus"
|
||||||
removeAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
|
removeAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
|
||||||
deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
|
deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
|
||||||
resetAreYouSure: "Yakin mau atur ulang?"
|
resetAreYouSure: "Yakin mau atur ulang?"
|
||||||
areYouSure: "Apakah kamu yakin?"
|
|
||||||
saved: "Telah disimpan"
|
saved: "Telah disimpan"
|
||||||
messaging: "Pesan"
|
messaging: "Pesan"
|
||||||
upload: "Unggah"
|
upload: "Unggah"
|
||||||
|
@ -324,15 +306,12 @@ selectFile: "Pilih berkas"
|
||||||
selectFiles: "Pilih berkas"
|
selectFiles: "Pilih berkas"
|
||||||
selectFolder: "Pilih folder"
|
selectFolder: "Pilih folder"
|
||||||
selectFolders: "Pilih folder"
|
selectFolders: "Pilih folder"
|
||||||
fileNotSelected: "Tidak ada file yang dipilih"
|
|
||||||
renameFile: "Ubah nama berkas"
|
renameFile: "Ubah nama berkas"
|
||||||
folderName: "Nama folder"
|
folderName: "Nama folder"
|
||||||
createFolder: "Buat folder"
|
createFolder: "Buat folder"
|
||||||
renameFolder: "Ubah nama folder"
|
renameFolder: "Ubah nama folder"
|
||||||
deleteFolder: "Hapus folder"
|
deleteFolder: "Hapus folder"
|
||||||
folder: "Folder"
|
|
||||||
addFile: "Tambahkan berkas"
|
addFile: "Tambahkan berkas"
|
||||||
showFile: "Tampilkan berkas"
|
|
||||||
emptyDrive: "Drive kosong"
|
emptyDrive: "Drive kosong"
|
||||||
emptyFolder: "Folder kosong"
|
emptyFolder: "Folder kosong"
|
||||||
unableToDelete: "Tidak dapat menghapus"
|
unableToDelete: "Tidak dapat menghapus"
|
||||||
|
@ -393,11 +372,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Nyalakan hCaptcha"
|
enableHcaptcha: "Nyalakan hCaptcha"
|
||||||
hcaptchaSiteKey: "Site Key"
|
hcaptchaSiteKey: "Site Key"
|
||||||
hcaptchaSecretKey: "Secret Key"
|
hcaptchaSecretKey: "Secret Key"
|
||||||
mcaptcha: "mCaptcha"
|
|
||||||
enableMcaptcha: "Nyalakan mCaptcha"
|
|
||||||
mcaptchaSiteKey: "Site key"
|
|
||||||
mcaptchaSecretKey: "Secret Key"
|
|
||||||
mcaptchaInstanceUrl: "URL instansi mCaptcha"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Nyalakan reCAPTCHA"
|
enableRecaptcha: "Nyalakan reCAPTCHA"
|
||||||
recaptchaSiteKey: "Site key"
|
recaptchaSiteKey: "Site key"
|
||||||
|
@ -413,7 +387,6 @@ name: "Nama"
|
||||||
antennaSource: "Sumber Antenna"
|
antennaSource: "Sumber Antenna"
|
||||||
antennaKeywords: "Kata kunci yang diterima"
|
antennaKeywords: "Kata kunci yang diterima"
|
||||||
antennaExcludeKeywords: "Kata kunci yang dikecualikan"
|
antennaExcludeKeywords: "Kata kunci yang dikecualikan"
|
||||||
antennaExcludeBots: "Kecualikan akun bot"
|
|
||||||
antennaKeywordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR."
|
antennaKeywordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR."
|
||||||
notifyAntenna: "Beritahu untuk catatan baru"
|
notifyAntenna: "Beritahu untuk catatan baru"
|
||||||
withFileAntenna: "Hanya tampilkan catatan dengan berkas yang dilampirkan"
|
withFileAntenna: "Hanya tampilkan catatan dengan berkas yang dilampirkan"
|
||||||
|
@ -464,6 +437,7 @@ share: "Bagikan"
|
||||||
notFound: "Tidak dapat ditemukan"
|
notFound: "Tidak dapat ditemukan"
|
||||||
notFoundDescription: "Tidak ada halaman sesuai dengan URL yang ditentukan."
|
notFoundDescription: "Tidak ada halaman sesuai dengan URL yang ditentukan."
|
||||||
uploadFolder: "Lokasi unggah folder bawaan"
|
uploadFolder: "Lokasi unggah folder bawaan"
|
||||||
|
cacheClear: "Bersihkan tembolok"
|
||||||
markAsReadAllNotifications: "Tandai semua notifikasi telah dibaca"
|
markAsReadAllNotifications: "Tandai semua notifikasi telah dibaca"
|
||||||
markAsReadAllUnreadNotes: "Tandai semua catatan telah dibaca"
|
markAsReadAllUnreadNotes: "Tandai semua catatan telah dibaca"
|
||||||
markAsReadAllTalkMessages: "Tandai semua pesan telah dibaca"
|
markAsReadAllTalkMessages: "Tandai semua pesan telah dibaca"
|
||||||
|
@ -481,7 +455,6 @@ retype: "Masukkan ulang"
|
||||||
noteOf: "Catatan milik {user}"
|
noteOf: "Catatan milik {user}"
|
||||||
quoteAttached: "Dikutip"
|
quoteAttached: "Dikutip"
|
||||||
quoteQuestion: "Apakah kamu ingin menambahkan kutipan?"
|
quoteQuestion: "Apakah kamu ingin menambahkan kutipan?"
|
||||||
attachAsFileQuestion: "Teks dalam papan klip terlalu panjang. Apakah kamu ingin melampirkannya sebagai berkas teks?"
|
|
||||||
noMessagesYet: "Tidak ada pesan"
|
noMessagesYet: "Tidak ada pesan"
|
||||||
newMessageExists: "Kamu mendapatkan pesan baru"
|
newMessageExists: "Kamu mendapatkan pesan baru"
|
||||||
onlyOneFileCanBeAttached: "Kamu hanya dapat melampirkan satu berkas ke dalam pesan"
|
onlyOneFileCanBeAttached: "Kamu hanya dapat melampirkan satu berkas ke dalam pesan"
|
||||||
|
@ -507,10 +480,8 @@ uiLanguage: "Bahasa antarmuka pengguna"
|
||||||
aboutX: "Tentang {x}"
|
aboutX: "Tentang {x}"
|
||||||
emojiStyle: "Gaya emoji"
|
emojiStyle: "Gaya emoji"
|
||||||
native: "Native"
|
native: "Native"
|
||||||
menuStyle: "Gaya menu"
|
disableDrawer: "Jangan gunakan menu bergaya laci"
|
||||||
style: "Gaya"
|
|
||||||
showNoteActionsOnlyHover: "Hanya tampilkan aksi catatan saat ditunjuk"
|
showNoteActionsOnlyHover: "Hanya tampilkan aksi catatan saat ditunjuk"
|
||||||
showReactionsCount: "Lihat jumlah reaksi dalam catatan"
|
|
||||||
noHistory: "Tidak ada riwayat"
|
noHistory: "Tidak ada riwayat"
|
||||||
signinHistory: "Riwayat masuk"
|
signinHistory: "Riwayat masuk"
|
||||||
enableAdvancedMfm: "Nyalakan MFM tingkat lanjut"
|
enableAdvancedMfm: "Nyalakan MFM tingkat lanjut"
|
||||||
|
@ -573,8 +544,6 @@ showInPage: "Tampilkan di halaman"
|
||||||
popout: "Pop-out"
|
popout: "Pop-out"
|
||||||
volume: "Volume"
|
volume: "Volume"
|
||||||
masterVolume: "Master volume"
|
masterVolume: "Master volume"
|
||||||
notUseSound: "Tidak ada keluaran suara"
|
|
||||||
useSoundOnlyWhenActive: "Hanya keluarkan suara jika Misskey sedang aktif"
|
|
||||||
details: "Selengkapnya"
|
details: "Selengkapnya"
|
||||||
chooseEmoji: "Pilih emoji"
|
chooseEmoji: "Pilih emoji"
|
||||||
unableToProcess: "Operasi tersebut tidak dapat diselesaikan."
|
unableToProcess: "Operasi tersebut tidak dapat diselesaikan."
|
||||||
|
@ -595,10 +564,6 @@ output: "Keluaran"
|
||||||
script: "Script"
|
script: "Script"
|
||||||
disablePagesScript: "Nonaktifkan script pada halaman"
|
disablePagesScript: "Nonaktifkan script pada halaman"
|
||||||
updateRemoteUser: "Perbaharui informasi pengguna instansi luar"
|
updateRemoteUser: "Perbaharui informasi pengguna instansi luar"
|
||||||
unsetUserAvatar: "Hapus avatar"
|
|
||||||
unsetUserAvatarConfirm: "Apakah kamu yakin ingin menghapus avatar?"
|
|
||||||
unsetUserBanner: "Hapus banner"
|
|
||||||
unsetUserBannerConfirm: "Apakah kamu yakin ingin menghapus banner?"
|
|
||||||
deleteAllFiles: "Hapus semua berkas"
|
deleteAllFiles: "Hapus semua berkas"
|
||||||
deleteAllFilesConfirm: "Apakah kamu yakin ingin menghapus semua berkas?"
|
deleteAllFilesConfirm: "Apakah kamu yakin ingin menghapus semua berkas?"
|
||||||
removeAllFollowing: "Batalkan mengikuti semua pengguna"
|
removeAllFollowing: "Batalkan mengikuti semua pengguna"
|
||||||
|
@ -649,7 +614,6 @@ medium: "Sedang"
|
||||||
small: "Kecil"
|
small: "Kecil"
|
||||||
generateAccessToken: "Buat token akses"
|
generateAccessToken: "Buat token akses"
|
||||||
permission: "Izin"
|
permission: "Izin"
|
||||||
adminPermission: "Wewenang Izin Admin"
|
|
||||||
enableAll: "Aktifkan semua"
|
enableAll: "Aktifkan semua"
|
||||||
disableAll: "Nonaktifkan semua"
|
disableAll: "Nonaktifkan semua"
|
||||||
tokenRequested: "Berikan ijin akses ke akun"
|
tokenRequested: "Berikan ijin akses ke akun"
|
||||||
|
@ -671,7 +635,6 @@ smtpSecure: "Gunakan SSL/TLS implisit untuk koneksi SMTP"
|
||||||
smtpSecureInfo: "Matikan ini ketika menggunakan STARTTLS"
|
smtpSecureInfo: "Matikan ini ketika menggunakan STARTTLS"
|
||||||
testEmail: "Tes pengiriman surel"
|
testEmail: "Tes pengiriman surel"
|
||||||
wordMute: "Bisukan kata"
|
wordMute: "Bisukan kata"
|
||||||
hardWordMute: "Pembisuan kata keras"
|
|
||||||
regexpError: "Kesalahan ekspresi reguler"
|
regexpError: "Kesalahan ekspresi reguler"
|
||||||
regexpErrorDescription: "Galat terjadi pada baris {line} ekspresi reguler dari {tab} kata yang dibisukan:"
|
regexpErrorDescription: "Galat terjadi pada baris {line} ekspresi reguler dari {tab} kata yang dibisukan:"
|
||||||
instanceMute: "Bisukan instansi"
|
instanceMute: "Bisukan instansi"
|
||||||
|
@ -693,7 +656,6 @@ useGlobalSettingDesc: "Jika dinyalakan, setelan notifikasi akun kamu akan diguna
|
||||||
other: "Lainnya"
|
other: "Lainnya"
|
||||||
regenerateLoginToken: "Perbarui token login"
|
regenerateLoginToken: "Perbarui token login"
|
||||||
regenerateLoginTokenDescription: "Perbarui token yang digunakan secara internal saat login. Normalnya aksi ini tidak diperlukan. Jika diperbarui, semua perangkat akan dilogout."
|
regenerateLoginTokenDescription: "Perbarui token yang digunakan secara internal saat login. Normalnya aksi ini tidak diperlukan. Jika diperbarui, semua perangkat akan dilogout."
|
||||||
theKeywordWhenSearchingForCustomEmoji: "Kata kunci ini digunakan untuk mencari emoji kustom yang dicari."
|
|
||||||
setMultipleBySeparatingWithSpace: "Kamu dapat menyetel banyak dengan memisahkannya menggunakan spasi."
|
setMultipleBySeparatingWithSpace: "Kamu dapat menyetel banyak dengan memisahkannya menggunakan spasi."
|
||||||
fileIdOrUrl: "File-ID atau URL"
|
fileIdOrUrl: "File-ID atau URL"
|
||||||
behavior: "Perilaku"
|
behavior: "Perilaku"
|
||||||
|
@ -707,7 +669,10 @@ abuseReported: "Laporan kamu telah dikirimkan. Terima kasih."
|
||||||
reporter: "Pelapor"
|
reporter: "Pelapor"
|
||||||
reporteeOrigin: "Yang dilaporkan"
|
reporteeOrigin: "Yang dilaporkan"
|
||||||
reporterOrigin: "Pelapor"
|
reporterOrigin: "Pelapor"
|
||||||
|
forwardReport: "Teruskan laporan ke instansi luar"
|
||||||
|
forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari sistem akan digunakan sebagai pelapor pada instansi luar."
|
||||||
send: "Kirim"
|
send: "Kirim"
|
||||||
|
abuseMarkAsResolved: "Tandai laporan sebagai selesai"
|
||||||
openInNewTab: "Buka di tab baru"
|
openInNewTab: "Buka di tab baru"
|
||||||
openInSideView: "Buka di tampilan samping"
|
openInSideView: "Buka di tampilan samping"
|
||||||
defaultNavigationBehaviour: "Navigasi bawaan"
|
defaultNavigationBehaviour: "Navigasi bawaan"
|
||||||
|
@ -903,8 +868,8 @@ makeReactionsPublicDescription: "Pengaturan ini akan membuat daftar dari semua r
|
||||||
classic: "Klasik"
|
classic: "Klasik"
|
||||||
muteThread: "Bisukan thread"
|
muteThread: "Bisukan thread"
|
||||||
unmuteThread: "Suarakan thread"
|
unmuteThread: "Suarakan thread"
|
||||||
followingVisibility: "Visibilitas mengikuti"
|
ffVisibility: "Visibilitas Mengikuti/Pengikut"
|
||||||
followersVisibility: "Visibilitas pengikut"
|
ffVisibilityDescription: "Mengatur siapa yang dapat melihat pengikutmu dan yang kamu ikuti."
|
||||||
continueThread: "Lihat lanjutan thread"
|
continueThread: "Lihat lanjutan thread"
|
||||||
deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?"
|
deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?"
|
||||||
incorrectPassword: "Kata sandi salah."
|
incorrectPassword: "Kata sandi salah."
|
||||||
|
@ -932,9 +897,6 @@ oneHour: "1 Jam"
|
||||||
oneDay: "1 Hari"
|
oneDay: "1 Hari"
|
||||||
oneWeek: "1 Bulan"
|
oneWeek: "1 Bulan"
|
||||||
oneMonth: "satu bulan"
|
oneMonth: "satu bulan"
|
||||||
threeMonths: "3 bulan"
|
|
||||||
oneYear: "1 tahun"
|
|
||||||
threeDays: "3 hari"
|
|
||||||
reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan."
|
reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan."
|
||||||
failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun"
|
failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun"
|
||||||
rateLimitExceeded: "Batas sudah terlampaui"
|
rateLimitExceeded: "Batas sudah terlampaui"
|
||||||
|
@ -1008,7 +970,6 @@ neverShow: "Jangan tampilkan lagi"
|
||||||
remindMeLater: "Mungkin nanti"
|
remindMeLater: "Mungkin nanti"
|
||||||
didYouLikeMisskey: "Apakah kamu mulai menyukai Misskey?"
|
didYouLikeMisskey: "Apakah kamu mulai menyukai Misskey?"
|
||||||
pleaseDonate: "{host} menggunakan perangkat lunak bebas yaitu Misskey. Kami sangat mengapresiasi sekali donasi dari kamu agar pengembangan Misskey tetap dapat berlanjut!"
|
pleaseDonate: "{host} menggunakan perangkat lunak bebas yaitu Misskey. Kami sangat mengapresiasi sekali donasi dari kamu agar pengembangan Misskey tetap dapat berlanjut!"
|
||||||
correspondingSourceIsAvailable: "Sumber kode terkait tersedia di {anchor}"
|
|
||||||
roles: "Peran"
|
roles: "Peran"
|
||||||
role: "Peran"
|
role: "Peran"
|
||||||
noRole: "Peran tidak temukan"
|
noRole: "Peran tidak temukan"
|
||||||
|
@ -1018,7 +979,6 @@ assign: "Tetapkan\n"
|
||||||
unassign: "Batalkan penetapan"
|
unassign: "Batalkan penetapan"
|
||||||
color: "Warna"
|
color: "Warna"
|
||||||
manageCustomEmojis: "Kelola Emoji Kustom"
|
manageCustomEmojis: "Kelola Emoji Kustom"
|
||||||
manageAvatarDecorations: "Kelola dekorasi avatar"
|
|
||||||
youCannotCreateAnymore: "Kamu melewati batas pembuatan."
|
youCannotCreateAnymore: "Kamu melewati batas pembuatan."
|
||||||
cannotPerformTemporary: "Sementara Tidak Tersedia"
|
cannotPerformTemporary: "Sementara Tidak Tersedia"
|
||||||
cannotPerformTemporaryDescription: "Aksi ini tidak dapat dilakukan sementara karena melewati batas eksekusi. Mohon tunggu sejenak dan coba lagi."
|
cannotPerformTemporaryDescription: "Aksi ini tidak dapat dilakukan sementara karena melewati batas eksekusi. Mohon tunggu sejenak dan coba lagi."
|
||||||
|
@ -1059,11 +1019,6 @@ resetPasswordConfirm: "Yakin untuk mereset kata sandimu?"
|
||||||
sensitiveWords: "Kata sensitif"
|
sensitiveWords: "Kata sensitif"
|
||||||
sensitiveWordsDescription: "Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
|
sensitiveWordsDescription: "Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
|
||||||
sensitiveWordsDescription2: "Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
|
sensitiveWordsDescription2: "Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
|
||||||
prohibitedWords: "Kata yang dilarang"
|
|
||||||
prohibitedWordsDescription: "Menyalakan kesalahan ketika mencoba untuk memposting catatan dengan set kata-kata yang termasuk. Beberapa kata dapat diatur dan dipisahkan dengan baris baru."
|
|
||||||
prohibitedWordsDescription2: "Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
|
|
||||||
hiddenTags: "Tagar tersembunyi"
|
|
||||||
hiddenTagsDescription: "Pilih tanda yang mana akan tidak diperlihatkan dalam daftar tren.\nTanda lebih dari satu dapat didaftarkan dengan tiap baris."
|
|
||||||
notesSearchNotAvailable: "Pencarian catatan tidak tersedia."
|
notesSearchNotAvailable: "Pencarian catatan tidak tersedia."
|
||||||
license: "Lisensi"
|
license: "Lisensi"
|
||||||
unfavoriteConfirm: "Yakin ingin menghapusnya dari favorit?"
|
unfavoriteConfirm: "Yakin ingin menghapusnya dari favorit?"
|
||||||
|
@ -1076,12 +1031,9 @@ enableChartsForRemoteUser: "Buat bagan data pengguna instansi luar"
|
||||||
enableChartsForFederatedInstances: "Buat bagan data peladen instansi luar"
|
enableChartsForFederatedInstances: "Buat bagan data peladen instansi luar"
|
||||||
showClipButtonInNoteFooter: "Tambahkan \"Klip\" ke menu aksi catatan"
|
showClipButtonInNoteFooter: "Tambahkan \"Klip\" ke menu aksi catatan"
|
||||||
reactionsDisplaySize: "Ukuran tampilan reaksi"
|
reactionsDisplaySize: "Ukuran tampilan reaksi"
|
||||||
limitWidthOfReaction: "Batasi lebar maksimum reaksi dan tampilkan dalam ukuran terbatasi."
|
|
||||||
noteIdOrUrl: "ID catatan atau URL"
|
noteIdOrUrl: "ID catatan atau URL"
|
||||||
video: "Video"
|
video: "Video"
|
||||||
videos: "Video"
|
videos: "Video"
|
||||||
audio: "Suara"
|
|
||||||
audioFiles: "Berkas Suara"
|
|
||||||
dataSaver: "Penghemat data"
|
dataSaver: "Penghemat data"
|
||||||
accountMigration: "Pemindahan akun"
|
accountMigration: "Pemindahan akun"
|
||||||
accountMoved: "Pengguna ini telah berpindah ke akun baru:"
|
accountMoved: "Pengguna ini telah berpindah ke akun baru:"
|
||||||
|
@ -1109,7 +1061,6 @@ preservedUsernames: "Nama pengguna tercadangkan"
|
||||||
preservedUsernamesDescription: "Daftar nama pengguna yang dicadangkan dipisah dengan baris baru. Nama pengguna berikut akan tidak dapat dipakai pada pembuatan akun normal, namun dapat digunakan oleh admin untuk membuat akun baru. Akun yang sudah ada dengan menggunakan nama pengguna ini tidak akan terpengaruh."
|
preservedUsernamesDescription: "Daftar nama pengguna yang dicadangkan dipisah dengan baris baru. Nama pengguna berikut akan tidak dapat dipakai pada pembuatan akun normal, namun dapat digunakan oleh admin untuk membuat akun baru. Akun yang sudah ada dengan menggunakan nama pengguna ini tidak akan terpengaruh."
|
||||||
createNoteFromTheFile: "Buat catatan dari berkas ini"
|
createNoteFromTheFile: "Buat catatan dari berkas ini"
|
||||||
archive: "Arsipkan"
|
archive: "Arsipkan"
|
||||||
archived: "Diarsipkan"
|
|
||||||
channelArchiveConfirmTitle: "Yakin untuk mengarsipkan {name}?"
|
channelArchiveConfirmTitle: "Yakin untuk mengarsipkan {name}?"
|
||||||
channelArchiveConfirmDescription: "Kanal yang diarsipkan tidak akan muncul pada daftar kanal atau hasil pencarian. Postingan baru juga tidak dapat ditambahkan lagi."
|
channelArchiveConfirmDescription: "Kanal yang diarsipkan tidak akan muncul pada daftar kanal atau hasil pencarian. Postingan baru juga tidak dapat ditambahkan lagi."
|
||||||
thisChannelArchived: "Kanal ini telah diarsipkan."
|
thisChannelArchived: "Kanal ini telah diarsipkan."
|
||||||
|
@ -1120,7 +1071,6 @@ preventAiLearning: "Tolak penggunaan Pembelajaran Mesin (AI Generatif)"
|
||||||
preventAiLearningDescription: "Minta perayap web untuk tidak menggunakan materi teks atau gambar yang telah diposting ke dalam set data Pembelajaran Mesin (Prediktif / Generatif). Hal ini dicapai dengan menambahkan flag HTML-Response \"noai\" ke masing-masing konten. Pencegahan penuh mungkin tidak dapat dicapai dengan flag ini, karena juga dapat diabaikan begitu saja."
|
preventAiLearningDescription: "Minta perayap web untuk tidak menggunakan materi teks atau gambar yang telah diposting ke dalam set data Pembelajaran Mesin (Prediktif / Generatif). Hal ini dicapai dengan menambahkan flag HTML-Response \"noai\" ke masing-masing konten. Pencegahan penuh mungkin tidak dapat dicapai dengan flag ini, karena juga dapat diabaikan begitu saja."
|
||||||
options: "Opsi peran"
|
options: "Opsi peran"
|
||||||
specifyUser: "Pengguna spesifik"
|
specifyUser: "Pengguna spesifik"
|
||||||
openTagPageConfirm: "Apakah ingin membuka laman tagar?"
|
|
||||||
failedToPreviewUrl: "Tidak dapat dipratinjau"
|
failedToPreviewUrl: "Tidak dapat dipratinjau"
|
||||||
update: "Perbarui"
|
update: "Perbarui"
|
||||||
rolesThatCanBeUsedThisEmojiAsReaction: "Peran yang dapat menggunakan emoji ini sebagai reaksi"
|
rolesThatCanBeUsedThisEmojiAsReaction: "Peran yang dapat menggunakan emoji ini sebagai reaksi"
|
||||||
|
@ -1179,116 +1129,17 @@ showRenotes: "Tampilkan renote"
|
||||||
edited: "Telah disunting"
|
edited: "Telah disunting"
|
||||||
notificationRecieveConfig: "Pengaturan notifikasi"
|
notificationRecieveConfig: "Pengaturan notifikasi"
|
||||||
mutualFollow: "Saling mengikuti"
|
mutualFollow: "Saling mengikuti"
|
||||||
followingOrFollower: "Mengikuti atau pengikut"
|
|
||||||
fileAttachedOnly: "Hanya catatan dengan berkas"
|
fileAttachedOnly: "Hanya catatan dengan berkas"
|
||||||
showRepliesToOthersInTimeline: "Tampilkan balasan ke pengguna lain dalam lini masa"
|
showRepliesToOthersInTimeline: "Tampilkan balasan ke pengguna lain dalam lini masa"
|
||||||
hideRepliesToOthersInTimeline: "Sembunyikan balasan ke orang lain dari lini masa"
|
hideRepliesToOthersInTimeline: "Sembunyikan balasan ke orang lain dari lini masa"
|
||||||
showRepliesToOthersInTimelineAll: "Tampilkan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa"
|
|
||||||
hideRepliesToOthersInTimelineAll: "Sembuyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa"
|
|
||||||
confirmShowRepliesAll: "Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menampilkan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
|
|
||||||
confirmHideRepliesAll: "Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menyembunyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
|
|
||||||
externalServices: "Layanan eksternal"
|
externalServices: "Layanan eksternal"
|
||||||
sourceCode: "Sumber kode"
|
|
||||||
sourceCodeIsNotYetProvided: "Sumber kode belum tersedia. Hubungi admin untuk memperbaiki masalah ini."
|
|
||||||
repositoryUrl: "URL Repositori"
|
|
||||||
repositoryUrlDescription: "Jika kamu menggunakan Misskey begitu saja (tanpa ada perubahan dalam kode sumber), masukkan https://github.com/misskey-dev/misskey"
|
|
||||||
repositoryUrlOrTarballRequired: "Apabila kamu masih mempublikasikan repositori, kamu setidaknya harus menyediakan berkas tarball. Lihat .config/example.yml untuk informasi lebih lanjut."
|
|
||||||
feedback: "Umpan balik"
|
|
||||||
feedbackUrl: "URL Umpan balik"
|
|
||||||
impressum: "Impressum"
|
impressum: "Impressum"
|
||||||
impressumUrl: "Tautan Impressum"
|
impressumUrl: "Tautan Impressum"
|
||||||
impressumDescription: "Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
|
impressumDescription: "Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
|
||||||
privacyPolicy: "Kebijakan Privasi"
|
privacyPolicy: "Kebijakan Privasi"
|
||||||
privacyPolicyUrl: "Tautan Kebijakan Privasi"
|
privacyPolicyUrl: "Tautan Kebijakan Privasi"
|
||||||
tosAndPrivacyPolicy: "Syarat dan Ketentuan serta Kebijakan Privasi"
|
tosAndPrivacyPolicy: "Syarat dan Ketentuan serta Kebijakan Privasi"
|
||||||
avatarDecorations: "Dekorasi avatar"
|
|
||||||
attach: "Lampirkan"
|
|
||||||
detach: "Hapus"
|
|
||||||
detachAll: "Lepas Semua"
|
|
||||||
angle: "Sudut"
|
|
||||||
flip: "Balik"
|
flip: "Balik"
|
||||||
showAvatarDecorations: "Tampilkan dekorasi avatar"
|
|
||||||
releaseToRefresh: "Lepaskan untuk memuat ulang"
|
|
||||||
refreshing: "Sedang memuat ulang..."
|
|
||||||
pullDownToRefresh: "Tarik ke bawah untuk memuat ulang"
|
|
||||||
disableStreamingTimeline: "Nonaktifkan pembaharuan lini masa real-time"
|
|
||||||
useGroupedNotifications: "Tampilkan notifikasi secara dikelompokkan"
|
|
||||||
signupPendingError: "Terdapat masalah ketika memverifikasi alamat surel. Tautan kemungkinan telah kedaluwarsa."
|
|
||||||
cwNotationRequired: "Jika \"Sembunyikan konten\" diaktifkan, deskripsi harus disediakan."
|
|
||||||
doReaction: "Tambahkan reaksi"
|
|
||||||
code: "Kode"
|
|
||||||
reloadRequiredToApplySettings: "Muat ulang diperlukan untuk menerapkan pengaturan."
|
|
||||||
remainingN: "Sisa : {n}"
|
|
||||||
overwriteContentConfirm: "Apakah kamu yakin untuk menimpa konten saat ini?"
|
|
||||||
seasonalScreenEffect: "Efek layar musiman"
|
|
||||||
decorate: "Dekor"
|
|
||||||
addMfmFunction: "Tambahkan dekorasi"
|
|
||||||
enableQuickAddMfmFunction: "Tampilkan pemilih MFM tingkat lanjut"
|
|
||||||
bubbleGame: "Bubble Game"
|
|
||||||
sfx: "Efek Suara"
|
|
||||||
soundWillBePlayed: "Suara yang akan dimainkan"
|
|
||||||
showReplay: "Lihat tayangan ulang"
|
|
||||||
replay: "Tayangan ulang"
|
|
||||||
replaying: "Menayangkan Ulang"
|
|
||||||
endReplay: "Keluat dari tayangan ulang"
|
|
||||||
copyReplayData: "Salin data tayangan ulang"
|
|
||||||
ranking: "Peringkat"
|
|
||||||
lastNDays: "{n} hari terakhir"
|
|
||||||
backToTitle: "Ke Judul"
|
|
||||||
hemisphere: "Letak kamu tinggal"
|
|
||||||
withSensitive: "Lampirkan catatan dengan berkas sensitif"
|
|
||||||
userSaysSomethingSensitive: "Postingan oleh {name} mengandung konten sensitif"
|
|
||||||
enableHorizontalSwipe: "Geser untuk mengganti tab"
|
|
||||||
loading: "Memuat..."
|
|
||||||
surrender: "Batalkan"
|
|
||||||
gameRetry: "Coba lagi"
|
|
||||||
notUsePleaseLeaveBlank: "Kosongi bila tidak digunakan"
|
|
||||||
useTotp: "Gunakan TOTP"
|
|
||||||
useBackupCode: "Gunakan kode cadangan"
|
|
||||||
launchApp: "Luncurkan Aplikasi"
|
|
||||||
useNativeUIForVideoAudioPlayer: "Gunakan antarmuka peramban ketika memainkan video dan audio"
|
|
||||||
keepOriginalFilename: "Simpan nama berkas asli"
|
|
||||||
keepOriginalFilenameDescription: "Apabila pengaturan ini dimatikan, nama berkas akan diganti dengan string acak secara otomatis ketika kamu mengunggah berkas."
|
|
||||||
noDescription: "Tidak ada deskripsi"
|
|
||||||
alwaysConfirmFollow: "Selalu konfirmasi ketika mengikuti"
|
|
||||||
inquiry: "Hubungi kami"
|
|
||||||
tryAgain: "Silahkan coba lagi."
|
|
||||||
createdLists: "Senarai yang dibuat"
|
|
||||||
createdAntennas: "Antena yang dibuat"
|
|
||||||
fromX: "Dari {x}"
|
|
||||||
noteOfThisUser: "Catatan oleh pengguna ini"
|
|
||||||
clipNoteLimitExceeded: "Klip ini tak bisa ditambahi lagi catatan."
|
|
||||||
performance: "Kinerja"
|
|
||||||
modified: "Diubah"
|
|
||||||
thereAreNChanges: "Ada {n} perubahan"
|
|
||||||
prohibitedWordsForNameOfUser: "Kata yang dilarang untuk nama pengguna"
|
|
||||||
_abuseUserReport:
|
|
||||||
accept: "Setuju"
|
|
||||||
reject: "Tolak"
|
|
||||||
_delivery:
|
|
||||||
status: "Status pengiriman"
|
|
||||||
stop: "Ditangguhkan"
|
|
||||||
resume: "Lanjutkan pengiriman"
|
|
||||||
_type:
|
|
||||||
none: "Sedang menyiarkan langsung"
|
|
||||||
manuallySuspended: "Ditangguhkan manual"
|
|
||||||
goneSuspended: "Sedang ditangguhkan untuk penghapusan peladen"
|
|
||||||
autoSuspendedForNotResponding: "Sedang ditangguhkan karena peladen tidak menjawab"
|
|
||||||
_bubbleGame:
|
|
||||||
howToPlay: "Cara bermain"
|
|
||||||
hold: "Tahan"
|
|
||||||
_score:
|
|
||||||
score: "Skor"
|
|
||||||
scoreYen: "Jumlah uang didapat"
|
|
||||||
highScore: "Skor tertinggi"
|
|
||||||
maxChain: "Jumlah skor berantai"
|
|
||||||
yen: "{yen} Yen"
|
|
||||||
estimatedQty: "{qty} buah"
|
|
||||||
scoreSweets: "{onigiriQtyWithUnit} onigiri"
|
|
||||||
_howToPlay:
|
|
||||||
section1: "Atur posisi dan jatuhkan obyek ke dalam kotak."
|
|
||||||
section2: "Ketika dua obyek menyentuh tipe yang sama satu sama lain, obyek tersebut akan berganti dan kamu mendapatkan poin skor."
|
|
||||||
section3: "Permainan berakhir jika obyek memenuhi kotak. Capai skor tertinggi dengan menggabungkan obyek bersama sambil menghindari obyek tersebut memenuhi kotak permainan!"
|
|
||||||
_announcement:
|
_announcement:
|
||||||
forExistingUsers: "Hanya pengguna yang telah ada"
|
forExistingUsers: "Hanya pengguna yang telah ada"
|
||||||
forExistingUsersDescription: "Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
|
forExistingUsersDescription: "Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
|
||||||
|
@ -1298,10 +1149,6 @@ _announcement:
|
||||||
tooManyActiveAnnouncementDescription: "Terlalu banyak pengumuman dapat memperburuk pengalaman pengguna. Mohon pertimbangkan untuk mengarsipkan pengumuman yang sudah usang/tidak relevan."
|
tooManyActiveAnnouncementDescription: "Terlalu banyak pengumuman dapat memperburuk pengalaman pengguna. Mohon pertimbangkan untuk mengarsipkan pengumuman yang sudah usang/tidak relevan."
|
||||||
readConfirmTitle: "Tandai telah dibaca?"
|
readConfirmTitle: "Tandai telah dibaca?"
|
||||||
readConfirmText: "Aksi ini akan menandai konten dari \"{title}\" telah dibaca."
|
readConfirmText: "Aksi ini akan menandai konten dari \"{title}\" telah dibaca."
|
||||||
shouldNotBeUsedToPresentPermanentInfo: "Karena dapat berdampak pada pengalaman pengguna untuk pengguna baru, sangat direkomendasikan untuk menggunakan notifikasi secara mengalir daripada tetap."
|
|
||||||
dialogAnnouncementUxWarn: "Memiliki dua atau lebih gaya dialog notifikasi secara bersamaan dapat berdampak signifikan pada pengalaman pengguna, mohon untuk menggunakannya dengan hati-hati."
|
|
||||||
silence: "Tiada notifikasi"
|
|
||||||
silenceDescription: "Apabila diaktifkan, notifikasi dari pengumuman ini akan dilewatkan dan pengguna tidak perlu membacanya."
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "Akun kamu telah sukses dibuat!"
|
accountCreated: "Akun kamu telah sukses dibuat!"
|
||||||
letsStartAccountSetup: "Untuk pemula, ayo atur profilmu dulu."
|
letsStartAccountSetup: "Untuk pemula, ayo atur profilmu dulu."
|
||||||
|
@ -1314,77 +1161,9 @@ _initialAccountSetting:
|
||||||
pushNotificationDescription: "Menyalakan notifikasi dorong akan membuatmu menerima notifikasi dari {name} secara langsung ke perangkatmu."
|
pushNotificationDescription: "Menyalakan notifikasi dorong akan membuatmu menerima notifikasi dari {name} secara langsung ke perangkatmu."
|
||||||
initialAccountSettingCompleted: "Pengaturan profil selesai!"
|
initialAccountSettingCompleted: "Pengaturan profil selesai!"
|
||||||
haveFun: "Selamat menikmati, {name}!"
|
haveFun: "Selamat menikmati, {name}!"
|
||||||
youCanContinueTutorial: "Kamu dapat menjutkan ke tutorial dalam bagaimana menggunakan {name} (Misskey) atau kamu dapat keluar dari pemasangan ini dan langsung menggunakannya segera."
|
ifYouNeedLearnMore: "Kalau kamu ingin mempelajari lebih lanjut bagaimana cara menggunakan {name} (Misskey), silahkan kunjungi {link}."
|
||||||
startTutorial: "Mulai Tutorial"
|
|
||||||
skipAreYouSure: "Yakin melewati atur profil?"
|
skipAreYouSure: "Yakin melewati atur profil?"
|
||||||
laterAreYouSure: "Yakin banget untuk atur profil nanti?"
|
laterAreYouSure: "Yakin banget untuk atur profil nanti?"
|
||||||
_initialTutorial:
|
|
||||||
launchTutorial: "Lihat Tutorial"
|
|
||||||
title: "Tutorial"
|
|
||||||
wellDone: "Kerja bagus!"
|
|
||||||
skipAreYouSure: "Berhenti dari Tutorial?"
|
|
||||||
_landing:
|
|
||||||
title: "Selamat datang di Tutorial"
|
|
||||||
description: "Di sini kamu dapat mempelajari dasar-dasar dari penggunaan Misskey dan fitur-fiturnya."
|
|
||||||
_note:
|
|
||||||
title: "Apa itu Catatan?"
|
|
||||||
description: "Postingan di Misskey disebut sebagai 'Catatan'. Catatan ditampilkan secara kronologis pada lini masa dan dimutakhirkan secara real-time."
|
|
||||||
reply: "Klik pada tombol ini untuk membalas ke sebuah pesan. Bisa juga untuk membalas ke sebuah balasan dan melanjutkannya seperti percakapan selayaknya utas."
|
|
||||||
renote: "Kamu dapat membagikan catatan ke lini masa milikmu. Kamu juga dapat mengutipnya dengan komentarmu."
|
|
||||||
reaction: "Kamu dapat menambahkan reaksi ke Catatan. Detil lebih lanjut akan dijelaskan di halaman berikutnya."
|
|
||||||
menu: "Kamu dapat melihat detil catatan, menyalin tautan, dan melakukan aksi lainnya."
|
|
||||||
_reaction:
|
|
||||||
title: "Apa itu Reaksi?"
|
|
||||||
description: "Catatan dapat direaksi dengan berbagai emoji. Reaksi memperbolehkan kamu untuk mengekspresikan nuansa yang tidak dapat disampaikan hanya dengan sebuah \"suka\"."
|
|
||||||
letsTryReacting: "Reaksi dapat ditambahkan dengan mengklik tombol '+' pada catatan. Coba lakukan mereaksi contoh catatan ini!"
|
|
||||||
reactToContinue: "Tambahkan reaksi untuk melanjutkan."
|
|
||||||
reactNotification: "Kamu akan menerima notifikasi real0time ketika seseorang mereaksi catatan kamu."
|
|
||||||
reactDone: "Kamu dapat mengurungkan reaksi dengan menekan tombol '-'."
|
|
||||||
_timeline:
|
|
||||||
title: "Konsep Lini Masa"
|
|
||||||
description1: "Misskey menyediakan berbagai lini masa sesuai dengan penggunaan (beberapa mungkin tidak tersedia karena bergantung dengan kebijakan peladen)."
|
|
||||||
home: "Kamu dapat melihat catatan dari akun yang kamu ikuti."
|
|
||||||
local: "Kamu dapat melihat catatan dari semua pengguna yang ada pada peladen ini."
|
|
||||||
social: "Catatan dari linimasa Beranda dan Lokal akan ditampilkan."
|
|
||||||
global: "Kamu dapat melihat catatan dari semua peladen yang terhubung."
|
|
||||||
description2: "Kamu dapat mengganti linimasa di bagian atas layar kamu kapan saja."
|
|
||||||
description3: "Sebagai tambahan, terdapat juga linimasa daftar dan linimasa kanal. Untuk detil lebih lanjut, silahkan melihat ke tautan berikut: {link}."
|
|
||||||
_postNote:
|
|
||||||
title: "Pengaturan posting Catatan"
|
|
||||||
description1: "Ketika memposting catatan ke Misskey, terdapat beberapa opsi yang tersedia. Form posting terlihat seperti ini."
|
|
||||||
_visibility:
|
|
||||||
description: "Kamu dapat membatasi siapa yang dapat melihat catatan kamu."
|
|
||||||
public: "Perlihatkan catatan ke semua pengguna."
|
|
||||||
home: "Hanya publik ke lini masa Beranda. Pengguna yang mengunjungi profilmu melalui pengikut dan renote dapat melihatnya."
|
|
||||||
followers: "Perlihatkan ke pengikut saja. Hanya pengikut yang dapat melihat postinganmu dan tidak dapat direnote oleh siapapun."
|
|
||||||
direct: "Hanya perlihatkan ke pengguna spesifik dan penerima akan diberi tahu. Dapat juga digunakan sebagai alternatif dari pesan langsung."
|
|
||||||
doNotSendConfidencialOnDirect1: "Hati-hati ketika mengirim informasi yang sensitif!"
|
|
||||||
doNotSendConfidencialOnDirect2: "Admin dari peladen dapat melihat apa yang kamu tulis. Hati-hati dengan informasi sensitif ketika mengirimkan catatan langsung kepada pengguna pada peladen yang tidak dipercaya."
|
|
||||||
localOnly: "Memposting dengan opsi ini tidak akan memfederasi catatan ke peladen lain. Pengguna pada peladen lain tidak akan dapat melihat catatan ini secara langsung, meskipun dengan pengaturan visibilitas yang sudah diatur di atas."
|
|
||||||
_cw:
|
|
||||||
title: "Peringatan Konten (CW)"
|
|
||||||
description: "Alih-alih isinya, konten yang ditulis dalam kolom 'komentar' akan ditampilkan. Menekan 'Selebihnya' akan menampilkan isi konten."
|
|
||||||
_exampleNote:
|
|
||||||
cw: "Peringatan: Bikin Lapar!"
|
|
||||||
note: "Baru aja makan donat berlapis coklat 🍩😋"
|
|
||||||
useCases: "Fungsi ini digunakan ketika mengikutik panduan peladen untuk catatan yang dibutuhkan atau untuk membatasi diri dari teks sensitif atau spoiler."
|
|
||||||
_howToMakeAttachmentsSensitive:
|
|
||||||
title: "Bagaimana menandai lampiran sebagai sensitif?"
|
|
||||||
description: "Fungsi ini digunakan untuk lampiran yang dibutuhkan oleh panduan peladen atau sesuatu yang seharusnya tidak boleh dibiarkan begitu saja dengan cara menambahkan penanda \"sensitif\"."
|
|
||||||
tryThisFile: "Coba tandai gambar yang dilampirkan pada form ini sebagai sensitif!"
|
|
||||||
_exampleNote:
|
|
||||||
note: "Ups, kesalahan banget buka penutup wadah natto..."
|
|
||||||
method: "Untuk menandai lampiran sebagai sensitif, klik gambar pada berkas, buka menu, lalu klik \"Tandai sebagai sensitif\"."
|
|
||||||
sensitiveSucceeded: "Ketika melampirkan berkas, mohon atur sensitifitas sesuai dengan panduan peladen."
|
|
||||||
doItToContinue: "Tandai berkas terlampir sebagai sensitif untuk melanjutkan."
|
|
||||||
_done:
|
|
||||||
title: "Kamu telah menyelesaikan tutorial! 🎉"
|
|
||||||
description: "Fungsi yang diperkenalkan di sini merupakan sebagian kecil dari fitur yang ada. Untuk pemahaman lebih detil dalam menggunakan Misskey, kamu dapat merujuk ke {link}."
|
|
||||||
_timelineDescription:
|
|
||||||
home: "Pada linimasa Beranda, kamu dapat melihat catatan dari akun yang kamu ikuti."
|
|
||||||
local: "Pada linimasa Lokal, kamu dapat melihat catatan dari semua pengguna yang ada pada peladen ini."
|
|
||||||
social: "Linimasa sosial menampilkan catatan dari kedua linimasa Beranda dan Lokal."
|
|
||||||
global: "Pada linimasa Global, kamu dapat melihat catatan dari semua peladen yang terhubung."
|
|
||||||
_serverRules:
|
_serverRules:
|
||||||
description: "Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
|
description: "Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
|
||||||
_serverSettings:
|
_serverSettings:
|
||||||
|
@ -1396,9 +1175,6 @@ _serverSettings:
|
||||||
manifestJsonOverride: "Ambil alih manifest.json"
|
manifestJsonOverride: "Ambil alih manifest.json"
|
||||||
shortName: "Nama pendek"
|
shortName: "Nama pendek"
|
||||||
shortNameDescription: "Inisial untuk nama instansi yang dapat ditampilkan apabila nama lengkap resmi terlalu panjang."
|
shortNameDescription: "Inisial untuk nama instansi yang dapat ditampilkan apabila nama lengkap resmi terlalu panjang."
|
||||||
fanoutTimelineDescription: "Dapat meningkatkan performa dalam pengambilan data linimasa dan mengurangi beban pada database ketika dinyalakan. Sebagai gantinya, penggunaan memory pada Redis akan meningkan. Pertimbangkan untuk menonaktifkan fitur ini jika mengalami kekurangan memori pada server atau menyebabkan server tidak stabil."
|
|
||||||
fanoutTimelineDbFallback: "Fallback ke database"
|
|
||||||
fanoutTimelineDbFallbackDescription: "Ketika diaktifkan, lini masa akan fallback ke database untuk melakukan kueri tambahan apabila linimasa tidak disimpan dalam cache. Menonaktifkan ini dapat mengurangi beban server dengan mengeliminasi proses fallback, namun dapat berakibat membatasi jarak data dari lini masa yang dapat diambil."
|
|
||||||
_accountMigration:
|
_accountMigration:
|
||||||
moveFrom: "Pindahkan akun lain ke akun ini"
|
moveFrom: "Pindahkan akun lain ke akun ini"
|
||||||
moveFromSub: "Buat alias ke akun lain"
|
moveFromSub: "Buat alias ke akun lain"
|
||||||
|
@ -1656,16 +1432,6 @@ _achievements:
|
||||||
_smashTestNotificationButton:
|
_smashTestNotificationButton:
|
||||||
title: "Tes overflow"
|
title: "Tes overflow"
|
||||||
description: "Picu tes notifikasi secara berulang dalam waktu yang sangat pendek"
|
description: "Picu tes notifikasi secara berulang dalam waktu yang sangat pendek"
|
||||||
_tutorialCompleted:
|
|
||||||
title: "Ijazah Sekolah Dasar Misskey"
|
|
||||||
description: "Tutorial selesai"
|
|
||||||
_bubbleGameExplodingHead:
|
|
||||||
title: "🤯"
|
|
||||||
description: "Obyek paling terbesar di permainan gelembung"
|
|
||||||
_bubbleGameDoubleExplodingHead:
|
|
||||||
title: "Ganda 🤯"
|
|
||||||
description: "Dua dari obyek paling terbesar pada permainan gelembung di waktu yang sama"
|
|
||||||
flavor: "Kamu dapat mengisi kotak makan siang seperti ini 🤯 🤯."
|
|
||||||
_role:
|
_role:
|
||||||
new: "Buat peran"
|
new: "Buat peran"
|
||||||
edit: "Sunting peran"
|
edit: "Sunting peran"
|
||||||
|
@ -1676,9 +1442,7 @@ _role:
|
||||||
assignTarget: "Tipe tugas"
|
assignTarget: "Tipe tugas"
|
||||||
descriptionOfAssignTarget: "<b>Manual</b> untuk mengganti secara manual siapa yang mendapatkan peran ini dan siapa yang tidak.\n<b>Kondisional</b> untuk pengguna secara otomatis dimasukkan atau dihapus dari peran berdasarkan kondisi yang ditentukan."
|
descriptionOfAssignTarget: "<b>Manual</b> untuk mengganti secara manual siapa yang mendapatkan peran ini dan siapa yang tidak.\n<b>Kondisional</b> untuk pengguna secara otomatis dimasukkan atau dihapus dari peran berdasarkan kondisi yang ditentukan."
|
||||||
manual: "Manual"
|
manual: "Manual"
|
||||||
manualRoles: "Peran manual"
|
|
||||||
conditional: "Kondisional"
|
conditional: "Kondisional"
|
||||||
conditionalRoles: "Peran kondisional"
|
|
||||||
condition: "Kondisi"
|
condition: "Kondisi"
|
||||||
isConditionalRole: "Ini adalah peran kondisional"
|
isConditionalRole: "Ini adalah peran kondisional"
|
||||||
isPublic: "Publikkan Peran"
|
isPublic: "Publikkan Peran"
|
||||||
|
@ -1706,13 +1470,11 @@ _role:
|
||||||
gtlAvailable: "Dapat melihat lini masa global"
|
gtlAvailable: "Dapat melihat lini masa global"
|
||||||
ltlAvailable: "Dapat melihat lini masa lokal"
|
ltlAvailable: "Dapat melihat lini masa lokal"
|
||||||
canPublicNote: "Dapat mengirim catatan publik"
|
canPublicNote: "Dapat mengirim catatan publik"
|
||||||
mentionMax: "Jumlah maksimum sebutan dalam sebuah catatan"
|
|
||||||
canInvite: "Dapat membuat kode undangan instansi"
|
canInvite: "Dapat membuat kode undangan instansi"
|
||||||
inviteLimit: "Batas jumlah undangan"
|
inviteLimit: "Batas jumlah undangan"
|
||||||
inviteLimitCycle: "Interval Penerbitan Kode Undangan"
|
inviteLimitCycle: "Interval Penerbitan Kode Undangan"
|
||||||
inviteExpirationTime: "Interval kedaluwarsa undangan"
|
inviteExpirationTime: "Interval kedaluwarsa undangan"
|
||||||
canManageCustomEmojis: "Dapat mengelola Emoji kustom"
|
canManageCustomEmojis: "Dapat mengelola Emoji kustom"
|
||||||
canManageAvatarDecorations: "Kelola dekorasi avatar"
|
|
||||||
driveCapacity: "Kapasitas Drive"
|
driveCapacity: "Kapasitas Drive"
|
||||||
alwaysMarkNsfw: "Selalu tandai berkas sebagai NSFW"
|
alwaysMarkNsfw: "Selalu tandai berkas sebagai NSFW"
|
||||||
pinMax: "Jumlah maksimal catatan yang disematkan"
|
pinMax: "Jumlah maksimal catatan yang disematkan"
|
||||||
|
@ -1728,18 +1490,9 @@ _role:
|
||||||
canHideAds: "Dapat menyembunyikan iklan"
|
canHideAds: "Dapat menyembunyikan iklan"
|
||||||
canSearchNotes: "Penggunaan pencarian catatan"
|
canSearchNotes: "Penggunaan pencarian catatan"
|
||||||
canUseTranslator: "Penggunaan penerjemah"
|
canUseTranslator: "Penggunaan penerjemah"
|
||||||
avatarDecorationLimit: "Jumlah maksimum dekorasi avatar yang dapat diterapkan"
|
|
||||||
canImportAntennas: "Izinkan mengimpor antena"
|
|
||||||
canImportUserLists: "Izinkan mengimpor senarai"
|
|
||||||
_condition:
|
_condition:
|
||||||
roleAssignedTo: "Ditugaskan ke peran manual"
|
|
||||||
isLocal: "Pengguna lokal"
|
isLocal: "Pengguna lokal"
|
||||||
isRemote: "Pengguna remote"
|
isRemote: "Pengguna remote"
|
||||||
isCat: "Pengguna Kucing"
|
|
||||||
isBot: "Pengguna Bot"
|
|
||||||
isSuspended: "Pengguna yang ditangguhkan"
|
|
||||||
isLocked: "Akun privat"
|
|
||||||
isExplorable: "Pengguna efektif yang akunnya dapat dicari"
|
|
||||||
createdLessThan: "Telah berlalu kurang dari X sejak pembuatan akun"
|
createdLessThan: "Telah berlalu kurang dari X sejak pembuatan akun"
|
||||||
createdMoreThan: "Telah berlalu lebih dari X sejak pembuatan akun"
|
createdMoreThan: "Telah berlalu lebih dari X sejak pembuatan akun"
|
||||||
followersLessThanOrEq: "Memiliki pengikut X atau kurang dari tersebut"
|
followersLessThanOrEq: "Memiliki pengikut X atau kurang dari tersebut"
|
||||||
|
@ -1765,9 +1518,8 @@ _emailUnavailable:
|
||||||
disposable: "Alamat surel temporer tidak dapat digunakan"
|
disposable: "Alamat surel temporer tidak dapat digunakan"
|
||||||
mx: "Peladen alamat surel ini tidak valid"
|
mx: "Peladen alamat surel ini tidak valid"
|
||||||
smtp: "Peladen alamat surel ini tidak merespon"
|
smtp: "Peladen alamat surel ini tidak merespon"
|
||||||
banned: "Kamu tidak dapat mendaftar dengan alamat surel ini"
|
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "Publik"
|
public: "Terbitkan"
|
||||||
followers: "Tampil untuk pengikut saja"
|
followers: "Tampil untuk pengikut saja"
|
||||||
private: "Tersembunyi"
|
private: "Tersembunyi"
|
||||||
_signup:
|
_signup:
|
||||||
|
@ -1809,7 +1561,6 @@ _plugin:
|
||||||
installWarn: "Mohon jangan memasang plugin yang tidak dapat dipercayai."
|
installWarn: "Mohon jangan memasang plugin yang tidak dapat dipercayai."
|
||||||
manage: "Manajemen plugin"
|
manage: "Manajemen plugin"
|
||||||
viewSource: "Lihat sumber"
|
viewSource: "Lihat sumber"
|
||||||
viewLog: "Tampilkan log"
|
|
||||||
_preferencesBackups:
|
_preferencesBackups:
|
||||||
list: "Cadangan yang dibuat"
|
list: "Cadangan yang dibuat"
|
||||||
saveNew: "Simpan cadangan baru"
|
saveNew: "Simpan cadangan baru"
|
||||||
|
@ -1839,13 +1590,10 @@ _aboutMisskey:
|
||||||
contributors: "Kontributor utama"
|
contributors: "Kontributor utama"
|
||||||
allContributors: "Seluruh kontributor"
|
allContributors: "Seluruh kontributor"
|
||||||
source: "Sumber kode"
|
source: "Sumber kode"
|
||||||
original: "Asli"
|
|
||||||
thisIsModifiedVersion: "{name} menggunakan versi modifikasi dari Misskey yang asli."
|
|
||||||
translation: "Terjemahkan Misskey"
|
translation: "Terjemahkan Misskey"
|
||||||
donate: "Donasi ke Misskey"
|
donate: "Donasi ke Misskey"
|
||||||
morePatrons: "Kami sangat mengapresiasi dukungan dari banyak penolong lain yang tidak tercantum disini. Terima kasih! 🥰"
|
morePatrons: "Kami sangat mengapresiasi dukungan dari banyak penolong lain yang tidak tercantum disini. Terima kasih! 🥰"
|
||||||
patrons: "Pendukung"
|
patrons: "Pendukung"
|
||||||
projectMembers: "Anggota proyek"
|
|
||||||
_displayOfSensitiveMedia:
|
_displayOfSensitiveMedia:
|
||||||
respect: "Sembunyikan media yang ditandai sensitif"
|
respect: "Sembunyikan media yang ditandai sensitif"
|
||||||
ignore: "Tampilkan media yang ditandai sensitif"
|
ignore: "Tampilkan media yang ditandai sensitif"
|
||||||
|
@ -1870,7 +1618,6 @@ _channel:
|
||||||
notesCount: "terdapat {n} catatan"
|
notesCount: "terdapat {n} catatan"
|
||||||
nameAndDescription: "Nama dan deskripsi"
|
nameAndDescription: "Nama dan deskripsi"
|
||||||
nameOnly: "Hanya nama"
|
nameOnly: "Hanya nama"
|
||||||
allowRenoteToExternal: "Perbolehkan catat ulang dan kutipan di luar dari kanal"
|
|
||||||
_menuDisplay:
|
_menuDisplay:
|
||||||
sideFull: "Horisontal"
|
sideFull: "Horisontal"
|
||||||
sideIcon: "Horisontal (Ikon)"
|
sideIcon: "Horisontal (Ikon)"
|
||||||
|
@ -1948,6 +1695,7 @@ _theme:
|
||||||
buttonBg: "Latar belakang tombol"
|
buttonBg: "Latar belakang tombol"
|
||||||
buttonHoverBg: "Latar belakang tombol (Mengambang)"
|
buttonHoverBg: "Latar belakang tombol (Mengambang)"
|
||||||
inputBorder: "Batas bidang masukan"
|
inputBorder: "Batas bidang masukan"
|
||||||
|
listItemHoverBg: "Latar belakang daftar item (Mengambang)"
|
||||||
driveFolderBg: "Latar belakang folder drive"
|
driveFolderBg: "Latar belakang folder drive"
|
||||||
wallpaperOverlay: "Lapisan wallpaper"
|
wallpaperOverlay: "Lapisan wallpaper"
|
||||||
badge: "Lencana"
|
badge: "Lencana"
|
||||||
|
@ -1959,15 +1707,8 @@ _sfx:
|
||||||
note: "Catatan"
|
note: "Catatan"
|
||||||
noteMy: "Catatan (Saya)"
|
noteMy: "Catatan (Saya)"
|
||||||
notification: "Notifikasi"
|
notification: "Notifikasi"
|
||||||
reaction: "Ketika memilih reaksi"
|
antenna: "Penerimaan Antenna"
|
||||||
_soundSettings:
|
channel: "Notifikasi Kanal"
|
||||||
driveFile: "Menggunakan berkas audio dalam Drive"
|
|
||||||
driveFileWarn: "Pilih berkas audio dari Drive"
|
|
||||||
driveFileTypeWarn: "Berkas ini tidak didukung"
|
|
||||||
driveFileTypeWarnDescription: "Pilih berkas audio"
|
|
||||||
driveFileDurationWarn: "Audio ini terlalu panjang"
|
|
||||||
driveFileDurationWarnDescription: "Audio panjang dapat mengganggu penggunaan Misskey. Masih ingin melanjutkan?"
|
|
||||||
driveFileError: "Tak bisa memuat audio. Mohon ubah pengaturan"
|
|
||||||
_ago:
|
_ago:
|
||||||
future: "Masa depan"
|
future: "Masa depan"
|
||||||
justNow: "Baru saja"
|
justNow: "Baru saja"
|
||||||
|
@ -1979,24 +1720,27 @@ _ago:
|
||||||
monthsAgo: "{n} bulan lalu"
|
monthsAgo: "{n} bulan lalu"
|
||||||
yearsAgo: "{n} tahun lalu"
|
yearsAgo: "{n} tahun lalu"
|
||||||
invalid: "Tidak ada sama sekali disini"
|
invalid: "Tidak ada sama sekali disini"
|
||||||
_timeIn:
|
|
||||||
seconds: "dalam {n} detik"
|
|
||||||
minutes: "dalam {n} menit"
|
|
||||||
hours: "dalam {n} jam"
|
|
||||||
days: "dalam {n} hari"
|
|
||||||
weeks: "dalam {n} minggu"
|
|
||||||
months: "dalam {n} bulan"
|
|
||||||
years: "dalam {n} tahun"
|
|
||||||
_time:
|
_time:
|
||||||
second: "detik"
|
second: "detik"
|
||||||
minute: "menit"
|
minute: "menit"
|
||||||
hour: "jam"
|
hour: "jam"
|
||||||
day: "hari"
|
day: "hari"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Bagaimana cara menggunakan Misskey"
|
||||||
|
step1_1: "Ini adalah \"lini masa\". Semua \"catatan\" yang dikirimkan oleh {name} akan dimunculkan secara kronologis di sini."
|
||||||
|
step1_2: "Ada beberapa lini masa yang berbeda. Seperti contoh, \"Lini masa Beranda\" berisi catatan dari pengguna yang kamu ikuti, dan \"Lini masa lokal\" berisi catatan dari semua pengguna dari {name}."
|
||||||
|
step2_1: "Selanjutnya, mari kita coba memposting sebuah catatan. Kamu dapat melakukanya dengan menekan tombol dengan ikon pensil."
|
||||||
|
step2_2: "Bagaimana dengan menuliskan sedikit perkenalan diri, atau hanya \"Hello {name}\" kalau kamu lagi ngga feeling?"
|
||||||
|
step3_1: "Udah selesai memposting catatan pertamamu?"
|
||||||
|
step3_2: "Catatan pertamamu seharusnya sekarang sudah tampil di lini masa kamu."
|
||||||
|
step4_1: "Kamu dapat menyisipkan \"Reaksi\" ke dalam catatan."
|
||||||
|
step4_2: "Untuk menyisipkan reaksi, tekan tanda \"+\" dalam catatan dan pilih emoji yang kamu suka untuk mereaksi catatan tersebut."
|
||||||
_2fa:
|
_2fa:
|
||||||
alreadyRegistered: "Kamu telah mendaftarkan perangkat autentikasi 2-faktor."
|
alreadyRegistered: "Kamu telah mendaftarkan perangkat autentikasi 2-faktor."
|
||||||
registerTOTP: "Daftarkan aplikasi autentikator"
|
registerTOTP: "Daftarkan aplikasi autentikator"
|
||||||
step1: "Pertama, pasang aplikasi autentikasi (seperti {a} atau {b}) di perangkat kamu."
|
step1: "Pertama, pasang aplikasi autentikasi (seperti {a} atau {b}) di perangkat kamu."
|
||||||
step2: "Lalu, pindai kode QR yang ada di layar."
|
step2: "Lalu, pindai kode QR yang ada di layar."
|
||||||
|
step2Click: "Mengeklik kode QR ini akan membolehkanmu untuk mendaftarkan 2FA ke security-key atau aplikasi autentikator ponsel."
|
||||||
step2Uri: "Masukkan URI berikut jika kamu menggunakan program desktop"
|
step2Uri: "Masukkan URI berikut jika kamu menggunakan program desktop"
|
||||||
step3Title: "Masukkan kode autentikasi"
|
step3Title: "Masukkan kode autentikasi"
|
||||||
step3: "Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan."
|
step3: "Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan."
|
||||||
|
@ -2020,7 +1764,6 @@ _2fa:
|
||||||
backupCodesDescription: "Kamu dapat menggunakan kode ini untuk mendapatkan akses ke akun kamu apabila berada dalam situasi tidak dapat menggunakan aplikasi autentikasi 2-faktor yang kamu miliki. Setiap kode hanya dapat digunakan satu kali. Mohon simpan kode ini di tempat yang aman."
|
backupCodesDescription: "Kamu dapat menggunakan kode ini untuk mendapatkan akses ke akun kamu apabila berada dalam situasi tidak dapat menggunakan aplikasi autentikasi 2-faktor yang kamu miliki. Setiap kode hanya dapat digunakan satu kali. Mohon simpan kode ini di tempat yang aman."
|
||||||
backupCodeUsedWarning: "Kode cadangan telah digunakan. Mohon mengatur ulang autentikasi 2-faktor secepatnya apabila kamu sudah tidak dapat menggunakannya lagi."
|
backupCodeUsedWarning: "Kode cadangan telah digunakan. Mohon mengatur ulang autentikasi 2-faktor secepatnya apabila kamu sudah tidak dapat menggunakannya lagi."
|
||||||
backupCodesExhaustedWarning: "Semua kode cadangan telah digunakan. Apabila kamu kehilangan akses pada aplikasi autentikasi 2-faktor milikmu, kamu tidak dapat mengakses akun ini lagi. Mohon atur ulang autentikasi 2-faktor kamu."
|
backupCodesExhaustedWarning: "Semua kode cadangan telah digunakan. Apabila kamu kehilangan akses pada aplikasi autentikasi 2-faktor milikmu, kamu tidak dapat mengakses akun ini lagi. Mohon atur ulang autentikasi 2-faktor kamu."
|
||||||
moreDetailedGuideHere: "Berikut panduan detilnya"
|
|
||||||
_permissions:
|
_permissions:
|
||||||
"read:account": "Lihat informasi akun"
|
"read:account": "Lihat informasi akun"
|
||||||
"write:account": "Sunting informasi akun"
|
"write:account": "Sunting informasi akun"
|
||||||
|
@ -2058,54 +1801,6 @@ _permissions:
|
||||||
"write:flash": "Sunting Play"
|
"write:flash": "Sunting Play"
|
||||||
"read:flash-likes": "Lihat daftar Play yang disukai"
|
"read:flash-likes": "Lihat daftar Play yang disukai"
|
||||||
"write:flash-likes": "Sunting daftar Play yang disukai"
|
"write:flash-likes": "Sunting daftar Play yang disukai"
|
||||||
"read:admin:abuse-user-reports": "Lihat laporan pengguna"
|
|
||||||
"write:admin:delete-account": "Hapus akun pengguna"
|
|
||||||
"write:admin:delete-all-files-of-a-user": "Hapus semua berkas dari seorang pengguna"
|
|
||||||
"read:admin:index-stats": "Lihat statistik indeks basis data"
|
|
||||||
"read:admin:table-stats": "Lihat statistik tabel basis data"
|
|
||||||
"read:admin:user-ips": "Lihat alamat IP pengguna"
|
|
||||||
"read:admin:meta": "Lihat metadata instansi"
|
|
||||||
"write:admin:reset-password": "Atur ulang kata sandi pengguna"
|
|
||||||
"write:admin:resolve-abuse-user-report": "Selesaikan laporan pengguna"
|
|
||||||
"write:admin:send-email": "Mengirim surel"
|
|
||||||
"read:admin:server-info": "Lihat informasi peladen"
|
|
||||||
"read:admin:show-moderation-log": "Lihat log moderasi"
|
|
||||||
"read:admin:show-user": "Lihat informasi pengguna privat"
|
|
||||||
"write:admin:suspend-user": "Tangguhkan pengguna"
|
|
||||||
"write:admin:unset-user-avatar": "Hapus avatar pengguna"
|
|
||||||
"write:admin:unset-user-banner": "Hapus banner pengguna"
|
|
||||||
"write:admin:unsuspend-user": "Batalkan penangguhan pengguna"
|
|
||||||
"write:admin:meta": "Kelola metadata instansi"
|
|
||||||
"write:admin:user-note": "Kelola moderasi catatan"
|
|
||||||
"write:admin:roles": "Kelola peran"
|
|
||||||
"read:admin:roles": "Lihat peran"
|
|
||||||
"write:admin:relays": "Kelola relay"
|
|
||||||
"read:admin:relays": "Lihat relay"
|
|
||||||
"write:admin:invite-codes": "Kelola kode undangan"
|
|
||||||
"read:admin:invite-codes": "Lihat kode undangan"
|
|
||||||
"write:admin:announcements": "Kelola pengumuman"
|
|
||||||
"read:admin:announcements": "Lihat Pengumuman"
|
|
||||||
"write:admin:avatar-decorations": "Kelola dekorasi avatar"
|
|
||||||
"read:admin:avatar-decorations": "Lihat dekorasi avatar"
|
|
||||||
"write:admin:federation": "Kelola data federasi"
|
|
||||||
"write:admin:account": "Kelola akun pengguna"
|
|
||||||
"read:admin:account": "Lihat akun pengguna"
|
|
||||||
"write:admin:emoji": "Kelola emoji"
|
|
||||||
"read:admin:emoji": "Lihat emoji"
|
|
||||||
"write:admin:queue": "Kelola antrian kerja"
|
|
||||||
"read:admin:queue": "Lihat informasi antrian kerja"
|
|
||||||
"write:admin:promo": "Kelola catatan promosi"
|
|
||||||
"write:admin:drive": "Kelola drive pengguna"
|
|
||||||
"read:admin:drive": "Kelola informasi drive pengguna"
|
|
||||||
"read:admin:stream": "Gunakan API WebSocket untuk Admin"
|
|
||||||
"write:admin:ad": "Kelola iklan"
|
|
||||||
"read:admin:ad": "Lihat iklan"
|
|
||||||
"write:invite-codes": "Membuat kode undangan"
|
|
||||||
"read:invite-codes": "Mendapatkan kode undangan"
|
|
||||||
"write:clip-favorite": "Kelola klip yang difavoritkan"
|
|
||||||
"read:clip-favorite": "Lihat klip yang difavoritkan"
|
|
||||||
"read:federation": "Mendapatkan data federasi"
|
|
||||||
"write:report-abuse": "Melaporkan pelanggaran"
|
|
||||||
_auth:
|
_auth:
|
||||||
shareAccessTitle: "Mendapatkan ijin akses aplikasi"
|
shareAccessTitle: "Mendapatkan ijin akses aplikasi"
|
||||||
shareAccess: "Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
|
shareAccess: "Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
|
||||||
|
@ -2160,7 +1855,6 @@ _widgets:
|
||||||
_userList:
|
_userList:
|
||||||
chooseList: "Pilih daftar"
|
chooseList: "Pilih daftar"
|
||||||
clicker: "Pengeklik"
|
clicker: "Pengeklik"
|
||||||
birthdayFollowings: "Pengguna yang merayakan hari ulang tahunnya hari ini"
|
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Sembunyikan"
|
hide: "Sembunyikan"
|
||||||
show: "Lihat konten"
|
show: "Lihat konten"
|
||||||
|
@ -2223,11 +1917,9 @@ _profile:
|
||||||
changeAvatar: "Ubah avatar"
|
changeAvatar: "Ubah avatar"
|
||||||
changeBanner: "Ubah header"
|
changeBanner: "Ubah header"
|
||||||
verifiedLinkDescription: "Dengan memasukkan URL yang mengandung tautan ke profil kamu di sini, ikon verifikasi kepemilikan dapat ditampilkan di sebelah kolom ini."
|
verifiedLinkDescription: "Dengan memasukkan URL yang mengandung tautan ke profil kamu di sini, ikon verifikasi kepemilikan dapat ditampilkan di sebelah kolom ini."
|
||||||
avatarDecorationMax: "Dapat ditambahkan hingga {max} dekorasi."
|
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Semua catatan"
|
allNotes: "Semua catatan"
|
||||||
favoritedNotes: "Catatan favorit"
|
favoritedNotes: "Catatan favorit"
|
||||||
clips: "Klip"
|
|
||||||
followingList: "Ikuti"
|
followingList: "Ikuti"
|
||||||
muteList: "Bisukan"
|
muteList: "Bisukan"
|
||||||
blockingList: "Blokir"
|
blockingList: "Blokir"
|
||||||
|
@ -2281,7 +1973,6 @@ _play:
|
||||||
title: "Judul"
|
title: "Judul"
|
||||||
script: "Script"
|
script: "Script"
|
||||||
summary: "Deskripsi"
|
summary: "Deskripsi"
|
||||||
visibilityDescription: "Membuat catatan ini privat berarti tidak akan terlihat pada profil kamu, namun siapapun yang memiliki URL dari catatan ini akan dapat mengaksesnya."
|
|
||||||
_pages:
|
_pages:
|
||||||
newPage: "Buat halaman baru"
|
newPage: "Buat halaman baru"
|
||||||
editPage: "Sunting halaman"
|
editPage: "Sunting halaman"
|
||||||
|
@ -2326,8 +2017,6 @@ _pages:
|
||||||
section: "Bagian"
|
section: "Bagian"
|
||||||
image: "Gambar"
|
image: "Gambar"
|
||||||
button: "Tombol"
|
button: "Tombol"
|
||||||
dynamic: "Blok Dinamis"
|
|
||||||
dynamicDescription: "Blok ini telah dihapus. Mohon gunakan {play} dari sekarang."
|
|
||||||
note: "Catatan yang ditanam"
|
note: "Catatan yang ditanam"
|
||||||
_note:
|
_note:
|
||||||
id: "ID Catatan"
|
id: "ID Catatan"
|
||||||
|
@ -2349,18 +2038,12 @@ _notification:
|
||||||
pollEnded: "Hasil Kuesioner telah keluar"
|
pollEnded: "Hasil Kuesioner telah keluar"
|
||||||
newNote: "Catatan baru"
|
newNote: "Catatan baru"
|
||||||
unreadAntennaNote: "Antena {name}"
|
unreadAntennaNote: "Antena {name}"
|
||||||
roleAssigned: "Peran Diberikan"
|
|
||||||
emptyPushNotificationMessage: "Pembaruan notifikasi dorong"
|
emptyPushNotificationMessage: "Pembaruan notifikasi dorong"
|
||||||
achievementEarned: "Pencapaian didapatkan"
|
achievementEarned: "Pencapaian didapatkan"
|
||||||
testNotification: "Tes notifikasi"
|
testNotification: "Tes notifikasi"
|
||||||
checkNotificationBehavior: "Cek tampilan notifikasi"
|
checkNotificationBehavior: "Cek tampilan notifikasi"
|
||||||
sendTestNotification: "Kirim tes notifikasi"
|
sendTestNotification: "Kirim tes notifikasi"
|
||||||
notificationWillBeDisplayedLikeThis: "Notifikasi akan terlihat seperti ini"
|
notificationWillBeDisplayedLikeThis: "Notifikasi akan terlihat seperti ini"
|
||||||
reactedBySomeUsers: "{n} orang memberikan reaksi"
|
|
||||||
likedBySomeUsers: "{n} pengguna menyukai catatan kamu"
|
|
||||||
renotedBySomeUsers: "{n} orang telah merenote"
|
|
||||||
followedBySomeUsers: "{n} orang telah mengikuti"
|
|
||||||
flushNotification: "Bersihkan notifikasi"
|
|
||||||
_types:
|
_types:
|
||||||
all: "Semua"
|
all: "Semua"
|
||||||
note: "Catatan baru"
|
note: "Catatan baru"
|
||||||
|
@ -2373,9 +2056,7 @@ _notification:
|
||||||
pollEnded: "Jajak pendapat berakhir"
|
pollEnded: "Jajak pendapat berakhir"
|
||||||
receiveFollowRequest: "Permintaan mengikuti diterima"
|
receiveFollowRequest: "Permintaan mengikuti diterima"
|
||||||
followRequestAccepted: "Permintaan mengikuti disetujui"
|
followRequestAccepted: "Permintaan mengikuti disetujui"
|
||||||
roleAssigned: "Peran Diberikan"
|
|
||||||
achievementEarned: "Pencapaian didapatkan"
|
achievementEarned: "Pencapaian didapatkan"
|
||||||
login: "Masuk"
|
|
||||||
app: "Notifikasi dari aplikasi tertaut"
|
app: "Notifikasi dari aplikasi tertaut"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "Ikuti Kembali"
|
followBack: "Ikuti Kembali"
|
||||||
|
@ -2423,9 +2104,9 @@ _drivecleaner:
|
||||||
orderByCreatedAtAsc: "Tanggal (Naik)"
|
orderByCreatedAtAsc: "Tanggal (Naik)"
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
createWebhook: "Buat Webhook"
|
createWebhook: "Buat Webhook"
|
||||||
modifyWebhook: "Sunting Webhook"
|
|
||||||
name: "Nama"
|
name: "Nama"
|
||||||
secret: "Secret"
|
secret: "Secret"
|
||||||
|
events: "Webhook Events"
|
||||||
active: "Aktif"
|
active: "Aktif"
|
||||||
_events:
|
_events:
|
||||||
follow: "Ketika mengikuti pengguna"
|
follow: "Ketika mengikuti pengguna"
|
||||||
|
@ -2435,13 +2116,6 @@ _webhookSettings:
|
||||||
renote: "Ketika direnote"
|
renote: "Ketika direnote"
|
||||||
reaction: "Ketika menerima reaksi"
|
reaction: "Ketika menerima reaksi"
|
||||||
mention: "Ketika sedang disebut"
|
mention: "Ketika sedang disebut"
|
||||||
deleteConfirm: "Apakah kamu yakin ingin menghapus Webhook?"
|
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Surel"
|
|
||||||
webhook: "Webhook"
|
|
||||||
keywords: "Kata kunci"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
createRole: "Peran telah dibuat"
|
createRole: "Peran telah dibuat"
|
||||||
deleteRole: "Peran telah dihapus"
|
deleteRole: "Peran telah dihapus"
|
||||||
|
@ -2466,7 +2140,6 @@ _moderationLogTypes:
|
||||||
resetPassword: "Atur ulang kata sandi"
|
resetPassword: "Atur ulang kata sandi"
|
||||||
suspendRemoteInstance: "Instansi luar telah ditangguhkan"
|
suspendRemoteInstance: "Instansi luar telah ditangguhkan"
|
||||||
unsuspendRemoteInstance: "Instansi luar batal ditangguhkan"
|
unsuspendRemoteInstance: "Instansi luar batal ditangguhkan"
|
||||||
updateRemoteInstanceNote: "Catatan moderasi telah diperbaharui untuk peladen luar."
|
|
||||||
markSensitiveDriveFile: "Berkas ditandai sensitif"
|
markSensitiveDriveFile: "Berkas ditandai sensitif"
|
||||||
unmarkSensitiveDriveFile: "Berkas batal ditandai sensitif"
|
unmarkSensitiveDriveFile: "Berkas batal ditandai sensitif"
|
||||||
resolveAbuseReport: "Laporan terselesaikan"
|
resolveAbuseReport: "Laporan terselesaikan"
|
||||||
|
@ -2474,12 +2147,6 @@ _moderationLogTypes:
|
||||||
createAd: "Iklan telah dibuat"
|
createAd: "Iklan telah dibuat"
|
||||||
deleteAd: "Iklan telah dihapus"
|
deleteAd: "Iklan telah dihapus"
|
||||||
updateAd: "Iklan telah diperbaharui"
|
updateAd: "Iklan telah diperbaharui"
|
||||||
createAvatarDecoration: "Buat dekorasi avatar"
|
|
||||||
updateAvatarDecoration: "Perbarui dekorasi avatar"
|
|
||||||
deleteAvatarDecoration: "Hapus dekorasi avatar"
|
|
||||||
unsetUserAvatar: "Hapus avatar pengguna"
|
|
||||||
unsetUserBanner: "Hapus banner pengguna"
|
|
||||||
deleteAccount: "Akun dihapus"
|
|
||||||
_fileViewer:
|
_fileViewer:
|
||||||
title: "Rincian berkas"
|
title: "Rincian berkas"
|
||||||
type: "Jenis berkas"
|
type: "Jenis berkas"
|
||||||
|
@ -2488,126 +2155,3 @@ _fileViewer:
|
||||||
uploadedAt: "Diunggah pada"
|
uploadedAt: "Diunggah pada"
|
||||||
attachedNotes: "Catatan yang dilampirkan"
|
attachedNotes: "Catatan yang dilampirkan"
|
||||||
thisPageCanBeSeenFromTheAuthor: "Halaman ini hanya dapat dilihat oleh pengguna yang mengunggah bekas ini."
|
thisPageCanBeSeenFromTheAuthor: "Halaman ini hanya dapat dilihat oleh pengguna yang mengunggah bekas ini."
|
||||||
_externalResourceInstaller:
|
|
||||||
title: "Pasang dari situs eksternal"
|
|
||||||
checkVendorBeforeInstall: "Pastikan sumber dari sumber daya ini terpercaya sebelum melakukan pemasangan."
|
|
||||||
_plugin:
|
|
||||||
title: "Apakah kamu ingin memasang plugin ini?"
|
|
||||||
metaTitle: "Informasi plugin"
|
|
||||||
_theme:
|
|
||||||
title: "Apakah kamu ingin memasang tema ini?"
|
|
||||||
metaTitle: "Informasi tema"
|
|
||||||
_meta:
|
|
||||||
base: "Skema warna dasar"
|
|
||||||
_vendorInfo:
|
|
||||||
title: "Informasi sumber"
|
|
||||||
endpoint: "Referensi Endpoint"
|
|
||||||
hashVerify: "Verifikasi hash"
|
|
||||||
_errors:
|
|
||||||
_invalidParams:
|
|
||||||
title: "Parameter tidak valid"
|
|
||||||
description: "Tidak cukup informasi untuk memuat data dari situs eksternal. Mohon konfirmasi kembali URL yang dimasukkan."
|
|
||||||
_resourceTypeNotSupported:
|
|
||||||
title: "Sumber daya eksternal ini tidak didukung"
|
|
||||||
description: "Tipe sumber daya eksternal ini tidak didukung. Mohon kontak administrator dari situs tersebut."
|
|
||||||
_failedToFetch:
|
|
||||||
title: "Gagal memuat data"
|
|
||||||
fetchErrorDescription: "Kesalahan terjadi ketika menghubungkan dengan situs eksternal. Jika percobaan kembali tidak dapat memperbaiki masalah ini, mohon hubungi administrator dari situs tersebut."
|
|
||||||
parseErrorDescription: "Kesalahan terjadi dalam memproses data yang dimuat dari situs eksternal. Mohon hubungi administrator dari situs tersebut."
|
|
||||||
_hashUnmatched:
|
|
||||||
title: "Verifikasi data gagal"
|
|
||||||
description: "Kesalahan terjadi dalam memverifikasi integritas data yang diambil. Sebagai pencegahan keamanan, pemasangan tidak dapat dilanjutkan. Mohon hubungi administrator dari situs tersebut."
|
|
||||||
_pluginParseFailed:
|
|
||||||
title: "Kesalahan AiScript"
|
|
||||||
description: "Data yang diminta telah diambil dengan sukses, namun kesalahan terjadi ketika AiScript melakukan parsing. Mohon hubungi pembuat plugin. Detil kesalahan dapat dilihat pada konsol Javascript."
|
|
||||||
_pluginInstallFailed:
|
|
||||||
title: "Pemasangan plugin gagal"
|
|
||||||
description: "Kesalahan terjadi ketika pemasangan plugin. Mohon coba lagi. Detil kesalahan dapat dilihat pada konsol Javascript."
|
|
||||||
_themeParseFailed:
|
|
||||||
title: "Parsing tema gagal"
|
|
||||||
description: "Data yang diminta telah diambil dengan sukses, namun kesalahan terjadi ketika tema melakukan parsing. Mohon hubungi pembuat tema. Detil kesalahan dapat dilihat pada konsol Javascript."
|
|
||||||
_themeInstallFailed:
|
|
||||||
title: "Pemasangan tema gagal"
|
|
||||||
description: "Kesalahan terjadi ketika pemasangan tema. Mohon coba lagi. Detil kesalahan dapat dilihat pada konsol Javascript."
|
|
||||||
_dataSaver:
|
|
||||||
_media:
|
|
||||||
title: "Memuat media"
|
|
||||||
description: "Mencegah gambar/video dimuat secara otomatis. Menyembunyikan gambar/video dan akan dimuat ketika diketuk."
|
|
||||||
_avatar:
|
|
||||||
title: "Gambar avatar"
|
|
||||||
description: "Hentikan animasi gambar avatar. Gambar animasi dapat berukuran lebih besar dari gambar biasa, berpotensi pada pengurangan lalu lintas data lebih jauh."
|
|
||||||
_urlPreview:
|
|
||||||
title: "Gambar kecil URL pratinjau"
|
|
||||||
description: "Gambar kecil URL pratinjau tidak akan dimuat lagi."
|
|
||||||
_code:
|
|
||||||
title: "Penyorotan kode"
|
|
||||||
description: "Jika notasi penyorotan kode digunakan di MFM, dll. Fungsi tersebut tidak akan dimuat apabila tidak diketuk. Penyorotan sintaks membutuhkan pengunduhan berkas definisi penyorotan untuk setiap bahasa pemrograman. Oleh sebab itu, menonaktifkan pemuatan otomatis dari berkas ini dilakukan untuk mengurangi jumlah komunikasi data."
|
|
||||||
_hemisphere:
|
|
||||||
N: "Bumi belahan utara"
|
|
||||||
S: "Bumi belahan selatan"
|
|
||||||
caption: "Digunakan dalam beberapa pengaturan klien untuk menentukan musim."
|
|
||||||
_reversi:
|
|
||||||
reversi: "Reversi"
|
|
||||||
gameSettings: "Pengaturan permainan"
|
|
||||||
chooseBoard: "Pilih papan"
|
|
||||||
blackOrWhite: "Hitam/Putih"
|
|
||||||
blackIs: "{name} bermain sebagai Hitam"
|
|
||||||
rules: "Aturan"
|
|
||||||
thisGameIsStartedSoon: "Permainan akan segera dimulai"
|
|
||||||
waitingForOther: "Menunggu langkah giliran dari lawan"
|
|
||||||
waitingForMe: "Menungguh langkah giliran dari kamu"
|
|
||||||
waitingBoth: "Bersiap"
|
|
||||||
ready: "Siap"
|
|
||||||
cancelReady: "Belum siap"
|
|
||||||
opponentTurn: "Giliran lawan"
|
|
||||||
myTurn: "Giliran kamu"
|
|
||||||
turnOf: "Giliran {name}"
|
|
||||||
pastTurnOf: "Giliran {name}"
|
|
||||||
surrender: "Menyerah"
|
|
||||||
surrendered: "Telah menyerah"
|
|
||||||
timeout: "Waktu habis"
|
|
||||||
drawn: "Seri"
|
|
||||||
won: "{name} menang"
|
|
||||||
black: "Hitam"
|
|
||||||
white: "Putih"
|
|
||||||
total: "Jumlah"
|
|
||||||
turnCount: "Langkah ke {count}"
|
|
||||||
myGames: "Rondeku"
|
|
||||||
allGames: "Semua ronde"
|
|
||||||
ended: "Selesai"
|
|
||||||
playing: "Sedang bermain"
|
|
||||||
isLlotheo: "Pemain dengan batu yang sedikit menang (Llotheo)"
|
|
||||||
loopedMap: "Peta melingkar"
|
|
||||||
canPutEverywhere: "Keping dapat ditaruh dimana saja"
|
|
||||||
timeLimitForEachTurn: "Batas waktu untuk gantian"
|
|
||||||
freeMatch: "Pertandingan bebas"
|
|
||||||
lookingForPlayer: "Mencari lawan..."
|
|
||||||
gameCanceled: "Permainan ini telah dibatalkan."
|
|
||||||
shareToTlTheGameWhenStart: "Bagikan permainan ke lini masa ketika dimulai"
|
|
||||||
iStartedAGame: "Permainan telah dimulai! #MisskeyReversi"
|
|
||||||
opponentHasSettingsChanged: "Lawan telah mengganti pengaturan mereka."
|
|
||||||
allowIrregularRules: "Aturan non-reguler (bebas sepenuhnya)"
|
|
||||||
disallowIrregularRules: "Tanpa aturan non-reguler"
|
|
||||||
showBoardLabels: "Tampilkan penomoran baris dan kolom pada papan"
|
|
||||||
useAvatarAsStone: "Ubah batu menjadi avatar pengguna"
|
|
||||||
_offlineScreen:
|
|
||||||
title: "Luring - tidak dapat terhubung ke peladen"
|
|
||||||
header: "Tidak dapat tersambung ke server"
|
|
||||||
_urlPreviewSetting:
|
|
||||||
title: "Pengaturan pratinjau URL"
|
|
||||||
enable: "Aktifkan pratinjau URL"
|
|
||||||
timeout: "Waktu timeout pratinjau URL (ms)"
|
|
||||||
timeoutDescription: "Apabila ini memakan waktu lama dari nilai yang ditentukan untuk mendapatkan pratinjau, pratinjau tidak akan dibuat."
|
|
||||||
maximumContentLength: "Content-Length Maksimum (bytes)"
|
|
||||||
maximumContentLengthDescription: "Apabila Content-Length lebih besar dari nilai ini, pratinjau tidak akan dibuat."
|
|
||||||
requireContentLength: "Buat pratinjau hanya ketika Content-Length dapat didapatkan"
|
|
||||||
requireContentLengthDescription: "Apabila peladen lain tidak memberika Content-Length, pratinjau tidak akan dibuat."
|
|
||||||
userAgent: "User-Agent"
|
|
||||||
userAgentDescription: "Atur User-Agent yang digunakan untuk mengambil pratinjau. Apabila dibiarkan kosong, User-Agent bawaan akan digunakan."
|
|
||||||
summaryProxy: "Titik akhir proksi yang membuat pratinjau"
|
|
||||||
summaryProxyDescription: "Bukan untuk Misskey, namun untuk menghasilkan pratinjau menggunakan Summaly Proxy."
|
|
||||||
summaryProxyDescription2: "Parameter berikut tertautkan dengan proksi sebagai string kueri. Apabila proksi tidak mendukung tersebut, nilai di dalamnya diabaikan."
|
|
||||||
_mediaControls:
|
|
||||||
pip: "Gambar dalam Gambar"
|
|
||||||
playbackRate: "Kecepatan Pemutaran"
|
|
||||||
loop: "Ulangi Pemutaran"
|
|
||||||
|
|
8441
locales/index.d.ts
vendored
8441
locales/index.d.ts
vendored
File diff suppressed because it is too large
Load diff
|
@ -15,7 +15,6 @@ const merge = (...args) => args.reduce((a, c) => ({
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
'ar-SA',
|
'ar-SA',
|
||||||
'ca-ES',
|
|
||||||
'cs-CZ',
|
'cs-CZ',
|
||||||
'da-DK',
|
'da-DK',
|
||||||
'de-DE',
|
'de-DE',
|
||||||
|
@ -52,27 +51,9 @@ const primaries = {
|
||||||
// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
|
// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
|
||||||
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
|
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
|
||||||
|
|
||||||
export function build() {
|
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
|
||||||
// vitestの挙動を調整するため、一度ローカル変数化する必要がある
|
|
||||||
// https://github.com/vitest-dev/vitest/issues/3988#issuecomment-1686599577
|
|
||||||
// https://github.com/misskey-dev/misskey/pull/14057#issuecomment-2192833785
|
|
||||||
const metaUrl = import.meta.url;
|
|
||||||
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, metaUrl), 'utf-8'))) || {}, a), {});
|
|
||||||
|
|
||||||
// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
|
export default Object.entries(locales)
|
||||||
const removeEmpty = (obj) => {
|
|
||||||
for (const [k, v] of Object.entries(obj)) {
|
|
||||||
if (v === '') {
|
|
||||||
delete obj[k];
|
|
||||||
} else if (typeof v === 'object') {
|
|
||||||
removeEmpty(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
removeEmpty(locales);
|
|
||||||
|
|
||||||
return Object.entries(locales)
|
|
||||||
.reduce((a, [k ,v]) => (a[k] = (() => {
|
.reduce((a, [k ,v]) => (a[k] = (() => {
|
||||||
const [lang] = k.split('-');
|
const [lang] = k.split('-');
|
||||||
switch (k) {
|
switch (k) {
|
||||||
|
@ -82,11 +63,8 @@ export function build() {
|
||||||
default: return merge(
|
default: return merge(
|
||||||
locales['ja-JP'],
|
locales['ja-JP'],
|
||||||
locales['en-US'],
|
locales['en-US'],
|
||||||
locales[`${lang}-${primaries[lang]}`] ?? {},
|
locales[`${lang}-${primaries[lang]}`] || {},
|
||||||
v
|
v
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})(), a), {});
|
})(), a), {});
|
||||||
}
|
|
||||||
|
|
||||||
export default build();
|
|
||||||
|
|
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
|
@ -104,7 +104,3 @@ _deck:
|
||||||
_columns:
|
_columns:
|
||||||
notifications: "Ilɣuyen"
|
notifications: "Ilɣuyen"
|
||||||
list: "Tibdarin"
|
list: "Tibdarin"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Imayl"
|
|
||||||
|
|
|
@ -77,8 +77,6 @@ _profile:
|
||||||
username: "ಬಳಕೆಹೆಸರು"
|
username: "ಬಳಕೆಹೆಸರು"
|
||||||
_notification:
|
_notification:
|
||||||
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||||
_types:
|
|
||||||
login: "ಪ್ರವೇಶ"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "ಉತ್ತರಿಸು"
|
reply: "ಉತ್ತರಿಸು"
|
||||||
_deck:
|
_deck:
|
||||||
|
|
|
@ -1,843 +0,0 @@
|
||||||
---
|
|
||||||
_lang_: "한국어(경상)"
|
|
||||||
headlineMisskey: "노트로 이언 네트워크"
|
|
||||||
introMisskey: "어서 오이소! Misskey넌 오픈소스 분산헹 마이크로 블로그 서비스입니다.\n‘노트’럴 맨걸어서 지검 일나넌 일얼 노누던가 내 이바구럴 남한데 서 보이소.📡\n‘리액션’ 기넝서 남으 노트에 억수로 빠리게 답할 수 잇십니다.👍\n새롭운 세게럴 탐험해 보입시다.🚀"
|
|
||||||
poweredByMisskeyDescription: "{name} 서버넌 오픈소스 플랫폼 <b>Misskey</b>으 서버 가운데 하나입니다."
|
|
||||||
monthAndDay: "{month}월 {day}일"
|
|
||||||
search: "찾기"
|
|
||||||
notifications: "알림"
|
|
||||||
username: "사용자 이럼"
|
|
||||||
password: "비밀번호"
|
|
||||||
forgotPassword: "비밀번호럴 잊엇뿟십니꺼?"
|
|
||||||
fetchingAsApObject: "연합서 찾아보고 잇어예"
|
|
||||||
ok: "예"
|
|
||||||
gotIt: "알것어예"
|
|
||||||
cancel: "아이예"
|
|
||||||
noThankYou: "뎃어예"
|
|
||||||
enterUsername: "사용자 이럼 서기"
|
|
||||||
renotedBy: "{user}님이 리노트햇어예"
|
|
||||||
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: "링크 복사하기"
|
|
||||||
copyLinkRenote: "리노트 링크 복사"
|
|
||||||
delete: "내삐리기"
|
|
||||||
deleteAndEdit: "내삐리고 새로 적기"
|
|
||||||
deleteAndEditConfirm: "요 노트럴 뭉캐고 새로 적십니꺼? 요 노트서 리액션하고 리노트, 답하기도 말캉 뭉캐집니다."
|
|
||||||
addToList: "리스트에 옇기"
|
|
||||||
addToAntenna: "안테나에 옇기"
|
|
||||||
sendMessage: "메시지 보내기"
|
|
||||||
copyRSS: "알에스에스 복사하기"
|
|
||||||
copyUsername: "사용자 이럼 복사하기"
|
|
||||||
copyUserId: "사용자 아이디 복사하기"
|
|
||||||
copyNoteId: "노트 아이디 복사하기"
|
|
||||||
copyFileId: "파일 아이디 복사하기"
|
|
||||||
copyFolderId: "폴더 아이디 복사하기"
|
|
||||||
copyProfileUrl: "프로필 주소 복사하기"
|
|
||||||
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: "네트워크나 브라우저 캐시 때문일 깁니다. 캐시럴 뭉캐던가 쪼매 잇다 새로 해 주이소."
|
|
||||||
serverIsDead: "서버가 대답얼 아이합니다. 쪼매 잇다 새로 해 주이소."
|
|
||||||
youShouldUpgradeClient: "요 하멘얼 볼라먼 새로 곤치던가 새 버전으 클라이언트럴 받아 서 보이소."
|
|
||||||
enterListName: "리스트 이럼 서기"
|
|
||||||
privacy: "개인 정보"
|
|
||||||
makeFollowManuallyApprove: "팔로잉얼 하나석 받아딜이기"
|
|
||||||
defaultNoteVisibility: "기본 공개 범위"
|
|
||||||
follow: "팔로우"
|
|
||||||
followRequest: "팔로우 요청하기"
|
|
||||||
followRequests: "팔로우 요청"
|
|
||||||
unfollow: "팔로우 무루기"
|
|
||||||
followRequestPending: "팔로우 수락 지둘림"
|
|
||||||
enterEmoji: "이모지 서기"
|
|
||||||
renote: "리노트"
|
|
||||||
unrenote: "리노트 무루기"
|
|
||||||
renoted: "리노트럴 햇십니다."
|
|
||||||
cantRenote: "요 걸언 리노트럴 몬 합니다."
|
|
||||||
cantReRenote: "리노트넌 지럴 리노트 몬 합니다."
|
|
||||||
quote: "따오기"
|
|
||||||
inChannelRenote: "채널 안 리노트"
|
|
||||||
inChannelQuote: "채널 안 따오기"
|
|
||||||
pinnedNote: "붙인 노트"
|
|
||||||
pinned: "프로필에 붙이기"
|
|
||||||
you: "나"
|
|
||||||
clickToShow: "누질라서 보기"
|
|
||||||
sensitive: "수ᇚ힛섭니다"
|
|
||||||
add: "옇기"
|
|
||||||
reaction: "반엉"
|
|
||||||
reactions: "반엉"
|
|
||||||
reactionSettingDescription2: "꺼시서 두고, 누질라서 뭉캐고, ‘+’럴 누질라서 옇십니다."
|
|
||||||
rememberNoteVisibility: "공개 범위럴 기억하기"
|
|
||||||
attachCancel: "붙임 빼기"
|
|
||||||
deleteFile: "파일 뭉캐기"
|
|
||||||
markAsSensitive: "수ᇚ힘 설정"
|
|
||||||
unmarkAsSensitive: "수ᇚ힘 무루기"
|
|
||||||
enterFileName: "파일 이럼 서기"
|
|
||||||
mute: "수ᇚ후기"
|
|
||||||
unmute: "수ᇚ훈 거 무루기"
|
|
||||||
renoteMute: "리노트 수ᇚ후기"
|
|
||||||
renoteUnmute: "리노트 수ᇚ훈 거 무루기"
|
|
||||||
block: "차단하기"
|
|
||||||
unblock: "차단 무루기"
|
|
||||||
suspend: "얼우기"
|
|
||||||
unsuspend: "얼우기 풀기"
|
|
||||||
blockConfirm: "차단합니꺼?"
|
|
||||||
unblockConfirm: "차단얼 무룹니꺼?"
|
|
||||||
suspendConfirm: "얼웁니꺼?"
|
|
||||||
unsuspendConfirm: "얼운 거 풉니꺼?"
|
|
||||||
selectList: "리스트 개리기"
|
|
||||||
editList: "리스트 적기"
|
|
||||||
selectChannel: "채널 개리기"
|
|
||||||
selectAntenna: "안테나 개리기"
|
|
||||||
editAntenna: "안테나 적기"
|
|
||||||
selectWidget: "위젯 개리기"
|
|
||||||
editWidgets: "위젯 적기"
|
|
||||||
editWidgetsExit: "고마 적기"
|
|
||||||
customEmojis: "사용자 지정 이모지"
|
|
||||||
emoji: "이모지"
|
|
||||||
emojis: "이모지"
|
|
||||||
emojiName: "이모지 이럼"
|
|
||||||
emojiUrl: "이모지 주소"
|
|
||||||
addEmoji: "이모지 옇기"
|
|
||||||
settingGuide: "개않언 설정"
|
|
||||||
cacheRemoteFiles: "웬겍 파일 캐시하기"
|
|
||||||
cacheRemoteFilesDescription: "요 설정얼 키모 웬겍 파일얼 요 서버으 스토리지에 캐시합니다. 미디어가 사게 비이지먼 서버으 스토리지럴 마이 섭니다. 웬겍 사용자가 얼매나 캐시럴 둘 긴가넌 고 옉할으 드라이브 크기 제한마중 다립니다. 요 제한얼 넘구모 엣날 파일버터 캐시서 뭉캐지서 링크가 뎁니다. 요 설정얼 꺼모 웬겍 파일언 첨버터 링크가 뎁니다. 이미지으 섬네일얼 맨걸던 사용자으 개인 정보럴 징키던 할라먼 default.yml서 proxyRemoteFiles럴 ture로 하입시다."
|
|
||||||
youCanCleanRemoteFilesCache: "파일 간리으 🗑️ 모냥얼 누질리모 캐시럴 말캉 뭉캘 수 잇십니다."
|
|
||||||
cacheRemoteSensitiveFiles: "웬겍으 수ᇚ힌 파일얼 캐시하기"
|
|
||||||
cacheRemoteSensitiveFilesDescription: "요 설정얼 꺼모 웬겍 수ᇚ힌 파일이 캐시하지 아이하고 바리 링크합니다."
|
|
||||||
flagAsBot: "자동 게정입니다"
|
|
||||||
flagAsBotDescription: "요 게정얼 프로그램서 설라먼 키야 합니다. 키모 다런 개발자가 반엉얼 끋어ᇝ이 데풀이하지 몬 하게 도아 줄 수 잇고 Misskey으 시스템서 자동 게정이 뎁니다."
|
|
||||||
flagAsCat: "애웅애웅애웅애웅!"
|
|
||||||
flagAsCatDescription: "애옹?"
|
|
||||||
flagShowTimelineReplies: "타임라인서 노트으 답하기 보기"
|
|
||||||
flagShowTimelineRepliesDescription: "키모 타임라인서 다런 사용자덜으 답하기도 봅니다."
|
|
||||||
autoAcceptFollowed: "팔로잉하넌 사용자으 팔로잉 요청 바리 받아딜이기"
|
|
||||||
addAccount: "게정 옇기"
|
|
||||||
reloadAccountsList: "게정 리스트으 정보 새로 바꾸기"
|
|
||||||
loginFailed: "로그인이 아이뎁니다."
|
|
||||||
showOnRemote: "웬겍서 보기"
|
|
||||||
general: "일반"
|
|
||||||
wallpaper: "벡지"
|
|
||||||
setWallpaper: "벡지 설정"
|
|
||||||
removeWallpaper: "벡지 뭉캐기"
|
|
||||||
searchWith: "찾기: {q}"
|
|
||||||
youHaveNoLists: "리스트가 어ᇝ십니다"
|
|
||||||
followConfirm: "{name}님얼 팔로잉합니꺼?"
|
|
||||||
proxyAccount: "프락시 게정"
|
|
||||||
proxyAccountDescription: "프락시 게정언 턱벨한 조겐서 웬겍 팔로잉얼 하넌 게정입니다. 사용자가 웬겍 사용자럴 리스트에 옇얼 때 리스트에 옇언 사용자럴 누도 팔로잉 아이하모 할동이 서버로 아이 오니께 요 게정이 아인 프락시 게정얼 팔로잉하게 합니다."
|
|
||||||
host: "호스트 이럼"
|
|
||||||
selectUser: "사용자 개리기"
|
|
||||||
recipient: "받넌 사람"
|
|
||||||
annotation: "주석"
|
|
||||||
federation: "옌합"
|
|
||||||
instances: "서버"
|
|
||||||
registeredAt: "첫 발겐"
|
|
||||||
latestRequestReceivedAt: "막죽에 받언 요청"
|
|
||||||
latestStatus: "막죽 상태"
|
|
||||||
storageUsage: "스토리지 사용량"
|
|
||||||
charts: "차트"
|
|
||||||
perHour: "한 시간마중"
|
|
||||||
perDay: "하리마중"
|
|
||||||
stopActivityDelivery: "할동 고마 보내기"
|
|
||||||
blockThisInstance: "요 서버 차단하기"
|
|
||||||
silenceThisInstance: "서버 수ᇚ후기"
|
|
||||||
operations: "동작"
|
|
||||||
software: "소프트웨어"
|
|
||||||
version: "버전"
|
|
||||||
metadata: "메타데이터"
|
|
||||||
withNFiles: "파일 {n}개"
|
|
||||||
monitor: "모니터"
|
|
||||||
jobQueue: "작업 대기옐"
|
|
||||||
cpuAndMemory: "시피유하고 메모리"
|
|
||||||
network: "네트워크"
|
|
||||||
disk: "디스크"
|
|
||||||
instanceInfo: "서버 정보"
|
|
||||||
statistics: "통게"
|
|
||||||
clearQueue: "대기옐 비우기"
|
|
||||||
clearQueueConfirmTitle: "대기옐얼 비웁니꺼?"
|
|
||||||
clearQueueConfirmText: "대기옐에 잇넌 걸얼 아이 보냅니다. 흐이 요 동작언 할 필요가 어ᇝ십니다."
|
|
||||||
clearCachedFiles: "캐시 비우기"
|
|
||||||
clearCachedFilesConfirm: "캐시한 웬겍 파일얼 말캉 뭉캡니꺼?"
|
|
||||||
blockedInstances: "차단한 서버"
|
|
||||||
blockedInstancesDescription: "차단할라넌 서버으 호스트럴 줄 바꿈해서로 비이 줍니다. 차단한 서버넌 요 서버하고 교류 몬 합니다."
|
|
||||||
silencedInstances: "수ᇚ훈 서버"
|
|
||||||
silencedInstancesDescription: "수ᇚ훌라넌 서버으 호스트럴 줄 바꿈해서로 비이 줍니다. 수ᇚ훈 서버으 게정언 말캉 ‘수ᇚ후기’가 데서 팔로잉 요청만 데고 팔로워가 아인 로컬 게정서 멘션얼 몬 합니다. 차단한 서버넌 상간 어ᇝ십니다."
|
|
||||||
muteAndBlock: "수ᇚ훔하고 차단"
|
|
||||||
mutedUsers: "수ᇚ훈 사용자"
|
|
||||||
blockedUsers: "차단한 사용자"
|
|
||||||
noUsers: "사용자가 어ᇝ십니다"
|
|
||||||
editProfile: "프로필 적기"
|
|
||||||
noteDeleteConfirm: "요 노트럴 뭉캡니꺼?"
|
|
||||||
pinLimitExceeded: "더 몬 붙입니다"
|
|
||||||
intro: "Misskey럴 다 깔앗십니다! 간리자 게정얼 맨걸어 보입시다."
|
|
||||||
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: "사용자 이럼이나 사용자 아이디"
|
|
||||||
noSuchUser: "사용자럴 몬 찾앗십니다"
|
|
||||||
lookup: "찾아보기"
|
|
||||||
announcements: "공지 걸"
|
|
||||||
imageUrl: "이미지 주소"
|
|
||||||
remove: "내삐리기"
|
|
||||||
removed: "뭉캣십니다"
|
|
||||||
removeAreYouSure: "‘{x}’(얼)럴 뭉캡니꺼?"
|
|
||||||
deleteAreYouSure: "‘{x}’(얼)럴 뭉캡니꺼?"
|
|
||||||
resetAreYouSure: "아시로 데돌립니꺼?"
|
|
||||||
areYouSure: "갠찮십니꺼?"
|
|
||||||
saved: "저장햇십니다"
|
|
||||||
messaging: "대화"
|
|
||||||
upload: "올리기"
|
|
||||||
keepOriginalUploading: "온본 두기"
|
|
||||||
keepOriginalUploadingDescription: "이미지럴 올릴 때 온본얼 고대로 둡니다. 꺼모 올릴 때 브라우저서 웹 공개 이미지럴 맨겁니다."
|
|
||||||
fromDrive: "드라이브서"
|
|
||||||
fromUrl: "주소서"
|
|
||||||
uploadFromUrl: "주소 올리기"
|
|
||||||
uploadFromUrlDescription: "올리기할라넌 파일으 주소"
|
|
||||||
uploadFromUrlRequested: "올리기럴 요청햇십니다"
|
|
||||||
uploadFromUrlMayTakeTime: "올리기가 껕날라먼 시간이 쪼매 걸릴 깁니다."
|
|
||||||
explore: "살펴보기"
|
|
||||||
messageRead: "이럿어예"
|
|
||||||
noMoreHistory: "요카마 옛날 기록이 어ᇝ십니다"
|
|
||||||
startMessaging: "대화하기"
|
|
||||||
nUsersRead: "{n}멩이 이럿십니다"
|
|
||||||
agreeTo: "{0}에 동이하기"
|
|
||||||
agree: "동이합니다"
|
|
||||||
agreeBelow: "밑으 내용에 동이합니다"
|
|
||||||
basicNotesBeforeCreateAccount: "주이할 내용"
|
|
||||||
termsOfService: "이용 약간"
|
|
||||||
start: "시작하기"
|
|
||||||
home: "덜머리"
|
|
||||||
remoteUserCaution: "웬겍 사용자넌 정보가 학실하지 아이할 수 잇십니다."
|
|
||||||
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: "폴더 뭉캐기"
|
|
||||||
folder: "폴더"
|
|
||||||
addFile: "파일 옇기"
|
|
||||||
emptyDrive: "드라이브가 비잇십니다"
|
|
||||||
emptyFolder: "폴더가 비잇십니다"
|
|
||||||
unableToDelete: "몬 뭉캡니다"
|
|
||||||
inputNewFileName: "새 파일 이럼얼 서 보이소"
|
|
||||||
inputNewDescription: "새 설멩얼 서 보이소"
|
|
||||||
inputNewFolderName: "새 폴더 이럼얼 서 보이소"
|
|
||||||
circularReferenceFolder: "엚길 폴더으 아래 폴더입니다."
|
|
||||||
hasChildFilesOrFolders: "요 폴더넌 아이 비잇어니께 몬 뭉캡니다."
|
|
||||||
copyUrl: "주소 복사하기"
|
|
||||||
rename: "이럼 바꾸기"
|
|
||||||
avatar: "아바타"
|
|
||||||
banner: "배너"
|
|
||||||
displayOfSensitiveMedia: "수ᇚ힌 옝상물 보기"
|
|
||||||
whenServerDisconnected: "서버하고 옌겔이 껂기모"
|
|
||||||
disconnectedFromServer: "서버하고 옌겔이 껂깃십니다"
|
|
||||||
reload: "새로곤침"
|
|
||||||
doNothing: "무시하기"
|
|
||||||
reloadConfirm: "새로곤침합니꺼?"
|
|
||||||
watch: "간심 갖기"
|
|
||||||
unwatch: "간심 고마 갖기"
|
|
||||||
accept: "받기"
|
|
||||||
reject: "아이 받기"
|
|
||||||
normal: "일반"
|
|
||||||
instanceName: "서버 이럼"
|
|
||||||
instanceDescription: "서버 소개"
|
|
||||||
maintainerName: "간리자 이럼"
|
|
||||||
maintainerEmail: "간리자 전자우펜"
|
|
||||||
tosUrl: "이용 약간 주소"
|
|
||||||
thisYear: "올개"
|
|
||||||
thisMonth: "요달"
|
|
||||||
today: "오올"
|
|
||||||
dayX: "{day}일"
|
|
||||||
monthX: "{month}월"
|
|
||||||
yearX: "{year}년"
|
|
||||||
pages: "바닥"
|
|
||||||
integration: "옌겔"
|
|
||||||
connectService: "옌겔하기"
|
|
||||||
disconnectService: "껂기"
|
|
||||||
enableLocalTimeline: "로컬 타임라인 키기"
|
|
||||||
enableGlobalTimeline: "글로벌 타임라인 키기"
|
|
||||||
disablingTimelinesInfo: "요 타임라인얼 꺼도 간리자하고 중재자넌 고대로 설 수 잇십니다."
|
|
||||||
registration: "맨걸기"
|
|
||||||
enableRegistration: "누라도 새로 맨걸 수 잇거로 하기"
|
|
||||||
invite: "초대하기"
|
|
||||||
driveCapacityPerLocalAccount: "로컬 사용자 하나마중 드라이브 커기"
|
|
||||||
driveCapacityPerRemoteAccount: "웬겍 사용자 하나마중 드라이브 커기"
|
|
||||||
inMb: "메가바이트 단이"
|
|
||||||
bannerUrl: "배너 이미지 주소"
|
|
||||||
backgroundImageUrl: "배겡 이미지 주소"
|
|
||||||
basicInfo: "기본 정보"
|
|
||||||
pinnedUsers: "붙인 사용자"
|
|
||||||
pinnedUsersDescription: "‘살펴보기’서 붙일라넌 사용자럴 줄 바꿈해서로 적십니다."
|
|
||||||
pinnedPages: "붙인 바닥"
|
|
||||||
pinnedPagesDescription: "서버으 대문서 붙일라넌 바닥으 겡로럴 줄 바꿈해서로 적십니다."
|
|
||||||
pinnedClipId: "붙일 클립으 아이디"
|
|
||||||
pinnedNotes: "붙인 노트"
|
|
||||||
hcaptcha: "에이치캡차"
|
|
||||||
enableHcaptcha: "에이치캡차 키기"
|
|
||||||
hcaptchaSiteKey: "사이트키"
|
|
||||||
hcaptchaSecretKey: "시크릿키"
|
|
||||||
mcaptchaSiteKey: "사이트키"
|
|
||||||
mcaptchaSecretKey: "시크릿키"
|
|
||||||
recaptcha: "리캡차"
|
|
||||||
enableRecaptcha: "리캡차 키기"
|
|
||||||
recaptchaSiteKey: "사이트키"
|
|
||||||
recaptchaSecretKey: "시크릿키"
|
|
||||||
turnstile: "턴스타일"
|
|
||||||
enableTurnstile: "턴스타일 키기"
|
|
||||||
turnstileSiteKey: "사이트키"
|
|
||||||
turnstileSecretKey: "시크릿키"
|
|
||||||
avoidMultiCaptchaConfirm: "오만 캡차럴 서모 간섭이 잇얼 깁니다. 다린 캡차를 껍니꺼? ‘아이예’럴 누질리모 오만 캡차럴 키 둘 수도 잇십니다."
|
|
||||||
antennas: "안테나"
|
|
||||||
manageAntennas: "안테나 간리"
|
|
||||||
name: "이럼"
|
|
||||||
antennaSource: "받얼 소스"
|
|
||||||
antennaKeywords: "받얼 검색어"
|
|
||||||
antennaExcludeKeywords: "수ᇚ훌 검색어"
|
|
||||||
antennaKeywordsDescription: "띠어서기럴 하모 ‘거라고’가 데고 줄 바꿈얼 하모 ‘아이먼’이 뎁니다"
|
|
||||||
notifyAntenna: "새 노트럴 알리기"
|
|
||||||
withFileAntenna: "파일이 붙언 노트마"
|
|
||||||
enableServiceworker: "브라우저서 알림 포시럴 키기"
|
|
||||||
antennaUsersDescription: "사용자 이럼얼 줄 바꿈해서로 섭니다"
|
|
||||||
caseSensitive: "대소문자럴 구벨하기"
|
|
||||||
withReplies: "답하기도 옇기"
|
|
||||||
connectedTo: "요 게정하고 옌겔데어 잇십니다"
|
|
||||||
notesAndReplies: "걸하고 답걸"
|
|
||||||
withFiles: "파일에 붙이기"
|
|
||||||
silence: "수ᇚ후기"
|
|
||||||
silenceConfirm: "수ᇚ훕니꺼?"
|
|
||||||
unsilence: "수ᇚ후기 어ᇝ애기"
|
|
||||||
unsilenceConfirm: "수ᇚ후기럴 어ᇝ앱니꺼?"
|
|
||||||
popularUsers: "소문난 사용자"
|
|
||||||
recentlyUpdatedUsers: "얼마 전에 걸 선 사용자"
|
|
||||||
recentlyRegisteredUsers: "얼마 전에 맨건 사용자"
|
|
||||||
recentlyDiscoveredUsers: "얼마 전에 찾언 사용자"
|
|
||||||
exploreUsersCount: "사용자 {count}멩이 잇십니다."
|
|
||||||
exploreFediverse: "옌합우주 탐험하기"
|
|
||||||
popularTags: "소문난 태그"
|
|
||||||
userList: "리스트"
|
|
||||||
about: "정보"
|
|
||||||
aboutMisskey: "Misskey넌예"
|
|
||||||
administrator: "간리자"
|
|
||||||
token: "학인 기호"
|
|
||||||
2fa: "두 단게 정멩"
|
|
||||||
setupOf2fa: "두 단게 정멩 설정"
|
|
||||||
totp: "정멩 앱"
|
|
||||||
totpDescription: "정멩 앱서 단헤용 비밀번호 서기"
|
|
||||||
moderator: "중재자"
|
|
||||||
moderation: "중재"
|
|
||||||
moderationNote: "중재 노트"
|
|
||||||
addModerationNote: "중재 노트 옇기"
|
|
||||||
moderationLogs: "중재 일지"
|
|
||||||
nUsersMentioned: "{n}멩이 이바구하고 잇어예"
|
|
||||||
securityKeyAndPasskey: "보안키·패스키"
|
|
||||||
securityKey: "보안키"
|
|
||||||
lastUsed: "마지막 쓰임"
|
|
||||||
lastUsedAt: "마지막 쓰임: {t}"
|
|
||||||
unregister: "맨걸기 무루기"
|
|
||||||
passwordLessLogin: "비밀번호 어ᇝ이 로그인"
|
|
||||||
passwordLessLoginDescription: "비밀번호 어ᇝ이 보안 키나 패스 키만 서서 로그인합니다."
|
|
||||||
resetPassword: "비밀번호 재설정"
|
|
||||||
newPasswordIs: "새 비밀번호넌 ‘{password}’입니다"
|
|
||||||
reduceUiAnimation: "화면 움직임 효과들을 수ᇚ후기"
|
|
||||||
share: "노누기"
|
|
||||||
notFound: "몬 찾앗십니다"
|
|
||||||
notFoundDescription: "선 주소에 맞넌 페이지가 어ᇝ십니다."
|
|
||||||
uploadFolder: "기본 올리기 위치"
|
|
||||||
markAsReadAllNotifications: "모던 알림얼 읽엄 포시"
|
|
||||||
markAsReadAllUnreadNotes: "모던 걸얼 읽엄 포시"
|
|
||||||
markAsReadAllTalkMessages: "모던 대화 읽엄 포시"
|
|
||||||
help: "도움말"
|
|
||||||
inputMessageHere: "옇다 메시지럴 서이소"
|
|
||||||
close: "꺼기"
|
|
||||||
invites: "초대하기"
|
|
||||||
members: "구성원"
|
|
||||||
transfer: "넘구기"
|
|
||||||
title: "제목"
|
|
||||||
text: "걸"
|
|
||||||
enable: "키기"
|
|
||||||
next: "다엄"
|
|
||||||
retype: "다시 서기"
|
|
||||||
noteOf: "{user}님으 노트"
|
|
||||||
quoteAttached: "따옴"
|
|
||||||
quoteQuestion: "따와가 작성하겠십니까?"
|
|
||||||
noMessagesYet: "아직 대화가 없십니다"
|
|
||||||
newMessageExists: "새 메시지가 있십니다"
|
|
||||||
onlyOneFileCanBeAttached: "메시지엔 파일 하나까제밖에 몬 넣십니다"
|
|
||||||
invitations: "초대하기"
|
|
||||||
invitationCode: "초대장"
|
|
||||||
checking: "학인하고 잇십니다"
|
|
||||||
tooShort: "억수로 짜립니다"
|
|
||||||
tooLong: "억수로 집니다"
|
|
||||||
passwordMatched: "맞십니다"
|
|
||||||
passwordNotMatched: "안 맞십니다"
|
|
||||||
signinWith: "{x} 서 로그인"
|
|
||||||
signinFailed: "로그인 몬 했십니다. 고 이름이랑 비밀번호 제대로 썼는가 확인해 주이소."
|
|
||||||
or: "아니면"
|
|
||||||
language: "언어"
|
|
||||||
uiLanguage: "UI 표시 언어"
|
|
||||||
aboutX: "{x}에 대해서"
|
|
||||||
emojiStyle: "이모지 모양"
|
|
||||||
native: "기본"
|
|
||||||
showNoteActionsOnlyHover: "마우스 올맀을 때만 노트 액션 버턴 보이기"
|
|
||||||
noHistory: "기록이 없십니다"
|
|
||||||
signinHistory: "로그인 기록"
|
|
||||||
enableAdvancedMfm: "복잡한 MFM 키기"
|
|
||||||
enableAnimatedMfm: "정신사나운 MFM 키기"
|
|
||||||
doing: "잠만예"
|
|
||||||
category: "카테고리"
|
|
||||||
tags: "태그"
|
|
||||||
docSource: "요 문서의 원본"
|
|
||||||
createAccount: "게정 맨걸기"
|
|
||||||
existingAccount: "원래 게정"
|
|
||||||
regenerate: "엎고 다시 맨걸기"
|
|
||||||
fontSize: "글자 크기"
|
|
||||||
mediaListWithOneImageAppearance: "사진 하나짜리 미디어 목록의 높이"
|
|
||||||
limitTo: "{x}로 제한"
|
|
||||||
noFollowRequests: "지둘리는 팔로우 요청이 없십니다"
|
|
||||||
openImageInNewTab: "새 탭서 사진 열기"
|
|
||||||
dashboard: "대시보드"
|
|
||||||
local: "로컬"
|
|
||||||
remote: "웬겍"
|
|
||||||
total: "합계"
|
|
||||||
weekOverWeekChanges: "저번주보다"
|
|
||||||
dayOverDayChanges: "어제보다"
|
|
||||||
appearance: "모냥"
|
|
||||||
clientSettings: "클라이언트 설정"
|
|
||||||
accountSettings: "게정 설정"
|
|
||||||
promotion: "선전"
|
|
||||||
promote: "선전하기"
|
|
||||||
numberOfDays: "며칠동안"
|
|
||||||
hideThisNote: "요 노트를 수ᇚ후기"
|
|
||||||
showFeaturedNotesInTimeline: "타임라인에다 추천 노트 보이기"
|
|
||||||
objectStorage: "오브젝트 스토리지"
|
|
||||||
useObjectStorage: "오브젝트 스토리지 키기"
|
|
||||||
objectStorageBaseUrl: "Base URL"
|
|
||||||
objectStorageBaseUrlDesc: "오브젝트 (미디어) 참조 링크 만들 때 쓰는 URL임다. CDN 내지 프락시를 쓴다 카멘은 그 URL을 갖다 늫고, 아이면 써먹을 서비스네 가이드를 봐봐가 공개적으로 접근할 수 있는 주소를 여 넣어 주이소. 그니께, 내가 AWS S3을 쓴다 카면은 'https://<bucket>.s3.amazonaws.com', GCS를 쓴다 카면 'https://storage.googleapis.com/<bucket>' 처럼 쓰믄 되입니더."
|
|
||||||
objectStorageBucket: "Bucket"
|
|
||||||
objectStorageBucketDesc: "설 서비스으 버킷 이럼얼 서 주이소."
|
|
||||||
objectStoragePrefix: "Prefix"
|
|
||||||
objectStoragePrefixDesc: "요 Prefix 디렉토리 안에다가 파일이 들어감다."
|
|
||||||
objectStorageEndpoint: "Endpoint"
|
|
||||||
objectStorageEndpointDesc: "AWS S3넌 비아 두고 다런 것언 거 서비스으 엔드포인트럴 서 주이소. ‘<host>’나 ‘<host>:<port>’맨치로 섭니다."
|
|
||||||
objectStorageRegion: "Region"
|
|
||||||
objectStorageRegionDesc: "‘xx-east-1’맨치로 리전 이럼얼 서 주이소. 설 서비스에 리전 개넴이 어ᇝ어먼 ‘us-east-1’라고 해 두이소. 에이더블유에스 설정 파일이나 환겡 벤수가 이ᇇ어면 비아 두이소."
|
|
||||||
objectStorageUseSSL: "SSL 쓰기"
|
|
||||||
objectStorageUseSSLDesc: "API 호출할 때 HTTPS 안 쓸거면은 꺼 두이소"
|
|
||||||
objectStorageUseProxy: "연결에 프락시 사용"
|
|
||||||
objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출에 프락시 안 쓸 거면 꺼 두이소"
|
|
||||||
objectStorageSetPublicRead: "업로드할 때 'public-read' 설정하기"
|
|
||||||
s3ForcePathStyleDesc: "s3ForcePathStyle을 키면, 바께쓰 이름을 URL의 호스트명 말고 경로의 일부로써 취급합니다. 셀프 호스트 Minio 같은 걸 굴릴라믄 켜놔야 될 수도 있십니다."
|
|
||||||
serverLogs: "서버 로그"
|
|
||||||
deleteAll: "말캉 뭉캐기"
|
|
||||||
showFixedPostForm: "타임라인 우에 글 작성 칸 박기"
|
|
||||||
showFixedPostFormInChannel: "채널 타임라인 우에 글 작성 칸 박기"
|
|
||||||
withRepliesByDefaultForNewlyFollowed: "팔로우 할 때 기본적으로 답걸도 타임라인에 나오게 하기"
|
|
||||||
newNoteRecived: "새 노트 있어예"
|
|
||||||
sounds: "소리"
|
|
||||||
sound: "소리"
|
|
||||||
listen: "듣기"
|
|
||||||
none: "어ᇝ엄"
|
|
||||||
showInPage: "바닥서 보기"
|
|
||||||
popout: "새 창 열기"
|
|
||||||
volume: "음량"
|
|
||||||
masterVolume: "대빵 음량"
|
|
||||||
notUseSound: "음소거하기"
|
|
||||||
useSoundOnlyWhenActive: "Misskey가 활성화되어 있을 때만 소리 내기"
|
|
||||||
details: "자세히"
|
|
||||||
chooseEmoji: "이모지 개리기"
|
|
||||||
unableToProcess: "작업 다 몬 했십니다"
|
|
||||||
recentUsed: "최근 쓴 놈"
|
|
||||||
install: "설치"
|
|
||||||
uninstall: "삭제"
|
|
||||||
installedApps: "설치된 애플리케이션"
|
|
||||||
nothing: "어ᇝ어예"
|
|
||||||
installedDate: "설치한 날"
|
|
||||||
lastUsedDate: "마지막 사용"
|
|
||||||
state: "상태"
|
|
||||||
sort: "정렬하기"
|
|
||||||
ascendingOrder: "작은 순"
|
|
||||||
descendingOrder: "큰 순"
|
|
||||||
scratchpad: "스크래치 패드"
|
|
||||||
scratchpadDescription: "스크래치 패드는 AiScript를 끼적거리는 창입니더. Misskey랑 갖다 이리저리 상호작용하는 코드를 서가 굴리멘은 그 결과도 바로 확인할 수 있십니다."
|
|
||||||
output: "출력"
|
|
||||||
script: "스크립트"
|
|
||||||
disablePagesScript: "온갖 바닥서 AiScript를 쓰지 않음"
|
|
||||||
updateRemoteUser: "원겍 사용자 근황 알아오기"
|
|
||||||
unsetUserAvatar: "아바타 치우기"
|
|
||||||
unsetUserAvatarConfirm: "아바타 갖다 치울까예?"
|
|
||||||
unsetUserBanner: "배너 치우기"
|
|
||||||
unsetUserBannerConfirm: "배너 갖다 치울까예?"
|
|
||||||
deleteAllFiles: "파일 말캉 뭉캐기"
|
|
||||||
deleteAllFilesConfirm: "파일을 싸그리 다 뭉캐삐릴까예?"
|
|
||||||
removeAllFollowing: "팔로잉 말캉 무루기"
|
|
||||||
removeAllFollowingDescription: "{host} 서버랑 걸어놓은 모든 팔로잉을 무룹니다. 고 서버가 아예 없어지삐맀든가, 그런 경우에 하이소."
|
|
||||||
userSuspended: "요 게정은... 얼어 있십니다."
|
|
||||||
userSilenced: "요 게정은... 수ᇚ혀 있십니다."
|
|
||||||
relays: "릴레이"
|
|
||||||
addRelay: "릴레이 옇기"
|
|
||||||
addedRelays: "옇은 릴레이"
|
|
||||||
deletedNote: "뭉캔 걸"
|
|
||||||
enableInfiniteScroll: "알아서 더 보기"
|
|
||||||
useCw: "내용 수ᇚ후기"
|
|
||||||
description: "설멩"
|
|
||||||
describeFile: "캡션 옇기"
|
|
||||||
enterFileDescription: "캡션 서기"
|
|
||||||
author: "맨던 사람"
|
|
||||||
manage: "간리"
|
|
||||||
large: "커게"
|
|
||||||
medium: "엔갆게"
|
|
||||||
small: "쪼맪게"
|
|
||||||
emailServer: "전자우펜 서버"
|
|
||||||
email: "전자우펜"
|
|
||||||
emailAddress: "전자우펜 주소"
|
|
||||||
smtpHost: "호스트 이럼"
|
|
||||||
smtpPort: "포트"
|
|
||||||
smtpUser: "사용자 이럼"
|
|
||||||
smtpPass: "비밀번호"
|
|
||||||
display: "보기"
|
|
||||||
create: "맨걸기"
|
|
||||||
abuseReports: "신고하기"
|
|
||||||
reportAbuse: "신고하기"
|
|
||||||
reportAbuseRenote: "리노트 신고하기"
|
|
||||||
reportAbuseOf: "{name}님얼 신고하기"
|
|
||||||
reporter: "신고한 사람"
|
|
||||||
reporteeOrigin: "신고덴 사람"
|
|
||||||
reporterOrigin: "신고한 곳"
|
|
||||||
waitingFor: "{x}(얼)럴 지달리고 잇십니다"
|
|
||||||
random: "무작이"
|
|
||||||
system: "시스템"
|
|
||||||
clip: "클립 맨걸기"
|
|
||||||
createNew: "새로 맨걸기"
|
|
||||||
notesCount: "노트 수"
|
|
||||||
renotesCount: "리노트한 수"
|
|
||||||
renotedCount: "리노트덴 수"
|
|
||||||
followingCount: "팔로우 수"
|
|
||||||
followersCount: "팔로워 수"
|
|
||||||
noteFavoritesCount: "질겨찾기한 노트 수"
|
|
||||||
clips: "클립 맨걸기"
|
|
||||||
clearCache: "캐시 비우기"
|
|
||||||
nUsers: "{n} 사용자"
|
|
||||||
typingUsers: "{users} 님이 서고 잇어예"
|
|
||||||
unlikeConfirm: "좋네예럴 무룹니꺼?"
|
|
||||||
info: "정보"
|
|
||||||
selectAccount: "계정 개리기"
|
|
||||||
user: "사용자"
|
|
||||||
administration: "간리"
|
|
||||||
middle: "엔갆게"
|
|
||||||
translatedFrom: "{x}서 번옉"
|
|
||||||
on: "킴"
|
|
||||||
off: "껌"
|
|
||||||
hide: "수ᇚ후기"
|
|
||||||
clickToFinishEmailVerification: "[{ok}]럴 누질라서 전자우펜 정멩얼 껕내이소."
|
|
||||||
searchByGoogle: "찾기"
|
|
||||||
tenMinutes: "십 분"
|
|
||||||
oneHour: "한 시간"
|
|
||||||
oneDay: "하리"
|
|
||||||
oneWeek: "한 주"
|
|
||||||
oneMonth: "한 달"
|
|
||||||
file: "파일"
|
|
||||||
typeToConfirm: "게속할라먼 {x}럴 누질라 주이소"
|
|
||||||
pleaseSelect: "개리 주이소"
|
|
||||||
remoteOnly: "웬겍만"
|
|
||||||
tools: "도구"
|
|
||||||
like: "좋네예!"
|
|
||||||
unlike: "좋네예 무루기"
|
|
||||||
numberOfLikes: "좋네예 수"
|
|
||||||
show: "보기"
|
|
||||||
roles: "옉할"
|
|
||||||
role: "옉할"
|
|
||||||
noRole: "옉할이 어ᇝ십니다"
|
|
||||||
thisPostMayBeAnnoyingCancel: "아이예"
|
|
||||||
likeOnly: "좋네예마"
|
|
||||||
hiddenTags: "수ᇚ훈 해시태그"
|
|
||||||
myClips: "내 클립"
|
|
||||||
preservedUsernames: "예약 사용자 이럼"
|
|
||||||
specifyUser: "사용자 지정"
|
|
||||||
icon: "아바타"
|
|
||||||
replies: "답하기"
|
|
||||||
renotes: "리노트"
|
|
||||||
attach: "옇기"
|
|
||||||
surrender: "아이예"
|
|
||||||
_delivery:
|
|
||||||
stop: "고만 보내예"
|
|
||||||
_type:
|
|
||||||
none: "보내고 잇어예"
|
|
||||||
_initialAccountSetting:
|
|
||||||
startTutorial: "길라잡이 하기"
|
|
||||||
_initialTutorial:
|
|
||||||
launchTutorial: "길라잡이 보기"
|
|
||||||
title: "길라잡이"
|
|
||||||
skipAreYouSure: "길라잡이럴 껕냅니까?"
|
|
||||||
_landing:
|
|
||||||
title: "길라잡이에 어서 오이소"
|
|
||||||
_done:
|
|
||||||
title: "길라잡이가 껕낫십니다!🎉"
|
|
||||||
_achievements:
|
|
||||||
_types:
|
|
||||||
_notes1:
|
|
||||||
description: "첫 노트럴 섯어예"
|
|
||||||
_notes10:
|
|
||||||
description: "노트럴 10번 섰어예"
|
|
||||||
_notes100:
|
|
||||||
description: "노트럴 100번 섰어예"
|
|
||||||
_notes500:
|
|
||||||
description: "노트럴 500번 섰어예"
|
|
||||||
_notes1000:
|
|
||||||
description: "노트럴 1,000번 섰어예"
|
|
||||||
_notes5000:
|
|
||||||
description: "노트럴 5,000번 섰어예"
|
|
||||||
_notes10000:
|
|
||||||
description: "노트럴 10,000번 섰어예"
|
|
||||||
_notes20000:
|
|
||||||
description: "노트럴 20,000번 섰어예"
|
|
||||||
_notes30000:
|
|
||||||
description: "노트럴 30,000번 섰어예"
|
|
||||||
_notes40000:
|
|
||||||
description: "노트럴 40,000번 섰어예"
|
|
||||||
_notes50000:
|
|
||||||
description: "노트럴 50,000번 섰어예"
|
|
||||||
_notes60000:
|
|
||||||
description: "노트럴 60,000번 섰어예"
|
|
||||||
_notes70000:
|
|
||||||
description: "노트럴 70,000번 섰어예"
|
|
||||||
_notes80000:
|
|
||||||
description: "노트럴 80,000번 섰어예"
|
|
||||||
_notes90000:
|
|
||||||
description: "노트럴 90,000번 섰어예"
|
|
||||||
_notes100000:
|
|
||||||
description: "노트럴 100,000번 섰어예"
|
|
||||||
_noteClipped1:
|
|
||||||
description: "첫 노트럴 클립햇어예"
|
|
||||||
_noteFavorited1:
|
|
||||||
description: "첫 노트럴 질겨찾기에 담앗어예"
|
|
||||||
_myNoteFavorited1:
|
|
||||||
description: "다런 사람이 내 노트럴 질겨찾기에 담앗십니다"
|
|
||||||
_iLoveMisskey:
|
|
||||||
description: "“I ❤ #Misskey”럴 섰어예"
|
|
||||||
_postedAt0min0sec:
|
|
||||||
description: "0분 0초에 노트를 섰어예"
|
|
||||||
_tutorialCompleted:
|
|
||||||
description: "길라잡이럴 껕냇십니다"
|
|
||||||
_role:
|
|
||||||
displayOrder: "보기 순서"
|
|
||||||
_priority:
|
|
||||||
middle: "엔갆게"
|
|
||||||
_options:
|
|
||||||
canHideAds: "강고 수ᇚ후기"
|
|
||||||
_condition:
|
|
||||||
isRemote: "웬겍 사용자"
|
|
||||||
isCat: "갱이 사용자"
|
|
||||||
isBot: "자동 사용자"
|
|
||||||
_gallery:
|
|
||||||
my: "내 걸"
|
|
||||||
liked: "좋네예한 걸"
|
|
||||||
like: "좋네예!"
|
|
||||||
unlike: "좋네예 무루기"
|
|
||||||
_email:
|
|
||||||
_follow:
|
|
||||||
title: "새 팔로워가 잇십니다"
|
|
||||||
_serverDisconnectedBehavior:
|
|
||||||
reload: "알아서 새로곤침"
|
|
||||||
_channel:
|
|
||||||
removeBanner: "배너 뭉캐기"
|
|
||||||
usersCount: "{n}명 참여"
|
|
||||||
notesCount: "노트 {n}개"
|
|
||||||
_menuDisplay:
|
|
||||||
hide: "수ᇚ후기"
|
|
||||||
_theme:
|
|
||||||
description: "설멩"
|
|
||||||
keys:
|
|
||||||
mention: "멘션"
|
|
||||||
_sfx:
|
|
||||||
note: "새 노트"
|
|
||||||
notification: "알림"
|
|
||||||
reaction: "리액션 개리기"
|
|
||||||
_2fa:
|
|
||||||
step3Title: "학인 기호럴 서기"
|
|
||||||
renewTOTPCancel: "뎃어예"
|
|
||||||
_permissions:
|
|
||||||
"read:favorites": "질겨찾기 보기"
|
|
||||||
"write:favorites": "질겨찾기 곤치기"
|
|
||||||
_widgets:
|
|
||||||
profile: "프로필"
|
|
||||||
instanceInfo: "서버 정보"
|
|
||||||
notifications: "알림"
|
|
||||||
timeline: "타임라인"
|
|
||||||
activity: "할동"
|
|
||||||
federation: "옌합"
|
|
||||||
jobQueue: "작업 대기옐"
|
|
||||||
_userList:
|
|
||||||
chooseList: "리스트 개리기"
|
|
||||||
_cw:
|
|
||||||
hide: "수ᇚ후기"
|
|
||||||
show: "더 볼래예"
|
|
||||||
chars: "걸자 {count}개"
|
|
||||||
files: "파일 {count}개"
|
|
||||||
_visibility:
|
|
||||||
home: "덜머리"
|
|
||||||
followers: "팔로워"
|
|
||||||
_postForm:
|
|
||||||
_placeholders:
|
|
||||||
e: "옇다 서 주이소"
|
|
||||||
_profile:
|
|
||||||
name: "이럼"
|
|
||||||
username: "사용자 이럼"
|
|
||||||
_exportOrImport:
|
|
||||||
favoritedNotes: "질겨찾기한 노트"
|
|
||||||
clips: "클립 맨걸기"
|
|
||||||
followingList: "팔로잉"
|
|
||||||
muteList: "수ᇚ후기"
|
|
||||||
blockingList: "차단하기"
|
|
||||||
userLists: "리스트"
|
|
||||||
_charts:
|
|
||||||
federation: "옌합"
|
|
||||||
_timelines:
|
|
||||||
home: "덜머리"
|
|
||||||
_play:
|
|
||||||
my: "내 플레이"
|
|
||||||
script: "스크립트"
|
|
||||||
summary: "설멩"
|
|
||||||
_pages:
|
|
||||||
like: "좋네예"
|
|
||||||
unlike: "좋네예 무루기"
|
|
||||||
my: "내 페이지"
|
|
||||||
blocks:
|
|
||||||
image: "이미지"
|
|
||||||
_note:
|
|
||||||
id: "노트 아이디"
|
|
||||||
_notification:
|
|
||||||
youWereFollowed: "새 팔로워가 잇십니다"
|
|
||||||
newNote: "새 걸"
|
|
||||||
_types:
|
|
||||||
follow: "팔로잉"
|
|
||||||
mention: "멘션"
|
|
||||||
renote: "리노트"
|
|
||||||
quote: "따오기"
|
|
||||||
reaction: "반엉"
|
|
||||||
login: "로그인"
|
|
||||||
_actions:
|
|
||||||
reply: "답하기"
|
|
||||||
renote: "리노트"
|
|
||||||
_deck:
|
|
||||||
_columns:
|
|
||||||
notifications: "알림"
|
|
||||||
tl: "타임라인"
|
|
||||||
antenna: "안테나"
|
|
||||||
list: "리스트"
|
|
||||||
mentions: "받언 멘션"
|
|
||||||
_webhookSettings:
|
|
||||||
name: "이럼"
|
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "전자우펜"
|
|
||||||
_moderationLogTypes:
|
|
||||||
suspend: "얼우기"
|
|
||||||
deleteNote: "노트 뭉캐기"
|
|
||||||
deleteUserAnnouncement: "사용자 공지 걸 뭉캐기"
|
|
||||||
resetPassword: "비밀번호 재설정"
|
|
||||||
resolveAbuseReport: "신고 해겔하기"
|
|
||||||
_reversi:
|
|
||||||
reversi: "리버시"
|
|
||||||
chooseBoard: "보드 개리기"
|
|
||||||
black: "꺼멍"
|
|
||||||
white: "허영"
|
|
||||||
total: "합게"
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
_lang_: "ພາສາລາວ"
|
_lang_: "ພາສາລາວ"
|
||||||
headlineMisskey: "ເຊື່ອມຕໍ່ເຄືອຂ່າຍໂດຍ note"
|
headlineMisskey: "ເຊື່ອມຕໍ່ເຄືອຂ່າຍໂດຍຫມາຍເຫດ"
|
||||||
introMisskey: "ຍິນດີຕ້ອນຮັບ! Misskey ເປັນຊອຟແວopensource, ສຳລັບບໍລິການ microblogging ແບບ decentralized\nສ້າງ “note” ເພື່ອແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບທຸກໆ ຄົນທີ່ຢູ່ອ້ອມຮອບທ່ານ 📡\nຢ່າລືມ “reaction” ໂນຕຂອງລາວເພື່ອສະແດງຄວາມຮູ້ສຶກ 👍\nມາສຳຫຼວດໂລກໃໝ່ແນ! 🚀"
|
introMisskey: "ຍິນດີຕ້ອນຮັບ! Misskey ເປັນແຫຼ່ງເປີດ, ການບໍລິການ microblogging ກະຈາຍ\nສ້າງ \"ບັນທຶກ\" ເພື່ອແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບທຸກໆຄົນທີ່ຢູ່ອ້ອມຮອບທ່ານ 📡\nດ້ວຍ \"ປະຕິກິລິຍາ\", ທ່ານຍັງສາມາດສະແດງຄວາມຮູ້ສຶກຂອງທ່ານຢ່າງໄວວາກ່ຽວກັບບັນທຶກຂອງທຸກໆຄົນ 👍\nມາສຳຫຼວດໂລກໃໝ່! 🚀"
|
||||||
poweredByMisskeyDescription: "{name} ແມ່ນສ່ວນໜຶ່ງຂອງການບໍລິການທີ່ຂັບເຄື່ອນໂດຍແພລດຟອມ open source. <b>Misskey</b> (ເອີ້ນວ່າ \"Misskey instance\")"
|
poweredByMisskeyDescription: "{name} ແມ່ນສ່ວນໜຶ່ງຂອງການບໍລິການທີ່ຂັບເຄື່ອນໂດຍແພລດຟອມ open source. <b>Misskey</b> (ເອີ້ນວ່າ \"Misskey instance\")"
|
||||||
monthAndDay: "ເດືອນ{month} / ວັນ{day}"
|
monthAndDay: "{ເດືອນ}/{ມື້}"
|
||||||
search: "ຄົ້ນຫາ"
|
search: "ຄົ້ນຫາ"
|
||||||
notifications: "ການແຈ້ງເຕືອນ"
|
notifications: "ການແຈ້ງເຕືອນ"
|
||||||
username: "ຊື່ຜູ້ໃຊ້"
|
username: "ຊື່ຜູ້ໃຊ້"
|
||||||
|
@ -15,79 +15,78 @@ gotIt: "ເຂົ້າໃຈແລ້ວ!"
|
||||||
cancel: "ຍົກເລີກ"
|
cancel: "ຍົກເລີກ"
|
||||||
noThankYou: "ບໍ່ແມ່ນຕອນນີ້"
|
noThankYou: "ບໍ່ແມ່ນຕອນນີ້"
|
||||||
enterUsername: "ປ້ອນຊື່ຜູ້ໃຊ້"
|
enterUsername: "ປ້ອນຊື່ຜູ້ໃຊ້"
|
||||||
renotedBy: "Renoted ໂດຍ {user}"
|
renotedBy: "Renoted ໂດຍ {ຜູ້ໃຊ້}"
|
||||||
noNotes: "ບໍ່ມີ note"
|
noNotes: "ບໍ່ມີຫມາຍເຫດ"
|
||||||
noNotifications: "ບໍ່ມີການແຈ້ງເຕືອນ"
|
noNotifications: "ບໍ່ມີການແຈ້ງເຕືອນ"
|
||||||
instance: "ເຊີຟເວີຣ໌"
|
instance: "ອີນສະແຕນ"
|
||||||
settings: "ຕັ້ງຄ່າ"
|
settings: "ກຳນົດຄ່າ"
|
||||||
notificationSettings: "ຕັ້ງຄ່າການແຈ້ງເຕືອນ"
|
notificationSettings: "ຕັ້ງຄ່າການແຈ້ງເຕືອນ"
|
||||||
basicSettings: "ການຕັ້ງຄ່າພື້ນຖານ"
|
basicSettings: "ການຕັ້ງຄ່າພື້ນຖານ"
|
||||||
otherSettings: "ການຕັ້ງຄ່າອື່ນໆ"
|
otherSettings: "ການຕັ້ງຄ່າອື່ນໆ"
|
||||||
openInWindow: "ເປີດໃນ window"
|
openInWindow: "ເປີດຢູ່ໃນປ່ອງຢ້ຽມ"
|
||||||
profile: "ໂປຣໄຟລ໌"
|
profile: "ໂພຼຟາຍ"
|
||||||
timeline: "ໄທມ໌ໄລນ໌"
|
timeline: "ເສັ້ນກຳນົດເວລາ"
|
||||||
noAccountDescription: "ຜູ້ໃຊ້ຄົນນີ້ຍັງບໍ່ໄດ້ຂຽນຄຳແນະນຳໂຕ"
|
noAccountDescription: "ຜູ້ໃຊ້ນີ້ຍັງບໍ່ໄດ້ຂຽນໃນຊີວະປະຫວັດຂອງເຂົາເຈົ້າເທື່ອ"
|
||||||
login: "ເຂົ້າສູ່ລະບົບ"
|
login: "ເຂົ້າສູ່ລະບົບ"
|
||||||
loggingIn: "ກຳລັງເຂົ້າສູ່ລະບົບ..."
|
loggingIn: "ກຳລັງເຂົ້າສູ່ລະບົບ..."
|
||||||
logout: "ອອກຈາກລະບົບ"
|
logout: "ອອກຈາກລະບົບ"
|
||||||
signup: "ລົງທະບຽນ"
|
signup: "ລົງທະບຽນ"
|
||||||
uploading: "ກຳລັງອັບໂຫຼດ..."
|
uploading: "ການອັບໂຫຼດ..."
|
||||||
save: "ບັນທຶກ"
|
save: "ບັນທຶກ"
|
||||||
users: "ຜູ້ໃຊ້"
|
users: "ຜູ້ໃຊ້ຕ່າງໆ"
|
||||||
addUser: "ເພີ່ມຜູ້ໃຊ້"
|
addUser: "ເພີ່ມຜູ້ໃຊ້"
|
||||||
favorite: "ເພີ່ມໃສ່ລາຍການທີ່ມັກ"
|
favorite: "ເພີ່ມໃສ່ລາຍການທີ່ມັກ"
|
||||||
favorites: "ລາຍການທີ່ມັກ"
|
favorites: "ລາຍການທີ່ມັກ"
|
||||||
unfavorite: "ເອົາອອກຈາກລາຍການທີ່ມັກ"
|
unfavorite: "ລຶບອອກຈາກລາຍການທີ່ມັກ"
|
||||||
favorited: "ເພີ່ມໃສ່ລາຍການທີ່ມັກແລ້ວ"
|
favorited: "ເພີ່ມໃສ່ລາຍການທີ່ມັກແລ້ວ"
|
||||||
alreadyFavorited: "ເພີ່ມເຂົ້າໃນລາຍການທີ່ມັກແລ້ວ."
|
alreadyFavorited: "ເພີ່ມເຂົ້າໃນລາຍການທີ່ມັກແລ້ວ."
|
||||||
cantFavorite: "ບໍ່ສາມາດເພີ່ມໃສ່ລາຍການທີ່ມັກໄດ້."
|
cantFavorite: "ບໍ່ສາມາດເພີ່ມໃສ່ລາຍການທີ່ມັກໄດ້."
|
||||||
pin: "ປັກໝຸດ"
|
pin: "ປັກໝຸດໄປຫາໂປຣໄຟລ໌"
|
||||||
unpin: "ຖອດປັກໝຸດອອກ"
|
unpin: "ຖອດປັກໝຸດອອກຈາກໂປຣໄຟລ໌"
|
||||||
copyContent: "ຄັດລອກເນື້ອຫາ"
|
copyContent: "ຄັດລອກເນື້ອຫາ"
|
||||||
copyLink: "ຄັດລອກລິ້ງ"
|
copyLink: "ສຳເນົາລິ້ງ"
|
||||||
copyLinkRenote: "ຄັດລອກລິ້ງຂອງ renote"
|
|
||||||
delete: "ລຶບ"
|
delete: "ລຶບ"
|
||||||
deleteAndEdit: "ລຶບແລະແກ້ໄຂ"
|
deleteAndEdit: "ລົບແລະແກ້ໄຂ"
|
||||||
deleteAndEditConfirm: "ຕ້ອງການລຶບ note ນີ້ແລະແກ້ໄຂໃໝ່ແມ່ນບໍ່? reaction, renote ແລະການຕອບກັບຕໍ່ note ນີ້ ທັງເບິດຈະຖືກລຶບອອກ"
|
deleteAndEditConfirm: "ເຈົ້າແນ່ໃຈບໍ່? ທີ່ທ່ານຕ້ອງການທີ່ຈະລຶບບັນທຶກນີ້ແລະແກ້ໄຂມັນ ທ່ານອາດຈະສູນເສຍການໂຕ້ຕອບ, ບັນທຶກ, ແລະການຕອບກັບທັງໝົດ"
|
||||||
addToList: "ເພີ່ມໃສ່ລາຍຊື່"
|
addToList: "ເພີ່ມໃສ່ລາຍຊື່"
|
||||||
addToAntenna: "ເພີ່ມໃສ່ເສົາອາກາດ"
|
addToAntenna: "ເພີ່ມໃສ່ເສົາອາກາດ"
|
||||||
sendMessage: "ສົ່ງຂໍ້ຄວາມ"
|
sendMessage: "ສົ່ງຂໍ້ຄວາມ"
|
||||||
copyRSS: "ຄັດລອກ RSS"
|
copyRSS: "ສຳເນົາ RSS"
|
||||||
copyUsername: "ຄັດລອກຊື່ຜູ້ໃຊ້"
|
copyUsername: "ສຳເນົາຊື່ຜູ້ໃຊ້"
|
||||||
copyUserId: "ຄັດລອກ ID ຜູ້ໃຊ້"
|
copyUserId: "ສຳເນົາ ID ຜູ້ໃຊ້"
|
||||||
copyNoteId: "ຄັດລອກ ID ຂອງ note"
|
copyNoteId: "ສຳເນົາ ID ບັນທຶກ"
|
||||||
copyFileId: "ຄັດລອກ ID ໄຟລ໌"
|
copyFileId: "ສຳເນົາ ID ໄຟລ໌"
|
||||||
copyFolderId: "ຄັດລອກ ID ໂຟລ໌ເດີຣ໌"
|
copyFolderId: "ສຳເນົາ ID ໂຟນເດີ"
|
||||||
copyProfileUrl: "ຄັດລອກ URL ໂປຣໄຟລ໌"
|
copyProfileUrl: "ສຳເນົາ URL ໂປຣໄຟລ໌"
|
||||||
searchUser: "ຄົ້ນຫາຜູ້ໃຊ້"
|
searchUser: "ຄົ້ນຫາຜູ້ໃຊ້"
|
||||||
reply: "ຕອບກັບ"
|
reply: "ຕອບໄປທີ"
|
||||||
loadMore: "ໂຫຼດເພີ່ມເຕີມ"
|
loadMore: "ໂຫຼດເພີ່ມເຕີມ"
|
||||||
showMore: "ໂຫຼດເພີ່ມເຕີມ"
|
showMore: "ໂຫຼດເພີ່ມເຕີມ"
|
||||||
showLess: "ປິດ"
|
showLess: "ປິດ"
|
||||||
youGotNewFollower: "ໄດ້ຕິດຕາມເຈົ້າ"
|
youGotNewFollower: "ໄດ້ຕິດຕາມທ່ານ"
|
||||||
receiveFollowRequest: "ມີຄຳຂໍຕິດຕາມສົ່ງມາ"
|
receiveFollowRequest: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍທີ່ໄດ້ຮັບ"
|
||||||
followRequestAccepted: "ການຕິດຕາມໄດ້ຮັບອນຸຍາດແລ້ວ"
|
followRequestAccepted: "ຜູ້ຕິດຕາມໄດ້ຍອມຮັບຄໍາຮ້ອງຂໍຂອງທ່ານ"
|
||||||
mention: "ເວົ້າເຖີງ"
|
mention: "ໄດ້ກ່າວມາ"
|
||||||
mentions: "ເວົ້າເຖີງເຈົ້າ"
|
mentions: "ກ່າວເຖິງ"
|
||||||
directNotes: "ໂພສ Direct note"
|
directNotes: "ໂດຍກົງຫມາຍເຫດ"
|
||||||
importAndExport: "ນໍາເຂົ້າ / ສົ່ງອອກ"
|
importAndExport: "ນໍາເຂົ້າ / ສົ່ງອອກ"
|
||||||
import: "ນຳເຂົ້າ"
|
import: "ນຳເຂົ້າ"
|
||||||
export: "ສົ່ງອອກ"
|
export: "ນຳອອກ"
|
||||||
files: "ໄຟລ໌"
|
files: "ໄຟລ໌"
|
||||||
download: "ດາວໂຫລດ"
|
download: "ດາວໂຫລດ"
|
||||||
driveFileDeleteConfirm: "ຕ້ອງການລຶບໄຟລ໌ “{name}” ແມ່ນບໍ່? Note ທີ່ແນບມາກັບໄຟລ໌ນີ້ຈະຖືກລຶບອອກ"
|
driveFileDeleteConfirm: "ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການລຶບໄຟລ໌ \"{name}\"? ບັນທຶກທີ່ມີໄຟລ໌ແນບນີ້ຈະຖືກລຶບຖິ້ມ"
|
||||||
unfollowConfirm: "ຕ້ອງການເລີກຕິດຕາມ {name} ແມ່ນບໍ່?"
|
unfollowConfirm: "ທ່ານແນ່ໃຈບໍ່ວ່າຕ້ອງການເຊົາຕິດຕາມ {name}?"
|
||||||
exportRequested: "ເຈົ້າໄດ້ຮ້ອງຂໍການສົ່ງອອກ ອາດໃຊ້ເວລາຈັກໜ່ອຍ ເມື່ອແລ້ວຈະຖືກເພີ່ມໃສ່ drive"
|
exportRequested: "ໃນເວລາທີ່ທ່ານໄດ້ຮ້ອງຂໍການສົ່ງອອກ ມັນອາດຈະໃຊ້ເວລາບາງເວລາ ແລະມັນຈະຖືກເພີ່ມໃສ່ drive ຂອງທ່ານເມື່ອມັນສຳເລັດແລ້ວ"
|
||||||
importRequested: "ເຈົ້າໄດ້ຮ້ອງຂໍການນຳເຂົ້າ ການດຳເນິນການນີ້ອາດໃຊ້ເວລາຈັກໜ່ອຍ"
|
importRequested: "ໃນເວລາທີ່ທ່ານໄດ້ຮ້ອງຂໍການນໍາເຂົ້າ ມັນອາດຈະໃຊ້ເວລາບາງເວລາ"
|
||||||
lists: "ລາຍການ"
|
lists: "ລາຍການ"
|
||||||
noLists: "ບໍ່ມີລາຍການໃດໆ"
|
noLists: "ທ່ານບໍ່ມີລາຍການໃດໆ"
|
||||||
note: "Note"
|
note: "ບັນທຶກ"
|
||||||
notes: "Note"
|
notes: "ບັນທຶກ"
|
||||||
following: "ກຳລັງຕິດຕາມ"
|
following: "ກຳລັງຕິດຕາມ"
|
||||||
followers: "ຜູ້ຕິດຕາມ"
|
followers: "ຜູ້ຕິດຕາມ"
|
||||||
followsYou: "ຕິດຕາມເຈົ້າ"
|
followsYou: "ຕິດຕາມເຈົ້າ"
|
||||||
createList: "ສ້າງລາຍຊື່"
|
createList: "ສ້າງລາຍຊື່"
|
||||||
manageLists: "ຈັດການລາຍຊື່"
|
manageLists: "ການບໍລິຫານບັນຊີລາຍການ"
|
||||||
error: "ຂໍ້ຜິດພາດ"
|
error: "ຂໍ້ຜິດພາດ"
|
||||||
somethingHappened: "ອຸຍ, ມີບາງຢ່າງຜິດພາດ"
|
somethingHappened: "ອຸຍ, ມີບາງຢ່າງຜິດພາດ"
|
||||||
retry: "ລອງໃຫມ່"
|
retry: "ລອງໃຫມ່"
|
||||||
|
@ -97,38 +96,38 @@ serverIsDead: "ເຊີບເວີນີ້ບໍ່ຕອບສະໜອງ
|
||||||
youShouldUpgradeClient: "ເພື່ອເບິ່ງໜ້ານີ້, ກະລຸນາໂຫຼດຂໍ້ມູນຄືນໃໝ່ເພື່ອອັບເດດລູກຄ້າຂອງທ່ານ"
|
youShouldUpgradeClient: "ເພື່ອເບິ່ງໜ້ານີ້, ກະລຸນາໂຫຼດຂໍ້ມູນຄືນໃໝ່ເພື່ອອັບເດດລູກຄ້າຂອງທ່ານ"
|
||||||
enterListName: "ໃສ່ຊື່ສຳລັບລາຍຊື່"
|
enterListName: "ໃສ່ຊື່ສຳລັບລາຍຊື່"
|
||||||
privacy: "ຄວາມເປັນສ່ວນຕົວ"
|
privacy: "ຄວາມເປັນສ່ວນຕົວ"
|
||||||
makeFollowManuallyApprove: "ຕິດຕາມຄຳຂໍທີ່ຕ້ອງໄດ້ຮັບການອະນຸມັດ"
|
makeFollowManuallyApprove: "ປະຕິບັດຕາມການຮ້ອງຂໍຮຽກຮ້ອງໃຫ້ມີການອະນຸມັດ"
|
||||||
defaultNoteVisibility: "ການເບິ່ງເຫັນທີ່ເປັນຄ່າເລີ່ມຕົ້ນ"
|
defaultNoteVisibility: "ເປັນຄ່າເລີ່ມຕົ້ນ"
|
||||||
follow: "ກຳລັງຕິດຕາມ"
|
follow: "ກຳລັງຕິດຕາມ"
|
||||||
followRequest: "ສົ່ງຄຳຂໍຕິດຕາມ"
|
followRequest: "ສົ່ງການຮ້ອງຂໍປະຕິບຕາມ"
|
||||||
followRequests: "ສົ່ງຄຳຂໍຕິດຕາມ"
|
followRequests: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍ"
|
||||||
unfollow: "ເຊົາຕິດຕາມ"
|
unfollow: "ເຊົາຕິດຕາມ"
|
||||||
followRequestPending: "ລໍຖ້າການອະນຸມັດໃຫ້ຕິດຕາມ"
|
followRequestPending: "ປະຕິບັດຕາມຄໍາຮ້ອງຂໍທີ່ລໍຖ້າຢູ່"
|
||||||
enterEmoji: "ປ້ອນເອໂມຈິ"
|
enterEmoji: "ປ້ອນອີໂມຈິ"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
unrenote: "ເລີກ Renote"
|
unrenote: "ເລີກ Renote"
|
||||||
renoted: "renote ແລ້ວ"
|
renoted: "ເກັບບັນທຶກໄວ້"
|
||||||
cantRenote: "ໂພສນີ້ບໍ່ສາມາດ renote ໃໝ່ໄດ້"
|
cantRenote: "ໂພສນີ້ບໍ່ສາມາດຖືກບັນທຶກໄວ້ຄືນໃໝ່ໄດ້"
|
||||||
cantReRenote: "ບໍ່ສາມາດບັນທຶກຄືນໃໝ່ໄດ້"
|
cantReRenote: "ບໍ່ສາມາດບັນທຶກຄືນໃໝ່ໄດ້"
|
||||||
quote: "ອ້າງອີງ"
|
quote: "ລວມຂໍ້ຄວາມອ້າງອີງ"
|
||||||
inChannelRenote: "Renote ໃນ channel ເທົ່ານັ້ນ"
|
inChannelRenote: "ຊ່ອງພຽງແຕ່ Renote"
|
||||||
inChannelQuote: "ອ້າງອິງໃນ channel ເທົ່ານັ້ນ"
|
inChannelQuote: "ຊ່ອງເທົ່ານັ້ນ Quote"
|
||||||
pinnedNote: "note ທີ່ປັກໝຸດໄວ້"
|
pinnedNote: "ບັນທຶກທີ່ປັກໝຸດໄວ້"
|
||||||
pinned: "ປັກໝຸດ"
|
pinned: "ປັກໝຸດໄປຫາໂປຣໄຟລ໌"
|
||||||
you: "ເຈົ້າ"
|
you: "ເຈົ້າ"
|
||||||
clickToShow: "ກົດເພື່ອສະແດງໃຫ້ເຫັນ"
|
clickToShow: "ກົດເພື່ອສະແດງໃຫ້ເຫັນ"
|
||||||
sensitive: "NSFW"
|
sensitive: "NSFW"
|
||||||
add: "ເພີ່ມ"
|
add: "ເພີ່ມ"
|
||||||
reaction: "reaction"
|
reaction: "ປະຕິກິລິຍາ"
|
||||||
reactions: "reaction"
|
reactions: "ປະຕິກິລິຍາ"
|
||||||
attachCancel: "ເອົາໄຟລ໌ແນບ"
|
attachCancel: "ເອົາໄຟລ໌ແນບ"
|
||||||
mute: "ປີດສຽງ"
|
mute: "ປີດສຽງ"
|
||||||
unmute: "ເປີດສຽງ"
|
unmute: "ເປີດສຽງ"
|
||||||
block: "ບລັອກ"
|
block: "ບ໋ອກ"
|
||||||
unblock: "ເລີກບລັອກ"
|
unblock: "ຍົກເລີກກາຮົບລັອກ"
|
||||||
suspend: "ລະງັບ"
|
suspend: "ລະງັບ"
|
||||||
unsuspend: "ເຊົາລະງັບ"
|
unsuspend: "ເຊົາລະງັບ"
|
||||||
selectList: "ເລືອກລາຍຊື່"
|
selectList: "ເລືອກບັນຊີລາຍການ"
|
||||||
editList: "ແກ້ໄຂລາຍຊື່"
|
editList: "ແກ້ໄຂລາຍຊື່"
|
||||||
selectChannel: "ເລືອກຊ່ອງ"
|
selectChannel: "ເລືອກຊ່ອງ"
|
||||||
selectAntenna: "ເລືອກເສົາອາກາດ"
|
selectAntenna: "ເລືອກເສົາອາກາດ"
|
||||||
|
@ -151,30 +150,30 @@ flagShowTimelineRepliesDescription: "ສະແດງການຕອບກັບ
|
||||||
autoAcceptFollowed: "ອະນຸມັດອັດຕະໂນມັດຕາມຄຳຮ້ອງຂໍຈາກຜູ້ໃຊ້ທີ່ທ່ານກຳລັງຕິດຕາມຢູ່"
|
autoAcceptFollowed: "ອະນຸມັດອັດຕະໂນມັດຕາມຄຳຮ້ອງຂໍຈາກຜູ້ໃຊ້ທີ່ທ່ານກຳລັງຕິດຕາມຢູ່"
|
||||||
addAccount: "ເພີ່ມບັນຊີ"
|
addAccount: "ເພີ່ມບັນຊີ"
|
||||||
loginFailed: "ການເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ"
|
loginFailed: "ການເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ"
|
||||||
showOnRemote: "ເບິ່ງໃນເຊີຟເວີຣ໌ໄລຍະໄກ"
|
showOnRemote: "ເບິ່ງຢູ່ໃນຕົວຢ່າງໄລຍະໄກ"
|
||||||
general: "ທົ່ວໄປ"
|
general: "ທົ່ວໄປ"
|
||||||
wallpaper: "ພາບພື້ນຫລັງ"
|
wallpaper: "ພາບພື້ນຫລັງ"
|
||||||
setWallpaper: "ຕັ້ງເປັນພາບພື້ນຫຼັງ"
|
setWallpaper: "ຕັ້ງເປັນພາບພື້ນຫຼັງ"
|
||||||
removeWallpaper: "ລຶບຮູບວໍເປເປີອອກ"
|
removeWallpaper: "ລຶບຮູບວໍເປເປີອອກ"
|
||||||
searchWith: "ຊອກຫາ: {q}"
|
searchWith: "ຊອກຫາ: {q}"
|
||||||
youHaveNoLists: "ເຈົ້າບໍ່ມີລາຍຊື່ໃດໆ"
|
youHaveNoLists: "ທ່ານບໍ່ມີລາຍການໃດໆ"
|
||||||
proxyAccount: "ບັນຊີພຣັອກຊີ"
|
proxyAccount: "ບັນຊີພຣັອກຊີ"
|
||||||
host: "ໂຮສຕ໌"
|
host: "ໂຮດສ"
|
||||||
selectUser: "ເລືອກຜູ້ໃຊ້"
|
selectUser: "ເລືອກຜູ້ໃຊ້"
|
||||||
recipient: "ເຖິງ"
|
recipient: "ເຖິງ"
|
||||||
annotation: "ຄຳເຫັນ"
|
annotation: "ຄຳເຫັນ"
|
||||||
federation: "ສະຫະພັນ"
|
federation: "ສະຫະພັນ"
|
||||||
instances: "ເຊີຟເວີຣ໌"
|
instances: "ອີນສະແຕນ"
|
||||||
registeredAt: "ລົງທະບຽນຢູ່"
|
registeredAt: "ລົງທະບຽນຢູ່"
|
||||||
storageUsage: "ບ່ອນຈັດເກັບຂໍ້ມູນທີ່ໃຊ້"
|
storageUsage: "ບ່ອນຈັດເກັບຂໍ້ມູນທີ່ໃຊ້"
|
||||||
charts: "ແຜນພູມ"
|
charts: "ອັນດັບເພງ"
|
||||||
perHour: "ຕໍ່ຊົ່ວໂມງ"
|
perHour: "ຕໍ່ຊົ່ວໂມງ"
|
||||||
perDay: "ຕໍ່ມື້"
|
perDay: "ຕໍ່ມື້"
|
||||||
stopActivityDelivery: "ຢຸດເຊົາການສົ່ງກິດຈະກໍາ"
|
stopActivityDelivery: "ຢຸດເຊົາການສົ່ງກິດຈະກໍາ"
|
||||||
blockThisInstance: "ຂັດຂວາງຕົວຢ່າງນີ້"
|
blockThisInstance: "ຂັດຂວາງຕົວຢ່າງນີ້"
|
||||||
operations: "ການດຳເນີນງານ"
|
operations: "ການດຳເນີນງານ"
|
||||||
software: "ຊອບແວ"
|
software: "ຊອບແວ"
|
||||||
version: "ເວີຣ໌ຊັນ"
|
version: "ສະບັບ"
|
||||||
metadata: "Metadata"
|
metadata: "Metadata"
|
||||||
withNFiles: "{n} ໄຟລ໌(s)"
|
withNFiles: "{n} ໄຟລ໌(s)"
|
||||||
monitor: "ຈໍພາບ"
|
monitor: "ຈໍພາບ"
|
||||||
|
@ -199,15 +198,15 @@ federating: "ສະຫະພັນ"
|
||||||
blocked: "ບລັອກແລ້ວ "
|
blocked: "ບລັອກແລ້ວ "
|
||||||
suspended: "ໂຈະ"
|
suspended: "ໂຈະ"
|
||||||
all: "ທັງໝົດ"
|
all: "ທັງໝົດ"
|
||||||
subscribing: "ກຳລັງສະມັກສະມາຊິກ"
|
subscribing: "ສະໝັກສະມາຊິກແລັວ"
|
||||||
publishing: "ກຳລັງເຜີຍແພ່"
|
publishing: "ການພິມເຜີຍແຜ່"
|
||||||
notResponding: "ບໍ່ຕອບສະໜອງ"
|
notResponding: "ບໍ່ຕອບສະໜອງ"
|
||||||
instanceFollowing: "ກຳລັງຕິດຕາມບົນເຊີຟເວີຣ໌"
|
instanceFollowing: "ກຳລັງຕິດຕາມສຸດຕົວຢ່າງ"
|
||||||
instanceFollowers: "ຜູ້ຕິດຕາມຂອງເຊີຟເວີຣ໌"
|
instanceFollowers: "ຜູ້ຕິດຕາມຕົວຢ່າງ"
|
||||||
instanceUsers: "ຜູ້ໃຊ້ຂອງເຊີຟເວີຣ໌ນີ້"
|
instanceUsers: "ຜູ້ຊົມໃຊ້ຂອງຕົວຢ່າງນີ້"
|
||||||
changePassword: "ປ່ຽນລະຫັດຜ່ານ"
|
changePassword: "ປ່ຽນລະຫັດຜ່ານ"
|
||||||
security: "ຄວາມປອດໄພ"
|
security: "ຄວາມປອດໄພ"
|
||||||
retypedNotMatch: "ປ້ອນຂໍ້ມູນບໍ່ກົງກັນ"
|
retypedNotMatch: "ວັດສະດຸປ້ອນບໍ່ກົງກັນ"
|
||||||
currentPassword: "ລະຫັດຜ່ານປະຈຸບັນ"
|
currentPassword: "ລະຫັດຜ່ານປະຈຸບັນ"
|
||||||
newPassword: "ລະຫັດຜ່ານໃໝ່"
|
newPassword: "ລະຫັດຜ່ານໃໝ່"
|
||||||
newPasswordRetype: "ໃສ່ລະຫັດຜ່ານໃໝ່ອີກເທື່ອໜຶ່ງ"
|
newPasswordRetype: "ໃສ່ລະຫັດຜ່ານໃໝ່ອີກເທື່ອໜຶ່ງ"
|
||||||
|
@ -223,14 +222,14 @@ remove: "ລຶບ"
|
||||||
removed: "ລຶບແລ້ວ"
|
removed: "ລຶບແລ້ວ"
|
||||||
resetAreYouSure: "ຣີເຊັດບໍ?"
|
resetAreYouSure: "ຣີເຊັດບໍ?"
|
||||||
saved: "ບັນທຶກແລ້ວ"
|
saved: "ບັນທຶກແລ້ວ"
|
||||||
messaging: "ແຊັຕ"
|
messaging: "ແຊ໋ດ"
|
||||||
upload: "ອັບໂຫຼດ"
|
upload: "ອັບໂຫຼດ"
|
||||||
keepOriginalUploading: "ຮັກສາຮູບພາບຕົ້ນສະບັບ"
|
keepOriginalUploading: "ຮັກສາຮູບພາບຕົ້ນສະບັບ"
|
||||||
fromDrive: "ຈາກ Drive"
|
fromDrive: "ຈາກ Drive"
|
||||||
fromUrl: "ຈາກ URL"
|
fromUrl: "ຈາກ URL"
|
||||||
uploadFromUrl: "ອັບໂຫຼດຈາກ URL"
|
uploadFromUrl: "ອັບໂຫຼດຈາກ URL"
|
||||||
uploadFromUrlDescription: "URL ຂອງໄຟລ໌ທີ່ທ່ານຕ້ອງການອັບໂຫລດ"
|
uploadFromUrlDescription: "URL ຂອງໄຟລ໌ທີ່ທ່ານຕ້ອງການອັບໂຫລດ"
|
||||||
uploadFromUrlRequested: "ຮ້ອງຂໍການອັບໂຫລດແລ້ວ"
|
uploadFromUrlRequested: "ຮ້ອງຂໍການອັບໂຫລດ"
|
||||||
explore: "ສຳຫຼວດ"
|
explore: "ສຳຫຼວດ"
|
||||||
messageRead: "ອ່ານແລ້ວ"
|
messageRead: "ອ່ານແລ້ວ"
|
||||||
startMessaging: "ເລີ່ມການສົນທະນາໃໝ່"
|
startMessaging: "ເລີ່ມການສົນທະນາໃໝ່"
|
||||||
|
@ -244,47 +243,47 @@ images: "ຮູບພາບ"
|
||||||
image: "ຮູບພາບ"
|
image: "ຮູບພາບ"
|
||||||
birthday: "ວັນເກີດ"
|
birthday: "ວັນເກີດ"
|
||||||
yearsOld: "{age} ປີ"
|
yearsOld: "{age} ປີ"
|
||||||
registeredDate: "ວັນທີ່ລົງທະບຽນ"
|
registeredDate: "ວັນທີ່ເປັນສະມາຊິກ"
|
||||||
location: "ທີ່ຕັ້ງ"
|
location: "ທີ່ຕັ້ງ"
|
||||||
theme: "Theme"
|
theme: "ແທ໋ມ"
|
||||||
themeForLightMode: "Theme ໃຊ້ໃນໂໝດສະຫວ່າງ"
|
themeForLightMode: "ຮູບແບບສີສັນເພື່ອໃຊ້ໃນໂໝດແສງ"
|
||||||
themeForDarkMode: "Theme ໃຊ້ໃນໂໝດມືດ"
|
themeForDarkMode: "ຮູບແບບສີສັນທີ່ຈະໃຊ້ຢູ່ໃນໂໝດມືດ"
|
||||||
light: "ສະຫວ່າງ"
|
light: "ສະຫວ່າງ"
|
||||||
dark: "ມືດ"
|
dark: "ມືດ"
|
||||||
lightThemes: "ຊຸດຮູບແບບສະຫວ່າງ"
|
lightThemes: "ຊຸດຮູບແບບສະຫວ່າງ"
|
||||||
darkThemes: "ຮູບແບບສີສັນມືດ"
|
darkThemes: "ຮູບແບບສີສັນມືດ"
|
||||||
syncDeviceDarkMode: "ຊິງຄ໌ໂໝດມືດກັບການຕັ້ງຄ່າທົ່ວອຸປະກອນ"
|
syncDeviceDarkMode: "ຊິງຄ໌ໂໝດມືດກັບການຕັ້ງຄ່າທົ່ວອຸປະກອນ"
|
||||||
drive: "Drive"
|
drive: "ຂັບ"
|
||||||
fileName: "ຊື່ໄຟລ໌"
|
fileName: "ຊື່ໄຟລ໌"
|
||||||
selectFile: "ເລືອກໄຟລ໌"
|
selectFile: "ເລືອກໄຟລ໌"
|
||||||
selectFiles: "ເລືອກໄຟລ໌"
|
selectFiles: "ເລືອກໄຟລ໌"
|
||||||
selectFolder: "ເລືອກໂຟລເດີ"
|
selectFolder: "ເລືອກໂຟລເດີ"
|
||||||
selectFolders: "ເລືອກໂຟລເດີ"
|
selectFolders: "ເລືອກໂຟລເດີ"
|
||||||
renameFile: "ປ່ຽນຊື່ໄຟລ໌"
|
renameFile: "ປ່ຽນຊື່ໄຟລ໌"
|
||||||
folderName: "ຊື່ໂຟລເດີຣ໌"
|
folderName: "ຊື່ໂຟນເດີ"
|
||||||
createFolder: "ສ້າງໂຟລເດີ"
|
createFolder: "ສ້າງໂຟລເດີ"
|
||||||
renameFolder: "ປ່ຽນຊື່ໂຟນເດີນີ້"
|
renameFolder: "ປ່ຽນຊື່ໂຟນເດີນີ້"
|
||||||
deleteFolder: "ລົບໂຟລເດີ"
|
deleteFolder: "ລົບໂຟລເດີ"
|
||||||
addFile: "ເພີ່ມໄຟລ໌"
|
addFile: "ເພີ່ມໄຟລ໌"
|
||||||
emptyDrive: "Drive ຂອງທ່ານຫວ່າງເປົ່າ"
|
emptyDrive: "Drive ຂອງທ່ານຫວ່າງເປົ່າ"
|
||||||
emptyFolder: "ໂຟລເດີຣ໌ນີ້ວ່າງເປົ່າ"
|
emptyFolder: "ໂຟນເດີນີ້ເປົ່າຫວ່າງ"
|
||||||
unableToDelete: "ບໍ່ສາມາດລົບໄດ້"
|
unableToDelete: "ບໍ່ສາມາດລົບໄດ້"
|
||||||
inputNewFileName: "ໃສ່ຊື່ໄຟລ໌ໃໝ່"
|
inputNewFileName: "ໃສ່ຊື່ໄຟລ໌ໃໝ່"
|
||||||
inputNewDescription: "ໃສ່ຄຳບັນຍາຍໃໝ່"
|
inputNewDescription: "ໃສ່ຄຳບັນຍາຍໃໝ່"
|
||||||
inputNewFolderName: "ໃສ່ຊື່ໂຟນເດີໃໝ່"
|
inputNewFolderName: "ໃສ່ຊື່ໂຟນເດີໃໝ່"
|
||||||
circularReferenceFolder: "ໂຟນເດີປາຍທາງແມ່ນໂຟນເດີຍ່ອຍຂອງໂຟນເດີທີ່ທ່ານຕ້ອງການຍ້າຍ"
|
circularReferenceFolder: "ໂຟນເດີປາຍທາງແມ່ນໂຟນເດີຍ່ອຍຂອງໂຟນເດີທີ່ທ່ານຕ້ອງການຍ້າຍ"
|
||||||
rename: "ປ່ຽນຊື່"
|
rename: "ປ່ຽນຊື່"
|
||||||
doNothing: "ຢ່າມັນ"
|
doNothing: "ບໍ່ສົນໃຈ"
|
||||||
watch: "ເພັ່ງເລັງ"
|
watch: "ເບິ່ງ"
|
||||||
unwatch: "ຢຸດເພັ່ງເລັງ"
|
unwatch: "ຢຸດເບິ່ງ"
|
||||||
accept: "ອະນຸຍາດ"
|
accept: "ອະນຸຍາດ"
|
||||||
reject: "ປະຕິເສດ"
|
reject: "ປະຕິເສດ"
|
||||||
normal: "ປົກກະຕິ"
|
normal: "ປົກກະຕິ"
|
||||||
instanceName: "ຊື່ເຊີເວີ້"
|
instanceName: "ຊື່ເຊີເວີ້"
|
||||||
instanceDescription: "ຄຳອະທິບາຍແນະນຳເຊີຟເວີຣ໌"
|
instanceDescription: "ຄໍາອະທິບາຍຕົວຢ່າງ"
|
||||||
maintainerName: "ຜູ້ດູແລ"
|
maintainerName: "ຜູ້ດູແລ"
|
||||||
maintainerEmail: "ອີເມລຜູ້ດູແລ"
|
maintainerEmail: "ອີເມວ admin"
|
||||||
tosUrl: " URL ເງື່ອນໄຂການໃຫ້ບໍລິການ"
|
tosUrl: "ເງື່ອນໄຂການໃຫ້ບໍລິການ URL"
|
||||||
thisYear: "ປີນີ້"
|
thisYear: "ປີນີ້"
|
||||||
thisMonth: "ເດືອນນີ້"
|
thisMonth: "ເດືອນນີ້"
|
||||||
today: "ມື້ນີ້"
|
today: "ມື້ນີ້"
|
||||||
|
@ -292,37 +291,36 @@ dayX: "ວັນ {day}"
|
||||||
monthX: "ເດືອນ {month}"
|
monthX: "ເດືອນ {month}"
|
||||||
yearX: "ປີ {year}"
|
yearX: "ປີ {year}"
|
||||||
pages: "ໜ້າ"
|
pages: "ໜ້າ"
|
||||||
integration: "ເຊື່ອມໂຍງ"
|
integration: "ຄວາມສຳພັນຂອງ"
|
||||||
connectService: "ເຊື່ອມຕໍ່"
|
connectService: "ເຊື່ອມຕໍ່"
|
||||||
disconnectService: "ຕັດການເຊື່ອມຕໍ່"
|
disconnectService: "ຕັດການເຊື່ອມຕໍ່"
|
||||||
enableLocalTimeline: "ເປີດໃຊ້ທາມລາຍທ້ອງຖິ່ນ"
|
enableLocalTimeline: "ເປີດໃຊ້ທາມລາຍທ້ອງຖິ່ນ"
|
||||||
enableGlobalTimeline: "ເປີດໃຊ້ທາມລາຍທົ່ວໂລກ"
|
enableGlobalTimeline: "ເປີດໃຊ້ທາມລາຍທົ່ວໂລກ"
|
||||||
disablingTimelinesInfo: "ຜູ້ດູແລລະບບແລະຜູ້ຄວບຄຸມຈະສາມາດເຂົ້າເຖີງໄທມ໌ໄລນ໌ທັ້ງເບີດ ເຖີງວ່າຈະບໍ່ໄດ້ເປີດໃຊ້ງານກໍ່ຕາມ"
|
disablingTimelinesInfo: "ຜູ້ເບິ່ງແຍງລະບົບ ແລະຜູ້ຄວບຄຸມຈະມີການເຂົ້າເຖິງທຸກກຳນົດເວລາ, ເຖິງແມ່ນວ່າຈະບໍ່ໄດ້ເປີດໃຊ້ງານກໍຕາມ"
|
||||||
registration: "ລົງທະບຽນ"
|
registration: "ລົງທະບຽນ"
|
||||||
enableRegistration: "ເປີດໃຊ້ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່"
|
enableRegistration: "ເປີດໃຊ້ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່"
|
||||||
invite: "ເຊີນ"
|
invite: "ເຊີນ"
|
||||||
driveCapacityPerLocalAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ທ້ອງຖິ່ນ"
|
driveCapacityPerLocalAccount: "ຄວາມອາດສາມາດຂັບຕໍ່ຜູ້ໃຊ້ທ້ອງຖິ່ນ"
|
||||||
driveCapacityPerRemoteAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ໄລຍະໄກ"
|
driveCapacityPerRemoteAccount: "ໄດຣຟ໌ຄວາມອາດສາມາດຕໍ່ຜູ້ໃຊ້ທາງໄກ"
|
||||||
basicInfo: "ຂໍ້ມຸນເບື້ອງຕົ້ນ"
|
basicInfo: "ຂໍ້ມຸນເບື້ອງຕົ້ນ"
|
||||||
pinnedNotes: "Note ທີ່ປັກໝຸດໄວ້"
|
pinnedNotes: "ບັນທຶກທີ່ປັກໝຸດໄວ້"
|
||||||
hcaptchaSiteKey: "Site key"
|
hcaptchaSiteKey: "ກະແຈໄຊທ໌"
|
||||||
hcaptchaSecretKey: "Secret key"
|
hcaptchaSecretKey: "ກະແຈລັບ"
|
||||||
mcaptchaSiteKey: "Site key"
|
|
||||||
mcaptchaSecretKey: "Secret Key"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "ເປີດໃຊ້ງານ reCAPTCHA"
|
enableRecaptcha: "ເປີດໃຊ້ງານລີແຄ໋ບຈາ"
|
||||||
recaptchaSiteKey: "Site key"
|
recaptchaSiteKey: "ກະແຈໄຊທ໌"
|
||||||
recaptchaSecretKey: "Secret key"
|
recaptchaSecretKey: "ກະແຈລັບ"
|
||||||
turnstileSiteKey: "Site key"
|
turnstileSiteKey: "ກະແຈໄຊທ໌"
|
||||||
turnstileSecretKey: "Secret key"
|
turnstileSecretKey: "ກະແຈລັບ"
|
||||||
name: "ຊື່"
|
name: "ຊື່"
|
||||||
userList: "ລາຍການ"
|
userList: "ລາຍການ"
|
||||||
about: "ກ່ຽວກັບ"
|
about: "ກ່ຽວກັບ"
|
||||||
aboutMisskey: "ກ່ຽວກັບ Misskey"
|
aboutMisskey: "ກ່ຽວກັບ Misskey"
|
||||||
administrator: "ຜູ້ດູແລ"
|
administrator: "ຜູ້ບໍລິຫານ"
|
||||||
token: "ໂທເຄັນ"
|
token: "ໂທເຄັນ"
|
||||||
share: "ແບ່ງປັນ"
|
share: "ແບ່ງປັນ"
|
||||||
notFound: "ບໍ່ພົບ"
|
notFound: "ບໍ່ພົບ"
|
||||||
|
cacheClear: "ລຶບລ້າງແຄສ"
|
||||||
help: "ຊ່ວຍເຫຼືອ"
|
help: "ຊ່ວຍເຫຼືອ"
|
||||||
close: "ປິດ"
|
close: "ປິດ"
|
||||||
invites: "ເຊີນ"
|
invites: "ເຊີນ"
|
||||||
|
@ -332,27 +330,27 @@ title: "ຫົວຂໍ້"
|
||||||
text: "ຂໍ້ຄວາມ"
|
text: "ຂໍ້ຄວາມ"
|
||||||
enable: "ເປີດໃຊ້"
|
enable: "ເປີດໃຊ້"
|
||||||
next: "ຕໍ່ໄປ"
|
next: "ຕໍ່ໄປ"
|
||||||
retype: "ລອງພິມລະຫັດອີກເທື່ອໜຶ່ງ"
|
retype: "ເຂົ້າໄປອີກຄັ້ງ"
|
||||||
quoteAttached: "ອ້າງອິງ"
|
quoteAttached: "ວົງຢືມ"
|
||||||
invitations: "ເຊີນ"
|
invitations: "ເຊີນ"
|
||||||
unavailable: "ບໍ່ສາມາດໃຊ້ໄດ້"
|
unavailable: "ບໍ່ສາມາດໃຊ້ໄດ້"
|
||||||
language: "ພາສາ"
|
language: "ພາສາ"
|
||||||
aboutX: "ກ່ຽວກັບ {x}"
|
aboutX: "ກ່ຽວກັບ {x}"
|
||||||
emojiStyle: "ຮູບແບບອີໂມຈິ"
|
emojiStyle: "ຮູບແບບອີໂມຈິ"
|
||||||
native: "ພາສາແມ່"
|
native: "ພາສາແມ່"
|
||||||
noHistory: "ບໍ່ມີປະຫວັດ"
|
noHistory: "ບໍ່ມີລາຍການຢູ່ບ່ອນນີ້"
|
||||||
doing: "ກຳລັງປະມວນຜົນ..."
|
doing: "ກຳລັງປະມວນຜົນ..."
|
||||||
category: "ຫມວດຫມູ່"
|
category: "ຫມວດຫມູ່"
|
||||||
tags: "Aliases"
|
tags: "ແທ໋ກ"
|
||||||
createAccount: "ສ້າງບັນຊີ"
|
createAccount: "ສ້າງບັນຊີ"
|
||||||
existingAccount: "ບັນຊີທີ່ມີຢູ່ແລ້ວ"
|
existingAccount: "ທີ່ມີຢູ່"
|
||||||
dashboard: "Dashboard"
|
dashboard: "ໜ້າປັດ"
|
||||||
local: "ທ້ອງຖິ່ນ"
|
local: "ທ້ອງຖິ່ນ"
|
||||||
numberOfDays: "ຈຳນວນມື້"
|
numberOfDays: "ຈຳນວນມື້"
|
||||||
objectStorageBucket: "Bucket"
|
objectStorageBucket: "Bucket"
|
||||||
objectStoragePrefix: "Prefix"
|
objectStoragePrefix: "Prefix"
|
||||||
objectStorageEndpoint: "Endpoint"
|
objectStorageEndpoint: "Endpoint"
|
||||||
objectStorageRegion: "ພູມິພາກ"
|
objectStorageRegion: "ພາກພື້ນ"
|
||||||
deleteAll: "ລຶບທັງໝົດ"
|
deleteAll: "ລຶບທັງໝົດ"
|
||||||
sounds: "ສຽງ"
|
sounds: "ສຽງ"
|
||||||
sound: "ສຽງ"
|
sound: "ສຽງ"
|
||||||
|
@ -365,11 +363,11 @@ state: "ສະຖານະ"
|
||||||
sort: "ຈັດຮຽງໂດຍ"
|
sort: "ຈັດຮຽງໂດຍ"
|
||||||
ascendingOrder: "ນ້ອຍໄປຫາໃຫຍ່"
|
ascendingOrder: "ນ້ອຍໄປຫາໃຫຍ່"
|
||||||
descendingOrder: "ໃຫຍ່ຫານ້ອຍ"
|
descendingOrder: "ໃຫຍ່ຫານ້ອຍ"
|
||||||
output: "Output"
|
output: "ຜົນຜະລິດ"
|
||||||
script: "Script"
|
script: "ບົດຄວາມ"
|
||||||
menu: "ເມນູ"
|
menu: "ເມນູ"
|
||||||
rearrange: "ຈັດລຽງໃໝ່"
|
rearrange: "ຈັດລຽງຄືນ"
|
||||||
poll: "Poll"
|
poll: "ການພູນ"
|
||||||
description: "ລາຍລະອຽດ"
|
description: "ລາຍລະອຽດ"
|
||||||
author: "ຜູ້ຂຽນ"
|
author: "ຜູ້ຂຽນ"
|
||||||
manage: "ການຈັດການ"
|
manage: "ການຈັດການ"
|
||||||
|
@ -383,7 +381,7 @@ permission: "ການອະນຸຍາດ"
|
||||||
notificationType: "ປະເພດການແຈ້ງເຕືອນ"
|
notificationType: "ປະເພດການແຈ້ງເຕືອນ"
|
||||||
edit: "ແກ້ໄຂ"
|
edit: "ແກ້ໄຂ"
|
||||||
email: "ອີເມວ"
|
email: "ອີເມວ"
|
||||||
smtpHost: "ໂຮສຕ໌"
|
smtpHost: "ໂຮດສ"
|
||||||
smtpUser: "ຊື່ຜູ້ໃຊ້"
|
smtpUser: "ຊື່ຜູ້ໃຊ້"
|
||||||
smtpPass: "ລະຫັດຜ່ານ"
|
smtpPass: "ລະຫັດຜ່ານ"
|
||||||
clearCache: "ລຶບລ້າງແຄສ"
|
clearCache: "ລຶບລ້າງແຄສ"
|
||||||
|
@ -393,12 +391,8 @@ administration: "ການຈັດການ"
|
||||||
middle: "ປານກາງ"
|
middle: "ປານກາງ"
|
||||||
searchByGoogle: "ຄົ້ນຫາ"
|
searchByGoogle: "ຄົ້ນຫາ"
|
||||||
file: "ໄຟລ໌"
|
file: "ໄຟລ໌"
|
||||||
replies: "ຕອບກັບ"
|
replies: "ຕອບໄປທີ"
|
||||||
renotes: "Renote"
|
renotes: "Renote"
|
||||||
_delivery:
|
|
||||||
stop: "ໂຈະ"
|
|
||||||
_type:
|
|
||||||
none: "ກຳລັງເຜີຍແພ່"
|
|
||||||
_role:
|
_role:
|
||||||
_priority:
|
_priority:
|
||||||
middle: "ປານກາງ"
|
middle: "ປານກາງ"
|
||||||
|
@ -416,8 +410,8 @@ _sfx:
|
||||||
_2fa:
|
_2fa:
|
||||||
renewTOTPCancel: "ບໍ່ແມ່ນຕອນນີ້"
|
renewTOTPCancel: "ບໍ່ແມ່ນຕອນນີ້"
|
||||||
_widgets:
|
_widgets:
|
||||||
profile: "ໂປຣໄຟລ໌"
|
profile: "ໂພຼຟາຍ"
|
||||||
instanceInfo: "ຂໍ້ມູລເຊີຟເວີຣ໌"
|
instanceInfo: "ອີນສະແຕນ"
|
||||||
notifications: "ການແຈ້ງເຕືອນ"
|
notifications: "ການແຈ້ງເຕືອນ"
|
||||||
timeline: "ເສັ້ນກຳນົດເວລາ"
|
timeline: "ເສັ້ນກຳນົດເວລາ"
|
||||||
activity: "ກິດຈະກຳ"
|
activity: "ກິດຈະກຳ"
|
||||||
|
@ -436,29 +430,28 @@ _profile:
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
followingList: "ກຳລັງຕິດຕາມ"
|
followingList: "ກຳລັງຕິດຕາມ"
|
||||||
muteList: "ປີດສຽງ"
|
muteList: "ປີດສຽງ"
|
||||||
blockingList: "ບລັອກ"
|
blockingList: "ບ໋ອກ"
|
||||||
userLists: "ລາຍການ"
|
userLists: "ລາຍການ"
|
||||||
_charts:
|
_charts:
|
||||||
federation: "ສະຫະພັນ"
|
federation: "ສະຫະພັນ"
|
||||||
_timelines:
|
_timelines:
|
||||||
home: "ໜ້າຫຼັກ"
|
home: "ໜ້າຫຼັກ"
|
||||||
_play:
|
_play:
|
||||||
script: "Script"
|
script: "ບົດຄວາມ"
|
||||||
summary: "ລາຍລະອຽດ"
|
summary: "ລາຍລະອຽດ"
|
||||||
_pages:
|
_pages:
|
||||||
blocks:
|
blocks:
|
||||||
image: "ຮູບພາບ"
|
image: "ຮູບພາບ"
|
||||||
_notification:
|
_notification:
|
||||||
youWereFollowed: "ໄດ້ຕິດຕາມເຈົ້າ"
|
youWereFollowed: "ໄດ້ຕິດຕາມທ່ານ"
|
||||||
_types:
|
_types:
|
||||||
follow: "ກຳລັງຕິດຕາມ"
|
follow: "ກຳລັງຕິດຕາມ"
|
||||||
mention: "ໄດ້ກ່າວເຖິງ"
|
mention: "ໄດ້ກ່າວມາ"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
quote: "ອ້າງອີງ"
|
quote: "ລວມຂໍ້ຄວາມອ້າງອີງ"
|
||||||
reaction: "Reaction"
|
reaction: "ປະຕິກິລິຍາ"
|
||||||
login: "ເຂົ້າສູ່ລະບົບ"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "ຕອບກັບ"
|
reply: "ຕອບໄປທີ"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
_deck:
|
_deck:
|
||||||
_columns:
|
_columns:
|
||||||
|
@ -466,12 +459,8 @@ _deck:
|
||||||
tl: "ເສັ້ນກຳນົດເວລາ"
|
tl: "ເສັ້ນກຳນົດເວລາ"
|
||||||
list: "ລາຍການ"
|
list: "ລາຍການ"
|
||||||
channel: "ຊ່ອງ"
|
channel: "ຊ່ອງ"
|
||||||
mentions: "ກ່າວເຖິງເຈົ້າ"
|
mentions: "ກ່າວເຖິງ"
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
name: "ຊື່"
|
name: "ຊື່"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "ອີເມວ"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "ລະງັບ"
|
suspend: "ລະງັບ"
|
||||||
|
|
|
@ -45,7 +45,6 @@ pin: "Vastmaken aan profielpagina"
|
||||||
unpin: "Losmaken van profielpagina"
|
unpin: "Losmaken van profielpagina"
|
||||||
copyContent: "Kopiëren inhoud"
|
copyContent: "Kopiëren inhoud"
|
||||||
copyLink: "Kopiëren link"
|
copyLink: "Kopiëren link"
|
||||||
copyLinkRenote: ""
|
|
||||||
delete: "Verwijderen"
|
delete: "Verwijderen"
|
||||||
deleteAndEdit: "Verwijderen en bewerken"
|
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."
|
deleteAndEditConfirm: "Weet je zeker dat je deze notitie wilt verwijderen en dan bewerken? Je verliest alle reacties, herdelingen en antwoorden erop."
|
||||||
|
@ -119,6 +118,7 @@ sensitive: "NSFW"
|
||||||
add: "Toevoegen"
|
add: "Toevoegen"
|
||||||
reaction: "Reacties"
|
reaction: "Reacties"
|
||||||
reactions: "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"
|
reactionSettingDescription2: "Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen"
|
||||||
rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen"
|
rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen"
|
||||||
attachCancel: "Verwijder bijlage"
|
attachCancel: "Verwijder bijlage"
|
||||||
|
@ -348,8 +348,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Inschakelen hCaptcha"
|
enableHcaptcha: "Inschakelen hCaptcha"
|
||||||
hcaptchaSiteKey: "Site sleutel"
|
hcaptchaSiteKey: "Site sleutel"
|
||||||
hcaptchaSecretKey: "Geheime sleutel"
|
hcaptchaSecretKey: "Geheime sleutel"
|
||||||
mcaptchaSiteKey: "Site sleutel"
|
|
||||||
mcaptchaSecretKey: "Geheime sleutel"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Inschakelen reCAPTCHA"
|
enableRecaptcha: "Inschakelen reCAPTCHA"
|
||||||
recaptchaSiteKey: "Site sleutel"
|
recaptchaSiteKey: "Site sleutel"
|
||||||
|
@ -397,6 +395,7 @@ reduceUiAnimation: "Verminder beweging in de UI"
|
||||||
share: "Delen"
|
share: "Delen"
|
||||||
notFound: "Niet gevonden"
|
notFound: "Niet gevonden"
|
||||||
uploadFolder: "Standaardmap voor uploaden"
|
uploadFolder: "Standaardmap voor uploaden"
|
||||||
|
cacheClear: "Cache verwijderen"
|
||||||
markAsReadAllNotifications: "Markeer alle meldingen als gelezen"
|
markAsReadAllNotifications: "Markeer alle meldingen als gelezen"
|
||||||
markAsReadAllUnreadNotes: "Markeer alle berichten als gelezen"
|
markAsReadAllUnreadNotes: "Markeer alle berichten als gelezen"
|
||||||
markAsReadAllTalkMessages: "Markeer alle berichten als gelezen"
|
markAsReadAllTalkMessages: "Markeer alle berichten als gelezen"
|
||||||
|
@ -429,10 +428,6 @@ loggedInAsBot: "Momenteel als bot ingelogd"
|
||||||
icon: "Avatar"
|
icon: "Avatar"
|
||||||
replies: "Antwoord"
|
replies: "Antwoord"
|
||||||
renotes: "Herdelen"
|
renotes: "Herdelen"
|
||||||
_delivery:
|
|
||||||
stop: "Opgeschort"
|
|
||||||
_type:
|
|
||||||
none: "Publiceren"
|
|
||||||
_email:
|
_email:
|
||||||
_follow:
|
_follow:
|
||||||
title: "volgde jou"
|
title: "volgde jou"
|
||||||
|
@ -486,7 +481,6 @@ _notification:
|
||||||
renote: "Herdelen"
|
renote: "Herdelen"
|
||||||
quote: "Quote"
|
quote: "Quote"
|
||||||
reaction: "Reacties"
|
reaction: "Reacties"
|
||||||
login: "Inloggen"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "Antwoord"
|
reply: "Antwoord"
|
||||||
renote: "Herdelen"
|
renote: "Herdelen"
|
||||||
|
|
|
@ -102,6 +102,7 @@ clickToShow: "Klikk for å vise"
|
||||||
add: "Legg til"
|
add: "Legg til"
|
||||||
reaction: "Reaksjon"
|
reaction: "Reaksjon"
|
||||||
reactions: "Reaksjoner"
|
reactions: "Reaksjoner"
|
||||||
|
reactionSetting: "Reaksjoner som vises i reaksjonsvelgeren"
|
||||||
reactionSettingDescription2: "Dra for å endre rekkefølgen, klikk for å slette, trykk \"+\" for å legge til."
|
reactionSettingDescription2: "Dra for å endre rekkefølgen, klikk for å slette, trykk \"+\" for å legge til."
|
||||||
rememberNoteVisibility: "Husk innstillingene for synlighet av Notes"
|
rememberNoteVisibility: "Husk innstillingene for synlighet av Notes"
|
||||||
attachCancel: "Fjern vedlegg"
|
attachCancel: "Fjern vedlegg"
|
||||||
|
@ -463,9 +464,6 @@ options: "Alternativ"
|
||||||
icon: "Avatar"
|
icon: "Avatar"
|
||||||
replies: "Svar"
|
replies: "Svar"
|
||||||
renotes: "Renote"
|
renotes: "Renote"
|
||||||
surrender: "Avbryt"
|
|
||||||
_delivery:
|
|
||||||
stop: "Suspendert"
|
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
theseSettingsCanEditLater: "Du kan endre disse innstillingene senere."
|
theseSettingsCanEditLater: "Du kan endre disse innstillingene senere."
|
||||||
_achievements:
|
_achievements:
|
||||||
|
@ -603,6 +601,9 @@ _time:
|
||||||
minute: "Minutter"
|
minute: "Minutter"
|
||||||
hour: "Timer"
|
hour: "Timer"
|
||||||
day: "Dager"
|
day: "Dager"
|
||||||
|
_timelineTutorial:
|
||||||
|
title: "Hvordan bruke Misskey"
|
||||||
|
step2_2: "Hva med å skrive en selvpresentasjon, eller bare \"Hei {name}!\" hvis du ikke har lyst?"
|
||||||
_2fa:
|
_2fa:
|
||||||
renewTOTPCancel: "Avbryt"
|
renewTOTPCancel: "Avbryt"
|
||||||
_weekday:
|
_weekday:
|
||||||
|
@ -701,7 +702,6 @@ _notification:
|
||||||
renote: "Renotes"
|
renote: "Renotes"
|
||||||
quote: "Sitater"
|
quote: "Sitater"
|
||||||
reaction: "Reaksjoner"
|
reaction: "Reaksjoner"
|
||||||
login: "Logg inn"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "Svar"
|
reply: "Svar"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
|
@ -722,9 +722,5 @@ _deck:
|
||||||
direct: "Direkte"
|
direct: "Direkte"
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
name: "Navn"
|
name: "Navn"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "E-post"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "Suspender"
|
suspend: "Suspender"
|
||||||
|
|
|
@ -20,7 +20,6 @@ noNotes: "Brak wpisów"
|
||||||
noNotifications: "Brak powiadomień"
|
noNotifications: "Brak powiadomień"
|
||||||
instance: "Instancja"
|
instance: "Instancja"
|
||||||
settings: "Ustawienia"
|
settings: "Ustawienia"
|
||||||
notificationSettings: "Powiadomienia"
|
|
||||||
basicSettings: "Podstawowe ustawienia"
|
basicSettings: "Podstawowe ustawienia"
|
||||||
otherSettings: "Pozostałe ustawienia"
|
otherSettings: "Pozostałe ustawienia"
|
||||||
openInWindow: "Otwórz w oknie"
|
openInWindow: "Otwórz w oknie"
|
||||||
|
@ -45,20 +44,13 @@ pin: "Przypnij do profilu"
|
||||||
unpin: "Odepnij z profilu"
|
unpin: "Odepnij z profilu"
|
||||||
copyContent: "Skopiuj zawartość"
|
copyContent: "Skopiuj zawartość"
|
||||||
copyLink: "Skopiuj odnośnik"
|
copyLink: "Skopiuj odnośnik"
|
||||||
copyLinkRenote: "Skopiuj link renote'a"
|
|
||||||
delete: "Usuń"
|
delete: "Usuń"
|
||||||
deleteAndEdit: "Usuń i edytuj"
|
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."
|
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"
|
addToList: "Dodaj do listy"
|
||||||
addToAntenna: "Dodaj do anteny"
|
|
||||||
sendMessage: "Wyślij wiadomość"
|
sendMessage: "Wyślij wiadomość"
|
||||||
copyRSS: "Kopiuj RSS"
|
copyRSS: "Kopiuj RSS"
|
||||||
copyUsername: "Kopiuj nazwę użytkownika"
|
copyUsername: "Kopiuj nazwę użytkownika"
|
||||||
copyUserId: "Kopiuj ID użytkownika"
|
|
||||||
copyNoteId: "Kopiuj ID notatki"
|
|
||||||
copyFileId: "Kopiuj ID pliku"
|
|
||||||
copyFolderId: "Kopiuj ID folderu"
|
|
||||||
copyProfileUrl: "Kopiuj URL profilu"
|
|
||||||
searchUser: "Wyszukiwanie użytkowników"
|
searchUser: "Wyszukiwanie użytkowników"
|
||||||
reply: "Odpowiedz"
|
reply: "Odpowiedz"
|
||||||
loadMore: "Załaduj więcej"
|
loadMore: "Załaduj więcej"
|
||||||
|
@ -111,8 +103,6 @@ renoted: "Udostępniono."
|
||||||
cantRenote: "Ten wpis nie może zostać udostępniony."
|
cantRenote: "Ten wpis nie może zostać udostępniony."
|
||||||
cantReRenote: "Udostępnienie nie może zostać udostępnione."
|
cantReRenote: "Udostępnienie nie może zostać udostępnione."
|
||||||
quote: "Cytuj"
|
quote: "Cytuj"
|
||||||
inChannelRenote: "Renote tylko na kanale"
|
|
||||||
inChannelQuote: "Cytat tylko na kanale"
|
|
||||||
pinnedNote: "Przypięty wpis"
|
pinnedNote: "Przypięty wpis"
|
||||||
pinned: "Przypnij do profilu"
|
pinned: "Przypnij do profilu"
|
||||||
you: "Ty"
|
you: "Ty"
|
||||||
|
@ -121,23 +111,15 @@ sensitive: "NSFW"
|
||||||
add: "Dodaj"
|
add: "Dodaj"
|
||||||
reaction: "Reakcja"
|
reaction: "Reakcja"
|
||||||
reactions: "Reakcja"
|
reactions: "Reakcja"
|
||||||
emojiPicker: "Selektor Emoji"
|
reactionSetting: "Reakcje do pokazania w wyborniku reakcji"
|
||||||
pinnedEmojisForReactionSettingDescription: "Ustaw emotikony które powinny być przypięte i od razu wyświetlone podczas reagowania."
|
|
||||||
pinnedEmojisSettingDescription: "Ustaw emotikony które powinny być przypięte i wyświetlone podczas przeglądania selektora Emoji"
|
|
||||||
emojiPickerDisplay: "Wyświetlanie selektora Emoji"
|
|
||||||
overwriteFromPinnedEmojisForReaction: "Zastąp z ustawień reakcji"
|
|
||||||
overwriteFromPinnedEmojis: "Zastąp z ogólnych ustawień"
|
|
||||||
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
|
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
|
||||||
rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu"
|
rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu"
|
||||||
attachCancel: "Usuń załącznik"
|
attachCancel: "Usuń załącznik"
|
||||||
deleteFile: "Usuń plik"
|
|
||||||
markAsSensitive: "Oznacz jako NSFW"
|
markAsSensitive: "Oznacz jako NSFW"
|
||||||
unmarkAsSensitive: "Cofnij NSFW"
|
unmarkAsSensitive: "Cofnij NSFW"
|
||||||
enterFileName: "Wprowadź nazwę pliku"
|
enterFileName: "Wprowadź nazwę pliku"
|
||||||
mute: "Wycisz"
|
mute: "Wycisz"
|
||||||
unmute: "Cofnij wyciszenie"
|
unmute: "Cofnij wyciszenie"
|
||||||
renoteMute: "Wycisz renote'y"
|
|
||||||
renoteUnmute: "Wyłącz wyciszenie renote'ów"
|
|
||||||
block: "Zablokuj"
|
block: "Zablokuj"
|
||||||
unblock: "Odblokuj"
|
unblock: "Odblokuj"
|
||||||
suspend: "Zawieś"
|
suspend: "Zawieś"
|
||||||
|
@ -147,10 +129,8 @@ unblockConfirm: "Czy na pewno chcesz odblokować to konto?"
|
||||||
suspendConfirm: "Czy na pewno chcesz zawiesić to konto?"
|
suspendConfirm: "Czy na pewno chcesz zawiesić to konto?"
|
||||||
unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?"
|
unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?"
|
||||||
selectList: "Wybierz listę"
|
selectList: "Wybierz listę"
|
||||||
editList: "Edytuj listę"
|
|
||||||
selectChannel: "Wybierz kanał"
|
selectChannel: "Wybierz kanał"
|
||||||
selectAntenna: "Wybierz Antennę"
|
selectAntenna: "Wybierz Antennę"
|
||||||
editAntenna: "Edytuj antenę"
|
|
||||||
selectWidget: "Wybierz widżet"
|
selectWidget: "Wybierz widżet"
|
||||||
editWidgets: "Edytuj widżety"
|
editWidgets: "Edytuj widżety"
|
||||||
editWidgetsExit: "Gotowe"
|
editWidgetsExit: "Gotowe"
|
||||||
|
@ -163,15 +143,11 @@ addEmoji: "Dodaj emoji"
|
||||||
settingGuide: "Proponowana konfiguracja"
|
settingGuide: "Proponowana konfiguracja"
|
||||||
cacheRemoteFiles: "Przechowuj zdalne pliki w pamięci podręcznej"
|
cacheRemoteFiles: "Przechowuj zdalne pliki w pamięci podręcznej"
|
||||||
cacheRemoteFilesDescription: "Gdy ta opcja jest wyłączona, zdalne pliki są ładowane bezpośrednio ze zdalnych instancji. Wyłączenie the opcji zmniejszy użycie powierzchni dyskowej, ale zwiększy transfer, ponieważ miniaturki nie będą generowane."
|
cacheRemoteFilesDescription: "Gdy ta opcja jest wyłączona, zdalne pliki są ładowane bezpośrednio ze zdalnych instancji. Wyłączenie the opcji zmniejszy użycie powierzchni dyskowej, ale zwiększy transfer, ponieważ miniaturki nie będą generowane."
|
||||||
youCanCleanRemoteFilesCache: "Możesz wyczyścić cache poprzez kliknięcie przycisku 🗑️ w widoku menedżera plików."
|
|
||||||
cacheRemoteSensitiveFiles: "Przechowuj wrażliwe zdalne pliki w pamięci podręcznej"
|
|
||||||
cacheRemoteSensitiveFilesDescription: "Gdy ta opcja jest wyłączona, wrażliwe pliki zdalne są wczytywane bezpośrednio ze zdalnej instancji bez cacheowania."
|
|
||||||
flagAsBot: "To konto jest botem"
|
flagAsBot: "To konto jest botem"
|
||||||
flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
|
flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
|
||||||
flagAsCat: "To konto jest kotem"
|
flagAsCat: "To konto jest kotem"
|
||||||
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
|
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
|
||||||
flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu"
|
flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu"
|
||||||
flagShowTimelineRepliesDescription: "Gdy włączone, pokazuje odpowiedzi użytkowników na notatki innych użytkowników w osi czasu."
|
|
||||||
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
|
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
|
||||||
addAccount: "Dodaj konto"
|
addAccount: "Dodaj konto"
|
||||||
reloadAccountsList: "Odśwież listę kont"
|
reloadAccountsList: "Odśwież listę kont"
|
||||||
|
@ -201,7 +177,6 @@ perHour: "co godzinę"
|
||||||
perDay: "co dzień"
|
perDay: "co dzień"
|
||||||
stopActivityDelivery: "Przestań przesyłać aktywności"
|
stopActivityDelivery: "Przestań przesyłać aktywności"
|
||||||
blockThisInstance: "Zablokuj tę instancję"
|
blockThisInstance: "Zablokuj tę instancję"
|
||||||
silenceThisInstance: "Wycisz tę instancję"
|
|
||||||
operations: "Działania"
|
operations: "Działania"
|
||||||
software: "Oprogramowanie"
|
software: "Oprogramowanie"
|
||||||
version: "Wersja"
|
version: "Wersja"
|
||||||
|
@ -221,8 +196,6 @@ clearCachedFiles: "Wyczyść pamięć podręczną"
|
||||||
clearCachedFilesConfirm: "Czy na pewno chcesz usunąć wszystkie zdalne pliki z pamięci podręcznej?"
|
clearCachedFilesConfirm: "Czy na pewno chcesz usunąć wszystkie zdalne pliki z pamięci podręcznej?"
|
||||||
blockedInstances: "Zablokowane instancje"
|
blockedInstances: "Zablokowane instancje"
|
||||||
blockedInstancesDescription: "Wypisz nazwy hostów instancji, które powinny zostać zablokowane. Wypisane instancje nie będą mogły dłużej komunikować się z tą instancją."
|
blockedInstancesDescription: "Wypisz nazwy hostów instancji, które powinny zostać zablokowane. Wypisane instancje nie będą mogły dłużej komunikować się z tą instancją."
|
||||||
silencedInstances: "Wyciszone instancje"
|
|
||||||
silencedInstancesDescription: "Wypisz nazwy hostów instancji, które chcesz wyciszyć. Wszystkie konta wymienionych instancji będą traktowane jako wyciszone, będą mogły jedynie wysyłać prośby o obserwację i nie będą mogły wspominać kont lokalnych, jeśli nie będą obserwowane. Nie będzie to miało wpływu na zablokowane instancje."
|
|
||||||
muteAndBlock: "Wycisz / Zablokuj"
|
muteAndBlock: "Wycisz / Zablokuj"
|
||||||
mutedUsers: "Wyciszeni użytkownicy"
|
mutedUsers: "Wyciszeni użytkownicy"
|
||||||
blockedUsers: "Zablokowani użytkownicy"
|
blockedUsers: "Zablokowani użytkownicy"
|
||||||
|
@ -267,12 +240,10 @@ removed: "Pomyślnie usunięto"
|
||||||
removeAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
removeAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
||||||
deleteAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
deleteAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
||||||
resetAreYouSure: "Czy na pewno chcesz zresetować?"
|
resetAreYouSure: "Czy na pewno chcesz zresetować?"
|
||||||
areYouSure: "Na pewno?"
|
|
||||||
saved: "Zapisano"
|
saved: "Zapisano"
|
||||||
messaging: "Wiadomości"
|
messaging: "Wiadomości"
|
||||||
upload: "Wyślij"
|
upload: "Wyślij"
|
||||||
keepOriginalUploading: "Zachowaj oryginalny obraz"
|
keepOriginalUploading: "Zachowaj oryginalny obraz"
|
||||||
keepOriginalUploadingDescription: "Zapisuje oryginalnie przesłany obraz w niezmienionej postaci. Jeśli ta opcja jest wyłączona, po przesłaniu zostanie wygenerowana wersja do wyświetlenia w Internecie."
|
|
||||||
fromDrive: "Z dysku"
|
fromDrive: "Z dysku"
|
||||||
fromUrl: "Z adresu URL"
|
fromUrl: "Z adresu URL"
|
||||||
uploadFromUrl: "Wyślij z adresu URL"
|
uploadFromUrl: "Wyślij z adresu URL"
|
||||||
|
@ -285,10 +256,7 @@ noMoreHistory: "Nie ma dalszej historii"
|
||||||
startMessaging: "Rozpocznij czat"
|
startMessaging: "Rozpocznij czat"
|
||||||
nUsersRead: "przeczytano przez {n}"
|
nUsersRead: "przeczytano przez {n}"
|
||||||
agreeTo: "Wyrażam zgodę na {0}"
|
agreeTo: "Wyrażam zgodę na {0}"
|
||||||
agree: "Zatwierdź"
|
|
||||||
agreeBelow: "Zaakceptuj poniżej"
|
agreeBelow: "Zaakceptuj poniżej"
|
||||||
basicNotesBeforeCreateAccount: "Ważne notatki"
|
|
||||||
termsOfService: "Warunki usługi"
|
|
||||||
start: "Rozpocznij"
|
start: "Rozpocznij"
|
||||||
home: "Strona główna"
|
home: "Strona główna"
|
||||||
remoteUserCaution: "Te informacje mogą nie być aktualne, ponieważ użytkownik pochodzi ze zdalnej instancji."
|
remoteUserCaution: "Te informacje mogą nie być aktualne, ponieważ użytkownik pochodzi ze zdalnej instancji."
|
||||||
|
@ -318,7 +286,6 @@ folderName: "Nazwa katalogu"
|
||||||
createFolder: "Utwórz katalog"
|
createFolder: "Utwórz katalog"
|
||||||
renameFolder: "Zmień nazwę katalogu"
|
renameFolder: "Zmień nazwę katalogu"
|
||||||
deleteFolder: "Usuń ten katalog"
|
deleteFolder: "Usuń ten katalog"
|
||||||
folder: "Folder"
|
|
||||||
addFile: "Dodaj plik"
|
addFile: "Dodaj plik"
|
||||||
emptyDrive: "Dysk jest pusty"
|
emptyDrive: "Dysk jest pusty"
|
||||||
emptyFolder: "Ten katalog jest pusty"
|
emptyFolder: "Ten katalog jest pusty"
|
||||||
|
@ -332,7 +299,6 @@ copyUrl: "Skopiuj adres URL"
|
||||||
rename: "Zmień nazwę"
|
rename: "Zmień nazwę"
|
||||||
avatar: "Awatar"
|
avatar: "Awatar"
|
||||||
banner: "Baner"
|
banner: "Baner"
|
||||||
displayOfSensitiveMedia: "Wyświetlanie wrażliwej zawartości"
|
|
||||||
whenServerDisconnected: "Po utracie połączenia z serwerem"
|
whenServerDisconnected: "Po utracie połączenia z serwerem"
|
||||||
disconnectedFromServer: "Utracono połączenie z serwerem."
|
disconnectedFromServer: "Utracono połączenie z serwerem."
|
||||||
reload: "Odśwież"
|
reload: "Odśwież"
|
||||||
|
@ -380,11 +346,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Włącz hCaptcha"
|
enableHcaptcha: "Włącz hCaptcha"
|
||||||
hcaptchaSiteKey: "Klucz strony"
|
hcaptchaSiteKey: "Klucz strony"
|
||||||
hcaptchaSecretKey: "Tajny klucz"
|
hcaptchaSecretKey: "Tajny klucz"
|
||||||
mcaptcha: "mCaptcha"
|
|
||||||
enableMcaptcha: "Włącz mCaptcha"
|
|
||||||
mcaptchaSiteKey: "Klucz strony"
|
|
||||||
mcaptchaSecretKey: "Tajny klucz"
|
|
||||||
mcaptchaInstanceUrl: "URL instancji mCaptcha"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Włącz reCAPTCHA"
|
enableRecaptcha: "Włącz reCAPTCHA"
|
||||||
recaptchaSiteKey: "Klucz strony"
|
recaptchaSiteKey: "Klucz strony"
|
||||||
|
@ -427,19 +388,15 @@ aboutMisskey: "O Misskey"
|
||||||
administrator: "Admin"
|
administrator: "Admin"
|
||||||
token: "Token"
|
token: "Token"
|
||||||
2fa: "Klucz 2FA "
|
2fa: "Klucz 2FA "
|
||||||
setupOf2fa: "Skonfiguruj dwuetapową autentykację"
|
|
||||||
totp: "Klucz aplikacji uwierzytelniającej (totp)"
|
totp: "Klucz aplikacji uwierzytelniającej (totp)"
|
||||||
totpDescription: "Opis klucza czasowego"
|
totpDescription: "Opis klucza czasowego"
|
||||||
moderator: "Moderator"
|
moderator: "Moderator"
|
||||||
moderation: "Moderacja"
|
moderation: "Moderacja"
|
||||||
moderationNote: "Notka moderacyjna"
|
|
||||||
addModerationNote: "Dodaj notkę moderacyjną"
|
|
||||||
moderationLogs: "Logi moderacyjne"
|
|
||||||
nUsersMentioned: "{n} wspomnianych użytkowników"
|
nUsersMentioned: "{n} wspomnianych użytkowników"
|
||||||
securityKeyAndPasskey: "Klucz bezpieczeństwa i klucze Passkey"
|
securityKeyAndPasskey: "Klucz bezpieczeństwa i klucze Passkey"
|
||||||
securityKey: "Klucz bezpieczeństwa"
|
securityKey: "Klucz bezpieczeństwa"
|
||||||
lastUsed: "Ostatnio używane"
|
lastUsed: "Ostatnio używane"
|
||||||
lastUsedAt: "Ostatnio używane: {t}"
|
lastUsedAt: "Ostatnio używane w"
|
||||||
unregister: "Cofnij rejestrację"
|
unregister: "Cofnij rejestrację"
|
||||||
passwordLessLogin: "Skonfiguruj logowanie bez użycia hasła"
|
passwordLessLogin: "Skonfiguruj logowanie bez użycia hasła"
|
||||||
passwordLessLoginDescription: "Opis logowania bez użycia hasła"
|
passwordLessLoginDescription: "Opis logowania bez użycia hasła"
|
||||||
|
@ -450,6 +407,7 @@ share: "Udostępnij"
|
||||||
notFound: "Nie znaleziono"
|
notFound: "Nie znaleziono"
|
||||||
notFoundDescription: "Nie ma strony odpowiadającej określonemu adresowi URL."
|
notFoundDescription: "Nie ma strony odpowiadającej określonemu adresowi URL."
|
||||||
uploadFolder: "Domyślne położenie wysłanych"
|
uploadFolder: "Domyślne położenie wysłanych"
|
||||||
|
cacheClear: "Wyczyść pamięć podręczną"
|
||||||
markAsReadAllNotifications: "Oznacz wszystkie powiadomienia jako przeczytane"
|
markAsReadAllNotifications: "Oznacz wszystkie powiadomienia jako przeczytane"
|
||||||
markAsReadAllUnreadNotes: "Oznacz wszystkie wpisy jako przeczytane"
|
markAsReadAllUnreadNotes: "Oznacz wszystkie wpisy jako przeczytane"
|
||||||
markAsReadAllTalkMessages: "Oznacz wszystkie wiadomości jako przeczytane"
|
markAsReadAllTalkMessages: "Oznacz wszystkie wiadomości jako przeczytane"
|
||||||
|
@ -492,12 +450,9 @@ uiLanguage: "Język wyświetlania UI"
|
||||||
aboutX: "O {x}"
|
aboutX: "O {x}"
|
||||||
emojiStyle: "Styl emoji"
|
emojiStyle: "Styl emoji"
|
||||||
native: "Natywny"
|
native: "Natywny"
|
||||||
showNoteActionsOnlyHover: "Pokazuj akcje notatek tylko po najechaniu myszką"
|
disableDrawer: "Nie używaj menu w stylu szuflady"
|
||||||
showReactionsCount: "Wyświetl liczbę reakcji na notatkę"
|
|
||||||
noHistory: "Brak historii"
|
noHistory: "Brak historii"
|
||||||
signinHistory: "Historia logowania"
|
signinHistory: "Historia logowania"
|
||||||
enableAdvancedMfm: "Włącz zaawansowane MFM"
|
|
||||||
enableAnimatedMfm: "Włącz animowane MFM"
|
|
||||||
doing: "Przetwarzanie..."
|
doing: "Przetwarzanie..."
|
||||||
category: "Kategoria"
|
category: "Kategoria"
|
||||||
tags: "Tagi"
|
tags: "Tagi"
|
||||||
|
@ -506,8 +461,6 @@ createAccount: "Utwórz konto"
|
||||||
existingAccount: "Istniejące konto"
|
existingAccount: "Istniejące konto"
|
||||||
regenerate: "Wygeneruj ponownie"
|
regenerate: "Wygeneruj ponownie"
|
||||||
fontSize: "Rozmiar czcionki"
|
fontSize: "Rozmiar czcionki"
|
||||||
mediaListWithOneImageAppearance: "Wysokość list multimediów z tylko jednym obrazem"
|
|
||||||
limitTo: "Limituj do {x}"
|
|
||||||
noFollowRequests: "Nie masz żadnych oczekujących próśb o możliwość obserwacji"
|
noFollowRequests: "Nie masz żadnych oczekujących próśb o możliwość obserwacji"
|
||||||
openImageInNewTab: "Otwórz obraz w nowej karcie"
|
openImageInNewTab: "Otwórz obraz w nowej karcie"
|
||||||
dashboard: "Kokpit"
|
dashboard: "Kokpit"
|
||||||
|
@ -527,7 +480,6 @@ showFeaturedNotesInTimeline: "Pokazuj wyróżnione wpisy w osi czasu"
|
||||||
objectStorage: "Pamięć obiektowa"
|
objectStorage: "Pamięć obiektowa"
|
||||||
useObjectStorage: "Używaj pamięci obiektowej"
|
useObjectStorage: "Używaj pamięci obiektowej"
|
||||||
objectStorageBaseUrl: "Podstawowy URL"
|
objectStorageBaseUrl: "Podstawowy URL"
|
||||||
objectStorageBaseUrlDesc: "Adres URL używany jako odniesienie. Podaj adres URL swojego CDN lub Proxy, gdy używasz któregokolwiek z nich.\nDla S3 użyj 'https://<bucket>.s3.amazonaws.com' a dla GCS lub równej usługi użyj 'https://storage.googleapis.com/<bucket>', itd."
|
|
||||||
objectStorageBucket: "Bucket"
|
objectStorageBucket: "Bucket"
|
||||||
objectStorageBucketDesc: "Podaj nazwę „wiadra” używaną przez konfigurowaną usługę."
|
objectStorageBucketDesc: "Podaj nazwę „wiadra” używaną przez konfigurowaną usługę."
|
||||||
objectStoragePrefix: "Prefiks"
|
objectStoragePrefix: "Prefiks"
|
||||||
|
@ -540,13 +492,9 @@ objectStorageUseSSL: "Użyj SSL"
|
||||||
objectStorageUseSSLDesc: "Wyłącz, jeżeli nie zamierzasz używać HTTPS dla połączenia z API"
|
objectStorageUseSSLDesc: "Wyłącz, jeżeli nie zamierzasz używać HTTPS dla połączenia z API"
|
||||||
objectStorageUseProxy: "Połącz przez proxy"
|
objectStorageUseProxy: "Połącz przez proxy"
|
||||||
objectStorageUseProxyDesc: "Wyłącz, jeżeli nie zamierzasz używać proxy dla połączenia z pamięcią blokową"
|
objectStorageUseProxyDesc: "Wyłącz, jeżeli nie zamierzasz używać proxy dla połączenia z pamięcią blokową"
|
||||||
objectStorageSetPublicRead: "Ustaw opcję \"public-read\" przy przesyłaniu"
|
|
||||||
s3ForcePathStyleDesc: "Jeśli opcja s3ForcePathStyle jest włączona, nazwa Bucket'u musi być zawarta w ścieżce adresu URL, a nie w nazwie hosta adresu URL. Włączenie tego ustawienia może być konieczne w przypadku użycia usług takich jak self-hosted instancja Minio."
|
|
||||||
serverLogs: "Dziennik zdarzeń"
|
serverLogs: "Dziennik zdarzeń"
|
||||||
deleteAll: "Usuń wszystkie"
|
deleteAll: "Usuń wszystkie"
|
||||||
showFixedPostForm: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
|
showFixedPostForm: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
|
||||||
showFixedPostFormInChannel: "Wyświetl formularz postowania w górnej części osi czasu (Kanały)"
|
|
||||||
withRepliesByDefaultForNewlyFollowed: "Domyślnie uwzględnij odpowiedzi nowo obserwowanych użytkowników w osi czasu"
|
|
||||||
newNoteRecived: "Masz nowy wpis"
|
newNoteRecived: "Masz nowy wpis"
|
||||||
sounds: "Dźwięk"
|
sounds: "Dźwięk"
|
||||||
sound: "Dźwięki"
|
sound: "Dźwięki"
|
||||||
|
@ -556,8 +504,6 @@ showInPage: "Pokaż na stronie"
|
||||||
popout: "Popout"
|
popout: "Popout"
|
||||||
volume: "Głośność"
|
volume: "Głośność"
|
||||||
masterVolume: "Głośność główna"
|
masterVolume: "Głośność główna"
|
||||||
notUseSound: "Wyłącz dźwięk"
|
|
||||||
useSoundOnlyWhenActive: "Puszczaj dźwięki tylko, gdy Misskey jest aktywne."
|
|
||||||
details: "Szczegóły"
|
details: "Szczegóły"
|
||||||
chooseEmoji: "Wybierz emoji"
|
chooseEmoji: "Wybierz emoji"
|
||||||
unableToProcess: "Nie udało się dokończyć działania."
|
unableToProcess: "Nie udało się dokończyć działania."
|
||||||
|
@ -578,10 +524,6 @@ output: "Wyjście"
|
||||||
script: "Skrypt"
|
script: "Skrypt"
|
||||||
disablePagesScript: "Wyłącz AiScript na Stronach"
|
disablePagesScript: "Wyłącz AiScript na Stronach"
|
||||||
updateRemoteUser: "Aktualizuj zdalne dane o użytkowniku"
|
updateRemoteUser: "Aktualizuj zdalne dane o użytkowniku"
|
||||||
unsetUserAvatar: "Usuń awatar"
|
|
||||||
unsetUserAvatarConfirm: "Czy na pewno chcesz usunąć awatar tego użytkownika?"
|
|
||||||
unsetUserBanner: "Usuń baner"
|
|
||||||
unsetUserBannerConfirm: "Czy na pewno chcesz usunąć baner?"
|
|
||||||
deleteAllFiles: "Usuń wszystkie pliki"
|
deleteAllFiles: "Usuń wszystkie pliki"
|
||||||
deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
|
deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
|
||||||
removeAllFollowing: "Przestań obserwować"
|
removeAllFollowing: "Przestań obserwować"
|
||||||
|
@ -597,7 +539,6 @@ accountDeletedDescription: "Opis konta usuniętego"
|
||||||
menu: "Menu"
|
menu: "Menu"
|
||||||
divider: "Rozdzielacz"
|
divider: "Rozdzielacz"
|
||||||
addItem: "Dodaj element"
|
addItem: "Dodaj element"
|
||||||
rearrange: "Posortuj"
|
|
||||||
relays: "Przekaźniki"
|
relays: "Przekaźniki"
|
||||||
addRelay: "Dodaj przekaźnik"
|
addRelay: "Dodaj przekaźnik"
|
||||||
inboxUrl: "Adres URL skrzynki nadawczej"
|
inboxUrl: "Adres URL skrzynki nadawczej"
|
||||||
|
@ -632,7 +573,6 @@ medium: "Średnie"
|
||||||
small: "Małe"
|
small: "Małe"
|
||||||
generateAccessToken: "Generuj token dostępu"
|
generateAccessToken: "Generuj token dostępu"
|
||||||
permission: "Uprawnienia"
|
permission: "Uprawnienia"
|
||||||
adminPermission: "Uprawnienia administracyjne"
|
|
||||||
enableAll: "Włącz wszystko"
|
enableAll: "Włącz wszystko"
|
||||||
disableAll: "Wyłącz wszystko"
|
disableAll: "Wyłącz wszystko"
|
||||||
tokenRequested: "Przydziel dostęp do konta"
|
tokenRequested: "Przydziel dostęp do konta"
|
||||||
|
@ -650,12 +590,9 @@ smtpPort: "Port"
|
||||||
smtpUser: "Nazwa użytkownika"
|
smtpUser: "Nazwa użytkownika"
|
||||||
smtpPass: "Hasło"
|
smtpPass: "Hasło"
|
||||||
emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć weryfikację SMTP"
|
emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć weryfikację SMTP"
|
||||||
smtpSecure: "Użyj niejawnego SSL/TLS dla połączeń SMTP"
|
|
||||||
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
|
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
|
||||||
testEmail: "Przetestuj dostarczanie wiadomości e-mail"
|
testEmail: "Przetestuj dostarczanie wiadomości e-mail"
|
||||||
wordMute: "Wyciszenie słowa"
|
wordMute: "Wyciszenie słowa"
|
||||||
regexpError: "Błąd wyrażenia regularnego"
|
|
||||||
regexpErrorDescription: "Wystąpił błąd w wyrażeniu regularnym w linii {line} twoich {tab} wyciszeń:"
|
|
||||||
instanceMute: "Wyciszone instancje"
|
instanceMute: "Wyciszone instancje"
|
||||||
userSaysSomething: "{name} powiedział(-a) coś"
|
userSaysSomething: "{name} powiedział(-a) coś"
|
||||||
makeActive: "Aktywuj"
|
makeActive: "Aktywuj"
|
||||||
|
@ -675,21 +612,20 @@ useGlobalSettingDesc: "Jeżeli włączone, zostaną wykorzystane ustawienia powi
|
||||||
other: "Inne"
|
other: "Inne"
|
||||||
regenerateLoginToken: "Generuj token logowania ponownie"
|
regenerateLoginToken: "Generuj token logowania ponownie"
|
||||||
regenerateLoginTokenDescription: "Regeneruje token używany wewnętrznie podczas logowania. Zazwyczaj nie jest to konieczne. Po regeneracji wszystkie urządzenia zostaną wylogowane."
|
regenerateLoginTokenDescription: "Regeneruje token używany wewnętrznie podczas logowania. Zazwyczaj nie jest to konieczne. Po regeneracji wszystkie urządzenia zostaną wylogowane."
|
||||||
theKeywordWhenSearchingForCustomEmoji: "To jest słowo kluczowe używane podczas wyszukiwania customowych Emoji."
|
|
||||||
setMultipleBySeparatingWithSpace: "Możesz ustawić wiele, oddzielając je spacjami."
|
setMultipleBySeparatingWithSpace: "Możesz ustawić wiele, oddzielając je spacjami."
|
||||||
fileIdOrUrl: "ID pliku albo URL"
|
fileIdOrUrl: "ID pliku albo URL"
|
||||||
behavior: "Zachowanie"
|
behavior: "Zachowanie"
|
||||||
sample: "Przykład"
|
sample: "Przykład"
|
||||||
abuseReports: "Zgłoszenia"
|
abuseReports: "Zgłoszenia"
|
||||||
reportAbuse: "Zgłoś"
|
reportAbuse: "Zgłoś"
|
||||||
reportAbuseRenote: "Zgłoś renote"
|
|
||||||
reportAbuseOf: "Zgłoś {name}"
|
reportAbuseOf: "Zgłoś {name}"
|
||||||
fillAbuseReportDescription: "Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy ono określonego wpisu, uwzględnij jego adres URL."
|
fillAbuseReportDescription: "Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy ono określonego wpisu, uwzględnij jego adres URL."
|
||||||
abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
|
abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
|
||||||
reporter: "Zgłaszający"
|
|
||||||
reporteeOrigin: "Pochodzenie zgłoszonego"
|
reporteeOrigin: "Pochodzenie zgłoszonego"
|
||||||
reporterOrigin: "Pochodzenie zgłaszającego"
|
reporterOrigin: "Pochodzenie zgłaszającego"
|
||||||
|
forwardReport: "Przekaż zgłoszenie do innej instancji"
|
||||||
send: "Wyślij"
|
send: "Wyślij"
|
||||||
|
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
|
||||||
openInNewTab: "Otwórz w nowej karcie"
|
openInNewTab: "Otwórz w nowej karcie"
|
||||||
openInSideView: "Otwórz w bocznym widoku"
|
openInSideView: "Otwórz w bocznym widoku"
|
||||||
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
|
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
|
||||||
|
@ -732,7 +668,6 @@ lockedAccountInfo: "Dopóki nie ustawisz widoczności wpisu na \"Obserwujący\",
|
||||||
alwaysMarkSensitive: "Oznacz domyślnie jako NSFW"
|
alwaysMarkSensitive: "Oznacz domyślnie jako NSFW"
|
||||||
loadRawImages: "Wyświetlaj zdjęcia w załącznikach w całości zamiast miniatur"
|
loadRawImages: "Wyświetlaj zdjęcia w załącznikach w całości zamiast miniatur"
|
||||||
disableShowingAnimatedImages: "Nie odtwarzaj animowanych obrazów"
|
disableShowingAnimatedImages: "Nie odtwarzaj animowanych obrazów"
|
||||||
highlightSensitiveMedia: "Podkreśl wrażliwą zawartość"
|
|
||||||
verificationEmailSent: "Wiadomość weryfikacyjna została wysłana. Odwiedź uwzględniony odnośnik, aby ukończyć weryfikację."
|
verificationEmailSent: "Wiadomość weryfikacyjna została wysłana. Odwiedź uwzględniony odnośnik, aby ukończyć weryfikację."
|
||||||
notSet: "Nie ustawiono"
|
notSet: "Nie ustawiono"
|
||||||
emailVerified: "Adres e-mail został potwierdzony"
|
emailVerified: "Adres e-mail został potwierdzony"
|
||||||
|
@ -743,8 +678,6 @@ contact: "Kontakt"
|
||||||
useSystemFont: "Używaj domyślnej czcionki systemu"
|
useSystemFont: "Używaj domyślnej czcionki systemu"
|
||||||
clips: "Klipy"
|
clips: "Klipy"
|
||||||
experimentalFeatures: "Eksperymentalne funkcje"
|
experimentalFeatures: "Eksperymentalne funkcje"
|
||||||
experimental: "Eksperymentalne"
|
|
||||||
thisIsExperimentalFeature: "Ta funkcja jest eksperymentalna. Jej funkcjonalność może ulec zmianie, i może ona nie funkcjonować tak, jak zamierzono."
|
|
||||||
developer: "Programista"
|
developer: "Programista"
|
||||||
makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
|
makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
|
||||||
makeExplorableDescription: "Jeżeli wyłączysz tę opcję, Twoje konto nie będzie wyświetlać się w sekcji „Eksploruj”."
|
makeExplorableDescription: "Jeżeli wyłączysz tę opcję, Twoje konto nie będzie wyświetlać się w sekcji „Eksploruj”."
|
||||||
|
@ -762,14 +695,12 @@ onlineUsersCount: "{n} osób jest online"
|
||||||
nUsers: "{n} użytkowników"
|
nUsers: "{n} użytkowników"
|
||||||
nNotes: "{n} wpisów"
|
nNotes: "{n} wpisów"
|
||||||
sendErrorReports: "Wyślij raporty o błędach"
|
sendErrorReports: "Wyślij raporty o błędach"
|
||||||
sendErrorReportsDescription: "Gdy włączone, jeśli wystąpi problem, szczegółowe informacje o błędach będą udostępniane Misskey, pomagając ulepszyć jakość Misskey.\nBędzie to zawierało informacje takie jak wersja twojego systemu operacyjnego, jakiej przeglądarki używasz, twoja aktywność w Misskey, itd."
|
|
||||||
myTheme: "Mój motyw"
|
myTheme: "Mój motyw"
|
||||||
backgroundColor: "Tło"
|
backgroundColor: "Tło"
|
||||||
accentColor: "Akcent"
|
accentColor: "Akcent"
|
||||||
textColor: "Tekst"
|
textColor: "Tekst"
|
||||||
saveAs: "Zapisz jako…"
|
saveAs: "Zapisz jako…"
|
||||||
advanced: "Zaawansowane"
|
advanced: "Zaawansowane"
|
||||||
advancedSettings: "Zaawansowane ustawienia"
|
|
||||||
value: "Wartość"
|
value: "Wartość"
|
||||||
createdAt: "Utworzono"
|
createdAt: "Utworzono"
|
||||||
updatedAt: "Zaktualizowano"
|
updatedAt: "Zaktualizowano"
|
||||||
|
@ -829,14 +760,12 @@ noMaintainerInformationWarning: "Informacje o administratorze nie są skonfiguro
|
||||||
noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane."
|
noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane."
|
||||||
configure: "Skonfiguruj"
|
configure: "Skonfiguruj"
|
||||||
postToGallery: "Opublikuj w galerii"
|
postToGallery: "Opublikuj w galerii"
|
||||||
postToHashtag: "Postuj do tego hashtagu"
|
|
||||||
gallery: "Galeria"
|
gallery: "Galeria"
|
||||||
recentPosts: "Ostatnie wpisy"
|
recentPosts: "Ostatnie wpisy"
|
||||||
popularPosts: "Popularne wpisy"
|
popularPosts: "Popularne wpisy"
|
||||||
shareWithNote: "Udostępnij z wpisem"
|
shareWithNote: "Udostępnij z wpisem"
|
||||||
ads: "Reklamy"
|
ads: "Reklamy"
|
||||||
expiration: "Ankieta kończy się"
|
expiration: "Ankieta kończy się"
|
||||||
startingperiod: "Początek"
|
|
||||||
memo: "Notatki"
|
memo: "Notatki"
|
||||||
priority: "Priorytet"
|
priority: "Priorytet"
|
||||||
high: "Wysoki"
|
high: "Wysoki"
|
||||||
|
@ -863,19 +792,13 @@ translatedFrom: "Przetłumaczone z {x}"
|
||||||
accountDeletionInProgress: "Trwa usuwanie konta"
|
accountDeletionInProgress: "Trwa usuwanie konta"
|
||||||
usernameInfo: "Nazwa, która identyfikuje Twoje konto spośród innych na tym serwerze. Możesz użyć alfabetu (a~z, A~Z), cyfr (0~9) lub podkreślników (_). Nazwy użytkownika nie mogą być później zmieniane."
|
usernameInfo: "Nazwa, która identyfikuje Twoje konto spośród innych na tym serwerze. Możesz użyć alfabetu (a~z, A~Z), cyfr (0~9) lub podkreślników (_). Nazwy użytkownika nie mogą być później zmieniane."
|
||||||
aiChanMode: "Tryb Ai"
|
aiChanMode: "Tryb Ai"
|
||||||
devMode: "Tryb programisty"
|
|
||||||
keepCw: "Zostaw ostrzeżenia o zawartości"
|
keepCw: "Zostaw ostrzeżenia o zawartości"
|
||||||
pubSub: "Konta Pub/Sub"
|
pubSub: "Konta Pub/Sub"
|
||||||
lastCommunication: "Ostatnia komunikacja"
|
|
||||||
resolved: "Rozwiązane"
|
resolved: "Rozwiązane"
|
||||||
unresolved: "Nierozwiązane"
|
unresolved: "Nierozwiązane"
|
||||||
breakFollow: "Usuń obserwującego"
|
breakFollow: "Usuń obserwującego"
|
||||||
breakFollowConfirm: "Czy na pewno usunąć tego obserwującego?"
|
|
||||||
itsOn: "Włączone"
|
itsOn: "Włączone"
|
||||||
itsOff: "Wyłączone"
|
itsOff: "Wyłączone"
|
||||||
on: "Włączone"
|
|
||||||
off: "Wyłączone"
|
|
||||||
emailRequiredForSignup: "Wymagaj adresu e-mail do rejestracji"
|
|
||||||
unread: "Nieodczytane"
|
unread: "Nieodczytane"
|
||||||
filter: "Filtr"
|
filter: "Filtr"
|
||||||
controlPanel: "Panel sterowania"
|
controlPanel: "Panel sterowania"
|
||||||
|
@ -885,8 +808,8 @@ makeReactionsPublicDescription: "To spowoduje, że lista wszystkich Twoich dotyc
|
||||||
classic: "Klasyczny"
|
classic: "Klasyczny"
|
||||||
muteThread: "Wycisz wątek"
|
muteThread: "Wycisz wątek"
|
||||||
unmuteThread: "Wyłącz wyciszenie wątku"
|
unmuteThread: "Wyłącz wyciszenie wątku"
|
||||||
followingVisibility: "Widoczność obserwacji"
|
ffVisibility: "Widoczność obserwowanych/obserwujących"
|
||||||
followersVisibility: "Widoczność obserwujących"
|
ffVisibilityDescription: "Pozwala skonfigurować, kto może zobaczyć, kogo obserwujesz i kto Cię obserwuje."
|
||||||
continueThread: "Pokaż kontynuację wątku"
|
continueThread: "Pokaż kontynuację wątku"
|
||||||
deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?"
|
deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?"
|
||||||
incorrectPassword: "Nieprawidłowe hasło."
|
incorrectPassword: "Nieprawidłowe hasło."
|
||||||
|
@ -899,14 +822,9 @@ overridedDeviceKind: "Typ urządzenia"
|
||||||
smartphone: "Smartfon"
|
smartphone: "Smartfon"
|
||||||
tablet: "Tablet"
|
tablet: "Tablet"
|
||||||
auto: "Automatycznie"
|
auto: "Automatycznie"
|
||||||
themeColor: "Motyw kolorystyczny"
|
|
||||||
size: "Rozmiar"
|
size: "Rozmiar"
|
||||||
numberOfColumn: "Liczba kolumn"
|
numberOfColumn: "Liczba kolumn"
|
||||||
searchByGoogle: "Szukaj"
|
searchByGoogle: "Szukaj"
|
||||||
instanceDefaultLightTheme: "Domyślny motyw dla trybu jasnego"
|
|
||||||
instanceDefaultDarkTheme: "Domyślny motyw dla trybu ciemnego"
|
|
||||||
instanceDefaultThemeDescription: "Opis domyślnego motywu instancji"
|
|
||||||
mutePeriod: "Okres wyciszenia"
|
|
||||||
period: "Ankieta kończy się"
|
period: "Ankieta kończy się"
|
||||||
indefinitely: "Nigdy"
|
indefinitely: "Nigdy"
|
||||||
tenMinutes: "10 minut"
|
tenMinutes: "10 minut"
|
||||||
|
@ -915,50 +833,29 @@ oneDay: "1 dzień"
|
||||||
oneWeek: "1 tydzień"
|
oneWeek: "1 tydzień"
|
||||||
oneMonth: "jeden miesiąc"
|
oneMonth: "jeden miesiąc"
|
||||||
failedToFetchAccountInformation: "Nie udało się uzyskać informacji o koncie"
|
failedToFetchAccountInformation: "Nie udało się uzyskać informacji o koncie"
|
||||||
rateLimitExceeded: "Limit szybkości przekroczony"
|
|
||||||
cropImage: "Przytnij obraz"
|
|
||||||
cropImageAsk: "Czy chcesz przyciąć obrazek?"
|
|
||||||
cropYes: "Tak, przytnij"
|
|
||||||
cropNo: "Nie chce przycinać"
|
|
||||||
file: "Pliki"
|
file: "Pliki"
|
||||||
recentNHours: "W ciągu ostatnich {n} godzin"
|
|
||||||
recentNDays: "W ciągu ostatnich {n} dni"
|
|
||||||
noEmailServerWarning: "Serwer Email nie jest skonfigurowany"
|
|
||||||
recommended: "Zalecane"
|
recommended: "Zalecane"
|
||||||
check: "Zweryfikuj"
|
check: "Zweryfikuj"
|
||||||
driveCapOverrideLabel: "Zmień limit pojemności dysku użytkownika"
|
|
||||||
requireAdminForView: "Aby to zobaczyć, musisz być administratorem"
|
|
||||||
isSystemAccount: "To jest konto stworzone i zarządzane przez system"
|
|
||||||
typeToConfirm: "Wprowadź {x}, aby potwierdzić"
|
|
||||||
deleteAccount: "Usuń konto"
|
deleteAccount: "Usuń konto"
|
||||||
document: "Dokumentacja"
|
document: "Dokumentacja"
|
||||||
numberOfPageCache: "Ilość stron w cache"
|
numberOfPageCache: "Ilość stron w cache"
|
||||||
numberOfPageCacheDescription: "Zwiększenie tej liczby polepszy wygodę, ale spowoduje większe obciążenie jako użycie pamięci na urządzeniu użytkownika."
|
|
||||||
logoutConfirm: "Czy na pewno chcesz się wylogować?"
|
logoutConfirm: "Czy na pewno chcesz się wylogować?"
|
||||||
lastActiveDate: "Ostatnio użyte w"
|
lastActiveDate: "Ostatnio użyte w"
|
||||||
statusbar: "Pasek stanu"
|
statusbar: "Pasek stanu"
|
||||||
pleaseSelect: "Wybierz opcję"
|
pleaseSelect: "Wybierz opcję"
|
||||||
reverse: "Odwróć"
|
reverse: "Odwróć"
|
||||||
colored: "Kolorowe"
|
colored: "Kolorowe"
|
||||||
refreshInterval: "Okres aktualizacji"
|
|
||||||
label: "Etykieta"
|
label: "Etykieta"
|
||||||
type: "Typ"
|
type: "Typ"
|
||||||
speed: "Prędkość"
|
speed: "Prędkość"
|
||||||
slow: "Wolny"
|
|
||||||
fast: "Szybki"
|
|
||||||
sensitiveMediaDetection: "Detekcja wrażliwej zawartości"
|
|
||||||
localOnly: "Lokalne tylko"
|
localOnly: "Lokalne tylko"
|
||||||
remoteOnly: "Tylko zdalne instancje"
|
|
||||||
failedToUpload: "Przesyłanie nie powiodło się"
|
failedToUpload: "Przesyłanie nie powiodło się"
|
||||||
cannotUploadBecauseInappropriate: "Nie można przesłać tego pliku, ponieważ jego części zostały wykryte jako potencjalnie nieodpowiednie."
|
cannotUploadBecauseInappropriate: "Nie można przesłać tego pliku, ponieważ jego części zostały wykryte jako potencjalnie nieodpowiednie."
|
||||||
cannotUploadBecauseNoFreeSpace: "Przesyłanie nie powiodło się z powodu braku miejsca na dysku."
|
cannotUploadBecauseNoFreeSpace: "Przesyłanie nie powiodło się z powodu braku miejsca na dysku."
|
||||||
cannotUploadBecauseExceedsFileSizeLimit: "Nie można przesłać pliku, ponieważ wykracza on poza limit wielkości pliku."
|
|
||||||
beta: "Beta"
|
beta: "Beta"
|
||||||
enableAutoSensitive: "Automatyczne oznaczanie NSFW"
|
enableAutoSensitive: "Automatyczne oznaczanie NSFW"
|
||||||
enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie zawartości NSFW za pomocą uczenia maszynowego. Nawet jeśli ta opcja jest wyłączona, może być włączona w całej instancji."
|
enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie zawartości NSFW za pomocą uczenia maszynowego. Nawet jeśli ta opcja jest wyłączona, może być włączona w całej instancji."
|
||||||
activeEmailValidationDescription: "Włącza bardziej restrykcyjną walidację adresów e-mail, co obejmuje sprawdzanie adresów jednorazowych i czy komunikacja z tym adresem jest możliwa. Gdy wyłączone, tylko format adresu e-mail jest sprawdzany."
|
|
||||||
navbar: "Pasek nawigacyjny"
|
navbar: "Pasek nawigacyjny"
|
||||||
shuffle: "Mieszaj"
|
|
||||||
account: "Konta"
|
account: "Konta"
|
||||||
move: "Przenieś"
|
move: "Przenieś"
|
||||||
pushNotification: "Powiadomienia"
|
pushNotification: "Powiadomienia"
|
||||||
|
@ -968,74 +865,21 @@ pushNotificationAlreadySubscribed: "Powiadomienia push są włączone"
|
||||||
pushNotificationNotSupported: "Przeglądarka lub instancja nie obsługuje powiadomień push"
|
pushNotificationNotSupported: "Przeglądarka lub instancja nie obsługuje powiadomień push"
|
||||||
sendPushNotificationReadMessage: "Usuń powiadomienia push po przeczytaniu powiadomień i wiadomości."
|
sendPushNotificationReadMessage: "Usuń powiadomienia push po przeczytaniu powiadomień i wiadomości."
|
||||||
sendPushNotificationReadMessageCaption: "Chwilowo pojawi się powiadomienie \"{emptyPushNotificationMessage}\". Może wzrosnąć zużycie baterii urządzenia."
|
sendPushNotificationReadMessageCaption: "Chwilowo pojawi się powiadomienie \"{emptyPushNotificationMessage}\". Może wzrosnąć zużycie baterii urządzenia."
|
||||||
windowMaximize: "Maksymalizuj"
|
|
||||||
windowMinimize: "Minimalizuj"
|
|
||||||
windowRestore: "Przywróć"
|
|
||||||
caption: "Legenda"
|
|
||||||
loggedInAsBot: "Jesteś obecnie zalogowany/a jako bot"
|
loggedInAsBot: "Jesteś obecnie zalogowany/a jako bot"
|
||||||
tools: "Narzędzia"
|
|
||||||
cannotLoad: "Nie można wczytać"
|
|
||||||
numberOfProfileView: "Wyświetlenia profilu"
|
|
||||||
like: "Polub"
|
like: "Polub"
|
||||||
unlike: "Usuń polubienie"
|
|
||||||
numberOfLikes: "Liczba polubień"
|
|
||||||
show: "Wyświetlanie"
|
show: "Wyświetlanie"
|
||||||
neverShow: "Nie pokazuj ponownie"
|
|
||||||
remindMeLater: "Przypomnij później"
|
|
||||||
didYouLikeMisskey: "Czy Misskey się tobie spodobało?"
|
|
||||||
pleaseDonate: "{host} używa darmowego oprogramowania — Misskey. Bylibyśmy bardzo wdzięczni za datki, które pozwolą na kontynuację rozwoju Misskey!"
|
|
||||||
correspondingSourceIsAvailable: "Odpowiedni kod źródłowy jest dostępny pod {anchor}."
|
|
||||||
roles: "Role"
|
|
||||||
role: "Rola"
|
|
||||||
noRole: "Rola nie znaleziona"
|
|
||||||
normalUser: "Normalny użytkownik"
|
|
||||||
undefined: "Niezdefiniowane"
|
|
||||||
assign: "Przydziel"
|
|
||||||
unassign: "Cofnij przydzielenie"
|
|
||||||
color: "Kolor"
|
color: "Kolor"
|
||||||
manageCustomEmojis: "Zarządzaj niestandardowymi Emoji"
|
|
||||||
manageAvatarDecorations: "Zarządzaj dekoracjami awatara"
|
|
||||||
invalidParamError: "Błąd parametrów"
|
|
||||||
permissionDeniedError: "Odrzucono operacje"
|
|
||||||
permissionDeniedErrorDescription: "Konto nie posiada uprawnień"
|
|
||||||
preset: "Konfiguracja"
|
|
||||||
selectFromPresets: "Wybierz konfiguracje"
|
|
||||||
achievements: "Osiągnięcia"
|
|
||||||
thisPostMayBeAnnoyingCancel: "Odrzuć"
|
|
||||||
internalServerError: "Wewnętrzny błąd serwera"
|
|
||||||
internalServerErrorDescription: "Niespodziewany błąd po stronie serwera"
|
|
||||||
copyErrorInfo: "Kopiuj informacje o błędzie"
|
|
||||||
joinThisServer: "Dołącz do chaty"
|
|
||||||
disableFederationOk: "Wyłącz federacje"
|
|
||||||
invitationRequiredToRegister: "Ten serwer wymaga zaproszenia. Tylko osoby z zaproszeniem mogą się zarejestrować"
|
|
||||||
emailNotSupported: "Wysyłanie wiadomości E-mail nie jest obsługiwane na tym serwerze"
|
|
||||||
postToTheChannel: "Publikuj na kanale"
|
|
||||||
youFollowing: "Śledzeni"
|
youFollowing: "Śledzeni"
|
||||||
icon: "Awatar"
|
icon: "Awatar"
|
||||||
replies: "Odpowiedz"
|
replies: "Odpowiedz"
|
||||||
renotes: "Udostępnij"
|
renotes: "Udostępnij"
|
||||||
sourceCode: "Kod źródłowy"
|
|
||||||
flip: "Odwróć"
|
flip: "Odwróć"
|
||||||
lastNDays: "W ciągu ostatnich {n} dni"
|
|
||||||
surrender: "Odrzuć"
|
|
||||||
gameRetry: "Spróbuj ponownie"
|
|
||||||
_delivery:
|
|
||||||
stop: "Zawieszono"
|
|
||||||
_type:
|
|
||||||
none: "Publikowanie"
|
|
||||||
_bubbleGame:
|
|
||||||
_score:
|
|
||||||
score: "Wynik"
|
|
||||||
_role:
|
_role:
|
||||||
assignTarget: "Przydziel"
|
|
||||||
priority: "Priorytet"
|
priority: "Priorytet"
|
||||||
_priority:
|
_priority:
|
||||||
low: "Niski"
|
low: "Niski"
|
||||||
middle: "Średnie"
|
middle: "Średnie"
|
||||||
high: "Wysoki"
|
high: "Wysoki"
|
||||||
_options:
|
|
||||||
canManageCustomEmojis: "Zarządzaj niestandardowymi Emoji"
|
|
||||||
canManageAvatarDecorations: "Zarządzaj dekoracjami awatara"
|
|
||||||
_sensitiveMediaDetection:
|
_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."
|
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"
|
setSensitiveFlagAutomatically: "Oznacz jako NSFW"
|
||||||
|
@ -1205,6 +1049,7 @@ _theme:
|
||||||
buttonBg: "Tło przycisku"
|
buttonBg: "Tło przycisku"
|
||||||
buttonHoverBg: "Tło przycisku (po najechaniu)"
|
buttonHoverBg: "Tło przycisku (po najechaniu)"
|
||||||
inputBorder: "Obramowanie pola wejścia"
|
inputBorder: "Obramowanie pola wejścia"
|
||||||
|
listItemHoverBg: "Tło elementu listy (po najechaniu)"
|
||||||
driveFolderBg: "Tło folderu na dysku"
|
driveFolderBg: "Tło folderu na dysku"
|
||||||
wallpaperOverlay: "Nakładka tapety"
|
wallpaperOverlay: "Nakładka tapety"
|
||||||
badge: "Odznaka"
|
badge: "Odznaka"
|
||||||
|
@ -1216,6 +1061,8 @@ _sfx:
|
||||||
note: "Wpisy"
|
note: "Wpisy"
|
||||||
noteMy: "Mój wpis"
|
noteMy: "Mój wpis"
|
||||||
notification: "Powiadomienia"
|
notification: "Powiadomienia"
|
||||||
|
antenna: "Anteny"
|
||||||
|
channel: "Powiadomienia kanału"
|
||||||
_ago:
|
_ago:
|
||||||
future: "W przyszłości"
|
future: "W przyszłości"
|
||||||
justNow: "Przed chwilą"
|
justNow: "Przed chwilą"
|
||||||
|
@ -1389,7 +1236,6 @@ _profile:
|
||||||
_exportOrImport:
|
_exportOrImport:
|
||||||
allNotes: "Wszystkie wpisy"
|
allNotes: "Wszystkie wpisy"
|
||||||
favoritedNotes: "Ulubione wpisy"
|
favoritedNotes: "Ulubione wpisy"
|
||||||
clips: "Klip"
|
|
||||||
followingList: "Obserwowani"
|
followingList: "Obserwowani"
|
||||||
muteList: "Wycisz"
|
muteList: "Wycisz"
|
||||||
blockingList: "Zablokuj"
|
blockingList: "Zablokuj"
|
||||||
|
@ -1505,7 +1351,6 @@ _notification:
|
||||||
reaction: "Reakcja"
|
reaction: "Reakcja"
|
||||||
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
|
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
|
||||||
followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji"
|
followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji"
|
||||||
login: "Zaloguj się"
|
|
||||||
app: "Powiadomienia z aplikacji"
|
app: "Powiadomienia z aplikacji"
|
||||||
_actions:
|
_actions:
|
||||||
followBack: "zaobserwował cię z powrotem"
|
followBack: "zaobserwował cię z powrotem"
|
||||||
|
@ -1540,6 +1385,7 @@ _webhookSettings:
|
||||||
createWebhook: "Stwórz Webhook"
|
createWebhook: "Stwórz Webhook"
|
||||||
name: "Nazwa"
|
name: "Nazwa"
|
||||||
secret: "Sekret"
|
secret: "Sekret"
|
||||||
|
events: "Uruchomienie Webhooka"
|
||||||
active: "Właczono"
|
active: "Właczono"
|
||||||
_events:
|
_events:
|
||||||
follow: "Po zaobserwowaniu użytkownika"
|
follow: "Po zaobserwowaniu użytkownika"
|
||||||
|
@ -1549,12 +1395,6 @@ _webhookSettings:
|
||||||
renote: "Po udostępnieniu wpisu"
|
renote: "Po udostępnieniu wpisu"
|
||||||
reaction: "Po otrzymaniu reakcji"
|
reaction: "Po otrzymaniu reakcji"
|
||||||
mention: "Po zostaniu wspomnianym"
|
mention: "Po zostaniu wspomnianym"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Adres e-mail"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "Zawieś"
|
suspend: "Zawieś"
|
||||||
resetPassword: "Zresetuj hasło"
|
resetPassword: "Zresetuj hasło"
|
||||||
_reversi:
|
|
||||||
total: "Łącznie"
|
|
||||||
|
|
1311
locales/pt-PT.yml
1311
locales/pt-PT.yml
File diff suppressed because it is too large
Load diff
|
@ -2,7 +2,6 @@
|
||||||
_lang_: "Română"
|
_lang_: "Română"
|
||||||
headlineMisskey: "O rețea conectată prin note"
|
headlineMisskey: "O rețea conectată prin note"
|
||||||
introMisskey: "Bine ai venit! Misskey este un serviciu de microblogging open source și decentralizat.\nCreează \"note\" cu care să îți poți împărți gândurile cu oricine din jurul tău. 📡\nCu \"reacții\" îți poți expirma rapid părerea despre notele oricui. 👍\nHai să explorăm o lume nouă! 🚀"
|
introMisskey: "Bine ai venit! Misskey este un serviciu de microblogging open source și decentralizat.\nCreează \"note\" cu care să îți poți împărți gândurile cu oricine din jurul tău. 📡\nCu \"reacții\" îți poți expirma rapid părerea despre notele oricui. 👍\nHai să explorăm o lume nouă! 🚀"
|
||||||
poweredByMisskeyDescription: "{name} este unul dintre serviciile care se folosește de platforma open source <b>Misskey</b>."
|
|
||||||
monthAndDay: "{day}/{month}"
|
monthAndDay: "{day}/{month}"
|
||||||
search: "Caută"
|
search: "Caută"
|
||||||
notifications: "Notificări"
|
notifications: "Notificări"
|
||||||
|
@ -13,14 +12,12 @@ fetchingAsApObject: "Se aduce din Fediverse..."
|
||||||
ok: "OK"
|
ok: "OK"
|
||||||
gotIt: "Am înțeles!"
|
gotIt: "Am înțeles!"
|
||||||
cancel: "Anulează"
|
cancel: "Anulează"
|
||||||
noThankYou: "Nu, mulțumesc."
|
|
||||||
enterUsername: "Introdu numele de utilizator"
|
enterUsername: "Introdu numele de utilizator"
|
||||||
renotedBy: "Re-notat de {user}"
|
renotedBy: "Re-notat de {user}"
|
||||||
noNotes: "Nicio notă"
|
noNotes: "Nicio notă"
|
||||||
noNotifications: "Nicio notificare"
|
noNotifications: "Nicio notificare"
|
||||||
instance: "Instanță"
|
instance: "Instanță"
|
||||||
settings: "Setări"
|
settings: "Setări"
|
||||||
notificationSettings: "Setări notificări"
|
|
||||||
basicSettings: "Setări generale"
|
basicSettings: "Setări generale"
|
||||||
otherSettings: "Alte Setări"
|
otherSettings: "Alte Setări"
|
||||||
openInWindow: "Deschide într-o fereastră"
|
openInWindow: "Deschide într-o fereastră"
|
||||||
|
@ -45,20 +42,12 @@ pin: "Fixează pe profil"
|
||||||
unpin: "Anulati fixare"
|
unpin: "Anulati fixare"
|
||||||
copyContent: "Copiază conținutul"
|
copyContent: "Copiază conținutul"
|
||||||
copyLink: "Copiază link-ul"
|
copyLink: "Copiază link-ul"
|
||||||
copyLinkRenote: "Copiază linkul pentru renote"
|
|
||||||
delete: "Şterge"
|
delete: "Şterge"
|
||||||
deleteAndEdit: "Șterge și editează"
|
deleteAndEdit: "Șterge și editează"
|
||||||
deleteAndEditConfirm: "Ești sigur că vrei să ștergi această notă și să o editezi? Vei pierde reacțiile, re-notele și răspunsurile acesteia."
|
deleteAndEditConfirm: "Ești sigur că vrei să ștergi această notă și să o editezi? Vei pierde reacțiile, re-notele și răspunsurile acesteia."
|
||||||
addToList: "Adaugă în listă"
|
addToList: "Adaugă în listă"
|
||||||
addToAntenna: "Adaugă la antenă"
|
|
||||||
sendMessage: "Trimite un mesaj"
|
sendMessage: "Trimite un mesaj"
|
||||||
copyRSS: "Copiază RSS"
|
|
||||||
copyUsername: "Copiază numele de utilizator"
|
copyUsername: "Copiază numele de utilizator"
|
||||||
copyUserId: "Copiază numele de utilizator"
|
|
||||||
copyNoteId: "Copiază ID-ul notiței"
|
|
||||||
copyFileId: "Copiază ID-ul fișierului"
|
|
||||||
copyFolderId: "Copiază ID-ul folderului"
|
|
||||||
copyProfileUrl: "Copiază URL profil"
|
|
||||||
searchUser: "Caută un utilizator"
|
searchUser: "Caută un utilizator"
|
||||||
reply: "Răspunde"
|
reply: "Răspunde"
|
||||||
loadMore: "Incarcă mai mult"
|
loadMore: "Incarcă mai mult"
|
||||||
|
@ -111,8 +100,6 @@ renoted: "Re-notat."
|
||||||
cantRenote: "Această postare nu poate fi re-notată."
|
cantRenote: "Această postare nu poate fi re-notată."
|
||||||
cantReRenote: "O re-notă nu poate fi re-notată."
|
cantReRenote: "O re-notă nu poate fi re-notată."
|
||||||
quote: "Citează"
|
quote: "Citează"
|
||||||
inChannelRenote: "Renotează în canal"
|
|
||||||
inChannelQuote: "Citează în canal"
|
|
||||||
pinnedNote: "Notă fixată"
|
pinnedNote: "Notă fixată"
|
||||||
pinned: "Fixat pe profil"
|
pinned: "Fixat pe profil"
|
||||||
you: "Tu"
|
you: "Tu"
|
||||||
|
@ -121,6 +108,7 @@ sensitive: "NSFW"
|
||||||
add: "Adaugă"
|
add: "Adaugă"
|
||||||
reaction: "Reacție"
|
reaction: "Reacție"
|
||||||
reactions: "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."
|
reactionSettingDescription2: "Trage pentru a rearanja, apasă pe \"+\" pentru a adăuga."
|
||||||
rememberNoteVisibility: "Amintește setarea de vizibilitate a notelor"
|
rememberNoteVisibility: "Amintește setarea de vizibilitate a notelor"
|
||||||
attachCancel: "Înlătură atașament"
|
attachCancel: "Înlătură atașament"
|
||||||
|
@ -129,8 +117,6 @@ unmarkAsSensitive: "Demarchează ca NSFW"
|
||||||
enterFileName: "Introduceţi numele fişierului"
|
enterFileName: "Introduceţi numele fişierului"
|
||||||
mute: "Amuțește"
|
mute: "Amuțește"
|
||||||
unmute: "Înlătură amuțirea"
|
unmute: "Înlătură amuțirea"
|
||||||
renoteMute: "Renotări pe modul silențios"
|
|
||||||
renoteUnmute: "Scoate renotările de pe modul silențios"
|
|
||||||
block: "Blochează"
|
block: "Blochează"
|
||||||
unblock: "Deblochează"
|
unblock: "Deblochează"
|
||||||
suspend: "Suspendă"
|
suspend: "Suspendă"
|
||||||
|
@ -140,10 +126,7 @@ unblockConfirm: "Ești sigur ca vrei să deblochezi acest cont?"
|
||||||
suspendConfirm: "Ești sigur ca vrei să suspendezi acest cont?"
|
suspendConfirm: "Ești sigur ca vrei să suspendezi acest cont?"
|
||||||
unsuspendConfirm: "Ești sigur ca vrei să nu mai suspendezi acest cont?"
|
unsuspendConfirm: "Ești sigur ca vrei să nu mai suspendezi acest cont?"
|
||||||
selectList: "Selectează o listă"
|
selectList: "Selectează o listă"
|
||||||
editList: "Editați lista"
|
|
||||||
selectChannel: "Selectaţi canalul"
|
|
||||||
selectAntenna: "Selectează o antenă"
|
selectAntenna: "Selectează o antenă"
|
||||||
editAntenna: "Editează antena"
|
|
||||||
selectWidget: "Selectați un widget"
|
selectWidget: "Selectați un widget"
|
||||||
editWidgets: "Editează widget-urile"
|
editWidgets: "Editează widget-urile"
|
||||||
editWidgetsExit: "Terminat"
|
editWidgetsExit: "Terminat"
|
||||||
|
@ -156,7 +139,6 @@ addEmoji: "Adaugă un emoji"
|
||||||
settingGuide: "Setări recomandate"
|
settingGuide: "Setări recomandate"
|
||||||
cacheRemoteFiles: "Ține fișierele externe in cache"
|
cacheRemoteFiles: "Ține fișierele externe in cache"
|
||||||
cacheRemoteFilesDescription: "Când această setare este dezactivată, fișierele externe sunt încărcate direct din instanța externă. Dezactivarea va scădea utilizarea spațiului de stocare, dar va crește traficul, deoarece thumbnail-urile nu vor fi generate."
|
cacheRemoteFilesDescription: "Când această setare este dezactivată, fișierele externe sunt încărcate direct din instanța externă. Dezactivarea va scădea utilizarea spațiului de stocare, dar va crește traficul, deoarece thumbnail-urile nu vor fi generate."
|
||||||
youCanCleanRemoteFilesCache: "Poți goli cache-ul prin a apăsa pe butonul de 🗑️ din fereastra de gestionare a fișierelor."
|
|
||||||
flagAsBot: "Marchează acest cont ca bot"
|
flagAsBot: "Marchează acest cont ca bot"
|
||||||
flagAsBotDescription: "Activează această opțiune dacă acest cont este controlat de un program. Daca e activată, aceasta va juca rolul unui indicator pentru dezvoltatori pentru a preveni interacțiunea în lanțuri infinite cu ceilalți boți și ajustează sistemele interne al Misskey pentru a trata acest cont drept un bot."
|
flagAsBotDescription: "Activează această opțiune dacă acest cont este controlat de un program. Daca e activată, aceasta va juca rolul unui indicator pentru dezvoltatori pentru a preveni interacțiunea în lanțuri infinite cu ceilalți boți și ajustează sistemele interne al Misskey pentru a trata acest cont drept un bot."
|
||||||
flagAsCat: "Marchează acest cont ca pisică"
|
flagAsCat: "Marchează acest cont ca pisică"
|
||||||
|
@ -359,8 +341,6 @@ hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Activează hCaptcha"
|
enableHcaptcha: "Activează hCaptcha"
|
||||||
hcaptchaSiteKey: "Site key"
|
hcaptchaSiteKey: "Site key"
|
||||||
hcaptchaSecretKey: "Secret key"
|
hcaptchaSecretKey: "Secret key"
|
||||||
mcaptchaSiteKey: "Site key"
|
|
||||||
mcaptchaSecretKey: "Secret key"
|
|
||||||
recaptcha: "reCAPTCHA"
|
recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Activează reCAPTCHA"
|
enableRecaptcha: "Activează reCAPTCHA"
|
||||||
recaptchaSiteKey: "Site key"
|
recaptchaSiteKey: "Site key"
|
||||||
|
@ -413,6 +393,7 @@ share: "Distribuie"
|
||||||
notFound: "Nu a fost găsit"
|
notFound: "Nu a fost găsit"
|
||||||
notFoundDescription: "N-a fost găsită nicio pagină cu acest URL."
|
notFoundDescription: "N-a fost găsită nicio pagină cu acest URL."
|
||||||
uploadFolder: "Folder implicit pentru încărcări"
|
uploadFolder: "Folder implicit pentru încărcări"
|
||||||
|
cacheClear: "Golește cache-ul"
|
||||||
markAsReadAllNotifications: "Marchează toate notificările drept citit"
|
markAsReadAllNotifications: "Marchează toate notificările drept citit"
|
||||||
markAsReadAllUnreadNotes: "Marchează toate notele drept citit"
|
markAsReadAllUnreadNotes: "Marchează toate notele drept citit"
|
||||||
markAsReadAllTalkMessages: "Marchează toate mesajele drept citit"
|
markAsReadAllTalkMessages: "Marchează toate mesajele drept citit"
|
||||||
|
@ -453,6 +434,7 @@ or: "Sau"
|
||||||
language: "Limbă"
|
language: "Limbă"
|
||||||
uiLanguage: "Limba interfeței"
|
uiLanguage: "Limba interfeței"
|
||||||
aboutX: "Despre {x}"
|
aboutX: "Despre {x}"
|
||||||
|
disableDrawer: "Nu folosi meniuri în stil sertar"
|
||||||
noHistory: "Nu există istoric"
|
noHistory: "Nu există istoric"
|
||||||
signinHistory: "Istoric autentificări"
|
signinHistory: "Istoric autentificări"
|
||||||
doing: "Se procesează..."
|
doing: "Se procesează..."
|
||||||
|
@ -625,7 +607,10 @@ abuseReported: "Raportul tău a fost trimis. Mulțumim."
|
||||||
reporter: "Raportorul"
|
reporter: "Raportorul"
|
||||||
reporteeOrigin: "Originea raportatului"
|
reporteeOrigin: "Originea raportatului"
|
||||||
reporterOrigin: "Originea raportorului"
|
reporterOrigin: "Originea raportorului"
|
||||||
|
forwardReport: "Redirecționează raportul către instanța externă"
|
||||||
|
forwardReportIsAnonymous: "În locul contului tău, va fi afișat un cont anonim, de sistem, ca raportor către instanța externă."
|
||||||
send: "Trimite"
|
send: "Trimite"
|
||||||
|
abuseMarkAsResolved: "Marchează raportul ca rezolvat"
|
||||||
openInNewTab: "Deschide în tab nou"
|
openInNewTab: "Deschide în tab nou"
|
||||||
openInSideView: "Deschide în vedere laterală"
|
openInSideView: "Deschide în vedere laterală"
|
||||||
defaultNavigationBehaviour: "Comportament de navigare implicit"
|
defaultNavigationBehaviour: "Comportament de navigare implicit"
|
||||||
|
@ -647,10 +632,6 @@ show: "Arată"
|
||||||
icon: "Avatar"
|
icon: "Avatar"
|
||||||
replies: "Răspunde"
|
replies: "Răspunde"
|
||||||
renotes: "Re-notează"
|
renotes: "Re-notează"
|
||||||
_delivery:
|
|
||||||
stop: "Suspendat"
|
|
||||||
_type:
|
|
||||||
none: "Publicare"
|
|
||||||
_role:
|
_role:
|
||||||
_priority:
|
_priority:
|
||||||
middle: "Mediu"
|
middle: "Mediu"
|
||||||
|
@ -668,8 +649,6 @@ _sfx:
|
||||||
notification: "Notificări"
|
notification: "Notificări"
|
||||||
_ago:
|
_ago:
|
||||||
invalid: "Nu e nimic de văzut aici"
|
invalid: "Nu e nimic de văzut aici"
|
||||||
_2fa:
|
|
||||||
renewTOTPCancel: "Nu, mulțumesc."
|
|
||||||
_widgets:
|
_widgets:
|
||||||
profile: "Profil"
|
profile: "Profil"
|
||||||
instanceInfo: "Informații despre instanță"
|
instanceInfo: "Informații despre instanță"
|
||||||
|
@ -711,7 +690,6 @@ _notification:
|
||||||
renote: "Re-notează"
|
renote: "Re-notează"
|
||||||
quote: "Citează"
|
quote: "Citează"
|
||||||
reaction: "Reacție"
|
reaction: "Reacție"
|
||||||
login: "Autentifică-te"
|
|
||||||
_actions:
|
_actions:
|
||||||
reply: "Răspunde"
|
reply: "Răspunde"
|
||||||
renote: "Re-notează"
|
renote: "Re-notează"
|
||||||
|
@ -725,12 +703,6 @@ _deck:
|
||||||
mentions: "Mențiuni"
|
mentions: "Mențiuni"
|
||||||
_webhookSettings:
|
_webhookSettings:
|
||||||
name: "Nume"
|
name: "Nume"
|
||||||
_abuseReport:
|
|
||||||
_notificationRecipient:
|
|
||||||
_recipientType:
|
|
||||||
mail: "Email"
|
|
||||||
_moderationLogTypes:
|
_moderationLogTypes:
|
||||||
suspend: "Suspendă"
|
suspend: "Suspendă"
|
||||||
resetPassword: "Resetează parola"
|
resetPassword: "Resetează parola"
|
||||||
_reversi:
|
|
||||||
total: "Total"
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue