diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index b6ebcf6ad3..d208ad6ecf 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1 +1 @@
-FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
+FROM mcr.microsoft.com/devcontainers/javascript-node:4.0.3-24-trixie
diff --git a/.github/workflows/dockle.yml b/.github/workflows/dockle.yml
index 1c0863e274..1c0fe70116 100644
--- a/.github/workflows/dockle.yml
+++ b/.github/workflows/dockle.yml
@@ -13,20 +13,36 @@ jobs:
runs-on: ubuntu-latest
env:
DOCKER_CONTENT_TRUST: 1
- DOCKLE_VERSION: 0.4.14
+ DOCKLE_VERSION: 0.4.15
+
steps:
- uses: actions/checkout@v4.3.0
+
- name: Download and install dockle v${{ env.DOCKLE_VERSION }}
run: |
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v${DOCKLE_VERSION}/dockle_${DOCKLE_VERSION}_Linux-64bit.deb"
sudo dpkg -i dockle.deb
+
- run: |
cp .config/docker_example.env .config/docker.env
cp ./compose_example.yml ./compose.yml
+
- run: |
docker compose up -d web
- docker tag "$(docker compose images --format json web | jq -r '.[] | .ID')" misskey-web:latest
- - run: |
- cmd="dockle --exit-code 1 misskey-web:latest ${image_name}"
- echo "> ${cmd}"
- eval "${cmd}"
+ IMAGE_ID=$(docker compose images --format json web | jq -r '.[0].ID')
+ docker tag "${IMAGE_ID}" misskey-web:latest
+
+ - name: Prune docker junk (optional but recommended)
+ run: |
+ docker system prune -af
+ docker volume prune -f
+
+ - name: Save image for Dockle
+ run: |
+ docker save misskey-web:latest -o ./misskey-web.tar
+ ls -lh ./misskey-web.tar
+
+ - name: Run Dockle with tar input
+ run: |
+ dockle --exit-code 1 --input ./misskey-web.tar
+
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index a2d3bf8755..d80c56f032 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -96,6 +96,7 @@ jobs:
matrix:
workspace:
- backend
+ - frontend
- sw
- misskey-js
steps:
@@ -111,7 +112,9 @@ jobs:
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- run: pnpm --filter misskey-js run build
- if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'sw' }}
+ if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'frontend' || matrix.workspace == 'sw' }}
- run: pnpm --filter misskey-reversi run build
- if: ${{ matrix.workspace == 'backend' }}
+ if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'frontend' }}
+ - run: pnpm --filter misskey-bubble-game run build
+ if: ${{ matrix.workspace == 'frontend' }}
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9cdafe6b35..b8295bcf0b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,17 @@
+## Unreleased
+
+### General
+-
+
+### Client
+
+- Enhance: リアクションの受け入れ設定にキャプションを追加 #15921
+- Fix: ページの内容がはみ出ることがある問題を修正
+- Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816
+
+### Server
+- Enhance: `clips/my-favorites` APIがページネーションに対応しました
+
## 2025.11.0
### General
@@ -26,9 +40,12 @@
- Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正
- Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように
- Fix: ページのタイトルが長いとき、はみ出る問題を修正
+- Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789
+- FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626
### Server
- Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように
+- Fix: チャンネルの説明欄の最小文字数制約を除去
## 2025.10.2
diff --git a/ROADMAP.md b/ROADMAP.md
index 509ecb9fe7..7f5f268f2b 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -6,7 +6,7 @@ Also, the later tasks are more indefinite and are subject to change as developme
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
- ~~Make the number of type errors zero (backend)~~ → Done ✔️
-- Make the number of type errors zero (frontend)
+- ~~Make the number of type errors zero (frontend)~~ → Done ✔️
- Improve CI
- ~~Fix tests~~ → Done ✔️
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml
index 98b9810b69..d130d4b4b3 100644
--- a/locales/ar-SA.yml
+++ b/locales/ar-SA.yml
@@ -1011,6 +1011,14 @@ information: "عن"
inMinutes: "د"
inDays: "ي"
widgets: "التطبيقات المُصغّرة"
+presets: "إعدادات مسبقة"
+_imageEditing:
+ _vars:
+ filename: "اسم الملف"
+_imageFrameEditor:
+ font: "الخط"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "دعوة"
noHistory: "السجل فارغ"
@@ -1397,6 +1405,9 @@ _postForm:
replyPlaceholder: "رد على هذه الملاحظة…"
quotePlaceholder: "اقتبس هذه الملاحظة…"
channelPlaceholder: "انشر في قناة..."
+ _howToUse:
+ visibility_title: "الظهور"
+ menu_title: "القائمة"
_placeholders:
a: "ما الذي تنوي فعله؟"
b: "ماذا يحدث حولك ؟"
diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml
index 1c61bc73cf..e7d391cd70 100644
--- a/locales/bn-BD.yml
+++ b/locales/bn-BD.yml
@@ -851,6 +851,14 @@ information: "আপনার সম্পর্কে"
inMinutes: "মিনিট"
inDays: "দিন"
widgets: "উইজেটগুলি"
+_imageEditing:
+ _vars:
+ filename: "ফাইলের নাম"
+_imageFrameEditor:
+ header: "হেডার"
+ font: "ফন্ট"
+ fontSerif: "সেরিফ"
+ fontSansSerif: "স্যান্স সেরিফ"
_chat:
invitations: "আমন্ত্রণ"
noHistory: "কোনো ইতিহাস নেই"
@@ -1169,6 +1177,9 @@ _postForm:
replyPlaceholder: "নোটটির জবাব দিন..."
quotePlaceholder: "নোটটিকে উদ্ধৃত করুন..."
channelPlaceholder: "চ্যানেলে পোস্ট করুন..."
+ _howToUse:
+ visibility_title: "দৃশ্যমানতা"
+ menu_title: "মেনু"
_placeholders:
a: "আপনি এখন কি করছেন?"
b: "আপনার আশে পাশে কি হচ্ছে?"
diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml
index 2ab2526865..1730bdbe79 100644
--- a/locales/ca-ES.yml
+++ b/locales/ca-ES.yml
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "La càrrega des de l'enllaç pot trigar un temps"
uploadNFiles: "Pujar {n} arxius"
explore: "Explora"
messageRead: "Vist"
+readAllChatMessages: "Marcar tots els missatges com a llegits"
noMoreHistory: "No hi ha res més per veure"
startChat: "Comença a xatejar "
nUsersRead: "Vist per {n}"
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "L'enviament de notificacions ja és activat"
pushNotificationNotSupported: "El teu navegador o la teva instància no suporta l'enviament de notificacions "
sendPushNotificationReadMessage: "Esborrar les notificacions enviades quan s'hagin llegit"
sendPushNotificationReadMessageCaption: "Això pot fer que el teu dispositiu consumeixi més bateria"
+pleaseAllowPushNotification: "Si us plau, permet les notificacions del navegador"
+browserPushNotificationDisabled: "No s'ha pogut obtenir permisos per les notificacions"
+browserPushNotificationDisabledDescription: "No tens permisos per enviar notificacions des de {serverName}. Activa les notificacions a la configuració del teu navegador i tornar-ho a intentar."
windowMaximize: "Maximitzar "
windowMinimize: "Minimitzar"
windowRestore: "Restaurar"
@@ -1396,6 +1400,50 @@ scheduled: "Programat"
widgets: "Ginys"
deviceInfo: "Informació del dispositiu"
deviceInfoDescription: "En fer consultes tècniques influir la següent informació pot ajudar a resoldre'l més ràpidament."
+youAreAdmin: "Ets l'administrador "
+frame: "Marc"
+presets: "Predefinit"
+zeroPadding: "Sense omplir"
+_imageEditing:
+ _vars:
+ caption: "Títol de l'arxiu"
+ filename: "Nom del Fitxer"
+ filename_without_ext: "Nom de l'arxiu sense extensió "
+ year: "Any"
+ month: "Mes"
+ day: "Dia"
+ hour: "Hora"
+ minute: "Minut"
+ second: "Segon"
+ camera_model: "Nom de la càmera "
+ camera_lens_model: "Nom de la lent"
+ camera_mm: "Distància focal"
+ camera_mm_35: "Distància focal (equivalent a 35 mm)"
+ camera_f: "Obertura"
+ camera_s: "Velocitat d'obturació"
+ camera_iso: "Sensibilitat ISO"
+ gps_lat: "Latitud "
+ gps_long: "Longitud "
+_imageFrameEditor:
+ title: "Edició de fotogrames "
+ tip: "Pots decorar les imatges afegint etiquetes que continguin marcs i metadades."
+ header: "Capçalera"
+ footer: "Peu de pàgina "
+ borderThickness: "Amplada de la vora"
+ labelThickness: "Amplada de l'etiqueta "
+ labelScale: "Mida de l'etiqueta "
+ centered: "Alinea al centre"
+ captionMain: "Peu de foto (gran)"
+ captionSub: "Peu de foto (petit)"
+ availableVariables: "Variables disponibles"
+ withQrCode: "Codi QR"
+ backgroundColor: "Color del fons"
+ textColor: "Color del text"
+ font: "Lletra tipogràfica"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "Sortir sense desar?"
+ failedToLoadImage: "Error en carregar la imatge"
_compression:
_quality:
high: "Qualitat alta"
@@ -1498,6 +1546,8 @@ _settings:
showUrlPreview: "Mostrar vista prèvia d'URL"
showAvailableReactionsFirstInNote: "Mostra les reacciones que pots fer servir al damunt"
showPageTabBarBottom: "Mostrar les pestanyes de les línies de temps a la part inferior"
+ emojiPaletteBanner: "Pots registrar ajustos preestablerts com paletes perquè es mostrin permanentment al selector d'emojis, o personalitzar la configuració de visió del selector."
+ enableAnimatedImages: "Activar imatges animades"
_chat:
showSenderName: "Mostrar el nom del remitent"
sendOnEnter: "Introdueix per enviar"
@@ -1506,6 +1556,8 @@ _preferencesProfile:
profileNameDescription: "Estableix un nom que identifiqui aquest dispositiu."
profileNameDescription2: "Per exemple: \"PC Principal\", \"Smartphone\", etc"
manageProfiles: "Gestionar perfils"
+ shareSameProfileBetweenDevicesIsNotRecommended: "No recomanem compartir el mateix perfil en diferents dispositius."
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "Si hi ha ajustos que vols sincronitzar entre diferents dispositius activa l'opció \"Sincronitza entre diferents dispositius\" individualment per cada una de les diferents opcions."
_preferencesBackup:
autoBackup: "Còpia de seguretat automàtica "
restoreFromBackup: "Restaurar des d'una còpia de seguretat"
@@ -1515,6 +1567,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "Has de posar-li un nom al teu perfil per poder activar les còpies de seguretat automàtiques."
autoPreferencesBackupIsNotEnabledForThisDevice: "La còpia de seguretat automàtica no es troba activada en aquest dispositiu."
backupFound: "Còpia de seguretat de la configuració trobada"
+ forceBackup: "Còpia de seguretat forçada de la configuració "
_accountSettings:
requireSigninToViewContents: "És obligatori l'inici de sessió per poder veure el contingut"
requireSigninToViewContentsDescription1: "Es requereix l'inici de sessió per poder veure totes les notes i el contingut que has creat. Amb això esperem evitar que els rastrejadors recopilin informació."
@@ -2530,6 +2583,20 @@ _postForm:
replyPlaceholder: "Contestar..."
quotePlaceholder: "Citar..."
channelPlaceholder: "Publicar a un canal..."
+ showHowToUse: "Mostrar les instruccions"
+ _howToUse:
+ content_title: "Cos principal"
+ content_description: "Introdueix el contingut que vols publicar."
+ toolbar_title: "Barra d'eines "
+ toolbar_description: "Pots adjuntar arxius o enquestes, afegir anotacions o etiquetes i inserir emojis o mencions."
+ account_title: "Menú del compte"
+ account_description: "Pots anar canviant de comptes per publicar o veure una llista d'esborranys i les publicacions programades del teu compte."
+ visibility_title: "Visibilitat"
+ visibility_description: "Pots configurar la visibilitat de les teves notes."
+ menu_title: "Menú"
+ menu_description: "Pots fer altres accions com desar esborranys, programar publicacions i configurar reaccions."
+ submit_title: "Botó per publicar"
+ submit_description: "Publica les teves notes. També pots fer servir Ctrl + Enter / Cmd + Enter"
_placeholders:
a: "Que vols dir?..."
b: "Alguna cosa interessant al teu voltant?..."
@@ -2807,6 +2874,8 @@ _abuseReport:
notifiedWebhook: "Webhook que s'ha de fer servir"
deleteConfirm: "Segur que vols esborrar el destinatari de l'informe de moderació?"
_moderationLogTypes:
+ clearQueue: "Esborra la cua de feina"
+ promoteQueue: "Tornar a intentar la feina de la cua"
createRole: "Rol creat"
deleteRole: "Rol esborrat"
updateRole: "Rol actualitzat"
@@ -3223,11 +3292,13 @@ _watermarkEditor:
polkadotSubDotRadius: "Mida del lunar secundari"
polkadotSubDotDivisions: "Nombre de punts secundaris"
leaveBlankToAccountUrl: "Si deixes aquest camp buit, es farà servir l'URL del teu compte"
+ failedToLoadImage: "Error en carregar la imatge"
_imageEffector:
title: "Efecte"
addEffect: "Afegeix un efecte"
discardChangesConfirm: "Vols descartar els canvis i sortir?"
nothingToConfigure: "No hi ha opcions de configuració disponibles"
+ failedToLoadImage: "Error en carregar la imatge"
_fxs:
chromaticAberration: "Aberració cromàtica"
glitch: "Glitch"
diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml
index 6cfbd2024f..4738b1de13 100644
--- a/locales/cs-CZ.yml
+++ b/locales/cs-CZ.yml
@@ -1110,6 +1110,15 @@ information: "Informace"
inMinutes: "Minut"
inDays: "Dnů"
widgets: "Widgety"
+presets: "Předvolba"
+_imageEditing:
+ _vars:
+ filename: "Název souboru"
+_imageFrameEditor:
+ header: "Nadpis"
+ font: "Písmo"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "Pozvat"
noHistory: "Žádná historie"
@@ -1822,6 +1831,9 @@ _postForm:
replyPlaceholder: "Odpovědět na tuto poznámku..."
quotePlaceholder: "Citovat tuto poznámku..."
channelPlaceholder: "Zveřejnit příspěvek do kanálu..."
+ _howToUse:
+ visibility_title: "Viditelnost"
+ menu_title: "Menu"
_placeholders:
a: "Co máte v plánu?"
b: "Co se děje kolem vás?"
diff --git a/locales/de-DE.yml b/locales/de-DE.yml
index da19768bee..ba7ca27e66 100644
--- a/locales/de-DE.yml
+++ b/locales/de-DE.yml
@@ -1371,6 +1371,16 @@ defaultImageCompressionLevel_description: "Ein niedrigerer Wert erhält die Bild
inMinutes: "Minute(n)"
inDays: "Tag(en)"
widgets: "Widgets"
+presets: "Vorlage"
+_imageEditing:
+ _vars:
+ filename: "Dateiname"
+_imageFrameEditor:
+ header: "Kopfzeile"
+ font: "Schriftart"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "Nicht gespeicherte Änderungen verwerfen?"
_order:
newest: "Neueste zuerst"
oldest: "Älteste zuerst"
@@ -2480,6 +2490,9 @@ _postForm:
replyPlaceholder: "Dieser Notiz antworten …"
quotePlaceholder: "Diese Notiz zitieren …"
channelPlaceholder: "In einen Kanal senden"
+ _howToUse:
+ visibility_title: "Sichtbarkeit"
+ menu_title: "Menü"
_placeholders:
a: "Was machst du momentan?"
b: "Was ist um dich herum los?"
diff --git a/locales/el-GR.yml b/locales/el-GR.yml
index a4874fb156..693e2b93c5 100644
--- a/locales/el-GR.yml
+++ b/locales/el-GR.yml
@@ -289,6 +289,9 @@ renotes: "Κοινοποίηση σημειώματος"
postForm: "Φόρμα δημοσίευσης"
information: "Πληροφορίες"
widgets: "Μαραφέτια"
+_imageEditing:
+ _vars:
+ filename: "Όνομα αρχείου"
_chat:
members: "Μέλη"
home: "Κεντρικό"
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 1fd97852ea..c73c9aa605 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "It may take some time until the upload is complete."
uploadNFiles: "Upload {n} files"
explore: "Explore"
messageRead: "Read"
+readAllChatMessages: "Mark all messages as read"
noMoreHistory: "There is no further history"
startChat: "Start chat"
nUsersRead: "read by {n}"
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "Push notifications are already enabled"
pushNotificationNotSupported: "Your browser or instance does not support push notifications"
sendPushNotificationReadMessage: "Delete push notifications once they have been read"
sendPushNotificationReadMessageCaption: "This may increase the power consumption of your device."
+pleaseAllowPushNotification: "Please enable push notifications in your browser"
+browserPushNotificationDisabled: "Failed to acquire permission to send notifications"
+browserPushNotificationDisabledDescription: "You do not have permission to send notifications from {serverName}. Please allow notifications in your browser settings and try again."
windowMaximize: "Maximize"
windowMinimize: "Minimize"
windowRestore: "Restore"
@@ -1396,6 +1400,50 @@ scheduled: "Scheduled"
widgets: "Widgets"
deviceInfo: "Device information"
deviceInfoDescription: "When making technical inquiries, including the following information may help resolve the issue."
+youAreAdmin: "You are admin"
+frame: "Frame"
+presets: "Preset"
+zeroPadding: "Zero padding"
+_imageEditing:
+ _vars:
+ caption: "File caption"
+ filename: "Filename"
+ filename_without_ext: "Filename without extension"
+ year: "Year of photography"
+ month: "Month of photogrphy"
+ day: "Date of photography"
+ hour: "Time the photo was taken (hour)"
+ minute: "Time the photo was taken (minute)"
+ second: "Time the photo was taken (second)"
+ camera_model: "Camera Name"
+ camera_lens_model: "Lens model"
+ camera_mm: "Focal length"
+ camera_mm_35: "Focal length (in 35 mm format)"
+ camera_f: "Aperture (f-number)"
+ camera_s: "Shutter speed"
+ camera_iso: "ISO"
+ gps_lat: "Latitude"
+ gps_long: "Longitude"
+_imageFrameEditor:
+ title: "Edit frame"
+ tip: "You can decorate images by adding labels that include frames and metadata."
+ header: "Header"
+ footer: "Footer"
+ borderThickness: "Frame width"
+ labelThickness: "Label width"
+ labelScale: "Label scale"
+ centered: "Centered"
+ captionMain: "Caption (Big)"
+ captionSub: "Caption (Small)"
+ availableVariables: "Supported variables"
+ withQrCode: "QR Code"
+ backgroundColor: "Background color"
+ textColor: "Text color"
+ font: "Font"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "Discard unsaved changes?"
+ failedToLoadImage: "Failed to load image"
_compression:
_quality:
high: "High quality"
@@ -1498,6 +1546,8 @@ _settings:
showUrlPreview: "Show URL preview"
showAvailableReactionsFirstInNote: "Show available reactions at the top."
showPageTabBarBottom: "Show page tab bar at the bottom"
+ emojiPaletteBanner: "You can register presets as palettes to display prominently in the emoji picker or customize the appearance of the picker."
+ enableAnimatedImages: "Enable animated images"
_chat:
showSenderName: "Show sender's name"
sendOnEnter: "Press Enter to send"
@@ -1515,6 +1565,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "A profile name must be set to enable auto backup."
autoPreferencesBackupIsNotEnabledForThisDevice: "Settings auto backup is not enabled on this device."
backupFound: "Settings backup is found"
+ forceBackup: "Force a backup of settings"
_accountSettings:
requireSigninToViewContents: "Require sign-in to view contents"
requireSigninToViewContentsDescription1: "Require login to view all notes and other content you have created. This will have the effect of preventing crawlers from collecting your information."
@@ -2530,6 +2581,20 @@ _postForm:
replyPlaceholder: "Reply to this note..."
quotePlaceholder: "Quote this note..."
channelPlaceholder: "Post to a channel..."
+ showHowToUse: "Show how to use this form"
+ _howToUse:
+ content_title: "Body"
+ content_description: "Enter the content you wish to post here."
+ toolbar_title: "Toolbars"
+ toolbar_description: "You can attach files or poll, add annotations or hashtags, and insert emojis or mentions."
+ account_title: "Account menu"
+ account_description: "You can switch between accounts for posting, or view a list of drafts and scheduled posts saved to your account."
+ visibility_title: "Visibility"
+ visibility_description: "You can configure the visibility of your notes."
+ menu_title: "Menu"
+ menu_description: "You can save current content to drafts, schedule posts, set reactions, and perform other actions."
+ submit_title: "Post button"
+ submit_description: "Post your notes by pressing this button. You can also post using Ctrl + Enter / Cmd + Enter."
_placeholders:
a: "What are you up to?"
b: "What's happening around you?"
@@ -2807,6 +2872,8 @@ _abuseReport:
notifiedWebhook: "Webhook to use"
deleteConfirm: "Are you sure that you want to delete the notification recipient?"
_moderationLogTypes:
+ clearQueue: "Clear queue"
+ promoteQueue: "Promote queue"
createRole: "Role created"
deleteRole: "Role deleted"
updateRole: "Role updated"
@@ -3223,11 +3290,13 @@ _watermarkEditor:
polkadotSubDotRadius: "Size of the secondary dot"
polkadotSubDotDivisions: "Number of sub-dots."
leaveBlankToAccountUrl: "Leave blank to use account URL"
+ failedToLoadImage: "Failed to load image"
_imageEffector:
title: "Effects"
addEffect: "Add Effects"
discardChangesConfirm: "Are you sure you want to leave? You have unsaved changes."
nothingToConfigure: "No configurable options available"
+ failedToLoadImage: "Failed to load image"
_fxs:
chromaticAberration: "Chromatic Aberration"
glitch: "Glitch"
diff --git a/locales/es-ES.yml b/locales/es-ES.yml
index b9d45b3af0..2e32e0d479 100644
--- a/locales/es-ES.yml
+++ b/locales/es-ES.yml
@@ -5,7 +5,7 @@ introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentra
poweredByMisskeyDescription: "{name} es uno de los servicios (también llamado instancia) que usa la plataforma de código abierto Misskey"
monthAndDay: "{day}/{month}"
search: "Buscar"
-reset: "Reiniciar"
+reset: "Restablecer"
notifications: "Notificaciones"
username: "Nombre de usuario"
password: "Contraseña"
@@ -43,7 +43,7 @@ favorite: "Añadir a favoritos"
favorites: "Favoritos"
unfavorite: "Quitar de favoritos"
favorited: "Añadido a favoritos."
-alreadyFavorited: "Ya había sido añadido a favoritos"
+alreadyFavorited: "Ya añadido a favoritos."
cantFavorite: "No se puede añadir a favoritos."
pin: "Fijar al perfil"
unpin: "Desfijar"
@@ -87,7 +87,7 @@ exportRequested: "Has solicitado la exportación. Puede llevar un tiempo. Cuando
importRequested: "Has solicitado la importación. Puede llevar un tiempo."
lists: "Listas"
noLists: "No tienes ninguna lista"
-note: "Notas"
+note: "Nota"
notes: "Notas"
following: "Siguiendo"
followers: "Seguidores"
@@ -129,7 +129,7 @@ clickToShow: "Haz clic para verlo"
sensitive: "Marcado como sensible"
add: "Agregar"
reaction: "Reacción"
-reactions: "Reacción"
+reactions: "Reacciones"
emojiPicker: "Selector de emojis"
pinnedEmojisForReactionSettingDescription: "Puedes seleccionar reacciones para fijarlos en el selector"
pinnedEmojisSettingDescription: "Puedes seleccionar emojis para fijarlos en el selector"
@@ -251,7 +251,7 @@ noUsers: "No hay usuarios"
editProfile: "Editar perfil"
noteDeleteConfirm: "¿Quieres borrar esta nota?"
pinLimitExceeded: "Ya no se pueden fijar más notas"
-done: "Terminado"
+done: "Hecho"
processing: "Procesando..."
preprocessing: "Preparando"
preview: "Vista previa"
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo."
uploadNFiles: "Subir {n} archivos"
explore: "Explorar"
messageRead: "Ya leído"
+readAllChatMessages: "Marcar todos los mensajes como leídos"
noMoreHistory: "El historial se ha acabado"
startChat: "Nuevo Chat"
nUsersRead: "Leído por {n} personas"
@@ -915,7 +916,7 @@ lastCommunication: "Última comunicación"
resolved: "Resuelto"
unresolved: "Sin resolver"
breakFollow: "Eliminar seguidor"
-breakFollowConfirm: "¿Quieres dejar de seguir?"
+breakFollowConfirm: "¿De verdad quieres eliminar a este seguidor?"
itsOn: "¡Está encendido!"
itsOff: "¡Está apagado!"
on: "Activado"
@@ -985,7 +986,7 @@ typeToConfirm: "Ingrese {x} para confirmar"
deleteAccount: "Borrar cuenta"
document: "Documento"
numberOfPageCache: "Cantidad de páginas cacheadas"
-numberOfPageCacheDescription: "Al aumentar el número mejora la conveniencia pero tambien puede aumentar la carga y la memoria a usarse"
+numberOfPageCacheDescription: "Al aumentar el número mejora la conveniencia pero también puede aumentar la carga y la memoria a usarse"
logoutConfirm: "¿Cerrar sesión?"
logoutWillClearClientData: "Al cerrar la sesión, la información de configuración del cliente se borra del navegador. Para garantizar que la información de configuración se pueda restaurar al volver a iniciar sesión, active la copia de seguridad automática de la configuración."
lastActiveDate: "Utilizado por última vez el"
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "Notificaciones emergentes ya activadas"
pushNotificationNotSupported: "El navegador o la instancia no admiten notificaciones push"
sendPushNotificationReadMessage: "Eliminar las notificaciones push después de leer las notificaciones y los mensajes"
sendPushNotificationReadMessageCaption: "La notificación \"{emptyPushNotificationMessage}\" aparecerá momentáneamente. Esto puede aumentar el consumo de batería del dispositivo."
+pleaseAllowPushNotification: "Por favor, permita las notificaciones y la configuración del navegador."
+browserPushNotificationDisabled: "No se ha podido obtener permiso para enviar notificaciones."
+browserPushNotificationDisabledDescription: "No tienes permiso para enviar notificaciones desde {serverName}. Permite las notificaciones en la configuración de tu navegador y vuelve a intentarlo."
windowMaximize: "Maximizar"
windowMinimize: "Minimizar"
windowRestore: "Regresar"
@@ -1153,7 +1157,7 @@ initialAccountSetting: "Configración inicial de su cuenta"
youFollowing: "Siguiendo"
preventAiLearning: "Rechazar el uso en el Aprendizaje de Máquinas. (IA Generativa)"
preventAiLearningDescription: "Pedirle a las arañas (crawlers) no usar los textos publicados o imágenes en el aprendizaje automático (IA Predictiva / Generativa). Ésto se logra añadiendo una marca respuesta HTML con la cadena \"noai\" al cantenido. Una prevención total no podría lograrse sólo usando ésta marca, ya que puede ser simplemente ignorada."
-options: "Opción"
+options: "Opciones"
specifyUser: "Especificar usuario"
lookupConfirm: "¿Quiere informarse?"
openTagPageConfirm: "¿Quieres abrir la página de etiquetas?"
@@ -1263,7 +1267,7 @@ addMfmFunction: "Añadir función MFM"
enableQuickAddMfmFunction: "Activar acceso rápido para añadir funciones MFM"
bubbleGame: "Bubble Game"
sfx: "Efectos de sonido"
-soundWillBePlayed: "Se reproducirán efectos sonoros"
+soundWillBePlayed: "Con música y efectos sonoros"
showReplay: "Ver reproducción"
replay: "Reproducir"
replaying: "Reproduciendo"
@@ -1390,12 +1394,56 @@ thankYouForTestingBeta: "¡Gracias por tu colaboración en la prueba de la versi
createUserSpecifiedNote: "Mencionar al usuario (Nota Directa)"
schedulePost: "Programar una nota"
scheduleToPostOnX: "Programar una nota para {x}"
-scheduledToPostOnX: "La nota está programada para {x}."
-schedule: "Programado"
+scheduledToPostOnX: "La nota está programada para el {x}."
+schedule: "Programar"
scheduled: "Programado"
widgets: "Widgets"
deviceInfo: "Información del dispositivo"
deviceInfoDescription: "Al realizar consultas técnicas, incluir la siguiente información puede ayudar a resolver el problema."
+youAreAdmin: "Eres administrador."
+frame: "Marco"
+presets: "Predefinido"
+zeroPadding: "Relleno cero"
+_imageEditing:
+ _vars:
+ caption: "Título del archivo"
+ filename: "Nombre de archivo"
+ filename_without_ext: "Nombre del archivo sin la extensión"
+ year: "Año de rodaje"
+ month: "Mes de rodaje"
+ day: "Día de rodaje"
+ hour: "Hora"
+ minute: "Minuto"
+ second: "Segundo"
+ camera_model: "Nombre de la cámara"
+ camera_lens_model: "Modelo de lente"
+ camera_mm: "Distancia focal"
+ camera_mm_35: "Distancia Focal (Equivalente a formato de 35mm)"
+ camera_f: "Apertura de diafragma"
+ camera_s: "Velocidad de Obturación"
+ camera_iso: "Sensibilidad ISO"
+ gps_lat: "Latitud"
+ gps_long: "Longitud"
+_imageFrameEditor:
+ title: "Edición de Fotograma"
+ tip: "Decora tus imágenes con marcos y etiquetas que contengan metadatos."
+ header: "Cabezal"
+ footer: "Pie de página"
+ borderThickness: "Ancho del borde"
+ labelThickness: "Ancho de la etiqueta"
+ labelScale: "Escala de la Etiqueta"
+ centered: "Alinear al centro"
+ captionMain: "Pie de foto (Grande)"
+ captionSub: "Pie de foto (Pequeño)"
+ availableVariables: "Variables disponibles"
+ withQrCode: "Código QR"
+ backgroundColor: "Color de fondo"
+ textColor: "Color del texto"
+ font: "Fuente"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "¿Descartar cambios no guardados?"
+ failedToLoadImage: "Error al cargar la imagen"
_compression:
_quality:
high: "Calidad alta"
@@ -1498,6 +1546,8 @@ _settings:
showUrlPreview: "Mostrar la vista previa de la URL"
showAvailableReactionsFirstInNote: "Mostrar las reacciones disponibles en la parte superior."
showPageTabBarBottom: "Mostrar la barra de pestañas de la página en la parte inferior."
+ emojiPaletteBanner: "Puedes registrar ajustes preestablecidos como paletas para que se muestren permanentemente en el selector de emojis, o personalizar el método de visualización del selector."
+ enableAnimatedImages: "Habilitar imágenes animadas"
_chat:
showSenderName: "Mostrar el nombre del remitente"
sendOnEnter: "Intro para enviar"
@@ -1506,6 +1556,8 @@ _preferencesProfile:
profileNameDescription: "Establece un nombre que identifique al dispositivo"
profileNameDescription2: "Por ejemplo: \"PC Principal\",\"Teléfono\""
manageProfiles: "Administrar perfiles"
+ shareSameProfileBetweenDevicesIsNotRecommended: "No recomendamos compartir el mismo perfil en varios dispositivos."
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "Si hay ajustes que deseas sincronizar en varios dispositivos, activa la opción «Sincronizar en varios dispositivos» individualmente para cada uno de ellos."
_preferencesBackup:
autoBackup: "Respaldo automático"
restoreFromBackup: "Restaurar desde copia de seguridad"
@@ -1515,6 +1567,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "Se debe establecer un nombre de perfil para activar la copia de seguridad automática."
autoPreferencesBackupIsNotEnabledForThisDevice: "La copia de seguridad automática de los ajustes no está activada en este dispositivo."
backupFound: "Copia de seguridad de los ajustes encontrada "
+ forceBackup: "Forzar una copia de seguridad de la configuración"
_accountSettings:
requireSigninToViewContents: "Se requiere iniciar sesión para ver el contenido"
requireSigninToViewContentsDescription1: "Requiere iniciar sesión para ver todas las notas y otros contenidos que hayas creado. Se espera que esto evite que los rastreadores recopilen información."
@@ -1552,7 +1605,7 @@ _bubbleGame:
score: "Puntos"
scoreYen: "Cantidad de dinero ganada"
highScore: "Puntuación más alta"
- maxChain: "Número máximo de cadenas"
+ maxChain: "Número máximo de combos"
yen: "{yen} Yenes"
estimatedQty: "{qty} Piezas"
scoreSweets: "{onigiriQtyWithUnit} Onigiris"
@@ -1986,7 +2039,7 @@ _role:
isConditionalRole: "Esto es un rol condicional"
isPublic: "Publicar rol"
descriptionOfIsPublic: "Cualquiera puede ver los usuarios asignados a este rol. También, el perfil del usuario mostrará este rol."
- options: "Opción"
+ options: "Opciones"
policies: "Política"
baseRole: "Rol base"
useBaseValue: "Usar los valores del rol base"
@@ -2097,7 +2150,7 @@ _accountDelete:
accountDelete: "Eliminar Cuenta"
mayTakeTime: "La eliminación de la cuenta es un proceso que precisa de carga. Puede pasar un tiempo hasta que se complete si es mucho el contenido creado y los archivos subidos."
sendEmail: "Cuando se termine de borrar la cuenta, se enviará un correo a la dirección usada para el registro."
- requestAccountDelete: "Pedir la eliminación de la cuenta."
+ requestAccountDelete: "Solicitar la eliminación de la cuenta."
started: "El proceso de eliminación ha comenzado."
inProgress: "La eliminación está en proceso."
_ad:
@@ -2470,7 +2523,7 @@ _widgets:
digitalClock: "Reloj digital"
unixClock: "Reloj UNIX"
federation: "Federación"
- instanceCloud: "Nube de palabras de la instancia"
+ instanceCloud: "Nube de Instancias Federadas"
postForm: "Formulario"
slideshow: "Diapositivas"
button: "Botón"
@@ -2495,7 +2548,7 @@ _poll:
noOnlyOneChoice: "Se necesitan al menos 2 opciones"
choiceN: "Opción {n}"
noMore: "No se pueden agregar más"
- canMultipleVote: "Permitir más de una respuesta"
+ canMultipleVote: "Permitir seleccionar varias opciones"
expiration: "Termina el"
infinite: "Sin límite de tiempo"
at: "Elegir fecha y hora"
@@ -2530,6 +2583,20 @@ _postForm:
replyPlaceholder: "Responder a esta nota"
quotePlaceholder: "Citar esta nota"
channelPlaceholder: "Publicar en el canal"
+ showHowToUse: "Mostrar el tutorial de este formulario"
+ _howToUse:
+ content_title: "Cuerpo"
+ content_description: "Introduce aquí el contenido que deseas publicar."
+ toolbar_title: "Barras de herramientas"
+ toolbar_description: "Puedes adjuntar archivos o realizar encuestas, añadir anotaciones o hashtags e insertar emojis o menciones."
+ account_title: "Menú de la cuenta"
+ account_description: "Puedes cambiar entre cuentas para publicar o ver una lista de borradores y publicaciones programadas guardadas en tu cuenta."
+ visibility_title: "Visibilidad"
+ visibility_description: "Puedes configurar la visibilidad de tus notas."
+ menu_title: "Menú"
+ menu_description: "Puedes realizar otras acciones, como guardar borradores, programar publicaciones y configurar reacciones."
+ submit_title: "Botón de publicar"
+ submit_description: "Publica tus notas pulsando este botón. También puedes publicar utilizando Ctrl + Intro / Cmd + Intro."
_placeholders:
a: "¿Qué haces?"
b: "¿Te pasó algo?"
@@ -2564,7 +2631,7 @@ _exportOrImport:
userLists: "Listas"
excludeMutingUsers: "Excluir usuarios silenciados"
excludeInactiveUsers: "Excluir usuarios inactivos"
- withReplies: "Incluir respuestas de los usuarios importados en la línea de tiempo"
+ withReplies: "Si el archivo no incluye información sobre si las respuestas deben incluirse en la línea de tiempo, las respuestas realizadas por el importador deben incluirse en la línea de tiempo."
_charts:
federation: "Federación"
apRequest: "Pedidos"
@@ -2807,6 +2874,8 @@ _abuseReport:
notifiedWebhook: "Webhook a utilizar"
deleteConfirm: "¿Estás seguro de que deseas borrar el destinatario del informe de moderación?"
_moderationLogTypes:
+ clearQueue: "Borrar la cola de trabajos"
+ promoteQueue: "Reintentar el trabajo en la cola"
createRole: "Rol creado"
deleteRole: "Rol eliminado"
updateRole: "Rol actualizado"
@@ -2959,7 +3028,7 @@ _reversi:
loopedMap: "Mapa en bucle"
canPutEverywhere: "Las fichas se pueden poner a cualquier lugar\n"
timeLimitForEachTurn: "Tiempo límite por jugada."
- freeMatch: "Partida libre."
+ freeMatch: "Partida libre"
lookingForPlayer: "Buscando oponente"
gameCanceled: "La partida ha sido cancelada."
shareToTlTheGameWhenStart: "Compartir la partida en la línea de tiempo cuando comience "
@@ -3223,11 +3292,13 @@ _watermarkEditor:
polkadotSubDotRadius: "Tamaño del círculo secundario."
polkadotSubDotDivisions: "Número de subpuntos."
leaveBlankToAccountUrl: "Si dejas este campo en blanco, se utilizará la URL de tu cuenta."
+ failedToLoadImage: "Error al cargar la imagen"
_imageEffector:
title: "Efecto"
addEffect: "Añadir Efecto"
discardChangesConfirm: "¿Ignorar cambios y salir?"
nothingToConfigure: "No hay opciones configurables disponibles."
+ failedToLoadImage: "Error al cargar la imagen"
_fxs:
chromaticAberration: "Aberración Cromática"
glitch: "Glitch"
diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml
index a274327691..5b3c8b75cb 100644
--- a/locales/fr-FR.yml
+++ b/locales/fr-FR.yml
@@ -1274,6 +1274,15 @@ information: "Informations"
inMinutes: "min"
inDays: "j"
widgets: "Widgets"
+presets: "Préréglage"
+_imageEditing:
+ _vars:
+ filename: "Nom du fichier"
+_imageFrameEditor:
+ header: "Entête"
+ font: "Police de caractères"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "Inviter"
noHistory: "Pas d'historique"
@@ -2037,6 +2046,9 @@ _postForm:
replyPlaceholder: "Répondre à cette note ..."
quotePlaceholder: "Citez cette note ..."
channelPlaceholder: "Publier au canal…"
+ _howToUse:
+ visibility_title: "Visibilité"
+ menu_title: "Menu"
_placeholders:
a: "Quoi de neuf ?"
b: "Il s'est passé quelque chose ?"
diff --git a/locales/id-ID.yml b/locales/id-ID.yml
index a74dffc19f..9afa457ebd 100644
--- a/locales/id-ID.yml
+++ b/locales/id-ID.yml
@@ -240,6 +240,8 @@ blockedInstances: "Instansi terblokir"
blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini."
silencedInstances: "Instansi yang disenyapkan"
silencedInstancesDescription: "Daftar nama host dari instansi yang ingin kamu senyapkan. Semua akun dari instansi yang terdaftar akan diperlakukan sebagai disenyapkan. Hal ini membuat akun hanya dapat membuat permintaan mengikuti, dan tidak dapat menyebutkan akun lokal apabila tidak mengikuti. Hal ini tidak akan mempengaruhi instansi yang diblokir."
+mediaSilencedInstances: "Server dengan media dibisukan"
+mediaSilencedInstancesDescription: "Masukkan host server yang medianya ingin Anda bisukan, pisahkan dengan baris baru. Semua berkas dari akun di server ini akan dianggap sebagai sensitif dan emoji kustom tidak akan tersedia. Ini tidak akan membengaruhi server yang diblokir."
federationAllowedHosts: "Server yang membolehkan federasi"
muteAndBlock: "Bisukan / Blokir"
mutedUsers: "Pengguna yang dibisukan"
@@ -398,7 +400,7 @@ enableHcaptcha: "Nyalakan hCaptcha"
hcaptchaSiteKey: "Site Key"
hcaptchaSecretKey: "Secret Key"
mcaptcha: "mCaptcha"
-enableMcaptcha: "Nyalakan mCaptcha"
+enableMcaptcha: ""
mcaptchaSiteKey: "Site key"
mcaptchaSecretKey: "Secret Key"
mcaptchaInstanceUrl: "URL instansi mCaptcha"
@@ -1288,6 +1290,15 @@ advice: "Saran"
inMinutes: "menit"
inDays: "hari"
widgets: "Widget"
+presets: "Prasetel"
+_imageEditing:
+ _vars:
+ filename: "Nama berkas"
+_imageFrameEditor:
+ header: "Header"
+ font: "Font"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans-serif"
_chat:
invitations: "Undang"
history: "Riwayat obrolan"
@@ -2240,6 +2251,9 @@ _postForm:
replyPlaceholder: "Balas ke catatan ini..."
quotePlaceholder: "Kutip catatan ini..."
channelPlaceholder: "Posting ke kanal"
+ _howToUse:
+ visibility_title: "Visibilitas"
+ menu_title: "Menu"
_placeholders:
a: "Sedang apa kamu saat ini?"
b: "Apa yang terjadi di sekitarmu?"
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 841bfc5d0b..eabf467d93 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -6239,6 +6239,14 @@ export interface Locale extends ILocale {
* プロファイルの管理
*/
"manageProfiles": string;
+ /**
+ * 複数のデバイスで同一のプロファイルを共有することは推奨しません。
+ */
+ "shareSameProfileBetweenDevicesIsNotRecommended": string;
+ /**
+ * 複数のデバイスで同期したい設定項目が存在する場合は、個別に「複数のデバイスで同期」オプションを有効にしてください。
+ */
+ "useSyncBetweenDevicesOptionIfYouWantToSyncSetting": string;
};
"_preferencesBackup": {
/**
diff --git a/locales/it-IT.yml b/locales/it-IT.yml
index 6816094af5..9e1fb3bf19 100644
--- a/locales/it-IT.yml
+++ b/locales/it-IT.yml
@@ -144,7 +144,7 @@ markAsSensitive: "Segna come esplicito"
unmarkAsSensitive: "Non segnare come esplicito "
enterFileName: "Nome del file"
mute: "Silenziare"
-unmute: "Riattiva l'audio"
+unmute: "Dai voce"
renoteMute: "Silenziare le Rinota"
renoteUnmute: "Non silenziare le Rinota"
block: "Bloccare"
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "Il caricamento del file può richiedere tempo."
uploadNFiles: "Caricare {n} file singolarmente"
explore: "Esplora"
messageRead: "Visualizzato"
+readAllChatMessages: "Segna tutti i messaggi come già letti"
noMoreHistory: "Non c'è più cronologia da visualizzare"
startChat: "Inizia a chattare"
nUsersRead: "Letto da {n} persone"
@@ -525,7 +526,7 @@ style: "Stile"
drawer: "Drawer"
popup: "Popup"
showNoteActionsOnlyHover: "Mostra le azioni delle Note solo al passaggio del mouse"
-showReactionsCount: "Visualizza il numero di reazioni su una nota"
+showReactionsCount: "Visualizza la quantità di reazioni su una nota"
noHistory: "Nessuna cronologia"
signinHistory: "Storico degli accessi al profilo"
enableAdvancedMfm: "Attivare i Misskey Flavoured Markdown (MFM) avanzati"
@@ -690,11 +691,11 @@ emptyToDisableSmtpAuth: "Lasciare i campi vuoti se non c'è autenticazione SMTP"
smtpSecure: "Usare SSL/TLS implicito per le connessioni SMTP"
smtpSecureInfo: "Disabilitare quando è attivo STARTTLS."
testEmail: "Verifica il funzionamento"
-wordMute: "Filtri parole"
+wordMute: "Parole silenziate"
wordMuteDescription: "Contrae le Note con la parola o la frase specificata. Permette di espandere le Note, cliccandole."
-hardWordMute: "Filtro parole forte"
+hardWordMute: "Filtro per parole"
showMutedWord: "Elenca le parole silenziate"
-hardWordMuteDescription: "Nasconde le Note con la parola o la frase specificata. A differenza delle parole silenziate, la Nota non verrà federata."
+hardWordMuteDescription: "Ignora le Note con la parola o la frase specificata. A differenza delle parole silenziate, la Nota non verrà federata."
regexpError: "errore regex"
regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:"
instanceMute: "Silenziare l'istanza"
@@ -755,19 +756,19 @@ i18nInfo: "Misskey è tradotto in diverse lingue da volontari. Anche tu puoi con
manageAccessTokens: "Gestisci token di accesso"
accountInfo: "Informazioni profilo"
notesCount: "Conteggio note"
-repliesCount: "Numero di risposte inviate"
-renotesCount: "Numero di note che hai ricondiviso"
-repliedCount: "Numero di risposte ricevute"
-renotedCount: "Numero delle tue note ricondivise"
-followingCount: "Numero di Following"
-followersCount: "Numero di profili che ti seguono"
-sentReactionsCount: "Numero di reazioni inviate"
-receivedReactionsCount: "Numero di reazioni ricevute"
-pollVotesCount: "Numero di voti inviati"
-pollVotedCount: "Numero di voti ricevuti"
+repliesCount: "Quantità di risposte"
+renotesCount: "Quantità di Note ricondivise"
+repliedCount: "Quantità di risposte"
+renotedCount: "Quantità di tue Note ricondivise"
+followingCount: "Quantità di Following"
+followersCount: "Quantità di Follower"
+sentReactionsCount: "Quantità di reazioni"
+receivedReactionsCount: "Quantità di reazioni ricevute"
+pollVotesCount: "Quantità di voti"
+pollVotedCount: "Quantità di voti ricevuti"
yes: "Sì"
no: "No"
-driveFilesCount: "Numero di file nel Drive"
+driveFilesCount: "Quantità di file nel Drive"
driveUsage: "Utilizzazione del Drive"
noCrawle: "Rifiuta l'indicizzazione dai robot."
noCrawleDescription: "Richiedi che i motori di ricerca non indicizzino la tua pagina di profilo, le tue note, pagine, ecc."
@@ -781,7 +782,7 @@ verificationEmailSent: "Una mail di verifica è stata inviata. Si prega di acced
notSet: "Non impostato"
emailVerified: "Il tuo indirizzo email è stato verificato"
noteFavoritesCount: "Conteggio note tra i preferiti"
-pageLikesCount: "Numero di pagine che ti piacciono"
+pageLikesCount: "Quantità di pagine che ti piacciono"
pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\""
contact: "Contatti"
useSystemFont: "Usa il carattere predefinito del sistema"
@@ -826,9 +827,9 @@ currentVersion: "Versione attuale"
latestVersion: "Ultima versione"
youAreRunningUpToDateClient: "Stai usando la versione più recente del client."
newVersionOfClientAvailable: "Una nuova versione del tuo client è disponibile."
-usageAmount: "In uso"
+usageAmount: "Quantità utilizzata"
capacity: "Capacità"
-inUse: "In uso"
+inUse: "Usata da"
editCode: "Modifica codice"
apply: "Applica"
receiveAnnouncementFromInstance: "Ricevi i messaggi informativi dall'istanza"
@@ -947,7 +948,7 @@ tablet: "Tablet"
auto: "Automatico"
themeColor: "Colore del tema"
size: "Dimensioni"
-numberOfColumn: "Numero di colonne"
+numberOfColumn: "Quantità di colonne"
searchByGoogle: "Cerca"
instanceDefaultLightTheme: "Istanza, tema luminoso predefinito."
instanceDefaultDarkTheme: "Istanza, tema scuro predefinito."
@@ -984,7 +985,7 @@ isSystemAccount: "Si tratta di un profilo creato e gestito automaticamente dal s
typeToConfirm: "Digita {x} per continuare"
deleteAccount: "Eliminazione profilo"
document: "Documentazione"
-numberOfPageCache: "Numero di pagine cache"
+numberOfPageCache: "Quantità di pagine in cache"
numberOfPageCacheDescription: "Aumenta l'usabilità, ma aumenta anche il carico e l'utilizzo della memoria."
logoutConfirm: "Vuoi davvero uscire da Misskey? "
logoutWillClearClientData: "All'uscita, la configurazione del client viene rimossa dal browser. Per ripristinarla quando si effettua nuovamente l'accesso, abilitare il backup automatico."
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "Le notifiche push sono già attivate"
pushNotificationNotSupported: "Il client o il server non supporta le notifiche push"
sendPushNotificationReadMessage: "Eliminare le notifiche push dopo la relativa lettura"
sendPushNotificationReadMessageCaption: "Se possibile, verrà mostrata brevemente una notifica con il testo \"{emptyPushNotificationMessage}\". Potrebbe influire negativamente sulla durata della batteria."
+pleaseAllowPushNotification: "Per favore, acconsenti alla ricezione di notifiche nel browser"
+browserPushNotificationDisabled: "Non è stato possibile ottenere il consenso alla ricezione di notifche"
+browserPushNotificationDisabledDescription: "Non hai concesso a {serverName} di spedire notifiche. Per favore, acconsenti alla ricezione nelle impostazioni del browser e riprova."
windowMaximize: "Ingrandisci"
windowMinimize: "Contrai finestra"
windowRestore: "Ripristina"
@@ -1032,7 +1036,7 @@ cannotLoad: "Caricamento impossibile"
numberOfProfileView: "Visualizzazioni profilo"
like: "Mi piace!"
unlike: "Non mi piace"
-numberOfLikes: "Numero di Like"
+numberOfLikes: "Quantità di Like"
show: "Visualizza"
neverShow: "Non mostrare più"
remindMeLater: "Rimanda"
@@ -1178,7 +1182,7 @@ createInviteCode: "Genera codice di invito"
createWithOptions: "Genera con opzioni"
createCount: "Conteggio inviti"
inviteCodeCreated: "Inviti generati"
-inviteLimitExceeded: "Hai raggiunto il numero massimo di codici invito generabili."
+inviteLimitExceeded: "Hai raggiunto la quantità massima di codici invito generabili."
createLimitRemaining: "Inviti generabili: {limit} rimanenti"
inviteLimitResetCycle: "Alle {time}, il limite verrà ripristinato a {limit}"
expirationDate: "Scadenza"
@@ -1346,7 +1350,7 @@ preferenceSyncConflictChoiceCancel: "Annulla la sincronizzazione"
paste: "Incolla"
emojiPalette: "Tavolozza emoji"
postForm: "Finestra di pubblicazione"
-textCount: "Il numero di caratteri"
+textCount: "Quantità di caratteri"
information: "Informazioni"
chat: "Chat"
directMessage: "Chattare insieme"
@@ -1396,6 +1400,50 @@ scheduled: "Pianificata"
widgets: "Riquadri"
deviceInfo: "Informazioni sul dispositivo"
deviceInfoDescription: "Se ci contatti per ricevere supporto tecnico, ti preghiamo di includere le seguenti informazioni per aiutarci a risolvere il tuo problema."
+youAreAdmin: "Sei un amministratore"
+frame: "Cornice"
+presets: "Preimpostato"
+zeroPadding: "Al vivo"
+_imageEditing:
+ _vars:
+ caption: "Didascalia dell'immagine"
+ filename: "Nome dell'allegato"
+ filename_without_ext: "Nome file senza estensione"
+ year: "Anno di scatto"
+ month: "Mese dello scatto"
+ day: "Giorno dello scatto"
+ hour: "Ora dello scatto"
+ minute: "Minuto dello scatto"
+ second: "Secondi dello scatto"
+ camera_model: "Modello di fotocamera"
+ camera_lens_model: "Modello della lente"
+ camera_mm: "Lunghezza focale"
+ camera_mm_35: "Lunghezza focale (equivalente a 35 mm)"
+ camera_f: "Diaframma"
+ camera_s: "Velocità otturatore"
+ camera_iso: "Sensibilità ISO"
+ gps_lat: "Latitudine"
+ gps_long: "Longitudine"
+_imageFrameEditor:
+ title: "Modifica fotogramma"
+ tip: "Puoi decorare le immagini aggiungendo etichette con cornici e metadati."
+ header: "Intestazione"
+ footer: "Piè di pagina"
+ borderThickness: "Larghezza del bordo"
+ labelThickness: "Spessore etichetta"
+ labelScale: "Dimensione etichetta"
+ centered: "Allinea al centro"
+ captionMain: "Didascalia (grande)"
+ captionSub: "Didascalia (piccola)"
+ availableVariables: "Variabili disponibili"
+ withQrCode: "QR Code"
+ backgroundColor: "Colore dello sfondo"
+ textColor: "Colore del testo"
+ font: "Tipo di carattere"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans serif"
+ quitWithoutSaveConfirm: "Uscire senza salvare?"
+ failedToLoadImage: "Impossibile caricare l'immagine"
_compression:
_quality:
high: "Alta qualità"
@@ -1406,8 +1454,8 @@ _compression:
medium: "Taglia media"
small: "Taglia piccola"
_order:
- newest: "Prima i più recenti"
- oldest: "Meno recenti prima"
+ newest: "Più recenti"
+ oldest: "Meno recenti"
_chat:
messages: "Messaggi"
noMessagesYet: "Ancora nessun messaggio"
@@ -1498,6 +1546,8 @@ _settings:
showUrlPreview: "Mostra anteprima dell'URL"
showAvailableReactionsFirstInNote: "Mostra le reazioni disponibili in alto"
showPageTabBarBottom: "Visualizza le schede della pagina nella parte inferiore"
+ emojiPaletteBanner: "Puoi salvare i le emoji predefinite da appuntare in alto nel raccoglitore emoji come tavolozza e personalizzare in che modo visualizzare il raccoglitore."
+ enableAnimatedImages: "Attivare le immagini animate"
_chat:
showSenderName: "Mostra il nome del mittente"
sendOnEnter: "Invio spedisce"
@@ -1506,6 +1556,8 @@ _preferencesProfile:
profileNameDescription: "Impostare il nome che indentifica questo dispositivo."
profileNameDescription2: "Es: \"PC principale\" o \"Cellulare\""
manageProfiles: "Gestione profili"
+ shareSameProfileBetweenDevicesIsNotRecommended: "Si sconsiglia di condividere lo stesso profilo su più dispositivi."
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "Se intendi sincronizzare solo alcuni parametri di configurazione su più dispositivi, devi attivare l'opzione \"Sincronizzazione tra dispositivi\" per ogni parametro interessato."
_preferencesBackup:
autoBackup: "Backup automatico"
restoreFromBackup: "Ripristinare da backup"
@@ -1515,6 +1567,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "Per abilitare i backup automatici, è necessario indicare il nome del profilo."
autoPreferencesBackupIsNotEnabledForThisDevice: "Su questo dispositivo non è stato attivato il backup automatico delle preferenze."
backupFound: "Esiste il Backup delle preferenze"
+ forceBackup: "Backup forzato delle impostazioni"
_accountSettings:
requireSigninToViewContents: "Per vedere il contenuto, è necessaria l'iscrizione"
requireSigninToViewContentsDescription1: "Richiedere l'iscrizione per visualizzare tutte le Note e gli altri contenuti che hai creato. Probabilmente l'effetto è impedire la raccolta di informazioni da parte dei bot crawler."
@@ -2522,7 +2575,7 @@ _visibility:
followersDescription: "Visibile solo ai tuoi follower"
specified: "Nota diretta"
specifiedDescription: "Visibile solo ai profili menzionati"
- disableFederation: "Senza federazione"
+ disableFederation: "Gestisci la federazione"
disableFederationDescription: "Non spedire attività alle altre istanze remote"
_postForm:
quitInspiteOfThereAreUnuploadedFilesConfirm: "Alcuni file non sono stati caricati. Vuoi annullare l'operazione?"
@@ -2530,6 +2583,20 @@ _postForm:
replyPlaceholder: "Rispondi a questa nota..."
quotePlaceholder: "Cita questa nota..."
channelPlaceholder: "Pubblica sul canale..."
+ showHowToUse: "Mostra il tutorial"
+ _howToUse:
+ content_title: "Testo"
+ content_description: "Inserisci il contenuto che desideri pubblicare."
+ toolbar_title: "Barra degli Strumenti"
+ toolbar_description: "Puoi allegare file e sondaggi, aggiungere Note, hashtag, inserire emoji e menzioni."
+ account_title: "Menu profilo"
+ account_description: "Puoi cambiare il profilo col quale vuoi pubblicare, elencare bozze e pianificare le Note."
+ visibility_title: "Visibilità"
+ visibility_description: "Puoi impostare il grado di visibilità delle Note."
+ menu_title: "Menù"
+ menu_description: "Puoi svolgere varie azioni, come salvare in bozza, pianificare le annotazioni, regolare le reazioni ricevute e altro."
+ submit_title: "Bottone invia"
+ submit_description: "Pubblica la Nota. Funziona anche con \"Ctrl + Invio\", oppure \"Cmd + Invio\"."
_placeholders:
a: "Come va?"
b: "Hai qualcosa da raccontare? Inizia pure..."
@@ -2807,6 +2874,8 @@ _abuseReport:
notifiedWebhook: "Webhook da usare"
deleteConfirm: "Vuoi davvero rimuovere il destinatario della notifica?"
_moderationLogTypes:
+ clearQueue: "Ha cancellato la coda di Attività"
+ promoteQueue: "Ripeti le attività in coda"
createRole: "Crea un Ruolo"
deleteRole: "Elimina un Ruolo"
updateRole: "Modifica un ruolo"
@@ -3121,7 +3190,7 @@ _bootErrors:
_search:
searchScopeAll: "Tutte"
searchScopeLocal: "Locale"
- searchScopeServer: "Specifiche del server"
+ searchScopeServer: "Server specifico"
searchScopeUser: "Profilo specifico"
pleaseEnterServerHost: "Inserire il nome host"
pleaseSelectUser: "Per favore, seleziona un profilo"
@@ -3201,6 +3270,7 @@ _watermarkEditor:
title: "Modifica la filigrana"
cover: "Coprire tutto"
repeat: "Disposizione"
+ preserveBoundingRect: "Fai in modo da non eccedere durante la rotazione"
opacity: "Opacità"
scale: "Dimensioni"
text: "Testo"
@@ -3222,11 +3292,13 @@ _watermarkEditor:
polkadotSubDotRadius: "Dimensione del punto secondario"
polkadotSubDotDivisions: "Quantità di punti secondari"
leaveBlankToAccountUrl: "Il valore vuoto indica la URL dell'account"
+ failedToLoadImage: "Impossibile caricare l'immagine"
_imageEffector:
title: "Effetto"
addEffect: "Aggiungi effetto"
discardChangesConfirm: "Scarta le modifiche ed esci?"
nothingToConfigure: "Nessuna impostazione configurabile."
+ failedToLoadImage: "Impossibile caricare l'immagine"
_fxs:
chromaticAberration: "Aberrazione cromatica"
glitch: "Glitch"
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 6dcc4914e0..35a3225ff2 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1570,6 +1570,8 @@ _preferencesProfile:
profileNameDescription: "このデバイスを識別する名前を設定してください。"
profileNameDescription2: "例: 「メインPC」、「スマホ」など"
manageProfiles: "プロファイルの管理"
+ shareSameProfileBetweenDevicesIsNotRecommended: "複数のデバイスで同一のプロファイルを共有することは推奨しません。"
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "複数のデバイスで同期したい設定項目が存在する場合は、個別に「複数のデバイスで同期」オプションを有効にしてください。"
_preferencesBackup:
autoBackup: "自動バックアップ"
diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml
index a127a554ce..694965c03f 100644
--- a/locales/ja-KS.yml
+++ b/locales/ja-KS.yml
@@ -220,6 +220,7 @@ silenceThisInstance: "サーバーサイレンスすんで?"
mediaSilenceThisInstance: "サーバーをメディアサイレンス"
operations: "操作"
software: "ソフトウェア"
+softwareName: "ソフトウェア名"
version: "バージョン"
metadata: "メタデータ"
withNFiles: "{n}個のファイル"
@@ -252,6 +253,7 @@ noteDeleteConfirm: "このノートをほかしてええか?"
pinLimitExceeded: "これ以上ピン留めできひん"
done: "でけた"
processing: "処理しとる"
+preprocessing: "準備中"
preview: "プレビュー"
default: "デフォルト"
defaultValueIs: "デフォルト: {value}"
@@ -299,13 +301,14 @@ uploadFromUrlRequested: "アップロードしたい言うといたで"
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
explore: "みつける"
messageRead: "もう読んだ"
+readAllChatMessages: "メッセージを全部読んだことにしとく"
noMoreHistory: "これより昔のんはあらへんで"
startChat: "チャットを始めよか"
nUsersRead: "{n}人が読んでもうた"
agreeTo: "{0}に同意したで"
agree: "せやな"
-agreeBelow: "下記に同意したる"
-basicNotesBeforeCreateAccount: "よう読んでやってや"
+agreeBelow: "下記に同意するわ"
+basicNotesBeforeCreateAccount: "よう読んどいてや"
termsOfService: "使うための決め事"
start: "始める"
home: "ホーム"
@@ -325,12 +328,13 @@ dark: "ダーク"
lightThemes: "デイゲーム"
darkThemes: "ナイトゲーム"
syncDeviceDarkMode: "デバイスのダークモードと一緒にする"
-switchDarkModeManuallyWhenSyncEnabledConfirm: "「{x}」がオンになってるで。同期をオフにして手動でモードを切り替えることにします?"
+switchDarkModeManuallyWhenSyncEnabledConfirm: "「{x}」がオンになってるで。同期切って手動でモード切り替える?"
drive: "ドライブ"
fileName: "ファイル名"
selectFile: "ファイル選んでや"
selectFiles: "ファイル選んでや"
selectFolder: "フォルダ選んでや"
+unselectFolder: "フォルダーの選択を解除"
selectFolders: "フォルダ選んでや"
fileNotSelected: "ファイルが選択されてへんで"
renameFile: "ファイル名をいらう"
@@ -421,14 +425,13 @@ antennaSource: "受信ソース(このソースは食われへん)"
antennaKeywords: "受信キーワード"
antennaExcludeKeywords: "除外キーワード"
antennaExcludeBots: "Botアカウントを除外"
-antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や"
+antennaKeywordsDescription: "スペースで区切ったらAND指定で、改行で区切ったらOR指定や"
notifyAntenna: "新しいノートを通知すんで"
withFileAntenna: "なんか添付されたノートだけ"
excludeNotesInSensitiveChannel: "センシティブなチャンネルのノートは入れんとくわ"
enableServiceworker: "ブラウザにプッシュ通知が行くようにする"
antennaUsersDescription: "ユーザー名を改行で区切ったってな"
caseSensitive: "大文字と小文字は別もんや"
-withReplies: "返信も入れたって"
connectedTo: "次のアカウントに繋がっとるで"
notesAndReplies: "投稿と返信"
withFiles: "ファイル付いとる"
@@ -471,9 +474,9 @@ newPasswordIs: "今度のパスワードは「{password}」や"
reduceUiAnimation: "UIの動きやアニメーションを少なする"
share: "わけわけ"
notFound: "見つからへんね"
-notFoundDescription: "言われたURLにはまるページはなかったで。"
+notFoundDescription: "言われたURLのページはなかったで。"
uploadFolder: "とりあえずアップロードしたやつ置いとく所"
-markAsReadAllNotifications: "通知はもう全て読んだわっ"
+markAsReadAllNotifications: "通知はもう全部読んだわ"
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
help: "ヘルプ"
@@ -554,7 +557,7 @@ showFeaturedNotesInTimeline: "タイムラインにおすすめのノートを
objectStorage: "オブジェクトストレージ"
useObjectStorage: "オブジェクトストレージを使う"
objectStorageBaseUrl: "Base URL"
-objectStorageBaseUrlDesc: "参照に使うにURLやで。CDNやProxyを使用してるんならそのURL、S3: 'https://.s3.amazonaws.com'、GCSとかなら: 'https://storage.googleapis.com/'。"
+objectStorageBaseUrlDesc: "参照に使うURLやで。CDNやProxyを使用してるんならそのURL、S3: 'https://.s3.amazonaws.com'、GCSとかなら: 'https://storage.googleapis.com/'。"
objectStorageBucket: "Bucket"
objectStorageBucketDesc: "使ってるサービスのbucket名を選んでな"
objectStoragePrefix: "Prefix"
@@ -571,17 +574,19 @@ objectStorageSetPublicRead: "アップロードした時に'public-read'を設
s3ForcePathStyleDesc: "s3ForcePathStyleを使たらバケット名をURLのホスト名やなくてパスの一部として必ず指定させるようになるで。セルフホストされたMinioとかを使うてるんやったら有効にせなあかん場合があるで。"
serverLogs: "サーバーログ"
deleteAll: "全部ほかす"
-showFixedPostForm: "タイムラインの上の方で投稿できるようにやってくれへん?"
+showFixedPostForm: "タイムラインの上の方で投稿できるようにするわ"
showFixedPostFormInChannel: "タイムラインの上の方で投稿できるようにするわ(チャンネル)"
withRepliesByDefaultForNewlyFollowed: "フォローする時、デフォルトで返信をタイムラインに含むようにしよか"
newNoteRecived: "新しいノートがあるで"
+newNote: "新しいノートがあるで"
sounds: "音"
sound: "音"
+notificationSoundSettings: "通知音の設定"
listen: "聴く"
none: "なし"
showInPage: "ページで表示"
popout: "ポップアウト"
-volume: "やかましさ"
+volume: "音のでかさ"
masterVolume: "全体のやかましさ"
notUseSound: "音出さへん"
useSoundOnlyWhenActive: "Misskeyがアクティブなときだけ音出す"
@@ -597,7 +602,7 @@ nothing: "あらへん"
installedDate: "インストールした日時"
lastUsedDate: "最後に使った日時"
state: "状態"
-sort: "仕分ける"
+sort: "並び替え"
ascendingOrder: "小さい順"
descendingOrder: "大きい順"
scratchpad: "スクラッチパッド"
@@ -657,9 +662,9 @@ useBlurEffectForModal: "モーダルにぼかし効果を使用"
useFullReactionPicker: "フルフルのツッコミピッカーを使う"
width: "幅"
height: "高さ"
-large: "大"
-medium: "中"
-small: "小"
+large: "でかい"
+medium: "ふつう"
+small: "ちいさい"
generateAccessToken: "アクセストークンの発行"
permission: "権限"
adminPermission: "管理者権限"
@@ -684,7 +689,7 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
smtpSecureInfo: "STARTTLS使っとる時はオフにしてや。"
testEmail: "配信テスト"
wordMute: "ワードミュート"
-wordMuteDescription: "指定した語句が入ってるノートを最小化するで。最小化されたノートをクリックしたら、表示できるようになるで。"
+wordMuteDescription: "指定した語句が入ってるノートをちっさくするで。ちっさくなったノートをクリックしたら中身を見れるで。"
hardWordMute: "ハードワードミュート"
showMutedWord: "ミュートされたワードを表示するで"
hardWordMuteDescription: "指定した語句が入ってるノートを隠すで。ワードミュートとちゃうて、ノートは完全に表示されんようになるで。"
@@ -718,7 +723,7 @@ behavior: "動作"
sample: "サンプル"
abuseReports: "通報"
reportAbuse: "通報"
-reportAbuseRenote: "リノート苦情だすで?"
+reportAbuseRenote: "リノートの苦情出す"
reportAbuseOf: "{name}を通報する"
fillAbuseReportDescription: "細かい通報理由を書いてなー。対象ノートがある時はそのURLも書いといてなー。"
abuseReported: "無事内容が送信されたみたいやで。おおきに〜。"
@@ -768,6 +773,7 @@ lockedAccountInfo: "フォローを承認制にしとっても、ノートの公
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にするで"
loadRawImages: "添付画像のサムネイルをオリジナル画質にするで"
disableShowingAnimatedImages: "アニメーション画像を再生せんとくで"
+disableShowingAnimatedImages_caption: "この設定を変えてもアニメーション画像が再生されへん時は、ブラウザとかOSのアクセシビリティ設定とか省電力設定の方が悪さしてるかもしれへんで。"
highlightSensitiveMedia: "きわどいことをめっっちゃわかりやすくする"
verificationEmailSent: "無事確認のメールを送れたで。メールに書いてあるリンクにアクセスして、設定を完了してなー。"
notSet: "未設定"
@@ -877,7 +883,7 @@ startingperiod: "始めた期間"
memo: "メモ"
priority: "優先度"
high: "高い"
-middle: "中"
+middle: "ふつう"
low: "低い"
emailNotConfiguredWarning: "メアドの設定がされてへんで。"
ratio: "比率"
@@ -1014,6 +1020,9 @@ pushNotificationAlreadySubscribed: "プッシュ通知はオンになってる
pushNotificationNotSupported: "ブラウザかサーバーがプッシュ通知に対応してないみたいやで。"
sendPushNotificationReadMessage: "通知やメッセージが既読になったらプッシュ通知を消すで"
sendPushNotificationReadMessageCaption: "あんたの端末の電池使う量が増えるかもしれん。"
+pleaseAllowPushNotification: "ブラウザの通知設定を許可してな"
+browserPushNotificationDisabled: "通知の送信権限が取れんかったわ"
+browserPushNotificationDisabledDescription: "今 {serverName} から通知を送るための権限が無いから、ブラウザの設定で通知を許可してもっかい試してな。"
windowMaximize: "最大化"
windowMinimize: "最小化"
windowRestore: "元に戻す"
@@ -1050,6 +1059,7 @@ permissionDeniedError: "操作が拒否されてもうた。"
permissionDeniedErrorDescription: "このアカウントはこれやったらアカンって。"
preset: "プリセット"
selectFromPresets: "プリセットから選ぶ"
+custom: "カスタム"
achievements: "実績"
gotInvalidResponseError: "サーバー黙っとるわ、知らんけど"
gotInvalidResponseErrorDescription: "サーバーいま日曜日。またきて月曜日。"
@@ -1088,6 +1098,7 @@ prohibitedWordsDescription2: "スペースで区切るとAND指定、キーワ
hiddenTags: "見えてへんハッシュタグ"
hiddenTagsDescription: "設定したタグを最近流行りのとこに見えんようにすんで。複数設定するときは改行で区切ってな。"
notesSearchNotAvailable: "なんかノート探せへん。"
+usersSearchNotAvailable: "ユーザーを探すことはできへんみたいや。"
license: "ライセンス"
unfavoriteConfirm: "ほんまに気に入らんの?"
myClips: "自分のクリップ"
@@ -1239,6 +1250,7 @@ releaseToRefresh: "離したらリロード"
refreshing: "リロードしとる"
pullDownToRefresh: "引っ張ってリロードするで"
useGroupedNotifications: "通知をグループ分けして出すで"
+emailVerificationFailedError: "メアド確認してたらなんか変なことなったわ。リンクの期限切れてるかもしれん。"
cwNotationRequired: "「内容を隠す」んやったら注釈書かなアカンで。"
doReaction: "ツッコむで"
code: "コード"
@@ -1331,22 +1343,41 @@ unmuteX: "{x}のミュートやめたる"
redisplayAllTips: "全部の「ヒントとコツ」をもっかい見して"
hideAllTips: "「ヒントとコツ」は全部表示せんでええ"
defaultImageCompressionLevel_description: "低くすると画質は保てるんやけど、ファイルサイズが増えるで。
高くするとファイルサイズは減らせるんやけど、画質が落ちるで。"
+defaultCompressionLevel_description: "低くすると品質は保てるんやけど、ファイルサイズが増えるで。
高くするとファイルサイズは減らせるんやけど、品質が落ちるで。"
inMinutes: "分"
inDays: "日"
safeModeEnabled: "セーフモードがオンになってるで"
pluginsAreDisabledBecauseSafeMode: "セーフモードがオンやから、プラグインは全部無効化されてるで。"
customCssIsDisabledBecauseSafeMode: "セーフモードがオンやから、カスタムCSSは適用されてへんで。"
themeIsDefaultBecauseSafeMode: "セーフモードがオンの間はデフォルトのテーマを使うで。セーフモードをオフにれば元に戻るで。"
+thankYouForTestingBeta: "ベータ版使うてくれておおきに!"
widgets: "ウィジェット"
+deviceInfoDescription: "なんか技術的なことで分からんこと聞くときは、下の情報も一緒に書いてもらえると、こっちも分かりやすいし、はよ直ると思います。"
+youAreAdmin: "あんた、管理者やで"
+presets: "プリセット"
+_imageEditing:
+ _vars:
+ filename: "ファイル名"
+_imageFrameEditor:
+ tip: "画像にフレームとかメタデータを入れたラベルとかを付け足していい感じにできるで。"
+ header: "ヘッダー"
+ font: "フォント"
+ fontSerif: "セリフ"
+ fontSansSerif: "サンセリフ"
+ quitWithoutSaveConfirm: "保存せずに終わってもええんか?"
+ failedToLoadImage: "あかん、画像読み込まれへんわ"
_chat:
noMessagesYet: "まだメッセージはあらへんで"
- individualChat_description: "特定のユーザーと一対一でチャットができるで。"
+ individualChat_description: "特定のユーザーとサシでチャットできるで。"
roomChat_description: "複数人でチャットできるで。\nあと、個人チャットを許可してへんユーザーとでも、相手がええって言うならチャットできるで。"
inviteUserToChat: "ユーザーを招待してチャットを始めてみ"
invitations: "来てや"
noInvitations: "招待はあらへんで"
noHistory: "履歴はないわ。"
noRooms: "ルームはあらへんで"
+ join: "入る"
+ ignore: "ほっとく"
+ leave: "グループから抜ける"
members: "メンバーはん"
home: "ホーム"
send: "送信"
@@ -1389,11 +1420,13 @@ _settings:
appearanceBanner: "好みに応じた、クライアントの見た目・表示方法に関わる設定ができるで。"
soundsBanner: "クライアントで流すサウンドの設定ができるで。"
makeEveryTextElementsSelectable: "全部のテキスト要素を選択できるようにする"
- makeEveryTextElementsSelectable_description: "これをつけると、一部のシチュエーションでユーザビリティが低下するかもしれん。"
+ makeEveryTextElementsSelectable_description: "これをつけると、場面によったら使いにくくなるかもしれん。"
+ useStickyIcons: "アイコンがスクロールにひっつくようにする"
enablePullToRefresh_description: "マウスやったら、ホイールを押し込みながらドラッグしてな。"
realtimeMode_description: "サーバーと接続を確立して、リアルタイムでコンテンツを更新するで。通信量とバッテリーの消費が多くなるかもしれへん。"
- contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されるんやけど、そのぶんパフォーマンスが低くなるし、通信量とバッテリーの消費も増えるねん。"
+ contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されるんやけど、そのぶんパフォーマンスが落ちるし、通信量とバッテリーの消費も増えるねん。"
contentsUpdateFrequency_description2: "リアルタイムモードをつけてるんやったら、この設定がどうであれリアルタイムでコンテンツが更新されるで。"
+ emojiPaletteBanner: "絵文字ピッカーに置いとくプリセットをパレットっていうので登録したり、ピッカーの見た目を変えたりできるで。"
_preferencesProfile:
profileNameDescription: "このデバイスはなんて呼んだらええんや?"
_preferencesBackup:
@@ -1487,7 +1520,7 @@ _initialTutorial:
description: "ここでは、Misskeyのカンタンな使い方とか機能を確かめれんで。"
_note:
title: "ノートってなんや?"
- description: "Misskeyでの投稿は「ノート」って呼ばれてんで。ノートは順々にタイムラインに載ってて、リアルタイムで新しくなってってんで。"
+ description: "Misskeyでの投稿は「ノート」って呼ばれてんで。ノートは順々にタイムラインに載ってて、リアルタイムで新しくなってくで。"
reply: "返信もできるで。返信の返信もできるから、スレッドっぽく会話をそのまま続けれもするで。"
renote: "そのノートを自分のタイムラインに流して共有できるで。テキスト入れて引用してもええな。"
reaction: "ツッコミをつけることもできるで。細かいことは次のページや。"
@@ -1507,7 +1540,7 @@ _initialTutorial:
social: "ホームタイムラインの投稿もローカルタイムラインのも一緒に見れるで。"
global: "繋がってる他の全サーバーからの投稿が見れるで。"
description2: "それぞれのタイムラインは、いつでも画面上で切り替えられんねん。覚えとき。"
- description3: "その他にも、リストタイムラインとかチャンネルタイムラインとかがあんねん。詳しいのは{link}を見とき。"
+ description3: "その他にも、リストタイムラインとかチャンネルタイムラインとかがあんねん。詳しいのは{link}を見ときや。"
_postNote:
title: "ノートの投稿設定"
description1: "Misskeyにノートを投稿するとき、いろんなオプションが付けれるで。投稿画面はこんな感じや。"
@@ -1543,7 +1576,7 @@ _timelineDescription:
home: "ホームタイムラインは、あんたがフォローしとるアカウントの投稿だけ見れるで。"
local: "ローカルタイムラインは、このサーバーにおる全員の投稿を見れるで。"
social: "ソーシャルタイムラインは、ホームタイムラインの投稿もローカルタイムラインのも一緒に見れるで。"
- global: "グローバルタイムラインは、繋がっとる他のサーバーの投稿、全部ひっくるめて見れんで。"
+ global: "グローバルタイムラインは、繋がっとる他のサーバーの投稿、全部ひっくるめて見れるで。"
_serverRules:
description: "新規登録前に見せる、サーバーのカンタンなルールを決めるで。内容は使うための決め事の要約がええと思うわ。"
_serverSettings:
@@ -1563,7 +1596,7 @@ _serverSettings:
inquiryUrl: "問い合わせ先URL"
inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定するで。"
openRegistration: "アカウントの作成をオープンにする"
- openRegistrationWarning: "登録を解放するのはリスクが伴うで。サーバーをいっつも監視して、なんか起きたらすぐに対応できるんやったら、オンにしてもええと思う。"
+ openRegistrationWarning: "登録を解放するのはリスクあるで。サーバーをいっつも監視して、なんか起きたらすぐに対応できるんやったら、オンにしてもええと思うけどな。"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "一定期間モデレーターがおらんかったら、スパムを防ぐためにこの設定は勝手に切られるで。"
deliverSuspendedSoftwareDescription: "脆弱性とかの理由で、サーバーのソフトウェアの名前とバージョンの範囲を決めて配信を止められるで。このバージョン情報はサーバーが提供したものやから、信頼性は保証されへん。バージョン指定には semver の範囲指定が使えるねんけど、>= 2024.3.1と指定すると 2024.3.1-custom.0 みたいなカスタムバージョンが含まれへんから、>= 2024.3.1-0 みたいに prerelease を指定するとええかもしれへんな。"
singleUserMode_description: "このサーバーを使うとるんが自分だけなんやったら、このモードを有効にすると動作がええ感じになるで。"
@@ -1958,7 +1991,7 @@ _signup:
emailSent: "さっき入れたメアド({email})宛に確認メールを送ったで。メールに書かれたリンク押してアカウント作るの終わらしてな。\nメールの認証リンクの期限は30分や。"
_accountDelete:
accountDelete: "アカウントの削除"
- mayTakeTime: "アカウント消すんはサーバーが重いんやって。やから作ったコンテンツとか上げたファイルの数が多いと消し終わるまでに時間がかかるかもしれへん。"
+ mayTakeTime: "アカウント消すんはサーバーに負荷かかるんやって。やから、作ったコンテンツとか上げたファイルの数が多いと消し終わるまでに時間がかかるかもしれんわ。"
sendEmail: "アカウントの消し終わるときは、登録してたメアドに通知するで。"
requestAccountDelete: "アカウント削除頼む"
started: "削除処理が始まったで。"
@@ -2298,6 +2331,7 @@ _auth:
scopeUser: "以下のユーザーとしていじってるで"
pleaseLogin: "アプリにアクセスさせるんやったら、ログインしてや。"
byClickingYouWillBeRedirectedToThisUrl: "アクセスを許したら、自動で下のURLに遷移するで"
+ alreadyAuthorized: "このアプリはもうアクセスを許可してるみたいやで。"
_antennaSources:
all: "みんなのノート"
homeTimeline: "フォローしとるユーザーのノート"
@@ -2388,6 +2422,14 @@ _postForm:
replyPlaceholder: "このノートに返信..."
quotePlaceholder: "このノートを引用..."
channelPlaceholder: "チャンネルに投稿..."
+ _howToUse:
+ toolbar_description: "ファイルとかアンケートを付けたり、注釈とかハッシュタグを書いたり、絵文字とかメンションとかを付け足したりできるで。"
+ account_description: "投稿するアカウントを変えたり、アカウントに保存した下書きとか予約投稿とかを見れるで。"
+ visibility_title: "公開範囲"
+ visibility_description: "ノートを誰に見せたいかはここで切り替えてな。"
+ menu_title: "メニュー"
+ menu_description: "下書きに保存したり、投稿の予約したり、リアクションの受け入れ設定とか…なんか色々できるで。"
+ submit_description: "ノートを投稿するときはここ押してな。Ctrl + Enter / Cmd + Enter でも投稿できるで。"
_placeholders:
a: "いまどないしとるん?"
b: "何かあったん?"
@@ -2533,6 +2575,8 @@ _notification:
youReceivedFollowRequest: "フォロー許可してほしいみたいやな"
yourFollowRequestAccepted: "フォローさせてもろたで"
pollEnded: "アンケートの結果が出たみたいや"
+ scheduledNotePosted: "予約ノートが投稿されたで"
+ scheduledNotePostFailed: "予約ノート投稿できんかったで"
newNote: "さらの投稿"
unreadAntennaNote: "アンテナ {name}"
roleAssigned: "ロールが付与されたで"
@@ -2999,6 +3043,7 @@ _uploader:
maxFileSizeIsX: "アップロードできるファイルサイズは{x}までやで。"
tip: "ファイルはまだアップロードされてへんで。このダイアログで、アップロードする前に確認・リネーム・圧縮・クロッピングとかをできるで。準備が出来たら、「アップロード」ボタンを押してアップロードしてな。"
_clientPerformanceIssueTip:
+ title: "バッテリーようさん食うなぁと思ったら"
makeSureDisabledAdBlocker: "アドブロッカーを切ってみてや"
makeSureDisabledAdBlocker_description: "アドブロッカーはパフォーマンスに影響があるかもしれへん。OSの機能とかブラウザの機能・アドオンとかでアドブロッカーが有効になってないか確認してや。"
makeSureDisabledCustomCss: "カスタムCSSを無効にしてみてや"
@@ -3022,8 +3067,10 @@ _watermarkEditor:
image: "画像"
advanced: "高度"
angle: "角度"
+ failedToLoadImage: "あかん、画像読み込まれへんわ"
_imageEffector:
discardChangesConfirm: "変更をせんで終わるか?"
+ failedToLoadImage: "あかん、画像読み込まれへんわ"
_fxProps:
angle: "角度"
scale: "大きさ"
@@ -3040,4 +3087,5 @@ _drafts:
noDrafts: "下書きはあらへん"
_qr:
showTabTitle: "表示"
+ shareText: "Fediverseでフォローしてな!"
raw: "テキスト"
diff --git a/locales/kab-KAB.yml b/locales/kab-KAB.yml
index d4aa36fa70..27d20f47d1 100644
--- a/locales/kab-KAB.yml
+++ b/locales/kab-KAB.yml
@@ -57,6 +57,10 @@ searchByGoogle: "Nadi"
file: "Ifuyla"
account: "Imiḍan"
replies: "Err"
+_imageFrameEditor:
+ font: "Tasefsit"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_email:
_follow:
title: "Yeṭṭafaṛ-ik·em-id"
diff --git a/locales/ko-GS.yml b/locales/ko-GS.yml
index 2712586e65..b44bd2f482 100644
--- a/locales/ko-GS.yml
+++ b/locales/ko-GS.yml
@@ -651,6 +651,9 @@ renotes: "리노트"
attach: "옇기"
surrender: "아이예"
information: "정보"
+_imageEditing:
+ _vars:
+ filename: "파일 이럼"
_chat:
invitations: "초대하기"
noHistory: "기록이 없십니다"
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index 2f72d36d29..6b00257e2b 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될
uploadNFiles: "{n}개의 파일을 업로"
explore: "둘러보기"
messageRead: "읽음"
+readAllChatMessages: "모든 메시지를 읽은 상태로 표시"
noMoreHistory: "이것보다 과거의 기록이 없습니다"
startChat: "채팅을 시작하기"
nUsersRead: "{n}명이 읽음"
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "푸시 알림이 이미 켜져 있습니다"
pushNotificationNotSupported: "브라우저나 서버에서 푸시 알림이 지원되지 않습니다"
sendPushNotificationReadMessage: "푸시 알림이나 메시지를 읽은 뒤 푸시 알림을 삭제"
sendPushNotificationReadMessageCaption: "「{emptyPushNotificationMessage}」이라는 알림이 잠깐 표시됩니다. 기기의 전력 소비량이 증가할 수 있습니다."
+pleaseAllowPushNotification: "브라우저의 알림 설정을 허가해 주십시오."
+browserPushNotificationDisabled: "알림 송신 권한 얻기에 실패했습니다."
+browserPushNotificationDisabledDescription: "{serverName}에서의 알림 송신 권한이 없습니다. 브라우저의 설정에서 알림을 허가해 다시 시도해 주십시오."
windowMaximize: "최대화"
windowMinimize: "최소화"
windowRestore: "복구"
@@ -1396,6 +1400,50 @@ scheduled: "예약"
widgets: "위젯"
deviceInfo: "장치 정보"
deviceInfoDescription: "기술적 문의의 경우 아래의 정보를 병기하면 문제의 해결에 도움이 됩니다."
+youAreAdmin: "당신은 관리자입니다."
+frame: "프레임"
+presets: "프리셋"
+zeroPadding: "0으로 채우기"
+_imageEditing:
+ _vars:
+ caption: "파일 설명"
+ filename: "파일명"
+ filename_without_ext: "확장자가 없는 파일명"
+ year: "촬영한 해"
+ month: "촬영한 달"
+ day: "촬영한 날"
+ hour: "촬영한 시각(시)"
+ minute: "촬영한 시각(분)"
+ second: "촬영한 시각(초)"
+ camera_model: "카메라 이름"
+ camera_lens_model: "렌즈 이름"
+ camera_mm: "초점 거리"
+ camera_mm_35: "초점 거리(35m판 환산)"
+ camera_f: "조리개 조절"
+ camera_s: "셔터 속도"
+ camera_iso: "ISO 감도"
+ gps_lat: "위도"
+ gps_long: "경도"
+_imageFrameEditor:
+ title: "프레임 편집"
+ tip: "이미지에 프레임이나 메타 데이터를 포함한 라벨을 추가해 장식할 수 있습니다."
+ header: "헤더"
+ footer: "꼬리말"
+ borderThickness: "테두리의 폭"
+ labelThickness: "라벨의 폭"
+ labelScale: "라벨의 스케일"
+ centered: "중앙 정렬"
+ captionMain: "캡션(대)"
+ captionSub: "캡션(소)"
+ availableVariables: "이용 가능한 변수"
+ withQrCode: "QR 코드"
+ backgroundColor: "배경색"
+ textColor: "글꼴 색상"
+ font: "폰트"
+ fontSerif: "명조체"
+ fontSansSerif: "고딕체"
+ quitWithoutSaveConfirm: "보존하지 않고 종료하시겠습니까?"
+ failedToLoadImage: "이미지 로드에 실패했습니다."
_compression:
_quality:
high: "고품질"
@@ -1498,6 +1546,8 @@ _settings:
showUrlPreview: "URL 미리보기 표시"
showAvailableReactionsFirstInNote: "이용 가능한 리액션을 선두로 표시"
showPageTabBarBottom: "페이지의 탭 바를 아래쪽에 표시"
+ emojiPaletteBanner: "이모티콘 선택기에 고정 표시되는 프리셋을 팔레트로 등록하거나 선택기의 표시 방법을 커스터마이징할 수 있습니다."
+ enableAnimatedImages: "애니메이션 이미지 활성화"
_chat:
showSenderName: "발신자 이름 표시"
sendOnEnter: "엔터로 보내기"
@@ -1515,6 +1565,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "자동 백업을 활성화하려면 프로필 이름을 설정해야 합니다."
autoPreferencesBackupIsNotEnabledForThisDevice: "이 장치에서 설정 자동 백업이 활성화되어 있지 않습니다."
backupFound: "설정 백업이 발견되었습니다"
+ forceBackup: "설정 강제 백업"
_accountSettings:
requireSigninToViewContents: "콘텐츠 열람을 위해 로그인을 필수로 설정하기"
requireSigninToViewContentsDescription1: "자신이 작성한 모든 노트 등의 콘텐츠를 보기 위해 로그인을 필수로 설정합니다. 크롤러가 정보 수집하는 것을 방지하는 효과를 기대할 수 있습니다."
@@ -2530,6 +2581,20 @@ _postForm:
replyPlaceholder: "이 노트에 답글..."
quotePlaceholder: "이 노트를 인용..."
channelPlaceholder: "채널에 게시하기..."
+ showHowToUse: "입력란의 설명 표시"
+ _howToUse:
+ content_title: "본문"
+ content_description: "게시할 내용을 입력합니다."
+ toolbar_title: "도구 모음"
+ toolbar_description: "파일이나 설문의 첨부, 주석이나 해시태그 설정, 이모티콘이나 멘션의 삽입 등을 할 수 있습니다."
+ account_title: "계정 메뉴"
+ account_description: "게시할 계정을 교체하거나, 계정에 보존한 초안 및 예약 게시물을 목록으로 볼 수 있습니다."
+ visibility_title: "공개 범위"
+ visibility_description: "노트 공개 범위의 설정을 할 수 있습니다."
+ menu_title: "메뉴"
+ menu_description: "초안의 보존, 게시 예약, 리액션의 설정 등 그 외의 액션을 할 수 있습니다."
+ submit_title: "게시 버튼"
+ submit_description: "노트를 게시합니다. Ctrl + Enter / Cmd + Enter로도 게시할 수 있습니다."
_placeholders:
a: "지금 무엇을 하고 있나요?"
b: "무슨 일이 일어나고 있나요?"
@@ -2807,6 +2872,8 @@ _abuseReport:
notifiedWebhook: "사용할 Webhook"
deleteConfirm: "수신자를 삭제하시겠습니까?"
_moderationLogTypes:
+ clearQueue: "작업 대기열 비우기"
+ promoteQueue: "큐의 작업을 재시도"
createRole: "역할 생성"
deleteRole: "역할 삭제"
updateRole: "역할 수정"
@@ -3223,11 +3290,13 @@ _watermarkEditor:
polkadotSubDotRadius: "서브 물방울의 크기"
polkadotSubDotDivisions: "서브 물방울의 수"
leaveBlankToAccountUrl: "빈칸일 경우 계정의 URL로 됩니다."
+ failedToLoadImage: "이미지 로딩에 실패했습니다."
_imageEffector:
title: "이펙트"
addEffect: "이펙트를 추가"
discardChangesConfirm: "변경을 취소하고 종료하시겠습니까?"
nothingToConfigure: "설정 항목이 없습니다."
+ failedToLoadImage: "이미지 로딩에 실패했습니다."
_fxs:
chromaticAberration: "색수차"
glitch: "글리치"
diff --git a/locales/lo-LA.yml b/locales/lo-LA.yml
index aec49a2965..06856867b0 100644
--- a/locales/lo-LA.yml
+++ b/locales/lo-LA.yml
@@ -393,6 +393,9 @@ file: "ໄຟລ໌"
replies: "ຕອບກັບ"
renotes: "Renote"
information: "ກ່ຽວກັບ"
+_imageEditing:
+ _vars:
+ filename: "ຊື່ໄຟລ໌"
_chat:
invitations: "ເຊີນ"
noHistory: "ບໍ່ມີປະຫວັດ"
@@ -434,6 +437,9 @@ _visibility:
home: "ໜ້າຫຼັກ"
followers: "ຜູ້ຕິດຕາມ"
specified: "ໂພສ Direct note"
+_postForm:
+ _howToUse:
+ menu_title: "ເມນູ"
_profile:
name: "ຊື່"
username: "ຊື່ຜູ້ໃຊ້"
diff --git a/locales/nl-NL.yml b/locales/nl-NL.yml
index 87a805429e..27f782e611 100644
--- a/locales/nl-NL.yml
+++ b/locales/nl-NL.yml
@@ -970,6 +970,9 @@ renotes: "Herdelen"
followingOrFollower: "Gevolgd of volger"
confirmShowRepliesAll: "Dit is een onomkeerbare operatie. Weet je zeker dat reacties op anderen van iedereen die je volgt, wil weergeven in je tijdlijn?"
information: "Over"
+_imageEditing:
+ _vars:
+ filename: "Bestandsnaam"
_chat:
invitations: "Uitnodigen"
noHistory: "Geen geschiedenis gevonden"
@@ -1020,6 +1023,10 @@ _visibility:
home: "Startpagina"
followers: "Volgers"
specified: "Directe notities"
+_postForm:
+ _howToUse:
+ visibility_title: "Zichtbaarheid"
+ menu_title: "Menu"
_profile:
name: "Naam"
username: "Gebruikersnaam"
diff --git a/locales/no-NO.yml b/locales/no-NO.yml
index 2df475bffd..6f60223342 100644
--- a/locales/no-NO.yml
+++ b/locales/no-NO.yml
@@ -463,6 +463,12 @@ surrender: "Avbryt"
information: "Informasjon"
inMinutes: "Minutter"
inDays: "Dager"
+_imageEditing:
+ _vars:
+ filename: "Filnavn"
+_imageFrameEditor:
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "Inviter"
members: "Medlemmer"
@@ -650,6 +656,8 @@ _visibility:
home: "Hjem"
followers: "Følgere"
_postForm:
+ _howToUse:
+ menu_title: "Meny"
_placeholders:
a: "Hva skjer?"
_profile:
diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml
index 82b0f3aae6..18dd43e938 100644
--- a/locales/pl-PL.yml
+++ b/locales/pl-PL.yml
@@ -1043,6 +1043,15 @@ information: "Informacje"
inMinutes: "minuta"
inDays: "dzień"
widgets: "Widżety"
+presets: "Konfiguracja"
+_imageEditing:
+ _vars:
+ filename: "Nazwa pliku"
+_imageFrameEditor:
+ header: "Nagłówek"
+ font: "Czcionka"
+ fontSerif: "Szeryfowa"
+ fontSansSerif: "Bezszeryfowa"
_chat:
invitations: "Zaproś"
noHistory: "Brak historii"
@@ -1393,6 +1402,9 @@ _postForm:
replyPlaceholder: "Odpowiedz na ten wpis..."
quotePlaceholder: "Zacytuj ten wpis…"
channelPlaceholder: "Publikuj na kanale..."
+ _howToUse:
+ visibility_title: "Widoczność"
+ menu_title: "Menu"
_placeholders:
a: "Co się dzieje?"
b: "Co się wydarzyło?"
diff --git a/locales/pt-PT.yml b/locales/pt-PT.yml
index 1f14dfb456..2ee5b06ec2 100644
--- a/locales/pt-PT.yml
+++ b/locales/pt-PT.yml
@@ -1390,6 +1390,17 @@ scheduledToPostOnX: "A nota está agendada para {x}"
schedule: "Agendar"
scheduled: "Agendado"
widgets: "Widgets"
+presets: "Predefinições"
+_imageEditing:
+ _vars:
+ filename: "Nome do Ficheiro"
+_imageFrameEditor:
+ header: "Cabeçalho"
+ withQrCode: "Código QR"
+ font: "Fonte"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "Descartar mudanças?"
_compression:
_quality:
high: "Qualidade alta"
@@ -2522,6 +2533,9 @@ _postForm:
replyPlaceholder: "Responder a essa nota..."
quotePlaceholder: "Citar essa nota..."
channelPlaceholder: "Postar em canal..."
+ _howToUse:
+ visibility_title: "Visibilidade"
+ menu_title: "Menu\n"
_placeholders:
a: "Como vão as coisas?"
b: "O que está rolando por aí?"
diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml
index cc37b531f5..d1ff2f1040 100644
--- a/locales/ro-RO.yml
+++ b/locales/ro-RO.yml
@@ -1215,6 +1215,10 @@ lastNDays: "Ultimele {n} zile"
surrender: "Anulează"
copyPreferenceId: "Copiază ID-ul preferințelor"
information: "Despre"
+presets: "Presetate"
+_imageEditing:
+ _vars:
+ filename: "Nume fișier"
_chat:
invitations: "Invită"
noHistory: "Nu există istoric"
@@ -1307,6 +1311,9 @@ _postForm:
replyPlaceholder: "Răspunde la această notă..."
quotePlaceholder: "Citează aceasta nota..."
channelPlaceholder: "Postează pe un canal..."
+ _howToUse:
+ visibility_title: "Vizibilitate"
+ menu_title: "Meniu"
_placeholders:
a: "Ce mai faci?"
b: "Ce se mai petrece in jurul tău?"
diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml
index 8c5698be46..c77487c41b 100644
--- a/locales/ru-RU.yml
+++ b/locales/ru-RU.yml
@@ -87,7 +87,7 @@ exportRequested: "Вы запросили экспорт. Это может за
importRequested: "Вы запросили импорт. Это может занять некоторое время."
lists: "Списки"
noLists: "Нет ни одного списка"
-note: "Заметка"
+note: "Пост"
notes: "Заметки"
following: "Подписки"
followers: "Подписчики"
@@ -122,7 +122,7 @@ inChannelRenote: "В канале"
inChannelQuote: "Заметки в канале"
renoteToChannel: "Репостнуть в канал"
renoteToOtherChannel: "Репостнуть в другой канал"
-pinnedNote: "Закреплённая заметка"
+pinnedNote: "Закреплённый пост"
pinned: "Закрепить в профиле"
you: "Вы"
clickToShow: "Нажмите для просмотра"
@@ -253,6 +253,7 @@ noteDeleteConfirm: "Вы хотите удалить эту заметку?"
pinLimitExceeded: "Нельзя закрепить ещё больше заметок"
done: "Готово"
processing: "Обработка"
+preprocessing: "Подготовка..."
preview: "Предпросмотр"
default: "По умолчанию"
defaultValueIs: "По умолчанию: {value}"
@@ -396,7 +397,7 @@ pinnedUsersDescription: "Перечислите по одному имени п
pinnedPages: "Закрепленные страницы"
pinnedPagesDescription: "Если хотите закрепить страницы на главной сайта, сюда можно добавить пути к ним, каждый в отдельной строке."
pinnedClipId: "Идентификатор закреплённой подборки"
-pinnedNotes: "Закреплённая заметка"
+pinnedNotes: "Закреплённый пост"
hcaptcha: "hCaptcha"
enableHcaptcha: "Включить hCaptcha"
hcaptchaSiteKey: "Ключ сайта"
@@ -1164,6 +1165,7 @@ installed: "Установлено"
branding: "Бренд"
enableServerMachineStats: "Опубликовать характеристики сервера"
enableIdenticonGeneration: "Включить генерацию иконки пользователя"
+showRoleBadgesOfRemoteUsers: "Display the role badges assigned to remote users"
turnOffToImprovePerformance: "Отключение этого параметра может повысить производительность."
createInviteCode: "Создать код приглашения"
createWithOptions: "Используйте параметры для создания"
@@ -1278,6 +1280,15 @@ information: "Описание"
inMinutes: "мин"
inDays: "сут"
widgets: "Виджеты"
+presets: "Шаблоны"
+_imageEditing:
+ _vars:
+ filename: "Имя файла"
+_imageFrameEditor:
+ header: "Заголовок"
+ font: "Шрифт"
+ fontSerif: "Антиква (с засечками)"
+ fontSansSerif: "Гротеск (без засечек)"
_chat:
invitations: "Пригласить"
noHistory: "История пока пуста"
@@ -2007,6 +2018,9 @@ _postForm:
replyPlaceholder: "Ответ на заметку..."
quotePlaceholder: "Пояснение к цитате..."
channelPlaceholder: "Отправить в канал"
+ _howToUse:
+ visibility_title: "Видимость"
+ menu_title: "Меню"
_placeholders:
a: "Как дела?"
b: "Что интересного вокруг?"
diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml
index acac094054..937fbdfebf 100644
--- a/locales/sk-SK.yml
+++ b/locales/sk-SK.yml
@@ -916,6 +916,14 @@ information: "Informácie"
inMinutes: "min"
inDays: "dní"
widgets: "Widgety"
+_imageEditing:
+ _vars:
+ filename: "Názov súboru"
+_imageFrameEditor:
+ header: "Hlavička"
+ font: "Písmo"
+ fontSerif: "Pätkové"
+ fontSansSerif: "Bezpätkové"
_chat:
invitations: "Pozvať"
noHistory: "Žiadna história"
@@ -1264,6 +1272,9 @@ _postForm:
replyPlaceholder: "Odpoveď na túto poznámku..."
quotePlaceholder: "Citovanie tejto poznámky..."
channelPlaceholder: "Poslať do kanála..."
+ _howToUse:
+ visibility_title: "Viditeľnosť"
+ menu_title: "Menu"
_placeholders:
a: "Čo máte v pláne?"
b: "Čo sa deje?"
diff --git a/locales/sv-SE.yml b/locales/sv-SE.yml
index 96944706e9..c0fd267546 100644
--- a/locales/sv-SE.yml
+++ b/locales/sv-SE.yml
@@ -559,6 +559,9 @@ tryAgain: "Försök igen senare"
signinWithPasskey: "Logga in med nyckel"
unknownWebAuthnKey: "Okänd nyckel"
information: "Om"
+_imageEditing:
+ _vars:
+ filename: "Filnamn"
_chat:
invitations: "Inbjudan"
members: "Medlemmar"
@@ -647,6 +650,9 @@ _visibility:
home: "Hem"
followers: "Följare"
specified: "Direktnoter"
+_postForm:
+ _howToUse:
+ menu_title: "Meny"
_profile:
name: "Namn"
username: "Användarnamn"
diff --git a/locales/th-TH.yml b/locales/th-TH.yml
index 61f367cc1c..e4c30c0101 100644
--- a/locales/th-TH.yml
+++ b/locales/th-TH.yml
@@ -1390,6 +1390,17 @@ scheduledToPostOnX: "มีการกำหนดเวลาให้โพ
schedule: "กำหนดเวลา"
scheduled: "กำหนดเวลา"
widgets: "วิดเจ็ต"
+presets: "พรีเซ็ต"
+_imageEditing:
+ _vars:
+ filename: "ชื่อไฟล์"
+_imageFrameEditor:
+ header: "ส่วนหัว"
+ withQrCode: "QR โค้ด"
+ font: "แบบอักษร"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "ต้องการออกโดยไม่บันทึกหรือไม่?"
_compression:
_quality:
high: "คุณภาพสูง"
@@ -2522,6 +2533,9 @@ _postForm:
replyPlaceholder: "ตอบกลับโน้ตนี้..."
quotePlaceholder: "อ้างโน้ตนี้..."
channelPlaceholder: "โพสต์ลงช่อง..."
+ _howToUse:
+ visibility_title: "การมองเห็น"
+ menu_title: "เมนู"
_placeholders:
a: "ตอนนี้เป็นยังไงบ้าง?"
b: "มีอะไรเกิดขึ้นหรือเปล่า?"
diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml
index 9ed6960a57..208022a6d9 100644
--- a/locales/tr-TR.yml
+++ b/locales/tr-TR.yml
@@ -1379,6 +1379,16 @@ customCssIsDisabledBecauseSafeMode: "Güvenli mod etkin olduğu için özel CSS
themeIsDefaultBecauseSafeMode: "Güvenli mod etkinken, varsayılan tema kullanılır. Güvenli modu devre dışı bırakmak bu değişiklikleri geri alır."
thankYouForTestingBeta: "Beta sürümünü test ettiğin için teşekkür ederiz!"
widgets: "Widget'lar"
+presets: "Ön ayar"
+_imageEditing:
+ _vars:
+ filename: "Dosya adı"
+_imageFrameEditor:
+ header: "Başlık"
+ font: "Yazı tipi"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
+ quitWithoutSaveConfirm: "Kaydedilmemiş değişiklikleri silmek ister misin?"
_order:
newest: "Önce yeni"
oldest: "Önce eski"
@@ -2500,6 +2510,9 @@ _postForm:
replyPlaceholder: "Bu notu yanıtla..."
quotePlaceholder: "Bu notu alıntı yap..."
channelPlaceholder: "Bir kanala gönder..."
+ _howToUse:
+ visibility_title: "Görünürlük"
+ menu_title: "Menü"
_placeholders:
a: "Ne yapıyorsun?"
b: "Çevrende neler oluyor?"
diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml
index 08835398e7..c399e4c29c 100644
--- a/locales/uk-UA.yml
+++ b/locales/uk-UA.yml
@@ -922,6 +922,14 @@ information: "Інформація"
inMinutes: "х"
inDays: "д"
widgets: "Віджети"
+_imageEditing:
+ _vars:
+ filename: "Ім'я файлу"
+_imageFrameEditor:
+ header: "Заголовок"
+ font: "Шрифт"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans serif"
_chat:
invitations: "Запросити"
noHistory: "Історія порожня"
@@ -1462,6 +1470,9 @@ _postForm:
replyPlaceholder: "Відповідь на цю нотатку..."
quotePlaceholder: "Прокоментуйте цю нотатку..."
channelPlaceholder: "Опублікувати в каналі"
+ _howToUse:
+ visibility_title: "Видимість"
+ menu_title: "Меню"
_placeholders:
a: "Чим займаєтесь?"
b: "Що відбувається навколо вас?"
diff --git a/locales/uz-UZ.yml b/locales/uz-UZ.yml
index a17df99ad5..5d7c63dd15 100644
--- a/locales/uz-UZ.yml
+++ b/locales/uz-UZ.yml
@@ -837,6 +837,14 @@ replies: "Javob berish"
renotes: "Qayta qayd etish"
flip: "Teskari"
information: "Haqida"
+_imageEditing:
+ _vars:
+ filename: "Fayl nomi"
+_imageFrameEditor:
+ header: "Sarlavha"
+ font: "Shrift"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "Taklif qilish"
noHistory: "Tarix yo'q"
@@ -964,6 +972,10 @@ _visibility:
home: "Bosh sahifa"
followers: "Obunachilar"
specified: "Bevosita"
+_postForm:
+ _howToUse:
+ visibility_title: "Ko'rinishi"
+ menu_title: "Menyu"
_profile:
name: "Ism"
username: "Foydalanuvchi nomi"
diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml
index f1e5993c48..e0204ae4f8 100644
--- a/locales/vi-VN.yml
+++ b/locales/vi-VN.yml
@@ -1223,6 +1223,15 @@ migrateOldSettings_description: "Thông thường, quá trình này diễn ra t
inMinutes: "phút"
inDays: "ngày"
widgets: "Tiện ích"
+presets: "Mẫu thiết lập"
+_imageEditing:
+ _vars:
+ filename: "Tên tập tin"
+_imageFrameEditor:
+ header: "Ảnh bìa"
+ font: "Phông chữ"
+ fontSerif: "Serif"
+ fontSansSerif: "Sans Serif"
_chat:
invitations: "Mời"
noHistory: "Không có dữ liệu"
@@ -1859,6 +1868,9 @@ _postForm:
replyPlaceholder: "Trả lời tút này"
quotePlaceholder: "Trích dẫn tút này"
channelPlaceholder: "Đăng lên một kênh"
+ _howToUse:
+ visibility_title: "Hiển thị"
+ menu_title: "Menu"
_placeholders:
a: "Bạn đang định làm gì?"
b: "Hôm nay bạn có gì vui?"
diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml
index 9e4f180f25..fdfe15f14a 100644
--- a/locales/zh-CN.yml
+++ b/locales/zh-CN.yml
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。"
uploadNFiles: "上传 {n} 个文件"
explore: "发现"
messageRead: "已读"
+readAllChatMessages: "将所有消息标记为已读"
noMoreHistory: "没有更多的历史记录"
startChat: "开始聊天"
nUsersRead: "{n}人已读"
@@ -1396,6 +1397,44 @@ scheduled: "定时"
widgets: "小工具"
deviceInfo: "设备信息"
deviceInfoDescription: "咨询技术问题时,将以下信息一并发送有助于解决问题。"
+youAreAdmin: "你是管理员"
+presets: "预设值"
+zeroPadding: "填充 0"
+_imageEditing:
+ _vars:
+ caption: "文件标题"
+ filename: "文件名称"
+ filename_without_ext: "无扩展文件名"
+ year: "拍摄年"
+ month: "拍摄月"
+ day: "拍摄日"
+ hour: "拍摄时间(时)"
+ minute: "拍摄时间(分)"
+ second: "拍摄时间(秒)"
+ camera_model: "相机名称"
+ camera_lens_model: "镜头型号"
+ camera_mm: "焦距"
+ camera_f: "光圈"
+ camera_s: "快门速度"
+ camera_iso: "ISO"
+ gps_lat: "纬度"
+ gps_long: "经度"
+_imageFrameEditor:
+ header: "顶栏"
+ footer: "底部"
+ labelScale: "标签比例"
+ centered: "居中"
+ captionMain: "标题(大)"
+ captionSub: "标题(小)"
+ availableVariables: "可用变量"
+ withQrCode: "二维码"
+ backgroundColor: "背景色"
+ textColor: "文字色"
+ font: "字体"
+ fontSerif: "衬线字体"
+ fontSansSerif: "无衬线字体"
+ quitWithoutSaveConfirm: "不保存就退出吗?"
+ failedToLoadImage: "图片加载失败"
_compression:
_quality:
high: "高质量"
@@ -1498,6 +1537,8 @@ _settings:
showUrlPreview: "显示 URL 预览"
showAvailableReactionsFirstInNote: "在顶部显示可用的回应"
showPageTabBarBottom: "在下方显示页面标签栏"
+ emojiPaletteBanner: "可以将固定显示表情符号选择器的预设注册至调色板,也可以自定义表情符号选择器的显示方式。"
+ enableAnimatedImages: "启用动画图像"
_chat:
showSenderName: "显示发送者的名字"
sendOnEnter: "回车键发送"
@@ -1506,6 +1547,8 @@ _preferencesProfile:
profileNameDescription: "请指定用于识别此设备的名称"
profileNameDescription2: "如「PC」、「手机」等"
manageProfiles: "管理配置文件"
+ shareSameProfileBetweenDevicesIsNotRecommended: "不建议在多个设备间共用同一个配置文件。"
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "若想在多个设备间同步某些设置,请为每个设置打开「多设备间同步」选项。"
_preferencesBackup:
autoBackup: "自动备份"
restoreFromBackup: "从备份恢复"
@@ -2530,6 +2573,20 @@ _postForm:
replyPlaceholder: "回复这个帖子..."
quotePlaceholder: "引用这个帖子..."
channelPlaceholder: "发布到频道…"
+ showHowToUse: "显示窗口说明"
+ _howToUse:
+ content_title: "正文"
+ content_description: "在此输入要发布的内容。"
+ toolbar_title: "工具栏"
+ toolbar_description: "可在此添加文件和投票、设置注释和话题标签、插入表情符号和提及等。"
+ account_title: "账号菜单"
+ account_description: "可在此切换发帖用的账号、查看账户下保存的草稿及定时发送帖。"
+ visibility_title: "可见性"
+ visibility_description: "可在此设置帖子的公开范围。"
+ menu_title: "菜单"
+ menu_description: "可在此进行保存草稿、设置定时发帖、设置回应等其它操作。"
+ submit_title: "发帖按钮"
+ submit_description: "发布帖子。也可用 Ctrl + Enter / Cmd + Enter 来发帖。"
_placeholders:
a: "现在怎么样?"
b: "想好发些什么了吗?"
@@ -3223,11 +3280,13 @@ _watermarkEditor:
polkadotSubDotRadius: "副波点的大小"
polkadotSubDotDivisions: "副波点的数量"
leaveBlankToAccountUrl: "留空则为账户 URL"
+ failedToLoadImage: "图片加载失败"
_imageEffector:
title: "效果"
addEffect: "添加效果"
discardChangesConfirm: "丢弃当前设置并退出?"
nothingToConfigure: "还没有设置"
+ failedToLoadImage: "图片加载失败"
_fxs:
chromaticAberration: "色差"
glitch: "故障"
diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml
index 12569f415b..7fc9497eb0 100644
--- a/locales/zh-TW.yml
+++ b/locales/zh-TW.yml
@@ -302,6 +302,7 @@ uploadFromUrlMayTakeTime: "還需要一些時間才能完成上傳。"
uploadNFiles: "上傳了 {n} 個檔案"
explore: "探索"
messageRead: "已讀"
+readAllChatMessages: "將所有訊息標記為已讀"
noMoreHistory: "沒有更多歷史紀錄"
startChat: "開始聊天"
nUsersRead: "{n} 人已讀"
@@ -1022,6 +1023,9 @@ pushNotificationAlreadySubscribed: "推播通知啟用中"
pushNotificationNotSupported: "瀏覽器或伺服器不支援推播通知"
sendPushNotificationReadMessage: "如果已閱讀通知與訊息,就刪除推播通知"
sendPushNotificationReadMessageCaption: "可能會導致裝置的電池消耗量增加。"
+pleaseAllowPushNotification: "請允許瀏覽器的通知設定"
+browserPushNotificationDisabled: "取得通知發送權限失敗"
+browserPushNotificationDisabledDescription: "您沒有權限從 {serverName} 發送通知。請在瀏覽器設定中允許通知,然後再試一次。"
windowMaximize: "最大化"
windowMinimize: "最小化"
windowRestore: "復原"
@@ -1172,6 +1176,7 @@ installed: "已安裝"
branding: "品牌宣傳"
enableServerMachineStats: "公佈伺服器的機器資訊"
enableIdenticonGeneration: "啟用生成使用者的 Identicon "
+showRoleBadgesOfRemoteUsers: "顯示授予遠端使用者的角色徽章"
turnOffToImprovePerformance: "關閉時會提高性能。"
createInviteCode: "建立邀請碼"
createWithOptions: "使用選項建立"
@@ -1395,6 +1400,50 @@ scheduled: "排定"
widgets: "小工具"
deviceInfo: "硬體資訊"
deviceInfoDescription: "在提出技術性諮詢時,若能同時提供以下資訊,將有助於解決問題。"
+youAreAdmin: "您是管理員"
+frame: "邊框"
+presets: "預設值"
+zeroPadding: "補零"
+_imageEditing:
+ _vars:
+ caption: "檔案標題"
+ filename: "檔案名稱"
+ filename_without_ext: "無副檔名的檔案名稱"
+ year: "拍攝年份"
+ month: "拍攝月份"
+ day: "拍攝日期"
+ hour: "拍攝時間(小時)"
+ minute: "拍攝時間(分鐘)"
+ second: "拍攝時間(秒)"
+ camera_model: "相機名稱"
+ camera_lens_model: "鏡頭型號"
+ camera_mm: "焦距"
+ camera_mm_35: "焦距(換算為 35mm 底片等效焦距)"
+ camera_f: "光圈"
+ camera_s: "快門速度"
+ camera_iso: "ISO 感光度"
+ gps_lat: "緯度"
+ gps_long: "經度"
+_imageFrameEditor:
+ title: "編輯邊框"
+ tip: "可以在圖片上添加包含邊框或 EXIF 的標籤來裝飾圖片。"
+ header: "標題"
+ footer: "頁尾"
+ borderThickness: "邊框寬度"
+ labelThickness: "標籤寬度"
+ labelScale: "標籤縮放比例"
+ centered: "置中對齊"
+ captionMain: "標題文字(大)"
+ captionSub: "標題文字(小)"
+ availableVariables: "可使用的變數"
+ withQrCode: "二維條碼"
+ backgroundColor: "背景顏色"
+ textColor: "文字顏色"
+ font: "字型"
+ fontSerif: "襯線體"
+ fontSansSerif: "無襯線體"
+ quitWithoutSaveConfirm: "不儲存就退出嗎?"
+ failedToLoadImage: "圖片載入失敗"
_compression:
_quality:
high: "高品質"
@@ -1497,6 +1546,8 @@ _settings:
showUrlPreview: "顯示網址預覽"
showAvailableReactionsFirstInNote: "將可用的反應顯示在頂部"
showPageTabBarBottom: "在底部顯示頁面的標籤列"
+ emojiPaletteBanner: "可以將固定顯示在表情符號選擇器的預設項目註冊為調色盤,或者自訂選擇器的顯示方式。"
+ enableAnimatedImages: "啟用動畫圖片"
_chat:
showSenderName: "顯示發送者的名稱"
sendOnEnter: "按下 Enter 發送訊息"
@@ -1505,6 +1556,8 @@ _preferencesProfile:
profileNameDescription: "設定一個名稱來識別此裝置。"
profileNameDescription2: "例如:「主要個人電腦」、「智慧型手機」等"
manageProfiles: "管理個人檔案"
+ shareSameProfileBetweenDevicesIsNotRecommended: "不建議在多個裝置上共用同一個設定檔。"
+ useSyncBetweenDevicesOptionIfYouWantToSyncSetting: "如果您希望在多個裝置之間同步某些設定項目,請分別啟用「跨裝置同步」選項。"
_preferencesBackup:
autoBackup: "自動備份"
restoreFromBackup: "從備份還原"
@@ -1514,6 +1567,7 @@ _preferencesBackup:
youNeedToNameYourProfileToEnableAutoBackup: "要啟用自動備份,必須設定檔案名稱。"
autoPreferencesBackupIsNotEnabledForThisDevice: "此裝置未啟用自動備份設定。"
backupFound: "找到設定的備份"
+ forceBackup: "強制備份設定"
_accountSettings:
requireSigninToViewContents: "須登入以顯示內容"
requireSigninToViewContentsDescription1: "必須登入才會顯示您建立的貼文等內容。可望有效防止資訊被爬蟲蒐集。"
@@ -2529,6 +2583,20 @@ _postForm:
replyPlaceholder: "回覆此貼文..."
quotePlaceholder: "引用此貼文..."
channelPlaceholder: "發佈到頻道"
+ showHowToUse: "顯示表單說明"
+ _howToUse:
+ content_title: "內文"
+ content_description: "請輸入要發布的內容。"
+ toolbar_title: "工具列"
+ toolbar_description: "可以附加檔案或票選活動、設定註解與標籤、插入表情符號或提及等。"
+ account_title: "帳號選單"
+ account_description: "可以切換要發布的帳號,並查看該帳號所儲存的草稿與預約發布列表。"
+ visibility_title: "可見性"
+ visibility_description: "可以設定貼文的公開範圍。"
+ menu_title: "選單"
+ menu_description: "可以進行其他操作,例如儲存為草稿、預約發佈貼文、或設定反應等。\n"
+ submit_title: "貼文按鈕"
+ submit_description: "發布貼文。也可以使用 Ctrl + Enter 或 Cmd + Enter 來發布。"
_placeholders:
a: "今天過得如何?"
b: "有什麼新鮮事嗎?"
@@ -2638,7 +2706,7 @@ _pages:
hideTitleWhenPinned: "被置頂於個人資料時隱藏頁面標題"
font: "字型"
fontSerif: "襯線體"
- fontSansSerif: "黑體"
+ fontSansSerif: "無襯線體"
eyeCatchingImageSet: "設定封面影像"
eyeCatchingImageRemove: "刪除封面影像"
chooseBlock: "新增方塊"
@@ -2806,6 +2874,8 @@ _abuseReport:
notifiedWebhook: "使用的 Webhook"
deleteConfirm: "確定要刪除通知對象嗎?"
_moderationLogTypes:
+ clearQueue: "清除佇列"
+ promoteQueue: "重新嘗試排程中的工作"
createRole: "新增角色"
deleteRole: "刪除角色 "
updateRole: "更新角色設定"
@@ -3222,11 +3292,13 @@ _watermarkEditor:
polkadotSubDotRadius: "子圓點的尺寸"
polkadotSubDotDivisions: "子圓點的數量"
leaveBlankToAccountUrl: "若留空則使用帳戶的 URL"
+ failedToLoadImage: "圖片載入失敗"
_imageEffector:
title: "特效"
addEffect: "新增特效"
discardChangesConfirm: "捨棄更改並退出嗎?"
nothingToConfigure: "無可設定的項目"
+ failedToLoadImage: "圖片載入失敗"
_fxs:
chromaticAberration: "色差"
glitch: "異常雜訊效果"
diff --git a/package.json b/package.json
index 9d61f7f6d0..f77688603e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "misskey",
- "version": "2025.11.0-alpha.3",
+ "version": "2025.11.0",
"codename": "nasubi",
"repository": {
"type": "git",
@@ -26,6 +26,7 @@
"build-storybook": "pnpm --filter frontend build-storybook",
"build-misskey-js-with-types": "pnpm build-pre && pnpm --filter backend... --filter=!misskey-js build && pnpm --filter backend generate-api-json --no-build && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build && pnpm --filter misskey-js api",
"start": "pnpm check:connect && cd packages/backend && node ./built/boot/entry.js",
+ "start:inspect": "cd packages/backend && node --inspect ./built/boot/entry.js",
"start:test": "ncp ./.github/misskey/test.yml ./.config/test.yml && cd packages/backend && cross-env NODE_ENV=test node ./built/boot/entry.js",
"cli": "cd packages/backend && pnpm cli",
"init": "pnpm migrate",
diff --git a/packages/backend/package.json b/packages/backend/package.json
index e69dd86dc0..af2ab9487a 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -8,6 +8,7 @@
},
"scripts": {
"start": "node ./built/boot/entry.js",
+ "start:inspect": "node --inspect ./built/boot/entry.js",
"start:test": "cross-env NODE_ENV=test node ./built/boot/entry.js",
"migrate": "pnpm typeorm migration:run -d ormconfig.js",
"revert": "pnpm typeorm migration:revert -d ormconfig.js",
diff --git a/packages/backend/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts
index e3a6d2d670..8d49b6fd0f 100644
--- a/packages/backend/src/server/api/endpoints/channels/create.ts
+++ b/packages/backend/src/server/api/endpoints/channels/create.ts
@@ -46,7 +46,7 @@ export const paramDef = {
type: 'object',
properties: {
name: { type: 'string', minLength: 1, maxLength: 128 },
- description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 },
+ description: { type: 'string', nullable: true, maxLength: 2048 },
bannerId: { type: 'string', format: 'misskey:id', nullable: true },
color: { type: 'string', minLength: 1, maxLength: 16 },
isSensitive: { type: 'boolean', nullable: true },
diff --git a/packages/backend/src/server/api/endpoints/channels/update.ts b/packages/backend/src/server/api/endpoints/channels/update.ts
index dba2938b39..5ec55896e4 100644
--- a/packages/backend/src/server/api/endpoints/channels/update.ts
+++ b/packages/backend/src/server/api/endpoints/channels/update.ts
@@ -50,7 +50,7 @@ export const paramDef = {
properties: {
channelId: { type: 'string', format: 'misskey:id' },
name: { type: 'string', minLength: 1, maxLength: 128 },
- description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 },
+ description: { type: 'string', nullable: true, maxLength: 2048 },
bannerId: { type: 'string', format: 'misskey:id', nullable: true },
isArchived: { type: 'boolean', nullable: true },
pinnedNoteIds: {
diff --git a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts
index 44719592d1..057b567312 100644
--- a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts
+++ b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts
@@ -5,6 +5,7 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
+import { QueryService } from '@/core/QueryService.js';
import type { ClipFavoritesRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
import { ClipEntityService } from '@/core/entities/ClipEntityService.js';
@@ -30,6 +31,11 @@ export const meta = {
export const paramDef = {
type: 'object',
properties: {
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },
+ sinceId: { type: 'string', format: 'misskey:id' },
+ untilId: { type: 'string', format: 'misskey:id' },
+ sinceDate: { type: 'integer' },
+ untilDate: { type: 'integer' },
},
required: [],
} as const;
@@ -40,14 +46,16 @@ export default class extends Endpoint { // eslint-
@Inject(DI.clipFavoritesRepository)
private clipFavoritesRepository: ClipFavoritesRepository,
+ private queryService: QueryService,
private clipEntityService: ClipEntityService,
) {
super(meta, paramDef, async (ps, me) => {
- const query = this.clipFavoritesRepository.createQueryBuilder('favorite')
+ const query = this.queryService.makePaginationQuery(this.clipFavoritesRepository.createQueryBuilder('favorite'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
.andWhere('favorite.userId = :meId', { meId: me.id })
.leftJoinAndSelect('favorite.clip', 'clip');
const favorites = await query
+ .limit(ps.limit)
.getMany();
return this.clipEntityService.packMany(favorites.map(x => x.clip!), me);
diff --git a/packages/backend/test/e2e/clips.ts b/packages/backend/test/e2e/clips.ts
index fe9a217ee8..fec83c2433 100644
--- a/packages/backend/test/e2e/clips.ts
+++ b/packages/backend/test/e2e/clips.ts
@@ -506,10 +506,10 @@ describe('クリップ', () => {
});
};
- const myFavorites = async (request: Partial> = {}): Promise => {
+ const myFavorites = async (parameters: Misskey.entities.ClipsMyFavoritesRequest, request: Partial> = {}): Promise => {
return successfulApiCall({
endpoint: 'clips/my-favorites',
- parameters: {},
+ parameters,
user: alice,
...request,
});
@@ -562,8 +562,9 @@ describe('クリップ', () => {
await favorite({ clipId: clip.id });
}
- // pagenationはない。全部一気にとれる。
- const favorited = await myFavorites();
+ const favorited = await myFavorites({
+ limit: 30,
+ });
assert.strictEqual(favorited.length, clips.length);
for (const clip of favorited) {
assert.strictEqual(clip.favoritedCount, 1);
@@ -617,7 +618,7 @@ describe('クリップ', () => {
const clip = await show({ clipId: aliceClip.id });
assert.strictEqual(clip.favoritedCount, 0);
assert.strictEqual(clip.isFavorited, false);
- assert.deepStrictEqual(await myFavorites(), []);
+ assert.deepStrictEqual(await myFavorites({}), []);
});
test.each([
@@ -651,13 +652,13 @@ describe('クリップ', () => {
test('を取得できる。', async () => {
await favorite({ clipId: aliceClip.id });
- const favorited = await myFavorites();
+ const favorited = await myFavorites({});
assert.deepStrictEqual(favorited, [await show({ clipId: aliceClip.id })]);
});
test('を取得したとき他人のお気に入りは含まない。', async () => {
await favorite({ clipId: aliceClip.id });
- const favorited = await myFavorites({ user: bob });
+ const favorited = await myFavorites({}, { user: bob });
assert.deepStrictEqual(favorited, []);
});
});
diff --git a/packages/backend/test/unit/RoleService.ts b/packages/backend/test/unit/RoleService.ts
index 62789d28a2..71090c8be6 100644
--- a/packages/backend/test/unit/RoleService.ts
+++ b/packages/backend/test/unit/RoleService.ts
@@ -158,11 +158,15 @@ describe('RoleService', () => {
afterEach(async () => {
clock.uninstall();
+ /**
+ * Delete meta and roleAssignment first to avoid deadlock due to schema dependencies
+ * https://github.com/misskey-dev/misskey/issues/16783
+ */
+ await app.get(DI.metasRepository).createQueryBuilder().delete().execute();
+ await roleAssignmentsRepository.createQueryBuilder().delete().execute();
await Promise.all([
- app.get(DI.metasRepository).createQueryBuilder().delete().execute(),
usersRepository.createQueryBuilder().delete().execute(),
rolesRepository.createQueryBuilder().delete().execute(),
- roleAssignmentsRepository.createQueryBuilder().delete().execute(),
]);
await app.close();
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue
index 3b81a6080f..84b0d12bb9 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -608,11 +608,30 @@ async function toggleReactionAcceptance() {
//#region その他の設定メニューpopup
function showOtherSettings() {
let reactionAcceptanceIcon = 'ti ti-icons';
+ let reactionAcceptanceCaption = '';
- if (reactionAcceptance.value === 'likeOnly') {
- reactionAcceptanceIcon = 'ti ti-heart _love';
- } else if (reactionAcceptance.value === 'likeOnlyForRemote') {
- reactionAcceptanceIcon = 'ti ti-heart-plus';
+ switch (reactionAcceptance.value) {
+ case 'likeOnly':
+ reactionAcceptanceIcon = 'ti ti-heart _love';
+ reactionAcceptanceCaption = i18n.ts.likeOnly;
+ break;
+
+ case 'likeOnlyForRemote':
+ reactionAcceptanceIcon = 'ti ti-heart-plus';
+ reactionAcceptanceCaption = i18n.ts.likeOnlyForRemote;
+ break;
+
+ case 'nonSensitiveOnly':
+ reactionAcceptanceCaption = i18n.ts.nonSensitiveOnly;
+ break;
+
+ case 'nonSensitiveOnlyForLocalLikeOnlyForRemote':
+ reactionAcceptanceCaption = i18n.ts.nonSensitiveOnlyForLocalLikeOnlyForRemote;
+ break;
+
+ default:
+ reactionAcceptanceCaption = i18n.ts.all;
+ break;
}
const menuItems = [{
@@ -624,6 +643,7 @@ function showOtherSettings() {
}, { type: 'divider' }, {
icon: reactionAcceptanceIcon,
text: i18n.ts.reactionAcceptance,
+ caption: reactionAcceptanceCaption,
action: () => {
toggleReactionAcceptance();
},
@@ -1465,6 +1485,7 @@ defineExpose({
width: 28px;
height: 28px;
margin: auto;
+ object-fit: cover;
}
.headerRight {
diff --git a/packages/frontend/src/components/global/MkSystemIcon.vue b/packages/frontend/src/components/global/MkSystemIcon.vue
index d2ef0fb2d8..971c13478e 100644
--- a/packages/frontend/src/components/global/MkSystemIcon.vue
+++ b/packages/frontend/src/components/global/MkSystemIcon.vue
@@ -5,31 +5,31 @@ SPDX-License-Identifier: AGPL-3.0-only
@@ -80,15 +80,15 @@ const props = defineProps<{
}
.animLine {
- stroke-dasharray: var(--l);
- stroke-dashoffset: var(--l);
+ stroke-dasharray: 1;
+ stroke-dashoffset: 1;
animation: line var(--duration, 0.5s) cubic-bezier(0,0,.25,1) 1 forwards;
animation-delay: var(--delay, 0s);
}
.animCircle {
- stroke-dasharray: var(--l);
- stroke-dashoffset: var(--l);
+ stroke-dasharray: 1;
+ stroke-dashoffset: 1;
animation: line var(--duration, 0.5s) cubic-bezier(0,0,.25,1) 1 forwards;
animation-delay: var(--delay, 0s);
transform-origin: center;
@@ -96,8 +96,8 @@ const props = defineProps<{
}
.animCircleWaiting {
- stroke-dasharray: var(--l);
- stroke-dashoffset: calc(var(--l) / 1.5);
+ stroke-dasharray: 1;
+ stroke-dashoffset: calc(1 / 1.5);
animation: waiting 0.75s linear infinite;
transform-origin: center;
}
@@ -110,7 +110,7 @@ const props = defineProps<{
@keyframes line {
0% {
- stroke-dashoffset: var(--l);
+ stroke-dashoffset: 1;
opacity: 0;
}
100% {
diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue
index cbe863f184..250abeebe2 100644
--- a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue
+++ b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue
@@ -600,16 +600,12 @@ const headerActions = computed(() => [{