Merge branch 'develop' into mkjs-add-flash
This commit is contained in:
commit
64dbeb6e1a
|
@ -8,7 +8,7 @@
|
||||||
-
|
-
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
-
|
- Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正
|
||||||
|
|
||||||
-->
|
-->
|
||||||
## 13.x.x (unreleased)
|
## 13.x.x (unreleased)
|
||||||
|
@ -18,9 +18,10 @@
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- リストTLで、ユーザーが追加・削除されてもTLを初期化しないように
|
- リストTLで、ユーザーが追加・削除されてもTLを初期化しないように
|
||||||
|
- Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
-
|
- Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正
|
||||||
|
|
||||||
## 13.x.x (unreleased)
|
## 13.x.x (unreleased)
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
_lang_: "Čeština"
|
_lang_: "Čeština"
|
||||||
headlineMisskey: "Síť propojená poznámkami"
|
headlineMisskey: "Síť propojená poznámkami"
|
||||||
introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
|
introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
|
||||||
|
poweredByMisskeyDescription: "{name} je jeden ze serverů využívající open source platformu <b>Misskey<b> (nazývaná \"Misskey instance\")."
|
||||||
monthAndDay: "{day}. {month}."
|
monthAndDay: "{day}. {month}."
|
||||||
search: "Vyhledávání"
|
search: "Vyhledávání"
|
||||||
notifications: "Oznámení"
|
notifications: "Oznámení"
|
||||||
|
@ -48,8 +49,15 @@ delete: "Smazat"
|
||||||
deleteAndEdit: "Smazat a upravit"
|
deleteAndEdit: "Smazat a upravit"
|
||||||
deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
|
deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
|
||||||
addToList: "Přidat do seznamu"
|
addToList: "Přidat do seznamu"
|
||||||
|
addToAntenna: "Přidat do antény"
|
||||||
sendMessage: "Odeslat zprávu"
|
sendMessage: "Odeslat zprávu"
|
||||||
|
copyRSS: "Kopírovat RSS"
|
||||||
copyUsername: "Kopírovat uživatelské jméno"
|
copyUsername: "Kopírovat uživatelské jméno"
|
||||||
|
copyUserId: "Kopírovat ID uživatele"
|
||||||
|
copyNoteId: "Kopírovat ID poznámky"
|
||||||
|
copyFileId: "Kopírovat ID souboru"
|
||||||
|
copyFolderId: "Kopírovat ID složky"
|
||||||
|
copyProfileUrl: "Kopírovat URL profilu"
|
||||||
searchUser: "Vyhledat uživatele"
|
searchUser: "Vyhledat uživatele"
|
||||||
reply: "Odpovědět"
|
reply: "Odpovědět"
|
||||||
loadMore: "Zobrazit více"
|
loadMore: "Zobrazit více"
|
||||||
|
@ -60,6 +68,7 @@ receiveFollowRequest: "Žádost o sledování přijata"
|
||||||
followRequestAccepted: "Žádost o sledování přijata"
|
followRequestAccepted: "Žádost o sledování přijata"
|
||||||
mention: "Zmínění"
|
mention: "Zmínění"
|
||||||
mentions: "Zmínění"
|
mentions: "Zmínění"
|
||||||
|
directNotes: "Přímé poznámky"
|
||||||
importAndExport: "Import a export"
|
importAndExport: "Import a export"
|
||||||
import: "Importovat"
|
import: "Importovat"
|
||||||
export: "Exportovat"
|
export: "Exportovat"
|
||||||
|
@ -82,6 +91,7 @@ error: "Chyba"
|
||||||
somethingHappened: "Jejda. Něco se nepovedlo."
|
somethingHappened: "Jejda. Něco se nepovedlo."
|
||||||
retry: "Opakovat"
|
retry: "Opakovat"
|
||||||
pageLoadError: "Nepodařilo se načíst stránku"
|
pageLoadError: "Nepodařilo se načíst stránku"
|
||||||
|
pageLoadErrorDescription: "Tohle je obvykle způsobeno chybou sítě nebo mezipaměti prohlížeče. Zkuste vymazat mezipaměť a po chvíli čekání to zkuste znovu."
|
||||||
serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu."
|
serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu."
|
||||||
youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci klienta."
|
youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci klienta."
|
||||||
enterListName: "Jméno seznamu"
|
enterListName: "Jméno seznamu"
|
||||||
|
@ -100,6 +110,8 @@ renoted: "Přeposláno"
|
||||||
cantRenote: "Tento příspěvek nelze přeposlat."
|
cantRenote: "Tento příspěvek nelze přeposlat."
|
||||||
cantReRenote: "Odpověď nemůže být odstraněna."
|
cantReRenote: "Odpověď nemůže být odstraněna."
|
||||||
quote: "Citovat"
|
quote: "Citovat"
|
||||||
|
inChannelRenote: "Přeposlání v kanálu"
|
||||||
|
inChannelQuote: "Citace v kanálu"
|
||||||
pinnedNote: "Připnutá poznámka"
|
pinnedNote: "Připnutá poznámka"
|
||||||
pinned: "Připnout"
|
pinned: "Připnout"
|
||||||
you: "Vy"
|
you: "Vy"
|
||||||
|
@ -108,6 +120,7 @@ sensitive: "NSFW"
|
||||||
add: "Přidat"
|
add: "Přidat"
|
||||||
reaction: "Reakce"
|
reaction: "Reakce"
|
||||||
reactions: "Reakce"
|
reactions: "Reakce"
|
||||||
|
reactionSetting: "Reakce zobrazené ve výběru reakcí"
|
||||||
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
|
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
|
||||||
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
|
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
|
||||||
attachCancel: "Odstranit přílohu"
|
attachCancel: "Odstranit přílohu"
|
||||||
|
@ -116,6 +129,8 @@ unmarkAsSensitive: "Odznačit jako NSFW"
|
||||||
enterFileName: "Zadejte název souboru"
|
enterFileName: "Zadejte název souboru"
|
||||||
mute: "Ztlumit"
|
mute: "Ztlumit"
|
||||||
unmute: "Odmlčet"
|
unmute: "Odmlčet"
|
||||||
|
renoteMute: "Ztlumit poznámky"
|
||||||
|
renoteUnmute: "Zrušit ztlumení poznámek"
|
||||||
block: "Zablokovat"
|
block: "Zablokovat"
|
||||||
unblock: "Odblokovat"
|
unblock: "Odblokovat"
|
||||||
suspend: "Zmrazit"
|
suspend: "Zmrazit"
|
||||||
|
@ -125,7 +140,10 @@ unblockConfirm: "Jste si jistí že chcete odblokovat tento účet?"
|
||||||
suspendConfirm: "Jste si jistí že chcete suspendovat tenhle účet?"
|
suspendConfirm: "Jste si jistí že chcete suspendovat tenhle účet?"
|
||||||
unsuspendConfirm: "Jste si jistí že chcete obnovit tenhle účet?"
|
unsuspendConfirm: "Jste si jistí že chcete obnovit tenhle účet?"
|
||||||
selectList: "Vybrat seznam"
|
selectList: "Vybrat seznam"
|
||||||
|
editList: "Upravit seznam"
|
||||||
|
selectChannel: "Vybrat kanál"
|
||||||
selectAntenna: "Vyberte Anténu"
|
selectAntenna: "Vyberte Anténu"
|
||||||
|
editAntenna: "Upravit anténu"
|
||||||
selectWidget: "Zvolte widget"
|
selectWidget: "Zvolte widget"
|
||||||
editWidgets: "Upravit widget"
|
editWidgets: "Upravit widget"
|
||||||
editWidgetsExit: "Hotovo"
|
editWidgetsExit: "Hotovo"
|
||||||
|
@ -138,6 +156,8 @@ addEmoji: "Přidat emoji"
|
||||||
settingGuide: "Doporučené nastavení"
|
settingGuide: "Doporučené nastavení"
|
||||||
cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti"
|
cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti"
|
||||||
cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury."
|
cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury."
|
||||||
|
cacheRemoteSensitiveFiles: "Uložit do mezipaměti vzdálené citlivé soubory"
|
||||||
|
cacheRemoteSensitiveFilesDescription: "Když je tohle nastavení zrušeno, tak jsou vzdálené citlivé soubory načítány přímo ze vzdálených instancí bez uložení do mezipaměti."
|
||||||
flagAsBot: "Tento účet je bot"
|
flagAsBot: "Tento účet je bot"
|
||||||
flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot."
|
flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot."
|
||||||
flagAsCat: "Tenhle účet je kočka"
|
flagAsCat: "Tenhle účet je kočka"
|
||||||
|
@ -146,6 +166,7 @@ flagShowTimelineReplies: "Zobrazovat odpovědi na časové ose"
|
||||||
flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na poznámky jiných uživatelů na vaší časové ose."
|
flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na poznámky jiných uživatelů na vaší časové ose."
|
||||||
autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete"
|
autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete"
|
||||||
addAccount: "Přidat účet"
|
addAccount: "Přidat účet"
|
||||||
|
reloadAccountsList: "Obnovit list účtů"
|
||||||
loginFailed: "Přihlášení se nezdařilo."
|
loginFailed: "Přihlášení se nezdařilo."
|
||||||
showOnRemote: "Více na původním profilu"
|
showOnRemote: "Více na původním profilu"
|
||||||
general: "Obecně"
|
general: "Obecně"
|
||||||
|
@ -186,17 +207,26 @@ instanceInfo: "Informace o instanci"
|
||||||
statistics: "Statistiky"
|
statistics: "Statistiky"
|
||||||
clearQueue: "Vyčistit frontu"
|
clearQueue: "Vyčistit frontu"
|
||||||
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
|
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
|
||||||
|
clearQueueConfirmText: "Jakékoliv nedoručené poznámky ve frontě nebudou sdružovány. Většinou tahle operace není zapotřebí."
|
||||||
clearCachedFiles: "Vyprázdnit mezipaměť"
|
clearCachedFiles: "Vyprázdnit mezipaměť"
|
||||||
|
clearCachedFilesConfirm: "Jste jistí že chcete smazat všechny vzdálené soubory v mezipaměti?"
|
||||||
blockedInstances: "Blokované instance"
|
blockedInstances: "Blokované instance"
|
||||||
|
blockedInstancesDescription: "Vypište názvy hostitelů instancí, které chcete blokovat odděleně řádkovými zlomky. Uvedené instance již nebudou moci s touto instancí komunikovat."
|
||||||
|
muteAndBlock: "Ztlumení a blokování"
|
||||||
|
mutedUsers: "Zltumení uživatelé"
|
||||||
|
blockedUsers: "Blokovaní uživatelé"
|
||||||
noUsers: "Žádní uživatelé"
|
noUsers: "Žádní uživatelé"
|
||||||
editProfile: "Upravit můj profil"
|
editProfile: "Upravit můj profil"
|
||||||
|
noteDeleteConfirm: "Jste si jistí že chcete smazat tuhle poznámku?"
|
||||||
pinLimitExceeded: "Nemůžete připnout další poznámky."
|
pinLimitExceeded: "Nemůžete připnout další poznámky."
|
||||||
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
|
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
|
||||||
done: "Hotovo"
|
done: "Hotovo"
|
||||||
processing: "Zpracovávám"
|
processing: "Zpracovávám"
|
||||||
preview: "Náhled"
|
preview: "Náhled"
|
||||||
default: "Výchozí"
|
default: "Výchozí"
|
||||||
|
defaultValueIs: "Základní hodnota: {value}"
|
||||||
noCustomEmojis: "Bez Emoji"
|
noCustomEmojis: "Bez Emoji"
|
||||||
|
federating: "Sdružování"
|
||||||
blocked: "Blokováno"
|
blocked: "Blokováno"
|
||||||
suspended: "Suspendováno"
|
suspended: "Suspendováno"
|
||||||
all: "Vše"
|
all: "Vše"
|
||||||
|
@ -217,6 +247,7 @@ more: "Více!"
|
||||||
featured: "Oblíbené poznámky"
|
featured: "Oblíbené poznámky"
|
||||||
usernameOrUserId: "Uživatelské jméno nebo uživatelské id"
|
usernameOrUserId: "Uživatelské jméno nebo uživatelské id"
|
||||||
noSuchUser: "Uživatel nebyl nalezen"
|
noSuchUser: "Uživatel nebyl nalezen"
|
||||||
|
lookup: "Vyhledat"
|
||||||
announcements: "Oznámení"
|
announcements: "Oznámení"
|
||||||
imageUrl: "URL obrázku"
|
imageUrl: "URL obrázku"
|
||||||
remove: "Smazat"
|
remove: "Smazat"
|
||||||
|
@ -227,10 +258,13 @@ resetAreYouSure: "Opravdu resetovat?"
|
||||||
saved: "Uloženo"
|
saved: "Uloženo"
|
||||||
messaging: "Zprávy"
|
messaging: "Zprávy"
|
||||||
upload: "Nahrát soubory"
|
upload: "Nahrát soubory"
|
||||||
|
keepOriginalUploading: "Ponechat originální obrázek"
|
||||||
|
keepOriginalUploadingDescription: "Uloží původní nahraný obrázek jak je. Pokud je to vypnuté, vygeneruje se zobrazení verze na webu při nahrátí."
|
||||||
fromDrive: "Z disku"
|
fromDrive: "Z disku"
|
||||||
fromUrl: "Z URL"
|
fromUrl: "Z URL"
|
||||||
uploadFromUrl: "Nahrát z URL adresy"
|
uploadFromUrl: "Nahrát z URL adresy"
|
||||||
uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát"
|
uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát"
|
||||||
|
uploadFromUrlRequested: "Upload zažádán"
|
||||||
uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání."
|
uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání."
|
||||||
explore: "Objevovat"
|
explore: "Objevovat"
|
||||||
messageRead: "Přečtené"
|
messageRead: "Přečtené"
|
||||||
|
@ -238,6 +272,10 @@ noMoreHistory: "To je vše"
|
||||||
startMessaging: "Zahájit chat"
|
startMessaging: "Zahájit chat"
|
||||||
nUsersRead: "přečteno {n} uživateli"
|
nUsersRead: "přečteno {n} uživateli"
|
||||||
agreeTo: "Souhlasím s {0}"
|
agreeTo: "Souhlasím s {0}"
|
||||||
|
agree: "Souhlasím"
|
||||||
|
agreeBelow: "Souhlasím s následným"
|
||||||
|
basicNotesBeforeCreateAccount: "Důležité poznámky"
|
||||||
|
termsOfService: "Podmínky užívání"
|
||||||
start: "Začít"
|
start: "Začít"
|
||||||
home: "Domů"
|
home: "Domů"
|
||||||
remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené instance."
|
remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené instance."
|
||||||
|
@ -268,17 +306,24 @@ createFolder: "Vytvořit složku"
|
||||||
renameFolder: "Přejmenovat složku"
|
renameFolder: "Přejmenovat složku"
|
||||||
deleteFolder: "Odstranit složku"
|
deleteFolder: "Odstranit složku"
|
||||||
addFile: "Přidat soubor"
|
addFile: "Přidat soubor"
|
||||||
|
emptyDrive: "Váš disk je prázdný"
|
||||||
emptyFolder: "Tato složka je prázdná"
|
emptyFolder: "Tato složka je prázdná"
|
||||||
unableToDelete: "Nelze smazat"
|
unableToDelete: "Nelze smazat"
|
||||||
inputNewFileName: "Zadejte nový název"
|
inputNewFileName: "Zadejte nový název"
|
||||||
|
inputNewDescription: "Zadejte nový popisek"
|
||||||
inputNewFolderName: "Zadejte název nové složky"
|
inputNewFolderName: "Zadejte název nové složky"
|
||||||
|
circularReferenceFolder: "Koncová složka je podsložka složky, kterou chcete přesunout."
|
||||||
|
hasChildFilesOrFolders: "Nemůžete odstranit složku, která není prázdná."
|
||||||
copyUrl: "Kopírovat URL"
|
copyUrl: "Kopírovat URL"
|
||||||
rename: "Přejmenovat"
|
rename: "Přejmenovat"
|
||||||
avatar: "Avatar"
|
avatar: "Avatar"
|
||||||
banner: "Baner"
|
banner: "Baner"
|
||||||
|
displayOfSensitiveMedia: "Zobrazit citlivé média"
|
||||||
|
whenServerDisconnected: "Když ztratíte spojení se serverem"
|
||||||
disconnectedFromServer: "Spojení bylo přerušeno"
|
disconnectedFromServer: "Spojení bylo přerušeno"
|
||||||
reload: "Aktualizovat"
|
reload: "Aktualizovat"
|
||||||
doNothing: "Ignorovat"
|
doNothing: "Ignorovat"
|
||||||
|
reloadConfirm: "Chcete obnovit časovou osu?"
|
||||||
watch: "Sledovat"
|
watch: "Sledovat"
|
||||||
unwatch: "Přestat sledovat"
|
unwatch: "Přestat sledovat"
|
||||||
accept: "Souhlasím"
|
accept: "Souhlasím"
|
||||||
|
@ -301,15 +346,22 @@ connectService: "Připojit"
|
||||||
disconnectService: "Odpojit"
|
disconnectService: "Odpojit"
|
||||||
enableLocalTimeline: "Povolit lokální čas"
|
enableLocalTimeline: "Povolit lokální čas"
|
||||||
enableGlobalTimeline: "Povolit globální čas"
|
enableGlobalTimeline: "Povolit globální čas"
|
||||||
|
disablingTimelinesInfo: "Administrátoři a Moderátoři budou mít stálý přístup ke všem časovým osám i přes to že nejsou zapnuté."
|
||||||
registration: "Registrace"
|
registration: "Registrace"
|
||||||
enableRegistration: "Povolit registraci novým uživatelům"
|
enableRegistration: "Povolit registraci novým uživatelům"
|
||||||
invite: "Pozvat"
|
invite: "Pozvat"
|
||||||
|
driveCapacityPerLocalAccount: "Kapacita disku na lokálního uživatele"
|
||||||
|
driveCapacityPerRemoteAccount: "Kapacita disku na vzdáleného uživatele"
|
||||||
inMb: "V megabajtech"
|
inMb: "V megabajtech"
|
||||||
iconUrl: "Favicon URL"
|
iconUrl: "Favicon URL"
|
||||||
bannerUrl: "Baner URL"
|
bannerUrl: "Baner URL"
|
||||||
backgroundImageUrl: "Adresa URL obrázku pozadí"
|
backgroundImageUrl: "Adresa URL obrázku pozadí"
|
||||||
basicInfo: "Základní informace"
|
basicInfo: "Základní informace"
|
||||||
pinnedUsers: "Připnutí uživatelé"
|
pinnedUsers: "Připnutí uživatelé"
|
||||||
|
pinnedUsersDescription: "Seznam uživatelských přezdívek oddělených řádkami bude připnutý v záložce \"Objevit\"."
|
||||||
|
pinnedPages: "Připnutý stránky"
|
||||||
|
pinnedPagesDescription: "Zadejte cesty stránek oddělené řádkami, které si přejete mít přípnutý na vrcholu téhle instance."
|
||||||
|
pinnedClipId: "ID připnutého klipu"
|
||||||
pinnedNotes: "Připnutá poznámka"
|
pinnedNotes: "Připnutá poznámka"
|
||||||
hcaptcha: "hCaptcha"
|
hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "Aktivovat hCaptchu"
|
enableHcaptcha: "Aktivovat hCaptchu"
|
||||||
|
@ -319,30 +371,56 @@ recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "Zapnout ReCAPTCHu"
|
enableRecaptcha: "Zapnout ReCAPTCHu"
|
||||||
recaptchaSiteKey: "Klíč stránky"
|
recaptchaSiteKey: "Klíč stránky"
|
||||||
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||||
|
turnstile: "Turnstile"
|
||||||
|
enableTurnstile: "Povolit Turnstile"
|
||||||
turnstileSiteKey: "Klíč stránky"
|
turnstileSiteKey: "Klíč stránky"
|
||||||
turnstileSecretKey: "Tajný Klíč (Secret Key)"
|
turnstileSecretKey: "Tajný Klíč (Secret Key)"
|
||||||
|
avoidMultiCaptchaConfirm: "Používání několik Captcha systému může způsobit konflikt mezi nimi. Chtěli byste vypnout ostatní aktivní Captcha systémy? Pokud je chcete nechat zapnuté, stiskněte zrušit."
|
||||||
antennas: "Antény"
|
antennas: "Antény"
|
||||||
manageAntennas: "Spravovat Antény"
|
manageAntennas: "Spravovat Antény"
|
||||||
name: "Jméno"
|
name: "Jméno"
|
||||||
antennaSource: "Zdroj Antény"
|
antennaSource: "Zdroj Antény"
|
||||||
|
antennaKeywords: "Klíčová slova na poslech"
|
||||||
|
antennaExcludeKeywords: "Vyloučená klíčová slova"
|
||||||
|
antennaKeywordsDescription: "Oddělte mezerami pro AND kondice nebo řádkami pro OR kondice."
|
||||||
|
notifyAntenna: "Upozornit na nové poznámky"
|
||||||
|
withFileAntenna: "Poznámky jenom se souborama"
|
||||||
enableServiceworker: "Povolit ServiceWorker"
|
enableServiceworker: "Povolit ServiceWorker"
|
||||||
|
antennaUsersDescription: "Vypsat jednoho uživatele na řádek"
|
||||||
caseSensitive: "Rozlišuje malá a velká písmena"
|
caseSensitive: "Rozlišuje malá a velká písmena"
|
||||||
|
withReplies: "Zahrnout odpovědi"
|
||||||
connectedTo: "Následující účty jsou připojeny"
|
connectedTo: "Následující účty jsou připojeny"
|
||||||
notesAndReplies: "Poznámky a odpovědi"
|
notesAndReplies: "Poznámky a odpovědi"
|
||||||
withFiles: "Včetně souborů"
|
withFiles: "Včetně souborů"
|
||||||
|
silence: "Ztlumení"
|
||||||
|
silenceConfirm: "Jste si jistí že chcete ztlumit tohoto uživatele?"
|
||||||
|
unsilence: "Zrušit ztlumení"
|
||||||
|
unsilenceConfirm: "Jste jistí že chcete vrátit zltumení tohoto uživatele?"
|
||||||
popularUsers: "Populární uživatelé"
|
popularUsers: "Populární uživatelé"
|
||||||
recentlyUpdatedUsers: "Nedávno aktívni uživatelé"
|
recentlyUpdatedUsers: "Nedávno aktívni uživatelé"
|
||||||
|
recentlyRegisteredUsers: "Nově připojený uživatelé"
|
||||||
|
recentlyDiscoveredUsers: "Nově objevený uživatelé"
|
||||||
|
exploreUsersCount: "Existuje {count} uživatelů"
|
||||||
|
exploreFediverse: "Objevovat Fediverse"
|
||||||
popularTags: "Populární tagy"
|
popularTags: "Populární tagy"
|
||||||
userList: "Seznamy"
|
userList: "Seznamy"
|
||||||
about: "Informace"
|
about: "Informace"
|
||||||
aboutMisskey: "O Misskey"
|
aboutMisskey: "O Misskey"
|
||||||
administrator: "Administrátor"
|
administrator: "Administrátor"
|
||||||
token: "Token"
|
token: "Token"
|
||||||
|
2fa: "Dvoufázové ověření"
|
||||||
|
totp: "Ověřovací aplikace"
|
||||||
|
totpDescription: "Použít ověřovací aplikaci pro použití jednorázových hesel"
|
||||||
moderator: "Moderátor"
|
moderator: "Moderátor"
|
||||||
|
moderation: "Moderování"
|
||||||
nUsersMentioned: "{n} uživatelů zmínilo"
|
nUsersMentioned: "{n} uživatelů zmínilo"
|
||||||
|
securityKeyAndPasskey: "Bezpečnostní klíče a tokeny"
|
||||||
securityKey: "Bezpečnostní klíč"
|
securityKey: "Bezpečnostní klíč"
|
||||||
lastUsed: "Naposledy použito"
|
lastUsed: "Naposledy použito"
|
||||||
|
lastUsedAt: "Naposledy použito: {t}"
|
||||||
unregister: "Odstranit"
|
unregister: "Odstranit"
|
||||||
|
passwordLessLogin: "Přihlášení bez hesla"
|
||||||
|
passwordLessLoginDescription: "Umožní bez-heslové přihlášení pomocí bezpečnostního klíče či tokenu"
|
||||||
resetPassword: "Resetovat heslo"
|
resetPassword: "Resetovat heslo"
|
||||||
newPasswordIs: "Nové heslo je \"{password}\""
|
newPasswordIs: "Nové heslo je \"{password}\""
|
||||||
reduceUiAnimation: "Snížit UI animace"
|
reduceUiAnimation: "Snížit UI animace"
|
||||||
|
@ -391,14 +469,25 @@ or: "Nebo"
|
||||||
language: "Jazyk"
|
language: "Jazyk"
|
||||||
uiLanguage: "Jazyk uživatelského rozhraní"
|
uiLanguage: "Jazyk uživatelského rozhraní"
|
||||||
aboutX: "O {x}"
|
aboutX: "O {x}"
|
||||||
|
emojiStyle: "Styl emoji"
|
||||||
|
native: "Výchozí"
|
||||||
|
disableDrawer: "Nepoužívat šuplíkové menu"
|
||||||
|
showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši"
|
||||||
noHistory: "Žádná historie"
|
noHistory: "Žádná historie"
|
||||||
signinHistory: "Historie přihlášení"
|
signinHistory: "Historie přihlášení"
|
||||||
|
enableAdvancedMfm: "Zapnout pokročilé MFM"
|
||||||
|
enableAnimatedMfm: "Zapnout animované MFM"
|
||||||
|
doing: "Procesuju..."
|
||||||
category: "Kategorie"
|
category: "Kategorie"
|
||||||
tags: "Štítky"
|
tags: "Štítky"
|
||||||
|
docSource: "Zdroj tohoto dokumentu"
|
||||||
createAccount: "Vytvořit účet"
|
createAccount: "Vytvořit účet"
|
||||||
existingAccount: "Existující účet"
|
existingAccount: "Existující účet"
|
||||||
regenerate: "Obnovit"
|
regenerate: "Obnovit"
|
||||||
fontSize: "Velikost písma"
|
fontSize: "Velikost písma"
|
||||||
|
mediaListWithOneImageAppearance: "Výška seznamu médií s jedním obrázkem"
|
||||||
|
limitTo: "Omezeno na {x}"
|
||||||
|
noFollowRequests: "Nemáte žádné žádosti o sledování"
|
||||||
openImageInNewTab: "Otevřít obrázek v novém panelu"
|
openImageInNewTab: "Otevřít obrázek v novém panelu"
|
||||||
dashboard: "Přehled"
|
dashboard: "Přehled"
|
||||||
local: "Lokální"
|
local: "Lokální"
|
||||||
|
@ -412,15 +501,35 @@ accountSettings: "Nastavení účtu"
|
||||||
promotion: "Propagace"
|
promotion: "Propagace"
|
||||||
promote: "Propagovat"
|
promote: "Propagovat"
|
||||||
numberOfDays: "Počet dní"
|
numberOfDays: "Počet dní"
|
||||||
|
hideThisNote: "Skrýt tuto poznámku"
|
||||||
|
showFeaturedNotesInTimeline: "Zobrazit významné poznámky v časové ose"
|
||||||
|
objectStorage: "Úložiště objektů"
|
||||||
|
useObjectStorage: "Použít úložiště objektů"
|
||||||
objectStorageBaseUrl: "Base URL"
|
objectStorageBaseUrl: "Base URL"
|
||||||
|
objectStorageBaseUrlDesc: "URL použitá jako reference. Upřesněte URL vlastní CDN nebo Proxy pokud používáte jeden z nich. Pro S3 použijte 'https://<bucket>.s3.amazonaws.com' a pro GCS nebo ekvivalentní služby použijte 'https://storage.googleapis.com/<bucket>', apd."
|
||||||
objectStorageBucket: "Bucket"
|
objectStorageBucket: "Bucket"
|
||||||
|
objectStorageBucketDesc: "Prosím upřesněte název bucketu používaný poskytovatelem."
|
||||||
objectStoragePrefix: "Předpona"
|
objectStoragePrefix: "Předpona"
|
||||||
|
objectStoragePrefixDesc: "Soubory budou ukládány pod složkama s tímhle prefixem."
|
||||||
objectStorageEndpoint: "Endpoint"
|
objectStorageEndpoint: "Endpoint"
|
||||||
|
objectStorageEndpointDesc: "Ponechte tohle prázdné pokud používáte AWS S3, jinak upřesněte endpoint jako \"<host>\" nebo \"<host>:<port>\", podle toho jakou službu používáte."
|
||||||
objectStorageRegion: "Región"
|
objectStorageRegion: "Región"
|
||||||
|
objectStorageRegionDesc: "Upřesněte region jako například \"xx-east-1\". Pokud vlastní služba nerozlišuje mezi regiony, zadejte \"us-east-1\". Zanechte prázdné pokud používáte AWS konfiguraci či proměnné veličiny."
|
||||||
objectStorageUseSSL: "Použít SSL"
|
objectStorageUseSSL: "Použít SSL"
|
||||||
|
objectStorageUseSSLDesc: "Vypněte to pokud nebudete používat HTTPS pro API připojení"
|
||||||
|
objectStorageUseProxy: "Připojení skrze Proxy"
|
||||||
|
objectStorageUseProxyDesc: "Vypněte to pokud nebudete používat Proxy pro API připojení."
|
||||||
|
objectStorageSetPublicRead: "Při nahrátí nastavit na \"public-read\""
|
||||||
|
s3ForcePathStyleDesc: "Pokud je povolena funkce s3ForcePathStyle, musí být název Bucketu zahrnut do cesty k adrese URL, nikoli do názvu hostitele adresy URL. Toto nastavení může být nutné povolit při používání služeb, jako je například samostatně hostovaná instance Minio."
|
||||||
|
serverLogs: "Logy serveru"
|
||||||
deleteAll: "Smazat vše"
|
deleteAll: "Smazat vše"
|
||||||
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
|
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
|
||||||
|
showFixedPostFormInChannel: "Zobrazit vkládací formulář na vrcholu časové osy (Kanály)"
|
||||||
|
newNoteRecived: "Jsou k dispozici nové poznámky"
|
||||||
|
sounds: "Zvuky"
|
||||||
|
sound: "Zvuky"
|
||||||
listen: "Poslouchat"
|
listen: "Poslouchat"
|
||||||
|
none: "Žádný"
|
||||||
showInPage: "Zobrazit na stránce"
|
showInPage: "Zobrazit na stránce"
|
||||||
popout: "Pop-out"
|
popout: "Pop-out"
|
||||||
volume: "Hlasitost"
|
volume: "Hlasitost"
|
||||||
|
@ -433,29 +542,61 @@ install: "Nainstalovat"
|
||||||
uninstall: "Odinstalovat"
|
uninstall: "Odinstalovat"
|
||||||
installedApps: "Autorizované aplikace"
|
installedApps: "Autorizované aplikace"
|
||||||
nothing: "Nic nebylo nalezeno"
|
nothing: "Nic nebylo nalezeno"
|
||||||
|
installedDate: "Datum autorizace"
|
||||||
lastUsedDate: "Poslední použití"
|
lastUsedDate: "Poslední použití"
|
||||||
state: "Stav"
|
state: "Stav"
|
||||||
sort: "Seřadit"
|
sort: "Seřadit"
|
||||||
ascendingOrder: "Vzestupně"
|
ascendingOrder: "Vzestupně"
|
||||||
descendingOrder: "Sestupně"
|
descendingOrder: "Sestupně"
|
||||||
scratchpad: "Zápisník"
|
scratchpad: "Zápisník"
|
||||||
|
scratchpadDescription: "Scratchpad poskytuje rozhraní pro AiScript experimenty. Můžete psát, spustit či zkontrolovat výsledky jeho interakce s Misskey."
|
||||||
output: "Výstup"
|
output: "Výstup"
|
||||||
script: "Skript"
|
script: "Skript"
|
||||||
|
disablePagesScript: "Vypnout AiScript na stránkách"
|
||||||
updateRemoteUser: "Aktualizovat informace o vzdáleném účtu"
|
updateRemoteUser: "Aktualizovat informace o vzdáleném účtu"
|
||||||
deleteAllFiles: "Smazat všechny soubory"
|
deleteAllFiles: "Smazat všechny soubory"
|
||||||
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
|
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
|
||||||
|
removeAllFollowing: "Přestat sledovat všechny sledované uživatele"
|
||||||
|
removeAllFollowingDescription: "Spuštěním přestanete sledovat všechny účty z {host}. Prosíme spustěte tohle v případě že instance už neexistuje. "
|
||||||
userSuspended: "Tomuto uživateli byl pozastaven účet."
|
userSuspended: "Tomuto uživateli byl pozastaven účet."
|
||||||
|
userSilenced: "Tenhle uživatel je umlčen."
|
||||||
|
yourAccountSuspendedTitle: "Tenhle účet je zmrazený"
|
||||||
|
yourAccountSuspendedDescription: "Tenhle účet byl zmrazen z důvodu porušení smluvní podmínky serveru. Pro přesnější informace kontaktujte administrátora. Prosíme nezakládejte si nový účet."
|
||||||
|
tokenRevoked: "Nesprávný token"
|
||||||
|
tokenRevokedDescription: "Tenhle token vyprchal. Prosíme přihlašte se znova."
|
||||||
|
accountDeleted: "Účet smazán"
|
||||||
|
accountDeletedDescription: "Tenhle účet byl smazán."
|
||||||
menu: "Menu"
|
menu: "Menu"
|
||||||
divider: "Dělící čára"
|
divider: "Dělící čára"
|
||||||
addItem: "Přidat položku"
|
addItem: "Přidat položku"
|
||||||
|
rearrange: "Přeřadit"
|
||||||
relays: "Relay"
|
relays: "Relay"
|
||||||
addRelay: "Přidat Relay"
|
addRelay: "Přidat Relay"
|
||||||
inboxUrl: "Inbox URL"
|
inboxUrl: "Inbox URL"
|
||||||
|
addedRelays: "Přidané přenosy"
|
||||||
|
serviceworkerInfo: "Musí být zapnut pro push notifikace."
|
||||||
deletedNote: "Odstraněné příspěvky"
|
deletedNote: "Odstraněné příspěvky"
|
||||||
invisibleNote: "Skryté příspěvky"
|
invisibleNote: "Skryté příspěvky"
|
||||||
|
enableInfiniteScroll: "Automaticky načítat více"
|
||||||
|
visibility: "Viditelnost"
|
||||||
|
poll: "Anketa"
|
||||||
|
useCw: "Schovat obsah"
|
||||||
|
enablePlayer: "Otevřít video přehrávač"
|
||||||
|
disablePlayer: "Zavřít video přehrávač"
|
||||||
|
expandTweet: "Rozbalit tweet"
|
||||||
|
themeEditor: "Editor témat"
|
||||||
description: "Popis"
|
description: "Popis"
|
||||||
|
describeFile: "Přidat popisek"
|
||||||
|
enterFileDescription: "Vložit popisek"
|
||||||
author: "Autor"
|
author: "Autor"
|
||||||
|
leaveConfirm: "Máte neuložené změny. Opravdu je chcete zahodit?"
|
||||||
manage: "Administrace"
|
manage: "Administrace"
|
||||||
|
plugins: "Pluginy"
|
||||||
|
preferencesBackups: "Zálohy nastavení"
|
||||||
|
deck: "Deck"
|
||||||
|
undeck: "Opustit Deck"
|
||||||
|
useBlurEffectForModal: "Použít efekt rozostření na okna"
|
||||||
|
useFullReactionPicker: "Používat plnou velikost výběru emoji"
|
||||||
width: "Šířka"
|
width: "Šířka"
|
||||||
height: "Výška"
|
height: "Výška"
|
||||||
large: "Velké"
|
large: "Velké"
|
||||||
|
@ -465,10 +606,13 @@ generateAccessToken: "Vygenerovat přístupový token"
|
||||||
permission: "Oprávnění"
|
permission: "Oprávnění"
|
||||||
enableAll: "Povolit vše"
|
enableAll: "Povolit vše"
|
||||||
disableAll: "Vypnout vše"
|
disableAll: "Vypnout vše"
|
||||||
|
tokenRequested: "Povolit přístup k účtu"
|
||||||
|
pluginTokenRequestedDescription: "Tenhle plugin bude moct používat oprávnění nastavená zde."
|
||||||
notificationType: "Typy oznámení"
|
notificationType: "Typy oznámení"
|
||||||
edit: "Upravit"
|
edit: "Upravit"
|
||||||
emailServer: "Mailový server"
|
emailServer: "Mailový server"
|
||||||
enableEmail: "Zapnout email dystribuci"
|
enableEmail: "Zapnout email dystribuci"
|
||||||
|
emailConfigInfo: "Používá se na ověření emailové adresy během registrace nebo při zapomenutí hesla."
|
||||||
email: "Email"
|
email: "Email"
|
||||||
emailAddress: "Emailová adresa"
|
emailAddress: "Emailová adresa"
|
||||||
smtpConfig: "Konfigurace SMTP serveru"
|
smtpConfig: "Konfigurace SMTP serveru"
|
||||||
|
@ -476,8 +620,15 @@ smtpHost: "Hostitel"
|
||||||
smtpPort: "Port"
|
smtpPort: "Port"
|
||||||
smtpUser: "Uživatelské jméno"
|
smtpUser: "Uživatelské jméno"
|
||||||
smtpPass: "Heslo"
|
smtpPass: "Heslo"
|
||||||
|
emptyToDisableSmtpAuth: "Zanechte uživatelské jméno a heslo prázdné pro vypnutí SMTP verifikace."
|
||||||
|
smtpSecure: "Použít implicitní SSL/TLS pro SMTP připojení"
|
||||||
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
|
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
|
||||||
testEmail: "Otestovat doručení emailů"
|
testEmail: "Otestovat doručení emailů"
|
||||||
|
wordMute: "Ztlumené slova"
|
||||||
|
regexpError: "Chyba v regulérním výrazu"
|
||||||
|
regexpErrorDescription: "Došlo k chybě v regulérním výrazu v řádku {line} tabulky {tab} ztlumených slov:"
|
||||||
|
instanceMute: "Ztlumené instance"
|
||||||
|
userSaysSomething: "{name} řekl/a něco"
|
||||||
makeActive: "Aktivovat"
|
makeActive: "Aktivovat"
|
||||||
display: "Zobrazit"
|
display: "Zobrazit"
|
||||||
copy: "Kopírovat"
|
copy: "Kopírovat"
|
||||||
|
@ -489,21 +640,66 @@ database: "Databáze"
|
||||||
channel: "Kanály"
|
channel: "Kanály"
|
||||||
create: "Vytvořit"
|
create: "Vytvořit"
|
||||||
notificationSetting: "Nastavení oznámení"
|
notificationSetting: "Nastavení oznámení"
|
||||||
|
notificationSettingDesc: "Vyberte typy oznámení k zobrazení."
|
||||||
useGlobalSetting: "Použít globální nastavení"
|
useGlobalSetting: "Použít globální nastavení"
|
||||||
|
useGlobalSettingDesc: "Pokud je to zapnuté, tak nastavení oznámení účtu bude použito. Pokud je to vypnuté, tak se bude moct použít jednotlivá nastavení."
|
||||||
other: "Ostatní"
|
other: "Ostatní"
|
||||||
|
regenerateLoginToken: "Přegenerovat přihlašovací token"
|
||||||
|
regenerateLoginTokenDescription: "Přegeneruje token interně používaný během přihlášení. Běžně tahle akce není nutná. Pokud bude token přegenerovaný, tak se všechna přihlášená zařízení odhlásí."
|
||||||
|
setMultipleBySeparatingWithSpace: "Oddělení více položek mezerami."
|
||||||
fileIdOrUrl: "ID nebo URL souboru"
|
fileIdOrUrl: "ID nebo URL souboru"
|
||||||
behavior: "Chování"
|
behavior: "Chování"
|
||||||
sample: "Ukázka"
|
sample: "Ukázka"
|
||||||
|
abuseReports: "Nahlášení"
|
||||||
|
reportAbuse: "Nahlášení"
|
||||||
|
reportAbuseOf: "Nahlásit {name}"
|
||||||
|
fillAbuseReportDescription: "Prosíme vyplňte všechny detaily ohledně tohodle nahlášení. Pokud jde o specifickou poznámku, prosíme o přiložení její URL."
|
||||||
|
abuseReported: "Nahlášení bylo odesláno. Děkujeme převelice."
|
||||||
|
reporter: "Nahlásil"
|
||||||
|
reporteeOrigin: "Původ nahlášení"
|
||||||
|
reporterOrigin: "Původ nahlasovače"
|
||||||
|
forwardReport: "Přeposlat nahlášení do vzdálené instance"
|
||||||
send: "Odeslat"
|
send: "Odeslat"
|
||||||
openInNewTab: "Otevřít v nové kartě"
|
openInNewTab: "Otevřít v nové kartě"
|
||||||
|
openInSideView: "Otevřít v bočním panelu"
|
||||||
|
defaultNavigationBehaviour: "Výchozí chování navigace"
|
||||||
|
instanceTicker: "Informace instance o poznámkách"
|
||||||
|
waitingFor: "Čeká se na {x}"
|
||||||
random: "Náhodně"
|
random: "Náhodně"
|
||||||
system: "Systém"
|
system: "Systém"
|
||||||
|
switchUi: "Přepnout UI"
|
||||||
desktop: "Plocha"
|
desktop: "Plocha"
|
||||||
clip: "Oříznout"
|
clip: "Oříznout"
|
||||||
createNew: "Vytvořit nový"
|
createNew: "Vytvořit nový"
|
||||||
optional: "Volitelné"
|
optional: "Volitelné"
|
||||||
|
createNewClip: "Vytvořit nový klip"
|
||||||
|
unclip: "Odepnout"
|
||||||
|
confirmToUnclipAlreadyClippedNote: "Tahle poznámku je už součásti \"{name}\" klipu. Chcete ji místo toho odepnout z tohodle klipu?"
|
||||||
|
public: "Veřejný"
|
||||||
|
i18nInfo: "Misskey je překládán do jiných jazyků dobrovolníkama. Můžete pomoci na {link}."
|
||||||
|
manageAccessTokens: "Spravovat přístupové tokeny"
|
||||||
|
accountInfo: "Informace o účtu"
|
||||||
|
notesCount: "Počet poznámek"
|
||||||
|
repliesCount: "Počet odeslaných odpovědí"
|
||||||
|
renotesCount: "Počet přeposlaných poznámek"
|
||||||
|
repliedCount: "Počet přijatých odpovědí"
|
||||||
|
renotedCount: "Počet přijatých přeposlaných poznámek"
|
||||||
|
followingCount: "Počet sledovaných účtů"
|
||||||
|
followersCount: "Počet sledujících"
|
||||||
|
sentReactionsCount: "Počet odeslaných reakcí"
|
||||||
|
receivedReactionsCount: "Počet přijatých reakcí"
|
||||||
|
pollVotesCount: "Počet odeslaných anketových hlasů"
|
||||||
|
pollVotedCount: "Počet přijatých anketových hlasů"
|
||||||
yes: "Ano"
|
yes: "Ano"
|
||||||
no: "Ne"
|
no: "Ne"
|
||||||
|
driveFilesCount: "Počet souborů na disku"
|
||||||
|
driveUsage: "Využití disku"
|
||||||
|
noCrawle: "Odmítat indexování crawleru"
|
||||||
|
lockedAccountInfo: "Pokud nenastavíte viditelnost poznámek na \"Pouze pro sledující\", budou poznámky viditelné všem i přesto že vyžadujete manuální potvrzení pro sledování."
|
||||||
|
alwaysMarkSensitive: "Výchozně označovat jako citlivý"
|
||||||
|
loadRawImages: "Načítat originální obrázky místo náhledů"
|
||||||
|
disableShowingAnimatedImages: "Nepřehrávat animované obrázky"
|
||||||
|
verificationEmailSent: "Ověřovací email byl zaslán. Ověření dokončíte kliknutím na odkaz v emailu."
|
||||||
notSet: "Není nastaveno"
|
notSet: "Není nastaveno"
|
||||||
emailVerified: "Váš e-mail byl ověřen"
|
emailVerified: "Váš e-mail byl ověřen"
|
||||||
contact: "Kontakt"
|
contact: "Kontakt"
|
||||||
|
|
|
@ -1091,6 +1091,9 @@ usedAt: "Usada el"
|
||||||
unused: "Sin usar"
|
unused: "Sin usar"
|
||||||
used: "Usada"
|
used: "Usada"
|
||||||
expired: "Caducada"
|
expired: "Caducada"
|
||||||
|
doYouAgree: "¿Está de acuerdo?"
|
||||||
|
beSureToReadThisAsItIsImportant: "Por favor lea esto que es importante"
|
||||||
|
iHaveReadXCarefullyAndAgree: "He leído el texto {x} y estoy de acuerdo"
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "¡La cuenta ha sido creada!"
|
accountCreated: "¡La cuenta ha sido creada!"
|
||||||
letsStartAccountSetup: "Para empezar, creemos tu perfil."
|
letsStartAccountSetup: "Para empezar, creemos tu perfil."
|
||||||
|
|
|
@ -49,6 +49,7 @@ delete: "Supprimer"
|
||||||
deleteAndEdit: "Supprimer et réécrire"
|
deleteAndEdit: "Supprimer et réécrire"
|
||||||
deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note et la reformuler ? Vous perdrez toutes les réactions, renotes et réponses y afférentes."
|
deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note et la reformuler ? Vous perdrez toutes les réactions, renotes et réponses y afférentes."
|
||||||
addToList: "Ajouter à une liste"
|
addToList: "Ajouter à une liste"
|
||||||
|
addToAntenna: "Ajouter à l’antenne"
|
||||||
sendMessage: "Envoyer un message"
|
sendMessage: "Envoyer un message"
|
||||||
copyRSS: "Copier le RSS"
|
copyRSS: "Copier le RSS"
|
||||||
copyUsername: "Copier le nom d’utilisateur·rice"
|
copyUsername: "Copier le nom d’utilisateur·rice"
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
---
|
|
@ -49,11 +49,15 @@ delete: "ほかす"
|
||||||
deleteAndEdit: "ほかして直す"
|
deleteAndEdit: "ほかして直す"
|
||||||
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのツッコミ、Renote、返信も全部消えるんやけどそれでもええん?"
|
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのツッコミ、Renote、返信も全部消えるんやけどそれでもええん?"
|
||||||
addToList: "リストに入れたる"
|
addToList: "リストに入れたる"
|
||||||
|
addToAntenna: "アンテナに追加"
|
||||||
sendMessage: "メッセージを送る"
|
sendMessage: "メッセージを送る"
|
||||||
copyRSS: "RSSをコピー"
|
copyRSS: "RSSをコピー"
|
||||||
copyUsername: "ユーザー名をコピー"
|
copyUsername: "ユーザー名をコピー"
|
||||||
copyUserId: "ユーザーIDをコピー"
|
copyUserId: "ユーザーIDをコピー"
|
||||||
copyNoteId: "ノートIDをコピー"
|
copyNoteId: "ノートIDをコピー"
|
||||||
|
copyFileId: "ファイルIDをコピー"
|
||||||
|
copyFolderId: "フォルダーIDをコピー"
|
||||||
|
copyProfileUrl: "プロフィールURLをコピー"
|
||||||
searchUser: "ユーザーを検索"
|
searchUser: "ユーザーを検索"
|
||||||
reply: "返事"
|
reply: "返事"
|
||||||
loadMore: "まだまだあるで!"
|
loadMore: "まだまだあるで!"
|
||||||
|
@ -152,6 +156,8 @@ addEmoji: "絵文字を追加"
|
||||||
settingGuide: "ええ感じの設定"
|
settingGuide: "ええ感じの設定"
|
||||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||||
cacheRemoteFilesDescription: "この設定を切っとったら、リモートファイルをキャッシュせんと直リンクするようになるで。サーバーの容量は節約できるけど、サムネイルを作らんなるから通信量が増えるで。"
|
cacheRemoteFilesDescription: "この設定を切っとったら、リモートファイルをキャッシュせんと直リンクするようになるで。サーバーの容量は節約できるけど、サムネイルを作らんなるから通信量が増えるで。"
|
||||||
|
cacheRemoteSensitiveFiles: "リモートのセンシティブなファイルをキャッシュする"
|
||||||
|
cacheRemoteSensitiveFilesDescription: "この設定を無効にすると、リモートのセンシティブなファイルはキャッシュせず直リンクするようになるで。"
|
||||||
flagAsBot: "Botにするで"
|
flagAsBot: "Botにするで"
|
||||||
flagAsBotDescription: "もしこのアカウントをプログラム使うて運用するんやったら、このフラグをオンにしてや。オンにすれば、反応がバーッて連鎖せんように開発者が使うたり、Misskeyのシステム上での扱いがBotに合ったもんになるからな。"
|
flagAsBotDescription: "もしこのアカウントをプログラム使うて運用するんやったら、このフラグをオンにしてや。オンにすれば、反応がバーッて連鎖せんように開発者が使うたり、Misskeyのシステム上での扱いがBotに合ったもんになるからな。"
|
||||||
flagAsCat: "Catやで"
|
flagAsCat: "Catやで"
|
||||||
|
@ -313,6 +319,7 @@ copyUrl: "URLをコピー"
|
||||||
rename: "名前を変えるで"
|
rename: "名前を変えるで"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
|
displayOfSensitiveMedia: "センシティブなメディアの表示"
|
||||||
whenServerDisconnected: "サーバーとの接続が失くなってしもうたとき"
|
whenServerDisconnected: "サーバーとの接続が失くなってしもうたとき"
|
||||||
disconnectedFromServer: "サーバーが機嫌悪いねん"
|
disconnectedFromServer: "サーバーが機嫌悪いねん"
|
||||||
reload: "リロード"
|
reload: "リロード"
|
||||||
|
@ -1067,11 +1074,26 @@ branding: "あ"
|
||||||
enableServerMachineStats: "サーバーのマシン情報見せびらかすで"
|
enableServerMachineStats: "サーバーのマシン情報見せびらかすで"
|
||||||
enableIdenticonGeneration: "ユーザーごとのIdenticon生成を有効にする"
|
enableIdenticonGeneration: "ユーザーごとのIdenticon生成を有効にする"
|
||||||
turnOffToImprovePerformance: "オフにしたらえらい軽うなるで。"
|
turnOffToImprovePerformance: "オフにしたらえらい軽うなるで。"
|
||||||
|
createInviteCode: "招待コードを作成"
|
||||||
|
createWithOptions: "オプションを指定して作成"
|
||||||
|
createCount: "作成数"
|
||||||
inviteCodeCreated: "招待コード作ったで"
|
inviteCodeCreated: "招待コード作ったで"
|
||||||
inviteLimitExceeded: "招待コード作りすぎやで。"
|
inviteLimitExceeded: "招待コード作りすぎやで。"
|
||||||
createLimitRemaining: "作成できる招待コード: 残り {limit} 個やで"
|
createLimitRemaining: "作成できる招待コード: 残り {limit} 個やで"
|
||||||
|
inviteLimitResetCycle: "{time}で最大 {limit} 個の招待コードを作成できるで。"
|
||||||
|
expirationDate: "有効期限"
|
||||||
|
noExpirationDate: "有効期限を設けへん"
|
||||||
|
inviteCodeUsedAt: "招待コードが使用された日時"
|
||||||
|
registeredUserUsingInviteCode: "招待コードを使用したユーザー"
|
||||||
|
waitingForMailAuth: "メール認証待ち"
|
||||||
|
inviteCodeCreator: "招待コードを作成したユーザー"
|
||||||
|
usedAt: "使用日時"
|
||||||
unused: "つこてへん"
|
unused: "つこてへん"
|
||||||
used: "もうつこてる"
|
used: "もうつこてる"
|
||||||
|
expired: "期限切れ"
|
||||||
|
doYouAgree: "同意するんか?"
|
||||||
|
beSureToReadThisAsItIsImportant: "重要やから絶対読んでや。"
|
||||||
|
iHaveReadXCarefullyAndAgree: "「{x}」の内容をよう読んで、同意するで。"
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "アカウント作り終わったで。"
|
accountCreated: "アカウント作り終わったで。"
|
||||||
letsStartAccountSetup: "アカウントの初期設定をしよか。"
|
letsStartAccountSetup: "アカウントの初期設定をしよか。"
|
||||||
|
@ -1382,6 +1404,9 @@ _role:
|
||||||
ltlAvailable: "ローカルタイムラインの閲覧"
|
ltlAvailable: "ローカルタイムラインの閲覧"
|
||||||
canPublicNote: "パブリック投稿の許可"
|
canPublicNote: "パブリック投稿の許可"
|
||||||
canInvite: "サーバー招待コードの発行"
|
canInvite: "サーバー招待コードの発行"
|
||||||
|
inviteLimit: "招待コードの作成可能数"
|
||||||
|
inviteLimitCycle: "招待コードの発行間隔"
|
||||||
|
inviteExpirationTime: "招待コードの有効期限"
|
||||||
canManageCustomEmojis: "カスタム絵文字の管理"
|
canManageCustomEmojis: "カスタム絵文字の管理"
|
||||||
driveCapacity: "ドライブ容量"
|
driveCapacity: "ドライブ容量"
|
||||||
alwaysMarkNsfw: "勝手にファイルにNSFWをくっつける"
|
alwaysMarkNsfw: "勝手にファイルにNSFWをくっつける"
|
||||||
|
@ -1444,6 +1469,7 @@ _ad:
|
||||||
back: "戻る"
|
back: "戻る"
|
||||||
reduceFrequencyOfThisAd: "この広告の表示頻度を下げるで"
|
reduceFrequencyOfThisAd: "この広告の表示頻度を下げるで"
|
||||||
hide: "表示せん"
|
hide: "表示せん"
|
||||||
|
timezoneinfo: "曜日はサーバーのタイムゾーンを元に指定されるで。"
|
||||||
_forgotPassword:
|
_forgotPassword:
|
||||||
enterEmail: "アカウントに登録したメールアドレスをここに入力してや。そのアドレス宛に、パスワードリセット用のリンクが送られるから待っててな~。"
|
enterEmail: "アカウントに登録したメールアドレスをここに入力してや。そのアドレス宛に、パスワードリセット用のリンクが送られるから待っててな~。"
|
||||||
ifNoEmail: "メールアドレスを登録してへんのやったら、管理者まで教えてな~。"
|
ifNoEmail: "メールアドレスを登録してへんのやったら、管理者まで教えてな~。"
|
||||||
|
@ -1973,6 +1999,7 @@ _deck:
|
||||||
introduction: "カラムを組み合わせて自分だけのインターフェイスを作りましょ!"
|
introduction: "カラムを組み合わせて自分だけのインターフェイスを作りましょ!"
|
||||||
introduction2: "画面の右にある + を押して、いつでもカラムを追加できるで。"
|
introduction2: "画面の右にある + を押して、いつでもカラムを追加できるで。"
|
||||||
widgetsIntroduction: "カラムのメニューから、「ウィジェットの編集」を選んでウィジェットを追加してなー"
|
widgetsIntroduction: "カラムのメニューから、「ウィジェットの編集」を選んでウィジェットを追加してなー"
|
||||||
|
useSimpleUiForNonRootPages: "非ルートページは簡易UIで表示"
|
||||||
_columns:
|
_columns:
|
||||||
main: "メイン"
|
main: "メイン"
|
||||||
widgets: "ウィジェット"
|
widgets: "ウィジェット"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -49,6 +49,7 @@ delete: "Удалить"
|
||||||
deleteAndEdit: "Удалить и отредактировать"
|
deleteAndEdit: "Удалить и отредактировать"
|
||||||
deleteAndEditConfirm: "Удалить эту заметку и создать отредактированную? Все реакции, ссылки и ответы на существующую будут будут потеряны."
|
deleteAndEditConfirm: "Удалить эту заметку и создать отредактированную? Все реакции, ссылки и ответы на существующую будут будут потеряны."
|
||||||
addToList: "Добавить в список"
|
addToList: "Добавить в список"
|
||||||
|
addToAntenna: "Добавить к антенне"
|
||||||
sendMessage: "Отправить сообщение"
|
sendMessage: "Отправить сообщение"
|
||||||
copyRSS: "Скопировать RSS"
|
copyRSS: "Скопировать RSS"
|
||||||
copyUsername: "Скопировать имя пользователя"
|
copyUsername: "Скопировать имя пользователя"
|
||||||
|
@ -155,6 +156,8 @@ addEmoji: "Добавить эмодзи"
|
||||||
settingGuide: "Рекомендуемые настройки"
|
settingGuide: "Рекомендуемые настройки"
|
||||||
cacheRemoteFiles: "Кешировать внешние файлы"
|
cacheRemoteFiles: "Кешировать внешние файлы"
|
||||||
cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы."
|
cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы."
|
||||||
|
cacheRemoteSensitiveFiles: "Кешировать внешние файлы"
|
||||||
|
cacheRemoteSensitiveFilesDescription: "Описание удаленных внешних файлов в кэше"
|
||||||
flagAsBot: "Аккаунт бота"
|
flagAsBot: "Аккаунт бота"
|
||||||
flagAsBotDescription: "Включите, если этот аккаунт управляется программой. Это позволит системе Misskey учитывать это, а также поможет разработчикам других ботов предотвратить бесконечные циклы взаимодействия."
|
flagAsBotDescription: "Включите, если этот аккаунт управляется программой. Это позволит системе Misskey учитывать это, а также поможет разработчикам других ботов предотвратить бесконечные циклы взаимодействия."
|
||||||
flagAsCat: "Аккаунт кота"
|
flagAsCat: "Аккаунт кота"
|
||||||
|
@ -316,6 +319,7 @@ copyUrl: "Копировать ссылку"
|
||||||
rename: "Переименовать"
|
rename: "Переименовать"
|
||||||
avatar: "Аватар"
|
avatar: "Аватар"
|
||||||
banner: "Шапка"
|
banner: "Шапка"
|
||||||
|
displayOfSensitiveMedia: "Определение деликатного контента"
|
||||||
whenServerDisconnected: "Когда соединение с сервером потеряно"
|
whenServerDisconnected: "Когда соединение с сервером потеряно"
|
||||||
disconnectedFromServer: "Разорвано соединение с сервером"
|
disconnectedFromServer: "Разорвано соединение с сервером"
|
||||||
reload: "Перезагрузить"
|
reload: "Перезагрузить"
|
||||||
|
@ -840,6 +844,8 @@ breakFollow: "Отписка"
|
||||||
breakFollowConfirm: "Удалить из подписок пользователя ?"
|
breakFollowConfirm: "Удалить из подписок пользователя ?"
|
||||||
itsOn: "Включено"
|
itsOn: "Включено"
|
||||||
itsOff: "Выключено"
|
itsOff: "Выключено"
|
||||||
|
on: "Вкл"
|
||||||
|
off: "Выкл"
|
||||||
emailRequiredForSignup: "Для регистрации учётной записи нужен адрес электронной почты"
|
emailRequiredForSignup: "Для регистрации учётной записи нужен адрес электронной почты"
|
||||||
unread: "Непрочитанное"
|
unread: "Непрочитанное"
|
||||||
filter: "Фильтры"
|
filter: "Фильтры"
|
||||||
|
@ -994,6 +1000,7 @@ cannotBeChangedLater: "Это нельзя изменить позже"
|
||||||
reactionAcceptance: "Принятие реакций"
|
reactionAcceptance: "Принятие реакций"
|
||||||
likeOnly: "Только лайки"
|
likeOnly: "Только лайки"
|
||||||
likeOnlyForRemote: "Только лайки с удалённых серверов"
|
likeOnlyForRemote: "Только лайки с удалённых серверов"
|
||||||
|
nonSensitiveOnly: "Безопасный серфинг"
|
||||||
rolesAssignedToMe: "Мои роли"
|
rolesAssignedToMe: "Мои роли"
|
||||||
resetPasswordConfirm: "Сбросить пароль?"
|
resetPasswordConfirm: "Сбросить пароль?"
|
||||||
sensitiveWords: "Чувствительные слова"
|
sensitiveWords: "Чувствительные слова"
|
||||||
|
@ -1014,7 +1021,15 @@ noteIdOrUrl: "ID или ссылка на заметку"
|
||||||
video: "Видео"
|
video: "Видео"
|
||||||
videos: "Видео"
|
videos: "Видео"
|
||||||
dataSaver: "Экономия трафика"
|
dataSaver: "Экономия трафика"
|
||||||
|
accountMigration: "Перенести учётную запись"
|
||||||
|
accountMoved: "Учетная запись перенесена"
|
||||||
|
operationForbidden: "Эта операция невозможна."
|
||||||
|
addMemo: "Добавить заметку"
|
||||||
|
editMemo: "Редактировать заметку"
|
||||||
|
reactionsList: "Реакции"
|
||||||
renotesList: "Репосты"
|
renotesList: "Репосты"
|
||||||
|
notificationDisplay: "Отображение уведомления"
|
||||||
|
leftTop: "Верхний левый угол"
|
||||||
horizontal: "Сбоку"
|
horizontal: "Сбоку"
|
||||||
youFollowing: "Подписки"
|
youFollowing: "Подписки"
|
||||||
options: "Настройки ролей"
|
options: "Настройки ролей"
|
||||||
|
|
|
@ -98,7 +98,7 @@ enterListName: "ใส่ชื่อสำหรับรายการลิ
|
||||||
privacy: "ความเป็นส่วนตัว"
|
privacy: "ความเป็นส่วนตัว"
|
||||||
makeFollowManuallyApprove: "ติดตามคำขอที่ต้องได้รับการอนุมัติ"
|
makeFollowManuallyApprove: "ติดตามคำขอที่ต้องได้รับการอนุมัติ"
|
||||||
defaultNoteVisibility: "การมองเห็นที่เป็นค่าเริ่มต้น"
|
defaultNoteVisibility: "การมองเห็นที่เป็นค่าเริ่มต้น"
|
||||||
follow: "กำลังติดตาม"
|
follow: "ติดตาม"
|
||||||
followRequest: "ส่งคำขอติดตาม"
|
followRequest: "ส่งคำขอติดตาม"
|
||||||
followRequests: "ส่งคำขอติดตาม"
|
followRequests: "ส่งคำขอติดตาม"
|
||||||
unfollow: "เลิกติดตาม"
|
unfollow: "เลิกติดตาม"
|
||||||
|
@ -183,7 +183,7 @@ selectUser: "เลือกผู้ใช้งาน"
|
||||||
recipient: "ผู้รับ"
|
recipient: "ผู้รับ"
|
||||||
annotation: "ความคิดเห็น"
|
annotation: "ความคิดเห็น"
|
||||||
federation: "เฟดิเวิร์ส"
|
federation: "เฟดิเวิร์ส"
|
||||||
instances: "ตัวอย่าง"
|
instances: "Server"
|
||||||
registeredAt: "จดทะเบียนที่"
|
registeredAt: "จดทะเบียนที่"
|
||||||
latestRequestReceivedAt: "ได้รับคำขอล่าสุดไปแล้ว"
|
latestRequestReceivedAt: "ได้รับคำขอล่าสุดไปแล้ว"
|
||||||
latestStatus: "สถานะล่าสุด"
|
latestStatus: "สถานะล่าสุด"
|
||||||
|
@ -1091,6 +1091,9 @@ usedAt: "ใช้แล้วที่"
|
||||||
unused: "ไม่ใช้แล้ว"
|
unused: "ไม่ใช้แล้ว"
|
||||||
used: "ใช้แล้ว"
|
used: "ใช้แล้ว"
|
||||||
expired: "หมดอายุแล้ว"
|
expired: "หมดอายุแล้ว"
|
||||||
|
doYouAgree: "ยอมรับมั้ย?"
|
||||||
|
beSureToReadThisAsItIsImportant: "กรุณาอ่านข้อมูลที่สำคัญอันนี้"
|
||||||
|
iHaveReadXCarefullyAndAgree: "ฉันได้อ่านข้อความ \"{x}\" และยินยอม"
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "คุณได้สร้างบัญชีของคุณสำเร็จเรียบร้อยแล้ว!"
|
accountCreated: "คุณได้สร้างบัญชีของคุณสำเร็จเรียบร้อยแล้ว!"
|
||||||
letsStartAccountSetup: "สำหรับผู้เริ่มต้นมาตั้งค่าโปรไฟล์ของคุณกันเถอะ"
|
letsStartAccountSetup: "สำหรับผู้เริ่มต้นมาตั้งค่าโปรไฟล์ของคุณกันเถอะ"
|
||||||
|
|
|
@ -0,0 +1,634 @@
|
||||||
|
---
|
||||||
|
_lang_: "O'zbek tili "
|
||||||
|
headlineMisskey: "Qaydlar bilan bog'langan tarmoq"
|
||||||
|
introMisskey: "Xush kelibsiz! Misskey ochiq kodli, markazlashmagan mikroblogging xizmati.\nO'zingizni fikrlaringizni atrofingizdagilar bilan ulashish uchun \"Qaydlar\" yarating. 📡\nUstiga-ustak, \"Reaktsiyalar\" yordamida siz boshqalarning xatlari haqidagi o'zingizni xissiyotlaringizni tez ravishda bildiring. 👍\nQani, yangi dunyoni kashf qilaylik! 🚀"
|
||||||
|
poweredByMisskeyDescription: "{name} ochiq manbali <b>Misskey</b>(\"Misskey instance\" deb ataladi) platformasi tomonidan qurilgan servislardan biri. "
|
||||||
|
monthAndDay: "{day}/{month}"
|
||||||
|
search: "Izlash"
|
||||||
|
notifications: "Xabarnomalar"
|
||||||
|
username: "Foydalanuvchi nomi"
|
||||||
|
password: "Parol"
|
||||||
|
forgotPassword: "Parolni unutib qo'ydim"
|
||||||
|
fetchingAsApObject: "Fediversedan olib kelinmoqda..."
|
||||||
|
ok: "Ho'p"
|
||||||
|
gotIt: "Tushunarli!"
|
||||||
|
cancel: "Bekor qilish"
|
||||||
|
noThankYou: "Hozir emas"
|
||||||
|
enterUsername: "Foydalanuvchini nomini kiriting"
|
||||||
|
renotedBy: "{user} tomonidan qayta qayd etildi"
|
||||||
|
noNotes: "Qaydlar mavjud emas"
|
||||||
|
noNotifications: "Xabarnomalar mavjud emas"
|
||||||
|
instance: "Server"
|
||||||
|
settings: "Sozalamalar"
|
||||||
|
notificationSettings: "Xabarnomalar sozlamalari"
|
||||||
|
basicSettings: "Asosiy sozlamalar"
|
||||||
|
otherSettings: "Qo‘shimcha sozlamalar"
|
||||||
|
openInWindow: "Yangi oynada ochish"
|
||||||
|
profile: "Profil"
|
||||||
|
timeline: "Xronologiya"
|
||||||
|
noAccountDescription: "Ushbu foydalanuvchi hali o'zi haqida ma'lumot yozmagan."
|
||||||
|
login: "Kirish"
|
||||||
|
loggingIn: "Kirilmoqda"
|
||||||
|
logout: "Chiqish"
|
||||||
|
signup: "Ro'yxatdan o'tish"
|
||||||
|
uploading: "Yuklanmoqda..."
|
||||||
|
save: "Saqlash"
|
||||||
|
users: "Foydalanuvchilar"
|
||||||
|
addUser: "Foydalanuvchi qo'shish"
|
||||||
|
favorite: "Sevimli"
|
||||||
|
favorites: "Sevimli"
|
||||||
|
unfavorite: "Sevimlidan chiqarish"
|
||||||
|
favorited: "sevimli"
|
||||||
|
alreadyFavorited: "allaqachon sevimlilar orasida"
|
||||||
|
cantFavorite: "sevimlilarga qo'shib bo'lmadi"
|
||||||
|
pin: "Profilga qadab qo'yish"
|
||||||
|
unpin: "Profildan olib tashlash"
|
||||||
|
copyContent: "Tarkibini nusxalash"
|
||||||
|
copyLink: "Havolani nuxalash"
|
||||||
|
delete: "O'chirib tashlash"
|
||||||
|
deleteAndEdit: "O'chirish va tahrirlash"
|
||||||
|
deleteAndEditConfirm: "O'chirib, tahrirlamoqchiligingizga ishonchingiz komilmi? Siz bu qaydga tegishli barcha reaktsiyalar, qayta qaydlar va javoblarni yo'qotasiz."
|
||||||
|
addToList: "Ro‘yxatga qo‘shish"
|
||||||
|
addToAntenna: "Antennaga qo'shish"
|
||||||
|
sendMessage: "Xabar yuborish"
|
||||||
|
copyRSS: "RSS'ni nusxalash"
|
||||||
|
copyUsername: "Foydalanuvchi nomini nusxalash"
|
||||||
|
copyUserId: "Foydalanuvchi IDsini nusxalash"
|
||||||
|
copyNoteId: "Qayd IDsini ko'chirish"
|
||||||
|
copyFileId: "Fayl ID raqamini nusxalash"
|
||||||
|
copyFolderId: "Jild ID raqamini nusxalash"
|
||||||
|
copyProfileUrl: "Profil manzilini nusxalash"
|
||||||
|
searchUser: "Foydalanuvchini izlash"
|
||||||
|
reply: "Javob berish"
|
||||||
|
loadMore: "Ko‘proq ko‘rish"
|
||||||
|
showMore: "Ko‘proq ko‘rish"
|
||||||
|
showLess: "Yopish"
|
||||||
|
youGotNewFollower: "sizga obuna bo'ldi"
|
||||||
|
receiveFollowRequest: "Obuna bo'lishga ruxsat qabul qilindi"
|
||||||
|
followRequestAccepted: "Obuna bo'lishga ruxsat berildi"
|
||||||
|
mention: "Murojat"
|
||||||
|
mentions: "Eslatib o'tish"
|
||||||
|
directNotes: "Bevosita qaydlar"
|
||||||
|
importAndExport: "Import/eksport"
|
||||||
|
import: "Import"
|
||||||
|
export: "Eksport"
|
||||||
|
files: "Fayllar"
|
||||||
|
download: "Yuklab olish"
|
||||||
|
driveFileDeleteConfirm: "\"{name}\" o'chirib tashlamoqchimisiz? Buni ishlatadihan kontentni hammasidan o'chadi"
|
||||||
|
unfollowConfirm: "{name}ga obunani bekor qilmoqchimisiz?"
|
||||||
|
exportRequested: "Eksport so'raldi. Bu ozgina vaqt olishi mumkin. Tugatilgandan so'ng sizning Diskingizga qo'shiladi"
|
||||||
|
importRequested: "Import so'raldi. Bu ozgina vaqt olishi mumkin."
|
||||||
|
lists: "Ro'yxatlar"
|
||||||
|
noLists: "Hech qanday ro'yxatlar mavjud emas"
|
||||||
|
note: "Qayd"
|
||||||
|
notes: "Qaydlar"
|
||||||
|
following: "Obuna bo‘lish"
|
||||||
|
followers: "Obunachilar"
|
||||||
|
followsYou: "Sizning obunachingiz."
|
||||||
|
createList: "Ro'yxat yaratish"
|
||||||
|
manageLists: "Ro'yxatlarni boshqarish."
|
||||||
|
error: "Xato"
|
||||||
|
somethingHappened: "Xatolik yuz berdi"
|
||||||
|
retry: "Qayta urinib ko'rish"
|
||||||
|
pageLoadError: "Sahifani yuklayotganda xatolik yuz berdi"
|
||||||
|
pageLoadErrorDescription: "Buni odatda tarmoq muammolari yoki browser keshi keltirib chiqaradi. Keshni tozalab, keyinroq urinib ko'ring"
|
||||||
|
serverIsDead: "Server javob bermayabdi. Iltimos kuting va keyinroq urinib ko'ring"
|
||||||
|
youShouldUpgradeClient: "Iltimos, ushbu sahifani ko'rish uchun sahifani yangilang."
|
||||||
|
enterListName: "Ro'yxatga nom kiriting"
|
||||||
|
privacy: "Maxfiylik"
|
||||||
|
makeFollowManuallyApprove: "Yopiq akkaunt"
|
||||||
|
follow: "Obuna bo‘lish"
|
||||||
|
followRequest: "Obuna bo'lish uchun ruxsat olish"
|
||||||
|
followRequests: "Obuna bo'lmoqchilar"
|
||||||
|
unfollow: "obunani bker qilish"
|
||||||
|
followRequestPending: "obuna bo'lishga ruxsat kutilmoqda"
|
||||||
|
enterEmoji: "Emojini kiriting"
|
||||||
|
renote: "Qayta qaydetish"
|
||||||
|
unrenote: "Qayta qayd etishni bekor qilish"
|
||||||
|
renoted: "Qayta qaydetildi"
|
||||||
|
cantRenote: "Qyta qayd etish mumkin emas"
|
||||||
|
quote: "Iqtibos keltirish"
|
||||||
|
inChannelRenote: "Faqat kanalga qayta qayd etish"
|
||||||
|
inChannelQuote: "Kanaldagi eslatmalar"
|
||||||
|
pinnedNote: "Qadanlgan qayd"
|
||||||
|
pinned: "Profilga qadab qo'yish"
|
||||||
|
you: "Siz"
|
||||||
|
clickToShow: "Ko'rsatish uchun bosing"
|
||||||
|
sensitive: "Sezuvchan"
|
||||||
|
add: "Qo'shish"
|
||||||
|
reaction: "Reaktsiyalar"
|
||||||
|
reactions: "Reaktsiyalar"
|
||||||
|
reactionSetting: "Reaksiyalar ro'yxatingiz "
|
||||||
|
rememberNoteVisibility: "Qaydning ko'rinish sozlamarini eslab qolish"
|
||||||
|
attachCancel: "Qo'shimchani olib tashlash"
|
||||||
|
enterFileName: "Fayl nomini kiriting"
|
||||||
|
mute: "Ovozni o‘chirish"
|
||||||
|
unmute: "Ovozni yoqish"
|
||||||
|
renoteMute: "Qayta qaydlarni ovozini o'chirish"
|
||||||
|
renoteUnmute: "Qayta qaydlarni ovozini yoqish"
|
||||||
|
block: "Bloklash"
|
||||||
|
unblock: "Blokdan chiqarish"
|
||||||
|
suspend: "To'xtatish"
|
||||||
|
unsuspend: "Blokdan chiqarish"
|
||||||
|
blockConfirm: "Haqiqatdan ham quyidagi hisobni bloklashni xohlaysizmi? "
|
||||||
|
unblockConfirm: "Haqiqatdan ham quyidagi hisobni blokdan chiqarishni xohlaysizmi? "
|
||||||
|
suspendConfirm: "Bu hisobni to‘xtatib qo‘ymoqchi ekanligingizga ishonchingiz komilmi?"
|
||||||
|
unsuspendConfirm: "Tasdiqlashni to'xtatib turish"
|
||||||
|
selectList: "Ro'yxat tanlash"
|
||||||
|
editList: "Roʻyxatni tahrirlash"
|
||||||
|
selectChannel: "Kanalni tanlang"
|
||||||
|
selectAntenna: "Antennani tanlang"
|
||||||
|
editAntenna: "Antennani tahrirlang"
|
||||||
|
selectWidget: "Vidjet tanlash"
|
||||||
|
editWidgets: "Vidjetni tahrirlash"
|
||||||
|
editWidgetsExit: "Tugadi"
|
||||||
|
customEmojis: "Maxsus emoji"
|
||||||
|
emoji: "Emoji"
|
||||||
|
emojis: "Emoji"
|
||||||
|
emojiName: "Emoji nomi"
|
||||||
|
emojiUrl: "Emoji URL'i"
|
||||||
|
addEmoji: "Emoji qo'shish"
|
||||||
|
settingGuide: "Tavsiya qilingan sozlamalar"
|
||||||
|
cacheRemoteFiles: "Tashqi fayllarni keshlash"
|
||||||
|
cacheRemoteFilesDescription: "Ushbu sozlama o'chirilgan bo'lsa tashqi fayllar bevosita tashqi serverdan yuklanadi. Buni o'chirish ombor ishlatilishini kamaytiradi, lekin traffikni ko'paytiradi, chunki eskizlar generatsiya qilinmaydi."
|
||||||
|
cacheRemoteSensitiveFiles: "Tashqi fayllarni keshlash"
|
||||||
|
flagAsBot: "Ushbu akkauntni bot sifatida belgilash"
|
||||||
|
flagAsBotDescription: "Agar bu akkaunt bot tomonidan boshqaralayotgan bo'ls, bu sozlamani yoqing. Sozlama yoqilganda, boshqa foydalanuvchilar uchun belgi sifatida ishlaydi, va Misskey ichki tizimlari bu akkauntni bot ekanini biladi."
|
||||||
|
flagAsCat: "Bu akkauntni mushuk sifatida belgilash"
|
||||||
|
flagAsCatDescription: "Ushbu akkauntni mushuk sifatida belgilash uchun ushbu sozlamani yoqing."
|
||||||
|
flagShowTimelineReplies: "Javbolarni xronogoliya bo'yicha ko'rsatish"
|
||||||
|
addAccount: "Akkaunt qo'shish"
|
||||||
|
reloadAccountsList: "Hisoblar ro'yxatini yangilash"
|
||||||
|
loginFailed: "Tizimga kirishda xatolik yuz berdi"
|
||||||
|
showOnRemote: "Masofaviy boshqaruvni ko'rish"
|
||||||
|
general: "Asosiy"
|
||||||
|
wallpaper: "Fon rasmi"
|
||||||
|
setWallpaper: "Fon rasmini o'rnatish"
|
||||||
|
removeWallpaper: "Fon rasmini olib tashlash"
|
||||||
|
searchWith: "Izlash: {q}"
|
||||||
|
youHaveNoLists: "Sizda hech qanday ro'yxatlar mavjud emas"
|
||||||
|
followConfirm: "{name} ga obuna bo'lmoqchimisiz?"
|
||||||
|
proxyAccount: "Proksi hisob"
|
||||||
|
host: "Host"
|
||||||
|
selectUser: "Foydalanuvchini tanlang"
|
||||||
|
recipient: "Qabul qiluvchi"
|
||||||
|
annotation: "Izohlar"
|
||||||
|
federation: "Federatsiya"
|
||||||
|
instances: "Serverlar"
|
||||||
|
registeredAt: "Ro'yhatdan o'tgan"
|
||||||
|
latestStatus: "So'nggi holat"
|
||||||
|
storageUsage: "Ishlatilgan xotira"
|
||||||
|
charts: "Diagrammalar"
|
||||||
|
perHour: "Soatbay"
|
||||||
|
perDay: "Kunbay"
|
||||||
|
stopActivityDelivery: "Faollikni jo'natishi to'xtatish"
|
||||||
|
blockThisInstance: "Ko;rsatilgan serverni bloklash"
|
||||||
|
operations: "Amallar"
|
||||||
|
software: "Dastur"
|
||||||
|
version: "Versiya"
|
||||||
|
metadata: "Meta ma'lumot"
|
||||||
|
withNFiles: "{n} ta fayl(lar)"
|
||||||
|
monitor: "Kuzatish"
|
||||||
|
jobQueue: "Vazifalar navbati"
|
||||||
|
cpuAndMemory: "CPU va Xotira"
|
||||||
|
network: "Tarmoq"
|
||||||
|
disk: "Disk"
|
||||||
|
instanceInfo: "Instans haqida ma'lumot"
|
||||||
|
statistics: "Statistika"
|
||||||
|
clearQueue: "Navbatni tozalash"
|
||||||
|
clearQueueConfirmTitle: "Navbatni tozalamoqchimisiz?"
|
||||||
|
clearCachedFiles: "Keshni tozalash"
|
||||||
|
blockedInstances: "Bloklangan serverlar"
|
||||||
|
muteAndBlock: "Ovozsiz va Bloklangan"
|
||||||
|
mutedUsers: "Ovozsiz foydalanuvchilar"
|
||||||
|
blockedUsers: "Bloklangan foydalanuvchilar"
|
||||||
|
noUsers: "Foydalanuvchilar yo‘q"
|
||||||
|
editProfile: "Profilni o'zgartirish"
|
||||||
|
noteDeleteConfirm: "Haqiqatan ham bu qaydni oʻchirib tashlamoqchimisiz?"
|
||||||
|
pinLimitExceeded: "Siz boshqa qaydlarni mahkamlay olmaysiz"
|
||||||
|
intro: "Misskeyni o'rnatish tugallandi! Iltimos, administrator foydalanuvchi yarating."
|
||||||
|
done: "Bajarildi"
|
||||||
|
processing: "Amaliyotda"
|
||||||
|
preview: "Ko'rish"
|
||||||
|
default: "Odatiy"
|
||||||
|
defaultValueIs: "Sukut bo'yicha: {value}"
|
||||||
|
noCustomEmojis: "Emojilar mavjud emas"
|
||||||
|
noJobs: "Vazifalar yo'q"
|
||||||
|
blocked: "Bloklangan"
|
||||||
|
suspended: "To'xtatilgan"
|
||||||
|
all: "Barcha"
|
||||||
|
subscribing: "Obuna bo'lish"
|
||||||
|
publishing: "Yuborilmoqda"
|
||||||
|
notResponding: "Javob bermayapti"
|
||||||
|
changePassword: "Parolni o‘zgartirish"
|
||||||
|
security: "Xavfsizlik"
|
||||||
|
retypedNotMatch: "Maydonlar mos kelmayapti"
|
||||||
|
currentPassword: "Joriy parol"
|
||||||
|
newPassword: "Yangi parol"
|
||||||
|
newPasswordRetype: "Yangi parolni boshqatdan tering"
|
||||||
|
attachFile: "Fayl biriktirish"
|
||||||
|
more: "Ko'proq!"
|
||||||
|
noSuchUser: "Foydalanuvchi topilmadi"
|
||||||
|
lookup: "So'rov"
|
||||||
|
announcements: "Bildirishnomalar"
|
||||||
|
imageUrl: "Rasm URL"
|
||||||
|
remove: "O'chirib tashlash"
|
||||||
|
removed: "Muvaffaqiyatli o'chirildi"
|
||||||
|
removeAreYouSure: "“{x}”ni olib tashlamoqchi ekanligingizga ishonchingiz komilmi?"
|
||||||
|
deleteAreYouSure: "“{x}”ni chindan ham yo'q qilmoqchimisiz?"
|
||||||
|
resetAreYouSure: "Haqiqatan ham qayta tiklansinmi?"
|
||||||
|
saved: "Saqlandi"
|
||||||
|
messaging: "Suhbat"
|
||||||
|
upload: "Yuklash"
|
||||||
|
keepOriginalUploading: "Asl rasmni saqlang"
|
||||||
|
uploadFromUrlDescription: "Yuklamoqchi bo'lgan faylingizga havola"
|
||||||
|
explore: "Ko'rib chiqish"
|
||||||
|
messageRead: "O‘qildi"
|
||||||
|
startMessaging: "Yangi suhbatni boshlash"
|
||||||
|
nUsersRead: "{n} tomonidan o'qildi"
|
||||||
|
agreeTo: "Men {0} ga roziman"
|
||||||
|
agree: "Rozi bo'lish"
|
||||||
|
agreeBelow: "Men quyidagilarga roziman"
|
||||||
|
basicNotesBeforeCreateAccount: "Muhim qaydlar"
|
||||||
|
termsOfService: "Foydalanish shartlari"
|
||||||
|
start: "Boshlash"
|
||||||
|
home: "Bosh sahifa"
|
||||||
|
activity: "Faollik"
|
||||||
|
images: "Rasmlar"
|
||||||
|
image: "Rasm"
|
||||||
|
birthday: "Tug'ilgan kun"
|
||||||
|
yearsOld: "{age} yashar"
|
||||||
|
registeredDate: "Ro'yxatdan o'tgan sanasi"
|
||||||
|
location: "Manzil"
|
||||||
|
theme: "Rang sxemasi"
|
||||||
|
themeForLightMode: "Yorug' rejim uchun rang sxemasi"
|
||||||
|
themeForDarkMode: "Qorong'i rejim uchun rang sxemasi"
|
||||||
|
light: "Yorug'"
|
||||||
|
dark: "Qorongʻi"
|
||||||
|
lightThemes: "Yorug‘ rang sxemasi"
|
||||||
|
darkThemes: "Qorong'i rang sxemasi"
|
||||||
|
drive: "Disk"
|
||||||
|
fileName: "Fayl nomi"
|
||||||
|
selectFile: "Faylni tanlang"
|
||||||
|
selectFiles: "Fayllarni tanlang"
|
||||||
|
selectFolder: "Jildni tanlang"
|
||||||
|
selectFolders: "Jildlarni tanlang"
|
||||||
|
renameFile: "Faylni nomini tahrirlash"
|
||||||
|
folderName: "Jild nomi"
|
||||||
|
createFolder: "Papka qo'shish"
|
||||||
|
renameFolder: "Papka nomini o‘zgartirish"
|
||||||
|
deleteFolder: "Papkani o‘chirish"
|
||||||
|
addFile: "Fayl qo‘shish"
|
||||||
|
emptyDrive: "Diskingiz bo'sh"
|
||||||
|
emptyFolder: "Ushbu papka bo'sh"
|
||||||
|
unableToDelete: "O'chirilmadi"
|
||||||
|
inputNewFileName: "Yangi fayl nomini kiriting"
|
||||||
|
inputNewFolderName: "Yangi papka nomini kiriting"
|
||||||
|
copyUrl: "Bog'lamadan nusxa olish"
|
||||||
|
rename: "Qayta nomlash"
|
||||||
|
avatar: "Avatar"
|
||||||
|
banner: "Banner"
|
||||||
|
disconnectedFromServer: "Server bilan ulanish uzulib qoldi"
|
||||||
|
reload: "Yangilash"
|
||||||
|
doNothing: "E'tiborsiz qoldirish"
|
||||||
|
reloadConfirm: "Timeline'ni yangilashni xohlaysizmi?"
|
||||||
|
watch: "Kuzatmoq"
|
||||||
|
unwatch: "Kuzatishni to'xtatish"
|
||||||
|
accept: "Ruxsat"
|
||||||
|
reject: "Rad etish"
|
||||||
|
normal: "Yaxshi"
|
||||||
|
instanceName: "Server nomi"
|
||||||
|
instanceDescription: "Server tavsifi"
|
||||||
|
maintainerName: "Qo'llab-quvvatlovchi"
|
||||||
|
maintainerEmail: "Administratorning elektron pochtasi"
|
||||||
|
tosUrl: "Foydalanish shartlariga havola"
|
||||||
|
thisYear: "Joriy yil"
|
||||||
|
thisMonth: "Shu oy"
|
||||||
|
today: "Bugun"
|
||||||
|
dayX: "{day}"
|
||||||
|
monthX: "{month}"
|
||||||
|
yearX: "{year}"
|
||||||
|
pages: "Sahifalar"
|
||||||
|
integration: "Integratsiya"
|
||||||
|
connectService: "Ulash"
|
||||||
|
disconnectService: "Uzish"
|
||||||
|
enableLocalTimeline: "Mahalliy vaqt mintaqasini yoqing"
|
||||||
|
enableGlobalTimeline: "Global vaqt mintaqasini yoqing"
|
||||||
|
registration: "Ro'yxatdan o'tish"
|
||||||
|
enableRegistration: "Ro'yxatdan o'tishni yoqing"
|
||||||
|
invite: "Taklif qilish"
|
||||||
|
inMb: "Megabaytlarda"
|
||||||
|
basicInfo: "Asosiy ma'lumot"
|
||||||
|
pinnedUsers: "Qadalgan foydalanuvchilar"
|
||||||
|
pinnedPages: "Qadalgan Sahifalar"
|
||||||
|
pinnedNotes: "Qadanlgan qayd"
|
||||||
|
hcaptcha: "hCaptcha"
|
||||||
|
enableHcaptcha: "hCaptchani yoqish"
|
||||||
|
hcaptchaSiteKey: "Sayt kaliti"
|
||||||
|
hcaptchaSecretKey: "Mahfiy kalit"
|
||||||
|
recaptcha: "reCAPTCHA"
|
||||||
|
enableRecaptcha: "reCAPTCHA ni yoqish"
|
||||||
|
recaptchaSiteKey: "Sayt kaliti"
|
||||||
|
recaptchaSecretKey: "Maxfiy kalit"
|
||||||
|
turnstileSiteKey: "Sayt kaliti"
|
||||||
|
turnstileSecretKey: "Maxfiy kalit"
|
||||||
|
antennas: "Antennalar"
|
||||||
|
manageAntennas: "Antennalarni boshqarish"
|
||||||
|
name: "Ism"
|
||||||
|
antennaSource: "Antenna manbai"
|
||||||
|
silence: "Sukunat"
|
||||||
|
exploreUsersCount: "{count} ta foydalanuvchi bor"
|
||||||
|
popularTags: "Ommabop teglar"
|
||||||
|
userList: "Ro'yxatlar"
|
||||||
|
about: "Haqida"
|
||||||
|
aboutMisskey: "Misskey haqida"
|
||||||
|
administrator: "Administrator"
|
||||||
|
token: "Tasdiqlash"
|
||||||
|
2fa: "Ikki faktorli autentifikatsiya"
|
||||||
|
totp: "Autentifikatsiya ilovasi"
|
||||||
|
totpDescription: "Bir martalik parollarni kiritish uchun autentifikatsiya ilovasidan foydalaning"
|
||||||
|
moderator: "Moderator"
|
||||||
|
resetPassword: "Parolni tiklash"
|
||||||
|
share: "Yuborish"
|
||||||
|
notFound: "Topilmadi"
|
||||||
|
uploadFolder: "Jildni yuklash"
|
||||||
|
cacheClear: "Keshni tozalash"
|
||||||
|
help: "Yordam"
|
||||||
|
inputMessageHere: "Xabar kiriting"
|
||||||
|
close: "Yopish"
|
||||||
|
invites: "Taklif qilish"
|
||||||
|
members: "A'zolar"
|
||||||
|
title: "Sarlavha"
|
||||||
|
text: "Matn"
|
||||||
|
enable: "Yoqish"
|
||||||
|
invitations: "Taklif qilish"
|
||||||
|
dashboard: "Boshqaruv paneli"
|
||||||
|
local: "Mahalliy"
|
||||||
|
total: "Jami"
|
||||||
|
weekOverWeekChanges: "Oxirgi haftadagi o'zgarishlar"
|
||||||
|
dayOverDayChanges: "Kecha bo'lgan o'zgarishlar"
|
||||||
|
appearance: "Tasgqi ko'rinish"
|
||||||
|
clientSettings: "Klient sozlamalari"
|
||||||
|
accountSettings: "Profil sozlamalari"
|
||||||
|
sounds: "Tovushlar"
|
||||||
|
sound: "ovoz"
|
||||||
|
none: "Hechnima"
|
||||||
|
volume: "Ovoz balandligi"
|
||||||
|
details: "Batafsil"
|
||||||
|
output: "Chiqish"
|
||||||
|
menu: "Menyu"
|
||||||
|
divider: "Ajratrmoq"
|
||||||
|
addItem: "Element qo'shish"
|
||||||
|
themeEditor: "Rang sxemasi muharriri"
|
||||||
|
enableAll: "Yoqish"
|
||||||
|
edit: "Tahrirlash"
|
||||||
|
email: "Email"
|
||||||
|
smtpHost: "Host"
|
||||||
|
smtpUser: "Foydalanuvchi nomi"
|
||||||
|
smtpPass: "Parol"
|
||||||
|
copy: "Nusxa olish"
|
||||||
|
notificationSetting: "Bildirishnoma sozlamalari"
|
||||||
|
other: "Qo‘shimcha"
|
||||||
|
behavior: "Hatti-harakatlar"
|
||||||
|
sample: "Namuna"
|
||||||
|
public: "Ommaviy"
|
||||||
|
clearCache: "Keshni tozalash"
|
||||||
|
onlineUsersCount: "Faol userlar"
|
||||||
|
myTheme: "Mening rang sxemam"
|
||||||
|
backgroundColor: "Fon"
|
||||||
|
accentColor: "Urg'u"
|
||||||
|
textColor: "Matn"
|
||||||
|
info: "Haqida"
|
||||||
|
user: "Foydalanuvchilar"
|
||||||
|
global: "Global"
|
||||||
|
squareAvatars: "Kvadrat avatarkalar"
|
||||||
|
searchByGoogle: "Izlash"
|
||||||
|
indefinitely: "Hech qachon"
|
||||||
|
file: "Fayllar"
|
||||||
|
label: "Yorliq"
|
||||||
|
color: "Rang"
|
||||||
|
_achievements:
|
||||||
|
_types:
|
||||||
|
_viewInstanceChart:
|
||||||
|
title: "Tahlilchi"
|
||||||
|
_ad:
|
||||||
|
hide: "Boshqa ko'rsatilmasin"
|
||||||
|
_email:
|
||||||
|
_follow:
|
||||||
|
title: "sizga obuna bo'ldi"
|
||||||
|
_registry:
|
||||||
|
key: "Kalit"
|
||||||
|
keys: "Kalit"
|
||||||
|
_instanceTicker:
|
||||||
|
none: "Boshqa ko'rsatilmasin"
|
||||||
|
always: "Doimo ko'rsatilsin"
|
||||||
|
_theme:
|
||||||
|
install: "Rang sxemasini o'rnatish"
|
||||||
|
manage: "Rang sxemalarini boshqarish"
|
||||||
|
code: "Rang sxemasining kodi"
|
||||||
|
description: "Tavsif"
|
||||||
|
installed: "{name} o'rnatildi"
|
||||||
|
installedThemes: "O'rnatilgan rang sxemalari"
|
||||||
|
alreadyInstalled: "Ushbu rang sxemasi allaqachon o'rnatilgan"
|
||||||
|
invalid: "Ushbu rang sxemasining formati yaroqsiz"
|
||||||
|
make: "Rang sxemasini yasash"
|
||||||
|
base: "Asos"
|
||||||
|
addConstant: "O'zgarmas qo'shish"
|
||||||
|
constant: "O'zgarmas"
|
||||||
|
color: "Rang"
|
||||||
|
key: "Kalit"
|
||||||
|
func: "Funksiyalar"
|
||||||
|
funcKind: "Funksiya turi"
|
||||||
|
argument: "Argument"
|
||||||
|
darken: "Qoraytirish"
|
||||||
|
lighten: "Yoritish"
|
||||||
|
inputConstantName: "Ushbu o'zgarmas uchun nom kiriting"
|
||||||
|
deleteConstantConfirm: "Siz rostdan ham {const} o'zgarmasni o'chirmoqchimisiz?"
|
||||||
|
keys:
|
||||||
|
accent: "Urg'u"
|
||||||
|
bg: "Fon"
|
||||||
|
fg: "Matn"
|
||||||
|
focus: "Fokus"
|
||||||
|
panel: "Panel"
|
||||||
|
shadow: "Soya"
|
||||||
|
header: "Sarlavha"
|
||||||
|
navBg: "Yon panel foni"
|
||||||
|
navFg: "Yon panel matni"
|
||||||
|
mention: "Murojat"
|
||||||
|
renote: "Qayta qaydetish"
|
||||||
|
divider: "Ajratrmoq"
|
||||||
|
accentDarken: "Urg'u (Qoraytirilgan)"
|
||||||
|
accentLighten: "Urg'u (Yoritilgan)"
|
||||||
|
fgHighlighted: "Belgilangan matn"
|
||||||
|
_sfx:
|
||||||
|
note: "Qaydlar"
|
||||||
|
notification: "Xabarnomalar"
|
||||||
|
chat: "Suhbat"
|
||||||
|
_2fa:
|
||||||
|
renewTOTPCancel: "Hozir emas"
|
||||||
|
_permissions:
|
||||||
|
"read:blocks": "Bloklangan foydalanuvchilar roʻyxatini koʻring"
|
||||||
|
"write:blocks": "Bloklangan foydalanuvchilar roʻyxatini tahrirlang"
|
||||||
|
_weekday:
|
||||||
|
saturday: "Shanba"
|
||||||
|
_widgets:
|
||||||
|
profile: "Profil"
|
||||||
|
instanceInfo: "Instans haqida ma'lumot"
|
||||||
|
notifications: "Xabarnomalar"
|
||||||
|
timeline: "Xronologiya"
|
||||||
|
clock: "Soat"
|
||||||
|
activity: "Faollik"
|
||||||
|
photos: "Rasmlar"
|
||||||
|
digitalClock: "Raqamli soat"
|
||||||
|
unixClock: "UNIX soat"
|
||||||
|
federation: "Federatsiya"
|
||||||
|
button: "Tugma"
|
||||||
|
jobQueue: "Vazifalar navbati"
|
||||||
|
_userList:
|
||||||
|
chooseList: "Ro'yxat tanlash"
|
||||||
|
_cw:
|
||||||
|
show: "Ko‘proq ko‘rish"
|
||||||
|
chars: "{count} ta belgi(lar)"
|
||||||
|
files: "{count} ta fayl(lar)"
|
||||||
|
_poll:
|
||||||
|
noOnlyOneChoice: "Kamida ikkita tanvol kerak"
|
||||||
|
infinite: "Hech qachon"
|
||||||
|
at: "...da tugatish"
|
||||||
|
after: "...dan keyin tugatish"
|
||||||
|
deadlineTime: "Vaqt"
|
||||||
|
duration: "Davomiylik"
|
||||||
|
votesCount: "{n} ovozlar"
|
||||||
|
totalVotes: "Umuman {n} ovozlar"
|
||||||
|
vote: "Ovoz berish"
|
||||||
|
showResult: "Natijalarni ko'rish"
|
||||||
|
voted: "Ovoz berildi"
|
||||||
|
closed: "Yakunladi"
|
||||||
|
remainingDays: "{d} kun {h} soat qoldi"
|
||||||
|
remainingHours: "{h} soat {m} daqiqa qoldi"
|
||||||
|
remainingMinutes: "{m} daqiqa {s} sekund qoldi"
|
||||||
|
remainingSeconds: "{s} sekund qoldi"
|
||||||
|
_visibility:
|
||||||
|
public: "Ommaviy"
|
||||||
|
publicDescription: "Sizning ovozingiz barcha foydalanuvchilarga ko'rinadi"
|
||||||
|
home: "Bosh sahifa"
|
||||||
|
followers: "Obunachilar"
|
||||||
|
specified: "Bevosita"
|
||||||
|
_profile:
|
||||||
|
name: "Ism"
|
||||||
|
username: "Foydalanuvchi nomi"
|
||||||
|
description: "Biografiya"
|
||||||
|
metadata: "Qo'shimcha ma'lumot"
|
||||||
|
metadataLabel: "Yorliq"
|
||||||
|
metadataContent: "Tarkib"
|
||||||
|
changeBanner: "Bannerni o'zgartirish"
|
||||||
|
_exportOrImport:
|
||||||
|
allNotes: "Barcha qaydlar"
|
||||||
|
followingList: "Obuna bo‘lish"
|
||||||
|
muteList: "Ovozni o‘chirish"
|
||||||
|
blockingList: "Bloklangan foydalanuvchilar"
|
||||||
|
userLists: "Ro'yxatlar"
|
||||||
|
_charts:
|
||||||
|
federation: "Federatsiya"
|
||||||
|
apRequest: "So'rovlar"
|
||||||
|
usersTotal: "Foydalanuvchilarning umumiy soni"
|
||||||
|
activeUsers: "Faol foydalanuvchilar"
|
||||||
|
notesTotal: "Qaydlarning umumiy soni"
|
||||||
|
filesTotal: "Fayllarning umumiy soni"
|
||||||
|
_instanceCharts:
|
||||||
|
requests: "So'rovlar"
|
||||||
|
notes: "Qaydlar sonidagi farq"
|
||||||
|
cacheSize: "Kesh hajmidagi farq"
|
||||||
|
files: "Fayllar sonidagi farq"
|
||||||
|
_timelines:
|
||||||
|
home: "Bosh sahifa"
|
||||||
|
local: "Mahalliy"
|
||||||
|
social: "Ijtimoiy"
|
||||||
|
global: "Global"
|
||||||
|
_play:
|
||||||
|
featured: "Mashhur"
|
||||||
|
title: "Sarlavha"
|
||||||
|
script: "Skript"
|
||||||
|
summary: "Tavsif"
|
||||||
|
_pages:
|
||||||
|
newPage: "Yangi Sahifa yaratish"
|
||||||
|
editPage: "Ushbu Sahifani tahrirlash"
|
||||||
|
created: "Sahifa muvaffaqiyatli yaratildi"
|
||||||
|
updated: "Sahifa muvaffaqiyatli tahrirlandi"
|
||||||
|
deleted: "Sahifa muvaffaqiyatli o'chirildi"
|
||||||
|
pageSetting: "Sahifa sozlamalari"
|
||||||
|
nameAlreadyExists: "Ko'rsatilgan Sahifa URL'i allaqachon mavjud"
|
||||||
|
invalidNameTitle: "Ko'rsatilgan Sahifa URL'i yaroqsiz"
|
||||||
|
editThisPage: "Ushbu Sahifani tahrirlash"
|
||||||
|
viewPage: "Sizning Sahifalaringizni ko'rish"
|
||||||
|
my: "Mening Sahifalarim"
|
||||||
|
featured: "Mashhur"
|
||||||
|
contents: "Tarkib"
|
||||||
|
title: "Sarlavha"
|
||||||
|
url: "Sahifa URL'i"
|
||||||
|
summary: "Sahifa bayoni"
|
||||||
|
font: "Shrift"
|
||||||
|
fontSerif: "Serif"
|
||||||
|
fontSansSerif: "Sans Serif"
|
||||||
|
selectType: "Turni tanlang"
|
||||||
|
contentBlocks: "Tarkib"
|
||||||
|
blocks:
|
||||||
|
text: "Matn"
|
||||||
|
textarea: "Matn maydoni"
|
||||||
|
section: "Bo'lim"
|
||||||
|
image: "Rasmlar"
|
||||||
|
button: "Tugma"
|
||||||
|
note: "Biriktirilgan qayd"
|
||||||
|
_note:
|
||||||
|
id: "Qayd ID"
|
||||||
|
detailed: "Batafsil ko'rinishi"
|
||||||
|
_relayStatus:
|
||||||
|
requesting: "Kutilmoqda"
|
||||||
|
accepted: "Tasdiqlandi"
|
||||||
|
rejected: "Rad etildi"
|
||||||
|
_notification:
|
||||||
|
fileUploaded: "Fayl muvaffaqiyatli yuklandi"
|
||||||
|
youGotMention: "{name} sizni eslab o'tdi"
|
||||||
|
youGotReply: "{name} sizga javob berdi"
|
||||||
|
youGotQuote: "{name} sizdan iqtibos keltirdi"
|
||||||
|
youRenoted: "{name} dan qayta qayd qilish"
|
||||||
|
youWereFollowed: "sizga obuna bo'ldi"
|
||||||
|
unreadAntennaNote: "Antenna {name}"
|
||||||
|
_types:
|
||||||
|
all: "Barchasi"
|
||||||
|
follow: "Obuna bo‘lish"
|
||||||
|
mention: "Murojat"
|
||||||
|
renote: "Qayta qaydetish"
|
||||||
|
quote: "Iqtibos keltirish"
|
||||||
|
reaction: "Reaktsiyalar"
|
||||||
|
receiveFollowRequest: "Qabul qilingan kuzatuv so'rovlari"
|
||||||
|
_actions:
|
||||||
|
reply: "Javob berish"
|
||||||
|
renote: "Qayta qayd qilish"
|
||||||
|
_deck:
|
||||||
|
alwaysShowMainColumn: "Har doim asosiy ustunni ko'rsatish"
|
||||||
|
columnAlign: "Ustunlarni tekislash"
|
||||||
|
addColumn: "Ustun qo'shish"
|
||||||
|
configureColumn: "Ustun sozlamalari"
|
||||||
|
swapLeft: "Chapdagi ustun bilan joyni almashtirish"
|
||||||
|
swapRight: "O'ngdagi ustun bilan joyni almashtirish"
|
||||||
|
swapUp: "Yuqoridagi ustun bilan joyni almashtirish"
|
||||||
|
swapDown: "Quyidagi ustun bilan joyni almashtirish"
|
||||||
|
profile: "Profil"
|
||||||
|
newProfile: "Yangi profil"
|
||||||
|
deleteProfile: "Profilni o‘chirib tashlash"
|
||||||
|
_columns:
|
||||||
|
main: "Asosiy"
|
||||||
|
notifications: "Xabarnomalar"
|
||||||
|
tl: "Xronologiya"
|
||||||
|
antenna: "Antennalar"
|
||||||
|
list: "Ro‘yxat"
|
||||||
|
channel: "Kanal"
|
||||||
|
mentions: "Eslatib o'tish"
|
||||||
|
direct: "Bevosita qaydlar"
|
||||||
|
roleTimeline: "Rol xronologiyasi"
|
||||||
|
_webhookSettings:
|
||||||
|
name: "Ism"
|
||||||
|
active: "Yoqilgan"
|
||||||
|
_events:
|
||||||
|
renote: "Qayta qayd qilinganda"
|
||||||
|
mention: "Eslanganda"
|
|
@ -1091,6 +1091,9 @@ usedAt: "使用时间"
|
||||||
unused: "未使用"
|
unused: "未使用"
|
||||||
used: "已使用"
|
used: "已使用"
|
||||||
expired: "已过期"
|
expired: "已过期"
|
||||||
|
doYouAgree: "你同意吗?"
|
||||||
|
beSureToReadThisAsItIsImportant: "请好好阅读,这真的很重要。"
|
||||||
|
iHaveReadXCarefullyAndAgree: "我已经仔细阅读并同意了「{x}」的内容。"
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "账户创建完成了!"
|
accountCreated: "账户创建完成了!"
|
||||||
letsStartAccountSetup: "来进行帐户的初始设置吧。"
|
letsStartAccountSetup: "来进行帐户的初始设置吧。"
|
||||||
|
|
|
@ -95,7 +95,7 @@ export class ApAudienceService {
|
||||||
private isPublic(id: string): boolean {
|
private isPublic(id: string): boolean {
|
||||||
return [
|
return [
|
||||||
'https://www.w3.org/ns/activitystreams#Public',
|
'https://www.w3.org/ns/activitystreams#Public',
|
||||||
'as#Public',
|
'as:Public',
|
||||||
'Public',
|
'Public',
|
||||||
].includes(id);
|
].includes(id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
}
|
}
|
||||||
|
|
||||||
query.limit(ps.limit);
|
query.limit(ps.limit);
|
||||||
query.skip(ps.offset);
|
query.offset(ps.offset);
|
||||||
|
|
||||||
const tickets = await query.getMany();
|
const tickets = await query.getMany();
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
}
|
}
|
||||||
|
|
||||||
query.limit(ps.limit);
|
query.limit(ps.limit);
|
||||||
query.skip(ps.offset);
|
query.offset(ps.offset);
|
||||||
|
|
||||||
const users = await query.getMany();
|
const users = await query.getMany();
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
query.andWhere('instance.host like :host', { host: '%' + sqlLikeEscape(ps.host.toLowerCase()) + '%' });
|
query.andWhere('instance.host like :host', { host: '%' + sqlLikeEscape(ps.host.toLowerCase()) + '%' });
|
||||||
}
|
}
|
||||||
|
|
||||||
const instances = await query.limit(ps.limit).skip(ps.offset).getMany();
|
const instances = await query.limit(ps.limit).offset(ps.offset).getMany();
|
||||||
|
|
||||||
return await this.instanceEntityService.packMany(instances);
|
return await this.instanceEntityService.packMany(instances);
|
||||||
});
|
});
|
||||||
|
|
|
@ -42,7 +42,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
.orderBy('tag.count', 'DESC')
|
.orderBy('tag.count', 'DESC')
|
||||||
.groupBy('tag.id')
|
.groupBy('tag.id')
|
||||||
.limit(ps.limit)
|
.limit(ps.limit)
|
||||||
.skip(ps.offset)
|
.offset(ps.offset)
|
||||||
.getMany();
|
.getMany();
|
||||||
|
|
||||||
return hashtags.map(tag => tag.name);
|
return hashtags.map(tag => tag.name);
|
||||||
|
|
|
@ -83,7 +83,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
const polls = await query
|
const polls = await query
|
||||||
.orderBy('poll.noteId', 'DESC')
|
.orderBy('poll.noteId', 'DESC')
|
||||||
.limit(ps.limit)
|
.limit(ps.limit)
|
||||||
.skip(ps.offset)
|
.offset(ps.offset)
|
||||||
.getMany();
|
.getMany();
|
||||||
|
|
||||||
if (polls.length === 0) return [];
|
if (polls.length === 0) return [];
|
||||||
|
|
|
@ -81,7 +81,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
if (me) this.queryService.generateBlockQueryForUsers(query, me);
|
if (me) this.queryService.generateBlockQueryForUsers(query, me);
|
||||||
|
|
||||||
query.limit(ps.limit);
|
query.limit(ps.limit);
|
||||||
query.skip(ps.offset);
|
query.offset(ps.offset);
|
||||||
|
|
||||||
const users = await query.getMany();
|
const users = await query.getMany();
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
|
|
||||||
query.setParameters(followingQuery.getParameters());
|
query.setParameters(followingQuery.getParameters());
|
||||||
|
|
||||||
const users = await query.limit(ps.limit).skip(ps.offset).getMany();
|
const users = await query.limit(ps.limit).offset(ps.offset).getMany();
|
||||||
|
|
||||||
return await this.userEntityService.packMany(users, me, { detail: true });
|
return await this.userEntityService.packMany(users, me, { detail: true });
|
||||||
});
|
});
|
||||||
|
|
|
@ -75,7 +75,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
users = await usernameQuery
|
users = await usernameQuery
|
||||||
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
||||||
.limit(ps.limit)
|
.limit(ps.limit)
|
||||||
.skip(ps.offset)
|
.offset(ps.offset)
|
||||||
.getMany();
|
.getMany();
|
||||||
} else {
|
} else {
|
||||||
const nameQuery = this.usersRepository.createQueryBuilder('user')
|
const nameQuery = this.usersRepository.createQueryBuilder('user')
|
||||||
|
@ -102,7 +102,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
users = await nameQuery
|
users = await nameQuery
|
||||||
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
||||||
.limit(ps.limit)
|
.limit(ps.limit)
|
||||||
.skip(ps.offset)
|
.offset(ps.offset)
|
||||||
.getMany();
|
.getMany();
|
||||||
|
|
||||||
if (users.length < ps.limit) {
|
if (users.length < ps.limit) {
|
||||||
|
@ -128,7 +128,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
users = users.concat(await query
|
users = users.concat(await query
|
||||||
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
|
||||||
.limit(ps.limit)
|
.limit(ps.limit)
|
||||||
.skip(ps.offset)
|
.offset(ps.offset)
|
||||||
.getMany(),
|
.getMany(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { dirname } from 'node:path';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { createBullBoard } from '@bull-board/api';
|
import { createBullBoard } from '@bull-board/api';
|
||||||
import { BullAdapter } from '@bull-board/api/bullAdapter.js';
|
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter.js';
|
||||||
import { FastifyAdapter } from '@bull-board/fastify';
|
import { FastifyAdapter } from '@bull-board/fastify';
|
||||||
import ms from 'ms';
|
import ms from 'ms';
|
||||||
import sharp from 'sharp';
|
import sharp from 'sharp';
|
||||||
|
@ -168,7 +168,7 @@ export class ClientServerService {
|
||||||
this.dbQueue,
|
this.dbQueue,
|
||||||
this.objectStorageQueue,
|
this.objectStorageQueue,
|
||||||
this.webhookDeliverQueue,
|
this.webhookDeliverQueue,
|
||||||
].map(q => new BullAdapter(q)),
|
].map(q => new BullMQAdapter(q)),
|
||||||
serverAdapter,
|
serverAdapter,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,12 @@ block og
|
||||||
meta(property='og:title' content= title)
|
meta(property='og:title' content= title)
|
||||||
meta(property='og:description' content= post.description)
|
meta(property='og:description' content= post.description)
|
||||||
meta(property='og:url' content= url)
|
meta(property='og:url' content= url)
|
||||||
meta(property='og:image' content= post.files[0].thumbnailUrl)
|
if post.isSensitive
|
||||||
meta(property='twitter:card' content='summary_large_image')
|
meta(property='og:image' content= avatarUrl)
|
||||||
|
meta(property='twitter:card' content='summary')
|
||||||
|
else
|
||||||
|
meta(property='og:image' content= post.files[0].thumbnailUrl)
|
||||||
|
meta(property='twitter:card' content='summary_large_image')
|
||||||
|
|
||||||
block meta
|
block meta
|
||||||
if user.host || profile.noCrawle
|
if user.host || profile.noCrawle
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div ref="root">
|
||||||
<XBanner v-for="media in mediaList.filter(media => !previewable(media))" :key="media.id" :media="media"/>
|
<XBanner v-for="media in mediaList.filter(media => !previewable(media))" :key="media.id" :media="media"/>
|
||||||
<div v-if="mediaList.filter(media => previewable(media)).length > 0" :class="$style.container">
|
<div v-if="mediaList.filter(media => previewable(media)).length > 0" :class="$style.container">
|
||||||
<div
|
<div
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, watch, shallowRef } from 'vue';
|
import { onMounted, shallowRef } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
||||||
import PhotoSwipe from 'photoswipe';
|
import PhotoSwipe from 'photoswipe';
|
||||||
|
@ -34,19 +34,26 @@ import XVideo from '@/components/MkMediaVideo.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { FILE_TYPE_BROWSERSAFE } from '@/const';
|
import { FILE_TYPE_BROWSERSAFE } from '@/const';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
import { getScrollContainer, getBodyScrollHeight } from '@/scripts/scroll';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
mediaList: misskey.entities.DriveFile[];
|
mediaList: misskey.entities.DriveFile[];
|
||||||
raw?: boolean;
|
raw?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const root = shallowRef<HTMLDivElement>();
|
||||||
|
const container = shallowRef<HTMLElement | null | undefined>(undefined);
|
||||||
const gallery = shallowRef<HTMLDivElement>();
|
const gallery = shallowRef<HTMLDivElement>();
|
||||||
const pswpZIndex = os.claimZIndex('middle');
|
const pswpZIndex = os.claimZIndex('middle');
|
||||||
document.documentElement.style.setProperty('--mk-pswp-root-z-index', pswpZIndex.toString());
|
document.documentElement.style.setProperty('--mk-pswp-root-z-index', pswpZIndex.toString());
|
||||||
const count = $computed(() => props.mediaList.filter(media => previewable(media)).length);
|
const count = $computed(() => props.mediaList.filter(media => previewable(media)).length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* アスペクト比をmediaListWithOneImageAppearanceに基づいていい感じに調整する
|
||||||
|
* aspect-ratioではなくheightを使う
|
||||||
|
*/
|
||||||
function calcAspectRatio() {
|
function calcAspectRatio() {
|
||||||
if (!gallery.value) return;
|
if (!gallery.value || !root.value) return;
|
||||||
|
|
||||||
let img = props.mediaList[0];
|
let img = props.mediaList[0];
|
||||||
|
|
||||||
|
@ -55,28 +62,46 @@ function calcAspectRatio() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// アスペクト比上限設定では、横長の場合は高さを縮小させる
|
const width = gallery.value.clientWidth;
|
||||||
const ratioMax = (ratio: number) => `${Math.max(ratio, img.properties.width / img.properties.height).toString()} / 1`;
|
|
||||||
|
const heightMin = (ratio: number) => {
|
||||||
|
const imgResizeRatio = width / img.properties.width;
|
||||||
|
const imgDrawHeight = img.properties.height * imgResizeRatio;
|
||||||
|
const maxHeight = width * ratio;
|
||||||
|
const height = Math.min(imgDrawHeight, maxHeight);
|
||||||
|
if (_DEV_) console.log('Image height calculated:', { width, properties: img.properties, imgResizeRatio, imgDrawHeight, maxHeight, height });
|
||||||
|
return `${height}px`;
|
||||||
|
};
|
||||||
|
|
||||||
switch (defaultStore.state.mediaListWithOneImageAppearance) {
|
switch (defaultStore.state.mediaListWithOneImageAppearance) {
|
||||||
case '16_9':
|
case '16_9':
|
||||||
gallery.value.style.aspectRatio = ratioMax(16 / 9);
|
gallery.value.style.height = heightMin(9 / 16);
|
||||||
break;
|
break;
|
||||||
case '1_1':
|
case '1_1':
|
||||||
gallery.value.style.aspectRatio = ratioMax(1);
|
gallery.value.style.height = heightMin(1);
|
||||||
break;
|
break;
|
||||||
case '2_3':
|
case '2_3':
|
||||||
gallery.value.style.aspectRatio = ratioMax(2 / 3);
|
gallery.value.style.height = heightMin(3 / 2);
|
||||||
break;
|
break;
|
||||||
default:
|
default: {
|
||||||
gallery.value.style.aspectRatio = '';
|
if (!container.value) container.value = getScrollContainer(root.value);
|
||||||
|
const maxHeight = Math.max(64, (container.value ? container.value.clientHeight : getBodyScrollHeight()) * 0.5 || 360);
|
||||||
|
if (width === 0 || !maxHeight) return;
|
||||||
|
const imgResizeRatio = width / img.properties.width;
|
||||||
|
const imgDrawHeight = img.properties.height * imgResizeRatio;
|
||||||
|
gallery.value.style.height = `${Math.max(64, Math.min(imgDrawHeight, maxHeight))}px`;
|
||||||
|
gallery.value.style.minHeight = 'initial';
|
||||||
|
gallery.value.style.maxHeight = 'initial';
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gallery.value.style.aspectRatio = 'initial';
|
||||||
}
|
}
|
||||||
|
|
||||||
watch([defaultStore.reactiveState.mediaListWithOneImageAppearance, gallery], () => calcAspectRatio());
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
calcAspectRatio();
|
||||||
|
|
||||||
const lightbox = new PhotoSwipeLightbox({
|
const lightbox = new PhotoSwipeLightbox({
|
||||||
dataSource: props.mediaList
|
dataSource: props.mediaList
|
||||||
.filter(media => {
|
.filter(media => {
|
||||||
|
@ -203,7 +228,7 @@ const previewable = (file: misskey.entities.DriveFile): boolean => {
|
||||||
&.n1 {
|
&.n1 {
|
||||||
grid-template-rows: 1fr;
|
grid-template-rows: 1fr;
|
||||||
|
|
||||||
// default (expand)
|
// default but fallback (expand)
|
||||||
min-height: 64px;
|
min-height: 64px;
|
||||||
max-height: clamp(
|
max-height: clamp(
|
||||||
64px,
|
64px,
|
||||||
|
@ -212,20 +237,20 @@ const previewable = (file: misskey.entities.DriveFile): boolean => {
|
||||||
);
|
);
|
||||||
|
|
||||||
&.n116_9 {
|
&.n116_9 {
|
||||||
min-height: none;
|
min-height: initial;
|
||||||
max-height: none;
|
max-height: initial;
|
||||||
aspect-ratio: 16 / 9; // fallback
|
aspect-ratio: 16 / 9; // fallback
|
||||||
}
|
}
|
||||||
|
|
||||||
&.n11_1{
|
&.n11_1{
|
||||||
min-height: none;
|
min-height: initial;
|
||||||
max-height: none;
|
max-height: initial;
|
||||||
aspect-ratio: 1 / 1; // fallback
|
aspect-ratio: 1 / 1; // fallback
|
||||||
}
|
}
|
||||||
|
|
||||||
&.n12_3 {
|
&.n12_3 {
|
||||||
min-height: none;
|
min-height: initial;
|
||||||
max-height: none;
|
max-height: initial;
|
||||||
aspect-ratio: 2 / 3; // fallback
|
aspect-ratio: 2 / 3; // fallback
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -540,7 +540,7 @@ function onCompositionEnd(ev: CompositionEvent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function onPaste(ev: ClipboardEvent) {
|
async function onPaste(ev: ClipboardEvent) {
|
||||||
for (const { item, i } of Array.from(ev.clipboardData.items).map((item, i) => ({ item, i }))) {
|
for (const { item, i } of Array.from(ev.clipboardData.items, (item, i) => ({ item, i }))) {
|
||||||
if (item.kind === 'file') {
|
if (item.kind === 'file') {
|
||||||
const file = item.getAsFile();
|
const file = item.getAsFile();
|
||||||
const lio = file.name.lastIndexOf('.');
|
const lio = file.name.lastIndexOf('.');
|
||||||
|
|
|
@ -16,8 +16,8 @@ import tinycolor from 'tinycolor2';
|
||||||
const loaded = !!window.TagCanvas;
|
const loaded = !!window.TagCanvas;
|
||||||
const SAFE_FOR_HTML_ID = 'abcdefghijklmnopqrstuvwxyz';
|
const SAFE_FOR_HTML_ID = 'abcdefghijklmnopqrstuvwxyz';
|
||||||
const computedStyle = getComputedStyle(document.documentElement);
|
const computedStyle = getComputedStyle(document.documentElement);
|
||||||
const idForCanvas = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
const idForCanvas = Array.from({ length: 16 }, () => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
||||||
const idForTags = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
const idForTags = Array.from({ length: 16 }, () => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
||||||
let available = $ref(false);
|
let available = $ref(false);
|
||||||
let rootEl = $shallowRef<HTMLElement | null>(null);
|
let rootEl = $shallowRef<HTMLElement | null>(null);
|
||||||
let canvasEl = $shallowRef<HTMLCanvasElement | null>(null);
|
let canvasEl = $shallowRef<HTMLCanvasElement | null>(null);
|
||||||
|
|
|
@ -258,6 +258,7 @@ watch([
|
||||||
showGapBetweenNotesInTimeline,
|
showGapBetweenNotesInTimeline,
|
||||||
instanceTicker,
|
instanceTicker,
|
||||||
overridedDeviceKind,
|
overridedDeviceKind,
|
||||||
|
mediaListWithOneImageAppearance,
|
||||||
], async () => {
|
], async () => {
|
||||||
await reloadAsk();
|
await reloadAsk();
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,7 +2,7 @@ const twemojiSvgBase = '/twemoji';
|
||||||
const fluentEmojiPngBase = '/fluent-emoji';
|
const fluentEmojiPngBase = '/fluent-emoji';
|
||||||
|
|
||||||
export function char2twemojiFilePath(char: string): string {
|
export function char2twemojiFilePath(char: string): string {
|
||||||
let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16));
|
let codes = Array.from(char, x => x.codePointAt(0)?.toString(16));
|
||||||
if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f');
|
if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f');
|
||||||
codes = codes.filter(x => x && x.length);
|
codes = codes.filter(x => x && x.length);
|
||||||
const fileName = codes.join('-');
|
const fileName = codes.join('-');
|
||||||
|
@ -10,7 +10,7 @@ export function char2twemojiFilePath(char: string): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function char2fluentEmojiFilePath(char: string): string {
|
export function char2fluentEmojiFilePath(char: string): string {
|
||||||
let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16));
|
let codes = Array.from(char, x => x.codePointAt(0)?.toString(16));
|
||||||
// Fluent Emojiは国旗非対応 https://github.com/microsoft/fluentui-emoji/issues/25
|
// Fluent Emojiは国旗非対応 https://github.com/microsoft/fluentui-emoji/issues/25
|
||||||
if (codes[0]?.startsWith('1f1')) return char2twemojiFilePath(char);
|
if (codes[0]?.startsWith('1f1')) return char2twemojiFilePath(char);
|
||||||
if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f');
|
if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f');
|
||||||
|
|
|
@ -12,7 +12,8 @@ export function chooseFileFromPc(multiple: boolean, keepOriginal = false): Promi
|
||||||
input.type = 'file';
|
input.type = 'file';
|
||||||
input.multiple = multiple;
|
input.multiple = multiple;
|
||||||
input.onchange = () => {
|
input.onchange = () => {
|
||||||
const promises = Array.from(input.files).map(file => uploadFile(file, defaultStore.state.uploadFolder, undefined, keepOriginal));
|
if (!input.files) return res([]);
|
||||||
|
const promises = Array.from(input.files, file => uploadFile(file, defaultStore.state.uploadFolder, undefined, keepOriginal));
|
||||||
|
|
||||||
Promise.all(promises).then(driveFiles => {
|
Promise.all(promises).then(driveFiles => {
|
||||||
res(driveFiles);
|
res(driveFiles);
|
||||||
|
|
|
@ -6,11 +6,13 @@
|
||||||
--marginHalf: 10px;
|
--marginHalf: 10px;
|
||||||
|
|
||||||
--margin: var(--marginFull);
|
--margin: var(--marginFull);
|
||||||
--minBottomSpacing: 0px;
|
|
||||||
|
// switch dynamically
|
||||||
|
--minBottomSpacingMobile: calc(72px + max(12px, env(safe-area-inset-bottom, 0px)));
|
||||||
|
--minBottomSpacing: var(--minBottomSpacingMobile);
|
||||||
|
|
||||||
@media (max-width: 500px) {
|
@media (max-width: 500px) {
|
||||||
--margin: var(--marginHalf);
|
--margin: var(--marginHalf);
|
||||||
--minBottomSpacing: calc(72px + max(12px, env(safe-area-inset-bottom, 0px)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--ad: rgb(255 169 0 / 10%);
|
//--ad: rgb(255 169 0 / 10%);
|
||||||
|
|
|
@ -207,9 +207,11 @@ watch($$(navFooter), () => {
|
||||||
if (navFooter) {
|
if (navFooter) {
|
||||||
navFooterHeight = navFooter.offsetHeight;
|
navFooterHeight = navFooter.offsetHeight;
|
||||||
document.body.style.setProperty('--stickyBottom', `${navFooterHeight}px`);
|
document.body.style.setProperty('--stickyBottom', `${navFooterHeight}px`);
|
||||||
|
document.body.style.setProperty('--minBottomSpacing', 'var(--minBottomSpacingMobile)');
|
||||||
} else {
|
} else {
|
||||||
navFooterHeight = 0;
|
navFooterHeight = 0;
|
||||||
document.body.style.setProperty('--stickyBottom', '0px');
|
document.body.style.setProperty('--stickyBottom', '0px');
|
||||||
|
document.body.style.setProperty('--minBottomSpacing', '0px');
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
|
Loading…
Reference in New Issue