Firefish v1.0.4-dev6

This commit is contained in:
naskya 2023-07-31 19:16:47 +09:00
parent d51b463918
commit 9b3ddbb027
Signed by: naskya
GPG key ID: 164DFF24E2D40139
129 changed files with 5353 additions and 2329 deletions

View file

@ -29,6 +29,10 @@ url: https://example.com/
# The port that your Firefish server should listen on. # The port that your Firefish server should listen on.
port: 3000 port: 3000
# The bind host your Calckey server should listen on.
# If unspecified, the wildcard address will be used.
#bind: 127.0.0.1
# ┌──────────────────────────┐ # ┌──────────────────────────┐
#───┘ PostgreSQL configuration └──────────────────────────────── #───┘ PostgreSQL configuration └────────────────────────────────

3
.gitignore vendored
View file

@ -72,6 +72,3 @@ yarn*
# Cargo cache for Docker # Cargo cache for Docker
/.cargo-cache /.cargo-cache
/.cargo-target /.cargo-target
issue_template
pull_request_template.yml

View file

@ -1,6 +1,25 @@
# Changelog # Changelog
All changes from v13.0.0 onwards, for a list of differences read FIREFISH.md ## [1.0.3] - 2023-07-21
### Bug Fixes
- Fix: :bento: fix old favicon
- Fix: :bento: asset versioning, screenshots
- Fix: :adhesive_bandage: version manifest assets based on instance version
### Refactor
- Refactor: :recycle: create drive file endpoint
Adjusts ratelimit to 250 files every 10 minutes, fixes error text, fixes reused variable name.
- Refactor: sticky-container class
- Refactor: :recycle: new git repo
## [1.0.0] - 2023-07-19 ## [1.0.0] - 2023-07-19
@ -14979,3 +14998,65 @@ Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
<!-- generated by git-cliff --> <!-- generated by git-cliff -->
## FoundKey
In the commits above, a few of these changes were added from [FoundKey](https://akkoma.dev/FoundKeyGang/FoundKey), although the majority have been refactored. Below is a historical list of all commits that were cherry picked:
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0ece67b04c3f0365057624c1068808276ccab981: refactor pages/auth.form.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4bc9610d8bf5af736b5e89e4782395705de45d7d: remove unnecessary joins
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/9ee609d70082f7a6dc119a5d83c0e7c5e1208676: enhance privacy of notes
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0fec6e10477b1c1b95d9469fbaf4e249a3722f12: remove ms dependency
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/46fff77accbe8bf0fd3cc88170d67b997bf2bdc3: client uses new API for child notes depth
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/c35372a20d22cddb75e93a0b407f2b652cd7faf0: pack children without detail
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/aca724e0bfff3e58b4d273f3ee744e3f3aa9c39b: enable to fetch replies recursively
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/2fe64c11502fd8d89c126558cd715e095c83754e: Refactor components/page/page.textarea.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/6d3181f9835955e5b79bde5484c74bd70e7f9535: Refactor components/page/page.text.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/b630cd7eacd695bb705e6748c87f38425ec4ed45: refactor: add NoteReactions.packMany
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/3fe351df6d4e21f7748c46adfa6ca165abd030c0: fix: catch errors from packing with detail
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/63591da33e233b2ed0ab331ae6bb3c9eff5020ae: refactor: colours in queue chart
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0f6d94f1e7e1f58cfbf8d07e5f835f8de626842e: backend: improve mutes and blocks
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/e2bf2715a6462ed377b033956d65260157f042ea: fix spelling error
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/09a7eabda137e77f81ab31f65d69329670693c8d: backend: fix lint "no-throw-literal"
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4fbe2e065e75ed3e5b4dfdfd4be3baa03cc447c3: client: fix lint "quotes"
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/585e4f5c42cfafb6cdf7eb601ab435d6a4d85a96: fix textarea not updating properly
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/30d8bc9259cb6b72ed76d67b21dbb4cdceca8327: refactor: welcome.setup.vue to composition api
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/751921e24f37ed707fe44a40d88eebb1299efa35: make emoji picker case insensitive
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/298febeb9c9501e3e3df16982c08657d1da474e0: enhance: add re-collapsing to quoted notes
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/b0fdedb264db87575063abed45e52ad71ce4a6af: fix lints in folder.vue
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/6fed87f85d132304eb84b0a59b84dce299a1822f: fix pagination.vue lints
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/384e8c49b738f576ba8843296de6cebf01c1b247: server: allow to like own gallery posts
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4c5aa9e53887cca5561fcec6ab0754e018f589a5: server: allow to like own pages
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/923c93da1228458dd65be47483c198a1a9191bcf: use await for notes.countBy
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ca90cedba0a0704b503c2778694230f5a7dfbace: server: reduce dead instance detection to 7 days
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/e9ab42c10afb4e27516c2d2b5e3e06630efe9edd: Alt text in image viewer
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ed9d4023d41bba7c4ac53a1a3422246feed37de2: add argon2 support
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/c414f24a2c123774246c7eca65edda4d3afaf8b3: feat: per-user renote muting

View file

@ -2,7 +2,7 @@
We're glad you're interested in contributing Firefish! In this document you will find the information you need to contribute to the project. We're glad you're interested in contributing Firefish! In this document you will find the information you need to contribute to the project.
## Translation (i18n) ## Translation (i18n)
Firefish uses [Weblate](hhttps://hosted.weblate.org/engage/firefish/) for translation and internationalization management. Firefish uses [Weblate](https://hosted.weblate.org/engage/firefish/) for translation and internationalization management.
If your language is not listed in Weblate, please open an issue. If your language is not listed in Weblate, please open an issue.

View file

@ -1,166 +0,0 @@
# All the changes to Firefish from stock Misskey
> **Warning**
> This list is incomplete. Please check the [Releases](https://git.joinfirefish.org/firefish/firefish/releases) and [Changelog](https://git.joinfirefish.org/firefish/firefish/src/branch/develop/CHANGELOG.md) for a more complete list of changes. There have been [>4000 commits (laggy link)](https://git.joinfirefish.org/firefish/firefish/compare/700a7110f7e34f314b070987aa761c451ec34efc...develop) since we forked Misskey!
## Planned
- Stucture
- Rewrite backend in Rust and [Rocket](https://rocket.rs/)
- Function
- User "choices" (recommended users) and featured hashtags like Mastodon and Soapbox
- Join Reason system like Mastodon/Pleroma
- Option to publicize server blocks
- More antenna options
- Groups
## Work in progress
- Better Messaging UI
- Better API Documentation
- Remote follow button
- Improve accesibility
- Timeline filters
- Events
- Fully revamp non-logged-in screen
- Optionally use [ScyllaDB](https://www.scylladb.com/open-source-nosql-database/) for storing notes
## Implemented
- A lot of general bugfixes
- pnpm instead of yarn
- Fix Dockerfile @hanna
- Upgrade packages with security vunrabilities
- Saner defaults
- Fediverse account migration
- Recommended servers timeline
- OCR image captioning
- Improve mobile UX
- Swipe through pages on mobile
- Redesigned mobile bottom nav bar
- Post button on TL
- Star as default reaction
- Like/star button
- Rosé Pine by default (+ non-themable elements made Rosé Pine)
- Better sidebar/navbar
- Better intro tutorial/onboarding
- Add back groups
- Integrate groups UI into chats UI
- MOTD (customizable by admins!)
- Custom randomized splash icons
- Self hosted, newly designed error images
- Illustrated by [Henki](https://www.youtube.com/c/Henkiwashere)!
- Licensed under the CC-BY-SA 4.0.
- Better timeline top bar
- Improved note style
- Make more of the post clickable like every other SNS
- No more details tag for reply attachments
- Better CW button
- Mark as read from notifications widget
- Less cluttered notification summary
- Better welcome screen (not logged in)
- vue-plyr as video/audio player
- Ability to turn off "Connection lost" message
- Raw server info only for moderators
- New spinner animation
- Spinner instead of "Loading..."
- Always signToActivityPubGet
- Spacing on group items
- Quotes have solid border
- Reply limit bug fixed
- Make showing the update popup optional
- Improve PWA manifest
- Fix incoming chat scrolling globally
- Update notifier
- Allow admins to set logo URL via admin settings
- Allow importing follows from Pixelfed
- Phosphor icons instead of FontAwesome
- Fully deprecate MkEmojiPickerWindow in favor of MkEmojiPickerDialog
- Link hover effect
- Replace all `$ts` with i18n
- AVIF support
- Page drafts
- Patron list
- Animations respect reduced motion
- Undo renote button inside original note
- Custom locales
- Obliteration of Ai-chan
- Switch to [Firefish.js](https://git.joinfirefish.org/firefish/firefish.js)
- Woozy mode 🥴
- Improve blocking servers
- Release notes
- New post style
- Admins set default reaction emoji
- Allows custom emoji
- Fix lint errors
- Use Rome instead of ESLint
- Mastodon API support
- More antenna options
- New dashboard
- Backfill follower counts
- Compile time compression
- Sonic search
- Popular color schemes, including Nord, Gruvbox, and Catppuccin
- Non-nyaify cat mode
- Post imports from other Firefish/Misskey/Mastodon/Pleroma/Akkoma servers
- Improve Classic mode
- Proper Helm/Kubernetes config
- Multiple boost visibilities
- Improve system emails
- Mod mail
- Focus trapping and button labels
- Meilisearch with filters
- Post editing
- Display remaining time on rate-limits
- Proper 2FA input dialog
- Let moderators see moderation nodes
- Non-mangled unicode emojis
- Skin tone selection support
- [DragonflyDB](https://dragonflydb.io/) support as a Redis alternative
- Link verification
- Importing posts from other Firefish/Misskey/Mastodon/Akkoma/Pleroma instances
## Implemented (remote)
- MissV: [fix Misskey Forkbomb](https://code.vtopia.live/Vtopia/MissV/commit/40b23c070bd4adbb3188c73546c6c625138fb3c1)
- [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996)
- [Tapping avatar in mobile opens account modal](https://github.com/misskey-dev/misskey/pull/9056)
- [OAuth bearer token authentication](https://github.com/misskey-dev/misskey/pull/9021)
- [Styled Repair Tools](https://github.com/misskey-dev/misskey/pull/8956)
- [Option to make enter send message](https://github.com/misskey-dev/misskey/pull/8954)
- [Autocomplete in messaging](https://github.com/misskey-dev/misskey/pull/8955)
- [Profile background as banner](https://codeberg.org/Freeplay/Misskey-Tweaks/src/branch/main/snippets/profile-background.styl)
- [Star is generic like/favorite](https://github.com/JakeMBauer/Misskey-Extras/blob/master/patches/star-is-like.patch)
- 👍 also triggers generic like/favorite
- [Add additional background for acrylic popups if backdrop-filter is unsupported](https://github.com/misskey-dev/misskey/pull/8671)
- [Add parameters to MFM rotate](https://github.com/misskey-dev/misskey/pull/8549)
- Many changes from [FoundKey](https://akkoma.dev/FoundKeyGang/FoundKey)
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0ece67b04c3f0365057624c1068808276ccab981: refactor pages/auth.form.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4bc9610d8bf5af736b5e89e4782395705de45d7d: remove unnecessary joins
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/9ee609d70082f7a6dc119a5d83c0e7c5e1208676: enhance privacy of notes
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0fec6e10477b1c1b95d9469fbaf4e249a3722f12: remove ms dependency
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/46fff77accbe8bf0fd3cc88170d67b997bf2bdc3: client uses new API for child notes depth
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/c35372a20d22cddb75e93a0b407f2b652cd7faf0: pack children without detail
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/aca724e0bfff3e58b4d273f3ee744e3f3aa9c39b: enable to fetch replies recursively
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/2fe64c11502fd8d89c126558cd715e095c83754e: Refactor components/page/page.textarea.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/6d3181f9835955e5b79bde5484c74bd70e7f9535: Refactor components/page/page.text.vue to composition API
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/b630cd7eacd695bb705e6748c87f38425ec4ed45: refactor: add NoteReactions.packMany
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/3fe351df6d4e21f7748c46adfa6ca165abd030c0: fix: catch errors from packing with detail
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/63591da33e233b2ed0ab331ae6bb3c9eff5020ae: refactor: colours in queue chart
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/0f6d94f1e7e1f58cfbf8d07e5f835f8de626842e: backend: improve mutes and blocks
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/e2bf2715a6462ed377b033956d65260157f042ea: fix spelling error
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/09a7eabda137e77f81ab31f65d69329670693c8d: backend: fix lint "no-throw-literal"
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4fbe2e065e75ed3e5b4dfdfd4be3baa03cc447c3: client: fix lint "quotes"
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/585e4f5c42cfafb6cdf7eb601ab435d6a4d85a96: fix textarea not updating properly
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/30d8bc9259cb6b72ed76d67b21dbb4cdceca8327: refactor: welcome.setup.vue to composition api
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/751921e24f37ed707fe44a40d88eebb1299efa35: make emoji picker case insensitive
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/298febeb9c9501e3e3df16982c08657d1da474e0: enhance: add re-collapsing to quoted notes
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/b0fdedb264db87575063abed45e52ad71ce4a6af: fix lints in folder.vue
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/6fed87f85d132304eb84b0a59b84dce299a1822f: fix pagination.vue lints
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/384e8c49b738f576ba8843296de6cebf01c1b247: server: allow to like own gallery posts
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/4c5aa9e53887cca5561fcec6ab0754e018f589a5: server: allow to like own pages
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/923c93da1228458dd65be47483c198a1a9191bcf: use await for notes.countBy
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ca90cedba0a0704b503c2778694230f5a7dfbace: server: reduce dead instance detection to 7 days
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/e9ab42c10afb4e27516c2d2b5e3e06630efe9edd: Alt text in image viewer
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ed9d4023d41bba7c4ac53a1a3422246feed37de2: add argon2 support
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/c414f24a2c123774246c7eca65edda4d3afaf8b3: feat: per-user renote muting

View file

@ -1,13 +0,0 @@
# Replace example.tld with your domain
<VirtualHost *:80>
ServerName example.tld
# For WebSocket
ProxyPass "/streaming" "ws://127.0.0.1:3000/streaming/"
# Proxy to Node
ProxyPass "/" "http://127.0.0.1:3000/"
ProxyPassReverse "/" "http://127.0.0.1:3000/"
ProxyPreserveHost On
# For files proxy
AllowEncodedSlashes On
</VirtualHost>

View file

@ -53,7 +53,7 @@ A fun, new, open way to experience social media https://joinfirefish.org
| elasticsearch | object | `{"auth":{},"enabled":false,"hostname":"","port":9200,"ssl":false}` | https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters | | elasticsearch | object | `{"auth":{},"enabled":false,"hostname":"","port":9200,"ssl":false}` | https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters |
| fullnameOverride | string | `""` | | | fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | | | image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"docker.io/thatonecalculator/firefish"` | | | image.repository | string | `"registry.joinfirefish.org/firefish/firefish"` | |
| image.tag | string | `""` | | | image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | | | imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | | | ingress.annotations | object | `{}` | |

View file

@ -5,7 +5,7 @@
replicaCount: 1 replicaCount: 1
image: image:
repository: docker.io/thatonecalculator/firefish repository: registry.joinfirefish.org/firefish/firefish
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion. # Overrides the image tag whose default is the chart appVersion.
tag: "" tag: ""

View file

@ -4,7 +4,6 @@
# changelog header # changelog header
header = """ header = """
# Changelog\n # Changelog\n
All changes from v13.0.0 onwards, for a list of differences read FIREFISH.md\n
""" """
# template for the changelog body # template for the changelog body
# https://tera.netlify.app/docs/#introduction # https://tera.netlify.app/docs/#introduction

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View file

@ -2,7 +2,7 @@ version: "3"
services: services:
web: web:
image: docker.io/thatonecalculator/firefish image: registry.joinfirefish.org/firefish/firefish
build: .. build: ..
container_name: firefish_web container_name: firefish_web
restart: always restart: always

View file

@ -2,7 +2,7 @@ version: "3"
services: services:
web: web:
image: docker.io/thatonecalculator/firefish image: registry.joinfirefish.org/firefish/firefish
container_name: firefish_web container_name: firefish_web
restart: unless-stopped restart: unless-stopped
depends_on: depends_on:

View file

@ -1,7 +1,7 @@
# 🐳 Running a Firefish server with Docker # 🐳 Running a Firefish server with Docker
## Pre-built docker container ## Pre-built docker container
[thatonecalculator/firefish](https://hub.docker.com/r/thatonecalculator/firefish) [registry.joinfirefish.org/firefish/firefish](https://git.joinfirefish.org/firefish/firefish/container_registry)
## `docker-compose` ## `docker-compose`
@ -29,7 +29,7 @@ Everything else can be left as-is.
## Running docker-compose ## Running docker-compose
The [prebuilt container for firefish](https://hub.docker.com/r/thatonecalculator/firefish) is fairly large, and may take a few minutes to download and extract using docker. The [prebuilt container for firefish](https://git.joinfirefish.org/firefish/firefish/container_registry) is fairly large, and may take a few minutes to download and extract using docker.
Copy `docker-compose.yml` and the `config/` to a directory, then run the **docker-compose** command: Copy `docker-compose.yml` and the `config/` to a directory, then run the **docker-compose** command:
`docker-compose up -d`. `docker-compose up -d`.

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "العربية" _lang_: "العربية"
headlineMisskey: "شبكة مرتبطة بالملاحظات" headlineFirefish: "شبكة مرتبطة بالملاحظات"
introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀" introFirefish: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "البحث" search: "البحث"
notifications: "الإشعارات" notifications: "الإشعارات"

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "বাংলা" _lang_: "বাংলা"
headlineMisskey: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক" headlineFirefish: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক"
introMisskey: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n" introFirefish: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "খুঁজুন" search: "খুঁজুন"
notifications: "বিজ্ঞপ্তি" notifications: "বিজ্ঞপ্তি"

View file

@ -1 +1,421 @@
_lang_: Български _lang_: Български
cancel: Отмяна
noNotes: Няма публикации
settings: Настройки
headlineFirefish: Децентрализирана социална медийна платформа с отворен код, която
е безплатна завинаги! 🚀
notifications: Известия
forgotPassword: Забравена парола
uploading: Качване...
addInstance: Добави сървър
favorite: Добави в отметки
delete: Изтрий
unpin: Откачи от профила
copyLink: Копирай връзката
pin: Закачи в профила
deleted: Изтрито
deleteAndEditConfirm: Сигурни ли сте, че искате да изтриете тази публикация и да я
редактирате? Ще загубите всички реакции, подсилвания и отговори към нея.
copyUsername: Копирай потребителското име
searchUser: Търсене на потребител
reply: Отговори
showMore: Покажи още
loadMore: Зареди още
followRequestAccepted: Заявка за последване приета
importAndExport: Импорт/Експорт на Данни
import: Импортиране
download: Свали
export: Експортиране
files: Файлове
unblock: Отблокирай
_sensitiveMediaDetection:
setSensitiveFlagAutomatically: Маркиране като деликатно
searchWith: 'Търсене: {q}'
smtpUser: Потребителско име
notificationType: Тип известие
searchResult: Резултати от търсенето
searchByGoogle: Търсене
markAsReadAllNotifications: Маркирай всички известия като прочетени
settingGuide: Препоръчителни настройки
smtpPass: Парола
newPasswordIs: Новата парола е "{password}"
members: Членове
help: Помощ
hide: Скрий
group: Група
groups: Групи
incorrectPassword: Грешна парола.
leaveGroup: Напусни групата
numberOfColumn: Брой колони
passwordLessLogin: Вписване без парола
newPasswordRetype: Въведи отново парола
saveAs: Запази като...
resetPassword: Нулиране на парола
saveConfirm: Запазване на промените?
inputNewFolderName: Въведи ново име на папка
upload: Качване
retypedNotMatch: Въвежданията не съвпадат.
_ago:
weeksAgo: преди {n}с
secondsAgo: преди {n}сек
hoursAgo: преди {n}ч
minutesAgo: преди {n}мин
daysAgo: преди {n}д
monthsAgo: преди {n}м
yearsAgo: преди {n}г
future: Бъдеще
justNow: Точно сега
folderName: Име на папка
renameFile: Преименувай файл
_widgets:
activity: Дейност
notifications: Известия
timeline: Инфопоток
instanceSecurity: Сигурност на сървъра
uploadFolder: Папка по подразбиране за качвания
instanceInfo: Информация за сървъра
statistics: Статистика
fileName: Име на файл
selectFile: Избери файл
editProfile: Редактирай профил
instances: Сървъри
selectUser: Избери потребител
createNew: Създай ново
blockThisInstance: Блокирай този сървър
_profile:
metadata: Допълнителна информация
username: Потребителско име
name: Име
description: Биография
metadataContent: Съдържание
addAccount: Добави акаунт
followRequestPending: Заявка за последване в изчакване
signinHistory: История на вписванията
or: Или
noUsers: Няма потребители
notes: Публикации
newNoteRecived: Има нови публикации
note: Публикация
instanceFollowing: Последвани на сървъра
_filters:
followersOnly: Само последователи
notesAfter: Публикации след
fromDomain: От домейн
_notification:
_types:
follow: Нови последователи
mention: Споменавания
reaction: Реакции
_channel:
notesCount: '{n} Публикации'
unfollow: Отследване
noLists: Нямаш никакви списъци
markAsReadAllUnreadNotes: Маркирай всички публикации като прочетени
markAsReadAllTalkMessages: Маркирай всички съобщения като прочетени
_time:
second: Секунд(а/и)
hour: Час(а)
day: Дни
minute: Минут(а/и)
create: Създай
lists: Списъци
reportAbuseOf: Докладвай {name}
reporter: Докладчик
abuseReports: Доклади
logoImageUrl: URL на лого изображение
reportAbuse: Доклад
latestRequestReceivedAt: Последно получена заявка
location: Местонахождение
keepOriginalUploading: Запази оригиналното изображение
renotesCount: Брой изпратени подсилвания
license: Лиценз
lastUsedDate: Последно използвано на
rename: Преименувай
customEmojis: Персонализирани емоджита
emoji: Емоджи
_aboutFirefish:
translation: Преведи Calckey
translatedFrom: Преведено от {x}
i18nInfo: Calckey се превежда на различни езици от доброволци. Можете да помогнете
на адрес {link}.
image: Изображение
recipient: Получател(и)
notesAndReplies: Публикации и отговори
noSuchUser: Потребителят не е намерен
pinnedPages: Закачени страници
pinLimitExceeded: Не може да закачаш повече публикации
flagShowTimelineReplies: Показване на отговори в инфопотока
followersCount: Брой последователи
receivedReactionsCount: Брой получени реакции
federation: Федерация
today: Днес
yearX: '{year}'
registeredAt: Регистриран на
monthX: '{month}'
dayX: '{day}'
registration: Регистрация
popularUsers: Популярни потребители
details: Детайли
tenMinutes: 10 минути
oneDay: Един ден
file: Файл
oneHour: Един час
video: Видео
createNewClip: Създай нова подборка
clips: Подборки
active: Активен
menu: Меню
itsOff: Изключено
remindMeLater: Може би по-късно
removed: Успешно изтриване
deleteAllFiles: Изтрий всички файлове
deletedNote: Изтрита публикация
deleteConfirm: Потвърждавате ли изтриването?
hasChildFilesOrFolders: Тъй като тази папка не е празна, тя не може да бъде изтрита.
nsfw: Деликатно съдържание
default: По подразбиране
_theme:
defaultValue: Стойност по подразбиране
keys:
mention: Споменаване
renote: Подсили
color: Цвят
_pages:
script:
blocks:
_dailyRannum:
arg1: Минимална стойност
arg2: Максимална стойност
_join:
arg1: Списъци
add: Добави
_rannum:
arg1: Минимална стойност
arg2: Максимална стойност
_seedRannum:
arg3: Максимална стойност
arg2: Минимална стойност
categories:
value: Стойности
list: Списъци
blocks:
_textInput:
default: Стойност по подразбиране
_switch:
default: Стойност по подразбиране
_textareaInput:
default: Стойност по подразбиране
_numberInput:
default: Стойност по подразбиране
_radioButton:
default: Стойност по подразбиране
_deck:
_columns:
notifications: Известия
mentions: Споменавания
tl: Инфопоток
direct: Директни съобщения
_mfm:
mention: Споменаване
search: Търсене
_messaging:
groups: Групи
apps: Приложения
introFirefish: Добре дошли! Calckey е децентрализирана социална медийна платформа с
отворен код, която е безплатна завинаги! 🚀
monthAndDay: '{day}/{month}'
search: Търсене
searchPlaceholder: Търсене в Calckey
username: Потребителско име
password: Парола
fetchingAsApObject: Извличане от федивърса
ok: Добре
gotIt: Разбрах!
noThankYou: Не, благодаря
enterUsername: Въведи потребителско име
renotedBy: Подсилено от {user}
noNotifications: Няма известия
instance: Сървър
basicSettings: Основни Настройки
otherSettings: Други Настройки
openInWindow: Отвори в прозорец
profile: Профил
timeline: Инфопоток
noAccountDescription: Този потребител все още не е написал своята биография.
login: Впиши се
loggingIn: Вписване
logout: Отпиши се
signup: Регистрирай се
save: Запазване
users: Потребители
addUser: Добави потребител
favorites: Отметки
unfavorite: Премахни от отметки
favorited: Добавено в отметки.
alreadyFavorited: Вече е добавено в отметки.
cantFavorite: Неуспешно добавяне в отметки.
copyContent: Копирай съдържанието
deleteAndEdit: Изтрий и редактирай
editNote: Редактирай бележка
edited: Редактирано на {date} {time}
addToList: Добави в списък
sendMessage: Изпрати съобщение
jumpToPrevious: Премини към предишно
newer: по-ново
older: по-старо
showLess: Затвори
youGotNewFollower: те последва
receiveFollowRequest: Заявка за последване получена
mention: Споменаване
mentions: Споменавания
directNotes: Директни съобщения
cw: Предупреждение за съдържание
followers: Последователи
following: Последвани
followsYou: Следва те
createList: Създай списък
error: Грешка
manageLists: Управление на списъци
retry: Повторен опит
follow: Следване
followRequest: Заявка за последване
followRequests: Заявки за последване
defaultNoteVisibility: Видимост по подразбиране
unrenote: Върни обратно подсилване
renoted: Подсилено.
cantRenote: Тази публикация не може да бъде подсилена.
renote: Подсили
enterEmoji: Въведи емоджи
sensitive: Деликатно съдържание
add: Добави
pinned: Закачено в профила
quote: Цитирай
pinnedNote: Закачена публикация
cantReRenote: Подсилване не може да бъде подсилено.
clickToShow: Кликни за показване
you: Ти
reaction: Реакции
removeReaction: Премахни реакцията си
enterFileName: Въведи име на файл
unmarkAsSensitive: Отмаркирай като деликатно
markAsSensitive: Маркирай като деликатно
block: Блокирай
emojis: Емоджита
addEmoji: Добави
emojiName: Име на емоджи
emojiUrl: URL на емоджи
loginFailed: Неуспешно вписване
flagAsCat: Котка ли си? 😺
flagSpeakAsCat: Говори като котка
youHaveNoLists: Нямаш никакви списъци
selectInstance: Избери сървър
annotation: Коментари
latestRequestSentAt: Последно изпратена заявка
stopActivityDelivery: Спри изпращането на дейности
version: Версия
clearCachedFiles: Изтрий кеш
noInstances: Няма сървъри
federating: Федериране
defaultValueIs: 'По подразбиране: {value}'
noCustomEmojis: Няма емоджи
changePassword: Промени парола
currentPassword: Настояща парола
instanceUsers: Потребители на този сървър
security: Сигурност
instanceFollowers: Последователи на сървъра
newPassword: Нова парола
more: Още!
remove: Изтрий
saved: Запазено
messaging: Чат
birthday: Рожден ден
images: Изображения
activity: Дейност
createFolder: Създай папка
renameFolder: Преименувай тази папка
selectFolders: Избери папки
selectFolder: Избери папка
selectFiles: Избери файлове
addFile: Добави на файл
inputNewFileName: Въведи ново име на файл
deleteFolder: Изтрий тази папка
emptyFolder: Тази папка е празна
copyUrl: Копирай URL
pages: Страници
thisYear: Година
thisMonth: Месец
pinnedNotes: Закачени публикации
pinnedUsers: Закачени потребители
hcaptcha: hCaptcha
recaptcha: reCAPTCHA
name: Име
enableRecaptcha: Включване на reCAPTCHA
enableHcaptcha: Включване на hCaptcha
exploreUsersCount: Има {count} потребители
userList: Списъци
moderator: Модератор
moderation: Модерация
administrator: Администратор
lastUsed: Последно използвано
unregister: Отрегистрация
share: Сподели
notFound: Не е намерено
inputMessageHere: Въведи съобщение тук
createGroup: Създай група
close: Затвори
next: Следващо
title: Заглавие
messagingWithGroup: Групов чат
enable: Включи
retype: Въведи отново
noteOf: Публикация от {user}
quoteAttached: Цитат
newMessageExists: Има нови съобщения
noMessagesYet: Все още няма съобщения
language: Език
createAccount: Създай акаунт
existingAccount: Съществуващ акаунт
deleteAll: Изтрий всички
enableAll: Включване на всички
disableAll: Изключване на всички
copy: Копирай
reporteeOrigin: Произход на докладвания
reporterOrigin: Произход на докладчика
clip: Подборка
unclip: Премахни от подборка
followingCount: Брой последвани акаунти
renotedCount: Брой получени подсилвания
notesCount: Брой публикации
repliesCount: Брой изпратени отговори
repliedCount: Брой получени отговори
sentReactionsCount: Брой изпратени реакции
yes: Да
no: Не
alwaysMarkSensitive: Маркирай като деликатно по подразбиране
noteFavoritesCount: Брой публикации с отметки
left: Ляво
nNotes: '{n} Публикации'
value: Стойност
createdAt: Създадено на
invalidValue: Невалидна стойност.
currentVersion: Настояща версия
latestVersion: Най-нова версия
typingUsers: '{users} пише'
user: Потребител
enabled: Включено
disabled: Изключено
whatIsNew: Покажи промените
translate: Преведи
itsOn: Включено
oneWeek: Една седмица
audio: Звук
removeQuote: Премахни цитат
_sfx:
notification: Известия
_2fa:
renewTOTPCancel: Отмяна
_permissions:
"read:favorites": Виж списъка си с отметки
"write:favorites": Редактирай списъка си с отметки
_visibility:
followers: Последователи

View file

@ -1,7 +1,7 @@
_lang_: "Català" _lang_: "Català"
headlineMisskey: "Una xarxa social de codi obert, descentralitzada i gratuïta per headlineFirefish: "Una xarxa social de codi obert, descentralitzada i gratuïta per
a sempre! 🚀" a sempre! 🚀"
introMisskey: "Benvinguts! Firefish és una plataforma social de codi obert, descentralitzada introFirefish: "Benvinguts! Firefish és una plataforma social de codi obert, descentralitzada
i gratuïta per a sempre! 🚀" i gratuïta per a sempre! 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Cerca" search: "Cerca"
@ -116,7 +116,7 @@ reaction: "Reaccions"
reactionSetting: "Reaccions a mostrar al selector de reaccions" reactionSetting: "Reaccions a mostrar al selector de reaccions"
reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem
\"+\" per afegir." \"+\" per afegir."
rememberNoteVisibility: "Recorda la configuració de visibilitat de les notes" rememberNoteVisibility: "Recorda la configuració de visibilitat de les publicacions"
attachCancel: "Elimina el fitxer adjunt" attachCancel: "Elimina el fitxer adjunt"
markAsSensitive: "Marca com a NSFW" markAsSensitive: "Marca com a NSFW"
unmarkAsSensitive: "Desmarca com a NSFW" unmarkAsSensitive: "Desmarca com a NSFW"
@ -418,7 +418,7 @@ _exportOrImport:
blockingList: "Bloqueja" blockingList: "Bloqueja"
userLists: "Llistes" userLists: "Llistes"
excludeMutingUsers: Exclou els usuaris silenciats excludeMutingUsers: Exclou els usuaris silenciats
allNotes: Totes les notes allNotes: Totes les publicacions
excludeInactiveUsers: Exclou usuaris inactius excludeInactiveUsers: Exclou usuaris inactius
_pages: _pages:
script: script:
@ -633,7 +633,7 @@ _pages:
if: Si if: Si
_if: _if:
variable: Variable variable: Variable
post: Formulari de notes post: Formulari de publicació
_post: _post:
text: Contingut text: Contingut
attachCanvasImage: Adjuntar imatge de llenç attachCanvasImage: Adjuntar imatge de llenç
@ -841,7 +841,7 @@ blockedUsers: Usuaris blocats
noUsers: No hi ha cap usuari noUsers: No hi ha cap usuari
editProfile: Edita el perfil editProfile: Edita el perfil
noteDeleteConfirm: Segur que vols eliminar la publicació? noteDeleteConfirm: Segur que vols eliminar la publicació?
pinLimitExceeded: No pots fixar més notes pinLimitExceeded: No pots fixar més publicacions
muteAndBlock: Silenciats i blocats muteAndBlock: Silenciats i blocats
mutedUsers: Usuaris silenciats mutedUsers: Usuaris silenciats
done: Fet done: Fet
@ -1044,7 +1044,7 @@ pinnedClipId: ID del clip que vols fixar
hcaptcha: hCaptcha hcaptcha: hCaptcha
manageAntennas: Gestiona les Antenes manageAntennas: Gestiona les Antenes
name: Nom name: Nom
notesAndReplies: Notes i respostes notesAndReplies: Publicacions i respostes
silence: Posa en silenci silence: Posa en silenci
withFiles: Amb fitxers withFiles: Amb fitxers
popularUsers: Usuaris populars popularUsers: Usuaris populars
@ -1070,7 +1070,7 @@ notFoundDescription: No es pot trobar cap pàgina que correspongui a aquesta adr
uploadFolder: Carpeta per defecte per pujar arxius uploadFolder: Carpeta per defecte per pujar arxius
cacheClear: Netejar la memòria cau cacheClear: Netejar la memòria cau
markAsReadAllNotifications: Marca totes les notificacions com llegides markAsReadAllNotifications: Marca totes les notificacions com llegides
markAsReadAllUnreadNotes: Marca totes les notes com a llegides markAsReadAllUnreadNotes: Marca totes les publicacions com a llegides
markAsReadAllTalkMessages: Marca tots els missatges com llegits markAsReadAllTalkMessages: Marca tots els missatges com llegits
help: Ajuda help: Ajuda
inputMessageHere: Escriu aquí el missatge inputMessageHere: Escriu aquí el missatge
@ -1140,7 +1140,7 @@ promote: Promoure
numberOfDays: Nombre de dies numberOfDays: Nombre de dies
objectStorageBaseUrl: Adreça URL base objectStorageBaseUrl: Adreça URL base
hideThisNote: Amaga aquesta publicació hideThisNote: Amaga aquesta publicació
showFeaturedNotesInTimeline: Mostra les notes destacades a les líneas de temps showFeaturedNotesInTimeline: Mostra les publicacions destacades a les línees de temps
objectStorage: Emmagatzematge d'objectes objectStorage: Emmagatzematge d'objectes
useObjectStorage: Fes servir l'emmagatzema d'objectes useObjectStorage: Fes servir l'emmagatzema d'objectes
expandTweet: Amplia el tuit expandTweet: Amplia el tuit
@ -1211,7 +1211,7 @@ notificationSetting: Preferències de notificacions
makeActive: Activar makeActive: Activar
notificationSettingDesc: Tria el tipus de notificació que es veure. notificationSettingDesc: Tria el tipus de notificació que es veure.
notifyAntenna: Notificar publicacions noves notifyAntenna: Notificar publicacions noves
withFileAntenna: Només notes amb fitxers withFileAntenna: Només publicacions amb fitxers
enableServiceworker: Activa les notificacions push per al teu navegador enableServiceworker: Activa les notificacions push per al teu navegador
antennaUsersDescription: Escriu un nom d'usuari per línea antennaUsersDescription: Escriu un nom d'usuari per línea
antennaInstancesDescription: Escriu la adreça d'un servidor per línea antennaInstancesDescription: Escriu la adreça d'un servidor per línea
@ -1294,7 +1294,7 @@ defaultNavigationBehaviour: Navegació per defecte
editTheseSettingsMayBreakAccount: Si edites aquestes configuracions pots fer mal bé editTheseSettingsMayBreakAccount: Si edites aquestes configuracions pots fer mal bé
el teu compte. el teu compte.
userSilenced: Aquest usuari ha sigut silenciat. userSilenced: Aquest usuari ha sigut silenciat.
instanceTicker: Informació de notes del servidor instanceTicker: Informació de publicacions del servidor
waitingFor: Esperant a {x} waitingFor: Esperant a {x}
random: Aleatori random: Aleatori
system: Sistema system: Sistema
@ -1312,18 +1312,18 @@ no: No
noCrawle: Rebutjar la indexació dels restrejadors noCrawle: Rebutjar la indexació dels restrejadors
driveUsage: Espai fet servir al Disk driveUsage: Espai fet servir al Disk
noCrawleDescription: No permetre que els buscadors guardin la informació de les pàgines noCrawleDescription: No permetre que els buscadors guardin la informació de les pàgines
de perfil, notes, Pàgines, etc. de perfil, publicacions, Pàgines, etc.
alwaysMarkSensitive: Marcar per defecte com a NSFW alwaysMarkSensitive: Marcar per defecte com a NSFW
lockedAccountInfo: Si has configurat la visibilitat del compte per "Només seguidors" lockedAccountInfo: Si has configurat la visibilitat del compte per "Només seguidors"
les teves notes no seren visibles per a ningú més, inclús si has d'aprovar els teus les teves publicacions no serien visibles per a ningú més, inclús si has d'aprovar
seguidors manualment. els teus seguidors manualment.
disableShowingAnimatedImages: No reproduir les imatges animades disableShowingAnimatedImages: No reproduir les imatges animades
verificationEmailSent: S'ha enviat correu electrònic de verificació. Si us plau segueix verificationEmailSent: S'ha enviat correu electrònic de verificació. Si us plau segueix
les instruccions per completar la verificació. les instruccions per completar la verificació.
notSet: Sense especificar notSet: Sense especificar
emailVerified: El correu electrònic s'ha verificat emailVerified: El correu electrònic s'ha verificat
loadRawImages: Carregar les imatges originals en comptes de mostrar les miniatures loadRawImages: Carregar les imatges originals en comptes de mostrar les miniatures
noteFavoritesCount: Nombre de notes afegides a favorits noteFavoritesCount: Nombre de publicacions afegides a favorits
useSystemFont: Fes servir la font per defecte del sistema useSystemFont: Fes servir la font per defecte del sistema
contact: Contacte contact: Contacte
clips: Retalls clips: Retalls
@ -1331,7 +1331,7 @@ experimentalFeatures: Característiques experimentals
developer: Desenvolupador developer: Desenvolupador
makeExplorableDescription: Si desactives aquesta funció el teu compte no sortirà a makeExplorableDescription: Si desactives aquesta funció el teu compte no sortirà a
la secció "Explora". la secció "Explora".
showGapBetweenNotesInTimeline: Mostra un espai entre notes a la línea de temps showGapBetweenNotesInTimeline: Mostra un espai entre publicacions a la línea de temps
makeExplorable: Fes el compte visible a "Explora" makeExplorable: Fes el compte visible a "Explora"
duplicate: Duplicar duplicate: Duplicar
left: Esquerra left: Esquerra
@ -1343,14 +1343,14 @@ needReloadToApply: Es requereix recarregar la pàgina perquè això surti efecte
showTitlebar: Mostrar la barra de títol showTitlebar: Mostrar la barra de títol
onlineUsersCount: Hi han {n} usuaris connectats onlineUsersCount: Hi han {n} usuaris connectats
nUsers: '{n} Usuaris' nUsers: '{n} Usuaris'
nNotes: '{n} Notes' nNotes: '{n} Publicacions'
sendErrorReports: Enviar informe d'error sendErrorReports: Enviar informe d'error
clearCache: Netejar memòria cau clearCache: Netejar memòria cau
switchAccount: Canvia de compte switchAccount: Canvia de compte
enabled: Activat enabled: Activat
configure: Configurar configure: Configurar
noBotProtectionWarning: La protecció contra bots no està configurada. noBotProtectionWarning: La protecció contra bots no està configurada.
ads: Publicitat ads: Bàners comunitaris
ratio: Ràtio ratio: Ràtio
global: Global global: Global
sent: Enviat sent: Enviat
@ -1445,7 +1445,7 @@ _ad:
reduceFrequencyOfThisAd: Mostrar aquest anunci menys reduceFrequencyOfThisAd: Mostrar aquest anunci menys
_gallery: _gallery:
my: La meva Galeria my: La meva Galeria
liked: Notes que m'han agradat liked: Publicacions que m'han agradat
unlike: Elimina m'agrada unlike: Elimina m'agrada
like: M'agrada like: M'agrada
_forgotPassword: _forgotPassword:
@ -1605,8 +1605,8 @@ _aboutFirefish:
patronsList: Llistats cronològicament, no per la quantitat donada. Fes una donació patronsList: Llistats cronològicament, no per la quantitat donada. Fes una donació
amb l'enllaç de dalt per veure el teu nom aquí! amb l'enllaç de dalt per veure el teu nom aquí!
donateTitle: T'agrada Firefish? donateTitle: T'agrada Firefish?
pleaseDonateToFirefish: Penseu en fer una donació a Firefish per donar suport al seu pleaseDonateToFirefish: Penseu en fer una donació a Firefish per donar suport al
desenvolupament. seu desenvolupament.
pleaseDonateToHost: Penseu també en fer una donació a la vostre instància, {host}, pleaseDonateToHost: Penseu també en fer una donació a la vostre instància, {host},
per ajudar-lo a suportar els costos de funcionament. per ajudar-lo a suportar els costos de funcionament.
donateHost: Fes una donació a {host} donateHost: Fes una donació a {host}
@ -1617,7 +1617,7 @@ youAreRunningUpToDateClient: Estás fent servir la versió del client més nova.
unlikeConfirm: Vols treure el teu m'agrada? unlikeConfirm: Vols treure el teu m'agrada?
fullView: Vista complerta fullView: Vista complerta
desktop: Escritori desktop: Escritori
notesCount: Nombre de notes notesCount: Nombre de publicacions
confirmToUnclipAlreadyClippedNote: Aquesta publicació ja és al clip "{name}". La vols confirmToUnclipAlreadyClippedNote: Aquesta publicació ja és al clip "{name}". La vols
treure d'aquest clip? treure d'aquest clip?
driveFilesCount: Nombre de fitxers al Disk driveFilesCount: Nombre de fitxers al Disk
@ -1651,7 +1651,7 @@ privateModeInfo: Quan està activat, només els servidors a la llista blanca es
useBlurEffect: Utilitzeu efectes de desenfocament a la interfície d'usuari useBlurEffect: Utilitzeu efectes de desenfocament a la interfície d'usuari
accountDeletionInProgress: La supressió del compte està en curs accountDeletionInProgress: La supressió del compte està en curs
unmuteThread: Desfés el silenci al fil unmuteThread: Desfés el silenci al fil
deleteAccountConfirm: Això suprimirà el vostre compte de manera irreversible. Procedir? deleteAccountConfirm: Això suprimirà aquest compte de manera irreversible. Procedir?
requireAdminForView: Heu d'iniciar sessió amb un compte d'administrador per veure-ho. requireAdminForView: Heu d'iniciar sessió amb un compte d'administrador per veure-ho.
enableAutoSensitiveDescription: Permet la detecció i el marcatge automàtics dels mitjans enableAutoSensitiveDescription: Permet la detecció i el marcatge automàtics dels mitjans
NSFW mitjançant Machine Learning sempre que sigui possible. Fins i tot si aquesta NSFW mitjançant Machine Learning sempre que sigui possible. Fins i tot si aquesta
@ -1671,7 +1671,7 @@ objectStorageRegion: Regió
objectStoragePrefix: Prefix objectStoragePrefix: Prefix
objectStoragePrefixDesc: Els fitxers es guardaran dins de carpetes amb aquest prefix. objectStoragePrefixDesc: Els fitxers es guardaran dins de carpetes amb aquest prefix.
objectStorageEndpoint: Extrem objectStorageEndpoint: Extrem
newNoteRecived: Hi han notes noves newNoteRecived: Hi han publicacions noves
sounds: Sons sounds: Sons
listen: Escoltar listen: Escoltar
none: Res none: Res
@ -1686,7 +1686,8 @@ objectStorageUseProxyDesc: Desactiva això si no faràs servir un servidor Proxy
objectStorageSetPublicRead: Fixar com a "public-read" al pujar objectStorageSetPublicRead: Fixar com a "public-read" al pujar
serverLogs: Registres del servidor serverLogs: Registres del servidor
deleteAll: Esborrar tot deleteAll: Esborrar tot
showFixedPostForm: Mostrar el formulari de notes al principi de la línia de temps showFixedPostForm: Mostrar el formulari de publicacions al principi de la línia de
temps
unableToProcess: Aquesta operació no es pot acabar unableToProcess: Aquesta operació no es pot acabar
recentUsed: Fet servir fa poc recentUsed: Fet servir fa poc
install: Instal·lar install: Instal·lar
@ -1719,9 +1720,9 @@ accentColor: Color principal
textColor: Color del text textColor: Color del text
value: Valor value: Valor
sendErrorReportsDescription: "Quan està activat, quan es produeixi un problema la sendErrorReportsDescription: "Quan està activat, quan es produeixi un problema la
informació detallada d'errors es compartirà amb Firefish, ajudant a millorar la qualitat informació detallada d'errors es compartirà amb Firefish, ajudant a millorar la
de Firefish.\nAixò inclourà informació com la versió del vostre sistema operatiu, qualitat de Firefish.\nAixò inclourà informació com la versió del vostre sistema
quin navegador utilitzeu, la vostra activitat a Firefish, etc." operatiu, quin navegador utilitzeu, la vostra activitat a Firefish, etc."
myTheme: El meu tema myTheme: El meu tema
backgroundColor: Color de fons backgroundColor: Color de fons
saveAs: Desa com... saveAs: Desa com...
@ -1760,7 +1761,7 @@ sendPushNotificationReadMessage: Suprimeix les notificacions push un cop s'hagin
sendPushNotificationReadMessageCaption: Es mostrarà una notificació amb el text "{emptyPushNotificationMessage}" sendPushNotificationReadMessageCaption: Es mostrarà una notificació amb el text "{emptyPushNotificationMessage}"
durant un breu temps. Això pot augmentar l'ús de la bateria del vostre dispositiu, durant un breu temps. Això pot augmentar l'ús de la bateria del vostre dispositiu,
si escau. si escau.
showAds: Mostrar publicitat showAds: Mostrar bàners de la comunitat
enterSendsMessage: Pren retorn al formulari del missatge per enviar (quant no s'activa enterSendsMessage: Pren retorn al formulari del missatge per enviar (quant no s'activa
es Ctrl + Return) es Ctrl + Return)
customMOTD: MOTD personalitzat (missatges de la pantalla de benvinguda) customMOTD: MOTD personalitzat (missatges de la pantalla de benvinguda)
@ -1778,7 +1779,7 @@ migrationConfirm: "Esteu absolutament segur que voleu migrar el vostre compte a
Un cop ho feu, no podreu revertir-ho i no podreu tornar a utilitzar el vostre compte Un cop ho feu, no podreu revertir-ho i no podreu tornar a utilitzar el vostre compte
amb normalitat.\nA més, assegureu-vos d'haver configurat aquest compte actual com amb normalitat.\nA més, assegureu-vos d'haver configurat aquest compte actual com
el compte del qual us moveu." el compte del qual us moveu."
defaultReaction: Reacció d'emoji predeterminada per a notes sortints i entrants defaultReaction: Reacció d'emoji predeterminades per a publicacions sortints i entrants
enableCustomKaTeXMacro: Activa les macros KaTeX personalitzades enableCustomKaTeXMacro: Activa les macros KaTeX personalitzades
noteId: ID de la publicació noteId: ID de la publicació
_nsfw: _nsfw:
@ -1841,7 +1842,7 @@ pushNotificationAlreadySubscribed: Les notificacions push ja estan activades
pushNotificationNotSupported: El vostre navegador o servidor no admet notificacions pushNotificationNotSupported: El vostre navegador o servidor no admet notificacions
push push
license: Llicència license: Llicència
indexPosts: Índex de notes indexPosts: Índex de publicacions
indexFrom: Índex a partir de l'ID de Publicacions indexFrom: Índex a partir de l'ID de Publicacions
indexFromDescription: Deixeu en blanc per indexar cada publicació indexFromDescription: Deixeu en blanc per indexar cada publicació
indexNotice: Ara indexant. Això probablement trigarà una estona, si us plau, no reinicieu indexNotice: Ara indexant. Això probablement trigarà una estona, si us plau, no reinicieu
@ -1864,7 +1865,7 @@ _channel:
owned: Propietari owned: Propietari
usersCount: '{n} Participants' usersCount: '{n} Participants'
following: Seguit per following: Seguit per
notesCount: '{n} Notes' notesCount: '{n} Publicacions'
nameAndDescription: Nom i descripció nameAndDescription: Nom i descripció
nameOnly: Només nom nameOnly: Només nom
_instanceMute: _instanceMute:
@ -1912,7 +1913,7 @@ _tutorial:
Firefish. Aquest sí que sí! És una mica complicat, però ho aconseguiràs en poc Firefish. Aquest sí que sí! És una mica complicat, però ho aconseguiràs en poc
temps. temps.
step2_2: Proporcionar informació sobre qui sou facilitarà que altres puguin saber step2_2: Proporcionar informació sobre qui sou facilitarà que altres puguin saber
si volen veure les vostres notes o seguir-vos. si volen veure les vostres publicacions o seguir-vos.
step3_1: Ara toca seguir a algunes persones! step3_1: Ara toca seguir a algunes persones!
step3_2: "Les teves líneas de temps d'inici i social es basen en qui seguiu, així step3_2: "Les teves líneas de temps d'inici i social es basen en qui seguiu, així
que proveu de seguir un parell de comptes per començar.\nFeu clic al cercle més que proveu de seguir un parell de comptes per començar.\nFeu clic al cercle més
@ -1934,9 +1935,9 @@ _permissions:
"write:notifications": Gestiona les teves notificacions "write:notifications": Gestiona les teves notificacions
"write:user-groups": Editar o suprimir grups d'usuaris "write:user-groups": Editar o suprimir grups d'usuaris
"write:blocks": Editar la llista d'usuaris bloquejats "write:blocks": Editar la llista d'usuaris bloquejats
"write:notes": Redactar o suprimir notes "write:notes": Redactar o suprimir publicacions
"write:channels": Editar els teus canals "write:channels": Editar els teus canals
"read:gallery-likes": Consulta la llista de notes que t'agraden de la galeria "read:gallery-likes": Consulta la llista de publicacions que t'agraden de la galeria
"write:drive": Editar o suprimir fitxers i carpetes del Disc "write:drive": Editar o suprimir fitxers i carpetes del Disc
"read:favorites": Consulta la teva llista d'adreces d'interès "read:favorites": Consulta la teva llista d'adreces d'interès
"write:favorites": Editeu la teva llista d'adreces d'interès "write:favorites": Editeu la teva llista d'adreces d'interès
@ -1950,7 +1951,7 @@ _permissions:
"read:channels": Consulta els teus canals "read:channels": Consulta els teus canals
"read:gallery": Consulta la teva galeria "read:gallery": Consulta la teva galeria
"write:gallery": Edita la teva galeria "write:gallery": Edita la teva galeria
"write:gallery-likes": Edita la llista de notes que t'agraden de la galeria "write:gallery-likes": Edita la llista de publicacions que t'agraden de la galeria
"read:following": Consulta la informació sobre a qui segueixes "read:following": Consulta la informació sobre a qui segueixes
"read:reactions": Consulta les teves reaccions "read:reactions": Consulta les teves reaccions
"read:pages": Consulta la teva pàgina "read:pages": Consulta la teva pàgina
@ -1994,10 +1995,10 @@ _charts:
apRequest: Sol·licituds apRequest: Sol·licituds
usersTotal: Nombre total d'usuaris usersTotal: Nombre total d'usuaris
activeUsers: Usuaris actius activeUsers: Usuaris actius
notesIncDec: Diferència en el nombre de notes notesIncDec: Diferència en el nombre de publicacions
localNotesIncDec: Diferència en el nombre de notes locals localNotesIncDec: Diferència en el nombre de publicacions locals
remoteNotesIncDec: Diferència en el nombre de notes remotes remoteNotesIncDec: Diferència en el nombre de publicacions remotes
notesTotal: Nombre total de notes notesTotal: Nombre total de publicacions
filesIncDec: Diferència en el nombre de fitxers filesIncDec: Diferència en el nombre de fitxers
filesTotal: Nombre total de fitxers filesTotal: Nombre total de fitxers
storageUsageTotal: Ús total d'emmagatzematge storageUsageTotal: Ús total d'emmagatzematge
@ -2006,13 +2007,13 @@ _instanceCharts:
requests: Sol·licituds requests: Sol·licituds
users: Diferència en el nombre d'usuaris users: Diferència en el nombre d'usuaris
usersTotal: Nombre acumulat d'usuaris usersTotal: Nombre acumulat d'usuaris
notes: Diferència en el nombre de notes notes: Diferència en el nombre de publicacions
ffTotal: Nombre acumulat d'usuaris que segueixes/et segueixen ffTotal: Nombre acumulat d'usuaris que segueixes/et segueixen
cacheSize: Diferència en la mida de la memòria cau cacheSize: Diferència en la mida de la memòria cau
cacheSizeTotal: Mida total acumulada de la memòria cau cacheSizeTotal: Mida total acumulada de la memòria cau
files: Diferència en el nombre de fitxers files: Diferència en el nombre de fitxers
filesTotal: Nombre acumulat de fitxers filesTotal: Nombre acumulat de fitxers
notesTotal: Nombre acumulat de notes notesTotal: Nombre acumulat de publicacions
ff: "Diferència en el nombre d'usuaris que segueixes/que et segueixen " ff: "Diferència en el nombre d'usuaris que segueixes/que et segueixen "
_timelines: _timelines:
home: Inici home: Inici
@ -2033,12 +2034,12 @@ _wordMute:
hard: Dur hard: Dur
muteWordsDescription2: Envolta les paraules clau amb barres inclinades per utilitzar muteWordsDescription2: Envolta les paraules clau amb barres inclinades per utilitzar
expressions regulars. expressions regulars.
softDescription: Amaga les notes que compleixen les condicions establertes de la softDescription: Amaga les publicacions que compleixen les condicions establertes
línia de temps. de la línia de temps.
hardDescription: Evita que les notes que compleixin les condicions establertes s'afegeixin hardDescription: Evita que les publicacions que compleixin les condicions establertes
a la línia de temps. A més, aquestes notes no s'afegiran a la línia de temps encara s'afegeixin a la línia de temps. A més, aquestes publicacions no s'afegiran a
que es modifiquin les condicions. la línia de temps encara que es modifiquin les condicions.
mutedNotes: Notes silenciades mutedNotes: Publicacions silenciades
_auth: _auth:
shareAccessAsk: Estàs segur que vols autoritzar aquesta aplicació per accedir al shareAccessAsk: Estàs segur que vols autoritzar aquesta aplicació per accedir al
teu compte? teu compte?
@ -2061,11 +2062,11 @@ _messaging:
groups: Grups groups: Grups
dms: Privat dms: Privat
_antennaSources: _antennaSources:
all: Totes les notes all: Totes les publicacions
homeTimeline: Publicacions dels usuaris que segueixes homeTimeline: Publicacions dels usuaris que segueixes
users: Notes d'usuaris concrets users: Publicacions d'usuaris concrets
userGroup: Notes d'usuaris d'un grup determinat userGroup: Publicacions d'usuaris d'un grup determinat
userList: Notes d'una llista determinada d'usuaris userList: Publicacions d'una llista determinada d'usuaris
instances: Publicacions de tots els usuaris d'un servidor instances: Publicacions de tots els usuaris d'un servidor
_relayStatus: _relayStatus:
requesting: Pendent requesting: Pendent
@ -2120,7 +2121,7 @@ clipsDesc: Els clips són com marcadors categoritzats que es poden compartir. Po
crear clips des del menú de publicacions individuals. crear clips des del menú de publicacions individuals.
selectChannel: Selecciona un canal selectChannel: Selecciona un canal
isLocked: Aquest compte té les següents aprovacions isLocked: Aquest compte té les següents aprovacions
isPatron: Mecenes de Calkey isPatron: Mecenes de Firefish
isBot: Aquest compte és un bot isBot: Aquest compte és un bot
isModerator: Moderador isModerator: Moderador
isAdmin: Administrador isAdmin: Administrador
@ -2168,3 +2169,13 @@ _feeds:
atom: Atom atom: Atom
jsonFeed: Feed JSON jsonFeed: Feed JSON
copyFeed: Copiar feed copyFeed: Copiar feed
origin: Origen
objectStorageS3ForcePathStyle: Feu servir rutes URLs per a endpoints
objectStorageS3ForcePathStyleDesc: Activeu aquesta opció per crear URL per endpoints
en el format "s3.amazonaws.com/<bucket>/" sobre "<bucket>.s3.amazonaws.com".
deletePasskeys: Suprimeix les contrasenyes
deletePasskeysConfirm: Això suprimirà de manera irreversible totes les contrasenyes
i claus de seguretat d'aquest compte. Procedir?
inputNotMatch: L'entrada no coincideix
delete2fa: Suprimeix 2FA
delete2faConfirm: Això suprimirà irreversiblement 2FA en aquest compte. Procedir?

View file

@ -1,9 +1,9 @@
_lang_: "Čeština" _lang_: "Čeština"
headlineMisskey: "Síť propojená poznámkami" headlineFirefish: "Síť propojená poznámkami"
introMisskey: "Vítejte! Firefish je otevřený a decentralizovaný microblogový servis.\n\ introFirefish: "Vítejte! Firefish je otevřený a decentralizovaný microblogový servis.\n\
\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. \U0001F4E1\ \"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí
\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. \U0001F44D\ \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat
\nPojďte objevovat nový svět! \U0001F680" nový svět! 🚀"
monthAndDay: "{day}. {month}." monthAndDay: "{day}. {month}."
search: "Vyhledávání" search: "Vyhledávání"
notifications: "Oznámení" notifications: "Oznámení"
@ -18,7 +18,7 @@ enterUsername: "Zadej uživatelské jméno"
renotedBy: "{user} přeposla/a" renotedBy: "{user} přeposla/a"
noNotes: "Žádné poznámky" noNotes: "Žádné poznámky"
noNotifications: "Žádná oznámení" noNotifications: "Žádná oznámení"
instance: "Instance" instance: "Server"
settings: "Nastavení" settings: "Nastavení"
basicSettings: "Obecná nastavení" basicSettings: "Obecná nastavení"
otherSettings: "Rozšířená nastavení" otherSettings: "Rozšířená nastavení"
@ -46,8 +46,8 @@ copyContent: "Zkopírovat obsah"
copyLink: "Kopírovat odkaz" copyLink: "Kopírovat odkaz"
delete: "Smazat" delete: "Smazat"
deleteAndEdit: "Smazat a upravit" deleteAndEdit: "Smazat a upravit"
deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji?\ deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji?
\ Ztratíte tím všechny reakce, sdílení a odpovědi na ni." Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
addToList: "Přidat do seznamu" addToList: "Přidat do seznamu"
sendMessage: "Odeslat zprávu" sendMessage: "Odeslat zprávu"
copyUsername: "Kopírovat uživatelské jméno" copyUsername: "Kopírovat uživatelské jméno"
@ -66,11 +66,11 @@ import: "Importovat"
export: "Exportovat" export: "Exportovat"
files: "Soubor(ů)" files: "Soubor(ů)"
download: "Stáhnout" download: "Stáhnout"
driveFileDeleteConfirm: "Opravdu chcete smazat soubor \"{name}\"? Soubor bude odstraněn\ driveFileDeleteConfirm: "Opravdu chcete smazat soubor \"{name}\"? Soubor bude odstraněn
\ ze všech příspěvků, které ji obsahují jako přílohu." ze všech příspěvků, které ji obsahují jako přílohu."
unfollowConfirm: "Jste si jisti že už nechcete sledovat {name}?" unfollowConfirm: "Jste si jisti že už nechcete sledovat {name}?"
exportRequested: "Požádali jste o export. To může chvíli trvat. Přidáme ho na váš\ exportRequested: "Požádali jste o export. To může chvíli trvat. Přidáme ho na váš
\ Disk až bude dokončen." Disk až bude dokončen."
importRequested: "Požádali jste o export. To může chvilku trvat." importRequested: "Požádali jste o export. To může chvilku trvat."
lists: "Seznamy" lists: "Seznamy"
noLists: "Nemáte žádné seznamy" noLists: "Nemáte žádné seznamy"
@ -86,8 +86,8 @@ somethingHappened: "Jejda. Něco se nepovedlo."
retry: "Opakovat" retry: "Opakovat"
pageLoadError: "Nepodařilo se načíst stránku" pageLoadError: "Nepodařilo se načíst stránku"
serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu." serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu."
youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci\ youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci
\ klienta." klienta."
enterListName: "Jméno seznamu" enterListName: "Jméno seznamu"
privacy: "Soukromí" privacy: "Soukromí"
makeFollowManuallyApprove: "Žádosti o sledování vyžadují potvrzení" makeFollowManuallyApprove: "Žádosti o sledování vyžadují potvrzení"
@ -111,8 +111,8 @@ clickToShow: "Klikněte pro zobrazení"
sensitive: "NSFW" sensitive: "NSFW"
add: "Přidat" add: "Přidat"
reaction: "Reakce" reaction: "Reakce"
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte\ reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte
\ \"+\" k přidání" \"+\" k přidání"
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky" rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
attachCancel: "Odstranit přílohu" attachCancel: "Odstranit přílohu"
markAsSensitive: "Označit jako NSFW" markAsSensitive: "Označit jako NSFW"
@ -141,18 +141,18 @@ emojiUrl: "URL obrázku"
addEmoji: "Přidat emoji" addEmoji: "Přidat emoji"
settingGuide: "Doporučené nastavení" settingGuide: "Doporučené nastavení"
cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti" cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti"
cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory\ cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory
\ budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště\ budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště
\ na serveru, ale zvýší se provoz, protože se negenerují miniatury." na serveru, ale zvýší se provoz, protože se negenerují miniatury."
flagAsBot: "Tento účet je bot" flagAsBot: "Tento účet je bot"
flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost.\ flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost.
\ To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím\ To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím
\ s ostatními boty a upraví Firefish systém aby se choval k tomuhle účtu jako bot." s ostatními boty a upraví Firefish systém aby se choval k tomuhle účtu jako bot."
flagAsCat: "Tenhle účet je kočka" flagAsCat: "Tenhle účet je kočka"
flagAsCatDescription: "Vyberte tuto možnost aby tento účet byl označen jako kočka." flagAsCatDescription: "Vyberte tuto možnost aby tento účet byl označen jako kočka."
flagShowTimelineReplies: "Zobrazovat odpovědi na časové ose" flagShowTimelineReplies: "Zobrazovat odpovědi na časové ose"
flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na\ flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na
\ poznámky jiných uživatelů na vaší časové ose." poznámky jiných uživatelů na vaší časové ose."
autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete" autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete"
addAccount: "Přidat účet" addAccount: "Přidat účet"
loginFailed: "Přihlášení se nezdařilo." loginFailed: "Přihlášení se nezdařilo."
@ -165,10 +165,10 @@ searchWith: "Hledat: {q}"
youHaveNoLists: "Nemáte žádné seznamy" youHaveNoLists: "Nemáte žádné seznamy"
followConfirm: "Jste si jisti, že chcete sledovat {name}?" followConfirm: "Jste si jisti, že chcete sledovat {name}?"
proxyAccount: "Proxy účet" proxyAccount: "Proxy účet"
proxyAccountDescription: "Proxy účet je účet, který za určitých podmínek sleduje uživatele\ proxyAccountDescription: "Proxy účet je účet, který za určitých podmínek sleduje uživatele
\ na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do\ na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do seznamu,
\ seznamu, pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena\ pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena instanci, takže
\ instanci, takže místo toho bude uživatele sledovat účet proxy." místo toho bude uživatele sledovat účet proxy."
host: "Hostitel" host: "Hostitel"
selectUser: "Vyberte uživatele" selectUser: "Vyberte uživatele"
recipient: "Pro" recipient: "Pro"
@ -253,8 +253,8 @@ agreeTo: "Souhlasím s {0}"
tos: "Podmínky užívání" tos: "Podmínky užívání"
start: "Začít" start: "Začít"
home: "Domů" home: "Domů"
remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené\ remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené
\ instance." instance."
activity: "Aktivita" activity: "Aktivita"
images: "Obrázky" images: "Obrázky"
birthday: "Datum narození" birthday: "Datum narození"
@ -563,8 +563,8 @@ info: "Informace"
unknown: "Neznámý" unknown: "Neznámý"
onlineStatus: "Online status" onlineStatus: "Online status"
hideOnlineStatus: "Skrýt Váš online status" hideOnlineStatus: "Skrýt Váš online status"
hideOnlineStatusDescription: "Skrytí vašeho online stavu může snížit funkcionalitu\ hideOnlineStatusDescription: "Skrytí vašeho online stavu může snížit funkcionalitu
\ některých funkcí, například vyhledávání." některých funkcí, například vyhledávání."
online: "Online" online: "Online"
active: "Aktivní" active: "Aktivní"
offline: "Offline" offline: "Offline"
@ -983,7 +983,7 @@ emptyDrive: Váš disk je prázdný
inputNewDescription: Zadejte nový popisek inputNewDescription: Zadejte nový popisek
hasChildFilesOrFolders: Složka nemůže být smazána, protože není prázdná. hasChildFilesOrFolders: Složka nemůže být smazána, protože není prázdná.
noThankYou: Ne, děkuji noThankYou: Ne, děkuji
addInstance: Přidat instance addInstance: Přidat server
selectInstance: Vybrat si instance selectInstance: Vybrat si instance
blockedUsers: Zablokovaní uživatelé blockedUsers: Zablokovaní uživatelé
muteAndBlock: Ztlumení a blokace muteAndBlock: Ztlumení a blokace
@ -1007,3 +1007,6 @@ renoteMute: Ztlumit přeposílání
renoteUnmute: Zrušit ztlumení přeposílání renoteUnmute: Zrušit ztlumení přeposílání
flagSpeakAsCat: Mluvit jako kočka flagSpeakAsCat: Mluvit jako kočka
flagSpeakAsCatDescription: Vaše příspěvky budou v kočičím režimu nyanifikovány. flagSpeakAsCatDescription: Vaše příspěvky budou v kočičím režimu nyanifikovány.
newer: novější
older: starší
jumpToPrevious: Skočit na předchozí

View file

@ -157,9 +157,9 @@ pageLoadErrorDescription: Dette er normalt på grund af netværksproblemer eller
browser's cache. Prøv at ryd cachen og så gentage efter et styk tid. browser's cache. Prøv at ryd cachen og så gentage efter et styk tid.
serverIsDead: Serveren svarer ikke. Vær sød at vente et styk tid og prøv igen. serverIsDead: Serveren svarer ikke. Vær sød at vente et styk tid og prøv igen.
editWidgetsExit: Færdig editWidgetsExit: Færdig
headlineMisskey: En åben-kildekode, decentraliseret social-media platform som er frit headlineFirefish: En åben-kildekode, decentraliseret social-media platform som er frit
forevigt! 🚀 forevigt! 🚀
introMisskey: Velkommen! Firefish er en åbent-kildekode, decentraliseret social-media introFirefish: Velkommen! Firefish er en åbent-kildekode, decentraliseret social-media
platform som er frit forevigt!🚀 platform som er frit forevigt!🚀
enableEmojiReactions: Aktivere emoji reaktioner enableEmojiReactions: Aktivere emoji reaktioner
unsuspendConfirm: Er du sikker på at du vil ikke suspendere denne konto endnu længere? unsuspendConfirm: Er du sikker på at du vil ikke suspendere denne konto endnu længere?

View file

@ -1,9 +1,9 @@
_lang_: "Deutsch" _lang_: "Deutsch"
headlineMisskey: "Eine dezentralisierte Open-Source Social Media Plattform, die für headlineFirefish: "Eine dezentralisierte Open-Source Social Media Plattform, die für
immer gratis bleibt! 🚀" immer gratis bleibt! 🚀"
introMisskey: "Willkommen! Firefish ist eine dezentralisierte Open-Source Social Media introFirefish: "Willkommen! Firefish ist eine dezentralisierte Open-Source Social
Plattform, die für immer gratis bleibt!🚀" Media Plattform, die für immer gratis bleibt!🚀"
monthAndDay: "{month}/{day}" monthAndDay: "{day}.{month}."
search: "Suchen" search: "Suchen"
notifications: "Benachrichtigungen" notifications: "Benachrichtigungen"
username: "Nutzername" username: "Nutzername"
@ -67,7 +67,7 @@ export: "Export"
files: "Dateien" files: "Dateien"
download: "Herunterladen" download: "Herunterladen"
driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" wirklich löschen? Es wird driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" wirklich löschen? Es wird
aus allen Beiträgen entfernt, die die Datei als Anhang enthalten." aus allen Beiträgen entfernt, welche die Datei als Anhang enthalten."
unfollowConfirm: "Bist du dir sicher, daß du {name} nicht mehr folgen möchtest?" unfollowConfirm: "Bist du dir sicher, daß du {name} nicht mehr folgen möchtest?"
exportRequested: "Du hast einen Export angefragt. Dies kann etwas Zeit in Anspruch exportRequested: "Du hast einen Export angefragt. Dies kann etwas Zeit in Anspruch
nehmen. Sobald der Export abgeschlossen ist, wird er deinem Laufwerk hinzugefügt." nehmen. Sobald der Export abgeschlossen ist, wird er deinem Laufwerk hinzugefügt."
@ -117,7 +117,7 @@ sensitive: "NSFW"
add: "Hinzufügen" add: "Hinzufügen"
reaction: "Reaktionen" reaction: "Reaktionen"
reactionSetting: "Reaktionen, die in der Reaktionsauswahl angezeigt werden sollen" reactionSetting: "Reaktionen, die in der Reaktionsauswahl angezeigt werden sollen"
reactionSettingDescription2: "Ziehen Sie, um neu zu ordnen,\nklicken Sie, um zu löschen,\n reactionSettingDescription2: "Ziehen Sie, um neu zu ordnen, klicken Sie, um zu löschen,
drücken Sie \"+\", um hinzuzufügen." drücken Sie \"+\", um hinzuzufügen."
rememberNoteVisibility: "Einstellungen für die Sichtbarkeit von Beiträgen speichern" rememberNoteVisibility: "Einstellungen für die Sichtbarkeit von Beiträgen speichern"
attachCancel: "Anhang entfernen" attachCancel: "Anhang entfernen"
@ -595,7 +595,7 @@ yourAccountSuspendedDescription: "Dieses Nutzerkonto wurde gesperrt, da es gegen
menu: "Menü" menu: "Menü"
divider: "Trenner" divider: "Trenner"
addItem: "Element hinzufügen" addItem: "Element hinzufügen"
relays: "Relays" relays: "Relais"
addRelay: "Relay hinzufügen" addRelay: "Relay hinzufügen"
inboxUrl: "inbox-URL" inboxUrl: "inbox-URL"
addedRelays: "Hinzugefügte Relays" addedRelays: "Hinzugefügte Relays"
@ -666,7 +666,7 @@ overview: "Übersicht"
logs: "Protokolle" logs: "Protokolle"
delayed: "Verzögert" delayed: "Verzögert"
database: "Datenbank" database: "Datenbank"
channel: "Channels" channel: "Kanäle"
create: "Erstellen" create: "Erstellen"
notificationSetting: "Benachrichtigungseinstellungen" notificationSetting: "Benachrichtigungseinstellungen"
notificationSettingDesc: "Wähle die Art der anzuzeigenden Benachrichtigungen." notificationSettingDesc: "Wähle die Art der anzuzeigenden Benachrichtigungen."
@ -777,10 +777,10 @@ nUsers: "{n} Nutzer"
nNotes: "{n} Beiträge" nNotes: "{n} Beiträge"
sendErrorReports: "Fehlerberichte senden" sendErrorReports: "Fehlerberichte senden"
sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten
von Fehlern detaillierte Fehlerinformationen an Firefish weitergegeben, was zur Verbesserung von Fehlern detaillierte Fehlerinformationen an Firefish weitergegeben, was zur
der Qualität von Firefish beiträgt.\nEnthalten in diesen Informationen sind u.a. Verbesserung der Qualität von Firefish beiträgt.\nEnthalten in diesen Informationen
die Version deines Betriebssystems, welchen Browser du verwendest und ein Verlauf sind u.a. die Version deines Betriebssystems, welchen Browser du verwendest und
deiner Aktivitäten innerhalb Firefish." ein Verlauf deiner Aktivitäten innerhalb Firefish."
myTheme: "Meine Farbkombination" myTheme: "Meine Farbkombination"
backgroundColor: "Hintergrundfarbe" backgroundColor: "Hintergrundfarbe"
accentColor: "Akzentfarbe" accentColor: "Akzentfarbe"
@ -835,7 +835,7 @@ active: "Aktiv"
offline: "Offline" offline: "Offline"
notRecommended: "Nicht empfohlen" notRecommended: "Nicht empfohlen"
botProtection: "Schutz vor Bots" botProtection: "Schutz vor Bots"
instanceBlocking: "Verbundene Server verwalten" instanceBlocking: "Föderation verwalten"
selectAccount: "Nutzerkonto auswählen" selectAccount: "Nutzerkonto auswählen"
switchAccount: "Konto wechseln" switchAccount: "Konto wechseln"
enabled: "Aktiviert" enabled: "Aktiviert"
@ -900,14 +900,14 @@ manageAccounts: "Nutzerkonten verwalten"
makeReactionsPublic: "Reaktionsverlauf veröffentlichen" makeReactionsPublic: "Reaktionsverlauf veröffentlichen"
makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktionen makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktionen
einsehen können." einsehen können."
classic: "Mittig/zentriert" classic: "Zentriert"
muteThread: "Thread stummschalten" muteThread: "Thread stummschalten"
unmuteThread: "Threadstummschaltung aufheben" unmuteThread: "Threadstummschaltung aufheben"
ffVisibility: "Sichtbarkeit von Gefolgten/Followern" ffVisibility: "Sichtbarkeit von Gefolgten/Followern"
ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir
folgt." folgt."
continueThread: "Beitrag fortsetzen" continueThread: "Beitrag fortsetzen"
deleteAccountConfirm: "Dein Nutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?" deleteAccountConfirm: "Das Nutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
incorrectPassword: "Falsches Passwort." incorrectPassword: "Falsches Passwort."
voteConfirm: "Wirklich für „{choice}“ abstimmen?" voteConfirm: "Wirklich für „{choice}“ abstimmen?"
hide: "Inhalt verbergen" hide: "Inhalt verbergen"
@ -947,11 +947,12 @@ recentNDays: "Die letzten {n} Tage"
noEmailServerWarning: "Es ist kein Email-Server konfiguriert." noEmailServerWarning: "Es ist kein Email-Server konfiguriert."
thereIsUnresolvedAbuseReportWarning: "Es liegen ungelöste Meldungen vor." thereIsUnresolvedAbuseReportWarning: "Es liegen ungelöste Meldungen vor."
recommended: "Favoriten" recommended: "Favoriten"
check: "Kontrolle" check: "Überprüfe"
driveCapOverrideLabel: "Die Cloud-Drive-Kapazität dieses Nutzers verändern" driveCapOverrideLabel: "Die Cloud-Drive-Kapazität dieses Nutzers verändern"
driveCapOverrideCaption: "Gib einen Wert von 0 oder weniger ein, um die Kapazität driveCapOverrideCaption: "Gib einen Wert von 0 oder weniger ein, um die Kapazität
auf den Standard zurückzusetzen." auf den Standard zurückzusetzen."
requireAdminForView: "Melde dich mit einem Administratorkonto an, um dies einzusehen." requireAdminForView: "Du musst dich mit einem Administratorkonto anmelden um dies
zu sehen."
isSystemAccount: "Dieses Konto wird vom System erstellt und automatisch verwaltet. isSystemAccount: "Dieses Konto wird vom System erstellt und automatisch verwaltet.
Bitte moderieren, bearbeiten, löschen oder manipulieren Sie dieses Konto nicht, Bitte moderieren, bearbeiten, löschen oder manipulieren Sie dieses Konto nicht,
da es sonst zu einem Server-Absturz kommen könnte." da es sonst zu einem Server-Absturz kommen könnte."
@ -977,12 +978,12 @@ sensitiveMediaDetection: "Erkennung von NSFW-Medien"
localOnly: "Nur Lokal" localOnly: "Nur Lokal"
remoteOnly: "Nur für andere/fremde Server" remoteOnly: "Nur für andere/fremde Server"
failedToUpload: "Hochladen fehlgeschlagen" failedToUpload: "Hochladen fehlgeschlagen"
cannotUploadBecauseInappropriate: "Diese Datei kann nicht hochgeladen werden, da Anteile cannotUploadBecauseInappropriate: "Diese Datei kann nicht hochgeladen werden, da Teile
der Datei als möglicherweise NSFW festgestellt wurden." der Datei möglicherweise NSFW-Inhalt enthalten."
cannotUploadBecauseNoFreeSpace: "Die Datei konnte nicht hochgeladen werden, da dein cannotUploadBecauseNoFreeSpace: "Die Datei konnte nicht hochgeladen werden, da dein
Cloud-Drive-Speicherplatz aufgebraucht ist." Cloud-Drive-Speicherplatz aufgebraucht ist."
beta: "Beta" beta: "Beta"
enableAutoSensitive: "Selbstständige NSFW-Kennzeichnung" enableAutoSensitive: "Automatische NSFW-Kennzeichnung"
enableAutoSensitiveDescription: "Erlaubt, wo möglich, die automatische Erkennung und enableAutoSensitiveDescription: "Erlaubt, wo möglich, die automatische Erkennung und
Kennzeichnung von NSFW-Medien durch maschinelles Lernen. Auch wenn diese Option Kennzeichnung von NSFW-Medien durch maschinelles Lernen. Auch wenn diese Option
deaktiviert ist, kann sie über den Server aktiviert sein." deaktiviert ist, kann sie über den Server aktiviert sein."
@ -1005,8 +1006,8 @@ _sensitiveMediaDetection:
setSensitiveFlagAutomaticallyDescription: "Die Resultate der internen Erkennung setSensitiveFlagAutomaticallyDescription: "Die Resultate der internen Erkennung
werden beibehalten, auch wenn diese Option deaktiviert ist." werden beibehalten, auch wenn diese Option deaktiviert ist."
analyzeVideos: "Videoanalyse aktivieren" analyzeVideos: "Videoanalyse aktivieren"
analyzeVideosDescription: "Analysiert zusätzlich zu Bildern auch Videos. Die Last analyzeVideosDescription: "Analysiert zusätzlich zu Bildern auch Videos. Die Serverlast
des Servers wird hierdurch etwas erhöht." wird hierdurch etwas erhöht."
_emailUnavailable: _emailUnavailable:
used: "Diese Email-Adresse wird bereits verwendet" used: "Diese Email-Adresse wird bereits verwendet"
format: "Das Format dieser Email-Adresse ist ungültig" format: "Das Format dieser Email-Adresse ist ungültig"
@ -1020,17 +1021,17 @@ _ffVisibility:
_signup: _signup:
almostThere: "Fast geschafft" almostThere: "Fast geschafft"
emailAddressInfo: "Bitte gib deine Email-Adresse ein. Sie wird nicht öffentlich emailAddressInfo: "Bitte gib deine Email-Adresse ein. Sie wird nicht öffentlich
einsehbar sein." sichtbar sein."
emailSent: "An deine Email-Adresse ({email}) wurde soeben eine Bestätigungsmail emailSent: "An deine Email-Adresse ({email}) wurde soeben eine Bestätigungsmail
geschickt. Bitte klicke auf den enthaltenen Link, um die Erstellung deines Nutzerkontos geschickt. Bitte klicke auf den enthaltenen Link, um die Erstellung deines Nutzerkontos
abzuschließen." abzuschließen."
_accountDelete: _accountDelete:
accountDelete: "Nutzerkonto löschen" accountDelete: "Nutzerkonto löschen"
mayTakeTime: "Da die Löschung eines Nutzerkontos ein aufwendiger Prozess ist, kann mayTakeTime: "Da die Löschung eines Nutzerkontos ein aufwendiger Prozess ist, kann
dessen Dauer davon abhängen, wie viel Inhalt von diesem erstellt wurde oder wie dessen Dauer davon abhängen, wie viel Inhalt von diesem erstellt wurde und wie
viele Dateien von diesem hochgeladen wurden." viele Dateien von diesem hochgeladen wurden."
sendEmail: "Sobald die Löschung abgeschlossen ist, wird an die mit ihm verknüpfte sendEmail: "Sobald die Löschung abgeschlossen ist, wird an die registrierte Email-Adresse
Email-Adresse eine Benachrichtigung versendet." eine Benachrichtigung versendet."
requestAccountDelete: "Löschung deines Nutzerkontos anfordern" requestAccountDelete: "Löschung deines Nutzerkontos anfordern"
started: "Die Löschung wurde eingeleitet." started: "Die Löschung wurde eingeleitet."
inProgress: "Löschung in Bearbeitung" inProgress: "Löschung in Bearbeitung"
@ -1060,19 +1061,19 @@ _plugin:
manage: "Plugins verwalten" manage: "Plugins verwalten"
_preferencesBackups: _preferencesBackups:
list: "Erstellte Backups" list: "Erstellte Backups"
saveNew: "Neu erstellen" saveNew: "Neues Backup speichern"
loadFile: "Von Datei laden" loadFile: "Von Datei laden"
apply: "Auf dieses Gerät anwenden" apply: "Auf dieses Gerät anwenden"
save: "Speichern" save: "Änderungen speichern"
inputName: "Gib einen Namen für dieses Backup ein" inputName: "Gib einen Namen für dieses Backup ein"
cannotSave: "Speichern fehlgeschlagen" cannotSave: "Speichern fehlgeschlagen"
nameAlreadyExists: "Es existiert bereits ein Backup unter dem Namen \"{name}\". nameAlreadyExists: "Es existiert bereits ein Backup unter dem Namen \"{name}\".
Bitte gib einen anderen Namen ein." Bitte gib einen anderen Namen ein."
applyConfirm: "Wirklich das Backup \"{name}\" auf dieses Gerät anwenden? Bestehende applyConfirm: "Wirklich das Backup \"{name}\" auf dieses Gerät anwenden? Bestehende
Einstellungen darauf werden überschrieben." Einstellungen darauf werden überschrieben."
saveConfirm: "Als {name} speichern?" saveConfirm: "Backup als {name} speichern?"
deleteConfirm: "Das Backup {name} löschen?" deleteConfirm: "Das Backup {name} löschen?"
renameConfirm: "Soll dieses Backup von \"{old}\" zu \"{new}\" umbenannt werden?" renameConfirm: "Backup von \"{old}\" zu \"{new}\" umbenennen?"
noBackups: "Keine Backups existieren. Backups können über \"Neu erstellen\" erstelllt noBackups: "Keine Backups existieren. Backups können über \"Neu erstellen\" erstelllt
werden." werden."
createdAt: "Erstellt am: {date} {time}" createdAt: "Erstellt am: {date} {time}"
@ -1096,10 +1097,19 @@ _aboutFirefish:
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter
Personen sehr. Danke! 🥰" Personen sehr. Danke! 🥰"
patrons: "UnterstützerInnen" patrons: "UnterstützerInnen"
patronsList: Auflistung chonologisch, nicht nach Spenden-Größe. Spende über den
Link oben, um hier aufgeführt zu werden!
donateTitle: Gefällt dir Firefish?
pleaseDonateToFirefish: Bitte erwäge eine Spende an Firefish, um dessen Entwicklung
zu unterstützen.
pleaseDonateToHost: Bitte erwäge auch, an deinen Heimatserver {host} zu spenden,
um bei der Deckung der Betriebskosten zu helfen.
sponsors: Firefish-Sponsoren
donateHost: Spende an {host}
_nsfw: _nsfw:
respect: "Mit NSFW gekennzeichnete Bilder verbergen" respect: "Mit NSFW gekennzeichnete Mediendateien verbergen"
ignore: "Mit NSFW gekennzeichnete Bilder nicht verbergen" ignore: "Mit NSFW gekennzeichnete Mediendateien nicht verbergen"
force: "Alle Medien verbergen" force: "Alle Mediendateien verbergen"
_mfm: _mfm:
cheatSheet: "MFM Spickzettel" cheatSheet: "MFM Spickzettel"
intro: "MFM ist eine Markup-Sprache, die in Misskey, Firefish, Akkoma und anderen intro: "MFM ist eine Markup-Sprache, die in Misskey, Firefish, Akkoma und anderen
@ -1138,7 +1148,7 @@ _mfm:
search: "Suche" search: "Suche"
searchDescription: "Eine vorgefertige Suchanfragebox anzeigen." searchDescription: "Eine vorgefertige Suchanfragebox anzeigen."
flip: "Spiegelung" flip: "Spiegelung"
flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen." flipDescription: "Inhalt horizontal oder vertikal spiegeln."
jelly: "Animation (Dehnen)" jelly: "Animation (Dehnen)"
jellyDescription: "Verleiht Inhalt eine sich dehnende Animation." jellyDescription: "Verleiht Inhalt eine sich dehnende Animation."
tada: "Animation (Tada)" tada: "Animation (Tada)"
@ -1183,14 +1193,15 @@ _mfm:
crop: Zuschneiden crop: Zuschneiden
scale: Maßstab scale: Maßstab
scaleDescription: Skaliere den Inhalt um einen bestimmten Betrag. scaleDescription: Skaliere den Inhalt um einen bestimmten Betrag.
foregroundDescription: Ändern der Vordergrundfarbe von Text. foregroundDescription: Vordergrundfarbe des Texts ändern.
backgroundDescription: Ändern der Hintergrundfarbe von Text backgroundDescription: Hintergrundfarbe des Texts ändern.
play: MFM abspielen play: MFM abspielen
stop: MFM anhalten stop: MFM anhalten
warn: MFM können schnell bewegte oder anderweitig auffallende Animationen enthalten warn: MFM können schnell bewegte oder anderweitig auffallende Animationen enthalten
alwaysPlay: Alle animierten MFM immer automatisch abspielen alwaysPlay: Alle animierten MFM immer automatisch abspielen
advancedDescription: Wenn diese Funktion deaktiviert ist, können nur einfache Formatierungen advancedDescription: Wenn diese Funktion deaktiviert ist, können nur einfache Formatierungen
vorgenommen werden, es sei denn, animiertes MFM ist aktiviert vorgenommen werden, es sei denn, animiertes MFM ist aktiviert
advanced: Erweitertes MFM
_instanceTicker: _instanceTicker:
none: "Nie anzeigen" none: "Nie anzeigen"
remote: "Für Nutzer eines anderen Servers anzeigen" remote: "Für Nutzer eines anderen Servers anzeigen"
@ -1404,6 +1415,7 @@ _2fa:
registerTOTPBeforeKey: Bitte registriere eine Authentificator App, um einen Hardware-Security-Key registerTOTPBeforeKey: Bitte registriere eine Authentificator App, um einen Hardware-Security-Key
oder einen Passkey zu nutzen. oder einen Passkey zu nutzen.
securityKeyName: Gib einen Namen für den Key ein securityKeyName: Gib einen Namen für den Key ein
token: 2FA Token
_permissions: _permissions:
"read:account": "Deine Nutzerkontoinformationen lesen" "read:account": "Deine Nutzerkontoinformationen lesen"
"write:account": "Deine Nutzerkontoinformationen bearbeiten" "write:account": "Deine Nutzerkontoinformationen bearbeiten"
@ -1444,11 +1456,12 @@ _auth:
zu können?" zu können?"
shareAccessAsk: "Bist du dir sicher, dass du diese Anwendung authorisieren möchtest, shareAccessAsk: "Bist du dir sicher, dass du diese Anwendung authorisieren möchtest,
auf dein Nutzerkonto zugreifen zu können?" auf dein Nutzerkonto zugreifen zu können?"
permissionAsk: "Diese Anwendung fordert folgende Berechtigungen" permissionAsk: "Diese Anwendung fordert folgende Berechtigungen:"
pleaseGoBack: "Bitte kehre zur Anwendung zurück" pleaseGoBack: "Bitte kehre zur Anwendung zurück"
callback: "Es wird zur Anwendung zurückgekehrt" callback: "Es wird zur Anwendung zurückgekehrt"
denied: "Zugriff verweigert" denied: "Zugriff verweigert"
copyAsk: Bitte fügen Sie den folgenden Autorisierungscode in die Anwendung ein copyAsk: 'Bitte fügen Sie den folgenden Autorisierungscode in die Anwendung ein:'
allPermissions: Vollständiger Kontozugriff
_antennaSources: _antennaSources:
all: "Alle Beiträge" all: "Alle Beiträge"
homeTimeline: "Beiträge von Nutzern, denen gefolgt wird" homeTimeline: "Beiträge von Nutzern, denen gefolgt wird"
@ -1482,7 +1495,7 @@ _widgets:
postForm: "Beitragsfeld" postForm: "Beitragsfeld"
slideshow: "Diashow" slideshow: "Diashow"
button: "Knopf" button: "Knopf"
onlineUsers: "Nutzer Online" onlineUsers: "Nutzer online"
jobQueue: "Job-Warteschlange" jobQueue: "Job-Warteschlange"
serverMetric: "Servermetriken" serverMetric: "Servermetriken"
aiscript: "AiScript-Konsole" aiscript: "AiScript-Konsole"
@ -1523,11 +1536,12 @@ _poll:
remainingSeconds: "{s} Sekunde(n) verbleibend" remainingSeconds: "{s} Sekunde(n) verbleibend"
_visibility: _visibility:
public: "Öffentlich" public: "Öffentlich"
publicDescription: "Dein Beitrag wird global für alle Nutzer sichtbar sein" publicDescription: "Dein Beitrag wird global in allen öffentlichen Timelines sichtbar
sein"
home: "nicht aufgelistet" home: "nicht aufgelistet"
homeDescription: "Beitrag nur auf der Home-Timeline anzeigen" homeDescription: "Beitrag nur auf der Home-Timeline anzeigen"
followers: "Follower" followers: "Follower"
followersDescription: "Nur für Follower sichtbar" followersDescription: "Nur für Follower und erwähnte Nutzer sichtbar"
specified: "Direkt" specified: "Direkt"
specifiedDescription: "Nur für bestimmte Nutzer sichtbar" specifiedDescription: "Nur für bestimmte Nutzer sichtbar"
localOnly: "Nur Lokal" localOnly: "Nur Lokal"
@ -1551,7 +1565,8 @@ _profile:
metadata: "Zusätzliche Informationen" metadata: "Zusätzliche Informationen"
metadataEdit: "Zusätzliche Informationen bearbeiten" metadataEdit: "Zusätzliche Informationen bearbeiten"
metadataDescription: "Hierdurch kannst du auf deinem Profil zusätzliche Informationsblöcke metadataDescription: "Hierdurch kannst du auf deinem Profil zusätzliche Informationsblöcke
anzeigen lassen. Sie können ein {a}-Tag oder ein {l}-Tag mit {rel} hinzufügen, um den Link in Ihrem Profil zu überprüfen!" anzeigen lassen. Sie können ein {a}-Tag oder ein {l}-Tag mit {rel} hinzufügen,
um den Link in Ihrem Profil zu überprüfen!"
metadataLabel: "Beschriftung" metadataLabel: "Beschriftung"
metadataContent: "Inhalt" metadataContent: "Inhalt"
changeAvatar: "Profilbild ändern" changeAvatar: "Profilbild ändern"
@ -1574,7 +1589,7 @@ _charts:
activeUsers: "Aktive Nutzer" activeUsers: "Aktive Nutzer"
notesIncDec: "Unterschied bei der Anzahl an Beiträgen" notesIncDec: "Unterschied bei der Anzahl an Beiträgen"
localNotesIncDec: "Unterschied bei der Anzahl an lokalen Beiträgen" localNotesIncDec: "Unterschied bei der Anzahl an lokalen Beiträgen"
remoteNotesIncDec: "Differenz zur Anzahl von Beiträgen von anderen Servern." remoteNotesIncDec: "Differenz bei der Anzahl an Beiträgen von anderen Servern"
notesTotal: "Anzahl aller Beiträge" notesTotal: "Anzahl aller Beiträge"
filesIncDec: "Unterschied in der Anzahl an Dateien" filesIncDec: "Unterschied in der Anzahl an Dateien"
filesTotal: "Anzahl aller Dateien" filesTotal: "Anzahl aller Dateien"
@ -1628,7 +1643,7 @@ _pages:
hideTitleWhenPinned: "Nutzer-Seitentitel wenn angeheftet ausblenden" hideTitleWhenPinned: "Nutzer-Seitentitel wenn angeheftet ausblenden"
font: "Schriftart" font: "Schriftart"
fontSerif: "Serif" fontSerif: "Serif"
fontSansSerif: "sans-serif" fontSansSerif: "Sans Serif"
eyeCatchingImageSet: "Vorschaubild festlegen" eyeCatchingImageSet: "Vorschaubild festlegen"
eyeCatchingImageRemove: "Vorschaubild entfernen" eyeCatchingImageRemove: "Vorschaubild entfernen"
chooseBlock: "Block hinzufügen" chooseBlock: "Block hinzufügen"
@ -1643,7 +1658,7 @@ _pages:
text: "Text" text: "Text"
textarea: "Textfeld" textarea: "Textfeld"
section: "Abschnitt" section: "Abschnitt"
image: "Bild" image: "Bilder"
button: "Knopf" button: "Knopf"
if: "Falls" if: "Falls"
_if: _if:
@ -1971,9 +1986,8 @@ enableEmojiReactions: Emoji-Reaktionen aktivieren
flagSpeakAsCat: Wie eine Katze sprechen flagSpeakAsCat: Wie eine Katze sprechen
showEmojisInReactionNotifications: Emojis in Reaktionsbenachrichtigungen anzeigen showEmojisInReactionNotifications: Emojis in Reaktionsbenachrichtigungen anzeigen
userSaysSomethingReason: '{name} sagte {reason}' userSaysSomethingReason: '{name} sagte {reason}'
hiddenTagsDescription: 'Geben sie hier die Schlagworte (ohne #hashtag) an, die vom hiddenTagsDescription: 'Liste die Hashtags (ohne #) welche du von Trending und Explore
"Trending and Explore" ausgeschlossen werden sollen. Versteckte Schlagworte sind verstecken möchtest. Versteckte Hashtags sind durch andere Wege weiterhin auffindbar.'
immer noch über andere Wege auffindbar.'
addInstance: Server hinzufügen addInstance: Server hinzufügen
flagSpeakAsCatDescription: Deine Beiträge werden im Katzenmodus nyanisiert flagSpeakAsCatDescription: Deine Beiträge werden im Katzenmodus nyanisiert
hiddenTags: Versteckte Hashtags hiddenTags: Versteckte Hashtags
@ -1983,8 +1997,8 @@ renoteMute: Boosts stummschalten
renoteUnmute: Stummschaltung von Boosts aufheben renoteUnmute: Stummschaltung von Boosts aufheben
noInstances: Keine Server gefunden noInstances: Keine Server gefunden
privateModeInfo: Wenn diese Option aktiviert ist, können nur als vertrauenswürdig privateModeInfo: Wenn diese Option aktiviert ist, können nur als vertrauenswürdig
eingestufte Server mit diesem Server kommunizieren. Alle Beiträge werden für die eingestufte Server mit diesem Server föderieren. Alle Beiträge werden für die Öffentlichkeit
Öffentlichkeit verborgen. verborgen.
allowedInstances: Vertrauenswürdige Server allowedInstances: Vertrauenswürdige Server
selectInstance: Wähle einen Server aus selectInstance: Wähle einen Server aus
silencedInstancesDescription: Liste die Hostnamen der Server auf, die du stummschalten silencedInstancesDescription: Liste die Hostnamen der Server auf, die du stummschalten
@ -2019,14 +2033,14 @@ moveAccountDescription: 'Dieser Vorgang kann nicht rückgängig gemacht werden!
wie folgt ein: @name@server.xyz' wie folgt ein: @name@server.xyz'
findOtherInstance: Einen anderen Server finden findOtherInstance: Einen anderen Server finden
sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden
Benachrichtigungen oder Beiträge gelesen wurden. Benachrichtigungen oder Nachrichten gelesen wurden
signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen
auf anderen Servern sind jedoch möglich! Wenn Sie einen Einladungscode für diesen auf anderen Servern sind jedoch möglich! Wenn Sie einen Einladungscode für diesen
Server haben, geben Sie ihn bitte unten ein. Server haben, geben Sie ihn bitte unten ein.
swipeOnDesktop: Am Desktop PC das Wischen wie bei mobilen Geräten zulassen swipeOnDesktop: Am Desktop PC das Wischen wie bei mobilen Geräten zulassen
enterSendsMessage: Drücken sie zum Senden des Beitrages die Eingabetaste (Strg-Taste enterSendsMessage: Drücken sie zum Senden des Beitrages die Eingabetaste (Strg-Taste
ausgeschaltet) ausgeschaltet)
showUpdates: Zeigt ein Popup-Fenster an, wenn Firefish aktualisiert wird. showUpdates: Zeige ein Popup-Fenster an, wenn Firefish aktualisiert wird
socialTimeline: Social-Timeline socialTimeline: Social-Timeline
moveFrom: Bisheriges Nutzerkonto zu diesem Nutzerkonto umziehen moveFrom: Bisheriges Nutzerkonto zu diesem Nutzerkonto umziehen
_messaging: _messaging:
@ -2053,18 +2067,17 @@ adminCustomCssWarn: Diese Einstellung sollte nur verwendet werden, wenn Sie wiss
mehr normal funktionieren. Bitte stellen Sie sicher, dass Ihr CSS ordnungsgemäß mehr normal funktionieren. Bitte stellen Sie sicher, dass Ihr CSS ordnungsgemäß
funktioniert, indem Sie es in Ihren Benutzereinstellungen testen. funktioniert, indem Sie es in Ihren Benutzereinstellungen testen.
customMOTD: Benutzerdefinierte Meldung des Tages (Begrüßungsbildschirmmeldungen) customMOTD: Benutzerdefinierte Meldung des Tages (Begrüßungsbildschirmmeldungen)
allowedInstancesDescription: Hosts von Servern, die zur Verbindung auf die Liste vertrauenswürdiger allowedInstancesDescription: Hostnamen von Servern, die auf der Liste vertrauenswürdiger
Server gesetzt werden sollen, werden jeweils durch eine neue Zeile getrennt eingegeben Server für die Föderation stehen sollen, jeweils getrennt in einer neuen Zeile (tritt
(gilt nur im privaten Modus). nur im privaten Modus in Kraft).
migration: Migration migration: Migration
updateAvailable: Es könnte eine Aktualisierung verfügbar sein! updateAvailable: Es könnte ein Update verfügbar sein!
showAdminUpdates: Anzeigen, dass eine neue Firefish-Version verfügbar ist (nur Administrator) showAdminUpdates: Anzeigen, dass eine neue Firefish-Version verfügbar ist (nur Administrator)
customMOTDDescription: Benutzerdefinierte Meldungen für die Meldung des Tages (Begrüßungsbildschirm), customMOTDDescription: Benutzerdefinierte Meldungen für die Meldung des Tages (Begrüßungsbildschirm),
die durch Zeilenumbrüche getrennt sind und nach dem Zufallsprinzip jedes Mal angezeigt die durch Zeilenumbrüche getrennt sind und nach dem Zufallsprinzip jedes Mal angezeigt
werden, wenn ein Benutzer die Seite (neu) lädt. werden, wenn ein Benutzer die Seite (neu) lädt.
recommendedInstancesDescription: Empfohlene Server, die durch Zeilenumbrüche getrennt recommendedInstancesDescription: Empfohlene Server, die durch Zeilenumbrüche getrennt
sind, werden in der "Favoriten"-Timeline angezeigt. Fügen Sie NICHT "https://" hinzu, sind, werden in der "Favoriten"-Timeline angezeigt.
sondern NUR die Domain.
sendModMail: Moderationshinweis senden sendModMail: Moderationshinweis senden
moveFromDescription: 'Dadurch wird ein Alias Ihres alten Nutzerkontos festgelegt, moveFromDescription: 'Dadurch wird ein Alias Ihres alten Nutzerkontos festgelegt,
sodass Sie von ihrem bisherigen Konto zu diesem Nutzerkonto wechseln können. Tun sodass Sie von ihrem bisherigen Konto zu diesem Nutzerkonto wechseln können. Tun
@ -2073,7 +2086,7 @@ moveFromDescription: 'Dadurch wird ein Alias Ihres alten Nutzerkontos festgelegt
preventAiLearning: KI gestütztes bot-scraping unterdrücken preventAiLearning: KI gestütztes bot-scraping unterdrücken
preventAiLearningDescription: Fordern Sie KI-Sprachmodelle von Drittanbietern auf, preventAiLearningDescription: Fordern Sie KI-Sprachmodelle von Drittanbietern auf,
die von Ihnen hochgeladenen Inhalte, wie z. B. Beiträge und Bilder, nicht zu untersuchen. die von Ihnen hochgeladenen Inhalte, wie z. B. Beiträge und Bilder, nicht zu untersuchen.
license: Genehmigung license: Lizenz
indexPosts: Gelistete Beiträge indexPosts: Gelistete Beiträge
migrationConfirm: "Sind Sie absolut sicher, dass Sie Ihr Nutzerkonto zu diesem {account} migrationConfirm: "Sind Sie absolut sicher, dass Sie Ihr Nutzerkonto zu diesem {account}
umziehen möchten? Sobald Sie dies bestätigt haben, kann dies nicht mehr rückgängig umziehen möchten? Sobald Sie dies bestätigt haben, kann dies nicht mehr rückgängig
@ -2106,12 +2119,12 @@ indexFrom: Indexieren ab Beitragskennung aufwärts
indexNotice: Wird jetzt indexiert. Dies wird wahrscheinlich eine Weile dauern, bitte indexNotice: Wird jetzt indexiert. Dies wird wahrscheinlich eine Weile dauern, bitte
starten Sie Ihren Server für mindestens eine Stunde nicht neu. starten Sie Ihren Server für mindestens eine Stunde nicht neu.
customKaTeXMacroDescription: "Richten Sie Makros ein, um mathematische Ausdrücke einfach customKaTeXMacroDescription: "Richten Sie Makros ein, um mathematische Ausdrücke einfach
zu schreiben! Die Notation entspricht den LaTeX-Befehlsdefinitionen und wird als\n zu schreiben! Die Notation entspricht den LaTeX-Befehlsdefinitionen und wird als
\\newcommand{\\name}{content} or \\newcommand{\\name}[number of arguments]{content}\n \\newcommand{\\name}{content} oder \\newcommand{\\name}[number of arguments]{content}
geschrieben.\nZum Beispiel wird\n\\newcommand{\\add}[2]{#1 + #2} \\add{3}{foo} um geschrieben. Zum Beispiel wird \\newcommand{\\add}[2]{#1 + #2} \\add{3}{foo} erweitern
3 + foo erweitert.\nDie geschweiften Klammern, die den Makronamen umgeben, können zu 3 + foo. Die geschweiften Klammern, die den Makro-Namen umgeben, können in runde
in runde oder eckige Klammern geändert werden. Dies hat Auswirkungen auf die Klammern, oder eckige Klammern geändert werden. Dies hat Auswirkungen auf die Klammern, die
die für die Argumente verwendet werden. Pro Zeile kann ein (und nur ein) Makro definiert für die Argumente verwendet werden. Pro Zeile kann ein (und nur ein) Makro definiert
werden, und Sie können die Zeile nicht mitten in der Definition umbrechen. Ungültige werden, und Sie können die Zeile nicht mitten in der Definition umbrechen. Ungültige
Zeilen werden einfach ignoriert. Es werden nur einfache Funktionen zur Substitution Zeilen werden einfach ignoriert. Es werden nur einfache Funktionen zur Substitution
von Zeichenketten unterstützt; erweiterte Syntax, wie z. B. bedingte Verzweigungen, von Zeichenketten unterstützt; erweiterte Syntax, wie z. B. bedingte Verzweigungen,
@ -2131,6 +2144,7 @@ _filters:
fromDomain: Von Domain fromDomain: Von Domain
notesBefore: Beiträge vor notesBefore: Beiträge vor
followingOnly: Nur Folgende followingOnly: Nur Folgende
followersOnly: Nur Follower
isBot: Dieses Konto ist ein Bot isBot: Dieses Konto ist ein Bot
isModerator: Moderator isModerator: Moderator
isAdmin: Administrator isAdmin: Administrator
@ -2141,7 +2155,7 @@ _dialog:
searchPlaceholder: Firefish durchsuchen searchPlaceholder: Firefish durchsuchen
antennasDesc: "Antennen zeigen neue Posts an, die deinen definierten Kriterien entsprechen!\n antennasDesc: "Antennen zeigen neue Posts an, die deinen definierten Kriterien entsprechen!\n
Sie können von der Timeline-Seite aufgerufen werden." Sie können von der Timeline-Seite aufgerufen werden."
isPatron: Firefish Patron isPatron: Firefish-Patron
removeReaction: Entferne deine Reaktion removeReaction: Entferne deine Reaktion
listsDesc: Listen lassen dich Timelines mit bestimmten Nutzer:innen erstellen. Sie listsDesc: Listen lassen dich Timelines mit bestimmten Nutzer:innen erstellen. Sie
können von der Timeline-Seite erreicht werden. können von der Timeline-Seite erreicht werden.
@ -2150,3 +2164,30 @@ clipsDesc: Clips sind wie teilbare, kategorisierte Lesezeichen. Du kannst Clips
channelFederationWarn: Kanäle föderieren noch nicht zu anderen Servern channelFederationWarn: Kanäle föderieren noch nicht zu anderen Servern
reactionPickerSkinTone: Bevorzugte Emoji-Hautfarbe reactionPickerSkinTone: Bevorzugte Emoji-Hautfarbe
swipeOnMobile: Wischen zwischen den Seiten erlauben swipeOnMobile: Wischen zwischen den Seiten erlauben
enableServerMachineStats: Server-Hardware-Statistik einschalten
enableIdenticonGeneration: Identicon-Generierung einschalten
verifiedLink: Verifizierter Link
_feeds:
copyFeed: Feed kopieren
jsonFeed: JSON-Feed
rss: RSS
atom: Atom
youHaveUnreadAnnouncements: Du hast ungelesene Ankündigungen
donationLink: Link zur Spenden-Seite
remindMeLater: Vielleicht später
neverShow: Nicht wieder zeigen
removeRecipient: Empfänger entfernen
removeMember: Mitglied entfernen
alt: ALT
xl: XL
isLocked: Dieser Account hat Folge-Anfragen aktiviert
_skinTones:
mediumLight: Mittelhell
yellow: Gelb
light: Hell
medium: Mittel
dark: Dunkel
mediumDark: Mitteldunkel
showPopup: Benutzer mit Popup benachrichtigen
showWithSparkles: Mit Glitzer anzeigen
removeQuote: Zitat entfernen

View file

@ -568,9 +568,9 @@ yourAccountSuspendedTitle: Αυτός ο λογαριασμός έχει απο
leaveConfirm: Υπάρχουν αλλαγές που δεν έχουν σωθεί. Θέλετε να τις απορρίψετε; leaveConfirm: Υπάρχουν αλλαγές που δεν έχουν σωθεί. Θέλετε να τις απορρίψετε;
height: Ύψος height: Ύψος
edit: Επεξεργασία edit: Επεξεργασία
headlineMisskey: Μία ανοιχτού λογισμικού, αποκεντρωμένη πλατφόρμα κοινωνικής δικτύωσης headlineFirefish: Μία ανοιχτού λογισμικού, αποκεντρωμένη πλατφόρμα κοινωνικής δικτύωσης
που θα είναι για πάντα ελεύθερη! 🚀 που θα είναι για πάντα ελεύθερη! 🚀
introMisskey: Καλώς ήρθατε! Το Firefish είναι μία ανοιχτού λογισμικού, αποκεντρωμένη introFirefish: Καλώς ήρθατε! Το Firefish είναι μία ανοιχτού λογισμικού, αποκεντρωμένη
πλατφόρμα κοινωνικής δικτύωσης που θα είναι για πάντα ελεύθερη! 🚀 πλατφόρμα κοινωνικής δικτύωσης που θα είναι για πάντα ελεύθερη! 🚀
markAsSensitive: Επισήμανση ως Ευαίσθητο Περιεχόμενο (NSFW) markAsSensitive: Επισήμανση ως Ευαίσθητο Περιεχόμενο (NSFW)
autoAcceptFollowed: Αυτόματη έγκριση αιτημάτων ακολούθησης από λογαριασμούς που ακολουθείτε autoAcceptFollowed: Αυτόματη έγκριση αιτημάτων ακολούθησης από λογαριασμούς που ακολουθείτε

View file

@ -1,7 +1,7 @@
_lang_: "English" _lang_: "English"
headlineMisskey: "An open source, decentralized social media platform that's free headlineFirefish: "An open source, decentralized social media platform that's free
forever! 🚀" forever! 🚀"
introMisskey: "Welcome! Firefish is an open source, decentralized social media platform introFirefish: "Welcome! Firefish is an open source, decentralized social media platform
that's free forever! 🚀" that's free forever! 🚀"
monthAndDay: "{month}/{day}" monthAndDay: "{month}/{day}"
search: "Search" search: "Search"
@ -566,6 +566,9 @@ objectStorageUseProxy: "Connect over Proxy"
objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for
API connections" API connections"
objectStorageSetPublicRead: "Set \"public-read\" on upload" objectStorageSetPublicRead: "Set \"public-read\" on upload"
objectStorageS3ForcePathStyle: "Use path-based endpoint URLs"
objectStorageS3ForcePathStyleDesc: "Turn this on to construct endpoint URLs in the
format of 's3.amazonaws.com/<bucket>/' over '<bucket>.s3.amazonaws.com'."
serverLogs: "Server logs" serverLogs: "Server logs"
deleteAll: "Delete all" deleteAll: "Delete all"
showFixedPostForm: "Display the posting form at the top of the timeline" showFixedPostForm: "Display the posting form at the top of the timeline"
@ -872,7 +875,7 @@ gallery: "Gallery"
recentPosts: "Recent pages" recentPosts: "Recent pages"
popularPosts: "Popular pages" popularPosts: "Popular pages"
shareWithNote: "Share with post" shareWithNote: "Share with post"
ads: "Advertisements" ads: "Community banners"
expiration: "Deadline" expiration: "Deadline"
memo: "Memo" memo: "Memo"
priority: "Priority" priority: "Priority"
@ -938,7 +941,7 @@ ffVisibility: "Follows/Followers Visibility"
ffVisibilityDescription: "Allows you to configure who can see who you follow and who ffVisibilityDescription: "Allows you to configure who can see who you follow and who
follows you." follows you."
continueThread: "Continue thread" continueThread: "Continue thread"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" deleteAccountConfirm: "This will irreversibly delete this account. Proceed?"
incorrectPassword: "Incorrect password." incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?" voteConfirm: "Confirm your vote for \"{choice}\"?"
hide: "Hide" hide: "Hide"
@ -1035,7 +1038,7 @@ sendPushNotificationReadMessage: "Delete push notifications once the relevant no
sendPushNotificationReadMessageCaption: "A notification containing the text \"{emptyPushNotificationMessage}\"\ sendPushNotificationReadMessageCaption: "A notification containing the text \"{emptyPushNotificationMessage}\"\
\ will be displayed for a short time. This may increase the battery usage of your \ will be displayed for a short time. This may increase the battery usage of your
device, if applicable." device, if applicable."
showAds: "Show ads" showAds: "Show community banners"
enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)" enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)"
adminCustomCssWarn: "This setting should only be used if you know what it does. Entering adminCustomCssWarn: "This setting should only be used if you know what it does. Entering
improper values may cause EVERYONE'S clients to stop functioning normally. Please improper values may cause EVERYONE'S clients to stop functioning normally. Please
@ -1133,6 +1136,12 @@ forMobile: "Mobile"
replaceChatButtonWithAccountButton: "Replace chat button at the bottom with account switch button" replaceChatButtonWithAccountButton: "Replace chat button at the bottom with account switch button"
replaceWidgetsButtonWithReloadButton: "Replace widgets button at the bottom with reload button" replaceWidgetsButtonWithReloadButton: "Replace widgets button at the bottom with reload button"
addRe: "Add \"re:\" at the beginning of comment in reply to CW'd post" addRe: "Add \"re:\" at the beginning of comment in reply to CW'd post"
origin: "Origin"
delete2fa: "Disable 2FA"
deletePasskeys: "Delete passkeys"
delete2faConfirm: "This will irreversibly delete 2FA on this account. Proceed?"
deletePasskeysConfirm: "This will irreversibly delete all passkeys and security keys on this account. Proceed?"
inputNotMatch: "Input does not match"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "Reduces the effort of server moderation through automatically recognizing description: "Reduces the effort of server moderation through automatically recognizing

View file

@ -1,7 +1,7 @@
_lang_: "Español" _lang_: "Español"
headlineMisskey: "¡Un proyecto de código abierto y una plataforma de medios de comunicación headlineFirefish: "¡Un proyecto de código abierto y una plataforma de medios de comunicación
descentralizada que es gratis para siempre! 🚀" descentralizada que es gratis para siempre! 🚀"
introMisskey: "¡Bienvenido! ¡Firefish es un proyecto de código abierto, plataforma introFirefish: "¡Bienvenido! ¡Firefish es un proyecto de código abierto, plataforma
descentralizado medios de comunicación social que es gratis para siempre! 🚀" descentralizado medios de comunicación social que es gratis para siempre! 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Buscar" search: "Buscar"

View file

@ -55,7 +55,7 @@ attachCancel: Poista liite
enterFileName: Anna tiedostonimi enterFileName: Anna tiedostonimi
mute: Hiljennä mute: Hiljennä
unmute: Poista hiljennys unmute: Poista hiljennys
headlineMisskey: Avoimen lähdekoodin, hajautettu sosiaalisen median alusta, joka on headlineFirefish: Avoimen lähdekoodin, hajautettu sosiaalisen median alusta, joka on
ikuisesti ilmainen! 🚀 ikuisesti ilmainen! 🚀
monthAndDay: '{day}/{month}' monthAndDay: '{day}/{month}'
deleteAndEditConfirm: Oletko varma, että haluat poistaa tämän lähetyksen ja muokata deleteAndEditConfirm: Oletko varma, että haluat poistaa tämän lähetyksen ja muokata
@ -214,7 +214,7 @@ perDay: Päivässä
version: Versio version: Versio
statistics: Tilastot statistics: Tilastot
clearQueueConfirmTitle: Oletko varma, että haluat tyhjentää jonon? clearQueueConfirmTitle: Oletko varma, että haluat tyhjentää jonon?
introMisskey: Tervetuloa! Firefish on avoimen lähdekoodin, hajautettu sosiaalisen median introFirefish: Tervetuloa! Firefish on avoimen lähdekoodin, hajautettu sosiaalisen median
alusta, joka on ikuisesti ilmainen! 🚀 alusta, joka on ikuisesti ilmainen! 🚀
clearQueueConfirmText: Mitkään välittämättömät lähetykset, jotka ovat jonossa, eivät clearQueueConfirmText: Mitkään välittämättömät lähetykset, jotka ovat jonossa, eivät
federoidu. Yleensä tätä toimintoa ei tarvita. federoidu. Yleensä tätä toimintoa ei tarvita.

View file

@ -1,10 +1,7 @@
_lang_: "Français" _lang_: "Français"
headlineMisskey: "Réseau relié par des notes" headlineFirefish: "Réseau relié par des notes"
introMisskey: "Bienvenue ! Firefish est un service de microblogage décentralisé, libre introFirefish: "Bienvenue ! Firefish est une plateforme de réseau social décentralisé
et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à linstant présent, et open source qui est gratuite pour toujours ! 🚀"
autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également
dajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons
un nouveau monde 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Rechercher" search: "Rechercher"
notifications: "Notifications" notifications: "Notifications"
@ -19,7 +16,7 @@ enterUsername: "Entrer un nom dutilisateur·rice"
renotedBy: "Renoté par {user}" renotedBy: "Renoté par {user}"
noNotes: "Aucune note" noNotes: "Aucune note"
noNotifications: "Aucune notification" noNotifications: "Aucune notification"
instance: "Instance" instance: "Serveur"
settings: "Paramètres" settings: "Paramètres"
basicSettings: "Paramètres généraux" basicSettings: "Paramètres généraux"
otherSettings: "Paramètres avancés" otherSettings: "Paramètres avancés"
@ -32,14 +29,14 @@ login: "Se connecter"
loggingIn: "Connexion en cours" loggingIn: "Connexion en cours"
logout: "Se déconnecter" logout: "Se déconnecter"
signup: "Sinscrire" signup: "Sinscrire"
uploading: "Envoi en cours" uploading: "Envoi en cours..."
save: "Enregistrer" save: "Enregistrer"
users: "Utilisateur·rice·s" users: "Utilisateur·rice·s"
addUser: "Ajouter un·e utilisateur·rice" addUser: "Ajouter un·e utilisateur·rice"
favorite: "Ajouter aux favoris" favorite: "Ajouter aux favoris"
favorites: "Favoris" favorites: "Favoris"
unfavorite: "Retirer des favoris" unfavorite: "Retirer des favoris"
favorited: "Ajouté à mes favoris" favorited: "Ajouté à mes favoris."
alreadyFavorited: "Déjà ajouté aux favoris." alreadyFavorited: "Déjà ajouté aux favoris."
cantFavorite: "Impossible d'ajouter aux favoris." cantFavorite: "Impossible d'ajouter aux favoris."
pin: "Épingler sur le profil" pin: "Épingler sur le profil"
@ -55,8 +52,8 @@ sendMessage: "Envoyer un message"
copyUsername: "Copier le nom dutilisateur·rice" copyUsername: "Copier le nom dutilisateur·rice"
searchUser: "Chercher un·e utilisateur·rice" searchUser: "Chercher un·e utilisateur·rice"
reply: "Répondre" reply: "Répondre"
loadMore: "Afficher plus" loadMore: "Afficher plus"
showMore: "Afficher plus" showMore: "Afficher plus"
showLess: "Fermer" showLess: "Fermer"
youGotNewFollower: "Vous suit" youGotNewFollower: "Vous suit"
receiveFollowRequest: "Demande dabonnement reçue" receiveFollowRequest: "Demande dabonnement reçue"
@ -151,7 +148,7 @@ 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 cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants
sont chargés directement depuis linstance distante. La désactiver diminuera certes sont chargés directement depuis le serveur distant. La désactiver diminuera certes
lutilisation de lespace de stockage local mais augmentera le trafic réseau puisque lutilisation de lespace de stockage local mais augmentera le trafic réseau puisque
les miniatures ne seront plus générées." les miniatures ne seront plus générées."
flagAsBot: "Ce compte est un robot" flagAsBot: "Ce compte est un robot"
@ -160,13 +157,13 @@ flagAsBotDescription: "Si ce compte est géré de manière automatisée, choisis
afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster
les systèmes internes de Firefish pour traiter ce compte comme un robot." les systèmes internes de Firefish pour traiter ce compte comme un robot."
flagAsCat: "Ce compte est un chat" flagAsCat: "Ce compte est un chat"
flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte." flagAsCatDescription: "Vous aurez des oreilles de chat et parlerez comme un chat !"
flagShowTimelineReplies: "Afficher les réponses dans le fil" flagShowTimelineReplies: "Afficher les réponses dans le fil"
autoAcceptFollowed: "Accepter automatiquement les demandes dabonnement venant dutilisateur·rice·s autoAcceptFollowed: "Accepter automatiquement les demandes dabonnement venant dutilisateur·rice·s
que vous suivez" que vous suivez"
addAccount: "Ajouter un compte" addAccount: "Ajouter un compte"
loginFailed: "Échec de la connexion" loginFailed: "Échec de la connexion"
showOnRemote: "Voir sur linstance distante" showOnRemote: "Ouvrir la page dorigine"
general: "Général" general: "Général"
wallpaper: "Fond décran" wallpaper: "Fond décran"
setWallpaper: "Définir le fond décran" setWallpaper: "Définir le fond décran"
@ -176,17 +173,17 @@ youHaveNoLists: "Vous navez aucune liste"
followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?" followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?"
proxyAccount: "Compte proxy" proxyAccount: "Compte proxy"
proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions,
comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, comme un·e abonné·e distant·e pour les utilisateur·rice·s d'autres serveurs. Par
quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, exemple, quand un·e utilisateur·rice local ajoute un·e utilisateur·rice distant·e
ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. à une liste, ses notes ne seront pas visibles sur le serveur si personne ne suit
Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice
acheminées." pour que ses notes soient acheminées."
host: "Serveur distant" host: "Serveur distant"
selectUser: "Sélectionner un·e utilisateur·rice" selectUser: "Sélectionner un·e utilisateur·rice"
recipient: "Destinataire" recipient: "Destinataire"
annotation: "Commentaires" annotation: "Commentaires"
federation: "Fédération" federation: "Fédération"
instances: "Instance" instances: "Serveurs"
registeredAt: "Premier contact le" registeredAt: "Premier contact le"
latestRequestSentAt: "Dernière requête envoyée" latestRequestSentAt: "Dernière requête envoyée"
latestRequestReceivedAt: "Dernière requête reçue" latestRequestReceivedAt: "Dernière requête reçue"
@ -196,7 +193,7 @@ charts: "Graphiques"
perHour: "par heure" perHour: "par heure"
perDay: "par jour" perDay: "par jour"
stopActivityDelivery: "Arrêter lenvoi de lactivité" stopActivityDelivery: "Arrêter lenvoi de lactivité"
blockThisInstance: "Bloquer cette instance" blockThisInstance: "Bloquer ce serveur"
operations: "Opérations" operations: "Opérations"
software: "Logiciel" software: "Logiciel"
version: "Version" version: "Version"
@ -206,7 +203,7 @@ jobQueue: "File dattente"
cpuAndMemory: "Processeur et mémoire" cpuAndMemory: "Processeur et mémoire"
network: "Réseau" network: "Réseau"
disk: "Disque" disk: "Disque"
instanceInfo: "Informations sur linstance" instanceInfo: "Informations du serveur"
statistics: "Statistiques" statistics: "Statistiques"
clearQueue: "Vider la file dattente" clearQueue: "Vider la file dattente"
clearQueueConfirmTitle: "Êtes-vous sûr·e de vouloir vider la file dattente ?" clearQueueConfirmTitle: "Êtes-vous sûr·e de vouloir vider la file dattente ?"
@ -215,16 +212,16 @@ clearQueueConfirmText: "Les notes non distribuées ne seront pas délivrées. No
clearCachedFiles: "Vider le cache" clearCachedFiles: "Vider le cache"
clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider tout le cache de fichiers clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider tout le cache de fichiers
distants ?" distants ?"
blockedInstances: "Instances bloquées" blockedInstances: "Serveurs bloqués"
blockedInstancesDescription: "Listez les instances que vous désirez bloquer, une par blockedInstancesDescription: "Listez les serveurs que vous désirez bloquer, un par
ligne. Ces instances ne seront plus en capacité d'interagir avec votre instance." ligne. Ces serveurs ne seront plus en capacité d'interagir avec votre serveur."
muteAndBlock: "Masqué·e·s / Bloqué·e·s" muteAndBlock: "Masqué·e·s / Bloqué·e·s"
mutedUsers: "Utilisateur·rice·s en sourdine" mutedUsers: "Utilisateur·rice·s en sourdine"
blockedUsers: "Utilisateur·rice·s bloqué·e·s" blockedUsers: "Utilisateur·rice·s bloqué·e·s"
noUsers: "Il ny a pas dutilisateur·rice·s" noUsers: "Il ny a pas dutilisateur·rice·s"
editProfile: "Modifier votre profil" editProfile: "Modifier votre profil"
noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note ?" noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note ?"
pinLimitExceeded: "Vous ne pouvez plus épingler dautres notes." pinLimitExceeded: "Vous ne pouvez pas épingler plus de notes"
intro: "Linstallation de Firefish est terminée ! Veuillez créer un compte administrateur." intro: "Linstallation de Firefish est terminée ! Veuillez créer un compte administrateur."
done: "Terminé" done: "Terminé"
processing: "Traitement en cours" processing: "Traitement en cours"
@ -239,9 +236,9 @@ all: "Tous"
subscribing: "Abonné" subscribing: "Abonné"
publishing: "Publié" publishing: "Publié"
notResponding: "Ne répond pas" notResponding: "Ne répond pas"
instanceFollowing: "Abonnements de l'instance" instanceFollowing: "Abonnements dun serveur"
instanceFollowers: "Abonné·e·s de linstance" instanceFollowers: "Abonné·e·s du serveur"
instanceUsers: "Utilisateur·rice·s de cette linstance" instanceUsers: "Utilisateur·rice·s de ce serveur"
changePassword: "Modifier votre mot de passe" changePassword: "Modifier votre mot de passe"
security: "Sécurité" security: "Sécurité"
retypedNotMatch: "Les saisies ne correspondent pas." retypedNotMatch: "Les saisies ne correspondent pas."
@ -327,14 +324,14 @@ whenServerDisconnected: "Lorsque la connexion au serveur est perdue"
disconnectedFromServer: "Déconnecté·e du serveur" disconnectedFromServer: "Déconnecté·e du serveur"
reload: "Rafraîchir" reload: "Rafraîchir"
doNothing: "Ignorer" doNothing: "Ignorer"
reloadConfirm: "Voulez-vous recharger?" reloadConfirm: "Voulez-vous recharger le fil ?"
watch: "Surveiller" watch: "Surveiller"
unwatch: "Ne plus surveiller" unwatch: "Ne plus surveiller"
accept: "Autoriser" accept: "Autoriser"
reject: "Refuser" reject: "Refuser"
normal: "Normal" normal: "Normal"
instanceName: "Nom de linstance" instanceName: "Nom du serveur"
instanceDescription: "Description de linstance" instanceDescription: "Description du serveur"
maintainerName: "Ladministrateur·rice" maintainerName: "Ladministrateur·rice"
maintainerEmail: "Email de ladministrateur·rice" maintainerEmail: "Email de ladministrateur·rice"
tosUrl: "URL des conditions dutilisation" tosUrl: "URL des conditions dutilisation"
@ -366,8 +363,8 @@ pinnedUsers: "Utilisateur·rice épinglé·e"
pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s
sur la page \"Découvrir\", un·e par ligne." sur la page \"Découvrir\", un·e par ligne."
pinnedPages: "Pages épinglées" pinnedPages: "Pages épinglées"
pinnedPagesDescription: "Inscrivez le chemin des pages que vous souhaitez épingler pinnedPagesDescription: "Inscrivez le chemin des Pages que vous souhaitez épingler
en haut de la page de l'instance. Séparez les pages d'un retour à la ligne." en haut de la page du serveur. Séparez les d'un retour à la ligne."
pinnedClipId: "Identifiant du clip épinglé" pinnedClipId: "Identifiant du clip épinglé"
pinnedNotes: "Note épinglée" pinnedNotes: "Note épinglée"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
@ -581,12 +578,12 @@ 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: "Retenir tous les abonnements" removeAllFollowing: "Retenir tous les abonnements"
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez
lancer cette action uniquement si linstance nexiste plus." lancer cette action uniquement si le serveur nexiste plus."
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."
yourAccountSuspendedTitle: "Ce compte est suspendu" yourAccountSuspendedTitle: "Ce compte est suspendu"
yourAccountSuspendedDescription: "Ce compte est suspendu car vous avez enfreint les yourAccountSuspendedDescription: "Ce compte est suspendu car vous avez enfreint les
conditions d'utilisation de l'instance, ou pour un motif similaire. Si vous souhaitez conditions d'utilisation du serveur, ou pour un motif similaire. Si vous souhaitez
connaître en détail les raisons de cette suspension, renseignez-vous auprès de l'administrateur·rice connaître en détail les raisons de cette suspension, renseignez-vous auprès de l'administrateur·rice
de votre instance. Merci de ne pas créer de nouveau compte." de votre instance. Merci de ne pas créer de nouveau compte."
menu: "Menu" menu: "Menu"
@ -651,7 +648,7 @@ 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"
regexpError: "Erreur dexpression régulière" regexpError: "Erreur dexpression régulière"
instanceMute: "Instance en sourdine" instanceMute: "Serveur masqué"
userSaysSomething: "{name} a dit quelque chose" userSaysSomething: "{name} a dit quelque chose"
makeActive: "Activer" makeActive: "Activer"
display: "Affichage" display: "Affichage"
@ -673,7 +670,7 @@ 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 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, 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. " tous les appareils seront déconnectés."
setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant
par des espaces." par des espaces."
fileIdOrUrl: "ID du fichier ou URL" fileIdOrUrl: "ID du fichier ou URL"
@ -683,7 +680,7 @@ abuseReports: "Signalements"
reportAbuse: "Signaler" reportAbuse: "Signaler"
reportAbuseOf: "Signaler {name}" reportAbuseOf: "Signaler {name}"
fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit
d'une note précise, veuillez en donner le lien." d'une note particulière, veuillez inclure le lien."
abuseReported: "Le rapport est envoyé. Merci." abuseReported: "Le rapport est envoyé. Merci."
reporter: "Signalé par" reporter: "Signalé par"
reporteeOrigin: "Origine du signalement" reporteeOrigin: "Origine du signalement"
@ -696,11 +693,11 @@ openInSideView: "Ouvrir en vue latérale"
defaultNavigationBehaviour: "Navigation par défaut" defaultNavigationBehaviour: "Navigation par défaut"
editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager
votre compte." votre compte."
instanceTicker: "Nom de l'instance d'origine des notes" instanceTicker: "Nom du serveur d'origine des notes"
waitingFor: "En attente de {x}" waitingFor: "En attente de {x}"
random: "Aléatoire" random: "Aléatoire"
system: "Système" system: "Système"
switchUi: "Modifier l'interface utilisateur" switchUi: "Mise en page"
desktop: "Bureau" desktop: "Bureau"
clip: "Clip" clip: "Clip"
createNew: "Créer nouveau" createNew: "Créer nouveau"
@ -750,7 +747,7 @@ developer: "Développeur"
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"." makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"."
makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra
pas sur la page \"Découvrir\"." pas sur la page \"Découvrir\"."
showGapBetweenNotesInTimeline: "Afficher un écart entre les notes sur la Timeline" showGapBetweenNotesInTimeline: "Afficher un écart entre les notes du fil dactualité"
duplicate: "Duliquer" duplicate: "Duliquer"
left: "Gauche" left: "Gauche"
center: "Centrer" center: "Centrer"
@ -766,10 +763,10 @@ nUsers: "{n} utilisateur·rice·s"
nNotes: "{n} Notes" nNotes: "{n} Notes"
sendErrorReports: "Envoyer les rapports derreur" sendErrorReports: "Envoyer les rapports derreur"
sendErrorReportsDescription: "Si vous activez l'envoi des rapports d'erreur, vous sendErrorReportsDescription: "Si vous activez l'envoi des rapports d'erreur, vous
contribuerez à améliorer la qualité de Firefish grâce au partage d'informations détaillées contribuerez à améliorer la qualité de Firefish grâce au partage d'informations
sur les erreurs lorsqu'un problème survient.\nCela inclut des informations telles détaillées sur les erreurs lorsqu'un problème survient.\nCela inclut des informations
que la version de votre système d'exploitation, le type de navigateur que vous utilisez, telles que la version de votre système d'exploitation, le type de navigateur que
votre historique d'activité, etc." vous utilisez, votre historique d'activité, etc."
myTheme: "Mes thèmes" myTheme: "Mes thèmes"
backgroundColor: "Arrière-plan" backgroundColor: "Arrière-plan"
accentColor: "Accentuation" accentColor: "Accentuation"
@ -793,14 +790,14 @@ capacity: "Capacité "
inUse: "utilisé" 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 du serveur"
emailNotification: "Notifications par mail" emailNotification: "Notifications par mail"
publish: "Public" publish: "Public"
inChannelSearch: "Chercher dans le canal" inChannelSearch: "Chercher dans la chaîne"
useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions" useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions"
typingUsers: "{users} est en train d'écrire" typingUsers: "{users} est en train d'écrire"
jumpToSpecifiedDate: "Se rendre à la date" jumpToSpecifiedDate: "Se rendre à la date"
showingPastTimeline: "Un fil ancien est affiché" showingPastTimeline: "Un fil âgé est affiché"
clear: "Effacer" clear: "Effacer"
markAllAsRead: "Tout marquer comme lu" markAllAsRead: "Tout marquer comme lu"
goBack: "Retour" goBack: "Retour"
@ -818,13 +815,13 @@ unknown: "Inconnu"
onlineStatus: "Statut" onlineStatus: "Statut"
hideOnlineStatus: "Se rendre invisible" hideOnlineStatus: "Se rendre invisible"
hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances
de certaines fonctionnalités, telles que la Recherche." de certaines fonctionnalités, telles que la recherche."
online: "En ligne" online: "En ligne"
active: "Actif·ve" active: "Actif·ve"
offline: "Hors ligne" offline: "Hors ligne"
notRecommended: "Déconseillé" notRecommended: "Déconseillé"
botProtection: "Protection contre les bots" botProtection: "Protection contre les bots"
instanceBlocking: "Instances bloquées/mise en sourdine" instanceBlocking: "Gestion de la Fédération"
selectAccount: "Sélectionner un compte" selectAccount: "Sélectionner un compte"
switchAccount: "Changer de compte" switchAccount: "Changer de compte"
enabled: "Activé" enabled: "Activé"
@ -842,7 +839,7 @@ gallery: "Galerie"
recentPosts: "Les plus récentes" recentPosts: "Les plus récentes"
popularPosts: "Les plus consultées" popularPosts: "Les plus consultées"
shareWithNote: "Partager dans une note" shareWithNote: "Partager dans une note"
ads: "Publicité" ads: "Bannière communautaire"
expiration: "Échéance" expiration: "Échéance"
memo: "Pense-bête" memo: "Pense-bête"
priority: "Priorité" priority: "Priorité"
@ -889,16 +886,16 @@ filter: "Filtre"
controlPanel: "Panneau de contrôle" controlPanel: "Panneau de contrôle"
manageAccounts: "Gérer les comptes" manageAccounts: "Gérer les comptes"
makeReactionsPublic: "Rendre les réactions publiques" makeReactionsPublic: "Rendre les réactions publiques"
makeReactionsPublicDescription: "Ceci rendra la liste de toutes vos réactions données makeReactionsPublicDescription: "Ceci rendra public la liste de toutes vos réactions
publique." passées."
classic: "Classique" classic: "Centré"
muteThread: "Masquer cette discussion" muteThread: "Masquer cette discussion"
unmuteThread: "Ne plus masquer le fil" unmuteThread: "Ne plus masquer le fil"
ffVisibility: "Visibilité des abonnés/abonnements" ffVisibility: "Visibilité des abonnés/abonnements"
ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu
suis et les personnes qui te suivent." suis et les personnes qui te suivent."
continueThread: "Afficher la suite du fil" continueThread: "Continuer le fil"
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?" deleteAccountConfirm: "Ce compte sera définitivement supprimé. Êtes vous certain ?"
incorrectPassword: "Le mot de passe est incorrect." incorrectPassword: "Le mot de passe est incorrect."
voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?" voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?"
hide: "Masquer" hide: "Masquer"
@ -913,12 +910,12 @@ overridedDeviceKind: "Type dappareil"
smartphone: "Smartphone" smartphone: "Smartphone"
tablet: "Tablette" tablet: "Tablette"
auto: "Automatique" auto: "Automatique"
themeColor: "Couleur du thème" themeColor: "Couleur du bandeau dinformation du serveur"
size: "Taille" size: "Taille"
numberOfColumn: "Nombre de colonnes" numberOfColumn: "Nombre de colonnes"
searchByGoogle: "Google" searchByGoogle: "Google"
instanceDefaultLightTheme: "Thème clair par défaut sur toute linstance" instanceDefaultLightTheme: "Thème clair par défaut sur tout le serveur"
instanceDefaultDarkTheme: "Thème sombre par défaut sur toute linstance" instanceDefaultDarkTheme: "Thème sombre par défaut sur tout le serveur"
instanceDefaultThemeDescription: "Saisissez le code du thème en format objet." instanceDefaultThemeDescription: "Saisissez le code du thème en format objet."
mutePeriod: "Durée de mise en sourdine" mutePeriod: "Durée de mise en sourdine"
indefinitely: "Illimité" indefinitely: "Illimité"
@ -969,10 +966,10 @@ _forgotPassword:
Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette
adresse." adresse."
ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice
de votre instance." de votre serveur."
contactAdmin: "Cette instance ne permettant pas l'utilisation d'adresses e-mail, contactAdmin: "Ce serveur ne permettant pas l'utilisation d'adresses e-mail, prenez
prenez contact avec l'administrateur·rice pour procéder à la réinitialisation contact avec l'administrateur·rice pour procéder à la réinitialisation de votre
de votre mot de passe." mot de passe."
_gallery: _gallery:
my: "Mes publications" my: "Mes publications"
liked: " Publications que j'ai aimées" liked: " Publications que j'ai aimées"
@ -1003,6 +1000,15 @@ _aboutFirefish:
morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes
non mentionnées ici. Merci à toutes et à tous ! 🥰" non mentionnées ici. Merci à toutes et à tous ! 🥰"
patrons: "Contributeurs" patrons: "Contributeurs"
pleaseDonateToFirefish: Merci de considérer de faire un don pour soutenir le développement
de Firefish.
sponsors: Sponsors Firefish
donateTitle: Firefish vous plaît ?
pleaseDonateToHost: Également, veuillez envisager de faire un don à votre serveur
d'accueil, {host}, pour contribuer à couvrir ses frais de fonctionnement.
donateHost: Faire un don à {host}
patronsList: Listé chronologiquement, pas par taille de donation. Faite un don avec
le lien ci-dessus pour avoir votre nom affiché ici !
_nsfw: _nsfw:
respect: "Cacher les médias marqués comme contenu sensible" respect: "Cacher les médias marqués comme contenu sensible"
ignore: "Afficher les médias sensibles" ignore: "Afficher les médias sensibles"
@ -1016,40 +1022,39 @@ _mfm:
mentionDescription: "Vous pouvez afficher un utilisateur spécifique en indiquant mentionDescription: "Vous pouvez afficher un utilisateur spécifique en indiquant
une arobase suivie d'un nom d'utilisateur" une arobase suivie d'un nom d'utilisateur"
hashtag: "Hashtags" hashtag: "Hashtags"
hashtagDescription: "Vous pouvez afficher un mot-dièse en utilisant un croisillon hashtagDescription: "Vous pouvez afficher les hashtags en utilisant un croisillon
et du texte" et du texte."
url: "URL" url: "URL"
urlDescription: "L'adresse web peut être affichée." urlDescription: "L'adresse web peut être affichée."
link: "Lien" link: "Lien"
linkDescription: "Une partie précise d'une phrase peut être liée à l'adresse web." linkDescription: "Une partie précise d'une phrase peut être liée à l'adresse web."
bold: "Gras" bold: "Gras"
boldDescription: "Il est possible de mettre le texte en exergue en le mettant en boldDescription: "Mise en évidence du texte en le rendant plus épais."
gras."
small: "Diminuer l'emphase" small: "Diminuer l'emphase"
smallDescription: "Le contenu peut être affiché en petit et fin." smallDescription: "Le contenu peut être affiché en petit et fin."
center: "Centrer" center: "Centrer"
centerDescription: "Le contenu peut être centré" centerDescription: "Le contenu peut être centré"
inlineCode: "Code (inline)" inlineCode: "Code (inline)"
inlineCodeDescription: "Coloration syntaxique des lignes de code." inlineCodeDescription: "Affiche la coloration syntaxique des lignes de code."
blockCode: "Bloc de code" blockCode: "Bloc de code"
blockCodeDescription: "Coloration syntaxique des lignes de code pour les blocs multi-lignes." blockCodeDescription: "Afficher la coloration syntaxique de multiples lignes de
code dans un bloc."
inlineMath: "Formule mathématique (inline)" inlineMath: "Formule mathématique (inline)"
inlineMathDescription: "Afficher les formules mathématiques (KaTeX)." inlineMathDescription: "Afficher les formules mathématiques (KaTeX)"
blockMath: "Formule mathématique (bloc)" blockMath: "Formule mathématique (bloc)"
blockMathDescription: "Afficher les formules mathématiques (KaTeX) multi-lignes blockMathDescription: "Afficher les formules mathématiques (KaTeX) dans un bloc"
dans un bloc."
quote: "Citer" quote: "Citer"
quoteDescription: "Affiche le contenu sous forme de citation." quoteDescription: "Affiche le contenu sous forme de citation."
emoji: "Émojis personnalisés" emoji: "Émojis personnalisés"
emojiDescription: "Entourez le nom de l'émoji personnalisé de deux points pour l'afficher." emojiDescription: "Encadrer le nom de l'émoji personnalisé de deux points pour l'afficher."
search: "Rechercher" search: "Rechercher"
searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi." searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi."
flip: "Inverser" flip: "Inverser"
flipDescription: "Rotation verticale ou horizontale du contenu" flipDescription: "Rotation verticale ou horizontale du contenu."
jelly: "Animation (Gelée)" jelly: "Animation (Gelée)"
jellyDescription: "Donne une animation d'étirement." jellyDescription: "Donne une animation d'étirement comme de la gelée."
tada: "Animation (Tada)" tada: "Animation (Tada)"
tadaDescription: "Donne une animation qui donne une impression de \"Tada !\"" tadaDescription: "Donne une animation qui donne une impression de \"Tada !\"."
jump: "Animation (Saut)" jump: "Animation (Saut)"
jumpDescription: "Donne une animation qui saute." jumpDescription: "Donne une animation qui saute."
bounce: "Animation (Rebond)" bounce: "Animation (Rebond)"
@ -1065,12 +1070,11 @@ _mfm:
x3: "Très grand" x3: "Très grand"
x3Description: "Afficher le contenu en très grand." x3Description: "Afficher le contenu en très grand."
x4: "Plus grand" x4: "Plus grand"
x4Description: "Afficher le contenu en plus grand." x4Description: "Afficher le contenu encore plus grand que grand."
blur: "Flou" blur: "Flou"
blurDescription: "Le contenu peut être flouté ; il sera visible en le survolant blurDescription: "Floutage du contenu. Il sera visible en le survolant avec le curseur."
avec le curseur."
font: "Police de caractères" font: "Police de caractères"
fontDescription: "Il est possible de choisir la police." fontDescription: "Choisir la police du contenu."
rainbow: "Arc-en-ciel" rainbow: "Arc-en-ciel"
rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel." rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel."
sparkle: "Paillettes" sparkle: "Paillettes"
@ -1082,6 +1086,23 @@ _mfm:
MFM. MFM.
rotateDescription: Pivoter le contenu d'un angle spécifique. rotateDescription: Pivoter le contenu d'un angle spécifique.
position: Position position: Position
advanced: MFM avancées
warn: Les MFM peuvent contenir des animations à mouvement rapide ou clignotantes
crop: Rogner
positionDescription: Déplacer le contenu selon une valeur spécifiée.
play: Animer les MFM
stop: Arrêter les MFM
alwaysPlay: Toujours lire automatiquement toutes les MFM animées
advancedDescription: Si désactivé, n'autorise que la mise en forme de base, sauf
si une MFM animée est en cours de lecture
cropDescription: Rogner le contenu.
scale: Mettre à l'échelle
scaleDescription: Mettre le contenu à l'échelle selon une valeur spécifiée.
foreground: Couleur de premier plan
foregroundDescription: Changer la couleur de premier plan d'un texte.
backgroundDescription: Changer la couleur d'arrière-plan d'un texte.
background: Couleur d'arrière-plan
plain: Simple
_instanceTicker: _instanceTicker:
none: "Cacher " none: "Cacher "
remote: "Montrer pour les utilisateur·ice·s distant·e·s" remote: "Montrer pour les utilisateur·ice·s distant·e·s"
@ -1092,8 +1113,8 @@ _serverDisconnectedBehavior:
quiet: "Afficher un avertissement discret" quiet: "Afficher un avertissement discret"
nothing: Ne rien faire nothing: Ne rien faire
_channel: _channel:
create: "Créer un canal" create: "Créer une chaîne"
edit: "Éditer le canal" edit: "Éditer la chaîne"
setBanner: "Sélectionner la bannière" setBanner: "Sélectionner la bannière"
removeBanner: "Supprimer la bannière" removeBanner: "Supprimer la bannière"
featured: "Tendances" featured: "Tendances"
@ -1102,6 +1123,7 @@ _channel:
usersCount: "{n} Participant·e·s" usersCount: "{n} Participant·e·s"
notesCount: "{n} Notes" notesCount: "{n} Notes"
nameAndDescription: Nom et description nameAndDescription: Nom et description
nameOnly: Nom uniquement
_menuDisplay: _menuDisplay:
sideFull: "Latéral" sideFull: "Latéral"
sideIcon: "Latéral (icônes)" sideIcon: "Latéral (icônes)"
@ -1113,20 +1135,20 @@ _wordMute:
un saut de ligne pour une condition OR." un saut de ligne pour une condition OR."
muteWordsDescription2: "Pour utiliser des expressions régulières (regex), mettez muteWordsDescription2: "Pour utiliser des expressions régulières (regex), mettez
les mots-clés entre barres obliques." les mots-clés entre barres obliques."
softDescription: "Masquez les notes de votre fil selon les paramètres que vous définissez." softDescription: "Masquez de votre fil dactualité les notes qui répondent aux conditions
hardDescription: "Empêchez votre fil de charger les notes selon les paramètres que définies."
vous définissez. Cette action est irréversible : si vous modifiez ces paramètres hardDescription: "Empêche les notes qui remplissent les conditions définies d'être
plus tard, les notes précédemment filtrées ne seront pas récupérées." ajoutées au fil d'actualité. Cette action est irréversible : si vous modifiez
ces conditions plus tard, les notes précédemment filtrées ne seront pas récupérées."
soft: "Doux" soft: "Doux"
hard: "Strict" hard: "Strict"
mutedNotes: "Notes filtrées" mutedNotes: "Notes filtrées"
_instanceMute: _instanceMute:
instanceMuteDescription2: "Séparer avec de nouvelles lignes" instanceMuteDescription2: "Séparer avec des sauts de lignes"
title: "Masque les notes venant des instances listées." title: "Masque les notes venant des serveurs listés."
heading: "Instances à mettre en sourdine" heading: "Serveurs à mettre en sourdine/masquer"
instanceMuteDescription: Ceci va masquer toute publication ou partage des instances instanceMuteDescription: Ceci va masquer toute publication ou partage de serveurs
listées, incluant celles des personnes répondant à des personnes des instances listés, incluant celles des personnes répondant à des personnes des serveurs masqués.
masquées.
_theme: _theme:
explore: "Explorer les thèmes" explore: "Explorer les thèmes"
install: "Installer un thème" install: "Installer un thème"
@ -1210,14 +1232,14 @@ _sfx:
chat: "Discuter" chat: "Discuter"
chatBg: "Discussion (arrière-plan)" chatBg: "Discussion (arrière-plan)"
antenna: "Réception de lantenne" antenna: "Réception de lantenne"
channel: "Notifications de canal" channel: "Notifications de chaîne"
_ago: _ago:
future: "Futur" future: "Futur"
justNow: "à linstant" justNow: "à linstant"
secondsAgo: "Il y a {n}s" secondsAgo: "Il y a {n}s"
minutesAgo: "Il y a {n}min" minutesAgo: "Il y a {n}min"
hoursAgo: "Il y a {n} heures" hoursAgo: "Il y a {n}h"
daysAgo: "Il y a {n} jours" daysAgo: "Il y a {n}j"
weeksAgo: "Il y a {n} semaines" weeksAgo: "Il y a {n} semaines"
monthsAgo: "Il y a {n} mois" monthsAgo: "Il y a {n} mois"
yearsAgo: "Il y a {n} ans" yearsAgo: "Il y a {n} ans"
@ -1234,24 +1256,23 @@ _tutorial:
step2_2: "En fournissant quelques informations sur qui vous êtes, il sera plus facile step2_2: "En fournissant quelques informations sur qui vous êtes, il sera plus facile
pour les autres de savoir s'ils veulent voir vos notes ou vous suivre." pour les autres de savoir s'ils veulent voir vos notes ou vous suivre."
step3_1: "Maintenant il est temps de suivre des gens !" step3_1: "Maintenant il est temps de suivre des gens !"
step3_2: "Votre page d'accueil et vos timelines sociales sont basées sur les personnes step3_2: "Vos fil dactualité Principal et Social sont basés sur les personnes que
que vous suivez, alors essayez de suivre quelques comptes pour commencer.\nCliquez vous suivez, alors essayez de suivre quelques comptes pour commencer.\nCliquez
sur le cercle plus en haut à droite d'un profil pour le suivre." sur le cercle plus en haut à droite d'un profil pour le suivre."
step4_1: "On y va." step4_1: "On y va."
step4_2: "Pour votre premier post, certaines personnes aiment faire un post {introduction} step4_2: "Pour votre première note, certaines personnes aiment faire une note {introduction}
ou un simple post 'Hello world'." ou une simple note 'Bonjours tout le monde !'."
step5_1: "Lignes de temps, lignes de temps partout !" step5_1: "Des fils, des fils dactualité partout !"
step5_2: "Votre instance a {timelines} différentes chronologies activées !" step5_2: "Votre serveur a {timelines} fils différents disponibles !"
step5_3: "La timeline Home {icon} est l'endroit où vous pouvez voir les publications step5_3: "Le fil {icon} Principal est l'endroit où vous pouvez voir les publications
de vos followers." de vos abonnements."
step5_4: "La timeline locale {icon} est l'endroit où vous pouvez voir les messages step5_4: "La fil {icon} Local est l'endroit où vous pouvez voir les messages de
de tout le monde sur cette instance." tout le monde sur ce serveur."
step5_5: "La chronologie {icon} sociale est l'endroit où vous pouvez voir uniquement step5_5: "Le fil {icon} Social est une combinaison des fils Principal et Local."
les publications des comptes que vous suivez." step5_6: "Le fil {icon} Recommandé est l'endroit où vous pouvez voir les publications
step5_6: "La chronologie {icon} recommandée est l'endroit où vous pouvez voir les des serveurs recommandés par vos administrateurs."
publications des instances recommandées par les administrateurs." step5_7: "Le fil {icon} Global est l'endroit où vous pouvez voir les messages de
step5_7: "La timeline globale {icon} est l'endroit où vous pouvez voir les messages tout les autres serveurs connectés."
de toutes les autres instances connectées."
step6_1: "Alors quel est cet endroit ?" step6_1: "Alors quel est cet endroit ?"
step6_2: "Eh bien, vous ne venez pas de rejoindre Firefish. Vous avez rejoint un step6_2: "Eh bien, vous ne venez pas de rejoindre Firefish. Vous avez rejoint un
portail vers le Fediverse, un réseau interconnecté de milliers de serveurs, appelés portail vers le Fediverse, un réseau interconnecté de milliers de serveurs, appelés
@ -1276,6 +1297,28 @@ _2fa:
davantage le processus de connexion grâce à une clé de sécurité matérielle qui 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 prend en charge FIDO2, ou bien en configurant l'authentification par empreinte
digitale ou par code PIN sur votre appareil." digitale ou par code PIN sur votre appareil."
token: Jeton 2FA
step3Title: Entrez un code dauthentification
chromePasskeyNotSupported: Les clés de passe Chrome ne sont actuellement pas prises
en charge.
step2Click: En cliquant sur ce QR code, vous pourrez enregistrer l'authentification
à deux facteurs (2FA) sur votre clé de sécurité ou votre application d'authentification
sur téléphone.
whyTOTPOnlyRenew: L'application d'authentification ne peut pas être supprimée tant
qu'une clé de sécurité est enregistrée.
securityKeyName: Entrez un nom de clé
removeKeyConfirm: Voulez-vous vraiment supprimer la clé {name} ?
renewTOTP: Reconfigurer l'application d'authentification
renewTOTPConfirm: Cela entraînera l'arrêt de fonctionnement des codes de vérification
provenant de votre application précédente
renewTOTPOk: Reconfigurer
securityKeyNotSupported: Votre navigateur ne prend pas en charge les clés de sécurité.
removeKey: Supprimer la clé de sécurité
renewTOTPCancel: Annuler
registerTOTPBeforeKey: Veuillez configurer une application d'authentification pour
enregistrer une clé de sécurité ou un mot de passe.
tapSecurityKey: Veuillez suivre les instructions de votre navigateur pour enregistrer
la clé de sécurité ou le mot de passe
_permissions: _permissions:
"read:account": "Afficher les informations du compte" "read:account": "Afficher les informations du compte"
"write:account": "Mettre à jour les informations de votre compte" "write:account": "Mettre à jour les informations de votre compte"
@ -1317,13 +1360,15 @@ _auth:
pleaseGoBack: "Veuillez retourner à lapplication" pleaseGoBack: "Veuillez retourner à lapplication"
callback: "Retour vers lapplication" callback: "Retour vers lapplication"
denied: "Accès refusé" denied: "Accès refusé"
copyAsk: Veuillez coller le code dautorisation à l'application copyAsk: "Veuillez coller le code dautorisation suivant dans l'application :"
allPermissions: Accès complet au compte
_antennaSources: _antennaSources:
all: "Toutes les notes" all: "Toutes les notes"
homeTimeline: "Notes venant des utilisateur·rice·s auxquel·les je suis abonné" homeTimeline: "Notes provenant des utilisateur·rice·s auxquel·les je suis abonné"
users: "Notes venant de la part dutilisateur·rice·s précis" users: "Notes venant de la part dutilisateur·rice·s précis"
userList: "Notes venant dune liste spécifique" userList: "Notes venant dune liste spécifique"
userGroup: "Notes venant dutilisateur·rice·s du groupe spécifié" userGroup: "Notes venant dutilisateur·rice·s du groupe spécifié"
instances: Notes de tous les utilisateurs d'un serveur
_weekday: _weekday:
sunday: "Dimanche" sunday: "Dimanche"
monday: "Lundi" monday: "Lundi"
@ -1333,9 +1378,9 @@ _weekday:
friday: "Vendredi" friday: "Vendredi"
saturday: "Samedi" saturday: "Samedi"
_widgets: _widgets:
memo: "Note collante" memo: "Post-it"
notifications: "Notifications" notifications: "Notifications"
timeline: "Fil" timeline: "Fil dactualité"
calendar: "Calendrier" calendar: "Calendrier"
trends: "Tendances" trends: "Tendances"
clock: "Horloge" clock: "Horloge"
@ -1344,7 +1389,7 @@ _widgets:
photos: "Photos" photos: "Photos"
digitalClock: "Horloge numérique" digitalClock: "Horloge numérique"
federation: "Fédération" federation: "Fédération"
postForm: "Formulaire de publication" postForm: "Champ de publication"
slideshow: "Diaporama" slideshow: "Diaporama"
button: "Bouton" button: "Bouton"
onlineUsers: "Utilisateurs en ligne" onlineUsers: "Utilisateurs en ligne"
@ -1356,6 +1401,12 @@ _widgets:
_userList: _userList:
chooseList: Sélectionner une liste chooseList: Sélectionner une liste
unixClock: Horloge UNIX unixClock: Horloge UNIX
meiliIndexCount: Notes indexées
serverInfo: Info serveur
meiliStatus: État du serveur
meiliSize: Taille de lindex
instanceCloud: Nuage de serveurs
rssTicker: Bandeau RSS
_cw: _cw:
hide: "Masquer" hide: "Masquer"
show: "Afficher plus …" show: "Afficher plus …"
@ -1385,19 +1436,19 @@ _poll:
remainingSeconds: "{s} secondes restantes" remainingSeconds: "{s} secondes restantes"
_visibility: _visibility:
public: "Public" public: "Public"
publicDescription: "Publier à tou·te·s les utilisateur·rice·s" publicDescription: "Publier sur tous les fils publics"
home: "Principal" home: "Non-listés"
homeDescription: "Publier sur le fil principal uniquement" homeDescription: "Publier sur le fil principal uniquement"
followers: "Abonné·e·s" followers: "Abonné·e·s"
followersDescription: "Publier à vos abonné·e·s uniquement" followersDescription: "Publier à vos abonné·e·s et mentions 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"
localOnly: "Local seulement" localOnly: "Local seulement"
localOnlyDescription: "Caché pour les utilisateurs distant" localOnlyDescription: "Caché pour les utilisateur·rice·s distant"
_postForm: _postForm:
replyPlaceholder: "Répondre à cette note ..." replyPlaceholder: "Répondre à cette note ..."
quotePlaceholder: "Citez cette note ..." quotePlaceholder: "Citez cette note ..."
channelPlaceholder: "Publier vers le canal" channelPlaceholder: "Publier sur une chaîne…"
_placeholders: _placeholders:
a: "Quoi de neuf ?" a: "Quoi de neuf ?"
b: "Il s'est passé quelque chose ?" b: "Il s'est passé quelque chose ?"
@ -1413,13 +1464,14 @@ _profile:
metadata: "Informations supplémentaires" metadata: "Informations supplémentaires"
metadataEdit: "Éditer les informations supplémentaires" metadataEdit: "Éditer les informations supplémentaires"
metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires
dans votre profil. Vous pouvez ajouter une balise {a} ou une balise {l} avec {rel} pour vérifier le lien sur votre profil!" dans votre profil. Vous pouvez ajouter une balise {a} ou une balise {l} avec {rel}
pour vérifier le lien sur votre profil!"
metadataLabel: "Étiquette" metadataLabel: "Étiquette"
metadataContent: "Contenu" metadataContent: "Contenu"
changeAvatar: "Changer l'image de profil" changeAvatar: "Changer l'image de profil"
changeBanner: "Changer de bannière" changeBanner: "Changer de bannière"
locationDescription: Si vous entrez votre ville en premier, votre heure locale sera locationDescription: Si vous entrez votre ville en premier, votre heure locale sera
affiché aux autres utilisateurs. affichée aux autres utilisateur·rice·s.
_exportOrImport: _exportOrImport:
allNotes: "Toutes les notes" allNotes: "Toutes les notes"
followingList: "Abonnements" followingList: "Abonnements"
@ -1459,7 +1511,7 @@ _timelines:
local: "Local" local: "Local"
social: "Social" social: "Social"
global: "Global" global: "Global"
recommended: Recommandée recommended: Recommandé
_pages: _pages:
newPage: "Créer une page" newPage: "Créer une page"
editPage: "Modifier une page" editPage: "Modifier une page"
@ -1538,8 +1590,7 @@ _pages:
note: "Note intégrée" note: "Note intégrée"
_note: _note:
id: "Identifiant de la note" id: "Identifiant de la note"
idDescription: "Pour configurer la note, vous pouvez aussi coller ici l'URL idDescription: "Vous pouvez aussi coller ici l'URL ici."
correspondante."
detailed: "Afficher les détails" detailed: "Afficher les détails"
switch: "Interrupteur" switch: "Interrupteur"
_switch: _switch:
@ -1790,6 +1841,9 @@ _notification:
followBack: "Suivre" followBack: "Suivre"
reply: "Répondre" reply: "Répondre"
renote: "Renoter" renote: "Renoter"
reacted: a réagit à votre Note
renoted: a boosté votre Note
voted: a voté pour votre sondage
_deck: _deck:
alwaysShowMainColumn: "Toujours afficher la colonne principale" alwaysShowMainColumn: "Toujours afficher la colonne principale"
columnAlign: "Aligner les colonnes" columnAlign: "Aligner les colonnes"
@ -1800,29 +1854,37 @@ _deck:
swapDown: "Déplacer vers le bas" swapDown: "Déplacer vers le bas"
stackLeft: "Empiler à gauche" stackLeft: "Empiler à gauche"
popRight: "Extraire à droite" popRight: "Extraire à droite"
profile: "Profil" profile: "Espace de travail"
_columns: _columns:
main: "Principale" main: "Principale"
widgets: "Widgets" widgets: "Widgets"
notifications: "Notifications" notifications: "Notifications"
tl: "Fil" tl: "Fil dactualité"
antenna: "Antennes" antenna: "Antenne"
list: "Listes" list: "Listes"
mentions: "Mentions" mentions: "Mentions"
direct: "Direct" direct: "Direct"
channel: Chaîne
introduction: Créer l'interface parfaite pour vous en arrangeant les colonnes librement introduction: Créer l'interface parfaite pour vous en arrangeant les colonnes librement
! !
introduction2: Cliquer sur le + sur la droite de l'écran pour ajouter de nouvelles introduction2: Cliquer sur le + sur la droite de l'écran pour ajouter de nouvelles
colonnes à tout moment. colonnes à tout moment.
renameProfile: Renommer lespace de travail
configureColumn: Paramètres de colonne
deleteProfile: Supprimer lespace de travail
widgetsIntroduction: Sélectionner "Modifier les widgets" dans le menu de la colonne
et ajouter un widget.
nameAlreadyExists: Ce nom despace de travail existe déjà.
newProfile: Nouvel espace de travail
keepOriginalUploadingDescription: Enregistrer l'image originale telle quelle. Si désactivé, keepOriginalUploadingDescription: Enregistrer l'image originale telle quelle. Si désactivé,
une version à afficher sur le web sera générée au chargement. une version à afficher sur le web sera générée au chargement.
manageGroups: Gérer les groupes manageGroups: Gérer les groupes
moderation: Modération moderation: Modération
disableDrawer: Ne pas utiliser des menus à tiroir disableDrawer: Ne pas utiliser de menus déroulants
preferencesBackups: Sauvegarde des préférences preferencesBackups: Sauvegarde des préférences
confirmToUnclipAlreadyClippedNote: Ce message fait déjà partie du clip "{name}". Voudriez-vous confirmToUnclipAlreadyClippedNote: Ce message fait déjà partie du clip "{name}". Voudriez-vous
plutôt le supprimer du clip ? plutôt le supprimer du clip ?
instanceSecurity: Sécurité de l'instance instanceSecurity: Sécurité du serveur
recommended: Recommandé recommended: Recommandé
recentNDays: Les derniers {n} jours recentNDays: Les derniers {n} jours
recentNHours: Les dernières {n} heures recentNHours: Les dernières {n} heures
@ -1835,7 +1897,7 @@ lastActiveDate: Dernière utilisation le
cannotUploadBecauseNoFreeSpace: Mise en ligne échouée faute de place sur le Drive. cannotUploadBecauseNoFreeSpace: Mise en ligne échouée faute de place sur le Drive.
remoteOnly: Distant seulement remoteOnly: Distant seulement
showUpdates: Afficher une fenêtre en sur-impression quand Firefish se met à jour showUpdates: Afficher une fenêtre en sur-impression quand Firefish se met à jour
recommendedInstances: Instances recommandées recommendedInstances: Serveurs recommandées
caption: Description automatique caption: Description automatique
migration: Migration migration: Migration
showAdminUpdates: Indiquer qu'une nouvelle version de Firefish est disponible (admin showAdminUpdates: Indiquer qu'une nouvelle version de Firefish est disponible (admin
@ -1845,7 +1907,7 @@ moveTo: Migrer le compte courant vers un nouveau compte
moveFromDescription: Ceci va configurer un alias pour votre ancien compte afin que moveFromDescription: Ceci va configurer un alias pour votre ancien compte afin que
vous puissiez migrer de cet ancien compte à l'actuel. Faites ceci AVANT de migrer vous puissiez migrer de cet ancien compte à l'actuel. Faites ceci AVANT de migrer
de votre ancien compte. Merci d'entrer la mention de l'ancien compte sous ce format de votre ancien compte. Merci d'entrer la mention de l'ancien compte sous ce format
@personne@instance.com @personne@server.com
_sensitiveMediaDetection: _sensitiveMediaDetection:
sensitivityDescription: Réduire la sensibilité conduira à moins de mauvaises détections sensitivityDescription: Réduire la sensibilité conduira à moins de mauvaises détections
(faux positifs) alors que l'augmenter mènera à moins de détection manquées (faux (faux positifs) alors que l'augmenter mènera à moins de détection manquées (faux
@ -1867,7 +1929,7 @@ cannotUploadBecauseExceedsFileSizeLimit: Le fichier n'a pas pu être chargé car
dépasse la taille maximum autorisée. dépasse la taille maximum autorisée.
moveAccountDescription: Ce processus est irréversible. Soyez sûr⋅e que vous avez préparé moveAccountDescription: Ce processus est irréversible. Soyez sûr⋅e que vous avez préparé
un alias pour ce compte sur votre nouveau compte avant de migrer. Merci d'entrer un alias pour ce compte sur votre nouveau compte avant de migrer. Merci d'entrer
la mention du compte formaté comme ceci @personne@instance.com la mention du compte formaté comme ceci @personne@server.com
moveAccount: Déplacer le compte ! moveAccount: Déplacer le compte !
seperateRenoteQuote: Séparer les renotes et les boutons de citation seperateRenoteQuote: Séparer les renotes et les boutons de citation
failedToFetchAccountInformation: Impossible de récupérer les informations de compte failedToFetchAccountInformation: Impossible de récupérer les informations de compte
@ -1878,8 +1940,8 @@ numberOfPageCache: Nombre de pages mise en cache
fast: Rapide fast: Rapide
failedToUpload: Mise en ligne échouée failedToUpload: Mise en ligne échouée
enableAutoSensitiveDescription: Permet la détection automatique des médias sensibles enableAutoSensitiveDescription: Permet la détection automatique des médias sensibles
(NSFW) via une intelligence artificielle, quand c'est possible. Même si cette option (NSFW) via une intelligence artificielle, lorsque c'est possible. Même si cette
est désactivée, elle peut être enclenchée au niveau de l'instance. option est désactivée, elle peut être activée au niveau du serveur.
activeEmailValidationDescription: Active une vérification plus poussée des adresses activeEmailValidationDescription: Active une vérification plus poussée des adresses
e-mail, ce qui inclut de vérifier la présence de-mail jetables et s'il est possible e-mail, ce qui inclut de vérifier la présence de-mail jetables et s'il est possible
de communiquer avec ces adresses. Si désactivé, seul le format de le-mail est vérifié. de communiquer avec ces adresses. Si désactivé, seul le format de le-mail est vérifié.
@ -1887,7 +1949,7 @@ adminCustomCssWarn: Ce paramètre ne devrait être utilisé que si vous savez ce
fait. Entrer des valeurs impropres pourraient empêcher les clients de TOUT LE MONDE fait. Entrer des valeurs impropres pourraient empêcher les clients de TOUT LE MONDE
de fonctionner. Assurez-vous que votre CSS fonctionne correctement en l'essayant de fonctionner. Assurez-vous que votre CSS fonctionne correctement en l'essayant
dans vos paramètres utilisateur. dans vos paramètres utilisateur.
swipeOnDesktop: Permettre le style de glissement de fenêtre de mobile sur PC swipeOnDesktop: Permettre le style de balayage de fenêtre de mobile sur PC
moveFromLabel: 'Compte depuis lequel vous migrez :' moveFromLabel: 'Compte depuis lequel vous migrez :'
migrationConfirm: "Êtes-vous absolument certain⋅e que vous voulez migrer votre compte migrationConfirm: "Êtes-vous absolument certain⋅e que vous voulez migrer votre compte
vers {account} ? Une fois fait, vous ne pourrez pas revenir en arrière, et vous vers {account} ? Une fois fait, vous ne pourrez pas revenir en arrière, et vous
@ -1915,9 +1977,9 @@ _preferencesBackups:
inputName: Merci d'entrer un nom pour cette sauvegarde inputName: Merci d'entrer un nom pour cette sauvegarde
cannotSave: La sauvegarde a échoué cannotSave: La sauvegarde a échoué
privateMode: Mode privé privateMode: Mode privé
privateModeInfo: Si activé, seules les instances autorisées peuvent fédérer avec votre privateModeInfo: Si activé, seuls les serveurs autorisés peuvent fédérer avec votre
instance. Toutes les publications seront masquées de la visibilité publique. serveur. Toutes les publications seront masquées de la visibilité publique.
allowedInstances: Instances autorisées allowedInstances: Serveurs Autorisés
driveCapOverrideLabel: Changer la capacité du drive pour cet utilisateur driveCapOverrideLabel: Changer la capacité du drive pour cet utilisateur
driveCapOverrideCaption: Réinitialiser la capacité à la valeur par défaut en entrant driveCapOverrideCaption: Réinitialiser la capacité à la valeur par défaut en entrant
0 ou moins. 0 ou moins.
@ -1928,38 +1990,37 @@ type: Type
speed: Vitesse speed: Vitesse
slow: Lent slow: Lent
move: Déplacer move: Déplacer
showAds: Afficher les annonces showAds: Afficher les bannières communautaire/publicités
enterSendsMessage: Appuyer sur Entrée pendant la rédaction pour envoyer le message enterSendsMessage: Appuyer sur Entrée pendant la rédaction pour envoyer le message
(sinon Ctrl+Entrée) (sinon Ctrl+Entrée)
allowedInstancesDescription: Hôtes des instances autorisées pour la fédération, chacun allowedInstancesDescription: Noms des serveurs autorisés pour la fédération, chacun
séparé par une nouvelle ligne (s'applique uniquement en mode privé). séparé par une nouvelle ligne (s'applique uniquement en mode privé).
enableAutoSensitive: Marquage automatique du contenu sensible (NSFW) enableAutoSensitive: Marquage automatique du contenu sensible (NSFW)
regexpErrorDescription: "Il y a eu une erreur dans l'expression régulière à la ligne regexpErrorDescription: "Il y a eu une erreur dans l'expression régulière à la ligne
{line} de votre {tab} des mots masqués:" {line} de votre {tab} des mots masqués:"
forwardReportIsAnonymous: À la place de votre compte, un compte système anonyme sera forwardReportIsAnonymous: À la place de votre compte, un compte système anonyme sera
affiché comme rapporteur à l'instance distante. affiché comme rapporteur au serveur distant.
noThankYou: Non merci noThankYou: Non merci
addInstance: Ajouter une instance addInstance: Ajouter un serveur
renoteMute: Mettre en silence les renotes renoteMute: Mettre en silence les renotes
flagSpeakAsCat: Parler comme un chat flagSpeakAsCat: Parler comme un chat
flagSpeakAsCatDescription: Vos messages seront nyanifiés en mode chat flagSpeakAsCatDescription: Vos messages seront nyanifiés en mode chat
hiddenTags: Hashtags cachés hiddenTags: Hashtags cachés
hiddenTagsDescription: "Lister les hashtags (sans le #) que vous souhaitez cacher hiddenTagsDescription: "Lister les hashtags (sans le #) que vous souhaitez cacher
de tendances et explorer. Les hashtags cachés sont toujours découvrables par d'autres de Tendances et Découvrir. Les hashtags cachés sont toujours découvrables par d'autres
moyens. Les instances bloqués ne sont pas ne sont pas affectés, même si ils sont moyens."
présent dans cette liste." antennaInstancesDescription: Lister un nom de serveur par ligne
antennaInstancesDescription: Lister un hôte d'instance par ligne
userSaysSomethingReason: '{name} a dit {reason}' userSaysSomethingReason: '{name} a dit {reason}'
breakFollowConfirm: Êtes vous sur de vouloir retirer l'abonné ? breakFollowConfirm: Êtes vous sur de vouloir retirer l'abonné ?
recommendedInstancesDescription: Instances recommandées séparées par une nouvelle recommendedInstancesDescription: Serveurs recommandés séparés par une nouvelle ligne
ligne pour apparaître dans la timeline recommandée. pour apparaître dans le fil recommandé.
sendPushNotificationReadMessage: Supprimer les notifications push une fois que les sendPushNotificationReadMessage: Supprimer les notifications push une fois que les
notifications ou messages concernés ont été lus notifications ou messages concernés ont été lus
sendPushNotificationReadMessageCaption: Une notification contenant le texte "{emptyPushNotificationMessage}" sendPushNotificationReadMessageCaption: Une notification contenant le texte "{emptyPushNotificationMessage}"
sera affichée pendant un court instant. Cela peut augmenter la consommation de batterie sera affichée pendant un court instant. Cela peut augmenter la consommation de batterie
de votre appareil. de votre appareil.
splash: Écran dAccueil splash: Écran dAccueil
pushNotificationNotSupported: Votre navigateur ou instance ne supporte pas les notifications pushNotificationNotSupported: Votre navigateur ou serveur ne supporte pas les notifications
push push
customMOTDDescription: Messages personnalisé pour le message du jour (sur l'écran customMOTDDescription: Messages personnalisé pour le message du jour (sur l'écran
daccueil), séparés par des retours à la ligne, affichés au hasard à chaque (re)chargement daccueil), séparés par des retours à la ligne, affichés au hasard à chaque (re)chargement
@ -1970,17 +2031,19 @@ customSplashIconsDescription: URLs pour les icônes personnalisées de l'écran
(re)chargement de page. Assurez-vous que les images sont sur des URL statiques, (re)chargement de page. Assurez-vous que les images sont sur des URL statiques,
de préférence toutes de taille 192x192. de préférence toutes de taille 192x192.
updateAvailable: Une mise à jour est peut-être disponible ! updateAvailable: Une mise à jour est peut-être disponible !
accountMoved: "L'utilisateur a migré vers un nouveau compte:" accountMoved: "L'utilisateur·rice a migré vers un nouveau compte:"
enableEmojiReactions: Activer les réactions par émojis enableEmojiReactions: Activer les réactions par émojis
showEmojisInReactionNotifications: Montrer les émojis dans les notifications de réactions showEmojisInReactionNotifications: Montrer les émojis dans les notifications de réactions
renoteUnmute: Notifier les renotes renoteUnmute: Ne plus masquer les boosts
selectInstance: Choisir une instance selectInstance: Choisir un serveur
noInstances: Il n'y a aucune instance noInstances: Il n'y a aucun serveur
showLocalPosts: 'Montrer les notes locales dans :' showLocalPosts: 'Montrer les notes locales dans :'
homeTimeline: Timeline d'Accueil homeTimeline: Timeline d'Accueil
socialTimeline: Timeline Sociale socialTimeline: Timeline Sociale
requireAdminForView: Vous avez besoin d'un compte d'administration pour voir cela. requireAdminForView: Vous avez besoin d'un compte d'administration pour voir cela.
isSystemAccount: Un compte créé et géré automatiquement par le système. isSystemAccount: Ce compte est créé et géré automatiquement par le système. Veuillez
ne pas modérer, éditer, supprimer ou altérer d'une autre manière ce compte, ou cela
risque de perturber votre serveur.
typeToConfirm: Entrer {x} pour confirmer typeToConfirm: Entrer {x} pour confirmer
statusbar: Barre d'état statusbar: Barre d'état
sensitiveMediaDetection: Détection des médias sensibles (NSFW) sensitiveMediaDetection: Détection des médias sensibles (NSFW)
@ -2003,10 +2066,10 @@ indexNotice: Indexation en cours. Cela prendra certainement du temps, veuillez n
pas redémarrer votre serveur pour au moins une heure. pas redémarrer votre serveur pour au moins une heure.
customKaTeXMacro: Macros KaTeX personnalisées customKaTeXMacro: Macros KaTeX personnalisées
enableCustomKaTeXMacro: Activer les macros KaTeX personnalisées enableCustomKaTeXMacro: Activer les macros KaTeX personnalisées
noteId: ID de note noteId: ID de Note
customKaTeXMacroDescription: "Définissez des macros pour écrire des expressions mathématiques customKaTeXMacroDescription: "Définissez des macros pour écrire des expressions mathématiques
simplement ! La notation se conforme aux définitions de commandes LaTeX et s'écrit simplement ! La notation se conforme aux définitions de commandes LaTeX et s'écrit
\\newcommand{\\name}{content} ou \\newcommand{\\name}[number of arguments]{content}. \\newcommand{\\·name}{content} ou \\newcommand{\\name}[number of arguments]{content}.
Par exemple, \\newcommand{\\add}[2]{#1 + #2} étendra \\add{3}{foo} en 3 + foo. Les Par exemple, \\newcommand{\\add}[2]{#1 + #2} étendra \\add{3}{foo} en 3 + foo. Les
accolades entourant le nom de la macro peuvent être changés pour des parenthèses accolades entourant le nom de la macro peuvent être changés pour des parenthèses
ou des crochets. Cela affectera les types de parenthèses utilisées pour les arguments. ou des crochets. Cela affectera les types de parenthèses utilisées pour les arguments.
@ -2014,20 +2077,24 @@ customKaTeXMacroDescription: "Définissez des macros pour écrire des expression
la ligne au milieu d'une définition. Les lignes invalides sont simplement ignorées. la ligne au milieu d'une définition. Les lignes invalides sont simplement ignorées.
Seulement de simples fonctions de substitution de chaines sont supportées; la syntaxe Seulement de simples fonctions de substitution de chaines sont supportées; la syntaxe
avancée, telle que la ramification conditionnelle, ne peut pas être utilisée ici." avancée, telle que la ramification conditionnelle, ne peut pas être utilisée ici."
enableRecommendedTimeline: Activer la chronologie recommandée enableRecommendedTimeline: Activer le fil recommandé
silenceThisInstance: Ne plus montrer cet instance silenceThisInstance: Masquer ce serveur
silencedInstances: Instances silencieuses silencedInstances: Serveurs masqués
silenced: Silencieux silenced: Silencieux
deleted: Effacé deleted: Effacé
editNote: Modifier note editNote: Modifier note
edited: 'Modifié à {date} {time}' edited: 'Modifié à {date} {time}'
flagShowTimelineRepliesDescription: Si activé, affiche dans le fil les réponses des flagShowTimelineRepliesDescription: Si activé, affiche dans le fil les réponses des
personnes aux publications des autres. utilisatieur·rice·s aux notes des autres.
_experiments: _experiments:
alpha: Alpha alpha: Alpha
beta: Beta beta: Beta
enablePostImports: Autoriser l'importation de messages enablePostImports: Autoriser l'importation de messages
title: Expérimentations title: Expérimentations
postImportsCaption: Permet aux utilisateurs d'importer leurs publications à partir
de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela
peut entraîner des ralentissements lors du chargement si votre file d'attente
est congestionnée.
findOtherInstance: Trouver un autre serveur findOtherInstance: Trouver un autre serveur
userSaysSomethingReasonQuote: '{name} a cité une note contenant {reason}' userSaysSomethingReasonQuote: '{name} a cité une note contenant {reason}'
signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais
@ -2037,3 +2104,100 @@ apps: Applications
userSaysSomethingReasonReply: '{noms} a répondu à une note contenant {raison}' userSaysSomethingReasonReply: '{noms} a répondu à une note contenant {raison}'
defaultValueIs: 'défaut: {valeur}' defaultValueIs: 'défaut: {valeur}'
searchPlaceholder: Recherchez sur Firefish searchPlaceholder: Recherchez sur Firefish
removeReaction: Retirer votre réaction
selectChannel: Sélectionner une chaîne
expandOnNoteClick: Ouvrir la note en cliquant
preventAiLearning: Empêcher le récupération de données par des IA
listsDesc: Les listes vous laissent créer des fils personnalisés avec des utilisateur·rice·s
spécifié·e·s. Elles sont accessibles depuis la page des fils.
indexFromDescription: Laisser vide pour indexer toutes les Notes
_feeds:
jsonFeed: flux JSON
atom: Atom
copyFeed: Copier le flux
rss: RSS
alt: ALT
swipeOnMobile: Permettre le balayage entre les pages
expandOnNoteClickDesc: Si désactivé, vous pourrez toujours ouvrir les Notes dans le
menu du clic droit et en cliquant sur lhorodatage.
indexFrom: Indexer à partir de lID des Notes
older: plus ancien
newer: plus récent
accessibility: Accessibilité
silencedInstancesDescription: Listez les noms de domaine de serveurs que vous voulez
masquer. Les comptes des serveurs listés seront traités comme "Masqués", ne pourront
faire que des demandes dabonnement, et ne pourront pas mentionner les comptes locaux
si non-suivis. Cela naffectera en rien les serveurs bloqués.
antennasDesc: "Les Antennes affichent de nouvelles notes selon les critères que vous
indiqués.\nElles peuvent être consultées depuis la page des fils."
image: Image
video: Vidéo
audio: Audio
jumpToPrevious: Passer au précédent
cw: Avertissement de contenu
xl: XL
reflectMayTakeTime: Il pourra sécouler un certain temps avant que les changements
ne soient reflétés.
userSaysSomethingReasonRenote: '{name} a boosté une note contenant {reason}'
sendModMail: Envoyer un avis à la modération
clipsDesc: Les clips sont comme des favoris catégorisés pouvant être partagés. Vous
pouvez créer des clips à partir du menu de chaque note.
unclip: Dé-clipper
secureMode: Mode sécurisé (Authorized Fetch)
secureModeInfo: Quand sollicité depuis d'autres serveurs, ne pas répondre sans preuve.
isModerator: Modérateur
enableServerMachineStats: Activer les statistiques matérielles du serveur
enableIdenticonGeneration: Activer la génération dIdenticon
reactionPickerSkinTone: Couleur de peau des emojis préférée
verifiedLink: Lien vérifié
isBot: Ce compte est un bot
isLocked: Ce compte nécessite une approbation pour être suivi
origin: Origine
showPopup: Notifier les utilisateurs avec un popup
showWithSparkles: Afficher avec des paillettes
youHaveUnreadAnnouncements: Vous avez des annonces non-lues
donationLink: Lien vers la page de donation
neverShow: Ne plus afficher
remindMeLater: Peut-être plus tard
removeQuote: Retirer la citation
removeRecipient: Retirer le destinataire
removeMember: Retirer un membre
preventAiLearningDescription: Demandez aux modèles d'IA de tiers de ne pas étudier
le contenu que vous téléchargez, tel que les publications et les images.
noGraze: Veuillez désactiver l'extension de navigateur "Graze for Mastodon", car elle
interfère avec Firefish.
silencedWarning: Cette page s'affiche car ces utilisateurs proviennent de serveurs
que votre administrateur a réduits au silence/masqué, il se peut donc qu'ils soient
de potentiels spams.
isAdmin: Administrateur
isPatron: Mécène Firefish
_filters:
fromUser: De lutilisateur
withFile: Avec fichier
notesBefore: Notes avant
notesAfter: Notes après
followersOnly: Abonnés uniquement
followingOnly: Abonnements uniquement
fromDomain: Du domaine
_dialog:
charactersBelow: 'Pas assez de caractères ! Actuel : {current}/Minimum : {min}'
charactersExceeded: 'Nombre maximal de caractères dépassé ! Actuel : {current}/Limite
: {max}'
channelFederationWarn: Les chaînes ne se fédèrent pas encore vers d'autres serveurs
_skinTones:
yellow: Jaune
dark: Peau Foncée
light: Claire
mediumLight: Moyennement Claire
medium: Légèrement Mate
mediumDark: Peau Mate
objectStorageS3ForcePathStyle: Utiliser des URL d'endpoints basées sur le chemin
objectStorageS3ForcePathStyleDesc: Activez cette option pour construire les URL d'endpoints
au format 's3.amazonaws.com/<bucket>/' au lieu de '<bucket>.s3.amazonaws.com'.
delete2fa: Supprimer 2FA
deletePasskeys: Supprimer les clés d'accès
delete2faConfirm: Cela supprimera de manière irréversible la double authentification
sur ce compte. Souhaitez-vous continuer ?
inputNotMatch: L'entrée ne correspond pas
deletePasskeysConfirm: Cela supprimera de manière irréversible toutes les clés d'accès
et les clés de sécurité sur ce compte. Souhaitez-vous continuer ?

View file

@ -1,5 +1,5 @@
_lang_: Inglés _lang_: Inglés
introMisskey: Benvida! Firefish é unha plataforma de medios sociais de código aberto, introFirefish: Benvida! Firefish é unha plataforma de medios sociais de código aberto,
descentralizada e gratuíta para sempre!🚀 descentralizada e gratuíta para sempre!🚀
monthAndDay: '{day}/{month}' monthAndDay: '{day}/{month}'
notifications: Notificacións notifications: Notificacións
@ -8,10 +8,277 @@ forgotPassword: Esquecín o contrasinal
gotIt: Vale! gotIt: Vale!
cancel: Cancelar cancel: Cancelar
noThankYou: Non, grazas noThankYou: Non, grazas
headlineMisskey: Plataforma de medios sociais de código aberto e descentralizada, headlineFirefish: Plataforma de medios sociais de código aberto e descentralizada,
gratuíta para sempre!🚀 gratuíta para sempre!🚀
search: Buscar search: Buscar
searchPlaceholder: Buscar en Firefish searchPlaceholder: Buscar en Firefish
username: Identificador username: Identificador
fetchingAsApObject: Descargando desde o Fediverso fetchingAsApObject: Descargando desde o Fediverso
ok: OK ok: OK
youShouldUpgradeClient: Actualiza esta páxina para recibir os últimos contidos no
teu cliente.
privacy: Privacidade
makeFollowManuallyApprove: As solicitudes de seguimento requiren aprobación
defaultNoteVisibility: Visibilidade por defecto
follow: Seguir
followRequests: Solicitudes de seguimento
followRequestPending: Solicitude de seguimento pendente
renote: Promover
unrenote: Retirar promoción
renoted: Promovida.
cantReRenote: Unha promoción non pode ser promovida.
quote: Citar
pinnedNote: Publicación fixada
pinned: Fixar no perfil
you: Ti
clickToShow: Preme para mostrar
sensitive: NSFW
add: Engadir
reaction: Reaccións
removeReaction: Quitar a túa reacción
enableEmojiReactions: Activar as reaccións con emojis
showEmojisInReactionNotifications: Mostrar emojis nas notificacións das reaccións
reactionSetting: Reaccións mostradas no selector de reaccións
reactionSettingDescription2: Arrastra para reordenar, preme para eliminar, preme "+"
para engadir.
rememberNoteVisibility: Lembrar os axustes da visibilidade da publicación
attachCancel: Quitar o anexo
markAsSensitive: Marcar como NSFW
unmarkAsSensitive: Retirar marca NSFW
enterFileName: Escribe nome do ficheiro
mute: Acalar
unmute: Reactivar
renoteMute: Acalar promocións
renoteUnmute: Reactivar promocións
block: Bloquear
unblock: Desbloquear
suspend: Suspender
unsuspend: Retirar suspensión
timeline: Cronoloxía
noAccountDescription: Esta usuaria aínda non escribiu a súa bio.
login: Acceder
loggingIn: Accedendo
logout: Pechar sesión
signup: Crear conta
uploading: Subindo...
save: Gardar
users: Usuarias
addUser: Engadir unha usuaria
addInstance: Engadir un servidor
favorite: Engadir aos marcadores
favorites: Marcadores
unfavorite: Quitar dos marcadores
favorited: Engadido aos marcadores.
alreadyFavorited: Xa está nos marcadores.
cantFavorite: Non se puido engadir aos marcadores.
pin: Fixar no perfil
unpin: Soltar do perfil
copyContent: Copiar contidos
copyLink: Copiar ligazón
delete: Eliminar
deleted: Eliminado
deleteAndEdit: Eliminar e editar
blockConfirm: Tes a certeza de querer bloquear esta conta?
deleteAndEditConfirm: Tes a certeza de querer eliminar esta publicación e editala?
Perderás todas as súas reaccións, promocións e respostas.
editNote: Editar nota
edited: Editado o {date} {time}
sendMessage: Enviar unha mensaxe
copyUsername: Copiar identificador
searchUser: Buscar unha usuaria
reply: Responder
jumpToPrevious: Ir á anterior
loadMore: Cargar máis
showMore: Mostrar máis
newer: máis novo
older: máis antigo
showLess: Pechar
youGotNewFollower: seguíute
receiveFollowRequest: Recibida solicitude de seguimento
followRequestAccepted: Solicitude de seguimento aceptada
mention: Mención
mentions: Mencións
directNotes: Mensaxes directas
cw: Aviso sobre o contido
importAndExport: Importar/Exportar datos
import: Importar
export: Exportar
files: Ficheiros
download: Descargar
unblockConfirm: Tes a certeza de querer retirarlle o bloqueo a esta conta?
suspendConfirm: Tes a certeza de querer suspender esta conta?
unsuspendConfirm: Tes a certeza de querer retirarlle a suspensión a esta conta?
selectList: Elixe unha lista
selectAntenna: Elixe unha antena
selectWidget: Elixe un widget
selectChannel: Elixe unha canle
editWidgets: Editar widgets
editWidgetsExit: Feito
customEmojis: Emoji personalizado
emoji: Emoji
emojis: Emoji
emojiName: Nome do emoji
emojiUrl: URL do emoji
addEmoji: Engadir
settingGuide: Axustes recomendados
cacheRemoteFiles: Gardar na caché ficheiros remotos
cacheRemoteFilesDescription: Se desactivas este axuste, os ficheiros remotos cárganse
directamente desde o servidor remoto. Ao desactivalo diminuirá a almacenaxe usada,
pero incrementarás o tráfico, xa que non se crearán miniaturas.
flagAsBotDescription: Activa esta opción se esta conta está controlada por un programa.
Se está activada, será unha marca para que outras desenvolvedoras eviten interaccións
en bucle con outros bots e axustará os sistemas internos de Firefish para tratar
esta conta como un bot.
flagAsCat: Es un gato? 😺
flagAsCatDescription: Vas ter orellas de gato e falar como un gato!
flagSpeakAsCat: Fala como un gato
flagSpeakAsCatDescription: As túas publicacións serán gatificadas ao estar no modo
gato
flagShowTimelineReplies: Mostrar respostas na cronoloxía
flagShowTimelineRepliesDescription: Se está activado mostra as respostas das usuarias
a publicacións de outras usuarias na cronoloxía.
autoAcceptFollowed: Aprobar automáticamente as solicitudes de seguimento das persoas
que ti xa segues
addAccount: Engadir conta
loginFailed: Fallou o inicio de sesión
showOnRemote: Abrir páxina orixinal
general: Xeral
accountMoved: 'A usuaria está nunha nova conta:'
wallpaper: Fondo de pantalla
setWallpaper: Establecer fondo
removeWallpaper: Eliminar fondo
searchWith: 'Buscar: {q}'
youHaveNoLists: Non tes ningunha lista
stopActivityDelivery: Deixar de enviar actividades
perDay: Por día
blockThisInstance: Bloquear este servidor
silenceThisInstance: Acalar este servidor
operations: Operacións
software: Software
version: Versión
metadata: Metadatos
monitor: Monitor
cantRenote: Non se pode promover esta publicación.
clearCachedFiles: Limpar caché
jobQueue: Cola de tarefas
cpuAndMemory: CPU e Memoria
network: Rede
disk: Disco
instanceInfo: Información do servidor
statistics: Estatísticas
clearQueue: Limpar cola
clearQueueConfirmTitle: Tes a certeza de querer limpara a cola?
clearQueueConfirmText: Todas as publicacións que aínda non fosen entregadas non estarán
federadas. Esta operación, normalmente, non é necesaria.
clearCachedFilesConfirm: Tes a certeza de que queres eliminar todos os ficheiros remotos
da caché?
blockedInstances: Servidores bloqueados
blockedInstancesDescription: Lista dos nomes dos servidores que queres bloquear. Os
servidores da lista non poderán comunicarse con este servidor.
silencedInstances: Servidores acalados
silencedInstancesDescription: Lista cos nomes de servidores que queres acalar. As
contas dos servidores acalados serán tratadas como "Silenciadas", só poden facer
solicitudes de seguimento e non poden mencionar contas locais se non a están a seguir.
Isto non afecta aos servidores bloqueados.
hiddenTags: Cancelos agochados
hiddenTagsDescription: 'Lista cos cancelos (sen o #) que queres ocultar das seccións
descubrir e en voga. Os cancelos agochados seguirán sendo accesibles por outros
medios.'
muteAndBlock: Bloquear e Silenciar
mutedUsers: Usuarias acaladas
blockedUsers: Usuarias bloqueadas
noUsers: Sen usuarias
noInstances: Sen servidores
editProfile: Editar perfil
noteDeleteConfirm: Tes a certeza de querer eliminar esta publicación?
pinLimitExceeded: Xa non podes fixar máis publicacións
intro: Rematou a instalación de Fishfox! Por favor crea a usuaria administradora.
done: Feito
processing: Procesando
preview: Vista previa
default: Por defecto
defaultValueIs: 'Por defecto: {value}'
noCustomEmojis: Non hai emojis
noJobs: Non hai tarefas
blocked: Bloqueado
federating: Federación
silenced: Acalado
suspended: Suspendido
all: Todo
subscribing: Subscrición
publishing: Publicar
notResponding: Non responde
instanceFollowing: Seguindo no servidor
instanceFollowers: Seguidoras desde o servidor
instanceUsers: Usuarias neste servidor
security: Seguridade
retypedNotMatch: Os valores escritos non concordan.
changePassword: Cambiar contrasinal
currentPassword: Contrasinal actual
newPassword: Novo contrasinal
newPasswordRetype: Volve escribir o contrasinal
attachFile: Adxunta ficheiros
more: Máis!
featured: Destacado
usernameOrUserId: Identificador ou id de usuaria
noSuchUser: Non se atopa a usuaria
remove: Eliminar
removed: Eliminada correctamente
removeAreYouSure: Tes a certeza de querer eliminar "{x}"?
announcements: Anuncios
imageUrl: URL da imaxe
enterUsername: Escribir identificador
renotedBy: Promovido por {user}
noNotes: Sen publicacións
noNotifications: Sen notificacións
instance: Servidor
settings: Axustes
basicSettings: Axustes básicos
otherSettings: Outros axustes
openInWindow: Abrir na ventá
profile: Perfil
addToList: Engadir á lista
lists: Listas
listsDesc: As listas permítenche crear cronoloxías coas usuarias escollidas. Podes
acceder a elas desde a páxina de cronoloxías.
noLists: Non tes ningunha lista
note: Publicación
notes: Publicacións
following: Seguindo
followers: Seguidoras
followsYou: Séguete
createList: Crear lista
manageLists: Xestionar listas
error: Erro
somethingHappened: Houbo un fallo
retry: Volver a intentar
pageLoadError: Algo fallou ao cargar a páxina.
pageLoadErrorDescription: Normalmente isto débese a problemas na rede ou na caché
do navegador. Intenta limpar a caché e volve a intentalo dentro dun anaco.
serverIsDead: Este servidor non responde. Agarda un anaco e volve intentalo.
enterListName: Dalle un nome á lista
unfollow: Deixar de seguir
enterEmoji: Escribe un emoji
flagAsBot: Marcar a conta como bot
followConfirm: Tes a certeza de querer seguir a {name}?
proxyAccount: Conta proxy
proxyAccountDescription: Unha conta proxy é unha conta que en determinadas situacións
actúa como unha seguidora remota para as usuarias. Por exemplo, cando unha usuaria
engade unha usuaria remota a unha lista, a actividade da usuaria remota non se entrega
ao servidor se a usuaria local non segue a esa outra usuaria, así a conta proxy
fará o seguimento no seu lugar.
host: Hóspede
selectUser: Escolle unha usuaria
selectInstance: Escolle un servidor
recipient: Correpondente(s)
annotation: Comentarios
federation: Federación
instances: Servidores
registeredAt: Data do rexistro
latestRequestSentAt: Última solicitude enviada
latestRequestReceivedAt: Última solicitude recibida
latestStatus: Último estado
storageUsage: Uso da almacenaxe
charts: Gráficas
perHour: Por hora
followRequest: Solicitar seguimento

File diff suppressed because it is too large Load diff

View file

@ -71,15 +71,15 @@ module.exports = Object.entries(locales).reduce(
(a[k] = (() => { (a[k] = (() => {
const [lang] = k.split("-"); const [lang] = k.split("-");
switch (k) { switch (k) {
case "ja-JP":
return v;
case "ja-KS":
case "en-US": case "en-US":
return merge(locales["ja-JP"], v); return v;
case "ja-JP":
case "ja-KS":
return merge(locales["en-US"], v);
default: default:
return merge( return merge(
locales["ja-JP"],
locales["en-US"], locales["en-US"],
locales["ja-JP"],
locales[`${lang}-${primaries[lang]}`] || {}, locales[`${lang}-${primaries[lang]}`] || {},
v, v,
); );

View file

@ -1,6 +1,6 @@
_lang_: "Italiano" _lang_: "Italiano"
headlineMisskey: "Rete collegata tramite note" headlineFirefish: "Rete collegata tramite note"
introMisskey: "Benvenut@! Firefish è un servizio di microblogging decentralizzato, introFirefish: "Benvenut@! Firefish è un servizio di microblogging decentralizzato,
libero e aperto. \nScrivi \"note\" per condividere ciò che sta succedendo adesso libero e aperto. \nScrivi \"note\" per condividere ciò che sta succedendo adesso
o per dire a tutti qualcosa di te. 📡\nGrazie alla funzione \"reazioni\" puoi anche o per dire a tutti qualcosa di te. 📡\nGrazie alla funzione \"reazioni\" puoi anche
mandare reazioni rapide alle note delle altre persone del Fediverso. 👍\nEsplora mandare reazioni rapide alle note delle altre persone del Fediverso. 👍\nEsplora

View file

@ -1,6 +1,6 @@
_lang_: "日本語" _lang_: "日本語"
headlineMisskey: "ずっと無料でオープンソースの非中央集権型ソーシャルメディアプラットフォーム🚀" headlineFirefish: "ずっと無料でオープンソースの非中央集権型ソーシャルメディアプラットフォーム🚀"
introMisskey: "ようこそFirefishは、オープンソースの非中央集権型ソーシャルメディアプラットフォームです。\nいま起こっていることを共有したり、あなたについて皆に発信しましょう📡\n\ introFirefish: "ようこそFirefishは、オープンソースの非中央集権型ソーシャルメディアプラットフォームです。\nいま起こっていることを共有したり、あなたについて皆に発信しましょう📡\n\
「リアクション」機能で、皆の投稿に素早く反応を追加できます👍\n新しい世界を探検しよう🚀" 「リアクション」機能で、皆の投稿に素早く反応を追加できます👍\n新しい世界を探検しよう🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "検索" search: "検索"
@ -156,7 +156,7 @@ flagShowTimelineRepliesDescription: "オンにすると、タイムラインに
autoAcceptFollowed: "フォローしているユーザーからのフォロー申請を自動承認" autoAcceptFollowed: "フォローしているユーザーからのフォロー申請を自動承認"
addAccount: "アカウントを追加" addAccount: "アカウントを追加"
loginFailed: "ログインに失敗しました" loginFailed: "ログインに失敗しました"
showOnRemote: "リモートで表示" showOnRemote: "オリジナルのページを開く"
general: "全般" general: "全般"
accountMoved: "このユーザーは新しいアカウントに移行しました" accountMoved: "このユーザーは新しいアカウントに移行しました"
wallpaper: "壁紙" wallpaper: "壁紙"
@ -517,6 +517,8 @@ objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフに
objectStorageUseProxy: "Proxyを利用する" objectStorageUseProxy: "Proxyを利用する"
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください" objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
objectStorageSetPublicRead: "アップロード時に'public-read'を設定する" objectStorageSetPublicRead: "アップロード時に'public-read'を設定する"
objectStorageS3ForcePathStyle: "DNS名ではなくてパスを使用する"
objectStorageS3ForcePathStyleDesc: "EndpointのURLを作る際には、'<bucket>.s3.amazonaws.com'の代わりに's3.amazonaws.com/<bucket>/'のようなスタイルを使用します。"
serverLogs: "サーバーログ" serverLogs: "サーバーログ"
deleteAll: "全て削除" deleteAll: "全て削除"
showFixedPostForm: "タイムライン上部に投稿フォームを表示する" showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
@ -854,7 +856,7 @@ unmuteThread: "スレッドのミュートを解除"
ffVisibility: "つながりの公開範囲" ffVisibility: "つながりの公開範囲"
ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。" ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。"
continueThread: "さらにスレッドを見る" continueThread: "さらにスレッドを見る"
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" deleteAccountConfirm: "このアカウントが削除されます。よろしいですか?"
incorrectPassword: "パスワードが間違っています。" incorrectPassword: "パスワードが間違っています。"
voteConfirm: "「{choice}」に投票しますか?" voteConfirm: "「{choice}」に投票しますか?"
hide: "隠す" hide: "隠す"
@ -1083,6 +1085,7 @@ _aboutFirefish:
pleaseDonateToHost: また、このサーバー {host} の運営者への寄付もご検討ください。 pleaseDonateToHost: また、このサーバー {host} の運営者への寄付もご検討ください。
donateHost: '{host} に寄付する' donateHost: '{host} に寄付する'
donateTitle: Firefishを気に入りましたか donateTitle: Firefishを気に入りましたか
sponsors: Firefish の支援者
_nsfw: _nsfw:
respect: "閲覧注意のメディアは隠す" respect: "閲覧注意のメディアは隠す"
ignore: "閲覧注意のメディアを隠さない" ignore: "閲覧注意のメディアを隠さない"
@ -1969,8 +1972,10 @@ donationLink: 寄付ページへのリンク
removeMember: メンバーを削除 removeMember: メンバーを削除
removeQuote: 引用を削除 removeQuote: 引用を削除
removeRecipient: 宛先を削除 removeRecipient: 宛先を削除
verifiedLink: 認証済みリンク
_feeds: _feeds:
copyFeed: "フィードURLをコピー" atom: Atom
rss: "RSS" rss: RSS
atom: "Atom" jsonFeed: JSONフィード
jsonFeed: "JSONフィード" copyFeed: フィードのURLをコピー
origin: オリジン

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "日本語 (関西弁)" _lang_: "日本語 (関西弁)"
headlineMisskey: "ノートでつながるネットワーク" headlineFirefish: "ノートでつながるネットワーク"
introMisskey: "ようお越しMisskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ート」を作って、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素早く反応を追加したりもできるで✌\nほな新しい世界を探検しよか🚀" introFirefish: "ようお越しMisskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ート」を作って、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素早く反応を追加したりもできるで✌\nほな新しい世界を探検しよか🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "探す" search: "探す"
notifications: "通知" notifications: "通知"

View file

@ -1,6 +1,6 @@
--- ---
_lang_: "ಕನ್ನಡ" _lang_: "ಕನ್ನಡ"
introMisskey: "ಸ್ವಾಗತ! Firefish ಓಪನ್ ಸೋರ್ಸ್ ಒಕ್ಕೂಟ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಸೇವೆಯಾಗಿದೆ.\n ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಥವಾ ನಿಮ್ಮ ಬಗ್ಗೆ ಎಲ್ಲರಿಗೂ ಹೇಳಲು \"ಟಿಪ್ಪಣಿ\"ಗಳನ್ನು ರಚಿಸಿ📡\n \"ಸ್ಪಂದನೆ\" ಕ್ರಿಯೆಯೊಂದಿಗೆ, ನೀವು ಎಲ್ಲರ ಟಿಪ್ಪಣಿಗಳಿಗೆ ತ್ವರಿತವಾಗಿ ಸ್ಪಂದನೆಗಳನ್ನು ಕೂಡ ಸೇರಿಸಬಹುದು.👍\n ಹೊಸ ಜಗತ್ತನ್ನು ಅನ್ವೇಷಿಸಿ🚀" introFirefish: "ಸ್ವಾಗತ! Firefish ಓಪನ್ ಸೋರ್ಸ್ ಒಕ್ಕೂಟ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಸೇವೆಯಾಗಿದೆ.\n ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಥವಾ ನಿಮ್ಮ ಬಗ್ಗೆ ಎಲ್ಲರಿಗೂ ಹೇಳಲು \"ಟಿಪ್ಪಣಿ\"ಗಳನ್ನು ರಚಿಸಿ📡\n \"ಸ್ಪಂದನೆ\" ಕ್ರಿಯೆಯೊಂದಿಗೆ, ನೀವು ಎಲ್ಲರ ಟಿಪ್ಪಣಿಗಳಿಗೆ ತ್ವರಿತವಾಗಿ ಸ್ಪಂದನೆಗಳನ್ನು ಕೂಡ ಸೇರಿಸಬಹುದು.👍\n ಹೊಸ ಜಗತ್ತನ್ನು ಅನ್ವೇಷಿಸಿ🚀"
monthAndDay: "{month}ನೇ ತಿಂಗಳ {day}ನೇ ದಿನ" monthAndDay: "{month}ನೇ ತಿಂಗಳ {day}ನೇ ದಿನ"
search: "ಹುಡುಕು" search: "ಹುಡುಕು"
notifications: "ಅಧಿಸೂಚನೆಗಳು" notifications: "ಅಧಿಸೂಚನೆಗಳು"

View file

@ -1,7 +1,8 @@
---
_lang_: "한국어" _lang_: "한국어"
headlineMisskey: "노트로 연결되는 네트워크" headlineFirefish: "노트로 연결되는 네트워크"
introMisskey: "환영합니다! Firefish 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고 있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n새로운 세계를 탐험해 보세요🚀" introFirefish: "환영합니다! Firefish 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고
있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n
새로운 세계를 탐험해 보세요🚀"
monthAndDay: "{month}월 {day}일" monthAndDay: "{month}월 {day}일"
search: "검색" search: "검색"
notifications: "알림" notifications: "알림"
@ -16,7 +17,7 @@ enterUsername: "유저명 입력"
renotedBy: "{user}님이 Renote" renotedBy: "{user}님이 Renote"
noNotes: "노트가 없습니다" noNotes: "노트가 없습니다"
noNotifications: "표시할 알림이 없습니다" noNotifications: "표시할 알림이 없습니다"
instance: "인스턴스" instance: "서버"
settings: "설정" settings: "설정"
basicSettings: "기본 설정" basicSettings: "기본 설정"
otherSettings: "기타 설정" otherSettings: "기타 설정"
@ -64,7 +65,7 @@ import: "가져오기"
export: "내보내기" export: "내보내기"
files: "파일" files: "파일"
download: "다운로드" download: "다운로드"
driveFileDeleteConfirm: "파일 \"{name}\" 을 삭제하시겠습니까? 이 파일이 첨부된 노트도 함께 삭제됩니다." driveFileDeleteConfirm: "파일 \"{name}\" 을 삭제하시겠습니까? 이 파일이 첨부되었더 노트에서도 같이 삭제됩니다."
unfollowConfirm: "{name}님을 언팔로우하시겠습니까?" unfollowConfirm: "{name}님을 언팔로우하시겠습니까?"
exportRequested: "내보내기를 요청하였습니다. 이 작업은 시간이 걸릴 수 있습니다. 내보내기가 완료되면 \"드라이브\"에 추가됩니다." exportRequested: "내보내기를 요청하였습니다. 이 작업은 시간이 걸릴 수 있습니다. 내보내기가 완료되면 \"드라이브\"에 추가됩니다."
importRequested: "가져오기를 요청하였습니다. 이 작업에는 시간이 걸릴 수 있습니다." importRequested: "가져오기를 요청하였습니다. 이 작업에는 시간이 걸릴 수 있습니다."
@ -81,7 +82,8 @@ error: "오류"
somethingHappened: "오류가 발생했습니다" somethingHappened: "오류가 발생했습니다"
retry: "다시 시도" retry: "다시 시도"
pageLoadError: "페이지를 불러오지 못했습니다." pageLoadError: "페이지를 불러오지 못했습니다."
pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요." pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후
다시 시도해 주세요."
serverIsDead: "서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요." serverIsDead: "서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요."
youShouldUpgradeClient: "이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오." youShouldUpgradeClient: "이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오."
enterListName: "리스트 이름을 입력" enterListName: "리스트 이름을 입력"
@ -137,9 +139,11 @@ emojiUrl: "이모지 URL"
addEmoji: "이모지 추가" addEmoji: "이모지 추가"
settingGuide: "추천 설정" settingGuide: "추천 설정"
cacheRemoteFiles: "리모트 파일을 캐시" cacheRemoteFiles: "리모트 파일을 캐시"
cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다." cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라
서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
flagAsBot: "나는 봇입니다" flagAsBot: "나는 봇입니다"
flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다." flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여
봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
flagAsCat: "나는 고양이다냥" flagAsCat: "나는 고양이다냥"
flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요." flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요."
flagShowTimelineReplies: "타임라인에 노트의 답글을 표시하기" flagShowTimelineReplies: "타임라인에 노트의 답글을 표시하기"
@ -147,7 +151,7 @@ flagShowTimelineRepliesDescription: "이 설정을 활성화하면 타임라인
autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락" autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
addAccount: "계정 추가" addAccount: "계정 추가"
loginFailed: "로그인에 실패했습니다" loginFailed: "로그인에 실패했습니다"
showOnRemote: "리모트에서 보기" showOnRemote: "원본 페이지 열기"
general: "일반" general: "일반"
wallpaper: "배경" wallpaper: "배경"
setWallpaper: "배경화면 설정" setWallpaper: "배경화면 설정"
@ -156,13 +160,15 @@ searchWith: "검색: {q}"
youHaveNoLists: "리스트가 없습니다" youHaveNoLists: "리스트가 없습니다"
followConfirm: "{name}님을 팔로우 하시겠습니까?" followConfirm: "{name}님을 팔로우 하시겠습니까?"
proxyAccount: "프록시 계정" proxyAccount: "프록시 계정"
proxyAccountDescription: "프록시 계정은 특정 조건 하에서 유저의 리모트 팔로우를 대행하는 계정입니다. 예를 들면, 유저가 리모트 유저를 리스트에 넣었을 때, 리스트에 들어간 유저를 아무도 팔로우한 적이 없다면 액티비티가 인스턴스로 배달되지 않기 때문에, 대신 프록시 계정이 해당 유저를 팔로우하도록 합니다." proxyAccountDescription: "프록시 계정은 특정 조건 하에서 유저의 리모트 팔로우를 대행하는 계정입니다. 예를 들면, 유저가 리모트
유저를 리스트에 넣었을 때, 리스트에 들어간 유저를 아무도 팔로우한 적이 없다면 액티비티가 서버로 배달되지 않기 때문에, 대신 프록시 계정이 해당
유저를 팔로우하도록 합니다."
host: "호스트" host: "호스트"
selectUser: "유저 선택" selectUser: "유저 선택"
recipient: "수신인" recipient: "수신인"
annotation: "내용에 대한 주석" annotation: "내용에 대한 주석"
federation: "연합" federation: "연합"
instances: "인스턴스" instances: "서버"
registeredAt: "등록 날짜" registeredAt: "등록 날짜"
latestRequestSentAt: "마지막으로 요청을 보낸 시간" latestRequestSentAt: "마지막으로 요청을 보낸 시간"
latestRequestReceivedAt: "마지막으로 요청을 받은 시간" latestRequestReceivedAt: "마지막으로 요청을 받은 시간"
@ -172,7 +178,7 @@ charts: "차트"
perHour: "1시간마다" perHour: "1시간마다"
perDay: "1일마다" perDay: "1일마다"
stopActivityDelivery: "액티비티 보내지 않기" stopActivityDelivery: "액티비티 보내지 않기"
blockThisInstance: "이 인스턴스를 차단" blockThisInstance: "이 서버를 차단"
operations: "작업" operations: "작업"
software: "소프트웨어" software: "소프트웨어"
version: "버전" version: "버전"
@ -182,21 +188,22 @@ jobQueue: "작업 대기열"
cpuAndMemory: "CPU와 메모리" cpuAndMemory: "CPU와 메모리"
network: "네트워크" network: "네트워크"
disk: "디스크" disk: "디스크"
instanceInfo: "인스턴스 정보" instanceInfo: "서버 정보"
statistics: "통계" statistics: "통계"
clearQueue: "대기열 비우기" clearQueue: "대기열 비우기"
clearQueueConfirmTitle: "대기열을 비우시겠습니까?" clearQueueConfirmTitle: "대기열을 비우시겠습니까?"
clearQueueConfirmText: "대기열에 남아 있는 노트는 더이상 연합되지 않습니다. 보통의 경우 이 작업은 필요하지 않습니다." clearQueueConfirmText: "대기열에 남아 있는 게시물이 연합되지 않습니다. 보통의 경우 이 작업은 필요하지 않습니다."
clearCachedFiles: "캐시 비우기" clearCachedFiles: "캐시 비우기"
clearCachedFilesConfirm: "캐시된 리모트 파일을 모두 삭제하시겠습니까?" clearCachedFilesConfirm: "캐시된 리모트 파일을 모두 삭제하시겠습니까?"
blockedInstances: "차단된 인스턴스" blockedInstances: "차단한 서버"
blockedInstancesDescription: "차단하려는 인스턴스의 호스트 이름을 줄바꿈으로 구분하여 설정합니다. 차단된 인스턴스는 이 인스턴스와 통신할 수 없게 됩니다." blockedInstancesDescription: "차단하려는 서버의 호스트 이름을 줄바꿈으로 구분하여 설정합니다. 차단된 서버는 이 서버와 통신할
수 없게 됩니다."
muteAndBlock: "뮤트 및 차단" muteAndBlock: "뮤트 및 차단"
mutedUsers: "뮤트한 유저" mutedUsers: "뮤트한 유저"
blockedUsers: "차단한 유저" blockedUsers: "차단한 유저"
noUsers: "아무도 없습니다" noUsers: "아무도 없습니다"
editProfile: "프로필 수정" editProfile: "프로필 수정"
noteDeleteConfirm: "이 노트를 삭제하시겠습니까?" noteDeleteConfirm: "이 게시물을 삭제하시겠습니까?"
pinLimitExceeded: "더 이상 고정할 수 없습니다." pinLimitExceeded: "더 이상 고정할 수 없습니다."
intro: "Misskey의 설치가 완료되었습니다! 관리자 계정을 생성해주세요." intro: "Misskey의 설치가 완료되었습니다! 관리자 계정을 생성해주세요."
done: "완료" done: "완료"
@ -213,9 +220,9 @@ all: "전체"
subscribing: "구독 중" subscribing: "구독 중"
publishing: "배포 중" publishing: "배포 중"
notResponding: "응답 없음" notResponding: "응답 없음"
instanceFollowing: "인스턴스의 팔로잉" instanceFollowing: "서버 팔로잉"
instanceFollowers: "인스턴스의 팔로워" instanceFollowers: "서버 팔로워"
instanceUsers: "인스턴스의 유저" instanceUsers: "서버 유저"
changePassword: "비밀번호 변경" changePassword: "비밀번호 변경"
security: "보안" security: "보안"
retypedNotMatch: "입력이 일치하지 않습니다." retypedNotMatch: "입력이 일치하지 않습니다."
@ -239,7 +246,8 @@ saved: "저장하였습니다"
messaging: "대화" messaging: "대화"
upload: "업로드" upload: "업로드"
keepOriginalUploading: "원본 이미지를 유지" keepOriginalUploading: "원본 이미지를 유지"
keepOriginalUploadingDescription: "이미지를 업로드할 때에 원본을 그대로 유지합니다. 비활성화하면 업로드할 때 브라우저에서 웹 공개용 이미지를 생성합니다." keepOriginalUploadingDescription: "이미지를 업로드할 때에 원본을 그대로 유지합니다. 비활성화하면 업로드할 때 브라우저에서
웹 공개용 이미지를 생성합니다."
fromDrive: "드라이브에서" fromDrive: "드라이브에서"
fromUrl: "URL로부터" fromUrl: "URL로부터"
uploadFromUrl: "URL 업로드" uploadFromUrl: "URL 업로드"
@ -305,8 +313,8 @@ unwatch: "지켜보기 해제"
accept: "허가" accept: "허가"
reject: "거부" reject: "거부"
normal: "정상" normal: "정상"
instanceName: "인스턴스 이름" instanceName: "서버 이름"
instanceDescription: "인스턴스 소개" instanceDescription: "서버 소개"
maintainerName: "관리자 이름" maintainerName: "관리자 이름"
maintainerEmail: "관리자 이메일" maintainerEmail: "관리자 이메일"
tosUrl: "이용약관 URL" tosUrl: "이용약관 URL"
@ -336,9 +344,9 @@ basicInfo: "기본 정보"
pinnedUsers: "고정된 유저" pinnedUsers: "고정된 유저"
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다." pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
pinnedPages: "고정한 페이지" pinnedPages: "고정한 페이지"
pinnedPagesDescription: "인스턴스의 대문에 고정하고 싶은 페이지의 경로를 한 줄에 하나씩 적습니다." pinnedPagesDescription: "서버 대문에 고정할 페이지의 경로를 한 줄에 하나씩 적습니다."
pinnedClipId: "고정할 클립의 ID" pinnedClipId: "고정할 클립의 ID"
pinnedNotes: "고정해놓은 노트" pinnedNotes: "고정한 글"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptcha 활성화" enableHcaptcha: "hCaptcha 활성화"
hcaptchaSiteKey: "사이트 키" hcaptchaSiteKey: "사이트 키"
@ -347,7 +355,8 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHA 활성화" enableRecaptcha: "reCAPTCHA 활성화"
recaptchaSiteKey: "사이트 키" recaptchaSiteKey: "사이트 키"
recaptchaSecretKey: "시크릿 키" recaptchaSecretKey: "시크릿 키"
avoidMultiCaptchaConfirm: "여러 Captcha를 사용하는 경우 간섭이 발생할 가능성이 있습니다. 다른 Captcha를 비활성화하시겠습니까? 취소를 눌러 여러 Captcha를 활성화한 상태로 두는 것도 가능합니다." avoidMultiCaptchaConfirm: "여러 Captcha를 사용하는 경우 간섭이 발생할 가능성이 있습니다. 다른 Captcha를 비활성화하시겠습니까?
취소를 눌러 여러 Captcha를 활성화한 상태로 두는 것도 가능합니다."
antennas: "안테나" antennas: "안테나"
manageAntennas: "안테나 관리" manageAntennas: "안테나 관리"
name: "이름" name: "이름"
@ -355,8 +364,8 @@ antennaSource: "받을 소스"
antennaKeywords: "받을 키워드" antennaKeywords: "받을 키워드"
antennaExcludeKeywords: "제외할 키워드" antennaExcludeKeywords: "제외할 키워드"
antennaKeywordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다" antennaKeywordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다"
notifyAntenna: "새로운 노트를 알림" notifyAntenna: "새로운 글을 알림"
withFileAntenna: "파일이 첨부된 노트만" withFileAntenna: "파일이 첨부된 게시물만"
enableServiceworker: "ServiceWorker 사용" enableServiceworker: "ServiceWorker 사용"
antennaUsersDescription: "유저명을 한 줄에 한 명씩 적습니다" antennaUsersDescription: "유저명을 한 줄에 한 명씩 적습니다"
caseSensitive: "대소문자를 구분" caseSensitive: "대소문자를 구분"
@ -420,7 +429,7 @@ text: "텍스트"
enable: "사용" enable: "사용"
next: "다음" next: "다음"
retype: "다시 입력" retype: "다시 입력"
noteOf: "{user}의 노트" noteOf: "{user}의 게시물"
inviteToGroup: "그룹에 초대하기" inviteToGroup: "그룹에 초대하기"
quoteAttached: "인용함" quoteAttached: "인용함"
quoteQuestion: "인용해서 작성하시겠습니까?" quoteQuestion: "인용해서 작성하시겠습니까?"
@ -478,20 +487,25 @@ accountSettings: "계정 설정"
promotion: "프로모션" promotion: "프로모션"
promote: "프로모션하기" promote: "프로모션하기"
numberOfDays: "며칠동안" numberOfDays: "며칠동안"
hideThisNote: "이 노트를 숨기기" hideThisNote: "이 글을 숨기기"
showFeaturedNotesInTimeline: "타임라인에 추천 노트를 표시" showFeaturedNotesInTimeline: "타임라인에 추천 게시물을 표시"
objectStorage: "오브젝트 스토리지" objectStorage: "오브젝트 스토리지"
useObjectStorage: "오브젝트 스토리지를 사용" useObjectStorage: "오브젝트 스토리지를 사용"
objectStorageBaseUrl: "Base URL" objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "오브젝트 (미디어) 참조 URL 을 만들 때 사용되는 URL입니다. CDN 또는 프록시를 사용하는 경우 그 URL을 지정하고, 그 외의 경우 사용할 서비스의 가이드에 따라 공개적으로 액세스 할 수 있는 주소를 지정해 주세요. 예를 들어, AWS S3의 경우 'https://<bucket>.s3.amazonaws.com', GCS등의 경우 'https://storage.googleapis.com/<bucket>' 와 같이 지정합니다." objectStorageBaseUrlDesc: "오브젝트 (미디어) 참조 URL 을 만들 때 사용되는 URL입니다. CDN 또는 프록시를 사용하는
경우 그 URL을 지정하고, 그 외의 경우 사용할 서비스의 가이드에 따라 공개적으로 액세스 할 수 있는 주소를 지정해 주세요. 예를 들어, AWS
S3의 경우 'https://<bucket>.s3.amazonaws.com', GCS등의 경우 'https://storage.googleapis.com/<bucket>'
와 같이 지정합니다."
objectStorageBucket: "Bucket" objectStorageBucket: "Bucket"
objectStorageBucketDesc: "사용 서비스의 bucket명을 지정해주세요." objectStorageBucketDesc: "사용 서비스의 bucket명을 지정해주세요."
objectStoragePrefix: "Prefix" objectStoragePrefix: "Prefix"
objectStoragePrefixDesc: "이 Prefix 의 디렉토리 아래에 파일이 저장됩니다." objectStoragePrefixDesc: "이 Prefix 의 디렉토리 아래에 파일이 저장됩니다."
objectStorageEndpoint: "Endpoint" objectStorageEndpoint: "Endpoint"
objectStorageEndpointDesc: "AWS S3의 경우 공란, 다른 서비스의 경우 각 서비스의 가이드에 맞게 endpoint를 설정해주세요. '<host>' 혹은 '<host>:<port>' 와 같이 지정합니다." objectStorageEndpointDesc: "AWS S3의 경우 공란, 다른 서비스의 경우 각 서비스의 가이드에 맞게 endpoint를 설정해주세요.
'<host>' 혹은 '<host>:<port>' 와 같이 지정합니다."
objectStorageRegion: "Region" objectStorageRegion: "Region"
objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해주세요. 사용하는 서비스에 region 개념이 없는 경우, 비워 두거나 'us-east-1'으로 설정해 주세요." objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해주세요. 사용하는 서비스에 region 개념이 없는
경우, 비워 두거나 'us-east-1'으로 설정해 주세요."
objectStorageUseSSL: "SSL 사용" objectStorageUseSSL: "SSL 사용"
objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요" objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요"
objectStorageUseProxy: "연결에 프록시를 사용" objectStorageUseProxy: "연결에 프록시를 사용"
@ -500,7 +514,7 @@ objectStorageSetPublicRead: "업로드할 때 'public-read'를 설정하기"
serverLogs: "서버 로그" serverLogs: "서버 로그"
deleteAll: "모두 삭제" deleteAll: "모두 삭제"
showFixedPostForm: "타임라인 상단에 글 작성란을 표시" showFixedPostForm: "타임라인 상단에 글 작성란을 표시"
newNoteRecived: "새 노트가 있습니다" newNoteRecived: "새 글이 있습니다"
sounds: "소리" sounds: "소리"
listen: "듣기" listen: "듣기"
none: "없음" none: "없음"
@ -523,7 +537,8 @@ sort: "정렬"
ascendingOrder: "오름차순" ascendingOrder: "오름차순"
descendingOrder: "내림차순" descendingOrder: "내림차순"
scratchpad: "스크래치 패드" scratchpad: "스크래치 패드"
scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Firefish 와 상호 작용하는 코드를 작성, 실행 및 결과를 확인할 수 있습니다." scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Firefish 와 상호 작용하는 코드를 작성,
실행 및 결과를 확인할 수 있습니다."
output: "출력" output: "출력"
script: "스크립트" script: "스크립트"
disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음" disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음"
@ -531,11 +546,13 @@ updateRemoteUser: "리모트 유저 정보 갱신"
deleteAllFiles: "모든 파일 삭제" deleteAllFiles: "모든 파일 삭제"
deleteAllFilesConfirm: "모든 파일을 삭제하시겠습니까?" deleteAllFilesConfirm: "모든 파일을 삭제하시겠습니까?"
removeAllFollowing: "모든 팔로잉 해제" removeAllFollowing: "모든 팔로잉 해제"
removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요." removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 서버가 더 이상 존재하지 않게 된
경우 등에 실행해 주세요."
userSuspended: "이 계정은 정지된 상태입니다." userSuspended: "이 계정은 정지된 상태입니다."
userSilenced: "이 계정은 사일런스된 상태입니다." userSilenced: "이 계정은 사일런스된 상태입니다."
yourAccountSuspendedTitle: "계정이 정지되었습니다" yourAccountSuspendedTitle: "계정이 정지되었습니다"
yourAccountSuspendedDescription: "이 계정은 서버의 이용 약관을 위반하거나, 기타 다른 이유로 인해 정지되었습니다. 자세한 사항은 관리자에게 문의해 주십시오. 계정을 새로 생성하지 마십시오." yourAccountSuspendedDescription: "이 계정은 서버의 이용 약관을 위반하거나, 기타 다른 이유로 인해 정지되었습니다. 자세한
사항은 관리자에게 문의해 주십시오. 계정을 새로 생성하지 마십시오."
menu: "메뉴" menu: "메뉴"
divider: "구분선" divider: "구분선"
addItem: "항목 추가" addItem: "항목 추가"
@ -544,8 +561,8 @@ addRelay: "릴레이 추가"
inboxUrl: "Inbox 주소" inboxUrl: "Inbox 주소"
addedRelays: "추가된 릴레이" addedRelays: "추가된 릴레이"
serviceworkerInfo: "푸시 알림을 수행하려면 활성화해야 합니다." serviceworkerInfo: "푸시 알림을 수행하려면 활성화해야 합니다."
deletedNote: "삭제된 노트" deletedNote: "삭제된 "
invisibleNote: "비공개 노트" invisibleNote: "비공개 "
enableInfiniteScroll: "자동으로 좀 더 보기" enableInfiniteScroll: "자동으로 좀 더 보기"
visibility: "공개 범위" visibility: "공개 범위"
poll: "투표" poll: "투표"
@ -596,7 +613,7 @@ testEmail: "이메일 전송 테스트"
wordMute: "단어 뮤트" wordMute: "단어 뮤트"
regexpError: "정규 표현식 오류" regexpError: "정규 표현식 오류"
regexpErrorDescription: "{tab}단어 뮤트 {line}행의 정규 표현식에 오류가 발생했습니다:" regexpErrorDescription: "{tab}단어 뮤트 {line}행의 정규 표현식에 오류가 발생했습니다:"
instanceMute: "인스턴스 뮤트" instanceMute: "서버 뮤트"
userSaysSomething: "{name}님이 무언가를 말했습니다" userSaysSomething: "{name}님이 무언가를 말했습니다"
makeActive: "활성화" makeActive: "활성화"
display: "표시" display: "표시"
@ -614,7 +631,8 @@ useGlobalSetting: "글로벌 설정을 사용하기"
useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용됩니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다." useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용됩니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다."
other: "기타" other: "기타"
regenerateLoginToken: "로그인 토큰을 재생성" regenerateLoginToken: "로그인 토큰을 재생성"
regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다." regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다.
이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다."
setMultipleBySeparatingWithSpace: "공백으로 구분하여 여러 개 설정할 수 있습니다." setMultipleBySeparatingWithSpace: "공백으로 구분하여 여러 개 설정할 수 있습니다."
fileIdOrUrl: "파일 ID 또는 URL" fileIdOrUrl: "파일 ID 또는 URL"
behavior: "동작" behavior: "동작"
@ -627,35 +645,35 @@ abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
reporter: "신고자" reporter: "신고자"
reporteeOrigin: "피신고자" reporteeOrigin: "피신고자"
reporterOrigin: "신고자" reporterOrigin: "신고자"
forwardReport: "리모트 인스턴스에도 신고 내용 보내기" forwardReport: "리모트 서버에도 신고 내용 보내기"
forwardReportIsAnonymous: "리모트 인스턴스에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다." forwardReportIsAnonymous: "리모트 서버에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다."
send: "전송" send: "전송"
abuseMarkAsResolved: "해결됨으로 표시" abuseMarkAsResolved: "해결됨으로 표시"
openInNewTab: "새 탭에서 열기" openInNewTab: "새 탭에서 열기"
openInSideView: "사이드뷰로 열기" openInSideView: "사이드뷰로 열기"
defaultNavigationBehaviour: "기본 탐색 동작" defaultNavigationBehaviour: "기본 탐색 동작"
editTheseSettingsMayBreakAccount: "이 설정을 변경하면 계정이 손상될 수 있습니다." editTheseSettingsMayBreakAccount: "이 설정을 변경하면 계정이 손상될 수 있습니다."
instanceTicker: "노트의 인스턴스 정보" instanceTicker: "게시물의 인스턴스 정보"
waitingFor: "{x}을(를) 기다리고 있습니다" waitingFor: "{x}을(를) 기다리고 있습니다"
random: "랜덤" random: "랜덤"
system: "시스템" system: "시스템"
switchUi: "UI 전환" switchUi: "레이아웃"
desktop: "데스크탑" desktop: "데스크탑"
clip: "클립" clip: "클립"
createNew: "새로 만들기" createNew: "새로 만들기"
optional: "옵션" optional: "옵션"
createNewClip: "새 클립 만들기" createNewClip: "새 클립 만들기"
unclip: "클립 해제" unclip: "클립 해제"
confirmToUnclipAlreadyClippedNote: "이 노트는 이미 \"{name}\" 클립에 포함되어 있습니다. 클립을 해제하시겠습니까?" confirmToUnclipAlreadyClippedNote: "이 글은 이미 \"{name}\" 클립에 포함되어 있습니다. 클립을 해제하시겠습니까?"
public: "공개" public: "공개"
i18nInfo: "Firefish는 자원봉사자들에 의해 다양한 언어로 번역되고 있습니다. {link}에서 번역에 참가할 수 있습니다." i18nInfo: "Firefish는 자원봉사자들에 의해 다양한 언어로 번역되고 있습니다. {link}에서 번역에 참가할 수 있습니다."
manageAccessTokens: "액세스 토큰 관리" manageAccessTokens: "액세스 토큰 관리"
accountInfo: "계정 정보" accountInfo: "계정 정보"
notesCount: "노트 수" notesCount: " 수"
repliesCount: "답글 수" repliesCount: "답글 수"
renotesCount: "Renote 수" renotesCount: "부스트 수"
repliedCount: "받은 답글 수" repliedCount: "받은 답글 수"
renotedCount: "받은 Renote 수" renotedCount: "받은 부스트 수"
followingCount: "팔로우 수" followingCount: "팔로우 수"
followersCount: "팔로워 수" followersCount: "팔로워 수"
sentReactionsCount: "보낸 리액션 수" sentReactionsCount: "보낸 리액션 수"
@ -667,15 +685,15 @@ no: "아니오"
driveFilesCount: "드라이브 파일 개수" driveFilesCount: "드라이브 파일 개수"
driveUsage: "드라이브 사용량" driveUsage: "드라이브 사용량"
noCrawle: "검색엔진의 인덱싱 거부" noCrawle: "검색엔진의 인덱싱 거부"
noCrawleDescription: "검색엔진에 사용자 페이지, 노트, 페이지 등의 콘텐츠를 인덱싱되지 않게 합니다." noCrawleDescription: "검색엔진에 사용자 페이지, 게시물, 페이지 등의 콘텐츠를 인덱싱되지 않게 합니다."
lockedAccountInfo: "팔로우를 승인으로 승인받더라도 노트의 공개 범위를 '팔로워'로 하지 않는 한 누구나 당신의 노트를 볼 수 있습니다." lockedAccountInfo: "팔로우를 승인으로 승인받더라도 게시물의 공개 범위를 '팔로워'로 하지 않는 한 누구나 당신의 글을 볼 수 있습니다."
alwaysMarkSensitive: "미디어를 항상 열람 주의로 설정" alwaysMarkSensitive: "미디어를 항상 열람 주의로 설정"
loadRawImages: "첨부한 이미지의 썸네일을 원본화질로 표시" loadRawImages: "첨부한 이미지의 썸네일을 원본화질로 표시"
disableShowingAnimatedImages: "움직이는 이미지를 자동으로 재생하지 않음" disableShowingAnimatedImages: "움직이는 이미지를 자동으로 재생하지 않음"
verificationEmailSent: "확인 메일을 발송하였습니다. 설정을 완료하려면 메일에 첨부된 링크를 확인해 주세요." verificationEmailSent: "확인 메일을 발송하였습니다. 설정을 완료하려면 메일에 첨부된 링크를 확인해 주세요."
notSet: "설정되지 않음" notSet: "설정되지 않음"
emailVerified: "메일 주소가 확인되었습니다." emailVerified: "메일 주소가 확인되었습니다."
noteFavoritesCount: "즐겨찾기한 노트 수" noteFavoritesCount: "즐겨찾기한 게시물 수"
pageLikesCount: "좋아요 한 Page 수" pageLikesCount: "좋아요 한 Page 수"
pageLikedCount: "Page에 받은 좋아요 수" pageLikedCount: "Page에 받은 좋아요 수"
contact: "연락처" contact: "연락처"
@ -697,9 +715,11 @@ showTitlebar: "타이틀 바를 표시하기"
clearCache: "캐시 비우기" clearCache: "캐시 비우기"
onlineUsersCount: "{n}명이 접속 중" onlineUsersCount: "{n}명이 접속 중"
nUsers: "{n} 유저" nUsers: "{n} 유저"
nNotes: "{n} 노트" nNotes: "{n} 게시물"
sendErrorReports: "오류 보고서 보내기" sendErrorReports: "오류 보고서 보내기"
sendErrorReportsDescription: "이 설정을 활성화하면, 문제가 발생했을 때 오류에 대한 상세 정보를 Misskey에 보내어 더 나은 소프트웨어를 만드는 데에 도움을 줄 수 있습니다." sendErrorReportsDescription: "이 설정을 활성화하면, 문제가 발생했을 때 오류에 대한 상세 정보를 Firefish에 보내어
더 나은 소프트웨어를 만드는 데에 도움을 줄 수 있습니다.\n 상세 정보에는 OS 버전, 브라우저 정보, Firefish에서의 활동 정보 등이
포함됩니다."
myTheme: "내 테마" myTheme: "내 테마"
backgroundColor: "배경 색" backgroundColor: "배경 색"
accentColor: "강조 색상" accentColor: "강조 색상"
@ -723,7 +743,7 @@ capacity: "용량"
inUse: "사용중" inUse: "사용중"
editCode: "코드 수정" editCode: "코드 수정"
apply: "적용" apply: "적용"
receiveAnnouncementFromInstance: "이 인스턴스의 알림을 이메일로 수신할게요" receiveAnnouncementFromInstance: "이 서버의 알림을 이메일로 수신"
emailNotification: "메일 알림" emailNotification: "메일 알림"
publish: "게시" publish: "게시"
inChannelSearch: "채널에서 검색" inChannelSearch: "채널에서 검색"
@ -738,7 +758,7 @@ unlikeConfirm: "좋아요를 취소할까요?"
fullView: "전체 화면" fullView: "전체 화면"
quitFullView: "전체 화면 해제" quitFullView: "전체 화면 해제"
addDescription: "설명 추가" addDescription: "설명 추가"
userPagePinTip: "각 노트의 메뉴에서 「프로필에 고정」을 선택하는 것으로, 여기에 노트를 표시해 둘 수 있어요." userPagePinTip: "각 게시물의 메뉴에서 「프로필에 고정」을 선택하는 것으로, 여기에 노트를 표시해 둘 수 있어요."
notSpecifiedMentionWarning: "수신자가 선택되지 않은 멘션이 있어요" notSpecifiedMentionWarning: "수신자가 선택되지 않은 멘션이 있어요"
info: "정보" info: "정보"
userInfo: "유저 정보" userInfo: "유저 정보"
@ -751,7 +771,7 @@ active: "최근에 활동함"
offline: "오프라인" offline: "오프라인"
notRecommended: "추천하지 않음" notRecommended: "추천하지 않음"
botProtection: "Bot 방어" botProtection: "Bot 방어"
instanceBlocking: "인스턴스 차단" instanceBlocking: "서버 차단"
selectAccount: "계정 선택" selectAccount: "계정 선택"
switchAccount: "계정 바꾸기" switchAccount: "계정 바꾸기"
enabled: "활성화" enabled: "활성화"
@ -768,7 +788,7 @@ postToGallery: "갤러리에 업로드"
gallery: "갤러리" gallery: "갤러리"
recentPosts: "최근 포스트" recentPosts: "최근 포스트"
popularPosts: "인기 포스트" popularPosts: "인기 포스트"
shareWithNote: "노트로 공유" shareWithNote: "게시물로 공유"
ads: "광고" ads: "광고"
expiration: "기한" expiration: "기한"
memo: "메모" memo: "메모"
@ -780,7 +800,8 @@ emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다."
ratio: "비율" ratio: "비율"
previewNoteText: "본문 미리보기" previewNoteText: "본문 미리보기"
customCss: "CSS 사용자화" customCss: "CSS 사용자화"
customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다." customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수
있습니다."
global: "글로벌" global: "글로벌"
squareAvatars: "프로필 아이콘을 사각형으로 표시" squareAvatars: "프로필 아이콘을 사각형으로 표시"
sent: "전송" sent: "전송"
@ -795,7 +816,8 @@ whatIsNew: "패치 정보 보기"
translate: "번역" translate: "번역"
translatedFrom: "{x}에서 번역" translatedFrom: "{x}에서 번역"
accountDeletionInProgress: "계정 삭제 작업을 진행하고 있습니다" accountDeletionInProgress: "계정 삭제 작업을 진행하고 있습니다"
usernameInfo: "서버상에서 계정을 식별하기 위한 이름. 알파벳(a~z, A~Z), 숫자(0~9) 및 언더바(_)를 사용할 수 있습니다. 사용자명은 나중에 변경할 수 없습니다." usernameInfo: "서버상에서 계정을 식별하기 위한 이름. 알파벳(a~z, A~Z), 숫자(0~9) 및 언더바(_)를 사용할 수 있습니다.
사용자명은 나중에 변경할 수 없습니다."
aiChanMode: "아이 모드" aiChanMode: "아이 모드"
keepCw: "CW 유지하기" keepCw: "CW 유지하기"
pubSub: "Pub/Sub 계정" pubSub: "Pub/Sub 계정"
@ -812,7 +834,7 @@ controlPanel: "제어판"
manageAccounts: "계정 관리" manageAccounts: "계정 관리"
makeReactionsPublic: "리액션 목록을 공개하기" makeReactionsPublic: "리액션 목록을 공개하기"
makeReactionsPublicDescription: "나의 리액션을 누구나 볼 수 있게 합니다." makeReactionsPublicDescription: "나의 리액션을 누구나 볼 수 있게 합니다."
classic: "클래식" classic: "중앙"
muteThread: "이 글타래를 뮤트" muteThread: "이 글타래를 뮤트"
unmuteThread: "글타래 뮤트 해제" unmuteThread: "글타래 뮤트 해제"
ffVisibility: "내 인맥의 공개 범위" ffVisibility: "내 인맥의 공개 범위"
@ -835,8 +857,8 @@ themeColor: "테마 컬러"
size: "크기" size: "크기"
numberOfColumn: "한 줄에 보일 리액션의 수" numberOfColumn: "한 줄에 보일 리액션의 수"
searchByGoogle: "검색" searchByGoogle: "검색"
instanceDefaultLightTheme: "인스턴스 기본 라이트 테마" instanceDefaultLightTheme: "서버 기본 라이트 테마"
instanceDefaultDarkTheme: "인스턴스 기본 다크 테마" instanceDefaultDarkTheme: "서버 기본 다크 테마"
instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요." instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요."
mutePeriod: "뮤트할 기간" mutePeriod: "뮤트할 기간"
indefinitely: "무기한" indefinitely: "무기한"
@ -859,7 +881,8 @@ check: "체크"
driveCapOverrideLabel: "이 유저의 드라이브 용량을 변경" driveCapOverrideLabel: "이 유저의 드라이브 용량을 변경"
driveCapOverrideCaption: "0 이하를 지정하면 해제됩니다." driveCapOverrideCaption: "0 이하를 지정하면 해제됩니다."
requireAdminForView: "열람하려면 관리자 계정으로 로그인해야 합니다." requireAdminForView: "열람하려면 관리자 계정으로 로그인해야 합니다."
isSystemAccount: "시스템에 의해 자동으로 생성되어 관리되는 계정입니다." isSystemAccount: "시스템에 의해 자동으로 생성되어 관리되는 계정입니다. 이 계정에 대해 모더레이션, 수정, 삭제 등을 수행하면 서버가
오작동할 수 있으므로 조작하지 마십시오."
typeToConfirm: "계속하시려면 {x} 을 입력하세요" typeToConfirm: "계속하시려면 {x} 을 입력하세요"
deleteAccount: "계정 삭제" deleteAccount: "계정 삭제"
document: "문서" document: "문서"
@ -884,8 +907,10 @@ cannotUploadBecauseInappropriate: "이 파일은 부적절한 내용을 포함
cannotUploadBecauseNoFreeSpace: "드라이브 용량이 부족하여 업로드할 수 없습니다." cannotUploadBecauseNoFreeSpace: "드라이브 용량이 부족하여 업로드할 수 없습니다."
beta: "베타" beta: "베타"
enableAutoSensitive: "자동 NSFW 탐지" enableAutoSensitive: "자동 NSFW 탐지"
enableAutoSensitiveDescription: "이용 가능할 경우 기계학습을 통해 자동으로 미디어 NSFW를 설정합니다. 이 기능을 해제하더라도, 인스턴스 정책에 따라 자동으로 설정될 수 있습니다." enableAutoSensitiveDescription: "이용 가능할 경우 기계학습을 통해 자동으로 미디어 NSFW를 설정합니다. 이 기능을 해제하더라도,
activeEmailValidationDescription: "유저가 입력한 메일 주소가 일회용 메일인지, 실제로 통신할 수 있는 지 엄격하게 검사합니다. 해제할 경우 이메일 형식에 대해서만 검사합니다." 서버 정책에 따라 자동으로 설정될 수 있습니다."
activeEmailValidationDescription: "유저가 입력한 메일 주소가 일회용 메일인지, 실제로 통신할 수 있는 지 엄격하게 검사합니다.
해제할 경우 이메일 형식에 대해서만 검사합니다."
navbar: "네비게이션 바" navbar: "네비게이션 바"
shuffle: "셔플" shuffle: "셔플"
account: "계정" account: "계정"
@ -893,7 +918,8 @@ move: "이동"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "기계학습을 통해 자동으로 민감한 미디어를 탐지하여, 모더레이션에 참고할 수 있도록 합니다. 서버의 부하를 약간 증가시킵니다." description: "기계학습을 통해 자동으로 민감한 미디어를 탐지하여, 모더레이션에 참고할 수 있도록 합니다. 서버의 부하를 약간 증가시킵니다."
sensitivity: "탐지 민감도" sensitivity: "탐지 민감도"
sensitivityDescription: "민감도가 낮을수록 안전한 미디어가 잘못 탐지될 확률이 줄어들며, 높을수록 민감한 미디어가 탐지되지 않을 확률이 줄어듭니다." sensitivityDescription: "민감도가 낮을수록 안전한 미디어가 잘못 탐지될 확률이 줄어들며, 높을수록 민감한 미디어가 탐지되지
않을 확률이 줄어듭니다."
setSensitiveFlagAutomatically: "자동으로 NSFW로 설정하기" setSensitiveFlagAutomatically: "자동으로 NSFW로 설정하기"
setSensitiveFlagAutomaticallyDescription: "이 설정을 해제해도 탐지 결과는 유지됩니다." setSensitiveFlagAutomaticallyDescription: "이 설정을 해제해도 탐지 결과는 유지됩니다."
analyzeVideos: "동영상도 같이 확인하기" analyzeVideos: "동영상도 같이 확인하기"
@ -911,7 +937,8 @@ _ffVisibility:
_signup: _signup:
almostThere: "거의 다 끝났습니다" almostThere: "거의 다 끝났습니다"
emailAddressInfo: "당신이 사용하고 있는 이메일 주소를 입력해 주세요. 이메일 주소는 다른 유저에게 공개되지 않습니다." emailAddressInfo: "당신이 사용하고 있는 이메일 주소를 입력해 주세요. 이메일 주소는 다른 유저에게 공개되지 않습니다."
emailSent: "입력하신 메일 주소({email})로 확인 메일을 보내드렸습니다. 가입을 완료하시려면 보내드린 메일에 있는 링크로 접속해 주세요." emailSent: "입력하신 메일 주소({email})로 확인 메일을 보내드렸습니다. 가입을 완료하시려면 보내드린 메일에 있는 링크로 접속해
주세요."
_accountDelete: _accountDelete:
accountDelete: "계정 삭제" accountDelete: "계정 삭제"
mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다." mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다."
@ -924,8 +951,8 @@ _ad:
reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기" reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기"
_forgotPassword: _forgotPassword:
enterEmail: "여기에 계정에 등록한 메일 주소를 입력해 주세요. 입력한 메일 주소로 비밀번호 재설정 링크를 발송합니다." enterEmail: "여기에 계정에 등록한 메일 주소를 입력해 주세요. 입력한 메일 주소로 비밀번호 재설정 링크를 발송합니다."
ifNoEmail: "메일 주소를 등록하지 않은 경우, 관리자에 문의해 주십시오." ifNoEmail: "메일 주소를 등록하지 않은 경우, 서버 관리자에 문의해 주십시오."
contactAdmin: "이 인스턴스에서는 메일 기능이 지원되지 않습니다. 비밀번호를 재설정하려면 관리자에게 문의해 주십시오." contactAdmin: "이 서버에서는 메일 기능이 지원되지 않습니다. 비밀번호를 재설정하려면 관리자에게 문의해 주십시오."
_gallery: _gallery:
my: "내 갤러리" my: "내 갤러리"
liked: "좋아요 한 갤러리" liked: "좋아요 한 갤러리"
@ -973,13 +1000,20 @@ _aboutFirefish:
donate: "Misskey에 기부하기" donate: "Misskey에 기부하기"
morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰" morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
patrons: "후원자" patrons: "후원자"
patronsList: 기부 금액이 아닌 시간 순서로 정렬합니다. 위 링크를 통해 후원하여 당신의 이름을 새겨 보세요!
sponsors: Firefish 스폰서
pleaseDonateToHost: 또한, 이 서버 {host} 의 운영자에게 기부하는 것도 검토하여 주십시오.
pleaseDonateToFirefish: Firefish의 개발에 후원하는 것을 검토하여 주십시오.
donateHost: '{host} 에게 기부하기'
donateTitle: Firefish가 마음에 드시나요?
_nsfw: _nsfw:
respect: "열람주의로 설정된 미디어 숨기기" respect: "열람주의로 설정된 미디어 숨기기"
ignore: "열람 주의 미디어 항상 표시" ignore: "열람 주의 미디어 항상 표시"
force: "미디어 항상 숨기기" force: "미디어 항상 숨기기"
_mfm: _mfm:
cheatSheet: "MFM 도움말" cheatSheet: "MFM 도움말"
intro: "MFM는 Misskey의 다양한 곳에서 사용할 수 있는 전용 마크업 언어입니다. 여기에서는 MFM에서 사용할 수 있는 구문을 확인할 수 있습니다." intro: "MFM는 Misskey의 다양한 곳에서 사용할 수 있는 전용 마크업 언어입니다. 여기에서는 MFM에서 사용할 수 있는 구문을 확인할
수 있습니다."
dummy: "Misskey로 연합우주의 세계가 펼쳐집니다" dummy: "Misskey로 연합우주의 세계가 펼쳐집니다"
mention: "멘션" mention: "멘션"
mentionDescription: "골뱅이표(@) 뒤에 사용자명을 넣어 특정 유저를 나타낼 수 있습니다." mentionDescription: "골뱅이표(@) 뒤에 사용자명을 넣어 특정 유저를 나타낼 수 있습니다."
@ -1002,7 +1036,7 @@ _mfm:
inlineMath: "수식(인라인)" inlineMath: "수식(인라인)"
inlineMathDescription: "수식(KaTeX)를 인라인으로 보이게 합니다." inlineMathDescription: "수식(KaTeX)를 인라인으로 보이게 합니다."
blockMath: "수식(블록)" blockMath: "수식(블록)"
blockMathDescription: "여러 줄의 수식(KaTeX)를 블록으로 보이게 합니다." blockMathDescription: "수식(KaTeX)을 블록으로 보이게 합니다."
quote: "인용" quote: "인용"
quoteDescription: "내용을 인용문으로 표시합니다." quoteDescription: "내용을 인용문으로 표시합니다."
emoji: "커스텀 이모지" emoji: "커스텀 이모지"
@ -1043,6 +1077,24 @@ _mfm:
rotateDescription: "지정한 각도로 회전시킵니다." rotateDescription: "지정한 각도로 회전시킵니다."
plain: "평문" plain: "평문"
plainDescription: "안에 있는 MFM 구문을 모두 무시하고 평문으로 표시합니다." plainDescription: "안에 있는 MFM 구문을 모두 무시하고 평문으로 표시합니다."
stop: MFM 멈춤
play: MFM 재생
advancedDescription: 비활성화하면 MFM 재생 중을 제외하고 기본적인 MFM만 표시합니다
fade: '페이드'
advanced: 고급 MFM
warn: 빠르게 움직이거나 반짝이는 애니메이션을 포함할 가능성이 있습니다
alwaysPlay: MFM 애니메이션을 자동 재생하기
cropDescription: 내용을 잘라냅니다.
scale: 확대/축소
positionDescription: 내용을 지정한 값 만큼 이동합니다.
position: 위치
crop: 크롭
fadeDescription: 서서히 보인 뒤 서서히 사라집니다.
scaleDescription: 크기를 지정한 값 만큼 확대/축소합니다.
foregroundDescription: 문자 색상을 변경합니다.
backgroundDescription: 배경 색상을 변경합니다.
foreground: 문자색
background: 배경색
_instanceTicker: _instanceTicker:
none: "보이지 않음" none: "보이지 않음"
remote: "리모트 유저에게만 보이기" remote: "리모트 유저에게만 보이기"
@ -1051,6 +1103,7 @@ _serverDisconnectedBehavior:
reload: "자동으로 새로고침" reload: "자동으로 새로고침"
dialog: "경고창 표시" dialog: "경고창 표시"
quiet: "조용히 경고" quiet: "조용히 경고"
nothing: 아무것도 하지 않음
_channel: _channel:
create: "채널 생성" create: "채널 생성"
edit: "채널 편집" edit: "채널 편집"
@ -1060,7 +1113,9 @@ _channel:
owned: "관리중" owned: "관리중"
following: "팔로잉" following: "팔로잉"
usersCount: "{n}명 참여 중" usersCount: "{n}명 참여 중"
notesCount: "{n}노트" notesCount: "{n} 게시물"
nameAndDescription: 이름과 설명
nameOnly: 이름만
_menuDisplay: _menuDisplay:
sideFull: "가로" sideFull: "가로"
sideIcon: "가로(아이콘)" sideIcon: "가로(아이콘)"
@ -1070,16 +1125,17 @@ _wordMute:
muteWords: "뮤트할 단어" muteWords: "뮤트할 단어"
muteWordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다。" muteWordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다。"
muteWordsDescription2: "정규 표현식을 사용하려면 키워드를 빗금표(/)로 감싸 주세요." muteWordsDescription2: "정규 표현식을 사용하려면 키워드를 빗금표(/)로 감싸 주세요."
softDescription: "지정한 조건의 노트를 타임라인에서 숨깁니다." softDescription: "지정한 조건의 게시물을 타임라인에서 숨깁니다."
hardDescription: "지정한 조건의 노트를 타임라인에 추가하지 않습니다. 타임라인에 추가되지 않은 노트는 조건을 변경해도 표시되지 않습니다." hardDescription: "지정한 조건의 게시물을 타임라인에 추가하지 않습니다. 타임라인에 추가되지 않은 게시물은 조건을 변경해도 표시되지
않습니다."
soft: "보통" soft: "보통"
hard: "보다 높은 수준" hard: "보다 높은 수준"
mutedNotes: "뮤트된 노트" mutedNotes: "뮤트된 게시물"
_instanceMute: _instanceMute:
instanceMuteDescription: "뮤트한 인스턴스에서 오는 답글을 포함한 모든 노트와 Renote를 뮤트합니다." instanceMuteDescription: "뮤트한 서버에서 오는 답글을 포함한 모든 게시물과 부스트를 뮤트합니다."
instanceMuteDescription2: "한 줄에 하나씩 입력해 주세요" instanceMuteDescription2: "한 줄에 하나씩 입력해 주세요"
title: "지정한 인스턴스의 노트를 숨깁니다." title: "지정한 서버의 노트를 숨깁니다."
heading: "뮤트할 인스턴스" heading: "뮤트할 서버"
_theme: _theme:
explore: "테마 찾아보기" explore: "테마 찾아보기"
install: "테마 설치" install: "테마 설치"
@ -1128,7 +1184,7 @@ _theme:
hashtag: "해시태그" hashtag: "해시태그"
mention: "멘션" mention: "멘션"
mentionMe: "나에게 보낸 멘션" mentionMe: "나에게 보낸 멘션"
renote: "Renote" renote: "부스트"
modalBg: "모달 배경" modalBg: "모달 배경"
divider: "구분선" divider: "구분선"
scrollbarHandle: "스크롤바 핸들" scrollbarHandle: "스크롤바 핸들"
@ -1155,8 +1211,8 @@ _theme:
accentLighten: "강조 색상 (밝음)" accentLighten: "강조 색상 (밝음)"
fgHighlighted: "강조된 텍스트" fgHighlighted: "강조된 텍스트"
_sfx: _sfx:
note: "새 노트" note: "새 게시물"
noteMy: "내 노트" noteMy: "나의 게시"
notification: "알림" notification: "알림"
chat: "대화" chat: "대화"
chatBg: "대화 (백그라운드)" chatBg: "대화 (백그라운드)"
@ -1186,7 +1242,23 @@ _2fa:
step2Url: "데스크톱 앱에서는 다음 URL을 입력하세요:" step2Url: "데스크톱 앱에서는 다음 URL을 입력하세요:"
step3: "앱에 표시된 토큰을 입력하시면 완료됩니다." step3: "앱에 표시된 토큰을 입력하시면 완료됩니다."
step4: "다음 로그인부터는 토큰을 입력해야 합니다." step4: "다음 로그인부터는 토큰을 입력해야 합니다."
securityKeyInfo: "FIDO2를 지원하는 하드웨어 보안 키 혹은 디바이스의 지문인식이나 화면잠금 PIN을 이용해서 로그인하도록 설정할 수 있습니다." securityKeyInfo: "FIDO2를 지원하는 하드웨어 보안 키 혹은 디바이스의 지문인식이나 화면잠금 PIN을 이용해서 로그인하도록 설정할
수 있습니다."
step2Click: QR 코드를 클릭하여 사용 중인 보안 키 또는 인증 앱을 등록할 수 있습니다.
step3Title: 확인 코드를 입력
registerTOTPBeforeKey: 보안 키/패스 키를 등록하시려면 우선 인증 앱 설정을 마치십시오.
securityKeyNotSupported: 이 브라우저는 보안 키를 지원하지 않습니다.
chromePasskeyNotSupported: 현재 Chrome의 패스키는 지원하지 않습니다.
token: 2차 인증 토큰
removeKey: 보안 키를 삭제
removeKeyConfirm: '{name}을 삭제하시겠습니까?'
renewTOTPCancel: 취소
renewTOTPConfirm: 지금 사용 중인 인증 앱의 확인 코드는 사용할 수 없게 됩니다
securityKeyName: 키 이름 입력
renewTOTPOk: 재설정
whyTOTPOnlyRenew: 보안 키가 등록되어 있는 상태에서 인증 앱 설정을 해제할 수 없습니다.
renewTOTP: 인증 앱을 재설정
tapSecurityKey: 브라우저의 지시에 따라 보안 키나 패스 키를 등록하십시오
_permissions: _permissions:
"read:account": "계정의 정보를 봅니다" "read:account": "계정의 정보를 봅니다"
"write:account": "계정의 정보를 변경합니다" "write:account": "계정의 정보를 변경합니다"
@ -1202,7 +1274,7 @@ _permissions:
"write:messaging": "대화를 시작하거나 메시지를 보냅니다" "write:messaging": "대화를 시작하거나 메시지를 보냅니다"
"read:mutes": "뮤트 여부를 확인합니다" "read:mutes": "뮤트 여부를 확인합니다"
"write:mutes": "뮤트를 하거나 해제합니다" "write:mutes": "뮤트를 하거나 해제합니다"
"write:notes": "노트를 작성하거나 삭제합니다" "write:notes": "게시물을 작성하거나 삭제합니다"
"read:notifications": "알림을 확인합니다" "read:notifications": "알림을 확인합니다"
"write:notifications": "알림을 모두 읽음 처리합니다" "write:notifications": "알림을 모두 읽음 처리합니다"
"read:reactions": "리액션을 확인합니다" "read:reactions": "리액션을 확인합니다"
@ -1227,12 +1299,15 @@ _auth:
pleaseGoBack: "앱으로 돌아가서 시도해 주세요" pleaseGoBack: "앱으로 돌아가서 시도해 주세요"
callback: "앱으로 돌아갑니다" callback: "앱으로 돌아갑니다"
denied: "접근이 거부되었습니다" denied: "접근이 거부되었습니다"
allPermissions: 모든 접근 권한
copyAsk: '아래 인증 코드를 어플리케이션에 붙여넣으십시오:'
_antennaSources: _antennaSources:
all: "모든 노트" all: "모든 게시물"
homeTimeline: "팔로우중인 유저의 노트" homeTimeline: "팔로우 중인 유저의 게시물"
users: "지정한 한 명 혹은 여러 명의 유저의 노트" users: "지정한 한 명 혹은 여러 명의 유저의 게시물"
userList: "지정한 리스트에 속한 유저의 노트" userList: "지정한 리스트에 속한 유저의 게시물"
userGroup: "지정한 그룹에 속한 유저의 노트" userGroup: "지정한 그룹에 속한 유저의 게시물"
instances: 지정한 서버의 모든 유저의 게시물
_weekday: _weekday:
sunday: "일요일" sunday: "일요일"
monday: "월요일" monday: "월요일"
@ -1263,6 +1338,14 @@ _widgets:
serverMetric: "서버 통계" serverMetric: "서버 통계"
aiscript: "AiScript 콘솔" aiscript: "AiScript 콘솔"
aichan: "아이" aichan: "아이"
serverInfo: 서버 정보
_userList:
chooseList: 리스트 선택
meiliStatus: 서버 정보
userList: 유저 목록
meiliSize: 인덱스 크기
meiliIndexCount: 인덱싱 완료된 게시물
rssTicker: RSS Ticker
_cw: _cw:
hide: "숨기기" hide: "숨기기"
show: "더 보기" show: "더 보기"
@ -1293,17 +1376,17 @@ _poll:
_visibility: _visibility:
public: "공개" public: "공개"
publicDescription: "모든 유저에게 공개" publicDescription: "모든 유저에게 공개"
home: "" home: "미등재"
homeDescription: "홈 타임라인에만 공개" homeDescription: "홈 타임라인에만 공개"
followers: "팔로워" followers: "팔로워"
followersDescription: "팔로워에게만 공개" followersDescription: "팔로워 및 멘션한 유저에게만 공개"
specified: "다이렉트" specified: "다이렉트"
specifiedDescription: "지정한 유저에게만 공개" specifiedDescription: "지정한 유저에게만 공개"
localOnly: "로컬에만" localOnly: "로컬에만"
localOnlyDescription: "리모트 유저에게 보이지 않기" localOnlyDescription: "리모트 유저에게 보이지 않기"
_postForm: _postForm:
replyPlaceholder: "이 노트에 답글..." replyPlaceholder: "이 에 답글..."
quotePlaceholder: "이 노트를 인용..." quotePlaceholder: "이 글을 인용..."
channelPlaceholder: "채널에 게시하기..." channelPlaceholder: "채널에 게시하기..."
_placeholders: _placeholders:
a: "지금 무엇을 하고 있나요?" a: "지금 무엇을 하고 있나요?"
@ -1319,13 +1402,15 @@ _profile:
youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다." youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다."
metadata: "추가 정보" metadata: "추가 정보"
metadataEdit: "추가 정보 편집" metadataEdit: "추가 정보 편집"
metadataDescription: "프로필에 추가 정보를 표시할 수 있어요. {rel}과 함께 {a} 태그 또는 {l} 태그를 추가하여 프로필의 링크를 확인할 수 있습니다!" metadataDescription: "프로필에 추가 정보를 표시할 수 있어요. {rel}과 함께 {a} 태그 또는 {l} 태그를 추가하여 프로필의
링크를 확인할 수 있습니다!"
metadataLabel: "라벨" metadataLabel: "라벨"
metadataContent: "내용" metadataContent: "내용"
changeAvatar: "아바타 이미지 변경" changeAvatar: "아바타 이미지 변경"
changeBanner: "배너 이미지 변경" changeBanner: "배너 이미지 변경"
locationDescription: 영문 도시명을 입력하면, 현재 시간대의 시각이 유저 페이지에 표시됩니다.
_exportOrImport: _exportOrImport:
allNotes: "모든 노트" allNotes: "모든 게시물"
followingList: "팔로잉" followingList: "팔로잉"
muteList: "뮤트" muteList: "뮤트"
blockingList: "차단" blockingList: "차단"
@ -1338,10 +1423,10 @@ _charts:
usersIncDec: "유저 수 증감" usersIncDec: "유저 수 증감"
usersTotal: "유저 수 합계" usersTotal: "유저 수 합계"
activeUsers: "활성 유저 수" activeUsers: "활성 유저 수"
notesIncDec: "노트 수 증감" notesIncDec: "게시물 수 증감"
localNotesIncDec: "로컬 노트 수 증감" localNotesIncDec: "로컬 게시물 수 증감"
remoteNotesIncDec: "리모트 노트 수 증감" remoteNotesIncDec: "리모트 게시물 수 증감"
notesTotal: "노트 수 합계" notesTotal: "게시물 수 합계"
filesIncDec: "파일 수 증감" filesIncDec: "파일 수 증감"
filesTotal: "파일 수 합계" filesTotal: "파일 수 합계"
storageUsageIncDec: "스토리지 사용량 증감" storageUsageIncDec: "스토리지 사용량 증감"
@ -1350,8 +1435,8 @@ _instanceCharts:
requests: "요청" requests: "요청"
users: "유저 수 증감" users: "유저 수 증감"
usersTotal: "누적 유저 수" usersTotal: "누적 유저 수"
notes: "노트 수 증감" notes: "게시물 수 증감"
notesTotal: "누적 노트 수" notesTotal: "누적 게시물 수"
ff: "팔로잉/팔로워 증감" ff: "팔로잉/팔로워 증감"
ffTotal: "누적 팔로잉/팔로워 수" ffTotal: "누적 팔로잉/팔로워 수"
cacheSize: "캐시 용량 증감" cacheSize: "캐시 용량 증감"
@ -1363,6 +1448,7 @@ _timelines:
local: "로컬" local: "로컬"
social: "소셜" social: "소셜"
global: "글로벌" global: "글로벌"
recommended: 추천
_pages: _pages:
newPage: "페이지 만들기" newPage: "페이지 만들기"
editPage: "페이지 수정" editPage: "페이지 수정"
@ -1437,10 +1523,10 @@ _pages:
id: "캔버스 ID" id: "캔버스 ID"
width: "폭" width: "폭"
height: "높이" height: "높이"
note: "노트필기" note: "게시물 삽입"
_note: _note:
id: "노트 ID" id: "게시물 ID"
idDescription: "노트 URL을 붙여넣어 설정할 수도 있습니다." idDescription: "게시물 URL을 붙여넣어 설정할 수도 있습니다."
detailed: "세부 정보 보기" detailed: "세부 정보 보기"
switch: "스위치" switch: "스위치"
_switch: _switch:
@ -1661,7 +1747,7 @@ _notification:
youGotMention: "{name}님이 멘션함" youGotMention: "{name}님이 멘션함"
youGotReply: "{name}님이 답글함" youGotReply: "{name}님이 답글함"
youGotQuote: "{name}님이 인용함" youGotQuote: "{name}님이 인용함"
youRenoted: "{name}님이 Renote" youRenoted: "{name}님이 Boost"
youGotPoll: "{name}님이 투표함" youGotPoll: "{name}님이 투표함"
youGotMessagingMessageFromUser: "{name} 님이 보낸 채팅이 있어요" youGotMessagingMessageFromUser: "{name} 님이 보낸 채팅이 있어요"
youGotMessagingMessageFromGroup: "{name}에서 보낸 채팅이 있어요" youGotMessagingMessageFromGroup: "{name}에서 보낸 채팅이 있어요"
@ -1676,7 +1762,7 @@ _notification:
follow: "팔로잉" follow: "팔로잉"
mention: "멘션" mention: "멘션"
reply: "답글" reply: "답글"
renote: "Renote" renote: "부스트"
quote: "인용" quote: "인용"
reaction: "리액션" reaction: "리액션"
pollVote: "투표 참여" pollVote: "투표 참여"
@ -1688,7 +1774,10 @@ _notification:
_actions: _actions:
followBack: "팔로우" followBack: "팔로우"
reply: "답글" reply: "답글"
renote: "Renote" renote: "부스트"
reacted: 님의 리액션
renoted: 님이 부스트
voted: 님이 투표함
_deck: _deck:
alwaysShowMainColumn: "메인 칼럼 항상 표시" alwaysShowMainColumn: "메인 칼럼 항상 표시"
columnAlign: "칼럼 정렬" columnAlign: "칼럼 정렬"
@ -1700,9 +1789,9 @@ _deck:
swapDown: "아래로 이동" swapDown: "아래로 이동"
stackLeft: "왼쪽에 쌓기" stackLeft: "왼쪽에 쌓기"
popRight: "오른쪽으로 빼기" popRight: "오른쪽으로 빼기"
profile: "프로파일" profile: "작업 공간"
newProfile: "새 프로파일" newProfile: "새 작업 공간"
deleteProfile: "프로파일 삭제" deleteProfile: "작업 공간 삭제"
introduction: "칼럼을 조합해서 나만의 인터페이스를 구성해 보아요!" introduction: "칼럼을 조합해서 나만의 인터페이스를 구성해 보아요!"
introduction2: "나중에라도 화면 우측의 + 버튼을 눌러 새 칼럼을 추가할 수 있습니다." introduction2: "나중에라도 화면 우측의 + 버튼을 눌러 새 칼럼을 추가할 수 있습니다."
widgetsIntroduction: "칼럼 메뉴의 \"위젯 편집\"에서 위젯을 추가해 주세요" widgetsIntroduction: "칼럼 메뉴의 \"위젯 편집\"에서 위젯을 추가해 주세요"
@ -1715,3 +1804,202 @@ _deck:
list: "리스트" list: "리스트"
mentions: "받은 멘션" mentions: "받은 멘션"
direct: "다이렉트" direct: "다이렉트"
channel: 채널
renameProfile: 워크스페이스명을 변경
nameAlreadyExists: 같은 이름의 워크스페이스가 이미 존재합니다.
removeReaction: 리액션 취소
flagSpeakAsCat: 고양이체로 말하기
silenceThisInstance: 이 서버를 사일런스
silencedInstancesDescription: 사일런스할 서버의 호스트를 한 줄에 하나씩 입력합니다. 사일런스된 서버의 유저는 모두 사일런스인
것처럼 취급되며, 이 서버에서의 팔로우가 모두 팔로우 요청으로 바뀌고, 팔로워가 아닌 로컬 계정은 멘션할 수 없습니다. 차단한 서버에는 적용되지
않습니다.
noInstances: 서버가 없습니다
silenced: 사일런스됨
manageGroups: 그룹 관리
clipsDesc: 클립은 분류 및 공유가 가능한 북마크입니다. 각 게시물의 메뉴에서 클립을 작성할 수 있습니다.
privateMode: 비공개 모드
audio: 오디오
customKaTeXMacro: 커스텀 KaTeX 매크로
replayTutorial: 튜토리얼 다시 보기
renoteMute: 부스트 뮤트
antennaInstancesDescription: 서버 호스트를 한 줄에 하나씩 입력하세요
userSaysSomethingReason: '{name} 님이 {reason}에 대해 말했습니다'
userSaysSomethingReasonQuote: '{name} 님이 {reason} 을 포함하는 노트를 인용했습니다'
pushNotification: 푸시 알림
channelFederationWarn: 현재 채널은 다른 서버로 연합되지 않습니다
enableServerMachineStats: 서버의 머신 정보를 공개
sendModMail: 모더레이션 알림을 보내기
instanceSecurity: 서버 보안
privateModeInfo: 활성화하면 허가된 서버에서의 요청에만 응답합니다.
seperateRenoteQuote: 부스트와 인용 버튼을 나누기
cannotUploadBecauseExceedsFileSizeLimit: 파일 크기 제한을 초과하여 업로드할 수 없습니다.
pushNotificationNotSupported: 브라우저 및 서버가 푸시 알림을 지원하지 않습니다
enableRecommendedTimeline: 추천 타임라인을 활성화
pushNotificationAlreadySubscribed: 푸시 알림이 활성화되었습니다
caption: 자동 캡션
findOtherInstance: 다른 서버 둘러보기
enableIdenticonGeneration: 유저 별 Identicon의 생성을 활성화
secureModeInfo: 인증 정보가 없는 리모트 서버로부터의 요청에 응답하지 않습니다.
allowedInstances: 허가된 서버
flagSpeakAsCatDescription: 고양이체를 활성화하면 게시물이 '나'가 '냐'로 바뀌는 등의 변화가 생깁니다
showUpdates: Firefish 업데이트가 있을 때 알리기
noGraze: '"Graze for Mastodon" 확장 기능은 Firefish의 정상적인 동작을 방해므로, 비활성화해 주시기 바랍니다.'
adminCustomCssWarn: 이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 모든 유저의 클라이언트가 정상적으로
작동하지 않을 수 있습니다. 개인 클라이언트 설정에서 적용하여 정상적으로 동작하는 지 확인하십시오.
customSplashIconsDescription: 유저가 페이지를 로딩/새로고침할 때 마다 무작위로 표시할 아이콘을 한 줄에 하나씩 입력합니다.
이미지는 되도록 정적 URL으로 구성하고, 192x192 해상도로 조정하여 주십시오.
moveFromDescription: '이전 계정에 대한 별칭을 작성하여, 이 계정으로 옮길 수 있도록 합니다. 반드시 계정을 이전하기 전에 수행해야
합니다. 이전 계정을 다음과 같은 형식으로 입력하여 주십시오: @person@server.com'
indexFromDescription: 빈 칸으로 두면 모든 게시물을 인덱싱합니다
customKaTeXMacroDescription: 'KaTeX 매크로를 지정하여 수식을 더욱 편리하게 입력하세요! LaTeX의 커맨드 정의와 동일하게
\newcommand{\ 이름}{내용} 또는 \newcommand{\이름}[인수 갯수]{내용} 와 같이 입력하십시오. 예를 들어 \newcommand{\add}[2]{#1
+ #2} 와 같이 정의한 경우 \add{3}{foo} 를 입력하면 3 + foo 으로 치환됩니다.매크로의 이름을 감싸는 중괄호를 소괄호() 또는
대괄호[]로 변경할 경우, 매크로 인수에 사용하는 괄호도 같이 변경됩니다. 매크로는 한 줄에 하나씩 입력해야 하며, 반대로 매크로 정의에서 줄바꿈은
사용할 수 없습니다. 올바르지 않은 정의는 무시됩니다. 문자열을 치환하는 수준에서만 지원하며, 조건 분기와 같은 고도의 구문은 사용할 수 없습니다.'
reactionPickerSkinTone: 선호하는 이모지 피부 톤
selectInstance: 서버 선택
showAds: 광고 보이기
searchPlaceholder: Firefish에서 검색
addInstance: 서버 추가
listsDesc: 리스트를 사용하여 특정 유저로 이루어진 타임라인을 구성할 수 있습니다. 리스트는 '타임라인' 페이지에서 접근할 수 있습니다.
enableEmojiReactions: 이모지 리액션을 활성화
showEmojisInReactionNotifications: 리액션 알림에 이모지 보이기
hiddenTagsDescription: 트렌드와 '발견하기'에서 제외할 해시태그를 ('#'을 제외하고) 한 줄에 하나씩 입력하여 주십시오. 이 설정은
트렌드와 '발견하기' 외에는 영향을 주지 않습니다.
antennasDesc: "안테나에서는 조건에 맞는 게시물이 표시됩니다.\n'타임라인' 페이지에서 접근할 수 있습니다."
expandOnNoteClick: 노트를 클릭하여 자세히 표시
expandOnNoteClickDesc: 비활성화한 경우에도 우클릭 메뉴 또는 타임스탬프를 클릭하여 열 수 있습니다.
customMOTDDescription: 유저가 페이지를 로딩/새로고침할 때 마다 무작위로 표시할 메시지를 한 줄에 하나씩 입력합니다.
moveFrom: 다른 계정에서 이 계정으로 이사하기
moveAccount: 이사하기!
enterSendsMessage: 메시지에서 Return 키를 눌러 전송 (기본값 Ctrl + Return)
verifiedLink: 인증된 링크
alt: 설명
statusbar: 스테이터스 바
subscribePushNotification: 푸시 알림을 활성화
sendPushNotificationReadMessage: 알림이나 메시지를 읽은 뒤에 푸시 알림을 삭제
sendPushNotificationReadMessageCaption: '"{emptyPushNotificationMessage}" 라는 알림을 짧은
기간 동안 표시합니다. 기기의 배터리 소모가 늘어날 수 있습니다.'
recommendedInstancesDescription: 추천 타임라인에 표시할 서버를 한 줄에 하나씩 입력하여 주십시오.
enableCustomKaTeXMacro: 커스텀 KaTeX 매크로를 사용
swipeOnMobile: 페이지 간 스와이프를 활성화
swipeOnDesktop: 데스크톱에서도 모바일과 같은 스와이프를 사용
migration: 계정 이사
moveTo: 이 계정에서 새로운 계정으로 이사
deleted: 삭제됨
editNote: 노트 편집
edited: '편짐됨: {date} {time}'
customMOTD: 사용자 지정 MOTD (스플래시 화면 메시지)
selectChannel: 채널 선택
allowedInstancesDescription: 연합을 허가하려는 서버를 한 줄에 하나씩 입력합니다. 비공개 모드에서만 유효합니다.
splash: 스플래시 화면
preventAiLearningDescription: 업로드한 게시물이나 미디어를 AI 모델이 학습하지 말기를 요구합니다.
isBot: 이 계정은 봇입니다
isAdmin: 관리자
newer: 새로운 노트
older: 이전 노트
renoteUnmute: 부스트 뮤트 해제
accountMoved: '이 유저는 다른 계정으로 이사했습니다:'
silencedInstances: 사일런스한 서버
accessibility: 접근성
userSaysSomethingReasonReply: '{name} 님이 {reason} 을 포함하는 노트에 답글했습니다'
userSaysSomethingReasonRenote: '{name} 님이 {reason} 을 포함하는 노트를 부스트했습니다'
breakFollowConfirm: 팔로워를 해제하시겠습니까?
indexFrom: 이 게시물 ID부터 인덱싱하기
noThankYou: 괜찮습니다
hiddenTags: 숨길 해시태그
image: 이미지
video: 동영상
jumpToPrevious: 이전으로
cw: 열람주의
secureMode: 보안 모드 (Authorized Fetch)
xl: 매우 크게
unsubscribePushNotification: 푸시 알림을 끄기
customSplashIcons: 사용자 지정 스플래시 화면 아이콘 (URL)
recommendedInstances: 추천 서버
updateAvailable: 업데이트가 있습니다!
logoImageUrl: 로고 이미지 URL
showAdminUpdates: 새로운 Firefish 버전이 있을 때 알리기 (관리자 전용)
moveToLabel: '이사 갈 계정:'
moveAccountDescription: '이 작업은 되돌릴 수 없습니다. 계정을 옮기기 전에, 새로운 계정에서 이 계정에 대한 별칭을 지정하여
주십시오. 별칭을 지정하였다면, 이사 갈 계정을 다음과 같은 형식으로 입력하여 주십시오: @person@server.com'
defaultReaction: 리모트와 로컬 게시물에 대한 기본 이모지 리액션
showPopup: 유저에게 팝업으로 알리기
showWithSparkles: 제목에 스파클 효과 넣기
youHaveUnreadAnnouncements: 읽지 않은 공지사항이 있습니다
donationLink: 기부 페이지 링크
moveFromLabel: '이사하기 전의 계정:'
neverShow: 앞으로 표시하지 않기
remindMeLater: 나중에
removeQuote: 인용을 삭제
removeRecipient: 수신인을 삭제
removeMember: 멤버를 삭제
license: 라이선스
migrationConfirm: "정말로 이 계정을 {account}로 이사하시겠습니까? 한 번 이사하면, 현재 이 계정은 두 번 다시 사용할 수
없게 됩니다.\n또한, 이사 갈 계정에 현재 사용 중인 계정의 별칭을 올바르게 작성하였는지 다시 한 번 확인하십시오."
indexPosts: 게시물을 인덱싱
indexNotice: 인덱싱을 시작했습니다. 이 작업은 시간이 많이 소요되므로, 최소 1시간 이내에 서버를 재시작하지 마십시오.
noteId: 게시물 ID
signupsDisabled: 현재 이 서버에서는 신규 등록을 받고 있지 않습니다. 초대 코드를 가지고 계신 경우 아래 칸에 입력해 주십시오. 초대
코드를 가지고 있지 않더라도, 신규 등록이 열려 있는 다른 서버에 등록하실 수 있습니다!
apps:
preventAiLearning: AI에 의한 학습을 막기
isLocked: 이 계정은 팔로우를 수동으로 승인합니다
silencedWarning: 관리자가 사일런스한 서버에 속한 유저이며, 스팸이거나 원치 않는 내용을 포함할 가능성이 있습니다.
isModerator: 모더레이터
isPatron: Firefish 후원자
_experiments:
postImportsCaption: 유저가 과거에 작성한 게시물을 Firefish(Firefish), Misskey, Mastodon, Akkoma,
Pleroma 등에서 가져올 수 있게 합니다. 작업 대기열의 처리 속도가 느릴 경우 서비스에 영향이 갈 수 있습니다.
enablePostImports: 게시물 가져오기를 활성화
title: 실험실
_messaging:
groups: 그룹
dms: 개인 메시지
_tutorial:
title: Firefly의 사용 방법
step5_5: '{icon} 소셜 타임라인은 홈 타임라인과 소셜 타임라인을 합친 것과 같습니다.'
step4_1: 첫 노트를 올려 봅시다.
step5_3: '{icon} 홈 타임라인은 내가 팔로우하고 있는 계정의 게시물을 볼 수 있는 타임라인입니다.'
step6_2: 이 서버에 가입을 마친 당신은 단순히 Firefish 서버의 유저가 아닌, 수많은 서버가 서로 상호작용하는 연합우주에 참가하시게
된 것입니다.
step5_4: '{icon} 로컬 타임라인은 이 서버의 모든 유저가 올린 게시물을 볼 수 있는 타임라인입니다.'
step5_2: 이 서버에는 {timelines} 개의 타임라인이 존재합니다.
step2_2: 나에 대한 정보를 미리 실어 놓으면, 다른 사람이 나의 게시물을 보거나 팔로우할 때에 도움이 됩니다.
step3_2: "홈 타임라인과 소셜 타임라인은 내가 팔로우하는 유저로 구성됩니다. 우선 몇 명을 팔로우해 볼까요?\n각 프로필 우측 상단의 둥근
+ 버튼을 눌러 팔로우할 수 있습니다."
step2_1: 우선 프로필을 작성합니다.
step3_1: 이제 누군가를 팔로우해 봅시다!
step5_1: 여기도 타임라인, 저기도 타임라인
step5_6: '{icon} 추천 타임라인은 이 서버의 관리자가 추천하는 서버의 게시물을 볼 수 있는 타임라인입니다.'
step5_7: '{icon} 글로벌 타임라인에서는 이 서버와 연결된 모든 서버의 게시물을 볼 수 있습니다.'
step1_1: 환영합니다!
step1_2: Firefly를 시작하기 전에, 몇 가지 설정을 해 보아요. 금방 끝날 거에요!
step6_1: 그래서… 여기는 어떤 곳이죠?
step4_2: 처음엔 {introduction}를 올리거나, 가볍게 '안녕하세요!' 라고 올리는 것도 좋아요!
step6_4: 튜토리얼은 여기까지입니다. 즐거운 시간 되세요!
step6_3: 각각의 서버는 서로 다른 규칙과 환경을 가지고 있으며, Firefish가 아닌 서버 또한 존재한답니다. 이 서버도 다른 서버에서
보면 마찬가지이고요. 갑자기 어려워 보일 지 몰라도 걱정하지 마세요, 금방 익숙해 질 거니까요.
_skinTones:
medium: 중간
mediumLight: 약간 밝음
yellow: 노랑
mediumDark: 약간 어두움
dark: 어두움
light: 밝음
_filters:
withFile: 첨부 파일 있음
fromUser: 유저를 선택
fromDomain: 도메인 지정
notesBefore: '... 이전의 게시물'
notesAfter: '... 이후의 게시물'
followingOnly: 팔로우 중인 유저만
followersOnly: 팔로워만
_feeds:
jsonFeed: JSON 피드
rss: RSS
atom: Atom
copyFeed: 피드 URL 복사
_dialog:
charactersExceeded: 글자 수 제한을 초과했습니다! 현재 {current}자 / 최대 {max}자
charactersBelow: 최소 글자 수 보다 작습니다! 현재 {current}자 / 최소 {max}자

View file

@ -1,7 +1,7 @@
_lang_: "Nederlands" _lang_: "Nederlands"
headlineMisskey: "Een open source, gedecentraliseerd, social media platform dat voor headlineFirefish: "Een open source, gedecentraliseerd, social media platform dat voor
altijd gratis is! 🚀" altijd gratis is! 🚀"
introMisskey: "Welkom! Firefish is een open source, gedecentraliseerde microblogdienst.\n introFirefish: "Welkom! Firefish is een open source, gedecentraliseerde microblogdienst.\n
Maak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\"\ Maak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\"\
\ kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe \ kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe
wereld verkennen! 🚀" wereld verkennen! 🚀"

View file

@ -21,7 +21,7 @@ noAccountDescription: Denne brukeren har ikke fylt ut bio'en sin ennå.
login: Logg inn login: Logg inn
loggingIn: Logger inn loggingIn: Logger inn
signup: Oppretter bruker signup: Oppretter bruker
uploading: Laster opp.. uploading: Laster opp...
enterUsername: Skriv inn brukernavn enterUsername: Skriv inn brukernavn
noNotifications: Ingen meldinger noNotifications: Ingen meldinger
users: Brukere users: Brukere
@ -63,9 +63,9 @@ alreadyFavorited: Allerede lagt til i bokmerker.
delete: Slett delete: Slett
openInWindow: Åpne i vindu openInWindow: Åpne i vindu
basicSettings: Grunnleggende innstillinger basicSettings: Grunnleggende innstillinger
headlineMisskey: En desentralisert sosialt media-plattform, basert på åpen kildekode, headlineFirefish: En desentralisert sosialt media-plattform, basert på åpen kildekode,
som alltid vil være gratis! 🚀 som alltid vil være gratis! 🚀
introMisskey: Velkommen! Firefish er en desentralisert sosialt media-plattform, basert introFirefish: Velkommen! Firefish er en desentralisert sosialt media-plattform, basert
på åpen kildekode, som alltid vil være gratis! 🚀 på åpen kildekode, som alltid vil være gratis! 🚀
exportRequested: Du har bedt om en eksportering. Dette vil ta litt tid. Den vil bli exportRequested: Du har bedt om en eksportering. Dette vil ta litt tid. Den vil bli
lagt til på disken din når den er ferdig. lagt til på disken din når den er ferdig.
@ -81,3 +81,36 @@ followRequestAccepted: Følgeforespørsel godtatt
import: Importer import: Importer
export: Eksporter export: Eksporter
logout: Logger ut logout: Logger ut
removeReaction: Fjern dine reaksjoner
renotedBy: Fremhevet av {user}
deleteAndEditConfirm: Er du sikker på at du vil slette og redigere denne posten? Du
vil miste alle reaksjoner, fremhevinger og svar til den.
pageLoadError: En feil oppsto ved lasting av siden.
privacy: Personvern
enterEmoji: Legg inn emoji
renoted: Fremhevet.
cantRenote: Denne posten kan ikke fremheves.
cantReRenote: En fremheving kan ikke fremheves.
quote: Sitér
pinned: Fest til profil
clickToShow: Klikk for å vise
enableEmojiReactions: Slå på emoji-reaksjoner
makeFollowManuallyApprove: Følgeforespørsler må godkjennes
enterListName: Gi listen et navn
follow: Følg
followRequest: Følgerforespørsel
unfollow: Avfølg
followRequestPending: Ubehandlet følgerforespørsel
add: Legg til
followRequests: Følgerforespørsler
reaction: Reaksjoner
driveFileDeleteConfirm: Er du sikker på at du vil slette filen «{name}»? Den vil fjernes
fra alle poster den er vedlagt i.
defaultNoteVisibility: Standard synlighet
unrenote: Fjern fremmheving
unpin: Løsne fra profilen
youGotNewFollower: følger deg
mention: Omtale
mentions: Omtaler
edited: Redigert {date} {time}
cw: Innholdsadvarsel

View file

@ -1,7 +1,7 @@
_lang_: "Polski" _lang_: "Polski"
headlineMisskey: "Otwartoźródłowa, zdecentralizowana sieć społecznościowa, która zawsze headlineFirefish: "Otwartoźródłowa, zdecentralizowana sieć społecznościowa, która zawsze
będzie darmowa! 🚀" będzie darmowa! 🚀"
introMisskey: "Hej! Firefish to otwartoźródłowa oraz zdecentralizowana sieć społecznościowa, introFirefish: "Hej! Firefish to otwartoźródłowa oraz zdecentralizowana sieć społecznościowa,
która zawsze będzie darmowa! 🚀" która zawsze będzie darmowa! 🚀"
monthAndDay: "{month}-{day}" monthAndDay: "{month}-{day}"
search: "Szukaj" search: "Szukaj"
@ -1404,7 +1404,8 @@ _profile:
metadata: "Dodatkowe informacje" metadata: "Dodatkowe informacje"
metadataEdit: "Edytuj dodatkowe informacje" metadataEdit: "Edytuj dodatkowe informacje"
metadataDescription: "Możesz wyświetlać do czterech sekcji dodatkowych informacji metadataDescription: "Możesz wyświetlać do czterech sekcji dodatkowych informacji
na swoim profilu. Możesz dodać tag {a} lub tag {l} z {rel}, aby zweryfikować link w swoim profilu!" na swoim profilu. Możesz dodać tag {a} lub tag {l} z {rel}, aby zweryfikować link
w swoim profilu!"
metadataLabel: "Etykieta" metadataLabel: "Etykieta"
metadataContent: "Treść" metadataContent: "Treść"
changeAvatar: "Zmień awatar" changeAvatar: "Zmień awatar"

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "Português" _lang_: "Português"
headlineMisskey: "Uma rede ligada por notas" headlineFirefish: "Uma rede ligada por notas"
introMisskey: "Bem-vindo! Firefish é um serviço de microblogue descentralizado de código aberto.\nCria \"notas\" e partilha o que te ocorre com todos à tua volta. 📡\nCom \"reações\" podes também expressar logo o que sentes às notas de todos. 👍\nExploremos um novo mundo! 🚀" introFirefish: "Bem-vindo! Firefish é um serviço de microblogue descentralizado de código aberto.\nCria \"notas\" e partilha o que te ocorre com todos à tua volta. 📡\nCom \"reações\" podes também expressar logo o que sentes às notas de todos. 👍\nExploremos um novo mundo! 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Buscar" search: "Buscar"
notifications: "Notificações" notifications: "Notificações"

View file

@ -1,11 +1,11 @@
username: Nome de usuário username: Nome de usuário
ok: OK ok: OK
_lang_: Inglês _lang_: Inglês
headlineMisskey: Uma plataforma de mídia social descentralizada e de código aberto headlineFirefish: Uma plataforma de mídia social descentralizada e de código aberto
que é gratuita para sempre! 🚀 que é gratuita para sempre! 🚀
search: Pesquisar search: Pesquisar
gotIt: Entendi! gotIt: Entendi!
introMisskey: Bem vinde! Firefish é uma plataforma de mídia social descentralizada introFirefish: Bem vinde! Firefish é uma plataforma de mídia social descentralizada
e de código aberto que é gratuita para sempre! 🚀 e de código aberto que é gratuita para sempre! 🚀
searchPlaceholder: Pesquise no Firefish searchPlaceholder: Pesquise no Firefish
notifications: Notificações notifications: Notificações

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "Română" _lang_: "Română"
headlineMisskey: "O rețea conectată prin note" headlineFirefish: "O rețea conectată prin note"
introMisskey: "Bine ai venit! Firefish 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ă! 🚀" introFirefish: "Bine ai venit! Firefish 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ă! 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Caută" search: "Caută"
notifications: "Notificări" notifications: "Notificări"

View file

@ -1,6 +1,6 @@
_lang_: "Русский" _lang_: "Русский"
headlineMisskey: "Сеть, сплетённая из заметок" headlineFirefish: "Сеть, сплетённая из заметок"
introMisskey: "Firefish - это децентрализованная платформа социальных сетей с открытым introFirefish: "Firefish - это децентрализованная платформа социальных сетей с открытым
исходным кодом, которая свободна навсегда! 🚀" исходным кодом, которая свободна навсегда! 🚀"
monthAndDay: "{day}.{month}" monthAndDay: "{day}.{month}"
search: "Поиск" search: "Поиск"
@ -27,7 +27,7 @@ noAccountDescription: "Пользователь ничего не написал
login: "Войти" login: "Войти"
loggingIn: "Выполняется вход" loggingIn: "Выполняется вход"
logout: "Выйти" logout: "Выйти"
signup: "Регистрация" signup: "Зарегистрироваться"
uploading: "Загрузка..." uploading: "Загрузка..."
save: "Сохранить" save: "Сохранить"
users: "Пользователи" users: "Пользователи"
@ -51,7 +51,7 @@ sendMessage: "Отправить сообщение"
copyUsername: "Скопировать имя пользователя" copyUsername: "Скопировать имя пользователя"
searchUser: "Поиск людей" searchUser: "Поиск людей"
reply: "Ответить" reply: "Ответить"
loadMore: "Показать еще" loadMore: "Загрузить ещё"
showMore: "Показать еще" showMore: "Показать еще"
showLess: "Закрыть" showLess: "Закрыть"
youGotNewFollower: "Новый подписчик" youGotNewFollower: "Новый подписчик"
@ -752,8 +752,8 @@ nUsers: "Пользователей: {n}"
nNotes: "Постов: {n}" nNotes: "Постов: {n}"
sendErrorReports: "Посылать отчёты о сбоях" sendErrorReports: "Посылать отчёты о сбоях"
sendErrorReportsDescription: "Если включено, когда возникнет какая-нибудь техническая sendErrorReportsDescription: "Если включено, когда возникнет какая-нибудь техническая
проблема, подробные сведения об этом будут отправлены разработчикам Firefish.\n Это проблема, подробные сведения об этом будут отправлены разработчикам Firefish.\n
очень помогает делать программу лучше. В отчёты попадают тип и версия ОС, браузера, Это очень помогает делать программу лучше. В отчёты попадают тип и версия ОС, браузера,
журнал действий (что привело к сбою) и тому подобное." журнал действий (что привело к сбою) и тому подобное."
myTheme: "Личная тема" myTheme: "Личная тема"
backgroundColor: "Фон" backgroundColor: "Фон"
@ -844,7 +844,7 @@ squareAvatars: "Квадратные аватарки"
sent: "Отправить" sent: "Отправить"
received: "Получено" received: "Получено"
searchResult: "Результаты поиска" searchResult: "Результаты поиска"
hashtags: "Хэштег" hashtags: "Хэштеги"
troubleshooting: "Разрешение проблем" troubleshooting: "Разрешение проблем"
useBlurEffect: "Размытие в интерфейсе" useBlurEffect: "Размытие в интерфейсе"
learnMore: "Подробнее" learnMore: "Подробнее"
@ -911,9 +911,9 @@ label: "Метка"
localOnly: "Локально" localOnly: "Локально"
beta: "Бета" beta: "Бета"
enableAutoSensitive: "Автоматическое определение NSFW" enableAutoSensitive: "Автоматическое определение NSFW"
enableAutoSensitiveDescription: "Если доступно, используйте машинное обучение для enableAutoSensitiveDescription: "Позволяет автоматически обнаруживать и маркировать
автоматической установки флага NSFW на носителе. Даже если эта функция отключена, медиафайлы NSFW с помощью машинного обучения, где это возможно. Даже если эта опция
она может быть установлена автоматически в зависимости от инстанта." отключена, она может быть включена на всем сервере."
account: "Учётные записи" account: "Учётные записи"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "Машинное обучение может быть использовано для автоматического обнаружения description: "Машинное обучение может быть использовано для автоматического обнаружения
@ -959,7 +959,7 @@ _forgotPassword:
enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На
неё будет выслана ссылка для смены пароля." неё будет выслана ссылка для смены пароля."
ifNoEmail: "Если вы не ввели свой адрес электронной почты, свяжитесь с администратором ifNoEmail: "Если вы не ввели свой адрес электронной почты, свяжитесь с администратором
ресурса, чтобы сменить пароль." сервера, чтобы сменить пароль."
contactAdmin: "Здесь не используются адреса электронной почты, так что свяжитесь contactAdmin: "Здесь не используются адреса электронной почты, так что свяжитесь
с администратором, чтобы поменять пароль." с администратором, чтобы поменять пароль."
_gallery: _gallery:
@ -982,7 +982,7 @@ _registry:
keys: "Ключ" keys: "Ключ"
domain: "Домен" domain: "Домен"
createKey: "Новый ключ" createKey: "Новый ключ"
_aboutMisskey: _aboutFirefish:
about: "Firefish это форк Firefish, сделанный ThatOneCalculator, разработка которого about: "Firefish это форк Firefish, сделанный ThatOneCalculator, разработка которого
началась с 2022." началась с 2022."
contributors: "Основные соавторы" contributors: "Основные соавторы"
@ -993,15 +993,23 @@ _aboutMisskey:
morePatrons: "Большое спасибо и многим другим, кто принял участие в этом проекте! morePatrons: "Большое спасибо и многим другим, кто принял участие в этом проекте!
🥰" 🥰"
patrons: "Материальная поддержка" patrons: "Материальная поддержка"
patronsList: Перечислены в хронологическом порядке, а не по размеру пожертвования.
Сделайте взнос по ссылке выше, чтобы ваше имя было здесь!
sponsors: Спонсоры Firefish
donateTitle: Понравился Firefish?
pleaseDonateToFirefish: Пожалуйста, поддержите разработку Firefish.
pleaseDonateToHost: Также не забудьте поддержать ваш домашний сервер {host}, чтобы
помочь с его операционными расходами.
donateHost: Пожертвовать на {host}
_nsfw: _nsfw:
respect: "Скрывать содержимое не для всех" respect: "Скрывать содержимое не для всех"
ignore: "Показывать содержимое не для всех" ignore: "Показывать содержимое не для всех"
force: "Скрывать вообще все файлы" force: "Скрывать вообще все файлы"
_mfm: _mfm:
cheatSheet: "Подсказка по разметке MFM" cheatSheet: "Подсказка по разметке MFM"
intro: "MFM — язык оформления текста,используемый в Firefish, Firefish, Akkoma и готов intro: "MFM — язык оформления текста, используемый в Misskey, Firefish, Akkoma,
для применения во многих местах. На этой странице собраны и кратко изложены способы который можно использовать во многих местах. На этой странице собраны и кратко
его использовать." изложены способы его использовать."
dummy: "Firefish расширяет границы Федиверса" dummy: "Firefish расширяет границы Федиверса"
mention: "Упоминание" mention: "Упоминание"
mentionDescription: "При помощи знака «собака» перед именем можно упомянуть какого-нибудь mentionDescription: "При помощи знака «собака» перед именем можно упомянуть какого-нибудь
@ -1027,7 +1035,7 @@ _mfm:
inlineMathDescription: "Позволяет вставлять математические выражения внутрь текста inlineMathDescription: "Позволяет вставлять математические выражения внутрь текста
при помощи языка KaTeX" при помощи языка KaTeX"
blockMath: "Математическое выражение (блок)" blockMath: "Математическое выражение (блок)"
blockMathDescription: "Оформляет математическое выражение (KaTeX) на отдельной строке" blockMathDescription: "Отображать математические формулы (KaTeX) блоками"
quote: "Цитата" quote: "Цитата"
quoteDescription: "Так можно процитировать чей-то текст." quoteDescription: "Так можно процитировать чей-то текст."
emoji: "Собственные эмодзи" emoji: "Собственные эмодзи"
@ -1069,6 +1077,25 @@ _mfm:
rotateDescription: "Поворачивает на заданный угол." rotateDescription: "Поворачивает на заданный угол."
plain: Обычный текст plain: Обычный текст
plainDescription: Деактивирует эффекты всех MFM, содержащихся в этом эффекте MFM. plainDescription: Деактивирует эффекты всех MFM, содержащихся в этом эффекте MFM.
play: Воспроизвести MFM
warn: 'MFM может содержать быстро-движущуюся или яркую анимацию'
advanced: Расширенные MFM
advancedDescription: Если выключено, позволяет только базовую разметку, если не
воспроизводится анимированный MFM
background: Цвет фона
backgroundDescription: Изменить цвет фона текста.
crop: Обрезать
cropDescription: Обрезать содержимое.
stop: Остановить MFM
scale: Масштабировать
fade: Затухание
position: Расположение
alwaysPlay: Всегда автозапускать все анимированные MFM
fadeDescription: Уменьшает и увеличивает видимость контента.
foreground: Цвет переднего плана
foregroundDescription: Изменить цвет текста на переднем плане.
positionDescription: Переместить содержимое на указанное значение.
scaleDescription: Масштабировать содержимое на указанную величину.
_instanceTicker: _instanceTicker:
none: "Не показывать" none: "Не показывать"
remote: "Только для других сайтов" remote: "Только для других сайтов"
@ -1088,6 +1115,8 @@ _channel:
following: "Подписки" following: "Подписки"
usersCount: "Участников: {n}" usersCount: "Участников: {n}"
notesCount: "Постов: {n}" notesCount: "Постов: {n}"
nameOnly: Только название
nameAndDescription: Название и описание
_menuDisplay: _menuDisplay:
sideFull: "Сторона" sideFull: "Сторона"
sideIcon: "Сторона (иконки)" sideIcon: "Сторона (иконки)"
@ -1107,11 +1136,11 @@ _wordMute:
hard: "Жёсткий" hard: "Жёсткий"
mutedNotes: "Скрытые посты" mutedNotes: "Скрытые посты"
_instanceMute: _instanceMute:
heading: "Список заглушенных инстансов" heading: "Список заглушенных серверов"
instanceMuteDescription2: Разделить переносом строки instanceMuteDescription2: Разделить переносом строки
instanceMuteDescription: Это будет скрывать все посты/репосты с указанных инстансов, instanceMuteDescription: Это будет скрывать все посты/репосты с указанных серверов,
включая ответы пользователю с заглушенного инстанса. включая ответы пользователю с заглушенного сервера.
title: Скрывает посты с указанных инстансов. title: Скрывает посты с указанных серверов.
_theme: _theme:
explore: "Обзор" explore: "Обзор"
install: "Установить тему" install: "Установить тему"
@ -1217,7 +1246,7 @@ _tutorial:
step2_1: "Сначала, пожалуйста, заполните свой профиль." step2_1: "Сначала, пожалуйста, заполните свой профиль."
step2_2: "Предоставив некоторую информацию о себе, другим людям будет легче понять, step2_2: "Предоставив некоторую информацию о себе, другим людям будет легче понять,
хотят ли они видеть ваши записи или следить за вами." хотят ли они видеть ваши записи или следить за вами."
step3_1: "Теперь пора следить за некоторыми людьми!" step3_1: "Теперь пришло время на кого-то подписаться!"
step3_2: "Ваша домашняя и социальная ленты основаны на том, за кем вы следите, поэтому step3_2: "Ваша домашняя и социальная ленты основаны на том, за кем вы следите, поэтому
для начала попробуйте следить за парой аккаунтов.\nНажмите на кружок с плюсом для начала попробуйте следить за парой аккаунтов.\nНажмите на кружок с плюсом
в правом верхнем углу профиля, чтобы следить за ним." в правом верхнем углу профиля, чтобы следить за ним."
@ -1225,22 +1254,19 @@ _tutorial:
step4_2: "Для своего первого сообщения некоторые люди любят делать {introduction} step4_2: "Для своего первого сообщения некоторые люди любят делать {introduction}
сообщение или простое \"Hello world!\"" сообщение или простое \"Hello world!\""
step5_1: "Временные рамки, везде временные рамки!" step5_1: "Временные рамки, везде временные рамки!"
step5_2: "В вашем экземпляре включены {timelines} различных временных линий." step5_2: "В вашем сервере включены {timelines} разные ленты."
step5_3: "Главная {icon} лента - это лента, где вы можете видеть сообщения ваших step5_3: "Домашняя {icon} лента - это лента, где вы можете видеть посты тех, на
подписок и других на этом инстансе. Если вы хотите чтобы главная лента показывала кого вы подписались."
только посты ваших подписок вы можете легко это изменить в настройках!"
step5_4: "Местная {icon} лента - это лента где вы можете видеть сообщения всех остальных step5_4: "Местная {icon} лента - это лента где вы можете видеть сообщения всех остальных
пользователей данного инстанса." пользователей данного сервера."
step5_5: "Лента Социальная {icon} - это лента, где вы можете видеть посты только step5_5: "Социальная лента {icon} - это комбинация домашней и местной лент."
от аккаунтов, на которые вы подписаны." step5_6: "На ленте Рекомендованных {icon} вы можете видеть посты с серверов, которые
step5_6: "Лента Рекомендованная {icon} это лента, где вы можете видеть посты с инстансов, рекомендуют администраторы."
рекомендованных администраторами."
step5_7: "Глобальная {icon} лента - это место, где вы можете видеть сообщения от step5_7: "Глобальная {icon} лента - это место, где вы можете видеть сообщения от
всех других подключенных экземпляров." всех других подключенных серверов."
step6_1: "Итак, что это за место?" step6_1: "Итак, что это за место?"
step6_2: "Ну, вы не просто присоединились к Кальки. Вы присоединились к порталу step6_2: "Ну, вы не просто присоединились к Firefish. Вы вошли в Fediverse, взаимосвязанную
в Fediverse, взаимосвязанной сети из тысяч серверов, называемых \"инстансами\"\ сеть из тысяч серверов."
."
step6_3: "Каждый сервер работает по-своему, и не на всех серверах работает Firefish. step6_3: "Каждый сервер работает по-своему, и не на всех серверах работает Firefish.
Но этот работает! Это немного сложно, но вы быстро разберетесь." Но этот работает! Это немного сложно, но вы быстро разберетесь."
step6_4: "Теперь идите, изучайте и развлекайтесь!" step6_4: "Теперь идите, изучайте и развлекайтесь!"
@ -1257,6 +1283,26 @@ _2fa:
securityKeyInfo: "Вы можете настроить вход с помощью аппаратного ключа безопасности, securityKeyInfo: "Вы можете настроить вход с помощью аппаратного ключа безопасности,
поддерживающего FIDO2, или отпечатка пальца или PIN-кода на устройстве." поддерживающего FIDO2, или отпечатка пальца или PIN-кода на устройстве."
step2Url: 'Вы также можете ввести этот URL если используете программу на компьютере:' step2Url: 'Вы также можете ввести этот URL если используете программу на компьютере:'
securityKeyName: Введите название ключа
removeKeyConfirm: Действительно удалить ключ {name}?
removeKey: Удалить ключ безопасности
step2Click: Нажав на этот QR-код, вы сможете зарегистрировать 2FA в вашем ключе
безопасности или приложении-аутентификаторе для телефона.
registerTOTPBeforeKey: Пожалуйста, настройте приложение-аутентификатор, чтобы зарегистрировать
ключ безопасности или пароль.
chromePasskeyNotSupported: Пароли Chrome пока не поддерживаются.
renewTOTP: Перенастроить приложение-аутентификатор
renewTOTPConfirm: Это приведет к тому, что коды подтверждения из предыдущего приложения
перестанут работать
renewTOTPOk: Перенастроить
renewTOTPCancel: Отменить
token: 2FA Токен
whyTOTPOnlyRenew: Приложение аутентификатора нельзя удалить, пока зарегистрирован
ключ безопасности.
tapSecurityKey: Пожалуйста, следуйте инструкциям вашего браузера, чтобы зарегистрировать
ключ безопасности или ключ-пароль
step3Title: Введите код аутентификации
securityKeyNotSupported: Ваш браузер не поддерживает ключи безопасности.
_permissions: _permissions:
"read:account": "Просматривать данные учётной записи" "read:account": "Просматривать данные учётной записи"
"write:account": "Изменять данные учётной записи" "write:account": "Изменять данные учётной записи"
@ -1293,18 +1339,19 @@ _permissions:
_auth: _auth:
shareAccess: "Дать доступ для «{name}» к вашей учётной записи?" shareAccess: "Дать доступ для «{name}» к вашей учётной записи?"
shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?" shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?"
permissionAsk: "Приложение запрашивает следующие разрешения" permissionAsk: "Приложение запрашивает следующие разрешения:"
pleaseGoBack: "Вернитесь, пожалуйста, в приложение" pleaseGoBack: "Вернитесь, пожалуйста, в приложение"
callback: "Возврат в приложение" callback: "Возврат в приложение"
denied: "Доступ закрыт" denied: "Доступ закрыт"
copyAsk: Пожалуйста, вставьте следующий код авторизации в приложение copyAsk: 'Пожалуйста, вставьте следующий код авторизации в приложение:'
allPermissions: Полный доступ к аккаунту
_antennaSources: _antennaSources:
all: "Все посты" all: "Все посты"
homeTimeline: "Посты тех на которых вы подписаны" homeTimeline: "Посты тех на которых вы подписаны"
users: "Посты выбранных пользователей" users: "Посты выбранных пользователей"
userList: "Посты пользователей из выбранных списков" userList: "Посты пользователей из выбранных списков"
userGroup: "Посты от пользователей из заданной группы" userGroup: "Посты от пользователей из заданной группы"
instances: Посты от всех пользователей на инстансе instances: Посты от всех пользователей на сервере
_weekday: _weekday:
sunday: "Воскресенье" sunday: "Воскресенье"
monday: "Понедельник" monday: "Понедельник"
@ -1320,28 +1367,32 @@ _widgets:
calendar: "Календарь" calendar: "Календарь"
trends: "Актуальное" trends: "Актуальное"
clock: "Часы" clock: "Часы"
rss: "Просмотр RSS" rss: "RSS-читалка"
activity: "Активность" activity: "Активность"
photos: "Фото" photos: "Фото"
digitalClock: "Цифровые часы" digitalClock: "Цифровые часы"
federation: "Федерация" federation: "Федерация"
postForm: "Форма отправки" postForm: "Создание поста"
slideshow: "Показ слайдов" slideshow: "Показ слайдов"
button: "Кнопка" button: "Кнопка"
onlineUsers: "Пользователи сейчас с сети" onlineUsers: "Пользователи онлайн"
jobQueue: "Очередь заданий" jobQueue: "Очередь заданий"
serverMetric: "Показатели сервера" serverMetric: "Показатели сервера"
aiscript: "Консоль AiScript" aiscript: "Консоль AiScript"
aichan: "Ай" aichan: "Ай"
rssTicker: RSS-тикер rssTicker: RSS-тикер
unixClock: UNIX часы unixClock: UNIX часы
instanceCloud: Облачко инстансов instanceCloud: Облачко серверов
userList: Список пользователей userList: Список пользователей
_userList: _userList:
chooseList: Выберите список chooseList: Выберите список
meiliStatus: Состояние сервера
meiliSize: Размер индекса
meiliIndexCount: Индексированные посты
serverInfo: Информация о сервере
_cw: _cw:
hide: "Спрятать" hide: "Спрятать"
show: "Показать еще" show: "Показать содержимое"
chars: "знаков: {count}" chars: "знаков: {count}"
files: "файлов: {count}" files: "файлов: {count}"
_poll: _poll:
@ -1368,11 +1419,12 @@ _poll:
remainingSeconds: "Осталось {s} с" remainingSeconds: "Осталось {s} с"
_visibility: _visibility:
public: "Общедоступно" public: "Общедоступно"
publicDescription: "Открыто для всех" publicDescription: "Ваш пост будет виден во всех публичных лентах"
home: "Скрытый" home: "Скрытый"
homeDescription: "Не для общих лент" homeDescription: "Не для общих лент"
followers: "Для подписчиков" followers: "Для подписчиков"
followersDescription: "Только вашим подписчикам" followersDescription: "Сделать видимым только для ваших подписчиков и упомянутых
пользователей"
specified: "Личное" specified: "Личное"
specifiedDescription: "Тем, кого укажете" specifiedDescription: "Тем, кого укажете"
localOnly: "Локально" localOnly: "Локально"
@ -1696,7 +1748,7 @@ _pages:
pick: "Выбор из списка" pick: "Выбор из списка"
_pick: _pick:
arg1: "Списки" arg1: "Списки"
arg2: "Индекс" arg2: "Позиция"
listLen: "Количество элементов в списке" listLen: "Количество элементов в списке"
_listLen: _listLen:
arg1: "Списки" arg1: "Списки"
@ -1759,7 +1811,7 @@ _notification:
quote: "Цитаты" quote: "Цитаты"
reaction: "Реакции" reaction: "Реакции"
pollVote: "Голосования" pollVote: "Голосования"
receiveFollowRequest: "Получен запрос на подписку" receiveFollowRequest: "Полученные запросы на подписку"
followRequestAccepted: "Запрос на подписку одобрен" followRequestAccepted: "Запрос на подписку одобрен"
groupInvited: "Приглашение в группы" groupInvited: "Приглашение в группы"
app: "Уведомления из приложений" app: "Уведомления из приложений"
@ -1770,6 +1822,9 @@ _notification:
followBack: Подписался на вас обратно followBack: Подписался на вас обратно
emptyPushNotificationMessage: Пуш уведомления были обновлены emptyPushNotificationMessage: Пуш уведомления были обновлены
pollEnded: Результаты опроса стали доступны pollEnded: Результаты опроса стали доступны
reacted: отреагировал на ваш пост
renoted: распространил ваш пост
voted: проголосовал в вашем опросе
_deck: _deck:
alwaysShowMainColumn: "Всегда показывать главную колонку" alwaysShowMainColumn: "Всегда показывать главную колонку"
columnAlign: "Выравнивание колонок" columnAlign: "Выравнивание колонок"
@ -1787,10 +1842,11 @@ _deck:
widgets: "Виджеты" widgets: "Виджеты"
notifications: "Уведомления" notifications: "Уведомления"
tl: "Лента" tl: "Лента"
antenna: "Антенны" antenna: "Антенна"
list: "Списки" list: "Списки"
mentions: "Упоминания" mentions: "Упоминания"
direct: "Личное" direct: "Личное"
channel: Канал
deleteProfile: Удалить воркспейс deleteProfile: Удалить воркспейс
introduction: Создайте идеальный интерфейс для себя, свободно расположив столбцы! introduction: Создайте идеальный интерфейс для себя, свободно расположив столбцы!
introduction2: Нажмите на + в правой части экрана, чтобы добавлять новые столбцы introduction2: Нажмите на + в правой части экрана, чтобы добавлять новые столбцы
@ -1891,7 +1947,7 @@ socialTimeline: Социальная лента
driveCapOverrideCaption: Сбросить до настроек по умолчанию введя значение 0 или меньше. driveCapOverrideCaption: Сбросить до настроек по умолчанию введя значение 0 или меньше.
deleteAccount: Удалить аккаунт deleteAccount: Удалить аккаунт
numberOfPageCache: Число кэшируемых страниц numberOfPageCache: Число кэшируемых страниц
pushNotificationNotSupported: Ваш браузер или инстанс не поддерживает пуш уведомления pushNotificationNotSupported: Ваш браузер или сервер не поддерживает пуш уведомления
sendPushNotificationReadMessageCaption: Уведомление содержащее текст "{emptyPushNotificationMessage}" sendPushNotificationReadMessageCaption: Уведомление содержащее текст "{emptyPushNotificationMessage}"
будет показано на короткое время. Это может увеличить расход батареи вашего устройства, будет показано на короткое время. Это может увеличить расход батареи вашего устройства,
если это применимо. если это применимо.
@ -1903,7 +1959,7 @@ adminCustomCssWarn: Этот параметр следует использов
клиенты перестанут нормально функционировать. Пожалуйста, убедитесь, что ваш CSS клиенты перестанут нормально функционировать. Пожалуйста, убедитесь, что ваш CSS
работает должным образом, протестировав его в настройках вашего пользователя. работает должным образом, протестировав его в настройках вашего пользователя.
showUpdates: Показывать всплывающее окно при обновлении Firefish showUpdates: Показывать всплывающее окно при обновлении Firefish
recommendedInstances: Рекомендованные инстансы recommendedInstances: Рекомендованные серверы
defaultReaction: Эмодзи реакция по умолчанию для выходящих и исходящих постов defaultReaction: Эмодзи реакция по умолчанию для выходящих и исходящих постов
license: Лицензия license: Лицензия
indexPosts: Индексировать посты indexPosts: Индексировать посты
@ -1949,7 +2005,7 @@ shuffle: Перемешать
moveFrom: Переместится на этот аккаунт с старого аккаунта moveFrom: Переместится на этот аккаунт с старого аккаунта
moveFromLabel: 'Аккаунт с которого перемещаетесь:' moveFromLabel: 'Аккаунт с которого перемещаетесь:'
moveAccountDescription: Этот процесс необратим. Убедитесь что вы сделали псевдоним moveAccountDescription: Этот процесс необратим. Убедитесь что вы сделали псевдоним
для этого аккаунта до перемещения. Пожалуйста введите аккаунт в формате @person@instance.com для этого аккаунта до перемещения. Пожалуйста введите аккаунт в формате @person@server.com
moveTo: Переместить текущий аккаунт на новый аккаунт moveTo: Переместить текущий аккаунт на новый аккаунт
_messaging: _messaging:
groups: Группы groups: Группы
@ -1971,10 +2027,10 @@ hiddenTagsDescription: 'Список хештегов (без #), которые
и "обзор". Скрытые хэштеги по-прежнему можно обнаружить в других местах.' и "обзор". Скрытые хэштеги по-прежнему можно обнаружить в других местах.'
moveFromDescription: Это установит псевдоним для старого аккаунта, так что вы сможете moveFromDescription: Это установит псевдоним для старого аккаунта, так что вы сможете
переместить тот аккаунт на текущий. Делайте это ДО перемещения со старого аккаунта. переместить тот аккаунт на текущий. Делайте это ДО перемещения со старого аккаунта.
Пожалуйста введите аккаунт в формате @person@instance.com Пожалуйста введите аккаунт в формате @person@server.com
customKaTeXMacroDescription: 'Настройте макросы чтобы легко писать математические customKaTeXMacroDescription: 'Настройте макросы чтобы легко писать математические
выражения! Обозначение соответствует определениям команд LaTeX и записывается как выражения! Обозначение соответствует определениям команд LaTeX и записывается как
\newcommand{\название}{содержание} или \newcommand{\название}[количество аргументов]{содержание}. \newcommand{\ название}{содержание} или \newcommand{\название}[количество аргументов]{содержание}.
Для примера, \add{3}[2]{#1 + #2} будет раскрывать \add{3}{foo} до 3 + foo. Фигурные Для примера, \add{3}[2]{#1 + #2} будет раскрывать \add{3}{foo} до 3 + foo. Фигурные
скобки, окружающие имя макроса, можно заменить на круглые или квадратные скобки. скобки, окружающие имя макроса, можно заменить на круглые или квадратные скобки.
Это влияет на квадратные скобки, используемые для аргументов. Для каждой строки Это влияет на квадратные скобки, используемые для аргументов. Для каждой строки
@ -2016,3 +2072,68 @@ channelFederationWarn: Каналы пока не федерируются с д
image: Изображение image: Изображение
cw: Предупреждение о содержании cw: Предупреждение о содержании
xl: Очень крупно xl: Очень крупно
_experiments:
enablePostImports: Включить импорт постов
postImportsCaption: Позволяет пользователям импортировать свои посты из прошлых
учетных записей Firefish, Misskey, Mastodon, Akkoma и Pleroma. Это может вызвать
снижение скорости при загрузке, если ваша очередь перегружена.
title: Эксперименты
_skinTones:
yellow: Жёлтый
dark: Тёмный
mediumLight: Средне-светлый
mediumDark: Средне-тёмный
medium: Средний
light: Светлый
_filters:
fromUser: От пользователя
withFile: С файлом
followingOnly: Только подписки
followersOnly: Только подписчики
fromDomain: С домена
notesBefore: Посты до
notesAfter: Посты после
_dialog:
charactersExceeded: 'Превышено максимальное количество символов! Ограничение: {current}/{max}'
charactersBelow: 'Недостаточно символов! Ограничение: {current}/{min}'
_feeds:
copyFeed: Скопировать ленту
rss: RSS
jsonFeed: JSON-лента
atom: Atom
enableServerMachineStats: Включить статистику серверного оборудования
enableIdenticonGeneration: Включить генерацию Identicon
reactionPickerSkinTone: Предпочитаемый цвет кожи эмодзи
sendModMail: Отправить сообщение о модерации
findOtherInstance: Найти другой сервер
signupsDisabled: Регистрация на этом сервере сейчас отключена, но вы всегда можете
зарегистрироваться на другом сервере! Если у вас есть код приглашения на этот сервер,
пожалуйста, введите его ниже.
preventAiLearningDescription: Попросить сторонние языковые модели ИИ не изучать загружаемый
вами контент, например, посты и изображения.
verifiedLink: Проверенная ссылка
swipeOnMobile: Разрешить перелистывание между страницами
preventAiLearning: Защита от скрепинга ИИ-ботов
userSaysSomethingReasonReply: '{name} ответил на пост с {reason}'
userSaysSomethingReasonRenote: '{name} распространил пост с {reason}'
userSaysSomethingReasonQuote: '{name} процитировал пост с {reason}'
isBot: Этот аккаунт является ботом
isAdmin: Администратор
isPatron: Патрон Firefish
showPopup: Оповещать пользователей всплывающим окном
neverShow: Не показывать снова
remindMeLater: Возможно позже
removeQuote: Удалить цитату
silencedWarning: Эта страница отображается потому, что эти пользователи с серверов,
которые ваш администратор заглушил, поэтому они потенциально могут быть спамом.
isModerator: Модератор
noGraze: Пожалуйста, отключите расширение браузера "Graze для Mastodon", поскольку
оно мешает работе Firefish.
newer: новее
older: старее
showWithSparkles: Показать с блеском
youHaveUnreadAnnouncements: У вас есть непрочитанные объявления
donationLink: Ссылка на страницу для взносов
isLocked: Этот аккаунт имеет одобрение запросов на подписку
removeRecipient: Удалить получателя
removeMember: Удалить участника

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "Slovenčina" _lang_: "Slovenčina"
headlineMisskey: "Sieť prepojená poznámkami" headlineFirefish: "Sieť prepojená poznámkami"
introMisskey: "Vitajte! Firefish je otvorená a decentralizovaná mikroblogovacia služba.\n\"Poznámkami\" môžete zdieľať svoje myšlienky so všetkými okolo. 📡\nPomocou \"reakcií\" môžete rýchlo vyjadri svoje pocity o každého poznámkach. 👍\nPoďte objavovať svet! 🚀" introFirefish: "Vitajte! Firefish je otvorená a decentralizovaná mikroblogovacia služba.\n\"Poznámkami\" môžete zdieľať svoje myšlienky so všetkými okolo. 📡\nPomocou \"reakcií\" môžete rýchlo vyjadri svoje pocity o každého poznámkach. 👍\nPoďte objavovať svet! 🚀"
monthAndDay: "{day}. {month}." monthAndDay: "{day}. {month}."
search: "Hľadať" search: "Hľadať"
notifications: "Oznámenia" notifications: "Oznámenia"

View file

@ -1,7 +1,10 @@
---
_lang_: "Svenska" _lang_: "Svenska"
headlineMisskey: "Ett nätverk kopplat av noter" headlineFirefish: "En öppen källkod och decentraliserad social media plattform som
introMisskey: "Välkommen! Firefish är en öppen och decentraliserad mikrobloggningstjänst.\nSkapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\" kan du snabbt uttrycka dina känslor kring andras noter.👍\nLåt oss utforska en nya värld!🚀" är gratis för all framtid! 🚀"
introFirefish: "Välkommen! Firefish är en öppen och decentraliserad mikrobloggningstjänst.\n
Skapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\"\
\ kan du snabbt uttrycka dina känslor kring andras noter.👍\nLåt oss utforska en
nya värld!🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Sök" search: "Sök"
notifications: "Notifikationer" notifications: "Notifikationer"
@ -16,7 +19,7 @@ enterUsername: "Ange användarnamn"
renotedBy: "Omnoterad av {user}" renotedBy: "Omnoterad av {user}"
noNotes: "Inga noteringar" noNotes: "Inga noteringar"
noNotifications: "Inga aviseringar" noNotifications: "Inga aviseringar"
instance: "Instanser" instance: "Server Instans"
settings: "Inställningar" settings: "Inställningar"
basicSettings: "Basinställningar" basicSettings: "Basinställningar"
otherSettings: "Andra inställningar" otherSettings: "Andra inställningar"
@ -44,7 +47,8 @@ copyContent: "Kopiera innehåll"
copyLink: "Kopiera länk" copyLink: "Kopiera länk"
delete: "Radera" delete: "Radera"
deleteAndEdit: "Radera och ändra" deleteAndEdit: "Radera och ändra"
deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den? Du kommer förlora alla reaktioner, omnoteringar och svar till den." deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den? Du
kommer förlora alla reaktioner, omnoteringar och svar till den."
addToList: "Lägg till i lista" addToList: "Lägg till i lista"
sendMessage: "Skicka ett meddelande" sendMessage: "Skicka ett meddelande"
copyUsername: "Kopiera användarnamn" copyUsername: "Kopiera användarnamn"
@ -63,9 +67,11 @@ import: "Importera"
export: "Exportera" export: "Exportera"
files: "Filer" files: "Filer"
download: "Nedladdning" download: "Nedladdning"
driveFileDeleteConfirm: "Är du säker att du vill radera filen \"{name}\"? Noter med denna fil bifogad kommer också raderas." driveFileDeleteConfirm: "Är du säker att du vill radera filen \"{name}\"? Notera att
denna kommer att bli raderad från alla poster som har den bifogad."
unfollowConfirm: "Är du säker att du vill avfölja {name}?" unfollowConfirm: "Är du säker att du vill avfölja {name}?"
exportRequested: "Du har begärt en export. Detta kan ta lite tid. Den kommer läggas till i din Drive när den blir klar." exportRequested: "Du har begärt en export. Detta kan ta lite tid. Den kommer läggas
till i din Drive när den blir klar."
importRequested: "Du har begärt en import. Detta kan ta lite tid." importRequested: "Du har begärt en import. Detta kan ta lite tid."
lists: "Listor" lists: "Listor"
noLists: "Du har inga listor" noLists: "Du har inga listor"
@ -80,9 +86,11 @@ error: "Fel!"
somethingHappened: "Ett fel har uppstått" somethingHappened: "Ett fel har uppstått"
retry: "Försök igen" retry: "Försök igen"
pageLoadError: "Det gick inte att ladda sidan." pageLoadError: "Det gick inte att ladda sidan."
pageLoadErrorDescription: "Detta händer oftast p.g.a. nätverksfel eller din webbläsarcache. Försök tömma din cache och testa sedan igen efter en liten stund." pageLoadErrorDescription: "Detta händer oftast p.g.a. nätverksfel eller din webbläsarcache.
Försök tömma din cache och testa sedan igen efter en liten stund."
serverIsDead: "Servern svarar inte. Vänta ett litet tag och försök igen." serverIsDead: "Servern svarar inte. Vänta ett litet tag och försök igen."
youShouldUpgradeClient: "För att kunna se denna sida, vänligen ladda om sidan för att uppdatera din klient." youShouldUpgradeClient: "För att kunna se denna sida, vänligen ladda om sidan för
att uppdatera din klient."
enterListName: "Skriv ett namn till listan" enterListName: "Skriv ett namn till listan"
privacy: "Integritet" privacy: "Integritet"
makeFollowManuallyApprove: "Följarförfrågningar kräver manuellt godkännande" makeFollowManuallyApprove: "Följarförfrågningar kräver manuellt godkännande"
@ -107,7 +115,8 @@ sensitive: "Känsligt innehåll"
add: "Lägg till" add: "Lägg till"
reaction: "Reaktioner" reaction: "Reaktioner"
reactionSetting: "Reaktioner som ska visas i reaktionsväljaren" reactionSetting: "Reaktioner som ska visas i reaktionsväljaren"
reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"+\" för att lägga till." reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"\
+\" för att lägga till."
rememberNoteVisibility: "Komihåg notvisningsinställningar" rememberNoteVisibility: "Komihåg notvisningsinställningar"
attachCancel: "Ta bort bilaga" attachCancel: "Ta bort bilaga"
markAsSensitive: "Markera som känsligt innehåll" markAsSensitive: "Markera som känsligt innehåll"
@ -136,13 +145,20 @@ emojiUrl: "Emoji länk"
addEmoji: "Lägg till emoji" addEmoji: "Lägg till emoji"
settingGuide: "Rekommenderade inställningar" settingGuide: "Rekommenderade inställningar"
cacheRemoteFiles: "Spara externa filer till cachen" cacheRemoteFiles: "Spara externa filer till cachen"
cacheRemoteFilesDescription: "När denna inställning är avstängd kommer externa filer laddas direkt från den externa instansen. Genom att stänga av detta kommer lagringsutrymme minska i användning men kommer öka datatrafiken eftersom miniatyrer inte kommer genereras." cacheRemoteFilesDescription: "När denna inställning är avstängd kommer externa filer
laddas direkt från den externa instansen. Genom att stänga av detta kommer lagringsutrymme
minska i användning men kommer öka datatrafiken eftersom miniatyrer inte kommer
genereras."
flagAsBot: "Markera konto som bot" flagAsBot: "Markera konto som bot"
flagAsBotDescription: "Aktivera det här alternativet om kontot är kontrollerat av ett program. Om aktiverat kommer den fungera som en flagga för andra utvecklare för att hindra ändlösa kedjor med andra bottar. Det kommer också få Misskeys interna system att hantera kontot som en bot." flagAsBotDescription: "Aktivera det här alternativet om kontot är kontrollerat av
ett program. Om aktiverat kommer den fungera som en flagga för andra utvecklare
för att hindra ändlösa kedjor med andra bottar. Det kommer också få Firefish interna
system att hantera kontot som en bot."
flagAsCat: "Markera konto som katt" flagAsCat: "Markera konto som katt"
flagAsCatDescription: "Aktivera denna inställning för att markera kontot som en katt." flagAsCatDescription: "Aktivera denna inställning för att markera kontot som en katt."
flagShowTimelineReplies: "Visa svar i tidslinje" flagShowTimelineReplies: "Visa svar i tidslinje"
flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter i tidslinjen om påslagen." flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter
i tidslinjen om påslagen."
autoAcceptFollowed: "Godkänn följarförfrågningar från användare du följer automatiskt" autoAcceptFollowed: "Godkänn följarförfrågningar från användare du följer automatiskt"
addAccount: "Lägg till konto" addAccount: "Lägg till konto"
loginFailed: "Inloggningen misslyckades" loginFailed: "Inloggningen misslyckades"
@ -155,7 +171,11 @@ searchWith: "Sök: {q}"
youHaveNoLists: "Du har inga listor" youHaveNoLists: "Du har inga listor"
followConfirm: "Är du säker att du vill följa {name}?" followConfirm: "Är du säker att du vill följa {name}?"
proxyAccount: "Proxykonto" proxyAccount: "Proxykonto"
proxyAccountDescription: "Ett proxykonto är ett konto som agerar som en extern följare för användare under vissa villkor. Till exempel, när en användare lägger till en extern användare till en lista så kommer den externa användarens aktivitet inte levireras till instansen om ingen lokal användare följer det kontot, så proxykontot används istället." proxyAccountDescription: "Ett proxykonto är ett konto som agerar som en extern följare
för användare under vissa villkor. Till exempel, när en användare lägger till en
extern användare till en lista så kommer den externa användarens aktivitet inte
levereras till instansen om ingen lokal användare följer det kontot, så proxykontot
används istället."
host: "Värd" host: "Värd"
selectUser: "Välj användare" selectUser: "Välj användare"
recipient: "Mottagare" recipient: "Mottagare"
@ -185,11 +205,13 @@ instanceInfo: "Instansinformation"
statistics: "Statistik" statistics: "Statistik"
clearQueue: "Rensa kö" clearQueue: "Rensa kö"
clearQueueConfirmTitle: "Är du säker att du vill rensa kön?" clearQueueConfirmTitle: "Är du säker att du vill rensa kön?"
clearQueueConfirmText: "Om någon not är olevererad i kön kommer den inte federeras. Vanligtvis behövs inte denna handling." clearQueueConfirmText: "Om någon not är olevererad i kön kommer den inte federeras.
Vanligtvis behövs inte denna handling."
clearCachedFiles: "Rensa cache" clearCachedFiles: "Rensa cache"
clearCachedFilesConfirm: "Är du säker att du vill radera alla cachade externa filer?" clearCachedFilesConfirm: "Är du säker att du vill radera alla cachade externa filer?"
blockedInstances: "Blockerade instanser" blockedInstances: "Blockerade instanser"
blockedInstancesDescription: "Lista adressnamn av instanser som du vill blockera. Listade instanser kommer inte längre kommunicera med denna instans." blockedInstancesDescription: "Lista adressnamn av instanser som du vill blockera.
Listade instanser kommer inte längre kommunicera med denna instans."
muteAndBlock: "Tystningar och blockeringar" muteAndBlock: "Tystningar och blockeringar"
mutedUsers: "Tystade användare" mutedUsers: "Tystade användare"
blockedUsers: "Blockerade användare" blockedUsers: "Blockerade användare"
@ -318,3 +340,444 @@ _deck:
tl: "Tidslinje" tl: "Tidslinje"
list: "Listor" list: "Listor"
mentions: "Omnämningar" mentions: "Omnämningar"
removeReaction: Radera från dina reaktioner
renoteMute: Tysta boostningar
renoteUnmute: Ljuda boostningar
flagSpeakAsCat: Prata som en katt
noInstances: Det finns inga servrar
keepOriginalUploadingDescription: Sparar originalen av uppladdade bilder som de är.
Om avstängt, kommer en ny version genererad vid uppladdning.
fromUrl: från URL
explore: Utforska
messageRead: Läs
noMoreHistory: Det finns ingen framtida historik
startMessaging: Starta en ny chatt
agreeTo: Jag accepterar till {0}
drive: Enhet
fileName: Filnamn
inputNewDescription: Ange en ny benämning
inputNewFolderName: Ange ett nytt mappnamn
hasChildFilesOrFolders: Eftersom denna mappen inte är tom, kan den inte bli raderad.
copyUrl: Kopiera URL
watch: Bevaka
thisMonth: Månad
today: Idag
dayX: '{day}'
monthX: '{month}'
yearX: '{year}'
connectService: Anslut
disconnectService: Bortkoppla
enableLocalTimeline: Anslut till lokal tidslinje
invite: Bjud in
driveCapacityPerLocalAccount: Enhetens kapacitet per lokal användare
inMb: I megabyte
pinnedPagesDescription: Ange sökväg till sidor som du vill fästa på topp av sidorna
på denna server, separerade av sidbrytningar.
hcaptcha: hCaptcha
antennasDesc: "Antenner visar nya poster som matchar de kriterier som du anger\nDe
kan nås från sidlinje sidan."
unsilenceConfirm: Är du säker på att du vill ångra tystningen av denna användare?
securityKey: Säkerhetsnyckel
markAsReadAllNotifications: Markera alla notifikationer som lästa
quoteQuestion: Lägg till som en citering?
noMessagesYet: Inga meddelande ännu
newMessageExists: Det finns inga nya meddelanden
weakPassword: Svagt lösenord
normalPassword: Dugligt lösenord
strongPassword: Starkt lösenord
passwordMatched: Matchar
passwordNotMatched: Matchar inte
signinWith: Logga in med {x}
disableAnimatedMfm: Inaktivera MFM med animering
noFollowRequests: Du har inte några väntande följbekräftelser
clientSettings: Klientinställningar
promote: Befordra
numberOfDays: Antalet dagar
objectStorageUseSSL: Använd SSL
objectStorageUseSSLDesc: Stäng av detta om du inte kommer använda HTTPS för API anslutningar.
recentUsed: Senast använd
nothing: Det finns inget att visa här
lastUsedDate: Senaste använd vid
state: Stat
disablePagesScript: Inaktivera AiScript på sidor
expandOnNoteClick: Öppna post vid klick
updateRemoteUser: Uppdatera fjärranvändarinformation
deleteAllFiles: Radera alla filer
userSuspended: Denna användare har blivit avstängd.
inboxUrl: Inbox URL
serviceworkerInfo: Måste vara aktiverat för push-notifikationer.
deletedNote: Radera poster
expandTweet: Expandera tweet
themeEditor: Thema redigerare
describeFile: Lägg till bildtext
enterFileDescription: Beskriv bildtext
manage: Hantering
useBlurEffectForModal: Använd oskärpa effekter för modeller
width: Bredd
small: Liten
disableAll: Inaktivera alla
tokenRequested: Tillåt tillgång till konto
channelFederationWarn: Kanalerna federeras inte till andra servrar ännu
manageGroups: Hantera grupper
tos: Användarvillkor
start: Starta
home: Hem
activity: Aktivitet
themeForDarkMode: Teman som används i Mörkt läge
maintainerEmail: Underhållare e-post
enableHcaptcha: Aktivera hCaptcha
hcaptchaSiteKey: Sidnyckel
recaptchaSecretKey: Hemlig nyckel
withFiles: Inkludera filer
popularTags: Populära taggar
notFound: Kan inte hittas
uploadFolder: Standardmappar för uppladdning
retype: Ange igen
next: Nästa
checking: Kontrollerar...
or: Eller
groupInvited: Du har blivit inbjuden till en grupp
docSource: Källa till detta dokument
createAccount: Skapa konto
total: Total
objectStorage: Objektlagring
objectStorageRegion: Region
objectStorageUseProxy: Anslut över Proxy
objectStorageUseProxyDesc: Stäng av detta om du inte kommer använde en Proxy för API
anslutningar
sounds: Ljud
details: Detaljer
installedApps: Auktoriserade applikationer
installedDate: Auktoriserad vid
script: Skript
removeAllFollowingDescription: Körning av detta kommer sluta följa alla konton från
{host}. Vänligen kör detta om servern t.ex. inte längre existerar.
userSilenced: Denna användare har blivit tystnad.
visibility: Synlighet
delayed: Fördröjning
useGlobalSetting: Använd globala inställningar
selectInstance: Välj en server
instanceName: Servernamn
searchPlaceholder: Sök Firefish
noThankYou: Nej tack
jumpToPrevious: Hoppa till föregående
listsDesc: Listor låter dig skapa en tidlinje med specificerade användare. Dessa kan
sedan bli nådda från tidlinje sidan.
flagSpeakAsCatDescription: Dina poster kommer ge en nyans som om du är i katt-läge
silencedInstances: Tystade instanser
hiddenTags: Dolda Hashtaggar
silenced: Tystad
nUsersRead: Läs med {n}
themeForLightMode: Teman som används i Ljust Läge
light: Ljus
recaptcha: reCAPTCHA
enableRecaptcha: Aktivera reCAPTCHA
help: Hjälp
groupName: Gruppnamn
name: Namn
resetPassword: Återställ lösenord
newPasswordIs: Ditt nya lösenord är "{password}"
cacheClear: Rensa cache
markAsReadAllTalkMessages: Markera alla meddelanden som lästa
uiLanguage: Användargränssnitt
disableDrawer: Använd inte byrålådor-stil menyer
tapSecurityKey: Klicka in din säkerhetsnyckel.
language: Språk
objectStorageRegionDesc: Ange en region som 'xx-east-1'. Om du anger din tjänst som
inte skiljer mellan regioner, lämna detta blankt eller ange som 'us-east-1'.
objectStorageSetPublicRead: Ställ in "public-read" vid uppladdningar
scratchpadDescription: Scratchpaden tillgängliggör en miljö för AiScript experiment.
Du kan skriva, köra och checka ut resultaten från den när du interagerar med Firefish.
yourAccountSuspendedDescription: Detta kontot har blivit avstängt eftersom det bröt
mot serverns användaravtal eller liknande. Vänligen kontakta administratörer om
du vill veta mer detaljerade anledningar. Vänligen skapa inte ett nytt konto.
divider: Fördelare
addItem: Lägg till artikel
poll: Opinionsundersökning
useCw: Dölj innehåll
enablePlayer: Öppna videospelare
disablePlayer: Stäng videospelare
description: Beskrivning
author: Författare
accessibility: Tillgänglighet
useObjectStorage: Använd objektlagring
objectStorageBaseUrl: Grundläggande URL
deleteAllFilesConfirm: Är du säker på att du vill radera alla filer?
menu: Meny
regexpError: Regular expression fel
wordMute: Ord tystning
regexpErrorDescription: 'Ett fel skedde vid regular expression på linje {line} av
dina {tab} ord tystningar:'
instanceMute: Server tystningar
userSaysSomething: '{name} sa något'
userSaysSomethingReason: '{name} sade {reason}'
makeActive: Aktivera
notificationSettingDesc: Välj typerna av notifieringsinställningarna att visa.
fromDrive: Från Enhet
uploadFromUrlMayTakeTime: Det kan ta en tid innan uppladdningen är slutförd.
uploadFromUrlRequested: Uppladdning som förfrågat
unwatch: Sluta bevaka
enableRecommendedTimeline: Aktivera rekommenderad tidslinje
showLess: Stäng
regenerate: Återskapa
promotion: Befordrad
doNothing: Ignorera
thisYear: År
manageAntennas: Hantera Antenner
deleted: Raderad
editNote: Redigera anteckning
edited: Redigerad vid {date} {time}
syncDeviceDarkMode: Synkronisera mörkt läge med dina enhetsinställningar
dayOverDayChanges: Ändringar från igår
selectChannel: Välj en kanal
lightThemes: Ljusa teman
dark: Mörk
inputNewFileName: Ange ett nytt filnamn
whenServerDisconnected: När den tappar uppkopplingen till servern
disconnectedFromServer: Anslutning till server har tappats
iconUrl: Ikon URL
bannerUrl: Banner bild URL
hcaptchaSecretKey: Hemlig nyckel
onlyOneFileCanBeAttached: Du kan endast ange en bilaga till ett meddelande
signinFailed: Kan inte logga in. Ange korrekt användarnamn och lösenord.
notesAndReplies: Poster och svar
token: Token
twoStepAuthentication: Två-faktor-autentisering
antennaInstancesDescription: Lista en servervärd per linje
moderator: Moderator
moderation: Moderering
chooseEmoji: Välj en emoji
unableToProcess: Operationen kunde inte slutföras
output: Output
expandOnNoteClickDesc: Om inaktiverad, kan du öppna posten vid högerklicksmenyn eller
genom att klicka på tidsstämpeln.
aboutFirefish: Om Firefish
older: Äldre
hiddenTagsDescription: 'Lista hashtaggar (utan # symbolen) för de hashtaggar du vill
dölja från trendande och utforska. Dolda hashtaggar kan fortfarande hittas via andra
funktioner.'
darkThemes: Mörka teman
images: Bilder
selectFiles: Välj filer
renameFile: Byt namn på fil
folderName: Filnamn
createFolder: Skapa en mapp
renameFolder: Byt namn på denna mapp
emptyDrive: Din enhet är tom
emptyFolder: Denna mapp är tom
unableToDelete: Kan inte radera
rename: Byt namn
deleteFolder: Radera denna mapp
addFile: Lägg till en fil
banner: Banner
reload: Uppdatera
reloadConfirm: Vill du uppdatera din tidslinje?
accept: Acceptera
tosUrl: Användarvillkor URL
pages: Sidor
disablingTimelinesInfo: Administratörer och moderatorer har alltid tillgång till alla
tidslinjer, även om de inte är aktiverade
registration: Registrera
enableRegistration: Aktivera ny användarregistrering
driveCapacityPerRemoteAccount: Enhetskapacitet per extern användare
enableGlobalTimeline: Aktivera global tidslinje
antennaSource: Antennkällor
notifyAntenna: Informera vid nya poster
withFileAntenna: Ange poster med filer
exploreFediverse: Upptäck ett fidiverse
markAsReadAllUnreadNotes: Markera alla poster som lästa
inputMessageHere: Ange meddelande här
members: Medlemmar
available: Tillgänglig
usernameInvalidFormat: Du kan ange versaler eller gemener, nummer och underskrifter.
tooLong: För lång
joinOrCreateGroup: Bli inbjuden till en grupp eller skapa en egen.
doing: Bearbetar...
youHaveNoGroups: Du har inga grupper
aboutX: Om {x}
existingAccount: Existerande konto
install: Installera
uninstall: Avinstallera
sort: Sortera
ascendingOrder: Stigande
leaveConfirm: Ändringar har inte sparats. Vill du kasta dem?
plugins: Plugin
preferencesBackups: Backup av inställningar
enableEmail: Aktivera epost distribuering
smtpSecure: Använd strikt SSL/TLS vid SMTP anslutningar
smtpSecureInfo: Stäng av detta vid användning av STARTTLS
testEmail: Test av epost leverans
userSaysSomethingReasonReply: '{name} svarade på en post innehållande {reason}'
userSaysSomethingReasonRenote: '{name} boosted en post innehållande {reason}'
userSaysSomethingReasonQuote: '{name} citerade en post innehållande {reason}'
logs: Loggar
database: Databas
channel: Kanaler
create: Skapa
notificationSetting: Notisinställningar
objectStorageS3ForcePathStyle: Använd filmapp-baserade slutpunkter för URL:er
newNoteRecived: Det finns nya poster
deck: Däck
undeck: Lämna däck
large: Stor
newer: Nyare
silenceThisInstance: Tysta denna instans
silencedInstancesDescription: Lista värdnamn på server som du vill tysta. Konton på
listade instanser behandlas som om de är "Tystade", de kan endast göra följbekräftelser
och kan inte nämna lokala konton som inte följs. Detta påverkar inte blockerade
instanser.
uploadFromUrl: Uppladdad från URL
birthday: Födelsedag
theme: Teman
avatar: Avatar
uploadFromUrlDescription: URL av filen som du vill ladda upp
remoteUserCaution: Informationen från en avlägsen användare kan inte slutföras
yearsOld: '{age} år gammal'
location: Plats
selectFile: Välj en fil
registeredDate: Registrerade på
selectFolder: Välj en mapp
circularReferenceFolder: Destinationsmappen är en undermapp till mappen som du försöker
flytta.
instanceDescription: Serverbeskrivning
selectFolders: Välj mappar
reject: Neka
normal: Normal
withReplies: Inkludera svar
registerSecurityKey: Registrera en säkerhetsnyckel
enableServiceworker: Aktivera push-notifikationer för din webbläsare
maintainerName: Underhållare
pinnedPages: Fästa sidor
basicInfo: Grundläggande info
pinnedUsers: Pinnade användare
backgroundImageUrl: Bakgrundsbild URL
pinnedUsersDescription: Lista användarnamn separerade med radbrytning att bli fäst
i "Utforska" fliken
recaptchaSiteKey: Sid nyckel
pinnedClipId: ID av klippet du vill fästa
avoidMultiCaptchaConfirm: Användning av flera Captcha system kan orsaka problem. Vill
du inaktivera andra Captcha system som är aktiverade i nuläget? Om du vill att de
ska fortsätta vara inaktiverade, tryck ångra.
antennas: Antenner
antennaKeywords: Nyckelord att följa
antennaExcludeKeywords: Nyckelord att exkludera
antennaKeywordsDescription: Separera med mellanrum för ett OCH villkor eller med sidbrytning
för ett ELLER villkor.
caseSensitive: Skiftlägeskänsliga
recentlyDiscoveredUsers: Senaste upptäckta användare
antennaUsersDescription: Lista ett användarnamn per linje
silenceConfirm: Är du säker att du vill tysta denna användare?
connectedTo: Följande konton är anslutna
unsilence: Ångra tystning
recentlyRegisteredUsers: Senaste användare
exploreUsersCount: Det finns {count} användare
silence: Tysta
popularUsers: Populära användare
recentlyUpdatedUsers: Senaste aktiva användare
administrator: Administratör
passwordLessLogin: Lösenordslös-inloggning
about: Om
nUsersMentioned: Benämnd av {n} användare
securityKeyName: Nyckelnamn
share: Dela
reduceUiAnimation: Minska UI animeringar
notFoundDescription: Ingen sida som korresponderar med denna URL kunde hittas
close: Stäng
group: Grupp
transfer: Överför
category: Kategori
createGroup: Skapa en grupp
ownedGroups: Ägda grupper
invites: Inbjudningar
groups: Grupper
title: Titel
joinedGroups: Deltagande grupper
tooShort: För kort
signinHistory: Inloggningshistorik
enable: Aktivera
text: Text
inviteToGroup: Bjud in till grupp
quoteAttached: Citera
messagingWithUser: Privatchatt
messagingWithGroup: Gruppchatt
invitationCode: Inbjudningskod
noteOf: Postad av {user}
unavailable: Inte tillgänglig
invitations: Inbjudningar
useOsNativeEmojis: Använd operativsystemets lokala emojis
noHistory: Historik saknas
tags: Taggar
openImageInNewTab: Öppna bilder i ny flik
fontSize: Teckenstorlek
dashboard: Användargränssnitt
weekOverWeekChanges: Ändringar till föregående vecka
appearance: Utseende
accountSettings: Kontoinställningar
objectStorageBaseUrlDesc: "Denna URL används som referens. Ange URL för din CDN eller
Proxy om du använder någon.\nFör S3 använd 'https://<bucket>.s3.amazonaws.com' och
för GCS eller likvärdig tjänst använd 'https://storage.googleapis.com/<bucket>',
m.m."
objectStorageEndpointDesc: Lämna denna tom om du använder AWS S3, annars ange slutpunkten
som '<host>' eller '<host>:<port>', beroende på tjänsten som du använder.
objectStorageS3ForcePathStyleDesc: Aktivera detta vid konstruering av slutpunkter
i URL som är i format för 's3.amazonaws.com/<bucket>/' vid '<bucket>.s3.amazonaws.com'.
popout: Poppa-ut
showFixedPostForm: Visa postens form vid toppen av tidslinjen
listen: Lystna
none: Inga
showInPage: Visa på sida
masterVolume: Huvudvolym
volume: Volym
descendingOrder: Nedåtgående
scratchpad: Scratchpad
yourAccountSuspendedTitle: Detta kontot har blivit avstängt
email: Epost
relays: Reläer
invisibleNote: Osynliga poster
addRelay: Lägg till relä
enableInfiniteScroll: Ladda fler automatiskt
edit: Redigera
useFullReactionPicker: Använd full-storlek för reaktionsväljaren
notificationType: Notifieringstyp
pluginTokenRequestedDescription: Detta plugin kommer använda tillgänglighet inställd
här.
generateAccessToken: Generera tillgångstoken
permission: Tillstånd
smtpConfig: SMPT server inställningar
emailServer: Epost server
emailConfigInfo: Används för att bekräfta din epost vid registrering om du glömmer
till lösenord
emptyToDisableSmtpAuth: Lämna användarnamn och lösenord tomt vid inaktivering av SMTP
verifiering
emailAddress: Epost adress
smtpPort: Port
metrics: Metrik
display: Visa
copy: Kopiera
overview: Översikt
lastUsed: Senast använd
unregister: Avregistrera
addInstance: Lägg till server
objectStorageBucketDesc: Vänligen ange hink-namn som du använder som din leverantör.
accountMoved: Användaren har flyttat till ett nytt konto
hideThisNote: Dölj denna post
showFeaturedNotesInTimeline: Visa presenterade poster i tidslinjen
objectStorageBucket: Hink
objectStoragePrefix: Prefix
local: Lokal
remote: Avlägsen
objectStoragePrefixDesc: Filer som lagras under mappar kommer använda detta prefix.
objectStorageEndpoint: Slutpunkt
addedRelays: Tillagda reläer
height: Höjd
enableAll: Tillåt alla
cw: Innehållsvarning
enableEmojiReactions: Aktivera emoji reaktioner
showEmojisInReactionNotifications: Visa emojis i reaktion notifikationer
signinRequired: Vänligen registrera eller logga in innan du fortsätter
serverLogs: Serverloggar
deleteAll: Radera alla
removeAllFollowing: Sluta följa alla följda användare
medium: Mellan
integration: Integreringar
xl: XL

View file

@ -1,7 +1,7 @@
--- ---
_lang_: "ภาษาไทย" _lang_: "ภาษาไทย"
headlineMisskey: "เชื่อมต่อเครือข่ายโดยโน้ต" headlineFirefish: "เชื่อมต่อเครือข่ายโดยโน้ต"
introMisskey: "ยินดีต้อนรับจ้าาา! Firefish เป็นบริการไมโครบล็อกโอเพ่นซอร์ส แบบการกระจายอำนาจ\nสร้าง \"โน้ต\" เพื่อแบ่งปันความคิดของคุณกับทุกคนรอบตัวคุณกันเถอะ 📡\nด้วยการ \"รีแอคชั่นผู้คน\" คุณยังสามารถแสดงความรู้สึกของคุณเกี่ยวกับบันทึกของทุกคนได้อย่างรวดเร็ว 👍\n\nแล้วมาท่องสำรวจโลกใบใหม่กันเถอะ! 🚀" introFirefish: "ยินดีต้อนรับจ้าาา! Firefish เป็นบริการไมโครบล็อกโอเพ่นซอร์ส แบบการกระจายอำนาจ\nสร้าง \"โน้ต\" เพื่อแบ่งปันความคิดของคุณกับทุกคนรอบตัวคุณกันเถอะ 📡\nด้วยการ \"รีแอคชั่นผู้คน\" คุณยังสามารถแสดงความรู้สึกของคุณเกี่ยวกับบันทึกของทุกคนได้อย่างรวดเร็ว 👍\n\nแล้วมาท่องสำรวจโลกใบใหม่กันเถอะ! 🚀"
monthAndDay: "{เดือน}/{วัน}" monthAndDay: "{เดือน}/{วัน}"
search: "ค้นหา" search: "ค้นหา"
notifications: "การเเจ้งเตือน" notifications: "การเเจ้งเตือน"

View file

@ -1,6 +1,6 @@
_lang_: "Türkçe" _lang_: "Türkçe"
introMisskey: "Hoş geldin! Firefish, sonsuza kadar ücretsiz olan, açık kaynaklı, merkezi introFirefish: "Hoş geldin! Firefish, sonsuza kadar ücretsiz olan, açık kaynaklı,
olmayan bir sosyal medya platformudur! 🚀" merkezi olmayan bir sosyal medya platformudur! 🚀"
monthAndDay: "{month}Ay {day}Gün" monthAndDay: "{month}Ay {day}Gün"
search: "Arama" search: "Arama"
notifications: "Bildirimler" notifications: "Bildirimler"
@ -182,7 +182,9 @@ _profile:
gösterecektir. gösterecektir.
youCanIncludeHashtags: Hakkımdan'da etiket kullanabilirsin. youCanIncludeHashtags: Hakkımdan'da etiket kullanabilirsin.
description: Hakkımda description: Hakkımda
metadataDescription: 'Bunları kullanarak profilinizde ek bilgi alanları görüntüleyebilirsiniz. Profilinizdeki bağlantıyı doğrulamak için {rel} ile bir {a} etiketi veya {l} etiketi ekleyebilirsiniz!' metadataDescription: 'Bunları kullanarak profilinizde ek bilgi alanları görüntüleyebilirsiniz.
Profilinizdeki bağlantıyı doğrulamak için {rel} ile bir {a} etiketi veya {l} etiketi
ekleyebilirsiniz!'
metadata: Ek Bilgi metadata: Ek Bilgi
metadataContent: İçerik metadataContent: İçerik
metadataLabel: Etiket metadataLabel: Etiket
@ -231,8 +233,8 @@ cantFavorite: Favorilere eklenemedi.
edited: '{date} tarihinde ve {time} vaktinde düzenlendi' edited: '{date} tarihinde ve {time} vaktinde düzenlendi'
loggingIn: Giriş Yapılıyor loggingIn: Giriş Yapılıyor
save: Kaydet save: Kaydet
headlineMisskey: Sonsuza kadar ücretsiz, açık kaynak kodlu, merkeziyetsiz sosyal medya headlineFirefish: Sonsuza kadar ücretsiz, açık kaynak kodlu, merkeziyetsiz sosyal
platformu! 🚀 medya platformu! 🚀
loadMore: Daha fazla yükle loadMore: Daha fazla yükle
instance: Sunucu instance: Sunucu
fetchingAsApObject: Fediverse'den çekiliyor fetchingAsApObject: Fediverse'den çekiliyor
@ -286,7 +288,7 @@ notifyAntenna: Yeni gönderileribildir
recentlyUpdatedUsers: En son aktif kullanıcılar recentlyUpdatedUsers: En son aktif kullanıcılar
about: Hakkında about: Hakkında
twoStepAuthentication: İki-adımlı doğrulama twoStepAuthentication: İki-adımlı doğrulama
securityKeyName: Key name securityKeyName: Anahtar ismi
help: Yardım help: Yardım
inputMessageHere: Mesajını buraya gir inputMessageHere: Mesajını buraya gir
ownedGroups: Gruplarım ownedGroups: Gruplarım
@ -505,7 +507,7 @@ normal: Normal
thisMonth: Ay thisMonth: Ay
enableRecaptcha: reCAPTCHA'yı Aktif Et enableRecaptcha: reCAPTCHA'yı Aktif Et
antennas: Antenler antennas: Antenler
recaptchaSiteKey: Site key recaptchaSiteKey: İnternet sitesi anahtarı
withFileAntenna: Sadece dosyalı gönderiler withFileAntenna: Sadece dosyalı gönderiler
antennaInstancesDescription: Sunucu başı bir satır kullanın antennaInstancesDescription: Sunucu başı bir satır kullanın
moderator: Moderatör moderator: Moderatör
@ -664,7 +666,7 @@ withFiles: Dosya içeren
recentlyRegisteredUsers: Yeni katılmış kullanıcılar recentlyRegisteredUsers: Yeni katılmış kullanıcılar
recentlyDiscoveredUsers: Yeni keşfedilmiş kullanıcılar recentlyDiscoveredUsers: Yeni keşfedilmiş kullanıcılar
nUsersMentioned: '{n} kullanıcı tarafından bahsedildi' nUsersMentioned: '{n} kullanıcı tarafından bahsedildi'
securityKey: Security key securityKey: Güvenlik Anahtarı
title: Başlık title: Başlık
total: Toplam total: Toplam
sounds: Sesler sounds: Sesler
@ -723,7 +725,7 @@ emojis: Emoji
flagAsCat: Kedi misin? 😺 flagAsCat: Kedi misin? 😺
selectChannel: Kanal seç selectChannel: Kanal seç
emojiName: Emoji adı emojiName: Emoji adı
showOnRemote: Uzak sunucuda görüntüle showOnRemote: Orijinal sayfayı
flagSpeakAsCatDescription: Gönderileriniz kedi modundayken nyanifiye edilecek flagSpeakAsCatDescription: Gönderileriniz kedi modundayken nyanifiye edilecek
flagShowTimelineReplies: Yanıtları zaman çizelgesinde göster flagShowTimelineReplies: Yanıtları zaman çizelgesinde göster
silenceThisInstance: Bu sunucuyu sustur silenceThisInstance: Bu sunucuyu sustur
@ -749,7 +751,7 @@ upload: Yükle
fromUrl: URL'den fromUrl: URL'den
agreeTo: '{0} kabul ediyorum' agreeTo: '{0} kabul ediyorum'
tos: Kullanım Koşulları tos: Kullanım Koşulları
drive: Drive drive: Bulut Depolama
selectFolder: Klasör seç selectFolder: Klasör seç
inputNewFileName: Yeni dosya ismi gir inputNewFileName: Yeni dosya ismi gir
whenServerDisconnected: Sunucuyla bağlantı kesildiğinde whenServerDisconnected: Sunucuyla bağlantı kesildiğinde
@ -763,8 +765,8 @@ connectService: Bağlan
registration: Kayıt registration: Kayıt
hcaptcha: hCaptcha hcaptcha: hCaptcha
pinnedNotes: Sabitlenmiş gönderiler pinnedNotes: Sabitlenmiş gönderiler
hcaptchaSiteKey: Site key hcaptchaSiteKey: Site anahtarı
hcaptchaSecretKey: Secret key hcaptchaSecretKey: Gizli Anahtar
antennaSource: Anten kaynağı antennaSource: Anten kaynağı
antennaKeywords: Dinlenecek anahtar kelimeler antennaKeywords: Dinlenecek anahtar kelimeler
antennaExcludeKeywords: Hariç tutulacak anahtar kelimeler antennaExcludeKeywords: Hariç tutulacak anahtar kelimeler
@ -892,7 +894,7 @@ bannerUrl: Afiş resmi URL
backgroundImageUrl: Arkaplan URL'si backgroundImageUrl: Arkaplan URL'si
recaptcha: reCAPTCHA recaptcha: reCAPTCHA
iconUrl: Ikon URL iconUrl: Ikon URL
recaptchaSecretKey: Secret key recaptchaSecretKey: Gizli anahtar
avoidMultiCaptchaConfirm: Birden fazla Captcha sistemi kullanmak aralarında etkileşime avoidMultiCaptchaConfirm: Birden fazla Captcha sistemi kullanmak aralarında etkileşime
neden olabilir. Şu anda etkin olan diğer Captcha sistemlerini devre dışı bırakmak neden olabilir. Şu anda etkin olan diğer Captcha sistemlerini devre dışı bırakmak
ister misiniz? Etkin kalmalarını istiyorsanız, iptal düğmesine basın. ister misiniz? Etkin kalmalarını istiyorsanız, iptal düğmesine basın.
@ -1013,7 +1015,7 @@ failedToFetchAccountInformation: Hesap bilgileri getirilemedi
rateLimitExceeded: Hız limiti aşıldı rateLimitExceeded: Hız limiti aşıldı
renotedBy: '{user} Yükseltti' renotedBy: '{user} Yükseltti'
host: Host host: Host
objectStorage: Object Storage objectStorage: Nesne Depolaması
objectStorageUseSSLDesc: API bağlantıları için HTTPS kullanmayacaksanız bunu kapatın objectStorageUseSSLDesc: API bağlantıları için HTTPS kullanmayacaksanız bunu kapatın
objectStorageUseProxyDesc: API bağlantıları için Proxy kullanmayacaksanız bunu kapatın objectStorageUseProxyDesc: API bağlantıları için Proxy kullanmayacaksanız bunu kapatın
objectStorageSetPublicRead: Yüklendiğinde "public-read" kullan objectStorageSetPublicRead: Yüklendiğinde "public-read" kullan
@ -1219,8 +1221,8 @@ ascendingOrder: Artan
tags: Etiketler tags: Etiketler
descendingOrder: Azalan descendingOrder: Azalan
scratchpadDescription: Karalama defteri, AiScript deneyleri için bir ortam sağlar. scratchpadDescription: Karalama defteri, AiScript deneyleri için bir ortam sağlar.
İçinde Firefish ile etkileşime girerek sonuçlarını yazabilir, çalıştırabilir ve kontrol İçinde Firefish ile etkileşime girerek sonuçlarını yazabilir, çalıştırabilir ve
edebilirsiniz. kontrol edebilirsiniz.
local: Yerel local: Yerel
remote: Uzak remote: Uzak
addRelay: Röle Ekle addRelay: Röle Ekle
@ -1247,9 +1249,9 @@ desktop: Masaüstü
confirmToUnclipAlreadyClippedNote: Bu gönderi zaten "{name}" atacının bir parçası. confirmToUnclipAlreadyClippedNote: Bu gönderi zaten "{name}" atacının bir parçası.
Bunun yerine onu bu ataçtan kaldırmak istiyor musunuz? Bunun yerine onu bu ataçtan kaldırmak istiyor musunuz?
sendErrorReportsDescription: "Açıldığında, bir sorun oluştuğunda ayrıntılı hata bilgileri sendErrorReportsDescription: "Açıldığında, bir sorun oluştuğunda ayrıntılı hata bilgileri
Firefish ile paylaşılarak Firefish kalitesinin artırılmasına yardımcı olur.\nBu, işletim Firefish ile paylaşılarak Firefish kalitesinin artırılmasına yardımcı olur.\nBu,
sisteminizin sürümü, kullandığınız tarayıcı, Firefish'deki etkinliğiniz vb. bilgileri işletim sisteminizin sürümü, kullandığınız tarayıcı, Firefish'deki etkinliğiniz
içerecektir." vb. bilgileri içerecektir."
closeAccount: Hesabı kapat closeAccount: Hesabı kapat
markAllAsRead: Okunmuş olarak işaretle markAllAsRead: Okunmuş olarak işaretle
allowedInstances: Beyaz Listedeki Sunucular allowedInstances: Beyaz Listedeki Sunucular
@ -1929,7 +1931,7 @@ _preferencesBackups:
loadFile: Dosyadan yükle loadFile: Dosyadan yükle
updatedAt: 'Güncelleme tarihi: {date} {time}' updatedAt: 'Güncelleme tarihi: {date} {time}'
cannotLoad: Yüklenemedi cannotLoad: Yüklenemedi
_aboutMisskey: _aboutFirefish:
patronsList: Bağış büyüklüğüne göre değil, kronolojik olarak listelenmiştir. Adınızı patronsList: Bağış büyüklüğüne göre değil, kronolojik olarak listelenmiştir. Adınızı
buraya almak için yukarıdaki bağlantıyla bağış yapın! buraya almak için yukarıdaki bağlantıyla bağış yapın!
about: Firefish, 2022'den beri geliştirilmekte olan ThatOneCalculator tarafından about: Firefish, 2022'den beri geliştirilmekte olan ThatOneCalculator tarafından
@ -2124,3 +2126,9 @@ _ffVisibility:
followers: Takipçilere açık followers: Takipçilere açık
private: Gizli private: Gizli
public: Herkese açık public: Herkese açık
verifiedLink: Doğrulanmış bağlantı
_feeds:
copyFeed: Akışı kopyala
rss: RSS
atom: Atom
jsonFeed: JSON akışı

View file

@ -1,9 +1,9 @@
_lang_: "Українська" _lang_: "Українська"
headlineMisskey: "Мережа об'єднана записами" headlineFirefish: "Мережа об'єднана записами"
introMisskey: "Ласкаво просимо! Firefish - децентралізована служба мікроблогів з відкритим introFirefish: "Ласкаво просимо! Firefish - децентралізована служба мікроблогів з
кодом.\nСтворюйте \"нотатки\", щоб поділитися тим, що відбувається, і розповісти відкритим кодом.\nСтворюйте \"нотатки\", щоб поділитися тим, що відбувається, і
всім про себе 📡\nЗа допомогою \"реакцій\" ви також можете швидко висловити свої розповісти всім про себе 📡\nЗа допомогою \"реакцій\" ви також можете швидко висловити
почуття щодо нотаток інших 👍\nДосліджуймо новий світ! 🚀" свої почуття щодо нотаток інших 👍\nДосліджуймо новий світ! 🚀"
monthAndDay: "{month}/{day}" monthAndDay: "{month}/{day}"
search: "Пошук" search: "Пошук"
notifications: "Сповіщення" notifications: "Сповіщення"
@ -400,7 +400,7 @@ recentlyUpdatedUsers: "Нещодавно активні користувачі"
recentlyRegisteredUsers: "Нещодавно зареєстровані користувачі" recentlyRegisteredUsers: "Нещодавно зареєстровані користувачі"
recentlyDiscoveredUsers: "Нещодавно знайдені користувачі" recentlyDiscoveredUsers: "Нещодавно знайдені користувачі"
exploreUsersCount: "{count} користувачів" exploreUsersCount: "{count} користувачів"
exploreFediverse: "Огляд федіверсу" exploreFediverse: "Досліджуйте Fediverse"
popularTags: "Популярні теги" popularTags: "Популярні теги"
userList: "Списки" userList: "Списки"
about: "Інформація" about: "Інформація"
@ -579,7 +579,7 @@ divider: "Розділювач"
addItem: "Додати елемент" addItem: "Додати елемент"
relays: "Ретранслятори" relays: "Ретранслятори"
addRelay: "Додати ретранслятор" addRelay: "Додати ретранслятор"
inboxUrl: "Inbox URL" inboxUrl: "URL скриньки вхідних повідомлень"
addedRelays: "Додані ретранслятори" addedRelays: "Додані ретранслятори"
serviceworkerInfo: "Повинен бути ввімкнений для push-сповіщень." serviceworkerInfo: "Повинен бути ввімкнений для push-сповіщень."
deletedNote: "Видалений запис" deletedNote: "Видалений запис"
@ -693,8 +693,8 @@ createNew: "Створити новий"
optional: "Необов'язково" optional: "Необов'язково"
createNewClip: "Створити підбірку" createNewClip: "Створити підбірку"
public: "Публічний" public: "Публічний"
i18nInfo: "Firefish перекладається на різні мови волонтерами. Ви можете допомогти за i18nInfo: "Firefish перекладається на різні мови волонтерами. Ви можете допомогти
посиланням: {link}." за посиланням: {link}."
manageAccessTokens: "Керування токенами доступу" manageAccessTokens: "Керування токенами доступу"
accountInfo: "Інформація про акаунт" accountInfo: "Інформація про акаунт"
notesCount: "Кількість записів" notesCount: "Кількість записів"
@ -808,7 +808,7 @@ _ad:
back: "Назад" back: "Назад"
reduceFrequencyOfThisAd: Менше показувати цю рекламу reduceFrequencyOfThisAd: Менше показувати цю рекламу
_gallery: _gallery:
unlike: "Не вподобати" unlike: "Видалити вподобайку"
liked: Вподобані записи liked: Вподобані записи
like: Подобається like: Подобається
my: Моя галерея my: Моя галерея
@ -823,9 +823,9 @@ _registry:
domain: "Домен" domain: "Домен"
createKey: "Створити ключ" createKey: "Створити ключ"
scope: Область scope: Область
_aboutMisskey: _aboutFirefish:
about: "Misskey - це програмне забезпечення з відкритим кодом, яке розробляє syuilo about: "Firefish - це форк Misskey з відкритим кодом, яке розробляє ThatOneCalculator
з 2014 року." з 2022 року."
contributors: "Головні помічники" contributors: "Головні помічники"
allContributors: "Всі помічники" allContributors: "Всі помічники"
source: "Вихідний код" source: "Вихідний код"
@ -918,7 +918,7 @@ _mfm:
scale: Масштабувати scale: Масштабувати
positionDescription: Перемістити вміст на вказане значення. positionDescription: Перемістити вміст на вказане значення.
scaleDescription: Масштабувати вміст на вказану величину. scaleDescription: Масштабувати вміст на вказану величину.
background: Фоновий колір background: Колір фону
foreground: Колір переднього плану foreground: Колір переднього плану
foregroundDescription: Змінити колір тексту на передньому плані. foregroundDescription: Змінити колір тексту на передньому плані.
bounceDescription: Надає контенту пружної анімації. bounceDescription: Надає контенту пружної анімації.
@ -1071,7 +1071,7 @@ _time:
hour: "г" hour: "г"
day: "д" day: "д"
_tutorial: _tutorial:
title: "Як використовувати Firefish" title: "Як користуватися Firefish"
step1_1: "Ласкаво просимо!" step1_1: "Ласкаво просимо!"
step1_2: "Давайте налаштуємо вас. Ви будете працювати в найкоротші терміни!" step1_2: "Давайте налаштуємо вас. Ви будете працювати в найкоротші терміни!"
step2_1: "Спочатку, будь ласка, заповніть свій профіль." step2_1: "Спочатку, будь ласка, заповніть свій профіль."
@ -1086,7 +1086,7 @@ _tutorial:
повідомлення або просте \"Hello world!\"" повідомлення або просте \"Hello world!\""
step5_1: "Стрічки, скрізь одні стрічки!" step5_1: "Стрічки, скрізь одні стрічки!"
step5_2: "У вашому сервері включені {timelines} різні стрічки." step5_2: "У вашому сервері включені {timelines} різні стрічки."
step5_3: "Головна {icon} стрічка - це стрічка, де ви можете бачити записи тих, на step5_3: "Домашня {icon} стрічка - це стрічка, де ви можете бачити записи тих, на
кого ви підписалися." кого ви підписалися."
step5_4: "Місцева {icon} стрічка - це стрічка, де ви можете бачити записи всіх інших step5_4: "Місцева {icon} стрічка - це стрічка, де ви можете бачити записи всіх інших
користувачів даного серверу." користувачів даного серверу."
@ -1096,10 +1096,10 @@ _tutorial:
step5_7: "Глобальна {icon} стрічка - це місце, де ви можете бачити записи від усіх step5_7: "Глобальна {icon} стрічка - це місце, де ви можете бачити записи від усіх
інших приєднаних серверів." інших приєднаних серверів."
step6_1: "Отже, що це за місце?" step6_1: "Отже, що це за місце?"
step6_2: "Ну, ви не просто приєдналися до Firefish. Ви увійшли в Fediverse, взаємопов'язану step6_2: "Ну, ви не просто приєдналися до Firefish. Ви увійшли до Fediverse, взаємопов'язану
мережу з тисяч серверів." мережу з тисяч серверів."
step6_3: "Кожен сервер працює по-своєму, і не на всіх серверах працює Firefish. Але step6_3: "Кожен сервер працює по-своєму, і не на всіх серверах працює Firefish.
цей працює! Це трохи складно, але ви швидко розберетеся." Але цей працює! Це трохи складно, але ви швидко розберетеся."
step6_4: "Тепер ідіть, вивчайте і розважайтеся!" step6_4: "Тепер ідіть, вивчайте і розважайтеся!"
_2fa: _2fa:
registerSecurityKey: "Зареєструвати новий ключ безпеки" registerSecurityKey: "Зареєструвати новий ключ безпеки"
@ -1340,7 +1340,7 @@ _pages:
viewSource: "Переглянути вихідний код" viewSource: "Переглянути вихідний код"
viewPage: "Переглянути свої сторінки" viewPage: "Переглянути свої сторінки"
like: "Вподобати" like: "Вподобати"
unlike: "Не вподобати" unlike: "Видалити вподобайку"
my: "Мої сторінки" my: "Мої сторінки"
liked: "Вподобані сторінки" liked: "Вподобані сторінки"
featured: "Популярні" featured: "Популярні"
@ -1705,7 +1705,7 @@ emailRequiredForSignup: Вимагати адресу електронної п
moderation: Модерація moderation: Модерація
selectInstance: Оберіть сервер selectInstance: Оберіть сервер
instanceSecurity: Безпека сервера instanceSecurity: Безпека сервера
searchPlaceholder: Шукати в Firefish searchPlaceholder: Шукати у Firefish
editNote: Відредагувати запис editNote: Відредагувати запис
enableEmojiReactions: Ввімкнути реакції емодзі enableEmojiReactions: Ввімкнути реакції емодзі
low: Низький low: Низький
@ -1870,9 +1870,9 @@ _instanceMute:
_experiments: _experiments:
enablePostImports: Ввімкнути імпорт записів enablePostImports: Ввімкнути імпорт записів
title: Експерименти title: Експерименти
postImportsCaption: Дозволяє користувачам імпортувати свої публікації з минулих postImportsCaption: Дозволяє користувачам імпортувати свої записи з минулих облікових
облікових записів Firefish, Misskey, Mastodon, Akkoma і Pleroma. Це може спричинити записів Firefish, Misskey, Mastodon, Akkoma і Pleroma. Це може спричинити зниження
зниження швидкості під час завантаження, якщо ваша черга перевантажена. швидкості під час завантаження, якщо ваша черга перевантажена.
_dialog: _dialog:
charactersExceeded: 'Перевищено максимальну кількість символів! Обмеження: {current}/{max}' charactersExceeded: 'Перевищено максимальну кількість символів! Обмеження: {current}/{max}'
charactersBelow: 'Недостатньо символів! Обмеження: {current}/{min}' charactersBelow: 'Недостатньо символів! Обмеження: {current}/{min}'
@ -2022,9 +2022,9 @@ _plugin:
installWarn: Будь ласка, не встановлюйте ненадійні плагіни. installWarn: Будь ласка, не встановлюйте ненадійні плагіни.
_skinTones: _skinTones:
yellow: Жовтий yellow: Жовтий
mediumLight: Помірно-світлий mediumLight: Середньо-світлий
medium: Помірний medium: Середній
mediumDark: Помірно-темний mediumDark: Середньо-темний
dark: Темний dark: Темний
light: Світлий light: Світлий
tenMinutes: 10 хвилин tenMinutes: 10 хвилин
@ -2133,3 +2133,9 @@ customSplashIconsDescription: URL-адреси іконок для застав
сторінку. Будь ласка, переконайтеся, що зображення знаходяться на статичній URL-адресі, сторінку. Будь ласка, переконайтеся, що зображення знаходяться на статичній URL-адресі,
бажано, щоб вони були змінені до розміру 192x192. бажано, щоб вони були змінені до розміру 192x192.
verifiedLink: Перевірене посилання verifiedLink: Перевірене посилання
_feeds:
copyFeed: Скопіювати стрічку
rss: RSS
jsonFeed: JSON-стрічка
atom: Atom
origin: Походження

View file

@ -1,7 +1,9 @@
---
_lang_: "Tiếng Việt" _lang_: "Tiếng Việt"
headlineMisskey: "Mạng xã hội liên hợp" headlineFirefish: "Mạng xã hội liên hợp"
introMisskey: "Xin chào! Firefish là một nền tảng tiểu blog phi tập trung mã nguồn mở.\nViết \"tút\" để chia sẻ những suy nghĩ của bạn 📡\nBằng \"biểu cảm\", bạn có thể bày tỏ nhanh chóng cảm xúc của bạn với các tút 👍\nHãy khám phá một thế giới mới! 🚀" introFirefish: "Xin chào! Firefish là một nền tảng tiểu blog phi tập trung mã nguồn
mở.\nViết \"tút\" để chia sẻ những suy nghĩ của bạn 📡\nBằng \"biểu cảm\", bạn có
thể bày tỏ nhanh chóng cảm xúc của bạn với các tút 👍\nHãy khám phá một thế giới
mới! 🚀"
monthAndDay: "{day} tháng {month}" monthAndDay: "{day} tháng {month}"
search: "Tìm kiếm" search: "Tìm kiếm"
notifications: "Thông báo" notifications: "Thông báo"
@ -13,7 +15,7 @@ ok: "Đồng ý"
gotIt: "Đã hiểu!" gotIt: "Đã hiểu!"
cancel: "Hủy" cancel: "Hủy"
enterUsername: "Nhập tên người dùng" enterUsername: "Nhập tên người dùng"
renotedBy: "Chia sẻ bởi {user}" renotedBy: "{user} đăng lại"
noNotes: "Chưa có tút nào." noNotes: "Chưa có tút nào."
noNotifications: "Không có thông báo" noNotifications: "Không có thông báo"
instance: "Máy chủ" instance: "Máy chủ"
@ -44,11 +46,12 @@ copyContent: "Chép nội dung"
copyLink: "Chép liên kết" copyLink: "Chép liên kết"
delete: "Xóa" delete: "Xóa"
deleteAndEdit: "Sửa" deleteAndEdit: "Sửa"
deleteAndEditConfirm: "Bạn có chắc muốn sửa tút này? Những biểu cảm, lượt trả lời và đăng lại sẽ bị mất." deleteAndEditConfirm: "Bạn có chắc muốn sửa tút này? Những biểu cảm, lượt trả lời
và đăng lại sẽ bị mất."
addToList: "Thêm vào danh sách" addToList: "Thêm vào danh sách"
sendMessage: "Gửi tin nhắn" sendMessage: "Gửi tin nhắn"
copyUsername: "Chép tên người dùng" copyUsername: "Chép tên người dùng"
searchUser: "Tìm kiếm người dùng" searchUser: "Tìm người"
reply: "Trả lời" reply: "Trả lời"
loadMore: "Tải thêm" loadMore: "Tải thêm"
showMore: "Xem thêm" showMore: "Xem thêm"
@ -64,9 +67,11 @@ import: "Nhập dữ liệu"
export: "Xuất dữ liệu" export: "Xuất dữ liệu"
files: "Tập tin" files: "Tập tin"
download: "Tải xuống" download: "Tải xuống"
driveFileDeleteConfirm: "Bạn có chắc muốn xóa tập tin \"{name}\"? Tút liên quan cũng sẽ bị xóa theo." driveFileDeleteConfirm: "Bạn có chắc muốn xóa tập tin \"{name}\"? Tút liên quan cũng
sẽ bị xóa theo."
unfollowConfirm: "Bạn có chắc muốn ngưng theo dõi {name}?" unfollowConfirm: "Bạn có chắc muốn ngưng theo dõi {name}?"
exportRequested: "Đang chuẩn bị xuất tập tin. Quá trình này có thể mất ít phút. Nó sẽ được tự động thêm vào Drive sau khi hoàn thành." exportRequested: "Đang chuẩn bị xuất tập tin. Quá trình này có thể mất ít phút. Nó
sẽ được tự động thêm vào Drive sau khi hoàn thành."
importRequested: "Bạn vừa yêu cầu nhập dữ liệu. Quá trình này có thể mất ít phút." importRequested: "Bạn vừa yêu cầu nhập dữ liệu. Quá trình này có thể mất ít phút."
lists: "Danh sách" lists: "Danh sách"
noLists: "Bạn chưa có danh sách nào" noLists: "Bạn chưa có danh sách nào"
@ -81,7 +86,8 @@ error: "Lỗi"
somethingHappened: "Xảy ra lỗi" somethingHappened: "Xảy ra lỗi"
retry: "Thử lại" retry: "Thử lại"
pageLoadError: "Xảy ra lỗi khi tải trang." pageLoadError: "Xảy ra lỗi khi tải trang."
pageLoadErrorDescription: "Có thể là do bộ nhớ đệm của trình duyệt. Hãy thử xóa bộ nhớ đệm và thử lại sau ít phút." pageLoadErrorDescription: "Có thể là do bộ nhớ đệm của trình duyệt. Hãy thử xóa bộ
nhớ đệm và thử lại sau ít phút."
serverIsDead: "Máy chủ không phản hồi. Vui lòng thử lại sau giây lát." serverIsDead: "Máy chủ không phản hồi. Vui lòng thử lại sau giây lát."
youShouldUpgradeClient: "Để xem trang này, hãy làm tươi để cập nhật ứng dụng." youShouldUpgradeClient: "Để xem trang này, hãy làm tươi để cập nhật ứng dụng."
enterListName: "Đặt tên cho danh sách" enterListName: "Đặt tên cho danh sách"
@ -129,7 +135,7 @@ selectAntenna: "Chọn một antenna"
selectWidget: "Chọn tiện ích" selectWidget: "Chọn tiện ích"
editWidgets: "Sửa tiện ích" editWidgets: "Sửa tiện ích"
editWidgetsExit: "Xong" editWidgetsExit: "Xong"
customEmojis: "Tùy chỉnh emoji" customEmojis: "Emoji"
emoji: "Emoji" emoji: "Emoji"
emojis: "Emoji" emojis: "Emoji"
emojiName: "Tên emoji" emojiName: "Tên emoji"
@ -137,18 +143,24 @@ emojiUrl: "URL Emoji"
addEmoji: "Thêm emoji" addEmoji: "Thêm emoji"
settingGuide: "Cài đặt đề xuất" settingGuide: "Cài đặt đề xuất"
cacheRemoteFiles: "Tập tin cache từ xa" cacheRemoteFiles: "Tập tin cache từ xa"
cacheRemoteFilesDescription: "Khi tùy chọn này bị tắt, các tập tin từ xa sẽ được tải trực tiếp từ máy chủ khác. Điều này sẽ giúp giảm dung lượng lưu trữ nhưng lại tăng lưu lượng truy cập, vì hình thu nhỏ sẽ không được tạo." cacheRemoteFilesDescription: "Khi tùy chọn này bị tắt, các tập tin từ xa sẽ được tải
trực tiếp từ máy chủ khác. Điều này sẽ giúp giảm dung lượng lưu trữ nhưng lại tăng
lưu lượng truy cập, vì hình thu nhỏ sẽ không được tạo."
flagAsBot: "Đánh dấu đây là tài khoản bot" flagAsBot: "Đánh dấu đây là tài khoản bot"
flagAsBotDescription: "Bật tùy chọn này nếu tài khoản này được kiểm soát bởi một chương trình. Nếu được bật, nó sẽ được đánh dấu để các nhà phát triển khác ngăn chặn chuỗi tương tác vô tận với các bot khác và điều chỉnh hệ thống nội bộ của Firefish để coi tài khoản này như một bot." flagAsBotDescription: "Bật tùy chọn này nếu tài khoản này được kiểm soát bởi một chương
trình. Nếu được bật, nó sẽ được đánh dấu để các nhà phát triển khác ngăn chặn chuỗi
tương tác vô tận với các bot khác và điều chỉnh hệ thống nội bộ của Firefish để
coi tài khoản này như một bot."
flagAsCat: "Tài khoản này là mèo" flagAsCat: "Tài khoản này là mèo"
flagAsCatDescription: "Bật tùy chọn này để đánh dấu tài khoản là một con mèo." flagAsCatDescription: "Bật tùy chọn này để đánh dấu tài khoản là một con mèo."
flagShowTimelineReplies: "Hiện lượt trả lời trong bảng tin" flagShowTimelineReplies: "Hiện lượt trả lời trong bảng tin"
flagShowTimelineRepliesDescription: "Hiện lượt trả lời của người bạn theo dõi trên tút của những người khác." flagShowTimelineRepliesDescription: "Hiện lượt trả lời của người bạn theo dõi trên
tút của những người khác."
autoAcceptFollowed: "Tự động phê duyệt theo dõi từ những người mà bạn đang theo dõi" autoAcceptFollowed: "Tự động phê duyệt theo dõi từ những người mà bạn đang theo dõi"
addAccount: "Thêm tài khoản" addAccount: "Thêm tài khoản"
loginFailed: "Đăng nhập không thành công" loginFailed: "Đăng nhập không thành công"
showOnRemote: "Truy cập trang của người này" showOnRemote: "Truy cập trang của người này"
general: "Tổng quan" general: "Tổng quát"
wallpaper: "Ảnh bìa" wallpaper: "Ảnh bìa"
setWallpaper: "Đặt ảnh bìa" setWallpaper: "Đặt ảnh bìa"
removeWallpaper: "Xóa ảnh bìa" removeWallpaper: "Xóa ảnh bìa"
@ -156,7 +168,11 @@ searchWith: "Tìm kiếm: {q}"
youHaveNoLists: "Bạn chưa có danh sách nào" youHaveNoLists: "Bạn chưa có danh sách nào"
followConfirm: "Bạn có chắc muốn theo dõi {name}" followConfirm: "Bạn có chắc muốn theo dõi {name}"
proxyAccount: "Tài khoản proxy" proxyAccount: "Tài khoản proxy"
proxyAccountDescription: "Tài khoản proxy là tài khoản hoạt động như một người theo dõi từ xa cho người dùng trong những điều kiện nhất định. Ví dụ: khi người dùng thêm người dùng từ xa vào danh sách, hoạt động của người dùng từ xa sẽ không được chuyển đến phiên bản nếu không có người dùng cục bộ nào theo dõi người dùng đó, vì vậy tài khoản proxy sẽ theo dõi." proxyAccountDescription: "Tài khoản proxy là tài khoản hoạt động như một người theo
dõi từ xa cho người dùng trong những điều kiện nhất định. Ví dụ: khi người dùng
thêm người dùng từ xa vào danh sách, hoạt động của người dùng từ xa sẽ không được
chuyển đến phiên bản nếu không có người dùng cục bộ nào theo dõi người dùng đó,
vì vậy tài khoản proxy sẽ theo dõi."
host: "Host" host: "Host"
selectUser: "Chọn người dùng" selectUser: "Chọn người dùng"
recipient: "Người nhận" recipient: "Người nhận"
@ -168,9 +184,9 @@ latestRequestSentAt: "Yêu cầu cuối gửi lúc"
latestRequestReceivedAt: "Yêu cầu cuối nhận lúc" latestRequestReceivedAt: "Yêu cầu cuối nhận lúc"
latestStatus: "Trạng thái cuối cùng" latestStatus: "Trạng thái cuối cùng"
storageUsage: "Dung lượng lưu trữ" storageUsage: "Dung lượng lưu trữ"
charts: "Đồ thị" charts: "Biểu đồ"
perHour: "Mỗi Giờ" perHour: "Mỗi giờ"
perDay: "Mỗi Ngày" perDay: "Mỗi ngày"
stopActivityDelivery: "Ngưng gửi hoạt động" stopActivityDelivery: "Ngưng gửi hoạt động"
blockThisInstance: "Chặn máy chủ này" blockThisInstance: "Chặn máy chủ này"
operations: "Vận hành" operations: "Vận hành"
@ -186,11 +202,13 @@ instanceInfo: "Thông tin máy chủ"
statistics: "Thống kê" statistics: "Thống kê"
clearQueue: "Xóa hàng đợi" clearQueue: "Xóa hàng đợi"
clearQueueConfirmTitle: "Bạn có chắc muốn xóa hàng đợi?" clearQueueConfirmTitle: "Bạn có chắc muốn xóa hàng đợi?"
clearQueueConfirmText: "Mọi tút chưa được gửi còn lại trong hàng đợi sẽ không được liên hợp. Thông thường thao tác này không cần thiết." clearQueueConfirmText: "Mọi tút chưa được gửi còn lại trong hàng đợi sẽ không được
liên hợp. Thông thường thao tác này không cần thiết."
clearCachedFiles: "Xóa bộ nhớ đệm" clearCachedFiles: "Xóa bộ nhớ đệm"
clearCachedFilesConfirm: "Bạn có chắc muốn xóa sạch bộ nhớ đệm?" clearCachedFilesConfirm: "Bạn có chắc muốn xóa sạch bộ nhớ đệm?"
blockedInstances: "Máy chủ đã chặn" blockedInstances: "Máy chủ đã chặn"
blockedInstancesDescription: "Danh sách những máy chủ bạn muốn chặn. Chúng sẽ không thể giao tiếp với máy chủy này nữa." blockedInstancesDescription: "Danh sách những máy chủ bạn muốn chặn. Chúng sẽ không
thể giao tiếp với máy chủy này nữa."
muteAndBlock: "Ẩn và Chặn" muteAndBlock: "Ẩn và Chặn"
mutedUsers: "Người đã ẩn" mutedUsers: "Người đã ẩn"
blockedUsers: "Người đã chặn" blockedUsers: "Người đã chặn"
@ -239,14 +257,15 @@ saved: "Đã lưu"
messaging: "Trò chuyện" messaging: "Trò chuyện"
upload: "Tải lên" upload: "Tải lên"
keepOriginalUploading: "Giữ hình ảnh gốc" keepOriginalUploading: "Giữ hình ảnh gốc"
keepOriginalUploadingDescription: "Giữ nguyên như hình ảnh được tải lên ban đầu. Nếu tắt, một phiên bản để hiển thị trên web sẽ được tạo khi tải lên." keepOriginalUploadingDescription: "Giữ nguyên như hình ảnh được tải lên ban đầu. Nếu
tắt, một phiên bản để hiển thị trên web sẽ được tạo khi tải lên."
fromDrive: "Từ ổ đĩa" fromDrive: "Từ ổ đĩa"
fromUrl: "Từ URL" fromUrl: "Từ URL"
uploadFromUrl: "Tải lên bằng một URL" uploadFromUrl: "Tải lên bằng một URL"
uploadFromUrlDescription: "URL của tập tin bạn muốn tải lên" uploadFromUrlDescription: "URL của tập tin bạn muốn tải lên"
uploadFromUrlRequested: "Đã yêu cầu tải lên" uploadFromUrlRequested: "Đã yêu cầu tải lên"
uploadFromUrlMayTakeTime: "Sẽ mất một khoảng thời gian để tải lên xong." uploadFromUrlMayTakeTime: "Sẽ mất một khoảng thời gian để tải lên xong."
explore: "Khám phá" explore: "Khám phó"
messageRead: "Đã đọc" messageRead: "Đã đọc"
noMoreHistory: "Không còn gì để đọc" noMoreHistory: "Không còn gì để đọc"
startMessaging: "Bắt đầu trò chuyện" startMessaging: "Bắt đầu trò chuyện"
@ -255,7 +274,8 @@ agreeTo: "Tôi đồng ý {0}"
tos: "Điều khoản dịch vụ" tos: "Điều khoản dịch vụ"
start: "Bắt đầu" start: "Bắt đầu"
home: "Trang chính" home: "Trang chính"
remoteUserCaution: "Vì người dùng này ở máy chủ khác, thông tin hiển thị có thể không đầy đủ." remoteUserCaution: "Vì người dùng này ở máy chủ khác, thông tin hiển thị có thể không
đầy đủ."
activity: "Hoạt động" activity: "Hoạt động"
images: "Hình ảnh" images: "Hình ảnh"
birthday: "Sinh nhật" birthday: "Sinh nhật"
@ -288,7 +308,8 @@ unableToDelete: "Không thể xóa"
inputNewFileName: "Nhập tên mới cho tập tin" inputNewFileName: "Nhập tên mới cho tập tin"
inputNewDescription: "Nhập mô tả mới" inputNewDescription: "Nhập mô tả mới"
inputNewFolderName: "Nhập tên mới cho thư mục" inputNewFolderName: "Nhập tên mới cho thư mục"
circularReferenceFolder: "Thư mục đích là một thư mục con của thư mục bạn muốn di chuyển." circularReferenceFolder: "Thư mục đích là một thư mục con của thư mục bạn muốn di
chuyển."
hasChildFilesOrFolders: "Không thể xóa cho đến khi không còn gì trong thư mục." hasChildFilesOrFolders: "Không thể xóa cho đến khi không còn gì trong thư mục."
copyUrl: "Sao chép URL" copyUrl: "Sao chép URL"
rename: "Đổi tên" rename: "Đổi tên"
@ -322,7 +343,8 @@ connectService: "Kết nối"
disconnectService: "Ngắt kết nối" disconnectService: "Ngắt kết nối"
enableLocalTimeline: "Bật bảng tin máy chủ" enableLocalTimeline: "Bật bảng tin máy chủ"
enableGlobalTimeline: "Bật bảng tin liên hợp" enableGlobalTimeline: "Bật bảng tin liên hợp"
disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi bảng tin, kể cả khi chúng không được bật." disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi
bảng tin, kể cả khi chúng không được bật."
registration: "Đăng ký" registration: "Đăng ký"
enableRegistration: "Cho phép đăng ký mới" enableRegistration: "Cho phép đăng ký mới"
invite: "Mời" invite: "Mời"
@ -334,7 +356,8 @@ bannerUrl: "URL Ảnh bìa"
backgroundImageUrl: "URL Ảnh nền" backgroundImageUrl: "URL Ảnh nền"
basicInfo: "Thông tin cơ bản" basicInfo: "Thông tin cơ bản"
pinnedUsers: "Những người thú vị" pinnedUsers: "Những người thú vị"
pinnedUsersDescription: "Liệt kê mỗi hàng một tên người dùng xuống dòng để ghim trên tab \"Khám phá\"." pinnedUsersDescription: "Liệt kê mỗi hàng một tên người dùng xuống dòng để ghim trên
tab \"Khám phá\"."
pinnedPages: "Trang đã ghim" pinnedPages: "Trang đã ghim"
pinnedPagesDescription: "Liệt kê các trang thú vị để ghim trên máy chủ." pinnedPagesDescription: "Liệt kê các trang thú vị để ghim trên máy chủ."
pinnedClipId: "ID của clip muốn ghim" pinnedClipId: "ID của clip muốn ghim"
@ -347,14 +370,17 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Bật reCAPTCHA" enableRecaptcha: "Bật reCAPTCHA"
recaptchaSiteKey: "Khóa của trang" recaptchaSiteKey: "Khóa của trang"
recaptchaSecretKey: "Khóa bí mật" recaptchaSecretKey: "Khóa bí mật"
avoidMultiCaptchaConfirm: "Dùng nhiều hệ thống Captcha có thể gây nhiễu giữa chúng. Bạn có muốn tắt các hệ thống Captcha khác hiện đang hoạt động không? Nếu bạn muốn chúng tiếp tục được bật, hãy nhấn hủy." avoidMultiCaptchaConfirm: "Dùng nhiều hệ thống Captcha có thể gây nhiễu giữa chúng.
Bạn có muốn tắt các hệ thống Captcha khác hiện đang hoạt động không? Nếu bạn muốn
chúng tiếp tục được bật, hãy nhấn hủy."
antennas: "Trạm phát sóng" antennas: "Trạm phát sóng"
manageAntennas: "Quản lý trạm phát sóng" manageAntennas: "Quản lý trạm phát sóng"
name: "Tên" name: "Tên"
antennaSource: "Nguồn trạm phát sóng" antennaSource: "Nguồn trạm phát sóng"
antennaKeywords: "Từ khóa để nghe" antennaKeywords: "Từ khóa để nghe"
antennaExcludeKeywords: "Từ khóa để lọc ra" antennaExcludeKeywords: "Từ khóa để lọc ra"
antennaKeywordsDescription: "Phân cách bằng dấu cách cho điều kiện AND hoặc bằng xuống dòng cho điều kiện OR." antennaKeywordsDescription: "Phân cách bằng dấu cách cho điều kiện AND hoặc bằng xuống
dòng cho điều kiện OR."
notifyAntenna: "Thông báo có tút mới" notifyAntenna: "Thông báo có tút mới"
withFileAntenna: "Chỉ những tút có media" withFileAntenna: "Chỉ những tút có media"
enableServiceworker: "Bật ServiceWorker" enableServiceworker: "Bật ServiceWorker"
@ -362,7 +388,7 @@ antennaUsersDescription: "Liệt kê mỗi hàng một tên người dùng"
caseSensitive: "Trường hợp nhạy cảm" caseSensitive: "Trường hợp nhạy cảm"
withReplies: "Bao gồm lượt trả lời" withReplies: "Bao gồm lượt trả lời"
connectedTo: "Những tài khoản sau đã kết nối" connectedTo: "Những tài khoản sau đã kết nối"
notesAndReplies: "Tút kèm trả lời" notesAndReplies: "Lượt trả lời"
withFiles: "Media" withFiles: "Media"
silence: "Ẩn" silence: "Ẩn"
silenceConfirm: "Bạn có chắc muốn ẩn người này?" silenceConfirm: "Bạn có chắc muốn ẩn người này?"
@ -433,7 +459,8 @@ invitationCode: "Mã mời"
checking: "Đang kiểm tra..." checking: "Đang kiểm tra..."
available: "Khả dụng" available: "Khả dụng"
unavailable: "Không khả dụng" unavailable: "Không khả dụng"
usernameInvalidFormat: "Bạn có thể dùng viết hoa/viết thường, chữ số, và dấu gạch dưới." usernameInvalidFormat: "Bạn có thể dùng viết hoa/viết thường, chữ số, và dấu gạch
dưới."
tooShort: "Quá ngắn" tooShort: "Quá ngắn"
tooLong: "Quá dài" tooLong: "Quá dài"
weakPassword: "Mật khẩu yếu" weakPassword: "Mật khẩu yếu"
@ -442,7 +469,8 @@ strongPassword: "Mật khẩu mạnh"
passwordMatched: "Trùng khớp" passwordMatched: "Trùng khớp"
passwordNotMatched: "Không trùng khớp" passwordNotMatched: "Không trùng khớp"
signinWith: "Đăng nhập bằng {x}" signinWith: "Đăng nhập bằng {x}"
signinFailed: "Không thể đăng nhập. Vui lòng kiểm tra tên người dùng và mật khẩu của bạn." signinFailed: "Không thể đăng nhập. Vui lòng kiểm tra tên người dùng và mật khẩu của
bạn."
tapSecurityKey: "Nhấn mã bảo mật của bạn" tapSecurityKey: "Nhấn mã bảo mật của bạn"
or: "Hoặc" or: "Hoặc"
language: "Ngôn ngữ" language: "Ngôn ngữ"
@ -483,15 +511,20 @@ showFeaturedNotesInTimeline: "Hiện tút nổi bật trong bảng tin"
objectStorage: "Đối tượng lưu trữ" objectStorage: "Đối tượng lưu trữ"
useObjectStorage: "Dùng đối tượng lưu trữ" useObjectStorage: "Dùng đối tượng lưu trữ"
objectStorageBaseUrl: "Base URL" objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "URL được sử dụng làm tham khảo. Chỉ định URL của CDN hoặc Proxy của bạn nếu bạn đang sử dụng. Với S3 dùng 'https://<bucket>.s3.amazonaws.com', còn GCS hoặc dịch vụ tương tự dùng 'https://storage.googleapis.com/<bucket>', etc." objectStorageBaseUrlDesc: "URL được sử dụng làm tham khảo. Chỉ định URL của CDN hoặc
Proxy của bạn nếu bạn đang sử dụng. Với S3 dùng 'https://<bucket>.s3.amazonaws.com',
còn GCS hoặc dịch vụ tương tự dùng 'https://storage.googleapis.com/<bucket>', etc."
objectStorageBucket: "Bucket" objectStorageBucket: "Bucket"
objectStorageBucketDesc: "Nhập tên bucket dùng ở nhà cung cấp của bạn." objectStorageBucketDesc: "Nhập tên bucket dùng ở nhà cung cấp của bạn."
objectStoragePrefix: "Tiền tố" objectStoragePrefix: "Tiền tố"
objectStoragePrefixDesc: "Các tập tin sẽ được lưu trữ trong các thư mục có tiền tố này." objectStoragePrefixDesc: "Các tập tin sẽ được lưu trữ trong các thư mục có tiền tố
này."
objectStorageEndpoint: "Đầu cuối" objectStorageEndpoint: "Đầu cuối"
objectStorageEndpointDesc: "Để trống nếu bạn đang dùng AWS S3, nếu không thì chỉ định đầu cuối là '<host>' hoặc '<host>:<port>', tùy thuộc vào nhà cung cấp dịch vụ." objectStorageEndpointDesc: "Để trống nếu bạn đang dùng AWS S3, nếu không thì chỉ định
đầu cuối là '<host>' hoặc '<host>:<port>', tùy thuộc vào nhà cung cấp dịch vụ."
objectStorageRegion: "Khu vực" objectStorageRegion: "Khu vực"
objectStorageRegionDesc: "Nhập một khu vực cụ thể như 'xx-east-1'. Nếu nhà cung cấp dịch vụ của bạn không phân biệt giữa các khu vực, hãy để trống hoặc nhập 'us-east-1'." objectStorageRegionDesc: "Nhập một khu vực cụ thể như 'xx-east-1'. Nếu nhà cung cấp
dịch vụ của bạn không phân biệt giữa các khu vực, hãy để trống hoặc nhập 'us-east-1'."
objectStorageUseSSL: "Dùng SSL" objectStorageUseSSL: "Dùng SSL"
objectStorageUseSSLDesc: "Tắt nếu bạn không dùng HTTPS để kết nối API" objectStorageUseSSLDesc: "Tắt nếu bạn không dùng HTTPS để kết nối API"
objectStorageUseProxy: "Kết nối thông qua Proxy" objectStorageUseProxy: "Kết nối thông qua Proxy"
@ -523,7 +556,8 @@ sort: "Sắp xếp"
ascendingOrder: "Tăng dần" ascendingOrder: "Tăng dần"
descendingOrder: "Giảm dần" descendingOrder: "Giảm dần"
scratchpad: "Scratchpad" scratchpad: "Scratchpad"
scratchpadDescription: "Scratchpad cung cấp môi trường cho các thử nghiệm AiScript. Bạn có thể viết, thực thi và kiểm tra kết quả tương tác với Firefish trong đó." scratchpadDescription: "Scratchpad cung cấp môi trường cho các thử nghiệm AiScript.
Bạn có thể viết, thực thi và kiểm tra kết quả tương tác với Firefish trong đó."
output: "Nguồn ra" output: "Nguồn ra"
script: "Kịch bản" script: "Kịch bản"
disablePagesScript: "Tắt AiScript trên Trang" disablePagesScript: "Tắt AiScript trên Trang"
@ -531,11 +565,14 @@ updateRemoteUser: "Cập nhật thông tin người dùng ở máy chủ khác"
deleteAllFiles: "Xóa toàn bộ tập tin" deleteAllFiles: "Xóa toàn bộ tập tin"
deleteAllFilesConfirm: "Bạn có chắc xóa toàn bộ tập tin?" deleteAllFilesConfirm: "Bạn có chắc xóa toàn bộ tập tin?"
removeAllFollowing: "Ngưng theo dõi tất cả mọi người" removeAllFollowing: "Ngưng theo dõi tất cả mọi người"
removeAllFollowingDescription: "Thực hiện điều này sẽ ngưng theo dõi tất cả các tài khoản khỏi {host}. Chỉ thực hiện điều này nếu máy chủ không còn tồn tại." removeAllFollowingDescription: "Thực hiện điều này sẽ ngưng theo dõi tất cả các tài
khoản khỏi {host}. Chỉ thực hiện điều này nếu máy chủ không còn tồn tại."
userSuspended: "Người này đã bị vô hiệu hóa." userSuspended: "Người này đã bị vô hiệu hóa."
userSilenced: "Người này đã bị ẩn" userSilenced: "Người này đã bị ẩn"
yourAccountSuspendedTitle: "Tài khoản bị vô hiệu hóa" yourAccountSuspendedTitle: "Tài khoản bị vô hiệu hóa"
yourAccountSuspendedDescription: "Tài khoản này đã bị vô hiệu hóa do vi phạm quy tắc máy chủ hoặc điều tương tự. Liên hệ với quản trị viên nếu bạn muốn biết lý do chi tiết hơn. Vui lòng không tạo tài khoản mới." yourAccountSuspendedDescription: "Tài khoản này đã bị vô hiệu hóa do vi phạm quy tắc
máy chủ hoặc điều tương tự. Liên hệ với quản trị viên nếu bạn muốn biết lý do chi
tiết hơn. Vui lòng không tạo tài khoản mới."
menu: "Menu" menu: "Menu"
divider: "Phân chia" divider: "Phân chia"
addItem: "Thêm mục" addItem: "Thêm mục"
@ -576,12 +613,14 @@ permission: "Cho phép "
enableAll: "Bật toàn bộ" enableAll: "Bật toàn bộ"
disableAll: "Tắt toàn bộ" disableAll: "Tắt toàn bộ"
tokenRequested: "Cấp quyền truy cập vào tài khoản" tokenRequested: "Cấp quyền truy cập vào tài khoản"
pluginTokenRequestedDescription: "Plugin này sẽ có thể sử dụng các quyền được đặt ở đây." pluginTokenRequestedDescription: "Plugin này sẽ có thể sử dụng các quyền được đặt
ở đây."
notificationType: "Loại thông báo" notificationType: "Loại thông báo"
edit: "Sửa" edit: "Sửa"
emailServer: "Email máy chủ" emailServer: "Email máy chủ"
enableEmail: "Bật phân phối email" enableEmail: "Bật phân phối email"
emailConfigInfo: "Được dùng để xác minh email của bạn lúc đăng ký hoặc nếu bạn quên mật khẩu của mình" emailConfigInfo: "Được dùng để xác minh email của bạn lúc đăng ký hoặc nếu bạn quên
mật khẩu của mình"
email: "Email" email: "Email"
emailAddress: "Địa chỉ email" emailAddress: "Địa chỉ email"
smtpConfig: "Cấu hình máy chủ SMTP" smtpConfig: "Cấu hình máy chủ SMTP"
@ -602,7 +641,7 @@ makeActive: "Kích hoạt"
display: "Hiển thị" display: "Hiển thị"
copy: "Sao chép" copy: "Sao chép"
metrics: "Số liệu" metrics: "Số liệu"
overview: "Tổng quan" overview: "Chung"
logs: "Nhật ký" logs: "Nhật ký"
delayed: "Độ trễ" delayed: "Độ trễ"
database: "Cơ sở dữ liệu" database: "Cơ sở dữ liệu"
@ -611,10 +650,13 @@ create: "Tạo"
notificationSetting: "Cài đặt thông báo" notificationSetting: "Cài đặt thông báo"
notificationSettingDesc: "Chọn loại thông báo bạn muốn hiển thị." notificationSettingDesc: "Chọn loại thông báo bạn muốn hiển thị."
useGlobalSetting: "Dùng thiết lập chung" useGlobalSetting: "Dùng thiết lập chung"
useGlobalSettingDesc: "Nếu được bật, cài đặt thông báo của bạn sẽ được áp dụng. Nếu bị tắt, có thể thực hiện các thiết lập riêng lẻ." useGlobalSettingDesc: "Nếu được bật, cài đặt thông báo của bạn sẽ được áp dụng. Nếu
bị tắt, có thể thực hiện các thiết lập riêng lẻ."
other: "Khác" other: "Khác"
regenerateLoginToken: "Tạo lại mã đăng nhập" regenerateLoginToken: "Tạo lại mã đăng nhập"
regenerateLoginTokenDescription: "Tạo lại mã nội bộ có thể dùng để đăng nhập. Thông thường hành động này là không cần thiết. Nếu được tạo lại, tất cả các thiết bị sẽ bị đăng xuất." regenerateLoginTokenDescription: "Tạo lại mã nội bộ có thể dùng để đăng nhập. Thông
thường hành động này là không cần thiết. Nếu được tạo lại, tất cả các thiết bị sẽ
bị đăng xuất."
setMultipleBySeparatingWithSpace: "Tách nhiều mục nhập bằng dấu cách." setMultipleBySeparatingWithSpace: "Tách nhiều mục nhập bằng dấu cách."
fileIdOrUrl: "ID tập tin hoặc URL" fileIdOrUrl: "ID tập tin hoặc URL"
behavior: "Thao tác" behavior: "Thao tác"
@ -622,19 +664,22 @@ sample: "Ví dụ"
abuseReports: "Lượt báo cáo" abuseReports: "Lượt báo cáo"
reportAbuse: "Báo cáo" reportAbuse: "Báo cáo"
reportAbuseOf: "Báo cáo {name}" reportAbuseOf: "Báo cáo {name}"
fillAbuseReportDescription: "Vui lòng điền thông tin chi tiết về báo cáo này. Nếu đó là về một tút cụ thể, hãy kèm theo URL của tút." fillAbuseReportDescription: "Vui lòng điền thông tin chi tiết về báo cáo này. Nếu
đó là về một tút cụ thể, hãy kèm theo URL của tút."
abuseReported: "Báo cáo đã được gửi. Cảm ơn bạn nhiều." abuseReported: "Báo cáo đã được gửi. Cảm ơn bạn nhiều."
reporter: "Người báo cáo" reporter: "Người báo cáo"
reporteeOrigin: "Bị báo cáo" reporteeOrigin: "Bị báo cáo"
reporterOrigin: "Máy chủ người báo cáo" reporterOrigin: "Máy chủ người báo cáo"
forwardReport: "Chuyển tiếp báo cáo cho máy chủ từ xa" forwardReport: "Chuyển tiếp báo cáo cho máy chủ từ xa"
forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản hệ thống ẩn danh sẽ được hiển thị dưới dạng người báo cáo ở máy chủ từ xa." forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản hệ thống ẩn danh
sẽ được hiển thị dưới dạng người báo cáo ở máy chủ từ xa."
send: "Gửi" send: "Gửi"
abuseMarkAsResolved: "Đánh dấu đã xử lý" abuseMarkAsResolved: "Đánh dấu đã xử lý"
openInNewTab: "Mở trong tab mới" openInNewTab: "Mở trong tab mới"
openInSideView: "Mở trong thanh bên" openInSideView: "Mở trong thanh bên"
defaultNavigationBehaviour: "Thao tác điều hướng mặc định" defaultNavigationBehaviour: "Thao tác điều hướng mặc định"
editTheseSettingsMayBreakAccount: "Việc chỉnh sửa các cài đặt này có thể làm hỏng tài khoản của bạn." editTheseSettingsMayBreakAccount: "Việc chỉnh sửa các cài đặt này có thể làm hỏng
tài khoản của bạn."
instanceTicker: "Thông tin máy chủ của tút" instanceTicker: "Thông tin máy chủ của tút"
waitingFor: "Đang đợi {x}" waitingFor: "Đang đợi {x}"
random: "Ngẫu nhiên" random: "Ngẫu nhiên"
@ -646,9 +691,11 @@ createNew: "Tạo mới"
optional: "Không bắt buộc" optional: "Không bắt buộc"
createNewClip: "Tạo một ghim mới" createNewClip: "Tạo một ghim mới"
unclip: "Bỏ ghim" unclip: "Bỏ ghim"
confirmToUnclipAlreadyClippedNote: "Bài đăng này là một phần của \"{name}\" ghim. Bạn có muốn bỏ khỏi ghim?" confirmToUnclipAlreadyClippedNote: "Bài đăng này là một phần của \"{name}\" ghim.
Bạn có muốn bỏ khỏi ghim?"
public: "Công khai" public: "Công khai"
i18nInfo: "Firefish đang được các tình nguyện viên dịch sang nhiều thứ tiếng khác nhau. Bạn có thể hỗ trợ tại {link}." i18nInfo: "Firefish đang được các tình nguyện viên dịch sang nhiều thứ tiếng khác
nhau. Bạn có thể hỗ trợ tại {link}."
manageAccessTokens: "Tạo mã truy cập" manageAccessTokens: "Tạo mã truy cập"
accountInfo: "Thông tin tài khoản" accountInfo: "Thông tin tài khoản"
notesCount: "Số lượng tút" notesCount: "Số lượng tút"
@ -667,12 +714,15 @@ no: "Từ chối"
driveFilesCount: "Số tập tin trong Ổ đĩa" driveFilesCount: "Số tập tin trong Ổ đĩa"
driveUsage: "Dung lượng ổ đĩa" driveUsage: "Dung lượng ổ đĩa"
noCrawle: "Từ chối lập chỉ mục" noCrawle: "Từ chối lập chỉ mục"
noCrawleDescription: "Không cho công cụ tìm kiếm lập chỉ mục trang hồ sơ, tút, Trang, etc." noCrawleDescription: "Không cho công cụ tìm kiếm lập chỉ mục trang hồ sơ, tút, Trang,
lockedAccountInfo: "Ghi chú của bạn sẽ hiển thị với bất kỳ ai, trừ khi bạn đặt chế độ hiển thị tút của mình thành \"Chỉ người theo dõi\"." etc."
lockedAccountInfo: "Ghi chú của bạn sẽ hiển thị với bất kỳ ai, trừ khi bạn đặt chế
độ hiển thị tút của mình thành \"Chỉ người theo dõi\"."
alwaysMarkSensitive: "Luôn đánh dấu NSFW" alwaysMarkSensitive: "Luôn đánh dấu NSFW"
loadRawImages: "Tải ảnh gốc thay vì ảnh thu nhỏ" loadRawImages: "Tải ảnh gốc thay vì ảnh thu nhỏ"
disableShowingAnimatedImages: "Không phát ảnh động" disableShowingAnimatedImages: "Không phát ảnh động"
verificationEmailSent: "Một email xác minh đã được gửi. Vui lòng nhấn vào liên kết đính kèm để hoàn tất xác minh." verificationEmailSent: "Một email xác minh đã được gửi. Vui lòng nhấn vào liên kết
đính kèm để hoàn tất xác minh."
notSet: "Chưa đặt" notSet: "Chưa đặt"
emailVerified: "Email đã được xác minh" emailVerified: "Email đã được xác minh"
noteFavoritesCount: "Số lượng tút yêu thích" noteFavoritesCount: "Số lượng tút yêu thích"
@ -684,14 +734,16 @@ clips: "Ghim"
experimentalFeatures: "Tính năng thử nghiệm" experimentalFeatures: "Tính năng thử nghiệm"
developer: "Nhà phát triển" developer: "Nhà phát triển"
makeExplorable: "Không hiện tôi trong \"Khám phá\"" makeExplorable: "Không hiện tôi trong \"Khám phá\""
makeExplorableDescription: "Nếu bạn tắt, tài khoản của bạn sẽ không hiện trong mục \"Khám phá\"." makeExplorableDescription: "Nếu bạn tắt, tài khoản của bạn sẽ không hiện trong mục
\"Khám phá\"."
showGapBetweenNotesInTimeline: "Hiện dải phân cách giữa các tút trên bảng tin" showGapBetweenNotesInTimeline: "Hiện dải phân cách giữa các tút trên bảng tin"
duplicate: "Tạo bản sao" duplicate: "Tạo bản sao"
left: "Bên trái" left: "Bên trái"
center: "Giữa" center: "Giữa"
wide: "Rộng" wide: "Rộng"
narrow: "Thu hẹp" narrow: "Thu hẹp"
reloadToApplySetting: "Cài đặt này sẽ chỉ áp dụng sau khi tải lại trang. Tải lại ngay bây giờ?" reloadToApplySetting: "Cài đặt này sẽ chỉ áp dụng sau khi tải lại trang. Tải lại ngay
bây giờ?"
needReloadToApply: "Cần tải lại để điều này được áp dụng." needReloadToApply: "Cần tải lại để điều này được áp dụng."
showTitlebar: "Hiện thanh tựa đề" showTitlebar: "Hiện thanh tựa đề"
clearCache: "Xóa bộ nhớ đệm" clearCache: "Xóa bộ nhớ đệm"
@ -699,7 +751,10 @@ onlineUsersCount: "{n} người đang online"
nUsers: "{n} Người" nUsers: "{n} Người"
nNotes: "{n} Tút" nNotes: "{n} Tút"
sendErrorReports: "Báo lỗi" sendErrorReports: "Báo lỗi"
sendErrorReportsDescription: "Khi được bật, thông tin chi tiết về lỗi sẽ được chia sẻ với Firefish khi xảy ra sự cố, giúp nâng cao chất lượng của Firefish.\nBao gồm thông tin như phiên bản hệ điều hành của bạn, trình duyệt bạn đang sử dụng, hoạt động của bạn trong Firefish, v.v." sendErrorReportsDescription: "Khi được bật, thông tin chi tiết về lỗi sẽ được chia
sẻ với Firefish khi xảy ra sự cố, giúp nâng cao chất lượng của Firefish.\nBao gồm
thông tin như phiên bản hệ điều hành của bạn, trình duyệt bạn đang sử dụng, hoạt
động của bạn trong Firefish, v.v."
myTheme: "Theme của tôi" myTheme: "Theme của tôi"
backgroundColor: "Màu nền" backgroundColor: "Màu nền"
accentColor: "Màu phụ" accentColor: "Màu phụ"
@ -708,7 +763,7 @@ saveAs: "Lưu thành"
advanced: "Nâng cao" advanced: "Nâng cao"
value: "Giá trị" value: "Giá trị"
createdAt: "Ngày tạo" createdAt: "Ngày tạo"
updatedAt: "Cập nhật lúc" updatedAt: "Cập nhật"
saveConfirm: "Lưu thay đổi?" saveConfirm: "Lưu thay đổi?"
deleteConfirm: "Bạn có muốn xóa không?" deleteConfirm: "Bạn có muốn xóa không?"
invalidValue: "Giá trị không hợp lệ." invalidValue: "Giá trị không hợp lệ."
@ -738,14 +793,16 @@ unlikeConfirm: "Bạn có chắc muốn bỏ thích ?"
fullView: "Kích thước đầy đủ" fullView: "Kích thước đầy đủ"
quitFullView: "Thoát toàn màn hình" quitFullView: "Thoát toàn màn hình"
addDescription: "Thêm mô tả" addDescription: "Thêm mô tả"
userPagePinTip: "Bạn có thể hiển thị các tút ở đây bằng cách chọn \"Ghim vào hồ sơ\" từ menu của mỗi tút." userPagePinTip: "Bạn có thể hiển thị các tút ở đây bằng cách chọn \"Ghim vào hồ sơ\"\
\ từ menu của mỗi tút."
notSpecifiedMentionWarning: "Tút này có đề cập đến những người không mong muốn" notSpecifiedMentionWarning: "Tút này có đề cập đến những người không mong muốn"
info: "Giới thiệu" info: "Giới thiệu"
userInfo: "Thông tin người dùng" userInfo: "Thông tin người dùng"
unknown: "Chưa biết" unknown: "Chưa biết"
onlineStatus: "Trạng thái" onlineStatus: "Trạng thái"
hideOnlineStatus: "Ẩn trạng thái online" hideOnlineStatus: "Ẩn trạng thái online"
hideOnlineStatusDescription: "Ẩn trạng thái online của bạn làm giảm sự tiện lợi của một số tính năng như tìm kiếm." hideOnlineStatusDescription: "Ẩn trạng thái online của bạn làm giảm sự tiện lợi của
một số tính năng như tìm kiếm."
online: "Online" online: "Online"
active: "Hoạt động" active: "Hoạt động"
offline: "Offline" offline: "Offline"
@ -780,12 +837,13 @@ emailNotConfiguredWarning: "Chưa đặt địa chỉ email."
ratio: "Tỷ lệ" ratio: "Tỷ lệ"
previewNoteText: "Hiện xem trước" previewNoteText: "Hiện xem trước"
customCss: "Tùy chỉnh CSS" customCss: "Tùy chỉnh CSS"
customCssWarn: "Chỉ sử dụng những cài đặt này nếu bạn biết rõ về nó. Việc nhập các giá trị không đúng có thể khiến máy chủ hoạt động không bình thường." customCssWarn: "Chỉ sử dụng những cài đặt này nếu bạn biết rõ về nó. Việc nhập các
giá trị không đúng có thể khiến máy chủ hoạt động không bình thường."
global: "Toàn cầu" global: "Toàn cầu"
squareAvatars: "Ảnh đại diện vuông" squareAvatars: "Ảnh đại diện vuông"
sent: "Gửi" sent: "Gửi"
received: "Đã nhận" received: "Đã nhận"
searchResult: "Kết quả tìm kiếm" searchResult: "Tìm thấy"
hashtags: "Hashtag" hashtags: "Hashtag"
troubleshooting: "Khắc phục sự cố" troubleshooting: "Khắc phục sự cố"
useBlurEffect: "Dùng hiệu ứng làm mờ trong giao diện" useBlurEffect: "Dùng hiệu ứng làm mờ trong giao diện"
@ -795,7 +853,8 @@ whatIsNew: "Hiện những thay đổi"
translate: "Dịch" translate: "Dịch"
translatedFrom: "Dịch từ {x}" translatedFrom: "Dịch từ {x}"
accountDeletionInProgress: "Đang xử lý việc xóa tài khoản" accountDeletionInProgress: "Đang xử lý việc xóa tài khoản"
usernameInfo: "Bạn có thể sử dụng chữ cái (a ~ z, A ~ Z), chữ số (0 ~ 9) hoặc dấu gạch dưới (_). Tên người dùng không thể thay đổi sau này." usernameInfo: "Bạn có thể sử dụng chữ cái (a ~ z, A ~ Z), chữ số (0 ~ 9) hoặc dấu
gạch dưới (_). Tên người dùng không thể thay đổi sau này."
aiChanMode: "Chế độ Ai" aiChanMode: "Chế độ Ai"
keepCw: "Giữ cảnh báo nội dung" keepCw: "Giữ cảnh báo nội dung"
pubSub: "Tài khoản Chính/Phụ" pubSub: "Tài khoản Chính/Phụ"
@ -811,12 +870,14 @@ filter: "Bộ lọc"
controlPanel: "Bảng điều khiển" controlPanel: "Bảng điều khiển"
manageAccounts: "Quản lý tài khoản" manageAccounts: "Quản lý tài khoản"
makeReactionsPublic: "Đặt lịch sử biểu cảm công khai" makeReactionsPublic: "Đặt lịch sử biểu cảm công khai"
makeReactionsPublicDescription: "Điều này sẽ hiển thị công khai danh sách tất cả các biểu cảm trước đây của bạn." makeReactionsPublicDescription: "Điều này sẽ hiển thị công khai danh sách tất cả các
biểu cảm trước đây của bạn."
classic: "Cổ điển" classic: "Cổ điển"
muteThread: "Không quan tâm nữa" muteThread: "Không quan tâm nữa"
unmuteThread: "Quan tâm tút này" unmuteThread: "Quan tâm tút này"
ffVisibility: "Hiển thị Theo dõi/Người theo dõi" ffVisibility: "Hiển thị Theo dõi/Người theo dõi"
ffVisibilityDescription: "Quyết định ai có thể xem những người bạn theo dõi và những người theo dõi bạn." ffVisibilityDescription: "Quyết định ai có thể xem những người bạn theo dõi và những
người theo dõi bạn."
continueThread: "Tiếp tục xem chuỗi tút" continueThread: "Tiếp tục xem chuỗi tút"
deleteAccountConfirm: "Điều này sẽ khiến tài khoản bị xóa vĩnh viễn. Vẫn tiếp tục?" deleteAccountConfirm: "Điều này sẽ khiến tài khoản bị xóa vĩnh viễn. Vẫn tiếp tục?"
incorrectPassword: "Sai mật khẩu." incorrectPassword: "Sai mật khẩu."
@ -857,14 +918,17 @@ thereIsUnresolvedAbuseReportWarning: "Có báo cáo chưa xử lí."
recommended: "Được đề xuất" recommended: "Được đề xuất"
check: "Kiểm tra" check: "Kiểm tra"
driveCapOverrideLabel: "Thay đổi dung lượng drive cho người này" driveCapOverrideLabel: "Thay đổi dung lượng drive cho người này"
driveCapOverrideCaption: "Đặt dung lượng drive về mặc định bằng cách nhập 0 hoặc số âm." driveCapOverrideCaption: "Đặt dung lượng drive về mặc định bằng cách nhập 0 hoặc số
âm."
requireAdminForView: "Bạn phải đăng nhập như là quản trị viên mới xem được." requireAdminForView: "Bạn phải đăng nhập như là quản trị viên mới xem được."
isSystemAccount: "Đã tạo một tài khoản và tự động vận hành bởi hệ thống." isSystemAccount: "Đã tạo một tài khoản và tự động vận hành bởi hệ thống."
typeToConfirm: "Nhấn {x} để xác nhận" typeToConfirm: "Nhấn {x} để xác nhận"
deleteAccount: "Xóa tài khoản" deleteAccount: "Xóa tài khoản"
document: "Tài liệu" document: "Tài liệu"
numberOfPageCache: "Số lượng trang bộ nhớ đệm" numberOfPageCache: "Số lượng trang bộ nhớ đệm"
numberOfPageCacheDescription: "Việc tăng con số này sẽ cải thiện sự thuận tiện cho người dùng nhưng gây ra nhiều áp lực hơn cho máy chủ cũng như sử dụng nhiều bộ nhớ hơn." numberOfPageCacheDescription: "Việc tăng con số này sẽ cải thiện sự thuận tiện cho
người dùng nhưng gây ra nhiều áp lực hơn cho máy chủ cũng như sử dụng nhiều bộ nhớ
hơn."
logoutConfirm: "Bạn có chắc muốn đăng xuất?" logoutConfirm: "Bạn có chắc muốn đăng xuất?"
lastActiveDate: "Lần cuối vào" lastActiveDate: "Lần cuối vào"
statusbar: "Thanh trạng thái" statusbar: "Thanh trạng thái"
@ -881,24 +945,33 @@ sensitiveMediaDetection: "Tự động phát hiện NSFW"
localOnly: "Chỉ trên máy chủ" localOnly: "Chỉ trên máy chủ"
remoteOnly: "Chỉ máy chủ từ xa" remoteOnly: "Chỉ máy chủ từ xa"
failedToUpload: "Tải lên thất bại" failedToUpload: "Tải lên thất bại"
cannotUploadBecauseInappropriate: "Không thể tải lên tập tin này vì các phần của tập tin đã được phát hiện có khả năng là NSFW." cannotUploadBecauseInappropriate: "Không thể tải lên tập tin này vì các phần của tập
tin đã được phát hiện có khả năng là NSFW."
cannotUploadBecauseNoFreeSpace: "Tải lên không thành công do thiếu dung lượng Drive." cannotUploadBecauseNoFreeSpace: "Tải lên không thành công do thiếu dung lượng Drive."
beta: "Beta" beta: "Beta"
enableAutoSensitive: "Tự động đánh dấu NSFW" enableAutoSensitive: "Tự động đánh dấu NSFW"
enableAutoSensitiveDescription: "Cho phép tự động phát hiện và đánh dấu media NSFW thông qua học máy, nếu có thể. Ngay cả khi tùy chọn này bị tắt, nó vẫn có thể được bật trên toàn máy chủ." enableAutoSensitiveDescription: "Cho phép tự động phát hiện và đánh dấu media NSFW
activeEmailValidationDescription: "Cho phép xác minh địa chỉ email chặt chẽ hơn, bao gồm việc kiểm tra các địa chỉ dùng một lần và xem nó có thực sự được giao tiếp hay không. Khi bỏ chọn, chỉ định dạng của email được xác minh." thông qua học máy, nếu có thể. Ngay cả khi tùy chọn này bị tắt, nó vẫn có thể được
bật trên toàn máy chủ."
activeEmailValidationDescription: "Cho phép xác minh địa chỉ email chặt chẽ hơn, bao
gồm việc kiểm tra các địa chỉ dùng một lần và xem nó có thực sự được giao tiếp hay
không. Khi bỏ chọn, chỉ định dạng của email được xác minh."
navbar: "Thanh điều hướng" navbar: "Thanh điều hướng"
shuffle: "Xáo trộn" shuffle: "Xáo trộn"
account: "Tài khoản của bạn" account: "Tài khoản của bạn"
move: "Di chuyển" move: "Di chuyển"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "Giảm nỗ lực kiểm duyệt máy chủ thông qua việc tự động nhận dạng media NSFW thông qua học máy. Điều này sẽ làm tăng một chút áp lực trên máy chủ." description: "Giảm nỗ lực kiểm duyệt máy chủ thông qua việc tự động nhận dạng media
NSFW thông qua học máy. Điều này sẽ làm tăng một chút áp lực trên máy chủ."
sensitivity: "Phát hiện nhạy cảm" sensitivity: "Phát hiện nhạy cảm"
sensitivityDescription: "Giảm độ nhạy sẽ dẫn đến ít phát hiện sai hơn (dương tính giả), tăng nó sẽ dẫn đến ít phát hiện sai hơn (âm tính giả)." sensitivityDescription: "Giảm độ nhạy sẽ dẫn đến ít phát hiện sai hơn (dương tính
giả), tăng nó sẽ dẫn đến ít phát hiện sai hơn (âm tính giả)."
setSensitiveFlagAutomatically: "Đánh dấu là NSFW" setSensitiveFlagAutomatically: "Đánh dấu là NSFW"
setSensitiveFlagAutomaticallyDescription: "Kết quả của phát hiện nội bộ sẽ được giữ lại ngay cả khi tùy chọn này bị tắt." setSensitiveFlagAutomaticallyDescription: "Kết quả của phát hiện nội bộ sẽ được
giữ lại ngay cả khi tùy chọn này bị tắt."
analyzeVideos: "Bật chuẩn đoán video" analyzeVideos: "Bật chuẩn đoán video"
analyzeVideosDescription: "Phân tích video bên cạnh hình ảnh. Điều này sẽ làm tăng một chút áp lực trên máy chủ." analyzeVideosDescription: "Phân tích video bên cạnh hình ảnh. Điều này sẽ làm tăng
một chút áp lực trên máy chủ."
_emailUnavailable: _emailUnavailable:
used: "Địa chỉ email đã được sử dụng" used: "Địa chỉ email đã được sử dụng"
format: "Địa chỉ email không hợp lệ" format: "Địa chỉ email không hợp lệ"
@ -912,11 +985,15 @@ _ffVisibility:
_signup: _signup:
almostThere: "Gần xong rồi" almostThere: "Gần xong rồi"
emailAddressInfo: "Hãy điền địa chỉ email của bạn. Nó sẽ không được công khai." emailAddressInfo: "Hãy điền địa chỉ email của bạn. Nó sẽ không được công khai."
emailSent: "Một email xác minh đã được gửi đến địa chỉ email ({email}) của bạn. Vui lòng nhấn vào liên kết trong đó để hoàn tất việc tạo tài khoản." emailSent: "Một email xác minh đã được gửi đến địa chỉ email ({email}) của bạn.
Vui lòng nhấn vào liên kết trong đó để hoàn tất việc tạo tài khoản."
_accountDelete: _accountDelete:
accountDelete: "Xóa tài khoản" accountDelete: "Xóa tài khoản"
mayTakeTime: "Vì xóa tài khoản là một quá trình tốn nhiều tài nguyên nên có thể mất một khoảng thời gian để hoàn thành, tùy thuộc vào lượng nội dung bạn đã tạo và số lượng tập tin bạn đã tải lên." mayTakeTime: "Vì xóa tài khoản là một quá trình tốn nhiều tài nguyên nên có thể
sendEmail: "Sau khi hoàn tất việc xóa tài khoản, một email sẽ được gửi đến địa chỉ email đã đăng ký tài khoản này." mất một khoảng thời gian để hoàn thành, tùy thuộc vào lượng nội dung bạn đã tạo
và số lượng tập tin bạn đã tải lên."
sendEmail: "Sau khi hoàn tất việc xóa tài khoản, một email sẽ được gửi đến địa chỉ
email đã đăng ký tài khoản này."
requestAccountDelete: "Yêu cầu xóa tài khoản" requestAccountDelete: "Yêu cầu xóa tài khoản"
started: "Đang bắt đầu xóa tài khoản." started: "Đang bắt đầu xóa tài khoản."
inProgress: "Đang xóa dần tài khoản." inProgress: "Đang xóa dần tài khoản."
@ -924,9 +1001,12 @@ _ad:
back: "Quay lại" back: "Quay lại"
reduceFrequencyOfThisAd: "Hiện ít lại" reduceFrequencyOfThisAd: "Hiện ít lại"
_forgotPassword: _forgotPassword:
enterEmail: "Nhập địa chỉ email bạn đã sử dụng để đăng ký. Một liên kết mà bạn có thể đặt lại mật khẩu của mình sau đó sẽ được gửi đến nó." enterEmail: "Nhập địa chỉ email bạn đã sử dụng để đăng ký. Một liên kết mà bạn có
ifNoEmail: "Nếu bạn không sử dụng email lúc đăng ký, vui lòng liên hệ với quản trị viên." thể đặt lại mật khẩu của mình sau đó sẽ được gửi đến nó."
contactAdmin: "Máy chủ này không hỗ trợ sử dụng địa chỉ email, vui lòng liên hệ với quản trị viên để đặt lại mật khẩu của bạn." ifNoEmail: "Nếu bạn không sử dụng email lúc đăng ký, vui lòng liên hệ với quản trị
viên."
contactAdmin: "Máy chủ này không hỗ trợ sử dụng địa chỉ email, vui lòng liên hệ
với quản trị viên để đặt lại mật khẩu của bạn."
_gallery: _gallery:
my: "Kho Ảnh" my: "Kho Ảnh"
liked: "Tút Đã Thích" liked: "Tút Đã Thích"
@ -950,11 +1030,13 @@ _preferencesBackups:
inputName: "Nhập tên bản sao lưu" inputName: "Nhập tên bản sao lưu"
cannotSave: "Không thể lưu" cannotSave: "Không thể lưu"
nameAlreadyExists: "Bản sao lưu \"{name}\" đã tồn tại. Xin nhập tên khác." nameAlreadyExists: "Bản sao lưu \"{name}\" đã tồn tại. Xin nhập tên khác."
applyConfirm: "Bạn có chắc muốn áp dụng bản sao lưu \"{name}\" cho thiết bị này? Thiết lập hiện tại sẽ bị ghi đè." applyConfirm: "Bạn có chắc muốn áp dụng bản sao lưu \"{name}\" cho thiết bị này?
Thiết lập hiện tại sẽ bị ghi đè."
saveConfirm: "Lưu bản sao lưu {name}?" saveConfirm: "Lưu bản sao lưu {name}?"
deleteConfirm: "Xóa bản sao lưu {name}?" deleteConfirm: "Xóa bản sao lưu {name}?"
renameConfirm: "Đổi tên bản sao lưu \"{old}\" thành \"{new}\"?" renameConfirm: "Đổi tên bản sao lưu \"{old}\" thành \"{new}\"?"
noBackups: "Chưa có bản sao lưu. Bạn có thể sao lưu thiết lập trên máy chủ này bằng cách sử dụng \"Tạo sao lưu\"." noBackups: "Chưa có bản sao lưu. Bạn có thể sao lưu thiết lập trên máy chủ này bằng
cách sử dụng \"Tạo sao lưu\"."
createdAt: "Tạo vào: {time} {date}" createdAt: "Tạo vào: {time} {date}"
updatedAt: "Cập nhật: {time} {date}" updatedAt: "Cập nhật: {time} {date}"
cannotLoad: "Tải thất bại" cannotLoad: "Tải thất bại"
@ -972,15 +1054,22 @@ _aboutFirefish:
source: "Mã nguồn" source: "Mã nguồn"
translation: "Dịch Firefish" translation: "Dịch Firefish"
donate: "Ủng hộ Firefish" donate: "Ủng hộ Firefish"
morePatrons: "Chúng tôi cũng trân trọng sự hỗ trợ của nhiều người đóng góp khác không được liệt kê ở đây. Cảm ơn! 🥰" morePatrons: "Chúng tôi cũng trân trọng sự hỗ trợ của nhiều người đóng góp khác
không được liệt kê ở đây. Cảm ơn! 🥰"
patrons: "Người ủng hộ" patrons: "Người ủng hộ"
patronsList: Liệt kê theo thứ tự, không theo số tiền ủng hộ. Hãy để tên bạn ở đây!
donateTitle: Thích Firefish?
pleaseDonateToFirefish: Hãy cân nhắc ủng hộ Firefish phát triển.
donateHost: Ủng hộ {host}
pleaseDonateToHost: Cũng như ủng hộ chi phí vận hành máy chủ {host} của bạn.
_nsfw: _nsfw:
respect: "Ẩn nội dung NSFW" respect: "Ẩn nội dung NSFW"
ignore: "Hiện nội dung NSFW" ignore: "Hiện nội dung NSFW"
force: "Ẩn mọi media" force: "Ẩn mọi media"
_mfm: _mfm:
cheatSheet: "MFM Cheatsheet" cheatSheet: "MFM Cheatsheet"
intro: "MFM là ngôn ngữ phát triển độc quyền của Firefish có thể được sử dụng ở nhiều nơi. Tại đây bạn có thể xem danh sách tất cả các cú pháp MFM có sẵn." intro: "MFM là ngôn ngữ phát triển độc quyền của Firefish có thể được sử dụng ở
nhiều nơi. Tại đây bạn có thể xem danh sách tất cả các cú pháp MFM có sẵn."
dummy: "Firefish mở rộng thế giới Fediverse" dummy: "Firefish mở rộng thế giới Fediverse"
mention: "Nhắc đến" mention: "Nhắc đến"
mentionDescription: "Bạn có thể nhắc đến ai đó bằng cách sử dụng @tên người dùng." mentionDescription: "Bạn có thể nhắc đến ai đó bằng cách sử dụng @tên người dùng."
@ -999,11 +1088,13 @@ _mfm:
inlineCode: "Mã (Trong dòng)" inlineCode: "Mã (Trong dòng)"
inlineCodeDescription: "Hiển thị tô sáng cú pháp trong dòng cho mã (chương trình)." inlineCodeDescription: "Hiển thị tô sáng cú pháp trong dòng cho mã (chương trình)."
blockCode: "Mã (Khối)" blockCode: "Mã (Khối)"
blockCodeDescription: "Hiển thị tô sáng cú pháp cho mã nhiều dòng (chương trình) trong một khối." blockCodeDescription: "Hiển thị tô sáng cú pháp cho mã nhiều dòng (chương trình)
trong một khối."
inlineMath: "Toán học (Trong dòng)" inlineMath: "Toán học (Trong dòng)"
inlineMathDescription: "Hiển thị công thức toán (KaTeX) trong dòng" inlineMathDescription: "Hiển thị công thức toán (KaTeX) trong dòng"
blockMath: "Toán học (Khối)" blockMath: "Toán học (Khối)"
blockMathDescription: "Hiển thị công thức toán học nhiều dòng (KaTeX) trong một khối" blockMathDescription: "Hiển thị công thức toán học nhiều dòng (KaTeX) trong một
khối"
quote: "Trích dẫn" quote: "Trích dẫn"
quoteDescription: "Hiển thị nội dung dạng lời trích dạng." quoteDescription: "Hiển thị nội dung dạng lời trích dạng."
emoji: "Tùy chỉnh emoji" emoji: "Tùy chỉnh emoji"
@ -1044,6 +1135,9 @@ _mfm:
rotateDescription: "Xoay nội dung theo một góc cụ thể." rotateDescription: "Xoay nội dung theo một góc cụ thể."
plain: "Đơn giản" plain: "Đơn giản"
plainDescription: "Vô hiệu hóa mọi hiệu ứng MFM chứa trong hiệu ứng MFM này." plainDescription: "Vô hiệu hóa mọi hiệu ứng MFM chứa trong hiệu ứng MFM này."
stop: Dừng CĐN
play: Phát CĐN
warn: CĐN có thể gây đau mắt hoặc chóng mặt
_instanceTicker: _instanceTicker:
none: "Không hiển thị" none: "Không hiển thị"
remote: "Hiện cho người dùng từ máy chủ khác" remote: "Hiện cho người dùng từ máy chủ khác"
@ -1069,15 +1163,20 @@ _menuDisplay:
hide: "Ẩn" hide: "Ẩn"
_wordMute: _wordMute:
muteWords: "Ẩn từ ngữ" muteWords: "Ẩn từ ngữ"
muteWordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." muteWordsDescription: "Separate with spaces for an AND condition or with line breaks
muteWordsDescription2: "Bao quanh các từ khóa bằng dấu gạch chéo để sử dụng cụm từ thông dụng." for an OR condition."
muteWordsDescription2: "Bao quanh các từ khóa bằng dấu gạch chéo để sử dụng cụm
từ thông dụng."
softDescription: "Ẩn các tút phù hợp điều kiện đã đặt khỏi bảng tin." softDescription: "Ẩn các tút phù hợp điều kiện đã đặt khỏi bảng tin."
hardDescription: "Ngăn các tút đáp ứng các điều kiện đã đặt xuất hiện trên bảng tin. Lưu ý, những tút này sẽ không được thêm vào bảng tin ngay cả khi các điều kiện được thay đổi." hardDescription: "Ngăn các tút đáp ứng các điều kiện đã đặt xuất hiện trên bảng
tin. Lưu ý, những tút này sẽ không được thêm vào bảng tin ngay cả khi các điều
kiện được thay đổi."
soft: "Yếu" soft: "Yếu"
hard: "Mạnh" hard: "Mạnh"
mutedNotes: "Những tút đã ẩn" mutedNotes: "Những tút đã ẩn"
_instanceMute: _instanceMute:
instanceMuteDescription: "Thao tác này sẽ ẩn mọi tút/lượt đăng lại từ các máy chủ được liệt kê, bao gồm cả những tút dạng trả lời từ máy chủ bị ẩn." instanceMuteDescription: "Thao tác này sẽ ẩn mọi tút/lượt đăng lại từ các máy chủ
được liệt kê, bao gồm cả những tút dạng trả lời từ máy chủ bị ẩn."
instanceMuteDescription2: "Tách bằng cách xuống dòng" instanceMuteDescription2: "Tách bằng cách xuống dòng"
title: "Ẩn tút từ những máy chủ đã liệt kê." title: "Ẩn tút từ những máy chủ đã liệt kê."
heading: "Danh sách những máy chủ bị ẩn" heading: "Danh sách những máy chủ bị ẩn"
@ -1109,7 +1208,8 @@ _theme:
darken: "Độ tối" darken: "Độ tối"
lighten: "Độ sáng" lighten: "Độ sáng"
inputConstantName: "Nhập tên cho hằng số này" inputConstantName: "Nhập tên cho hằng số này"
importInfo: "Nếu bạn nhập mã theme ở đây, bạn có thể nhập mã đó vào trình chỉnh sửa theme" importInfo: "Nếu bạn nhập mã theme ở đây, bạn có thể nhập mã đó vào trình chỉnh
sửa theme"
deleteConstantConfirm: "Bạn có chắc muốn xóa hằng số {const} không?" deleteConstantConfirm: "Bạn có chắc muốn xóa hằng số {const} không?"
keys: keys:
accent: "Màu phụ" accent: "Màu phụ"
@ -1168,7 +1268,7 @@ _ago:
justNow: "Vừa xong" justNow: "Vừa xong"
secondsAgo: "{n}s trước" secondsAgo: "{n}s trước"
minutesAgo: "{n} phút trước" minutesAgo: "{n} phút trước"
hoursAgo: "{n} giờ trước" hoursAgo: "{n} giờ"
daysAgo: "{n} ngày trước" daysAgo: "{n} ngày trước"
weeksAgo: "{n} tuần trước" weeksAgo: "{n} tuần trước"
monthsAgo: "{n} tháng trước" monthsAgo: "{n} tháng trước"
@ -1183,32 +1283,47 @@ _tutorial:
step1_1: "Welcome!" step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!" step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile." step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you." step2_2: "Providing some information about who you are will make it easier for others
to tell if they want to see your notes or follow you."
step3_1: "Now time to follow some people!" step3_1: "Now time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try following a couple accounts to get started.\nClick the plus circle on the top right of a profile to follow them." step3_2: "Your home and social timelines are based off of who you follow, so try
following a couple accounts to get started.\nClick the plus circle on the top
right of a profile to follow them."
step4_1: "Let's get you out there." step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\"" step4_2: "For your first post, some people like to made a {introduction} post or
a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!" step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled." step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers." step5_3: "The Home {icon} timeline is where you can see posts from your followers."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance." step5_4: "The Local {icon} timeline is where you can see posts from everyone else
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend." on this instance."
step5_6: "The Social {icon} timeline is where you can see posts from friends of your followers." step5_5: "The Recommended {icon} timeline is where you can see posts from instances
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance." the admins recommend."
step5_6: "The Social {icon} timeline is where you can see posts from friends of
your followers."
step5_7: "The Global {icon} timeline is where you can see posts from every other
connected instance."
step6_1: "So, what is this place?" step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Firefish. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"." step6_2: "Well, you didn't just join Firefish. You joined a portal to the Fediverse,
step6_3: "Each server works in different ways, and not all servers run Firefish. This one does though! It's a bit complicated, but you'll get the hang of it in no time." an interconnected network of thousands of servers, called \"instances\"."
step6_4: "Now go, explore, and have fun!" step6_3: "Each server works in different ways, and not all servers run Firefish.
This one does though! It's a bit complicated, but you'll get the hang of it in
no time."
step6_4: "Bây giờ bắt đầu khám phá, và vui thôi!"
_2fa: _2fa:
alreadyRegistered: "Bạn đã đăng ký thiết bị xác minh 2 bước." alreadyRegistered: "Bạn đã đăng ký thiết bị xác minh 2 bước."
registerTOTP: "Đăng ký một thiết bị" registerTOTP: "Đăng ký một thiết bị"
registerSecurityKey: "Đăng ký một mã bảo vệ" registerSecurityKey: "Đăng ký một mã bảo vệ"
step1: "Trước tiên, hãy cài đặt một ứng dụng xác minh (chẳng hạn như {a} hoặc {b}) trên thiết bị của bạn." step1: "Trước tiên, hãy cài đặt một ứng dụng xác minh (chẳng hạn như {a} hoặc {b})
trên thiết bị của bạn."
step2: "Sau đó, quét mã QR hiển thị trên màn hình này." step2: "Sau đó, quét mã QR hiển thị trên màn hình này."
step2Url: "Bạn cũng có thể nhập URL này nếu sử dụng một chương trình máy tính:" step2Url: "Bạn cũng có thể nhập URL này nếu sử dụng một chương trình máy tính:"
step3: "Nhập mã token do ứng dụng của bạn cung cấp để hoàn tất thiết lập." step3: "Nhập mã token do ứng dụng của bạn cung cấp để hoàn tất thiết lập."
step4: "Kể từ bây giờ, những lần đăng nhập trong tương lai sẽ yêu cầu mã token đăng nhập đó." step4: "Kể từ bây giờ, những lần đăng nhập trong tương lai sẽ yêu cầu mã token đăng
securityKeyInfo: "Bên cạnh xác minh bằng vân tay hoặc mã PIN, bạn cũng có thể thiết lập xác minh thông qua khóa bảo mật phần cứng hỗ trợ FIDO2 để bảo mật hơn nữa cho tài khoản của mình." nhập đó."
securityKeyInfo: "Bên cạnh xác minh bằng vân tay hoặc mã PIN, bạn cũng có thể thiết
lập xác minh thông qua khóa bảo mật phần cứng hỗ trợ FIDO2 để bảo mật hơn nữa
cho tài khoản của mình."
_permissions: _permissions:
"read:account": "Xem thông tin tài khoản của bạn" "read:account": "Xem thông tin tài khoản của bạn"
"write:account": "Sửa thông tin tài khoản của bạn" "write:account": "Sửa thông tin tài khoản của bạn"
@ -1244,7 +1359,8 @@ _permissions:
"write:gallery-likes": "Sửa danh sách các tút đã thích trong thư viện của tôi" "write:gallery-likes": "Sửa danh sách các tút đã thích trong thư viện của tôi"
_auth: _auth:
shareAccess: "Bạn có muốn cho phép \"{name}\" truy cập vào tài khoản này không?" shareAccess: "Bạn có muốn cho phép \"{name}\" truy cập vào tài khoản này không?"
shareAccessAsk: "Bạn có chắc muốn cho phép ứng dụng này truy cập vào tài khoản của mình không?" shareAccessAsk: "Bạn có chắc muốn cho phép ứng dụng này truy cập vào tài khoản của
mình không?"
permissionAsk: "Ứng dụng này yêu cầu các quyền sau" permissionAsk: "Ứng dụng này yêu cầu các quyền sau"
pleaseGoBack: "Vui lòng quay lại ứng dụng" pleaseGoBack: "Vui lòng quay lại ứng dụng"
callback: "Quay lại ứng dụng" callback: "Quay lại ứng dụng"
@ -1304,7 +1420,7 @@ _poll:
deadlineTime: "giờ" deadlineTime: "giờ"
duration: "Thời hạn" duration: "Thời hạn"
votesCount: "{n} bình chọn" votesCount: "{n} bình chọn"
totalVotes: "{n} tổng bình chọn" totalVotes: "{n} lượt bình chọn"
vote: "Bình chọn" vote: "Bình chọn"
showResult: "Xem kết quả" showResult: "Xem kết quả"
voted: "Đã bình chọn" voted: "Đã bình chọn"
@ -1342,7 +1458,9 @@ _profile:
youCanIncludeHashtags: "Bạn có thể dùng hashtag trong tiểu sử." youCanIncludeHashtags: "Bạn có thể dùng hashtag trong tiểu sử."
metadata: "Thông tin bổ sung" metadata: "Thông tin bổ sung"
metadataEdit: "Sửa thông tin bổ sung" metadataEdit: "Sửa thông tin bổ sung"
metadataDescription: "Sử dụng phần này, bạn có thể hiển thị các mục thông tin bổ sung trong hồ sơ của mình. Bạn có thể thêm thẻ {a} hoặc thẻ {l} với {rel} để xác minh liên kết trên tiểu sử của mình!" metadataDescription: "Sử dụng phần này, bạn có thể hiển thị các mục thông tin bổ
sung trong hồ sơ của mình. Bạn có thể thêm thẻ {a} hoặc thẻ {l} với {rel} để xác
minh liên kết trên tiểu sử của mình!"
metadataLabel: "Nhãn" metadataLabel: "Nhãn"
metadataContent: "Nội dung" metadataContent: "Nội dung"
changeAvatar: "Đổi ảnh đại diện" changeAvatar: "Đổi ảnh đại diện"
@ -1616,7 +1734,8 @@ _pages:
_dailyRannum: _dailyRannum:
arg1: "Giá trị tối thiểu" arg1: "Giá trị tối thiểu"
arg2: "Giá trị tối đa" arg2: "Giá trị tối đa"
dailyRandomPick: "Chọn ngẫu nhiên từ một danh sách (Đổi mỗi người một lần mỗi ngày)" dailyRandomPick: "Chọn ngẫu nhiên từ một danh sách (Đổi mỗi người một lần mỗi
ngày)"
_dailyRandomPick: _dailyRandomPick:
arg1: "Danh sách" arg1: "Danh sách"
seedRandom: "Ngẫu nhiên (với seed)" seedRandom: "Ngẫu nhiên (với seed)"
@ -1663,7 +1782,8 @@ _pages:
_for: _for:
arg1: "Số lần lặp lại" arg1: "Số lần lặp lại"
arg2: "Hành động" arg2: "Hành động"
typeError: "Chỗ {slot} chấp nhận các giá trị thuộc loại \"{expect}\", nhưng giá trị được cung cấp thuộc loại \"{actual}\"!" typeError: "Chỗ {slot} chấp nhận các giá trị thuộc loại \"{expect}\", nhưng giá
trị được cung cấp thuộc loại \"{actual}\"!"
thereIsEmptySlot: "Chỗ {slot} đang trống!" thereIsEmptySlot: "Chỗ {slot} đang trống!"
types: types:
string: "Văn bản" string: "Văn bản"
@ -1727,7 +1847,8 @@ _deck:
newProfile: "Hồ sơ mới" newProfile: "Hồ sơ mới"
deleteProfile: "Xóa hồ sơ" deleteProfile: "Xóa hồ sơ"
introduction: "Kết hợp các cột để tạo giao diện của riêng bạn!" introduction: "Kết hợp các cột để tạo giao diện của riêng bạn!"
introduction2: "Bạn có thể thêm cột bất kỳ lúc nào bằng cách nhấn + ở bên phải màn hình." introduction2: "Bạn có thể thêm cột bất kỳ lúc nào bằng cách nhấn + ở bên phải màn
hình."
widgetsIntroduction: "Chọn \"Sửa widget\" trong menu cột và thêm một widget." widgetsIntroduction: "Chọn \"Sửa widget\" trong menu cột và thêm một widget."
_columns: _columns:
main: "Chính" main: "Chính"
@ -1738,3 +1859,11 @@ _deck:
list: "Danh sách" list: "Danh sách"
mentions: "Lượt nhắc" mentions: "Lượt nhắc"
direct: "Nhắn riêng" direct: "Nhắn riêng"
renoteMute: Ẩn lượt chia sẻ
renoteUnmute: Bỏ ẩn lượt chia sẻ
searchPlaceholder: Lướt Firefish
edited: Đã sửa {date} {time}
findOtherInstance: Tìm máy chủ khác
noThankYou: Từ chối
_filters:
withFile: Có file

View file

@ -1,6 +1,6 @@
_lang_: "简体中文" _lang_: "简体中文"
headlineMisskey: "一个开源、去中心化的社交媒体平台,永远免费!🚀" headlineFirefish: "一个开源、去中心化的社交媒体平台,永远免费!🚀"
introMisskey: "欢迎! Firefish 是一个开源、去中心化的社交媒体平台,永久免费!🚀" introFirefish: "欢迎! Firefish 是一个开源、去中心化的社交媒体平台,永久免费!🚀"
monthAndDay: "{month} 月 {day} 日" monthAndDay: "{month} 月 {day} 日"
search: "搜索" search: "搜索"
notifications: "通知" notifications: "通知"
@ -521,7 +521,7 @@ recentUsed: "最近使用"
install: "安装" install: "安装"
uninstall: "卸载" uninstall: "卸载"
installedApps: "已授权的应用" installedApps: "已授权的应用"
nothing: "没有" nothing: "暂无更多内容"
installedDate: "授权日期" installedDate: "授权日期"
lastUsedDate: "最近使用时间" lastUsedDate: "最近使用时间"
state: "状态" state: "状态"
@ -641,7 +641,7 @@ openInNewTab: "在新标签页中打开"
openInSideView: "在侧边栏中打开" openInSideView: "在侧边栏中打开"
defaultNavigationBehaviour: "默认导航" defaultNavigationBehaviour: "默认导航"
editTheseSettingsMayBreakAccount: "编辑这些设置可能会损坏您的账号。" editTheseSettingsMayBreakAccount: "编辑这些设置可能会损坏您的账号。"
instanceTicker: "帖子所在的服务器信息" instanceTicker: "帖子的实例信息"
waitingFor: "等待 {x}" waitingFor: "等待 {x}"
random: "随机" random: "随机"
system: "系统" system: "系统"
@ -825,7 +825,7 @@ unmuteThread: "取消静音帖子串"
ffVisibility: "关注/关注者 可见性" ffVisibility: "关注/关注者 可见性"
ffVisibilityDescription: "您可以设置谁可以看到您的关注/关注者信息。" ffVisibilityDescription: "您可以设置谁可以看到您的关注/关注者信息。"
continueThread: "查看更多帖子" continueThread: "查看更多帖子"
deleteAccountConfirm: "将要删除账号。是否继续?" deleteAccountConfirm: "将不可逆的删除账号,是否继续?"
incorrectPassword: "密码错误。" incorrectPassword: "密码错误。"
voteConfirm: "确定投给 “{choice}” " voteConfirm: "确定投给 “{choice}” "
hide: "隐藏" hide: "隐藏"
@ -866,7 +866,7 @@ check: "检查"
driveCapOverrideLabel: "修改此用户的网盘容量" driveCapOverrideLabel: "修改此用户的网盘容量"
driveCapOverrideCaption: "输入 0 或以下的值将容量重置为默认值。" driveCapOverrideCaption: "输入 0 或以下的值将容量重置为默认值。"
requireAdminForView: "需要使用管理员账号登录才能查看。" requireAdminForView: "需要使用管理员账号登录才能查看。"
isSystemAccount: "该账号由系统自动创建和管理。请不要修改、编辑、删除或以其它方式篡改这个账号,否则可能会破坏您的服务器。" isSystemAccount: "该账号由系统自动创建。请不要修改、编辑、删除或以其它方式篡改这个账号,否则可能会破坏您的服务器。"
typeToConfirm: "输入 {x} 以确认操作" typeToConfirm: "输入 {x} 以确认操作"
deleteAccount: "删除账号" deleteAccount: "删除账号"
document: "文档" document: "文档"
@ -989,9 +989,9 @@ _aboutFirefish:
morePatrons: "还有很多其它的人也在支持我们,非常感谢🥰" morePatrons: "还有很多其它的人也在支持我们,非常感谢🥰"
patrons: "Firefish 赞助者" patrons: "Firefish 赞助者"
patronsList: 按时间顺序而不是捐赠金额排列。通过上面的链接捐款,让您的名字出现在这里! patronsList: 按时间顺序而不是捐赠金额排列。通过上面的链接捐款,让您的名字出现在这里!
sponsors: Calckey 赞助者们 sponsors: Firefish 赞助者们
donateTitle: 喜欢 Calckey 吗? donateTitle: 喜欢 Firefish 吗?
pleaseDonateToCalckey: 请考虑赞助 Calckey 以支持其开发。 pleaseDonateToFirefish: 请考虑赞助 Firefish 以支持其开发。
pleaseDonateToHost: 也请考虑赞助您的主服务器 {host},以帮助支持其运营成本。 pleaseDonateToHost: 也请考虑赞助您的主服务器 {host},以帮助支持其运营成本。
donateHost: 赞助 {host} donateHost: 赞助 {host}
_nsfw: _nsfw:
@ -1232,10 +1232,10 @@ _tutorial:
step5_1: "时间线,无处不在的时间线!" step5_1: "时间线,无处不在的时间线!"
step5_2: "您的服务器已启用 {timelines} 种不同的时间线。" step5_2: "您的服务器已启用 {timelines} 种不同的时间线。"
step5_3: "主页 {icon} 时间线是您可以看到您关注账号的帖子的时间线。" step5_3: "主页 {icon} 时间线是您可以看到您关注账号的帖子的时间线。"
step5_4: "本地 {icon} 时间线是您可以看到此服务器上其它用户的帖子的时间线。" step5_4: "本地{icon}时间线是您可以看到此服务器上其它用户的帖子的时间线。"
step5_5: "社交 {icon} 时间线是主页和本地时间线的结合。" step5_5: "社交{icon}时间线是主页和本地时间线的结合。"
step5_6: "推荐 {icon} 时间线是您可以看到管理员推荐服务器的帖子的时间线。" step5_6: "推荐{icon}时间线是您可以看到管理员推荐服务器的帖子的时间线。"
step5_7: "全球 {icon} 时间线是您可以看到来自其它所有互联服务器的帖子的时间线。" step5_7: "全球{icon}时间线是您可以看到来自其它所有互联服务器的帖子的时间线。"
step6_1: "那么,这里是什么地方?" step6_1: "那么,这里是什么地方?"
step6_2: "好吧,您不只是加入 Firefish。您已经加入了 Fediverse 的一个门户,这是一个由成千上万台服务器组成的互联网络。" step6_2: "好吧,您不只是加入 Firefish。您已经加入了 Fediverse 的一个门户,这是一个由成千上万台服务器组成的互联网络。"
step6_3: "每个服务器的工作方式不同,并不是所有的服务器都运行 Firefish。但这个服务器是的! 这有点复杂,但您很快就会明白的。" step6_3: "每个服务器的工作方式不同,并不是所有的服务器都运行 Firefish。但这个服务器是的! 这有点复杂,但您很快就会明白的。"
@ -1966,3 +1966,4 @@ remindMeLater: 稍后再说
removeQuote: 移除引用 removeQuote: 移除引用
removeRecipient: 移除接收者 removeRecipient: 移除接收者
removeMember: 移除成员 removeMember: 移除成员
origin: 起源

View file

@ -1,6 +1,6 @@
_lang_: "繁體中文" _lang_: "繁體中文"
headlineMisskey: "貼文連繫網路" headlineFirefish: "貼文連繫網路"
introMisskey: "歡迎! Firefish是一個開源、去中心化且永遠免費的社群網路平台🚀" introFirefish: "歡迎! Firefish是一個開源、去中心化且永遠免費的社群網路平台🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "搜尋" search: "搜尋"
notifications: "通知" notifications: "通知"
@ -997,7 +997,7 @@ _nsfw:
force: "隱藏所有內容" force: "隱藏所有內容"
_mfm: _mfm:
cheatSheet: "MFM代碼小抄" cheatSheet: "MFM代碼小抄"
intro: "MFM是Misskey專用的標記語言,可以在Misskey中的各個位置使用。 您可以這裏看到MFM可用語法列表。" intro: "MFM是Misskey、Firefish、Akkoma等專用的標記語言,可以在各個位置使用。 您可以這裏看到MFM可用語法列表。"
dummy: "Firefish拓展了Fediverse的世界" dummy: "Firefish拓展了Fediverse的世界"
mention: "提及" mention: "提及"
mentionDescription: "透過 @+用戶名 來標示特定使用者。" mentionDescription: "透過 @+用戶名 來標示特定使用者。"
@ -1069,6 +1069,16 @@ _mfm:
positionDescription: 按指定數量移動內容。 positionDescription: 按指定數量移動內容。
advancedDescription: 如果禁用,則僅允許基本標記,除非正在播放 MFM 動畫 advancedDescription: 如果禁用,則僅允許基本標記,除非正在播放 MFM 動畫
advanced: 高級MFM advanced: 高級MFM
fade: 淡出
foreground: 文字顏色
crop: 裁切
scale: 縮放
scaleDescription: 按指定數量縮放內容。
fadeDescription: 將內容淡入淡出。
background: 背景顏色
backgroundDescription: 改變背景顏色。
cropDescription: 裁切內容。
foregroundDescription: 改變文字顏色。
_instanceTicker: _instanceTicker:
none: "隱藏" none: "隱藏"
remote: "向遠端使用者顯示" remote: "向遠端使用者顯示"
@ -1237,6 +1247,18 @@ _2fa:
step3: "輸入您的App提供的權杖以完成設定。" step3: "輸入您的App提供的權杖以完成設定。"
step4: "從現在開始,任何登入操作都將要求您提供權杖。" step4: "從現在開始,任何登入操作都將要求您提供權杖。"
securityKeyInfo: "您可以設定使用支援FIDO2的硬體安全鎖、終端設備的指纹認證或者PIN碼來登入。" securityKeyInfo: "您可以設定使用支援FIDO2的硬體安全鎖、終端設備的指纹認證或者PIN碼來登入。"
renewTOTPCancel: 取消
removeKey: 移除安全金鑰
removeKeyConfirm: 真的要刪掉 {name} 嗎?
renewTOTP: 重新配置身份驗證器應用程式
chromePasskeyNotSupported: 目前不支持 Chrome 密鑰。
whyTOTPOnlyRenew: 只要註冊了安全金鑰,就無法刪除身份驗證器應用程式。
renewTOTPConfirm: 這將導致您之前的身分驗證器應用程式停止工作
securityKeyName: 取一個金鑰的名字
tapSecurityKey: 請按照您的瀏覽器註冊安全金鑰或密碼
token: 兩步驟驗證金鑰
registerTOTPBeforeKey: 請設置身份驗證器應用程式以註冊安全金鑰或密碼。
renewTOTPOk: 重新配置
_permissions: _permissions:
"read:account": "查看我的帳戶資訊" "read:account": "查看我的帳戶資訊"
"write:account": "更改我的帳戶資訊" "write:account": "更改我的帳戶資訊"
@ -1273,16 +1295,19 @@ _permissions:
_auth: _auth:
shareAccess: "要授權「“{name}”」存取您的帳戶嗎?" shareAccess: "要授權「“{name}”」存取您的帳戶嗎?"
shareAccessAsk: "您確定要授權這個應用程式使用您的帳戶嗎?" shareAccessAsk: "您確定要授權這個應用程式使用您的帳戶嗎?"
permissionAsk: "此應用程式需要以下權限" permissionAsk: "此應用程式需要以下權限"
pleaseGoBack: "請返回至應用程式" pleaseGoBack: "請返回至應用程式"
callback: "回到應用程式" callback: "回到應用程式"
denied: "拒絕訪問" denied: "拒絕訪問"
copyAsk: 請將以下授權代碼貼上到應用程式中:
allPermissions: 完全帳戶訪問許可權
_antennaSources: _antennaSources:
all: "全部貼文" all: "全部貼文"
homeTimeline: "來自已追隨使用者的貼文" homeTimeline: "來自已追隨使用者的貼文"
users: "來自特定使用者的貼文" users: "來自特定使用者的貼文"
userList: "來自特定清單中的貼文" userList: "來自特定清單中的貼文"
userGroup: "來自特定群組的貼文" userGroup: "來自特定群組的貼文"
instances: 伺服器上所有使用者的貼文
_weekday: _weekday:
sunday: "週日" sunday: "週日"
monday: "週一" monday: "週一"
@ -1298,22 +1323,29 @@ _widgets:
calendar: "行事曆" calendar: "行事曆"
trends: "發燒貼文" trends: "發燒貼文"
clock: "時鐘" clock: "時鐘"
rss: "RSS閱讀器" rss: "RSS 閱讀器"
rssTicker: "RSS跑馬燈" rssTicker: "RSS 跑馬燈"
activity: "動態" activity: "動態"
photos: "照片" photos: "照片"
digitalClock: "電子時鐘" digitalClock: "電子時鐘"
unixClock: "UNIX時間" unixClock: "UNIX時間"
federation: "聯邦宇宙" federation: "聯邦宇宙"
instanceCloud: "伺服器雲" instanceCloud: "伺服器雲"
postForm: "發佈窗口" postForm: "發佈窗口"
slideshow: "幻燈片" slideshow: "幻燈片"
button: "按鈕" button: "按鈕"
onlineUsers: "線上的用戶" onlineUsers: "線上的用戶"
jobQueue: "佇列" jobQueue: "佇列"
serverMetric: "伺服器指標" serverMetric: "伺服器指標"
aiscript: "AiScript控制台" aiscript: "AiScript 控制台"
aichan: "小藍" aichan: "小藍"
serverInfo: 伺服器資訊
userList: 使用者列表
_userList:
chooseList: 選擇一個清單
meiliIndexCount: 編入索引的帖子
meiliStatus: 伺服器狀態
meiliSize: 索引大小
_cw: _cw:
hide: "隱藏" hide: "隱藏"
show: "瀏覽更多" show: "瀏覽更多"
@ -1343,11 +1375,11 @@ _poll:
remainingSeconds: "{s}秒後截止" remainingSeconds: "{s}秒後截止"
_visibility: _visibility:
public: "公開" public: "公開"
publicDescription: "發布給所有用戶" publicDescription: "發佈至公開時間線"
home: "不在主頁顯示" home: "不在主頁顯示"
homeDescription: "僅發送至首頁的時間線" homeDescription: "僅發送至首頁的時間線"
followers: "追隨者" followers: "追隨者"
followersDescription: "僅發至關注者" followersDescription: "僅發至關注者"
specified: "指定使用者" specified: "指定使用者"
specifiedDescription: "僅發送至指定使用者" specifiedDescription: "僅發送至指定使用者"
localOnly: "僅限本地" localOnly: "僅限本地"
@ -1742,6 +1774,7 @@ _notification:
followBack: "回關" followBack: "回關"
reply: "回覆" reply: "回覆"
renote: "轉發" renote: "轉發"
reacted: 對您的貼文做出了反應
_deck: _deck:
alwaysShowMainColumn: "總是顯示主欄" alwaysShowMainColumn: "總是顯示主欄"
columnAlign: "對齊欄位" columnAlign: "對齊欄位"
@ -1849,7 +1882,7 @@ subscribePushNotification: 啟用推送通知
unsubscribePushNotification: 禁用推送通知 unsubscribePushNotification: 禁用推送通知
pushNotificationAlreadySubscribed: 推送通知已經啟用 pushNotificationAlreadySubscribed: 推送通知已經啟用
recommendedInstancesDescription: 以每行分隔的推薦伺服器出現在推薦的時間線中。 recommendedInstancesDescription: 以每行分隔的推薦伺服器出現在推薦的時間線中。
searchPlaceholder: 聯邦網路上搜尋 searchPlaceholder: Firefish 上搜尋
cw: 內容警告 cw: 內容警告
selectChannel: 選擇一個頻道 selectChannel: 選擇一個頻道
newer: 較新 newer: 較新
@ -1900,3 +1933,14 @@ removeQuote: 删除引用
removeRecipient: 刪除收件者 removeRecipient: 刪除收件者
removeMember: 刪除成員 removeMember: 刪除成員
isBot: 此帳戶是機器人 isBot: 此帳戶是機器人
verifiedLink: 已驗證連結
_filters:
followersOnly: 只顯示關注者的
fromDomain: 從域名
notesBefore: 指定時間以前
notesAfter: 指定時間以後
followingOnly: 只顯示關注的
fromUser: 從使用者
withFile: 有檔案
alt: 替代文字
xl: 特大

View file

@ -1,6 +1,6 @@
{ {
"name": "firefish", "name": "firefish",
"version": "1.0.3", "version": "1.0.4-dev6",
"codename": "aqua", "codename": "aqua",
"repository": { "repository": {
"type": "git", "type": "git",

View file

@ -1,4 +1,4 @@
Copyright 2023 Calckey Copyright 2023 Firefish
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View file

@ -1,4 +1,4 @@
user-agent: * User-agent: *
allow: / Disallow: /
User-agent: FirefishOrg*
# todo: sitemap Allow: /

View file

@ -106,7 +106,11 @@ export async function masterMain() {
config = loadConfigBoot(); config = loadConfigBoot();
await connectDb(); await connectDb();
} catch (e) { } catch (e) {
bootLogger.error("Fatal error occurred during initialization", null, true); bootLogger.error(
`Fatal error occurred during initialization: ${e}`,
null,
true,
);
process.exit(1); process.exit(1);
} }

View file

@ -41,6 +41,7 @@ export default function load() {
config.url = url.origin; config.url = url.origin;
config.port = config.port || parseInt(process.env.PORT || "", 10); config.port = config.port || parseInt(process.env.PORT || "", 10);
config.bind = config.bind || process.env.BIND;
mixin.version = meta.version; mixin.version = meta.version;
mixin.host = url.host; mixin.host = url.host;

View file

@ -6,6 +6,7 @@ export type Source = {
feedback_url?: string; feedback_url?: string;
url: string; url: string;
port: number; port: number;
bind?: string;
disableHsts?: boolean; disableHsts?: boolean;
db: { db: {
host: string; host: string;

View file

@ -37,6 +37,7 @@ export default function () {
mem: { mem: {
used: round(memStats.used - memStats.buffers - memStats.cached), used: round(memStats.used - memStats.buffers - memStats.cached),
active: round(memStats.active), active: round(memStats.active),
total: round(memStats.total),
}, },
net: { net: {
rx: round(Math.max(0, netStats.rx_sec)), rx: round(Math.max(0, netStats.rx_sec)),

View file

@ -121,6 +121,19 @@ if (hasConfig) {
), ),
); );
posts
.updateRankingRules([
"sort",
"words",
"typo",
"proximity",
"attribute",
"exactness",
])
.catch((e) => {
logger.error("Failed to set ranking rules, sorting won't work properly.");
});
logger.info("Connected to MeiliSearch"); logger.info("Connected to MeiliSearch");
} }
@ -160,6 +173,7 @@ export default hasConfig
limit: number, limit: number,
offset: number, offset: number,
userCtx: ILocalUser | null, userCtx: ILocalUser | null,
overrideSort: string | null,
) => { ) => {
/// Advanced search syntax /// Advanced search syntax
/// from:user => filter by user + optional domain /// from:user => filter by user + optional domain
@ -170,8 +184,10 @@ export default hasConfig
/// "text" => get posts with exact text between quotes /// "text" => get posts with exact text between quotes
/// filter:following => show results only from users you follow /// filter:following => show results only from users you follow
/// filter:followers => show results only from followers /// filter:followers => show results only from followers
/// order:desc/asc => order results ascending or descending
const constructedFilters: string[] = []; const constructedFilters: string[] = [];
let sortRules: string[] = [];
const splitSearch = query.split(" "); const splitSearch = query.split(" ");
@ -195,9 +211,9 @@ export default hasConfig
// Determine if we got a webfinger address or a single username // Determine if we got a webfinger address or a single username
if (user.split("@").length > 1) { if (user.split("@").length > 1) {
let splitUser = user.split("@"); const splitUser = user.split("@");
let domain = splitUser.pop(); const domain = splitUser.pop();
user = splitUser.join("@"); user = splitUser.join("@");
constructedFilters.push( constructedFilters.push(
@ -215,7 +231,7 @@ export default hasConfig
} else if (term.startsWith("after:")) { } else if (term.startsWith("after:")) {
const timestamp = term.slice(6); const timestamp = term.slice(6);
let unix = timestampToUnix(timestamp); const unix = timestampToUnix(timestamp);
if (unix !== 0) constructedFilters.push(`createdAt > ${unix}`); if (unix !== 0) constructedFilters.push(`createdAt > ${unix}`);
@ -223,7 +239,7 @@ export default hasConfig
} else if (term.startsWith("before:")) { } else if (term.startsWith("before:")) {
const timestamp = term.slice(7); const timestamp = term.slice(7);
let unix = timestampToUnix(timestamp); const unix = timestampToUnix(timestamp);
if (unix !== 0) constructedFilters.push(`createdAt < ${unix}`); if (unix !== 0) constructedFilters.push(`createdAt < ${unix}`);
return null; return null;
@ -278,6 +294,14 @@ export default hasConfig
); );
} }
return null;
} else if (term.startsWith("order:desc")) {
sortRules.push("createdAt:desc");
return null;
} else if (term.startsWith("order:asc")) {
sortRules.push("createdAt:asc");
return null; return null;
} }
@ -286,14 +310,27 @@ export default hasConfig
) )
).filter((term) => term !== null); ).filter((term) => term !== null);
const sortRules = [];
// An empty search term with defined filters means we have a placeholder search => https://www.meilisearch.com/docs/reference/api/search#placeholder-search // An empty search term with defined filters means we have a placeholder search => https://www.meilisearch.com/docs/reference/api/search#placeholder-search
// These have to be ordered manually, otherwise the *oldest* posts are returned first, which we don't want // These have to be ordered manually, otherwise the *oldest* posts are returned first, which we don't want
if (filteredSearchTerms.length === 0 && constructedFilters.length > 0) { // If the user has defined a sort rule, don't mess with it
if (
filteredSearchTerms.length === 0 &&
constructedFilters.length > 0 &&
sortRules.length === 0
) {
sortRules.push("createdAt:desc"); sortRules.push("createdAt:desc");
} }
// More than one sorting rule doesn't make sense. We only keep the first one, otherwise weird stuff may happen.
if (sortRules.length > 1) {
sortRules = [sortRules[0]];
}
// An override sort takes precedence, user sorting is ignored here
if (overrideSort) {
sortRules = [overrideSort];
}
logger.info(`Searching for ${filteredSearchTerms.join(" ")}`); logger.info(`Searching for ${filteredSearchTerms.join(" ")}`);
logger.info(`Limit: ${limit}`); logger.info(`Limit: ${limit}`);
logger.info(`Offset: ${offset}`); logger.info(`Offset: ${offset}`);

View file

@ -48,6 +48,6 @@ export default async function cleanRemoteFiles(
job.progress(deletedCount / total); job.progress(deletedCount / total);
} }
logger.succ("All cahced remote files has been deleted."); logger.succ("All cached remote files has been deleted.");
done(); done();
} }

View file

@ -94,7 +94,7 @@ function groupingAudience(ids: string[], actor: CacheableRemoteUser) {
function isPublic(id: string) { function isPublic(id: string) {
return [ return [
"https://www.w3.org/ns/activitystreams#Public", "https://www.w3.org/ns/activitystreams#Public",
"as#Public", "as:Public",
"Public", "Public",
].includes(id); ].includes(id);
} }

View file

@ -33,7 +33,9 @@ export default (endpoint: IEndpoint, ctx: Koa.Context) =>
code: y!.code, code: y!.code,
id: y!.id, id: y!.id,
kind: y!.kind, kind: y!.kind,
...(y!.info ? { info: y!.info } : {}), ...(y!.info && process.env.NODE_ENV !== "production"
? { info: y!.info }
: {}),
}, },
}; };
} else { } else {

View file

@ -1,11 +1,9 @@
import type { IEndpoint } from "./endpoints"; import type { IEndpoint } from "./endpoints";
import * as cp___instance_info from "./endpoints/compatibility/instance-info.js";
import * as cp___custom_emojis from "./endpoints/compatibility/custom-emojis.js"; import * as cp___custom_emojis from "./endpoints/compatibility/custom-emojis.js";
import * as ep___instance_peers from "./endpoints/compatibility/peers.js"; import * as ep___instance_peers from "./endpoints/compatibility/peers.js";
const cps = [ const cps = [
["v1/instance", cp___instance_info],
["v1/custom_emojis", cp___custom_emojis], ["v1/custom_emojis", cp___custom_emojis],
["v1/instance/peers", ep___instance_peers], ["v1/instance/peers", ep___instance_peers],
]; ];

View file

@ -65,6 +65,8 @@ import * as ep___admin_unsuspendUser from "./endpoints/admin/unsuspend-user.js";
import * as ep___admin_updateMeta from "./endpoints/admin/update-meta.js"; import * as ep___admin_updateMeta from "./endpoints/admin/update-meta.js";
import * as ep___admin_vacuum from "./endpoints/admin/vacuum.js"; import * as ep___admin_vacuum from "./endpoints/admin/vacuum.js";
import * as ep___admin_deleteAccount from "./endpoints/admin/delete-account.js"; import * as ep___admin_deleteAccount from "./endpoints/admin/delete-account.js";
import * as ep___admin_delete2fa from "./endpoints/admin/delete-2fa.js";
import * as ep___admin_deletePasskeys from "./endpoints/admin/delete-passkeys.js";
import * as ep___admin_updateUserNote from "./endpoints/admin/update-user-note.js"; import * as ep___admin_updateUserNote from "./endpoints/admin/update-user-note.js";
import * as ep___announcements from "./endpoints/announcements.js"; import * as ep___announcements from "./endpoints/announcements.js";
import * as ep___antennas_create from "./endpoints/antennas/create.js"; import * as ep___antennas_create from "./endpoints/antennas/create.js";
@ -418,6 +420,8 @@ const eps = [
["admin/update-meta", ep___admin_updateMeta], ["admin/update-meta", ep___admin_updateMeta],
["admin/vacuum", ep___admin_vacuum], ["admin/vacuum", ep___admin_vacuum],
["admin/delete-account", ep___admin_deleteAccount], ["admin/delete-account", ep___admin_deleteAccount],
["admin/delete-2fa", ep___admin_delete2fa],
["admin/delete-passkeys", ep___admin_deletePasskeys],
["admin/update-user-note", ep___admin_updateUserNote], ["admin/update-user-note", ep___admin_updateUserNote],
["announcements", ep___announcements], ["announcements", ep___announcements],
["antennas/create", ep___antennas_create], ["antennas/create", ep___antennas_create],

View file

@ -0,0 +1,40 @@
import { Users, UserProfiles } from "@/models/index.js";
import { publishMainStream } from "@/services/stream.js";
import define from "../../define.js";
export const meta = {
tags: ["admin"],
requireCredential: true,
requireAdmin: true,
res: {},
} as const;
export const paramDef = {
type: "object",
properties: {
userId: { type: "string", format: "misskey:id" },
},
required: ["userId"],
} as const;
export default define(meta, paramDef, async (ps) => {
const user = await Users.findOneByOrFail({ id: ps.userId });
if (user.isDeleted) {
return;
}
await UserProfiles.update(user.id, {
twoFactorSecret: null,
twoFactorEnabled: false,
usePasswordLessLogin: false,
});
const iObj = await Users.pack(user.id, user, {
detail: true,
includeSecrets: true,
});
publishMainStream(user.id, "meUpdated", iObj);
});

View file

@ -0,0 +1,42 @@
import { Users, UserProfiles, UserSecurityKeys } from "@/models/index.js";
import { publishMainStream } from "@/services/stream.js";
import define from "../../define.js";
export const meta = {
tags: ["admin"],
requireCredential: true,
requireAdmin: true,
res: {},
} as const;
export const paramDef = {
type: "object",
properties: {
userId: { type: "string", format: "misskey:id" },
},
required: ["userId"],
} as const;
export default define(meta, paramDef, async (ps) => {
const user = await Users.findOneByOrFail({ id: ps.userId });
if (user.isDeleted) {
return;
}
await UserSecurityKeys.delete({
userId: user.id,
});
await UserProfiles.update(user.id, {
usePasswordLessLogin: false,
});
const iObj = await Users.pack(user.id, user, {
detail: true,
includeSecrets: true,
});
publishMainStream(user.id, "meUpdated", iObj);
});

View file

@ -60,13 +60,14 @@ export default define(meta, paramDef, async (ps, user) => {
throw new ApiError(meta.errors.noSuchAntenna); throw new ApiError(meta.errors.noSuchAntenna);
} }
const limit = ps.limit + (ps.untilId ? 1 : 0) + (ps.sinceId ? 1 : 0); // untilIdに指定したものも含まれるため+1
const noteIdsRes = await redisClient.xrevrange( const noteIdsRes = await redisClient.xrevrange(
`antennaTimeline:${antenna.id}`, `antennaTimeline:${antenna.id}`,
ps.untilDate || "+", ps.untilDate ?? "+",
"-", ps.sinceDate ?? "-",
"COUNT", "COUNT",
ps.limit + 1, limit,
); // untilIdに指定したものも含まれるため+1 );
if (noteIdsRes.length === 0) { if (noteIdsRes.length === 0) {
return []; return [];
@ -74,7 +75,7 @@ export default define(meta, paramDef, async (ps, user) => {
const noteIds = noteIdsRes const noteIds = noteIdsRes
.map((x) => x[1][1]) .map((x) => x[1][1])
.filter((x) => x !== ps.untilId); .filter((x) => x !== ps.untilId && x !== ps.sinceId);
if (noteIds.length === 0) { if (noteIds.length === 0) {
return []; return [];
@ -104,7 +105,7 @@ export default define(meta, paramDef, async (ps, user) => {
generateMutedUserQuery(query, user); generateMutedUserQuery(query, user);
generateBlockedUserQuery(query, user); generateBlockedUserQuery(query, user);
const notes = await query.take(ps.limit).getMany(); const notes = await query.take(limit).getMany();
if (notes.length > 0) { if (notes.length > 0) {
readNote(user.id, notes); readNote(user.id, notes);

View file

@ -1,232 +0,0 @@
import * as mfm from "mfm-js";
import { toHtml } from "@/mfm/to-html.js";
import config from "@/config/index.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
import {
Users,
Notes,
Instances,
UserProfiles,
Emojis,
DriveFiles,
} from "@/models/index.js";
import type { Emoji } from "@/models/entities/emoji.js";
import type { User } from "@/models/entities/user.js";
import { IsNull, In } from "typeorm";
import { MAX_NOTE_TEXT_LENGTH, FILE_TYPE_BROWSERSAFE } from "@/const.js";
import define from "../../define.js";
export const meta = {
requireCredential: false,
requireCredentialPrivateMode: true,
allowGet: true,
tags: ["meta"],
} as const;
export const paramDef = {
type: "object",
properties: {},
required: [],
} as const;
export default define(meta, paramDef, async () => {
const now = Date.now();
const [meta, total, localPosts, instanceCount, firstAdmin, emojis] =
await Promise.all([
fetchMeta(true),
Users.count({ where: { host: IsNull() } }),
Notes.count({ where: { userHost: IsNull(), replyId: IsNull() } }),
Instances.count(),
Users.findOne({
where: {
host: IsNull(),
isAdmin: true,
isDeleted: false,
isBot: false,
},
order: { id: "ASC" },
}),
Emojis.find({
where: { host: IsNull(), type: In(FILE_TYPE_BROWSERSAFE) },
select: ["id", "name", "originalUrl", "publicUrl"],
}).then((l) =>
l.reduce((a, e) => {
a[e.name] = e;
return a;
}, {} as Record<string, Emoji>),
),
]);
const descSplit = splitN(meta.description, "\n", 2);
const shortDesc = markup(descSplit.length > 0 ? descSplit[0] : "");
const longDesc = markup(meta.description ?? "");
return {
uri: config.hostname,
title: meta.name,
short_description: shortDesc,
description: longDesc,
email: meta.maintainerEmail,
version: config.version,
urls: {
streaming_api: `wss://${config.host}`,
},
stats: {
user_count: total,
status_count: localPosts,
domain_count: instanceCount,
},
thumbnail: meta.logoImageUrl,
languages: meta.langs,
registrations: !meta.disableRegistration,
approval_required: false,
invites_enabled: false,
configuration: {
accounts: {
max_featured_tags: 16,
},
statuses: {
max_characters: MAX_NOTE_TEXT_LENGTH,
max_media_attachments: 16,
characters_reserved_per_url: 0,
},
media_attachments: {
supported_mime_types: FILE_TYPE_BROWSERSAFE,
image_size_limit: 10485760,
image_matrix_limit: 16777216,
video_size_limit: 41943040,
video_frame_rate_limit: 60,
video_matrix_limit: 2304000,
},
polls: {
max_options: 10,
max_characters_per_option: 50,
min_expiration: 15,
max_expiration: -1,
},
},
contact_account: await getContact(firstAdmin, emojis),
rules: [],
};
});
const splitN = (s: string | null, split: string, n: number): string[] => {
const ret: string[] = [];
if (s == null) return ret;
if (s === "") {
ret.push(s);
return ret;
}
let start = 0;
let pos = s.indexOf(split);
if (pos === -1) {
ret.push(s);
return ret;
}
for (let i = 0; i < n - 1; i++) {
ret.push(s.substring(start, pos));
start = pos + split.length;
pos = s.indexOf(split, start);
if (pos === -1) break;
}
ret.push(s.substring(start));
return ret;
};
type ContactType = {
id: string;
username: string;
acct: string;
display_name: string;
note?: string;
noindex?: boolean;
fields?: {
name: string;
value: string;
verified_at: string | null;
}[];
locked: boolean;
bot: boolean;
created_at: string;
url: string;
followers_count: number;
following_count: number;
statuses_count: number;
last_status_at?: string;
emojis: any;
} | null;
const getContact = async (
user: User | null,
emojis: Record<string, Emoji>,
): Promise<ContactType> => {
if (!user) return null;
let contact: ContactType = {
id: user.id,
username: user.username,
acct: user.username,
display_name: user.name ?? user.username,
locked: user.isLocked,
bot: user.isBot,
created_at: user.createdAt.toISOString(),
url: `${config.url}/@${user.username}`,
followers_count: user.followersCount,
following_count: user.followingCount,
statuses_count: user.notesCount,
last_status_at: user.lastActiveDate?.toISOString(),
emojis: emojis
? user.emojis
.filter((e, i, a) => e in emojis && a.indexOf(e) === i)
.map((e) => ({
shortcode: e,
static_url: emojis[e].publicUrl,
url: emojis[e].originalUrl,
visible_in_picker: true,
}))
: [],
};
const [profile] = await Promise.all([
UserProfiles.findOne({ where: { userId: user.id } }),
loadDriveFiles(contact, "avatar", user.avatarId),
loadDriveFiles(contact, "header", user.bannerId),
]);
if (!profile) {
return contact;
}
contact = {
...contact,
note: markup(profile.description ?? ""),
noindex: profile.noCrawle,
fields: profile.fields.map((f) => ({
name: f.name,
value: f.value,
verified_at: null,
})),
};
return contact;
};
const loadDriveFiles = async (
contact: any,
key: string,
fileId: string | null,
) => {
if (fileId) {
const file = await DriveFiles.findOneBy({ id: fileId });
if (file) {
contact[key] = file.webpublicUrl ?? file.url;
contact[`${key}_static`] = contact[key];
}
}
};
const markup = (text: string): string => toHtml(mfm.parse(text)) ?? "";

View file

@ -1,6 +1,7 @@
import { IsNull } from "typeorm"; import { IsNull } from "typeorm";
import { Emojis } from "@/models/index.js"; import { Emojis } from "@/models/index.js";
import define from "../define.js"; import define from "../define.js";
import { ApiError } from "../error.js";
export const meta = { export const meta = {
tags: ["meta"], tags: ["meta"],
@ -9,6 +10,15 @@ export const meta = {
allowGet: true, allowGet: true,
cacheSec: 3600, cacheSec: 3600,
errors: {
noSuchEmoji: {
message: "No such emoji.",
code: "NO_SUCH_EMOJI",
id: "6a5e3be7-5ac3-44a6-a425-9937cd66f8e1",
httpStatusCode: 404,
},
},
res: { res: {
type: "object", type: "object",
optional: false, optional: false,
@ -28,12 +38,16 @@ export const paramDef = {
} as const; } as const;
export default define(meta, paramDef, async (ps, me) => { export default define(meta, paramDef, async (ps, me) => {
const emoji = await Emojis.findOneOrFail({ const emoji = await Emojis.findOne({
where: { where: {
name: ps.name, name: ps.name,
host: IsNull(), host: IsNull(),
}, },
}); });
if (!emoji) {
throw new ApiError(meta.errors.noSuchEmoji);
}
return Emojis.pack(emoji); return Emojis.pack(emoji);
}); });

View file

@ -394,6 +394,12 @@ export const meta = {
optional: "true", optional: "true",
nullable: true, nullable: true,
}, },
enableServerMachineStats: {
type: "boolean",
optional: "true",
nullable: false,
default: false,
},
}, },
}, },
} as const; } as const;
@ -497,6 +503,8 @@ export default define(meta, paramDef, async (ps, me) => {
instance.deeplAuthKey != null || instance.libreTranslateApiUrl != null, instance.deeplAuthKey != null || instance.libreTranslateApiUrl != null,
defaultReaction: instance.defaultReaction, defaultReaction: instance.defaultReaction,
donationLink: instance.donationLink, donationLink: instance.donationLink,
enableServerMachineStats: instance.enableServerMachineStats,
enableIdenticonGeneration: instance.enableIdenticonGeneration,
...(ps.detail ...(ps.detail
? { ? {

View file

@ -1,4 +1,4 @@
import { In } from "typeorm"; import { FindManyOptions, In } from "typeorm";
import { Notes } from "@/models/index.js"; import { Notes } from "@/models/index.js";
import { Note } from "@/models/entities/note.js"; import { Note } from "@/models/entities/note.js";
import config from "@/config/index.js"; import config from "@/config/index.js";
@ -58,6 +58,11 @@ export const paramDef = {
nullable: true, nullable: true,
default: null, default: null,
}, },
order: {
type: "string",
default: "chronological",
nullable: true,
},
}, },
required: ["query"], required: ["query"],
} as const; } as const;
@ -156,9 +161,6 @@ export default define(meta, paramDef, async (ps, me) => {
where: { where: {
id: In(chunk), id: In(chunk),
}, },
order: {
id: "DESC",
},
}); });
// The notes are checked for visibility and muted/blocked users when packed // The notes are checked for visibility and muted/blocked users when packed
@ -175,19 +177,31 @@ export default define(meta, paramDef, async (ps, me) => {
} else if (meilisearch) { } else if (meilisearch) {
let start = 0; let start = 0;
const chunkSize = 100; const chunkSize = 100;
const sortByDate = ps.order !== "relevancy";
type NoteResult = {
id: string;
createdAt: number;
};
const extractedNotes: NoteResult[] = [];
// Use meilisearch to fetch and step through all search results that could match the requirements
const ids = [];
while (true) { while (true) {
const results = await meilisearch.search(ps.query, chunkSize, start, me); const searchRes = await meilisearch.search(
ps.query,
chunkSize,
start,
me,
sortByDate ? "createdAt:desc" : null,
);
const results: MeilisearchNote[] = searchRes.hits as MeilisearchNote[];
start += chunkSize; start += chunkSize;
if (results.hits.length === 0) { if (results.length === 0) {
break; break;
} }
const res = results.hits const res = results
.filter((key: MeilisearchNote) => { .filter((key: MeilisearchNote) => {
if (ps.userId && key.userId !== ps.userId) { if (ps.userId && key.userId !== ps.userId) {
return false; return false;
@ -203,34 +217,45 @@ export default define(meta, paramDef, async (ps, me) => {
} }
return true; return true;
}) })
.map((key) => key.id); .map((key) => {
return {
id: key.id,
createdAt: key.createdAt,
};
});
ids.push(...res); extractedNotes.push(...res);
} }
// Sort all the results by note id DESC (newest first)
ids.sort((a, b) => b - a);
// Fetch the notes from the database until we have enough to satisfy the limit // Fetch the notes from the database until we have enough to satisfy the limit
start = 0; start = 0;
const found = []; const found = [];
while (found.length < ps.limit && start < ids.length) { const noteIDs = extractedNotes.map((note) => note.id);
const chunk = ids.slice(start, start + chunkSize);
const notes: Note[] = await Notes.find({ // Index the ID => index number into a map, so we can restore the array ordering efficiently later
const idIndexMap = new Map(noteIDs.map((id, index) => [id, index]));
while (found.length < ps.limit && start < noteIDs.length) {
const chunk = noteIDs.slice(start, start + chunkSize);
let query: FindManyOptions = {
where: { where: {
id: In(chunk), id: In(chunk),
}, },
order: { };
id: "DESC",
}, const notes: Note[] = await Notes.find(query);
});
// Re-order the note result according to the noteIDs array (cannot be undefined, we map this earlier)
// @ts-ignore
notes.sort((a, b) => idIndexMap.get(a.id) - idIndexMap.get(b.id));
// The notes are checked for visibility and muted/blocked users when packed // The notes are checked for visibility and muted/blocked users when packed
found.push(...(await Notes.packMany(notes, me))); found.push(...(await Notes.packMany(notes, me)));
start += chunkSize; start += chunkSize;
} }
// If we have more results than the limit, trim them // If we have more results than the limit, trim the results down
if (found.length > ps.limit) { if (found.length > ps.limit) {
found.length = ps.limit; found.length = ps.limit;
} }

View file

@ -8,8 +8,14 @@ import { apiTimelineMastodon } from "./endpoints/timeline.js";
import { apiNotificationsMastodon } from "./endpoints/notifications.js"; import { apiNotificationsMastodon } from "./endpoints/notifications.js";
import { apiSearchMastodon } from "./endpoints/search.js"; import { apiSearchMastodon } from "./endpoints/search.js";
import { getInstance } from "./endpoints/meta.js"; import { getInstance } from "./endpoints/meta.js";
import { convertAnnouncement, convertFilter } from "./converters.js"; import {
convertAccount,
convertAnnouncement,
convertFilter,
} from "./converters.js";
import { convertId, IdType } from "../index.js"; import { convertId, IdType } from "../index.js";
import { Users } from "@/models/index.js";
import { IsNull } from "typeorm";
export function getClient( export function getClient(
BASE_URL: string, BASE_URL: string,
@ -52,7 +58,20 @@ export function apiMastodonCompatible(router: Router): void {
// displayed without being logged in // displayed without being logged in
try { try {
const data = await client.getInstance(); const data = await client.getInstance();
ctx.body = await getInstance(data.data); const admin = await Users.findOne({
where: {
host: IsNull(),
isAdmin: true,
isDeleted: false,
isSuspended: false,
},
order: { id: "ASC" },
});
const contact =
admin == null
? null
: convertAccount((await client.getAccount(admin.id)).data);
ctx.body = await getInstance(data.data, contact);
} catch (e: any) { } catch (e: any) {
console.error(e); console.error(e);
ctx.status = 401; ctx.status = 401;

View file

@ -32,12 +32,20 @@ export function convertNotification(notification: Entity.Notification) {
notification.id = convertId(notification.id, IdType.MastodonId); notification.id = convertId(notification.id, IdType.MastodonId);
if (notification.status) if (notification.status)
notification.status = convertStatus(notification.status); notification.status = convertStatus(notification.status);
if (notification.reaction)
notification.reaction = convertReaction(notification.reaction);
return notification; return notification;
} }
export function convertPoll(poll: Entity.Poll) { export function convertPoll(poll: Entity.Poll) {
return simpleConvert(poll); return simpleConvert(poll);
} }
export function convertReaction(reaction: Entity.Reaction) {
if (reaction.accounts) {
reaction.accounts = reaction.accounts.map(convertAccount);
}
return reaction;
}
export function convertRelationship(relationship: Entity.Relationship) { export function convertRelationship(relationship: Entity.Relationship) {
return simpleConvert(relationship); return simpleConvert(relationship);
} }
@ -61,6 +69,8 @@ export function convertStatus(status: Entity.Status) {
})); }));
if (status.poll) status.poll = convertPoll(status.poll); if (status.poll) status.poll = convertPoll(status.poll);
if (status.reblog) status.reblog = convertStatus(status.reblog); if (status.reblog) status.reblog = convertStatus(status.reblog);
if (status.quote) status.quote = convertStatus(status.quote);
status.reactions = status.reactions.map(convertReaction);
return status; return status;
} }

View file

@ -2,13 +2,19 @@ import { Entity } from "megalodon";
import config from "@/config/index.js"; import config from "@/config/index.js";
import { fetchMeta } from "@/misc/fetch-meta.js"; import { fetchMeta } from "@/misc/fetch-meta.js";
import { Users, Notes } from "@/models/index.js"; import { Users, Notes } from "@/models/index.js";
import { IsNull, MoreThan } from "typeorm"; import { IsNull } from "typeorm";
import { MAX_NOTE_TEXT_LENGTH, FILE_TYPE_BROWSERSAFE } from "@/const.js";
export async function getInstance(
response: Entity.Instance,
contact: Entity.Account,
) {
const [meta, totalUsers, totalStatuses] = await Promise.all([
fetchMeta(true),
Users.count({ where: { host: IsNull() } }),
Notes.count({ where: { userHost: IsNull() } }),
]);
// TODO: add firefish features
export async function getInstance(response: Entity.Instance) {
const meta = await fetchMeta(true);
const totalUsers = Users.count({ where: { host: IsNull() } });
const totalStatuses = Notes.count({ where: { userHost: IsNull() } });
return { return {
uri: response.uri, uri: response.uri,
title: response.title || "Firefish", title: response.title || "Firefish",
@ -35,41 +41,12 @@ export async function getInstance(response: Entity.Instance) {
max_featured_tags: 20, max_featured_tags: 20,
}, },
statuses: { statuses: {
max_characters: 3000, max_characters: MAX_NOTE_TEXT_LENGTH,
max_media_attachments: 4, max_media_attachments: 16,
characters_reserved_per_url: response.uri.length, characters_reserved_per_url: response.uri.length,
}, },
media_attachments: { media_attachments: {
supported_mime_types: [ supported_mime_types: FILE_TYPE_BROWSERSAFE,
"image/jpeg",
"image/png",
"image/gif",
"image/heic",
"image/heif",
"image/webp",
"image/avif",
"video/webm",
"video/mp4",
"video/quicktime",
"video/ogg",
"audio/wave",
"audio/wav",
"audio/x-wav",
"audio/x-pn-wave",
"audio/vnd.wave",
"audio/ogg",
"audio/vorbis",
"audio/mpeg",
"audio/mp3",
"audio/webm",
"audio/flac",
"audio/aac",
"audio/m4a",
"audio/x-m4a",
"audio/mp4",
"audio/3gpp",
"video/x-ms-asf",
],
image_size_limit: 10485760, image_size_limit: 10485760,
image_matrix_limit: 16777216, image_matrix_limit: 16777216,
video_size_limit: 41943040, video_size_limit: 41943040,
@ -77,36 +54,16 @@ export async function getInstance(response: Entity.Instance) {
video_matrix_limit: 2304000, video_matrix_limit: 2304000,
}, },
polls: { polls: {
max_options: 8, max_options: 10,
max_characters_per_option: 50, max_characters_per_option: 50,
min_expiration: 300, min_expiration: 50,
max_expiration: 2629746, max_expiration: 2629746,
}, },
reactions: {
max_reactions: 1,
},
}, },
contact_account: { contact_account: contact,
id: "1",
username: "admin",
acct: "admin",
display_name: "admin",
locked: true,
bot: true,
discoverable: false,
group: false,
created_at: new Date().toISOString(),
note: "<p>Please refer to the original instance for the actual admin contact.</p>",
url: `${response.uri}/`,
avatar: `${response.uri}/static-assets/badges/info.png`,
avatar_static: `${response.uri}/static-assets/badges/info.png`,
header: "/static-assets/transparent.png",
header_static: "/static-assets/transparent.png",
followers_count: -1,
following_count: 0,
statuses_count: 0,
last_status_at: new Date().toISOString(),
noindex: true,
emojis: [],
fields: [],
},
rules: [], rules: [],
}; };
} }

View file

@ -48,7 +48,7 @@ export function apiStatusMastodon(router: Router): void {
try { try {
const id = body.in_reply_to_id; const id = body.in_reply_to_id;
const post = await client.getStatus(id); const post = await client.getStatus(id);
const react = post.data.emoji_reactions.filter((e) => e.me)[0].name; const react = post.data.reactions.filter((e) => e.me)[0].name;
const data = await client.deleteEmojiReaction(id, react); const data = await client.deleteEmojiReaction(id, react);
ctx.body = data.data; ctx.body = data.data;
} catch (e: any) { } catch (e: any) {
@ -367,6 +367,47 @@ export function apiStatusMastodon(router: Router): void {
} }
}, },
); );
router.post<{ Params: { id: string; name: string } }>(
"/v1/statuses/:id/react/:name",
async (ctx) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens);
try {
const data = await client.reactStatus(
convertId(ctx.params.id, IdType.FirefishId),
ctx.params.name,
);
ctx.body = convertStatus(data.data);
} catch (e: any) {
console.error(e);
ctx.status = 401;
ctx.body = e.response.data;
}
},
);
router.post<{ Params: { id: string; name: string } }>(
"/v1/statuses/:id/unreact/:name",
async (ctx) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens);
try {
const data = await client.unreactStatus(
convertId(ctx.params.id, IdType.FirefishId),
ctx.params.name,
);
ctx.body = convertStatus(data.data);
} catch (e: any) {
console.error(e);
ctx.status = 401;
ctx.body = e.response.data;
}
},
);
router.get<{ Params: { id: string } }>("/v1/media/:id", async (ctx) => { router.get<{ Params: { id: string } }>("/v1/media/:id", async (ctx) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;

View file

@ -221,7 +221,10 @@ export const startServer = () => {
initializeStreamingServer(server); initializeStreamingServer(server);
server.listen(config.port); server.listen({
port: config.port,
host: config.bind,
});
return server; return server;
}; };
@ -257,6 +260,11 @@ export default () =>
} }
}); });
// @ts-ignore server.listen(
server.listen(config.port, resolve); {
port: config.port,
host: config.bind,
},
() => resolve(undefined),
);
}); });

View file

@ -114,24 +114,48 @@ const router = new Router();
//#region static assets //#region static assets
router.get("/static-assets/(.*)", async (ctx) => { router.get("/static-assets/(.*)", async (ctx) => {
await send(ctx as any, ctx.path.replace("/static-assets/", ""), { try {
root: staticAssets, await send(ctx as any, ctx.path.replace("/static-assets/", ""), {
maxage: 7 * DAY, root: staticAssets,
}); maxage: 7 * DAY,
});
} catch (e) {
if (e.status === 404) {
ctx.throw(404, "File not found");
} else {
throw e;
}
}
}); });
router.get("/client-assets/(.*)", async (ctx) => { router.get("/client-assets/(.*)", async (ctx) => {
await send(ctx as any, ctx.path.replace("/client-assets/", ""), { try {
root: clientAssets, await send(ctx as any, ctx.path.replace("/client-assets/", ""), {
maxage: 7 * DAY, root: clientAssets,
}); maxage: 7 * DAY,
});
} catch (e) {
if (e.status === 404) {
ctx.throw(404, "File not found");
} else {
throw e;
}
}
}); });
router.get("/assets/(.*)", async (ctx) => { router.get("/assets/(.*)", async (ctx) => {
await send(ctx as any, ctx.path.replace("/assets/", ""), { try {
root: assets, await send(ctx as any, ctx.path.replace("/assets/", ""), {
maxage: 7 * DAY, root: assets,
}); maxage: 7 * DAY,
});
} catch (e) {
if (e.status === 404) {
ctx.throw(404, "File not found");
} else {
throw e;
}
}
}); });
// Apple touch icon // Apple touch icon

View file

@ -37,6 +37,32 @@ import { deleteFile } from "./delete-file.js";
const logger = driveLogger.createSubLogger("register", "yellow"); const logger = driveLogger.createSubLogger("register", "yellow");
type PathPartLike = string | null;
// Joins an array of elements into a URL pathname, possibly with a base URL object to append to.
// Null or 0-length parts will be left out.
function urlPathJoin(
baseOrParts: URL | PathPartLike[],
pathParts?: PathPartLike[],
): string {
if (baseOrParts instanceof URL) {
const url = new URL(baseOrParts as URL);
if (pathParts) {
pathParts.unshift(
url.pathname.endsWith("/") ? url.pathname.slice(0, -1) : url.pathname,
);
url.pathname = pathParts
.filter((x) => x !== null && x.toString().length > 0)
.join("/");
}
return url.toString();
}
const baseParts = baseOrParts.concat(pathParts ?? []);
return baseParts
.filter((x) => x !== null && x.toString().length > 0)
.join("/");
}
/*** /***
* Save file * Save file
* @param path Path for original * @param path Path for original
@ -77,17 +103,16 @@ async function save(
ext = ""; ext = "";
} }
const baseUrl = const baseUrl = new URL(
meta.objectStorageBaseUrl || meta.objectStorageBaseUrl ?? `/${meta.objectStorageBucket}`,
`${meta.objectStorageUseSSL ? "https" : "http"}://${ `${meta.objectStorageUseSSL ? "https" : "http"}://${
meta.objectStorageEndpoint meta.objectStorageEndpoint
}${meta.objectStoragePort ? `:${meta.objectStoragePort}` : ""}/${ }${meta.objectStoragePort ? `:${meta.objectStoragePort}` : ""}`,
meta.objectStorageBucket );
}`;
// for original // for original
const key = `${meta.objectStoragePrefix}/${uuid()}${ext}`; const key = urlPathJoin([meta.objectStoragePrefix, `${uuid()}${ext}`]);
const url = `${baseUrl}/${key}`; const url = urlPathJoin(baseUrl, [key]);
// for alts // for alts
let webpublicKey: string | null = null; let webpublicKey: string | null = null;
@ -101,10 +126,11 @@ async function save(
const uploads = [upload(key, fs.createReadStream(path), type, name)]; const uploads = [upload(key, fs.createReadStream(path), type, name)];
if (alts.webpublic) { if (alts.webpublic) {
webpublicKey = `${meta.objectStoragePrefix}/webpublic-${uuid()}.${ webpublicKey = urlPathJoin([
alts.webpublic.ext meta.objectStoragePrefix,
}`; `webpublic-${uuid()}.${alts.webpublic.ext}`,
webpublicUrl = `${baseUrl}/${webpublicKey}`; ]);
webpublicUrl = urlPathJoin(baseUrl, [webpublicKey]);
logger.info(`uploading webpublic: ${webpublicKey}`); logger.info(`uploading webpublic: ${webpublicKey}`);
uploads.push( uploads.push(
@ -113,10 +139,11 @@ async function save(
} }
if (alts.thumbnail) { if (alts.thumbnail) {
thumbnailKey = `${meta.objectStoragePrefix}/thumbnail-${uuid()}.${ thumbnailKey = urlPathJoin([
alts.thumbnail.ext meta.objectStoragePrefix,
}`; `thumbnail-${uuid()}.${alts.thumbnail.ext}`,
thumbnailUrl = `${baseUrl}/${thumbnailKey}`; ]);
thumbnailUrl = urlPathJoin(baseUrl, [thumbnailKey]);
logger.info(`uploading thumbnail: ${thumbnailKey}`); logger.info(`uploading thumbnail: ${thumbnailKey}`);
uploads.push( uploads.push(

View file

@ -11,17 +11,23 @@ export function getS3(meta: Meta) {
}` }`
: `${meta.objectStorageUseSSL ? "https://" : "http://"}example.net`; : `${meta.objectStorageUseSSL ? "https://" : "http://"}example.net`;
return new S3({ try {
endpoint: meta.objectStorageEndpoint || undefined, return new S3({
accessKeyId: meta.objectStorageAccessKey!, endpoint: meta.objectStorageEndpoint || undefined,
secretAccessKey: meta.objectStorageSecretKey!, accessKeyId: meta.objectStorageAccessKey!,
region: meta.objectStorageRegion || undefined, secretAccessKey: meta.objectStorageSecretKey!,
sslEnabled: meta.objectStorageUseSSL, region: meta.objectStorageRegion || undefined,
s3ForcePathStyle: !meta.objectStorageEndpoint // AWS with endPoint omitted sslEnabled: meta.objectStorageUseSSL,
? false s3ForcePathStyle: !meta.objectStorageEndpoint // AWS with endPoint omitted
: meta.objectStorageS3ForcePathStyle, ? false
httpOptions: { : meta.objectStorageS3ForcePathStyle,
agent: getAgentByUrl(new URL(u), !meta.objectStorageUseProxy), httpOptions: {
}, agent: getAgentByUrl(new URL(u), !meta.objectStorageUseProxy),
}); },
});
} catch (e) {
throw new Error(
`Failed to construct S3 client, assembled S3 URL: ${u}\n${e}`,
);
}
} }

View file

@ -115,6 +115,10 @@ export default class Logger {
console.log(important ? chalk.bold(log) : log); console.log(important ? chalk.bold(log) : log);
if (level === "error" && data !== null) {
console.log(data);
}
if (store) { if (store) {
if (this.syslogClient) { if (this.syslogClient) {
const send = const send =

View file

@ -10,7 +10,7 @@
}, },
"devDependencies": { "devDependencies": {
"@discordapp/twemoji": "14.1.2", "@discordapp/twemoji": "14.1.2",
"@eslint-sets/eslint-config-vue3": "^5.6.1", "@eslint-sets/eslint-config-vue3": "^5.7.0",
"@eslint-sets/eslint-config-vue3-ts": "^3.3.0", "@eslint-sets/eslint-config-vue3-ts": "^3.3.0",
"@phosphor-icons/web": "^2.0.3", "@phosphor-icons/web": "^2.0.3",
"@rollup/plugin-alias": "3.1.9", "@rollup/plugin-alias": "3.1.9",
@ -31,12 +31,11 @@
"@vitejs/plugin-vue": "4.2.3", "@vitejs/plugin-vue": "4.2.3",
"@vue/compiler-sfc": "3.3.4", "@vue/compiler-sfc": "3.3.4",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"autosize": "5.0.2", "autosize": "6.0.1",
"blurhash": "2.0.5", "blurhash": "2.0.5",
"broadcast-channel": "5.1.0", "broadcast-channel": "5.1.0",
"browser-image-resizer": "github:misskey-dev/browser-image-resizer", "browser-image-resizer": "github:misskey-dev/browser-image-resizer",
"firefish-js": "workspace:*", "chart.js": "4.3.2",
"chart.js": "4.3.0",
"chartjs-adapter-date-fns": "3.0.0", "chartjs-adapter-date-fns": "3.0.0",
"chartjs-chart-matrix": "^2.0.1", "chartjs-chart-matrix": "^2.0.1",
"chartjs-plugin-gradient": "0.6.1", "chartjs-plugin-gradient": "0.6.1",
@ -49,10 +48,11 @@
"date-fns": "2.30.0", "date-fns": "2.30.0",
"emojilib": "github:thatonecalculator/emojilib", "emojilib": "github:thatonecalculator/emojilib",
"escape-regexp": "0.0.1", "escape-regexp": "0.0.1",
"eslint-config-prettier": "^8.6.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-file-progress": "^1.3.0", "eslint-plugin-file-progress": "^1.3.0",
"eventemitter3": "5.0.1", "eventemitter3": "5.0.1",
"fast-blurhash": "^1.1.2", "fast-blurhash": "^1.1.2",
"firefish-js": "workspace:*",
"focus-trap": "^7.5.2", "focus-trap": "^7.5.2",
"focus-trap-vue": "^4.0.2", "focus-trap-vue": "^4.0.2",
"gsap": "^3.12.2", "gsap": "^3.12.2",
@ -70,9 +70,9 @@
"punycode": "2.3.0", "punycode": "2.3.0",
"querystring": "0.2.1", "querystring": "0.2.1",
"rndstr": "1.0.0", "rndstr": "1.0.0",
"rollup": "3.26.2", "rollup": "3.27.0",
"s-age": "1.1.2", "s-age": "1.1.2",
"sass": "1.63.6", "sass": "1.64.1",
"seedrandom": "3.0.5", "seedrandom": "3.0.5",
"start-server-and-test": "1.15.2", "start-server-and-test": "1.15.2",
"strict-event-emitter-types": "2.0.0", "strict-event-emitter-types": "2.0.0",
@ -90,7 +90,7 @@
"unicode-emoji-json": "^0.4.0", "unicode-emoji-json": "^0.4.0",
"uuid": "9.0.0", "uuid": "9.0.0",
"vanilla-tilt": "1.8.0", "vanilla-tilt": "1.8.0",
"vite": "4.4.2", "vite": "4.4.7",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",
"vue": "3.3.4", "vue": "3.3.4",
"vue-draggable-plus": "^0.2.2", "vue-draggable-plus": "^0.2.2",

View file

@ -91,6 +91,8 @@ const isThumbnailAvailable = computed(() => {
border: 0; border: 0;
padding: 0; padding: 0;
cursor: pointer; cursor: pointer;
align-items: center;
justify-content: center;
> .icon-sub { > .icon-sub {
position: absolute; position: absolute;

View file

@ -53,8 +53,11 @@ const props = defineProps<{
} }
> .thumbnail { > .thumbnail {
display: flex;
width: 100%; width: 100%;
height: 100%; height: 100%;
justify-content: center;
align-items: center;
position: absolute; position: absolute;
transition: all 0.5s ease; transition: all 0.5s ease;

View file

@ -12,7 +12,11 @@
:title="title" :title="title"
:type="type" :type="type"
:alt="alt" :alt="alt"
:class="{ cover }" :class="{
cover,
wide: largestDimension === 'width',
tall: largestDimension === 'height',
}"
:style="{ 'object-fit': cover ? 'cover' : null }" :style="{ 'object-fit': cover ? 'cover' : null }"
loading="lazy" loading="lazy"
@load="onLoad" @load="onLoad"
@ -32,6 +36,7 @@ const props = withDefaults(
title?: string | null; title?: string | null;
size?: number; size?: number;
cover?: boolean; cover?: boolean;
largestDimension?: "width" | "height";
}>(), }>(),
{ {
src: null, src: null,
@ -68,17 +73,27 @@ onMounted(() => {
canvas, canvas,
img { img {
display: block; display: block;
width: 100%; max-width: 100%;
height: 100%; max-height: 100%;
} }
canvas { canvas {
position: absolute; position: absolute;
inset: 0; inset: 0;
object-fit: cover; object-fit: cover;
width: 100%;
height: 100%;
} }
img { img {
object-fit: contain; object-fit: contain;
&.wide {
width: 100%;
}
&.tall {
height: 100%;
}
} }
</style> </style>

View file

@ -26,6 +26,7 @@
:alt="media.comment" :alt="media.comment"
:type="media.type" :type="media.type"
:cover="false" :cover="false"
:largest-dimension="largestDimension"
/> />
<div v-if="media.type === 'image/gif'" class="gif">GIF</div> <div v-if="media.type === 'image/gif'" class="gif">GIF</div>
</a> </a>
@ -120,6 +121,18 @@ const mediaType = computed(() => {
: props.media.type; : props.media.type;
}); });
let largestDimension: "width" | "height";
if (
props.media.type.startsWith("image") &&
props.media.properties?.width &&
props.media.properties?.height
) {
largestDimension =
props.media.properties.width > props.media.properties.height
? "width"
: "height";
}
function captionPopup() { function captionPopup() {
os.alert({ os.alert({
type: "info", type: "info",
@ -202,7 +215,7 @@ watch(
} }
> a { > a {
display: block; display: flex;
cursor: zoom-in; cursor: zoom-in;
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
@ -211,6 +224,9 @@ watch(
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
box-sizing: border-box; box-sizing: border-box;
justify-content: center;
align-items: center;
&:focus-visible { &:focus-visible {
border: 2px solid var(--accent); border: 2px solid var(--accent);
} }

View file

@ -75,7 +75,7 @@ onMounted(() => {
}), }),
gallery: gallery.value, gallery: gallery.value,
children: ".image", children: ".image",
thumbSelector: ".image", thumbSelector: ".image img",
loop: false, loop: false,
padding: padding:
window.innerWidth > 500 window.innerWidth > 500

View file

@ -236,6 +236,7 @@
import { inject, watch, nextTick, onMounted, defineAsyncComponent } from "vue"; import { inject, watch, nextTick, onMounted, defineAsyncComponent } from "vue";
import * as mfm from "mfm-js"; import * as mfm from "mfm-js";
import * as misskey from "firefish-js"; import * as misskey from "firefish-js";
import autosize from "autosize";
import insertTextAtCursor from "insert-text-at-cursor"; import insertTextAtCursor from "insert-text-at-cursor";
import { length } from "stringz"; import { length } from "stringz";
import { toASCII } from "punycode/"; import { toASCII } from "punycode/";
@ -993,7 +994,10 @@ onMounted(() => {
new Autocomplete(cwInputEl, $$(cw)); new Autocomplete(cwInputEl, $$(cw));
new Autocomplete(hashtagsInputEl, $$(hashtags)); new Autocomplete(hashtagsInputEl, $$(hashtags));
autosize(textareaEl);
nextTick(() => { nextTick(() => {
autosize(textareaEl);
// 稿 // 稿
if (!props.instant && !props.mention && !props.specified) { if (!props.instant && !props.mention && !props.specified) {
const draft = JSON.parse(localStorage.getItem("drafts") || "{}")[ const draft = JSON.parse(localStorage.getItem("drafts") || "{}")[
@ -1081,6 +1085,8 @@ onMounted(() => {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
display: flex;
align-items: center;
> .text-count { > .text-count {
opacity: 0.7; opacity: 0.7;
@ -1095,6 +1101,10 @@ onMounted(() => {
& + .localOnly { & + .localOnly {
margin-left: 0 !important; margin-left: 0 !important;
} }
> span:only-child > i {
display: block;
}
} }
> .local-only { > .local-only {
@ -1106,7 +1116,7 @@ onMounted(() => {
display: inline-block; display: inline-block;
padding: 0; padding: 0;
margin: 0 8px 0 0; margin: 0 8px 0 0;
font-size: 16px; font-size: inherit !important;
width: 34px; width: 34px;
height: 34px; height: 34px;
border-radius: 6px; border-radius: 6px;

View file

@ -16,6 +16,7 @@
: reaction : reaction
" "
:custom-emojis="note.emojis" :custom-emojis="note.emojis"
style="max-width: 100%"
/> />
<span style="margin-left: 4px">{{ <span style="margin-left: 4px">{{
note.reactions[reaction] note.reactions[reaction]
@ -83,6 +84,7 @@ onMounted(() => {
padding: 4px 6px; padding: 4px 6px;
border: solid 1px var(--divider); border: solid 1px var(--divider);
border-radius: 6px; border-radius: 6px;
max-width: 50%;
} }
.tabActive { .tabActive {

View file

@ -6,6 +6,7 @@
> >
<svg <svg
v-if="defaultStore.state.woozyMode === true" v-if="defaultStore.state.woozyMode === true"
style="transform: translateY(2px)"
width="1.1em" width="1.1em"
height="1.1em" height="1.1em"
viewBox="0 0 36 36" viewBox="0 0 36 36"
@ -13,6 +14,8 @@
<g fill="currentColor"> <g fill="currentColor">
<path <path
d="m17.809-0.20898c-9.9294 2.3e-7 -18 8.0706-18 18 5.8e-7 9.9294 8.0706 18 18 18 9.9294 0 18-8.0706 18-18 0-9.9294-8.0706-18-18-18zm0 1.9785c8.8604 1e-7 16.021 7.1611 16.021 16.021 0 8.8604-7.1611 16.023-16.021 16.023-8.8604 0-16.021-7.163-16.021-16.023-3e-7 -8.8604 7.1611-16.021 16.021-16.021z" d="m17.809-0.20898c-9.9294 2.3e-7 -18 8.0706-18 18 5.8e-7 9.9294 8.0706 18 18 18 9.9294 0 18-8.0706 18-18 0-9.9294-8.0706-18-18-18zm0 1.9785c8.8604 1e-7 16.021 7.1611 16.021 16.021 0 8.8604-7.1611 16.023-16.021 16.023-8.8604 0-16.021-7.163-16.021-16.023-3e-7 -8.8604 7.1611-16.021 16.021-16.021z"
stroke="currentColor"
stroke-width="2"
/> />
<path <path
d="m6.001 11c-0.552 0-1-0.448-1-1 0-0.551 0.445-0.998 0.996-1 0.156-2e-3 3.569-0.086 6.205-3.6 0.331-0.44 0.957-0.532 1.4-0.2 0.442 0.331 0.531 0.958 0.2 1.4-3.263 4.35-7.617 4.4-7.801 4.4zm24.986 2.393c0.128 0.537-0.204 1.077-0.741 1.205-0.536 0.128-1.074-0.202-1.204-0.737-0.038-0.151-0.911-3.452-4.941-5.201-0.505-0.22-0.739-0.808-0.519-1.315s0.809-0.739 1.315-0.519c4.989 2.165 6.047 6.388 6.09 6.567z" d="m6.001 11c-0.552 0-1-0.448-1-1 0-0.551 0.445-0.998 0.996-1 0.156-2e-3 3.569-0.086 6.205-3.6 0.331-0.44 0.957-0.532 1.4-0.2 0.442 0.331 0.531 0.958 0.2 1.4-3.263 4.35-7.617 4.4-7.801 4.4zm24.986 2.393c0.128 0.537-0.204 1.077-0.741 1.205-0.536 0.128-1.074-0.202-1.204-0.737-0.038-0.151-0.911-3.452-4.941-5.201-0.505-0.22-0.739-0.808-0.519-1.315s0.809-0.739 1.315-0.519c4.989 2.165 6.047 6.388 6.09 6.567z"

View file

@ -5,7 +5,7 @@
$style.root, $style.root,
{ yellow: user.isSilenced, red: user.isSuspended, gray: false }, { yellow: user.isSilenced, red: user.isSuspended, gray: false },
]" ]"
:to="userPage(user)" :to="props.showAboutPage ? `/user-info/${user.id}` : userPage(user)"
> >
<MkAvatar <MkAvatar
class="avatar" class="avatar"
@ -33,9 +33,11 @@ const props = withDefaults(
defineProps<{ defineProps<{
user: misskey.entities.User; user: misskey.entities.User;
withChart?: boolean; withChart?: boolean;
showAboutPage?: boolean;
}>(), }>(),
{ {
withChart: true, withChart: true,
showAboutPage: false,
}, },
); );
@ -99,6 +101,12 @@ if (props.withChart) {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
// > :global(.moderation) {
// display: flex;
// gap: 1rem;
// margin-right: 1rem;
// }
} }
> :global(.chart) { > :global(.chart) {

View file

@ -84,7 +84,7 @@ function tick() {
if ( if (
!invalid && !invalid &&
props.origin === null && !props.origin &&
(props.mode === "relative" || props.mode === "detail") (props.mode === "relative" || props.mode === "detail")
) { ) {
onMounted(() => { onMounted(() => {

View file

@ -30,8 +30,7 @@ const image = props.hpml.page.attachedFiles.find(
<style lang="scss" scoped> <style lang="scss" scoped>
.lzyxtsnt { .lzyxtsnt {
> img { display: flex;
max-width: 100%; justify-content: center;
}
} }
</style> </style>

View file

@ -5,10 +5,6 @@ import * as os from "@/os";
import { i18n } from "@/i18n"; import { i18n } from "@/i18n";
import { ui } from "@/config"; import { ui } from "@/config";
import { unisonReload } from "@/scripts/unison-reload"; import { unisonReload } from "@/scripts/unison-reload";
import { defaultStore } from "@/store";
import { instance } from "@/instance";
import { host } from "@/config";
import XTutorial from "@/components/MkTutorialDialog.vue";
export const navbarItemDef = reactive({ export const navbarItemDef = reactive({
notifications: { notifications: {
@ -60,14 +56,6 @@ export const navbarItemDef = reactive({
show: computed(() => $i != null), show: computed(() => $i != null),
to: "/my/lists", to: "/my/lists",
}, },
/*
groups: {
title: 'groups',
icon: 'ph-users-three ph-bold ph-lg',
show: computed(() => $i != null),
to: '/my/groups',
},
*/
antennas: { antennas: {
title: "antennas", title: "antennas",
icon: "ph-flying-saucer ph-bold ph-lg", icon: "ph-flying-saucer ph-bold ph-lg",

View file

@ -34,11 +34,7 @@
<div class="content"> <div class="content">
<img <img
ref="instanceIcon" ref="instanceIcon"
:src=" :src="iconSrc"
$instance.iconUrl ||
$instance.faviconUrl ||
'/favicon.ico'
"
aria-label="none" aria-label="none"
class="icon" class="icon"
:class="instanceIconAnimation" :class="instanceIconAnimation"
@ -211,8 +207,9 @@ withDefaults(
let stats = $ref(null); let stats = $ref(null);
let instanceIcon = $ref<HTMLImageElement>(); let instanceIcon = $ref<HTMLImageElement>();
let instanceIconAnimation = "none";
let iconClicks = 0; let iconClicks = 0;
let iconSrc = ref(instance.iconUrl || instance.faviconUrl || "/favicon.ico");
let instanceIconAnimation = ref("");
let tabs = ["overview", "emojis", "charts"]; let tabs = ["overview", "emojis", "charts"];
let tab = $ref(tabs[0]); let tab = $ref(tabs[0]);
watch($$(tab), () => syncSlide(tabs.indexOf(tab))); watch($$(tab), () => syncSlide(tabs.indexOf(tab)));
@ -261,38 +258,43 @@ definePageMetadata(
})), })),
); );
async function sleep(seconds) {
return new Promise((resolve) => setTimeout(resolve, seconds * 1000));
}
onMounted(() => { onMounted(() => {
if (defaultStore.state.woozyMode) { if (defaultStore.state.woozyMode === true) {
instanceIcon.src = "/static-assets/woozy.png"; iconSrc.value = "/static-assets/woozy.png";
instanceIcon.src = iconSrc.value;
} }
}); });
function easterEgg() { function easterEgg() {
iconClicks++; iconClicks++;
instanceIconAnimation = "noAnimation";
console.log(instanceIconAnimation);
sleep(0.1);
const normalizedCount = (iconClicks % 3) + 1;
instanceIconAnimation = `shake${normalizedCount}`;
if (iconClicks % 3 === 0) { if (iconClicks % 3 === 0) {
defaultStore.state.woozyMode = !defaultStore.state.woozyMode; defaultStore.state.woozyMode = !defaultStore.state.woozyMode;
sleep(0.4); defaultStore.set("woozyMode", defaultStore.state.woozyMode);
instanceIconAnimation = "noAnimation"; if (instanceIcon) {
instanceIconAnimation = "doSpinY"; instanceIconAnimation.value = "spin";
console.log(instanceIconAnimation); setTimeout(() => {
if (iconClicks % 6 === 0) { if (iconClicks % 6 === 0) {
instanceIcon.src = iconSrc.value =
instance.iconUrl || instance.faviconUrl || "/favicon.ico"; instance.iconUrl ||
} else { instance.faviconUrl ||
instanceIcon.src = "/static-assets/woozy.png"; "/favicon.ico";
} else {
iconSrc.value = "/static-assets/woozy.png";
}
instanceIcon.src = iconSrc.value;
}, 500);
} }
} }
} }
watch(iconSrc, (newValue, oldValue) => {
if (newValue !== oldValue) {
setTimeout(() => {
instanceIconAnimation.value = "";
}, 500);
}
});
let swiperRef = null; let swiperRef = null;
function setSwiperRef(swiper) { function setSwiperRef(swiper) {
@ -310,123 +312,6 @@ function syncSlide(index) {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@keyframes iconShake1 {
0% {
transform: translate(2px, 0px) rotate(-1deg);
}
10% {
transform: translate(2px, -3px) rotate(5deg);
}
20% {
transform: translate(-1px, -3px) rotate(3deg);
}
30% {
transform: translate(-2px, 0px) rotate(-1deg);
}
40% {
transform: translate(-2px, -1px) rotate(4deg);
}
50% {
transform: translate(-1px, -1px) rotate(1deg);
}
60% {
transform: translate(-2px, 0px) rotate(-8deg);
}
70% {
transform: translate(1px, 2px) rotate(-2deg);
}
80% {
transform: translate(-1px, 2px) rotate(4deg);
}
90% {
transform: translate(-1px, 1px) rotate(11deg);
}
100% {
transform: translate(-3px, -3px) rotate(-5deg);
}
}
@keyframes iconShake2 {
0% {
transform: translate(-1px, 5px) rotate(33deg);
}
10% {
transform: translate(-2px, 7px) rotate(20deg);
}
20% {
transform: translate(8px, 5px) rotate(31deg);
}
30% {
transform: translate(-2px, 5px) rotate(3deg);
}
40% {
transform: translate(4px, 6px) rotate(16deg);
}
50% {
transform: translate(8px, -3px) rotate(19deg);
}
60% {
transform: translate(7px, -2px) rotate(0deg);
}
70% {
transform: translate(4px, 4px) rotate(8deg);
}
80% {
transform: translate(7px, -3px) rotate(13deg);
}
90% {
transform: translate(6px, 7px) rotate(4deg);
}
100% {
transform: translate(4px, -2px) rotate(-2deg);
}
}
@keyframes iconShake3 {
0% {
transform: translate(12px, -2px) rotate(57deg);
}
10% {
transform: translate(10px, 2px) rotate(12deg);
}
20% {
transform: translate(10px, 4px) rotate(3deg);
}
30% {
transform: translate(17px, 11px) rotate(15deg);
}
40% {
transform: translate(12px, 20px) rotate(-11deg);
}
50% {
transform: translate(5px, 12px) rotate(43deg);
}
60% {
transform: translate(16px, 8px) rotate(-4deg);
}
70% {
transform: translate(14px, 11px) rotate(22deg);
}
80% {
transform: translate(9px, 19px) rotate(-3deg);
}
90% {
transform: translate(0px, 12px) rotate(-3deg);
}
100% {
transform: translate(17px, 3px) rotate(57deg);
}
}
@keyframes spinY {
0% {
transform: perspective(128px) rotateY(0deg);
}
100% {
transform: perspective(128px) rotateY(360deg);
}
}
.fwhjspax { .fwhjspax {
text-align: center; text-align: center;
border-radius: 10px; border-radius: 10px;
@ -441,27 +326,10 @@ function syncSlide(index) {
display: block; display: block;
margin: 16px auto 0 auto; margin: 16px auto 0 auto;
height: 64px; height: 64px;
border-radius: 8px; }
&.noAnimation { > .spin {
animation: none; animation: spinY 1s linear infinite;
}
&.shake1 {
animation: iconShake1 0.1s 1;
}
&.shake2 {
animation: iconShake2 0.2s 1;
}
&.shake3 {
animation: iconShake3 0.3s 1;
}
&.doSpinY {
animation: spinY 0.9s 1;
}
} }
> .name { > .name {

View file

@ -478,7 +478,6 @@ defineExpose({
display: block; display: block;
margin: auto; margin: auto;
height: 42px; height: 42px;
border-radius: 8px;
} }
} }
} }

View file

@ -134,7 +134,12 @@
v-model="objectStorageS3ForcePathStyle" v-model="objectStorageS3ForcePathStyle"
class="_formBlock" class="_formBlock"
> >
<template #label>s3ForcePathStyle</template> <template #label>{{
i18n.ts.objectStorageS3ForcePathStyle
}}</template>
<template #caption>{{
i18n.ts.objectStorageS3ForcePathStyleDesc
}}</template>
</FormSwitch> </FormSwitch>
</template> </template>
</div> </div>
@ -149,7 +154,6 @@ import FormSwitch from "@/components/form/switch.vue";
import FormInput from "@/components/form/input.vue"; import FormInput from "@/components/form/input.vue";
import FormSuspense from "@/components/form/suspense.vue"; import FormSuspense from "@/components/form/suspense.vue";
import FormSplit from "@/components/form/split.vue"; import FormSplit from "@/components/form/split.vue";
import FormSection from "@/components/form/section.vue";
import * as os from "@/os"; import * as os from "@/os";
import { fetchInstance } from "@/instance"; import { fetchInstance } from "@/instance";
import { i18n } from "@/i18n"; import { i18n } from "@/i18n";

View file

@ -84,8 +84,8 @@ const diskAvailable = $computed(() => meta.fs.total - meta.fs.used);
function onStats(stats) { function onStats(stats) {
cpuUsage = stats.cpu; cpuUsage = stats.cpu;
memUsage = stats.mem.active / meta.mem.total; memUsage = stats.mem.active / stats.mem.total;
memTotal = meta.mem.total; memTotal = stats.mem.total;
memUsed = stats.mem.active; memUsed = stats.mem.active;
memFree = memTotal - memUsed; memFree = memTotal - memUsed;

View file

@ -100,19 +100,20 @@
:pagination="pagination" :pagination="pagination"
class="users" class="users"
> >
<MkA <MkUserCardMini
v-for="user in items" v-for="user in items"
:key="user.id" :key="user.id"
v-tooltip.mfm=" v-tooltip.mfm="
`Last posted: ${new Date( user.updatedAt
user.updatedAt, ? `Last posted: ${new Date(
).toLocaleString()}` user.updatedAt,
).toLocaleString()}`
: 'Never posted'
" "
class="user" class="user"
:to="`/user-info/${user.id}`" :user="user"
> :show-about-page="true"
<MkUserCardMini :user="user" /> />
</MkA>
</MkPagination> </MkPagination>
</div> </div>
</div> </div>

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