diff --git a/.mocharc.json b/.mocharc.json index fc7fee215..278a5b310 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -2,6 +2,6 @@ "extension": ["ts","js","cjs","mjs"], "require": ["ts-node/register", "tsconfig-paths/register"], "slow": 1000, - "timeout": 30000, + "timeout": 35000, "exit": true } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6926ed918..6dc2e5e22 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,12 +28,7 @@ If your language is not listed in Crowdin, please open an issue. ![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg) -## Internationalization (i18n) -Misskey uses the Vue.js plugin [Vue I18n](https://github.com/kazupon/vue-i18n). -Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/introduction.html . - ## Documentation -* Documents for contributors are located in [`/docs`](/docs). * Documents for instance admins are located in [`/docs`](/docs). * Documents for end users are located in [`/src/docs`](/src/docs). @@ -41,8 +36,8 @@ Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/intr * Test codes are located in [`/test`](/test). ## Continuous integration -Misskey uses CircleCI for executing automated tests. -Configuration files are located in [`/.circleci`](/.circleci). +Misskey uses GitHub Actions for executing automated tests. +Configuration files are located in [`/.github/workflows`](/.github/workflows). ## Adding MisskeyRoom items * Use English for material, object and texture names. diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 9c20ea752..6b1f53cae 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -385,7 +385,6 @@ updateRemoteUser: "تحديث المعلومات عن المستخدم البع deleteAllFiles: "حذف كافة الملفات" userSuspended: "تم تعليق هذا المستخدم." userSilenced: "تم إسكات هذا المستخدم." -sidebar: "الشريط الجانبي" addItem: "إضافة عنصر" rooms: "الغرفة" relays: "المُرَحلات" @@ -430,6 +429,7 @@ user: "المستخدمون" administration: "إدارة " expiration: "ينتهي استطلاع الرأي في" middle: "متوسط" +global: "الشامل" _email: _follow: title: "يتابعك" @@ -442,9 +442,7 @@ _reversi: total: "المجموع" _channel: featured: "المتداوَلة" -_sidebar: - full: "كامل" - icon: "الصورة الرمزية" +_menuDisplay: hide: "إخفاء" _theme: explore: "استكشف قوالب المظهر" diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index 995d8eccd..958323525 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -390,7 +390,6 @@ script: "Skript" deleteAllFiles: "Smazat všechny soubory" deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?" userSuspended: "Tomuto uživateli byl pozastaven účet." -sidebar: "Postranní panel" addItem: "Přidat položku" rooms: "Místnost" inboxUrl: "Inbox URL" @@ -409,8 +408,6 @@ _mfm: search: "Vyhledávání" _reversi: total: "Celkem" -_sidebar: - icon: "Avatar" _theme: keys: mention: "Zmínění" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index d08858a33..751290441 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -528,7 +528,7 @@ removeAllFollowing: "Allen gefolgten Benutzern entfolgen" removeAllFollowingDescription: "Allen Benutzerkonten von {host} entfolgen. Bitte führe dies durch, falls diese Instanz nicht mehr existiert." userSuspended: "Dieser Benutzer wurde gesperrt." userSilenced: "Dieser Benutzer wurde instanzweit stummgeschaltet." -sidebar: "Seitenleiste" +menu: "Menü" divider: "Trenner" addItem: "Element hinzufügen" rooms: "Raum" @@ -761,6 +761,10 @@ middle: "Mittel" low: "Niedrig" emailNotConfiguredWarning: "Keine Email-Adresse hinterlegt" ratio: "Verhältnis" +customCss: "Benutzerdefiniertes CSS" +customCssWarn: "Verwende diese Einstellung nur, wenn du weißt, was sie tut. Ungültige Eingaben können dazu führen, dass der Client nicht mehr normal funktioniert." +global: "Global" +squareAvatars: "Profilbilder quadratisch anzeigen" _ad: back: "Zurück" reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen" @@ -910,9 +914,10 @@ _channel: following: "Gefolgt" usersCount: "{n} Teilnehmer" notesCount: "{n} Notizen" -_sidebar: - full: "Voll" - icon: "Symbole" +_menuDisplay: + sideFull: "Horizontal" + sideIcon: "Horizontal (Icons)" + top: "Oben" hide: "Ausblenden" _wordMute: muteWords: "Wort stummschalten" diff --git a/locales/en-US.yml b/locales/en-US.yml index d08f403b9..f9d604796 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -528,7 +528,7 @@ removeAllFollowing: "Withhold All Followings" removeAllFollowingDescription: "Unfollow all accounts from {host}. Please run this if the instance no longer exists." userSuspended: "This user has been suspended." userSilenced: "This user has been silenced." -sidebar: "Sidebar" +menu: "Menu" divider: "Divider" addItem: "Add Item" rooms: "Room" @@ -761,6 +761,10 @@ middle: "Medium" low: "Low" emailNotConfiguredWarning: "Email address not set" ratio: "Ratio" +customCss: "Custom CSS" +customCssWarn: "This setting should only be used if you know what it does. Entering improper values may cause the client to stop functioning normally." +global: "Global" +squareAvatars: "Display squared avatars" _ad: back: "Back" reduceFrequencyOfThisAd: "Show this ad less" @@ -910,9 +914,10 @@ _channel: following: "Followed" usersCount: "{n} Participants" notesCount: "{n} Notes" -_sidebar: - full: "Full" - icon: "Icons" +_menuDisplay: + sideFull: "Horizontal" + sideIcon: "Horizontal (Icons)" + top: "Top" hide: "Hide" _wordMute: muteWords: "Word to mute" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml new file mode 100644 index 000000000..e87afb4b2 --- /dev/null +++ b/locales/eo-UY.yml @@ -0,0 +1,337 @@ +--- +_lang_: "Esperanto" +headlineMisskey: "Reto ligiĝas per notoj" +introMisskey: "Bonvenon! Miskejo estas malferma kodaの分散型マイクロブログサービスです。\nBonvolu Krei「noto」、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「 reaktigoj 」機能で、皆のnotojに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀" +monthAndDay: "{day}-a/{month}" +search: "Serĉi" +notifications: "Sciigoj" +username: "Uzantonomo" +password: "Pasvorto" +forgotPassword: "Ĉu vi forgesis pasvorton?" +fetchingAsApObject: "Informpetado de fediverso..." +ok: "Okej" +gotIt: "Mi konprenas!" +cancel: "Nuligi" +enterUsername: "Entajpu uzantonomon" +renotedBy: "Renotigojn faras {user}" +noNotes: "Neniu noto!" +noNotifications: "Vi ne havas sciigojn." +instance: "Ekzemplo" +settings: "Agordoj" +basicSettings: "Ĝeneralaj agordoj" +otherSettings: "Aliaj agordoj" +openInWindow: "Malfermi en nova fenestro" +profile: "Profilo" +timeline: "Tempolinio" +login: "Ensaluti" +loggingIn: "Ensalutado..." +logout: "Elsaluti" +signup: "Krei konton" +uploading: "Alŝutado..." +save: "Konservi" +users: "Uzanto" +addUser: "Aldoni uzanton" +favorite: "Preferi" +favorites: "Preferataj" +unfavorite: "Malpreferi" +favorited: "Aldonita al preferatoj" +alreadyFavorited: "Jame aldonita al preferatoj" +cantFavorite: "Ne aldonita al preferatoj" +pin: "Alpingli sur la profilo" +unpin: "Depingli" +copyContent: "Kopii enhavon" +copyLink: "Kopii ligilon" +delete: "Forviŝi" +deleteAndEdit: "Forviŝi kaj redakti" +deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forviŝi la noton? La reaktigoj, renotigoj, kaj respondoj ankaŭ forigiĝos." +addToList: "Aldoni al listo" +sendMessage: "Sendi mesaĝon" +copyUsername: "Kopii uzantonomon" +searchUser: "Serĉi uzanton" +reply: "Respondi" +loadMore: "Vidu plu" +showMore: "Vidi plu" +youGotNewFollower: "Vi estas eksekvita." +mention: "Mencioj" +mentions: "Mencioj" +directNotes: "Senperaj notoj" +importAndExport: "Importaĵo / Eksportaĵo" +import: "Importi" +export: "Eksporti" +files: "Dosieroj" +download: "Elŝuti" +driveFileDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la dosieron \"{name}\"? La notoj kun la aldonaĵo ankaŭ forviŝiĝos." +unfollowConfirm: "Ĉu vi certas, ke vi volas ne plu sekvi {name}?" +lists: "Listoj" +noLists: "Neniu listo" +note: "Elsendi noto" +notes: "Notoj" +following: "Sekvi" +followers: "Sekvantoj" +followsYou: "Sekvas vin" +createList: "Kreii liston" +error: "Eraro" +somethingHappened: "Problemo okazis." +retry: "Reprovi" +enterListName: "Entajpu nomon de la listo" +privacy: "Privateco" +follow: "Sekvi" +followRequest: "Peti eksekvi" +followRequests: "Eksekvopetoj" +unfollow: "Ne plu sekvi" +renote: "Renotici" +unrenote: "Forigi renotici" +cantRenote: "Tiu noto estas renototebla." +cantReRenote: "Renotigo ne estas renotigebla." +quote: "Citi" +pinnedNote: "Pinglita noto" +pinned: "Alpingli sur la profilo" +you: "Vi" +clickToShow: "Klaku por malkaŝu" +sensitive: "Enhavo ne estas deca por laborejo (NSFW)" +add: "Aldoni" +reaction: "Reagoj" +enterFileName: "Entajpu dosiernomon" +mute: "Silentigi" +unmute: "Malsilentigi" +block: "Bloki" +unblock: "Malbloki" +suspend: "Flostigi" +unsuspend: "Fandi" +blockConfirm: "Ĉu vi certas ke vi volas bloki la uzanton?" +unblockConfirm: "Ĉu vi certas ke vi volas malbloki la uzanton?" +suspendConfirm: "Ĉu vi certas ke vi volas frostigi la uzanton?" +unsuspendConfirm: "Ĉu vi certas ke vi volas fandi la uzanton?" +selectList: "Elekti liston" +emojiUrl: "Retadreso de la emoĵio" +flagAsBot: "Tiu uzanto estas roboto" +flagAsCat: "Tiu uzanto estas kato" +addAccount: "Aldoni konton" +showOnRemote: "Vidi sur la transa ekzemplo" +general: "Ĝenerala" +searchWith: "Serĉi: {q}" +youHaveNoLists: "Vi ne havas listojn." +followConfirm: "Ĉu vi certas, ke vi volas sekvi {name}'n?" +selectUser: "Elekti uzanton" +annotation: "Komentarioj" +federation: "Fediverso" +instances: "Ekzemplo" +blockThisInstance: "Bloki tiu ekzemplo" +disk: "Diskilo" +blockedInstances: "Blokitaj ekzemploj" +muteAndBlock: "Silentitaj / Blokitaj" +mutedUsers: "Silentigitaj uzantoj" +blockedUsers: "Blokitaj uzantoj" +noUsers: "Sen uzantoj" +editProfile: "Redakti profilon" +noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?" +pinLimitExceeded: "Vi ne plu povas alpingli noton." +noCustomEmojis: "Neniu emoĵio" +federating: "Konfederado" +blocked: "Blokita" +subscribing: "Abonita" +notResponding: "Alvokato ne disponeblas" +instanceFollowing: "Sekvi ekzemplon" +instanceFollowers: "Sekvantoj de la ekzemplo" +instanceUsers: "Uzantoj de la ekzemplo" +changePassword: "Ŝanĝi pasvorton" +currentPassword: "Aktuala pasvorto" +newPassword: "Nova pasvorto" +newPasswordRetype: "Reentajpu la novan pasvorton" +attachFile: "Aldoni dosieron" +more: "Plu!" +usernameOrUserId: "Uzantonomo aŭ ID de uzanto" +noSuchUser: "Neniuj uzantoj trovitaj." +remove: "Forviŝi" +removed: "Forviŝis" +removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"?" +deleteAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"?" +messaging: "Babilejoj" +upload: "Alŝuti" +fromDrive: "De la diskilo" +fromUrl: "De retadreso" +uploadFromUrl: "Aldoni de retadreso" +uploadFromUrlDescription: "Retadreso de la dosiero kiun vi volu alŝuti" +games: "Ludoj sur Miskejo" +messageRead: "Legita" +startMessaging: "Komenci babiladon" +tos: "Kondiĉoj de Uzado" +start: "Komenciĝi" +home: "Ĉefpaĝo" +drive: "Diskilo" +fileName: "Dosiernomo" +selectFile: "Elekti dosieron" +selectFiles: "Elekti dosieron" +renameFile: "Renomigi dosieron" +deleteFolder: "Forviŝi dosierujon" +addFile: "Aldoni dosieron" +emptyDrive: "La diskilo enhavas neniun." +unableToDelete: "Ne forigebla" +inputNewFileName: "Entajpu nova dosiernomon" +hasChildFilesOrFolders: "La dosierujo estas neforviŝebla pro tio, ke ĝi enhavas dosieron." +copyUrl: "Kopii retadreson" +nsfw: "Enhavo ne estas deca por laborejo (NSFW)" +instanceName: "Nomo de la ekzemplo" +connectService: "Konekti" +disconnectService: "Farkonektiĝi" +driveCapacityPerLocalAccount: "Volumo po unu loka-uzanto" +driveCapacityPerRemoteAccount: "Volumo po unu transa uzanto" +pinnedUsers: "Alpinglita uzanto" +pinnedNotes: "Pinglita noto" +withFileAntenna: "Nur kun aldonaĵo" +notesAndReplies: "Kun respondoj" +withFiles: "Kun aldonaĵo" +silenceConfirm: "Ĉu vi certas ke vi volas silentigi la uzanton?" +unsilenceConfirm: "Ĉu vi certas ke vi volas malsilentigi la uzanton?" +userList: "Listoj" +aboutMisskey: "Pri Miskejo" +passwordLessLogin: "Ensaluti sen pasvorto" +resetPassword: "Restarigi pasvorton" +newPasswordIs: "La nova pasvorto estas {password}." +inputMessageHere: "Entajpu masaĝo tie ĉi" +noteOf: "Noto de {user}" +newMessageExists: "Vi ricevis novan mesaĝon." +onlyOneFileCanBeAttached: "Vi povas aldoni nur unu dosieron po unu mesaĝo." +uiLanguage: "Lingvo de la interfaco" +noFollowRequests: "Vi ne havas eksekvopetojn." +local: "Loka" +remote: "Transa" +hideThisNote: "Kaŝi tiun noton" +deleteAllFiles: "Forvisi ĉiujn dosierojn" +deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn viajn dosierojn?" +invisibleNote: "Malpublika noto" +emailServer: "Retpoŝta servilo" +email: "Retpoŝto" +emailAddress: "Retpoŝtadreso" +smtpUser: "Uzantonomo" +smtpPass: "Pasvorto" +userSaysSomething: "{name} parolis ion" +database: "Datumbazo" +channel: "Kanalo" +fileIdOrUrl: "Dosirero ID aŭ retadreso" +send: "Sendi" +i18nInfo: "Tradukojn de Misskey en diversaj lingvoj faras volontuloj. Vi povus kunlabori en tradukado sur {link}, se vi volus." +driveFilesCount: "Numero de dosieroj en la diskilo" +onlineUsersCount: "{n} uzanto(j) estas surkonektita" +nUsers: "{n} uzanto(j)" +emailNotification: "Sciigoj per retpoŝto" +publish: "Publikigi" +inChannelSearch: "Serĉi en kanalo" +typingUsers: "{users} estas entajpanta(j)..." +online: "Surkonektita" +offline: "Forkonektita" +instanceBlocking: "Ekzempla blokado" +user: "Uzanto" +_gallery: + liked: "Ŝatitaj notoj" +_email: + _follow: + title: "Vi estas eksekvita." + _receiveFollowRequest: + title: "Vi ricevis eksekvopeton." +_aboutMisskey: + about: "Misskey estas malferma koda programo evoluigata far syuilo ekde la 2014." + source: "Fontkodo" + translation: "Traduki Misskey'on" +_mfm: + mention: "Mencioj" + url: "Retadreso" + blockCode: "Kodo (Ujo)" + blockMath: "Formulo (Ujo)" + quote: "Citi" + search: "Serĉi" +_instanceTicker: + none: "Ne montri" + remote: "Montri al transaj uzantoj" +_channel: + create: "Krei kanalon" + edit: "Redakti kanalon" + following: "Sekvaton" +_theme: + keys: + mention: "Mencioj" + renote: "Renotici" +_sfx: + note: "Nova noto" + notification: "Sciigoj" + chat: "Babilejoj" + channel: "Kanala sciigoj" +_tutorial: + title: "Uzado de Miskejo" +_permissions: + "read:blocks": "Vidi la listo de la uzantoj kiun vi blokis." + "read:drive": "Vidi dosierojn en la diskilo" + "read:channels": "Legi kanalon" +_widgets: + notifications: "Sciigoj" + timeline: "Tempolinio" + federation: "Fediverso" + onlineUsers: "Surkonektita uzanto" +_cw: + show: "Vidu plu" + files: "{count} dosiero(j)" +_visibility: + publicDescription: "Via noto aperiĝos sur konfederacia tempolinio" + home: "Ĉefpaĝo" + homeDescription: "Elsendi nur sur hejma tempolinio" + followers: "Sekvantoj" + followersDescription: "Elsendi nur al sekvantoj de mi" + localOnly: "Nur loka" + localOnlyDescription: "Nelegabla al transaj uzantoj" +_postForm: + channelPlaceholder: "Elsendi sur la kanalo" +_profile: + username: "Uzantonomo" +_exportOrImport: + followingList: "Sekvi" + muteList: "Silentigi" + blockingList: "Blokado" + userLists: "Listoj" +_timelines: + home: "Hejmo" + local: "Loka" + social: "Hejmo kaj loka" +_rooms: + _furnitures: + server: "Servilo" +_pages: + content: "Blokado de paĝo" + url: "Retadreso de la paĝo" + chooseBlock: "Aldoni blokado" + script: + categories: + list: "Listoj" + blocks: + _join: + arg1: "Listoj" + _randomPick: + arg1: "Listoj" + _dailyRandomPick: + arg1: "Listoj" + _seedRandomPick: + arg2: "Listoj" + pick: "Elekti de la listo" + _pick: + arg1: "Listoj" + _listLen: + arg1: "Listoj" + types: + array: "Listoj" +_notification: + fileUploaded: "La dosiero sukcese alŝutiĝis." + youWereFollowed: "Vi estas eksekvita." + youReceivedFollowRequest: "Vi ricevis eksekvopeton." + yourFollowRequestAccepted: "Via eksekvopeto estas akceptita." + _types: + follow: "Sekvi" + mention: "Mencioj" + renote: "Renotici" + quote: "Citi" + reaction: "Reagoj" + receiveFollowRequest: "Eksekvopeto ricevita" +_deck: + _columns: + notifications: "Sciigoj" + tl: "Tempolinio" + list: "Listoj" + mentions: "Mencioj" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 89e170678..81baa9b37 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -523,7 +523,6 @@ removeAllFollowing: "Retener todos los siguientes" removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir" userSuspended: "Este usuario ha sido suspendido." userSilenced: "Este usuario ha sido silenciado." -sidebar: "Barra lateral" divider: "Divisor" addItem: "Agregar elemento" rooms: "Cuartos" @@ -665,6 +664,7 @@ user: "Usuarios" administration: "Administrar" expiration: "Termina el" middle: "Mediano" +global: "Global" _ad: back: "Deseleccionar" _gallery: @@ -744,9 +744,7 @@ _channel: following: "Siguiendo" usersCount: "{n} participantes" notesCount: "{n} notas" -_sidebar: - full: "Completo" - icon: "Avatar" +_menuDisplay: hide: "Ocultar" _wordMute: muteWords: "Palabras que silenciar" diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 161b4553a..1ebe492b8 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -326,6 +326,7 @@ driveCapacityPerRemoteAccount: "Volume du Drive par utilisateur distant" inMb: "en mégaoctets" iconUrl: "URL de l'icône" bannerUrl: "URL de l’image de la bannière" +backgroundImageUrl: "URL de l'image d'arrière-plan" basicInfo: "Informations basiques" pinnedUsers: "Utilisateur·rice épinglé·e" pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne." @@ -527,7 +528,6 @@ removeAllFollowing: "Retenir tous les abonnements" removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action uniquement si l’instance n’existe plus." userSuspended: "Cet·te utilisateur·rice a été suspendu·e." userSilenced: "Cette utilisateur·trice a été mis·e en sourdine." -sidebar: "Barre latérale" divider: "Séparateur" addItem: "Ajouter un élément" rooms: "Chambre" @@ -760,6 +760,7 @@ middle: "Moyen" low: "Basse" emailNotConfiguredWarning: "Vous n'avez pas configuré d'adresse e-mail." ratio: "Ratio" +global: "Global" _ad: back: "Retour" reduceFrequencyOfThisAd: "Voir cette publicité moins souvent" @@ -909,9 +910,7 @@ _channel: following: "Abonné·e" usersCount: "{n} Participant·e·s" notesCount: "{n} Notes" -_sidebar: - full: "Complet" - icon: "Icônes" +_menuDisplay: hide: "Masquer" _wordMute: muteWords: "Mots à filtrer" diff --git a/locales/id-ID.yml b/locales/id-ID.yml index ed1ac1412..7b5cd6b86 100644 --- a/locales/id-ID.yml +++ b/locales/id-ID.yml @@ -1,10 +1,10 @@ --- _lang_: "Bahasa Indonesia" -headlineMisskey: "Jaringan terhubung melalui note" +headlineMisskey: "Jaringan terhubung melalui catatan" introMisskey: "Selamat datang! Misskey adalah perangkat mikroblog tercatu bersifat sumber terbuka.\nMulailah menuliskan catatan, bagikan peristiwa terkini, serta ceritakan segala tentangmu.📡\nTunjukkan juga reaksimu pada catatan pengguna lain.👍\nMari jelajahi dunia baru🚀" monthAndDay: "{day} {month}" -search: "Pencarian" -notifications: "Notifikasi" +search: "Penelusuran" +notifications: "Pemberitahuan" username: "Nama Pengguna" password: "Kata sandi" forgotPassword: "Lupa Kata Sandi" @@ -14,8 +14,8 @@ gotIt: "Saya mengerti" cancel: "Batalkan" enterUsername: "Masukkan nama pengguna" renotedBy: "direnote oleh {user}" -noNotes: "Tidak ada notes" -noNotifications: "Tidak ada notifikasi" +noNotes: "Tidak ada catatan" +noNotifications: "Tidak ada pemberitahuan" instance: "Instansi" settings: "Pengaturan" basicSettings: "Pengaturan umum" @@ -52,25 +52,25 @@ searchUser: "Cari pengguna" reply: "Balas" loadMore: "Selebihnya" showMore: "Selebihnya" -youGotNewFollower: "Sedang mengikuti" -receiveFollowRequest: "Permintaan mengikuti terkirim" -followRequestAccepted: "Permintaan diikuti telah diterima" -mention: "Sebutan" +youGotNewFollower: "Mengikuti kamu" +receiveFollowRequest: "Ingin mengikuti kamu" +followRequestAccepted: "Permintaan mengikuti telah disetujui" +mention: "Sebut" mentions: "Sebutan" -directNotes: "Note langsung" +directNotes: "Catatan langsung" importAndExport: "Impor & Ekspor" import: "Impor" export: "Ekspor" files: "Berkas" download: "Unduh" -driveFileDeleteConfirm: "Hapus {name}? Note dengan berkas terkait juga akan terhapus." +driveFileDeleteConfirm: "Hapus {name}? Catatan dengan berkas terkait juga akan terhapus." unfollowConfirm: "Berhenti mengikuti {name}?" exportRequested: "Kamu telah meminta ekspor. Ini akan memakan waktu sesaat. Setelah ekspor selesai, berkas yang dihasilkan akan ditambahkan ke Drive" importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat." lists: "Daftar" noLists: "Kamu tidak memiliki daftar apapun" -note: "Catatan" -notes: "Note" +note: "Catat" +notes: "Catatan" following: "Ikuti" followers: "Pengikut" followsYou: "Mengikuti kamu" @@ -83,13 +83,13 @@ pageLoadError: "Gagal memuat halaman." pageLoadErrorDescription: "Umumnya disebabkan jaringan atau tembolok perambah. Cobalah bersihkan tembolok peramban lalu tunggu sesaat sebelum mencoba kembali." enterListName: "Masukkan nama daftar" privacy: "Privasi" -makeFollowManuallyApprove: "Permintaan ikuti membutuhkan persetujuan" -defaultNoteVisibility: "Privasi bawaan Note" +makeFollowManuallyApprove: "Permintaan mengikuti membutuhkan persetujuan" +defaultNoteVisibility: "Privasi bawaan catatan" follow: "Ikuti" -followRequest: "Minta ikuti" -followRequests: "Permintaan ikuti" +followRequest: "Permintaan mengikuti" +followRequests: "Permintaan mengikuti" unfollow: "Berhenti mengikuti" -followRequestPending: "Permintaan ikuti yang menunggu" +followRequestPending: "Permintaan mengikuti yang menunggu" enterEmoji: "Masukkan emoji" renote: "Renote" unrenote: "Hapus renote" @@ -97,16 +97,16 @@ renoted: "Telah direnote" cantRenote: "Postingan ini tidak dapat direnote" cantReRenote: "Renote tidak dapat direnote" quote: "Kutip" -pinnedNote: "Note yang disematkan" +pinnedNote: "Catatan yang disematkan" pinned: "Sematkan ke profil" -you: "Anda" +you: "Kamu" clickToShow: "Klik untuk melihat" sensitive: "Konten sensitif" add: "Tambahkan" reaction: "Reaksi" -reactionSettingDescription: "Masukkan reaksi favorit yang ingin anda sematkan pada bilah reaksi" +reactionSettingDescription: "Masukkan reaksi favorit yang ingin kamu sematkan pada bilah reaksi" reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan" -rememberNoteVisibility: "Ingat pengaturan visibilitas note" +rememberNoteVisibility: "Ingat pengaturan visibilitas catatan" attachCancel: "Hapus lampiran" markAsSensitive: "Tandai sebagai konten sensitif" unmarkAsSensitive: "Hapus tanda konten sensitif" @@ -117,10 +117,10 @@ block: "Blokir" unblock: "Buka blokir" suspend: "Bekukan" unsuspend: "Buka pembekuan" -blockConfirm: "Apakah anda yakin ingin memblokir akun ini?" -unblockConfirm: "Apakah anda yakin ingin membuka blokir akun ini?" -suspendConfirm: "Apakah anda yakin ingin membekukan akun ini?" -unsuspendConfirm: "Apakah anda yakin ingin membuka pembekuan akun ini?" +blockConfirm: "Apakah kamu yakin ingin memblokir akun ini?" +unblockConfirm: "Apakah kamu yakin ingin membuka blokir akun ini?" +suspendConfirm: "Apakah kamu yakin ingin membekukan akun ini?" +unsuspendConfirm: "Apakah kamu yakin ingin membuka pembekuan akun ini?" selectList: "Pilih daftar" selectAntenna: "Pilih Antena" selectWidget: "Pilih gawit" @@ -138,7 +138,7 @@ flagAsBot: "Atur akun ini sebagai Bot" flagAsBotDescription: "Jika akun ini dikendalikan oleh program, tetapkanlah opsi ini. Jika diaktifkan, ini akan berfungsi sebagai tanda bagi pengembang lain untuk mencegah interaksi berantai dengan bot lain dan menyesuaikan sistem internal Misskey untuk memperlakukan akun ini sebagai bot." flagAsCat: "Atur akun ini sebagai kucing" flagAsCatDescription: "Nyalakan tanda ini untuk menandai akun ini sebagai kucing." -autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang anda ikuti" +autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang kamu ikuti" addAccount: "Tambahkan akun" loginFailed: "Gagal untuk masuk" showOnRemote: "Lihat profil asli" @@ -154,7 +154,7 @@ proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebag host: "Host" selectUser: "Pilih pengguna" recipient: "Penerima" -annotation: "Komentar" +annotation: "Keterangan konten" federation: "Federasi" instances: "Instansi" registeredAt: "Terdaftar" @@ -226,8 +226,8 @@ announcements: "Pengumuman" imageUrl: "URL Gambar" remove: "Hapus" removed: "Telah dihapus" -removeAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?" -deleteAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?" +removeAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?" +deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?" resetAreYouSure: "Yakin mau atur ulang?" saved: "Telah disimpan" messaging: "Pesan" @@ -235,7 +235,7 @@ upload: "Unggah" fromDrive: "Dari Drive" fromUrl: "Dari URL" uploadFromUrl: "Unggah dari URL" -uploadFromUrlDescription: "URL berkas yang ingin anda unggah" +uploadFromUrlDescription: "URL berkas yang ingin kamu unggah" uploadFromUrlRequested: "Pengunggahan telah diminta" uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai" explore: "Jelajahi" @@ -251,7 +251,7 @@ home: "Beranda" remoteUserCaution: "Informasi ini mungkin tidak mutakhir, karena pengguna ini berasal dari instansi luar." activity: "Aktivitas" images: "Gambar" -birthday: "Hari Lahir" +birthday: "Tanggal lahir" yearsOld: "{age} tahun" registeredDate: "Bergabung pada" location: "Lokasi" @@ -279,6 +279,7 @@ emptyDrive: "Drive kosong" emptyFolder: "Folder kosong" unableToDelete: "Tidak dapat menghapus" inputNewFileName: "Masukkan nama berkas yang baru" +inputNewDescription: "Masukkan keterangan disini" inputNewFolderName: "Masukkan nama folder yang baru" circularReferenceFolder: "Folder tujuan adalah subfolder dari folder yang ingin kamu pindahkan." hasChildFilesOrFolders: "Karena folder ini tidak kosong, maka tidak dapat dihapus." @@ -310,6 +311,8 @@ monthX: "{month}" yearX: "{year}" pages: "Halaman" integration: "Integrasi" +connectService: "Sambungkan" +disconnectService: "Putuskan" enableLocalTimeline: "Nyalakan linimasa lokal" enableGlobalTimeline: "Nyalakan linimasa global" disablingTimelinesInfo: "Admin dan Moderator akan selalu memiliki akses ke semua linimasa meskipun linimasa tersebut tidak diaktifkan." @@ -323,13 +326,14 @@ driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote" inMb: "dalam Megabytes" iconUrl: "URL Gambar ikon" bannerUrl: "URL Banner" +backgroundImageUrl: "URL Gambar latar" basicInfo: "Informasi Umum" pinnedUsers: "Pengguna yang disematkan" pinnedUsersDescription: "Tuliskan satu nama pengguna dalam satu baris. Pengguna yang dituliskan disini akan disematkan dalam bilah \"Jelajahi\"." pinnedPages: "Halaman yang disematkan" pinnedPagesDescription: "Masukkan tautan dari halaman yang kamu ingin sematkan ke halaman utama dari instansi ini, dipisah dengan membuat baris baru." pinnedClipId: "ID dari klip yang disematkan" -pinnedNotes: "Note yang disematkan" +pinnedNotes: "Catatan yang disematkan" hcaptcha: "hCaptcha" enableHcaptcha: "Nyalakan hCaptcha" hcaptchaSiteKey: "Site Key" @@ -346,14 +350,14 @@ antennaSource: "Sumber Antenna" antennaKeywords: "Kata kunci yang diterima" antennaExcludeKeywords: "Kata kunci yang dikecualikan" antennaKeywordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR." -notifyAntenna: "Beritahu untuk note baru" -withFileAntenna: "Hanya tampilkan note dengan berkas yang dilampirkan" +notifyAntenna: "Beritahu untuk catatan baru" +withFileAntenna: "Hanya tampilkan catatan dengan berkas yang dilampirkan" enableServiceworker: "Aktifkan ServiceWorker" antennaUsersDescription: "Tuliskan satu nama pengguna per baris" caseSensitive: "Peka huruf besar dan huruf kecil" withReplies: "Termasuk balasan" connectedTo: "Akun yang mengikuti telah terhubung" -notesAndReplies: "Note dan balasan" +notesAndReplies: "Catatan dan balasan" withFiles: "Media" silence: "Bungkam" silenceConfirm: "Apakah kamu yakin ingin membungkam pengguna ini?" @@ -389,7 +393,7 @@ notFoundDescription: "Tidak ada halaman sesuai dengan URL yang ditentukan." uploadFolder: "Lokasi unggah folder bawaan" cacheClear: "Bersihkan tembolok" markAsReadAllNotifications: "Tandai semua pemberitahuan telah dibaca" -markAsReadAllUnreadNotes: "Tandai semua note telah dibaca" +markAsReadAllUnreadNotes: "Tandai semua catatan telah dibaca" markAsReadAllTalkMessages: "Tandai semua pesan telah dibaca" help: "Bantuan" inputMessageHere: "Ketik pesan disini" @@ -410,9 +414,9 @@ text: "Teks" enable: "Aktifkan" next: "Selanjutnya" retype: "Masukkan ulang" -noteOf: "Note milik {user}" +noteOf: "Catatan milik {user}" inviteToGroup: "Undang ke grup" -maxNoteTextLength: "Batas karakter dari note" +maxNoteTextLength: "Batas karakter catatan" quoteAttached: "Dikutip" quoteQuestion: "Apakah kamu ingin menambahkan kutipan?" noMessagesYet: "Tidak ada pesan" @@ -524,7 +528,6 @@ removeAllFollowing: "Tahan semua mengikuti" removeAllFollowingDescription: "Batal mengikuti semua akun dari {host}. Mohon jalankan ini ketika instansi sudah tidak ada lagi." userSuspended: "Pengguna ini telah dibekukan." userSilenced: "Pengguna ini telah dibungkam." -sidebar: "Bilah samping" divider: "Pembagi" addItem: "Tambahkan item" rooms: "Ruang" @@ -533,8 +536,8 @@ addRelay: "Tambahkan relay" inboxUrl: "URL Kotak masuk" addedRelays: "Relay yang ditambahkan" serviceworkerInfo: "Harus diaktifkan untuk pemberitahuan push." -deletedNote: "Note yang dihapus" -invisibleNote: "Postingan yang disembunyikan" +deletedNote: "Catatan yang dihapus" +invisibleNote: "Catatan yang disembunyikan" enableInfiniteScroll: "Aktifkan gulir tak terbatas" visibility: "Visibilitas" poll: "Angket" @@ -544,6 +547,8 @@ disablePlayer: "Tutup pemutar video" expandTweet: "Perluas utas" themeEditor: "Penyunting tema" description: "Deskripsi" +describeFile: "Tambahkan keterangan" +enterFileDescription: "Masukkan keterangan" author: "Pembuat" leaveConfirm: "Ada perubahan yang belum disimpan. Apakah kamu ingin membuangnya?" manage: "Manajemen" @@ -595,7 +600,7 @@ create: "Buat" notificationSetting: "Pengaturan Pemberitahuan" notificationSettingDesc: "Pilih tipe pemberitahuan untuk ditampilkan" useGlobalSetting: "Gunakan setelan global" -useGlobalSettingDesc: "Jika dinyalakan, setelan pemberitahuan akun anda akan digunakan. Jika dimatikan, konfigurasi secara individu dapat dibuat." +useGlobalSettingDesc: "Jika dinyalakan, setelan pemberitahuan akun kamu akan digunakan. Jika dimatikan, konfigurasi secara individu dapat dibuat." other: "Lainnya" regenerateLoginToken: "Perbarui token login" regenerateLoginTokenDescription: "Perbarui token yang digunakan secara internal saat login. Normalnya aksi ini tidak diperlukan. Jika diperbarui, semua perangkat akan dilogout." @@ -629,7 +634,7 @@ public: "Publik" i18nInfo: "Misskey diterjemahkan ke dalam banyak bahasa oleh sukarelawan. Kamu dapat ikut membantu di {link}." manageAccessTokens: "Kelola access token" accountInfo: "Informasi akun" -notesCount: "Jumlah note" +notesCount: "Jumlah catatan" repliesCount: "Jumlah balasan terkirim" renotesCount: "Jumlah renote terkirim" repliedCount: "Jumlah balasan diterima" @@ -645,15 +650,15 @@ no: "Tidak" driveFilesCount: "Jumlah berkas drive" driveUsage: "Penggunaan ruang penyimpanan drive" noCrawle: "Tolak pengindeksan crawler" -noCrawleDescription: "Meminta mesin pencari untuk tidak mengindeks halaman profil kamu, note, Halaman, dll." -lockedAccountInfo: "Kecuali kamu menyetel visibilitas note milikmu ke \"Hanya pengikut\", note milikmu akan dapat dilihat oleh siapa saja, bahkan jika kamu memerlukan pengikut untuk disetujui secara manual." -alwaysMarkSensitive: "Tandai NSFW sebagai bawaan" +noCrawleDescription: "Meminta mesin pencari untuk tidak mengindeks halaman profil kamu, catatan, Halaman, dll." +lockedAccountInfo: "Kecuali kamu menyetel visibilitas catatan milikmu ke \"Hanya pengikut\", catatan milikmu akan dapat dilihat oleh siapa saja, bahkan jika kamu memerlukan pengikut untuk disetujui secara manual." +alwaysMarkSensitive: "Tandai media dalam catatan sebagai media sensitif" loadRawImages: "Tampilkan lampiran gambar secara penuh daripada thumbnail" disableShowingAnimatedImages: "Jangan mainkan gambar bergerak" verificationEmailSent: "Surel verifikasi telah dikirimkan. Mohon akses tautan yang telah disertakan untuk menyelesaikan verifikasi." notSet: "Tidak disetel" emailVerified: "Surel telah diverifikasi" -noteFavoritesCount: "Jumlah note yang difavoritkan" +noteFavoritesCount: "Jumlah catatan yang difavoritkan" pageLikesCount: "Jumlah suka yang diterima Halaman" pageLikedCount: "Jumlah Halaman yang disukai" reversiCount: "Jumlah pertandingan Reversi" @@ -664,7 +669,7 @@ experimentalFeatures: "Fitur eksperimental" developer: "Pengembang" makeExplorable: "Buat akun tampil di \"Jelajahi\"" makeExplorableDescription: "Jika kamu mematikan ini, akun kamu tidak akan muncul di bagian \"Jelajahi:" -showGapBetweenNotesInTimeline: "Tampilkan jarak diantara postingan pada linimasa" +showGapBetweenNotesInTimeline: "Tampilkan jarak diantara catatan pada linimasa" duplicate: "Duplikat" left: "Kiri" center: "Tengah" @@ -716,8 +721,8 @@ unlikeConfirm: "Yakin ingin hapus sukamu?" fullView: "Tampilan penuh" quitFullView: "Keluar tampilan penuh" addDescription: "Tambahkan deskripsi" -userPagePinTip: "Kamu dapat membuat note untuk ditampilkan disini dengan memilih \"Sematkan ke profil\" dari menu pada note individu." -notSpecifiedMentionWarning: "Note ini mengandung sebutan dari pengguna yang tidak dimuat sebagai penerima" +userPagePinTip: "Kamu dapat membuat catatan untuk ditampilkan disini dengan memilih \"Sematkan ke profil\" dari menu pada catatan individu." +notSpecifiedMentionWarning: "Catatan ini mengandung sebutan dari pengguna yang tidak dimuat sebagai penerima" info: "Informasi" userInfo: "Informasi pengguna" unknown: "Tidak diketahui" @@ -745,7 +750,7 @@ postToGallery: "Posting ke galeri" gallery: "Galeri" recentPosts: "Postingan terbaru" popularPosts: "Postingan populer" -shareWithNote: "Bagikan dengan note" +shareWithNote: "Bagikan dengan catatan" ads: "Iklan" expiration: "Batas akhir" memo: "Memo" @@ -755,6 +760,7 @@ middle: "Sedang" low: "Rendah" emailNotConfiguredWarning: "Alamat surel tidak disetel." ratio: "Rasio" +global: "Global" _ad: back: "Kembali" reduceFrequencyOfThisAd: "Tampilkan iklan ini lebih sedikit" @@ -769,7 +775,7 @@ _gallery: unlike: "Hapus suka" _email: _follow: - title: "Sedang mengikuti" + title: "Mengikuti kamu" _receiveFollowRequest: title: "Kamu menerima permintaan mengikuti" _plugin: @@ -799,7 +805,7 @@ _mfm: cheatSheet: "Contekan MFM" intro: "MFM adalah Misskey-exclusive Markup Language yang dapat digunakan di banyak tempat. Berikut kamu bisa melihat daftar dari syntax MFM yang ada." dummy: "Misskey membentangkan dunia Fediverse" - mention: "Sebutan" + mention: "Sebut" mentionDescription: "Kamu dapat menentukan pengguna tertentu dengan menggunakan simbol-At dan nama engguna mereka." hashtag: "Tagar" hashtagDescription: "Kamu dapat menentukan tagar dengan menggunakan angka dan teks." @@ -825,7 +831,7 @@ _mfm: quoteDescription: "Menampilkan konten sebagai kutipan." emoji: "Emoji kustom" emojiDescription: "Emoji kustom dapat ditampilkan dengan mengurung nama emoji kustom menggunakan tanda titik dua." - search: "Pencarian" + search: "Penelusuran" searchDescription: "Menampilkan kotak pencarian dengan teks yang sudah dimasukkan." flip: "Balik" flipDescription: "Balikkan konten secara horizontal atau vertikal." @@ -903,20 +909,18 @@ _channel: owned: "Dimiliki" following: "Mengikuti" usersCount: "{n} Partisipan" - notesCount: "{n} Note" -_sidebar: - full: "Penuh" - icon: "Avatar" + notesCount: "terdapat {n} catatan" +_menuDisplay: hide: "Sembunyikan" _wordMute: muteWords: "Kata yang dibisukan" muteWordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR." muteWordsDescription2: "Kurung kata kunci dengan garis miring untuk menggunakan regular expressions." - softDescription: "Sembunyikan note yang memenuhi aturan kondisi dari linimasa." - hardDescription: "Cegah note memenuhi aturan kondisi dari ditambahkan ke linimasa. Dengan tambahan, note berikut tidak akan ditambahkan ke linimasa meskipun jika kondisi tersebut diubah." + softDescription: "Sembunyikan catatan yang memenuhi aturan kondisi dari linimasa." + hardDescription: "Cegah catatan memenuhi aturan kondisi dari ditambahkan ke linimasa. Dengan tambahan, catatan berikut tidak akan ditambahkan ke linimasa meskipun jika kondisi tersebut diubah." soft: "Lembut" hard: "Keras" - mutedNotes: "Note yang dibisukan" + mutedNotes: "Catatan yang dibisukan" _theme: explore: "Jelajahi tema" install: "Pasang tema" @@ -963,7 +967,7 @@ _theme: navIndicator: "Indikator bilah samping" link: "Tautan" hashtag: "Tagar" - mention: "Sebutan" + mention: "Sebut" mentionMe: "Sebutan (saya)" renote: "Renote" modalBg: "Latar belakang modal" @@ -992,9 +996,9 @@ _theme: accentLighten: "Aksen (Terang)" fgHighlighted: "Teks yang disorot" _sfx: - note: "Note" - noteMy: "Note (Saya)" - notification: "Notifikasi" + note: "Catatan" + noteMy: "Catatan (Saya)" + notification: "Pemberitahuan" chat: "Pesan" chatBg: "Obrolan (Latar Belakang)" antenna: "Penerimaan Antenna" @@ -1005,13 +1009,13 @@ _ago: unknown: "Tidak diketahui" future: "Masa depan" justNow: "Baru saja" - secondsAgo: "{n} detik yang lalu" - minutesAgo: "{n} menit yang lalu" - hoursAgo: "{n} jam yang lalu" - daysAgo: "{n} hari yang lalu" - weeksAgo: "{n} minggu yang lalu" - monthsAgo: "{n} bulan yang lalu" - yearsAgo: "{n} tahun yang lalu" + secondsAgo: "{n} detik lalu" + minutesAgo: "{n} menit lalu" + hoursAgo: "{n} jam lalu" + daysAgo: "{n} hari lalu" + weeksAgo: "{n} minggu lalu" + monthsAgo: "{n} bulan lalu" + yearsAgo: "{n} tahun lalu" _time: second: "detik" minute: "menit" @@ -1020,23 +1024,23 @@ _time: _tutorial: title: "Cara menggunakan Misskey" step1_1: "Selamat datang!" - step1_2: "Halaman ini disebut \"linimasa\". Halaman ini menampilkan \"note\" yang diurutkan secara kronologis dari orang-orang yang kamu \"ikuti\"." - step1_3: "Linimasa kamu kosong, karena kamu belum memposting note apapun atau mengikuti siapapun." - step2_1: "Selesaikan menyetel profilmu sebelum menulis sebuah note atau mengikuti seseorang." + step1_2: "Halaman ini disebut \"linimasa\". Halaman ini menampilkan \"catatan\" yang diurutkan secara kronologis dari orang-orang yang kamu \"ikuti\"." + step1_3: "Linimasa kamu kosong, karena kamu belum mencatat catatan apapun atau mengikuti siapapun." + step2_1: "Selesaikan menyetel profilmu sebelum menulis sebuah catatan atau mengikuti seseorang." step2_2: "Menyediakan beberapa informasi tentang siapa kamu akan membuat orang lain mudah untuk mengikutimu kembali." step3_1: "Selesai menyetel profil kamu?" - step3_2: "Langkah selanjutnya adalah membuat note. Kamu bisa lakukan ini dengan mengklik ikon pensil pada layar kamu." - step3_3: "Isilah di dalam modal dan tekan tombol pada atas kanan untuk memposting note kamu." + step3_2: "Langkah selanjutnya adalah membuat catatan. Kamu bisa lakukan ini dengan mengklik ikon pensil pada layar kamu." + step3_3: "Isilah di dalam modal dan tekan tombol pada atas kanan untuk memcatat catatan kamu." step3_4: "Bingung tidak berpikiran untuk mengatakan sesuatu? Coba saja \"baru aja ikutan bikin akun misskey punyaku\"!" - step4_1: "Selesai memposting note pertamamu?" - step4_2: "Horee! Sekarang note pertamamu sudah ditampilkan di linimasa milikmu." + step4_1: "Selesai mencatat catatan pertamamu?" + step4_2: "Horee! Sekarang catatan pertamamu sudah ditampilkan di linimasa milikmu." step5_1: "Sekarang, mari mencoba untuk membuat linimasamu lebih hidup dengan mengikuti orang lain." - step5_2: "{featured} akan memperlihatkan note yang sedang tren saat ini untuk kamu. {explore} akan membantumu untuk mencari pengguna yang sedang tren juga saat ini. Coba ikuti seseorang yang kamu suka!" + step5_2: "{featured} akan memperlihatkan catatan yang sedang tren saat ini untuk kamu. {explore} akan membantumu untuk mencari pengguna yang sedang tren juga saat ini. Coba ikuti seseorang yang kamu suka!" step5_3: "Untuk mengikuti pengguna lain, klik pada ikon mereka dan tekan tombol follow pada profil mereka." step5_4: "Jika pengguna lain memiliki ikon gembok di sebelah nama mereka, maka pengguna rersebut harus menyetujui permintaan mengikuti dari kamu secara manual." - step6_1: "Sekarang kamu dapat melihat note pengguna lain pada linimasamu." - step6_2: "Kamu juga bisa memberikan \"reaksi\" ke note orang lain untuk merespon dengan cepat." - step6_3: "Untuk memberikan \"reaksi\", tekan tanda \"+\" pada note pengguna lain dan pilih emoji yang kamu suka untuk memberikan reaksimu kepada mereka." + step6_1: "Sekarang kamu dapat melihat catatan pengguna lain pada linimasamu." + step6_2: "Kamu juga bisa memberikan \"reaksi\" ke catatan orang lain untuk merespon dengan cepat." + step6_3: "Untuk memberikan \"reaksi\", tekan tanda \"+\" pada catatan pengguna lain dan pilih emoji yang kamu suka untuk memberikan reaksimu kepada mereka." step7_1: "Yay, Selamat! Kamu sudah menyelesaikan tutorial dasar Misskey." step7_2: "Jika kamu ingin mempelajari lebih lanjut tentang Misskey, cobalah berkunjung ke bagian {help}." step7_3: "Semoga berhasil dan bersenang-senanglah! 🚀" @@ -1064,7 +1068,7 @@ _permissions: "write:messaging": "Buat atau hapus obrolan" "read:mutes": "Lihat daftar orang yang dibisukan" "write:mutes": "Sunting daftar orang yang dibisukan" - "write:notes": "Buat atau hapus note" + "write:notes": "Buat atau hapus catatan" "read:notifications": "Lihat pemberitahuan" "write:notifications": "Sunting pemberitahuan" "read:reactions": "Lihat reaksi" @@ -1086,11 +1090,11 @@ _auth: callback: "Mengembalikan kamu ke aplikasi" denied: "Akses ditolak" _antennaSources: - all: "Semua note" - homeTimeline: "Note dari pengguna yang diikuti" - users: "Note dari pengguna tertentu" - userList: "Note dari daftar tertentu" - userGroup: "Note dari pengguna dalam grup yang ditentukan" + all: "Semua catatan" + homeTimeline: "Catatan dari pengguna yang diikuti" + users: "Catatan dari pengguna tertentu" + userList: "Catatan dari daftar tertentu" + userGroup: "Catatan dari pengguna dalam grup yang ditentukan" _weekday: sunday: "Minggu" monday: "Senin" @@ -1101,7 +1105,7 @@ _weekday: saturday: "Sabtu" _widgets: memo: "Catatan memo" - notifications: "Notifikasi" + notifications: "Pemberitahuan" timeline: "Linimasa" calendar: "Kalender" trends: "Tren" @@ -1111,7 +1115,7 @@ _widgets: photos: "Foto" digitalClock: "Jam digital" federation: "Federasi" - postForm: "Buat note" + postForm: "Buat catatan" slideshow: "Slideshow" button: "Tombol" onlineUsers: "Pengguna online" @@ -1147,18 +1151,18 @@ _poll: remainingSeconds: "Berakhir dalam {s} detik" _visibility: public: "Publik" - publicDescription: "Note kamu akan muncul di linimasa global" + publicDescription: "Catat ke linimasa global" home: "Beranda" - homeDescription: "Posting hanya ke linimasa beranda saja" + homeDescription: "Catat ke linimasa beranda saja" followers: "Pengikut" - followersDescription: "Posting hanya ke pengikut saja" - specified: "Direct" - specifiedDescription: "Posting hanya ke pengguna yang ditentukan saja" + followersDescription: "Catat ke pengikut saja" + specified: "Langsung" + specifiedDescription: "Catat ke pengguna yang ditentukan saja" localOnly: "Hanya lokal" - localOnlyDescription: "Tidak dapat dilihat oleh pengguna luar" + localOnlyDescription: "Hanya dapat dilihat di instansi lokal" _postForm: - replyPlaceholder: "Balas ke note ini..." - quotePlaceholder: "Kutip note ini..." + replyPlaceholder: "Balas ke catatan ini..." + quotePlaceholder: "Kutip catatan ini..." channelPlaceholder: "Posting ke kanal" _placeholders: a: "Sedang apa kamu saat ini?" @@ -1180,7 +1184,7 @@ _profile: changeAvatar: "Ubah avatar" changeBanner: "Ubah header" _exportOrImport: - allNotes: "Semua note" + allNotes: "Semua catatan" followingList: "Ikuti" muteList: "Bisukan" blockingList: "Blokir" @@ -1191,10 +1195,10 @@ _charts: usersIncDec: "Perbedaan dalam # pengguna" usersTotal: "Jumlah # pengguna" activeUsers: "Pengguna aktif" - notesIncDec: "Perbedaan # dalam note" - localNotesIncDec: "Perbedaan # dalam note lokal" - remoteNotesIncDec: "Perbedaan # dalam note luar" - notesTotal: "Total # note" + notesIncDec: "Perbedaan # dalam catatan" + localNotesIncDec: "Perbedaan # dalam catatan lokal" + remoteNotesIncDec: "Perbedaan # dalam catatan luar" + notesTotal: "Total # catatan" filesIncDec: "Perbedaan # dalam berkas" filesTotal: "Jumlah # berkas" storageUsageIncDec: "Perbedaan dalam penggunaan penyimpanan" @@ -1203,8 +1207,8 @@ _instanceCharts: requests: "Permintaan" users: "Perbedaan dalam # pengguna" usersTotal: "Jumlah # pengguna kumulatif" - notes: "Perbedaan # dalam note" - notesTotal: "Jumlah # note kumulatif" + notes: "Perbedaan # dalam catatan" + notesTotal: "Jumlah # catatan kumulatif" ff: "Perbedaan jumlah # dalam pengikut" ffTotal: "Jumlah # pengikut kumulatif" cacheSize: "Perbedaan dalam ukuran tembolok" @@ -1327,7 +1331,7 @@ _pages: if: "Jika" _if: variable: "Variabel" - post: "Buat note" + post: "Buat catatan" _post: text: "Isi" attachCanvasImage: "Posting dengan kanvas sebagai gambar" @@ -1352,10 +1356,10 @@ _pages: id: "ID Kanvas" width: "Lebar" height: "Tinggi" - note: "Note yang ditanam" + note: "Catatan yang ditanam" _note: - id: "ID Note" - idDescription: "Kamu dapat menyetel ini dengan menempelkan tautan URL Note." + id: "ID Catatan" + idDescription: "Kamu dapat menyetel ini dengan menempelkan tautan URL Catatan." detailed: "Tampilan rincian" switch: "Beralih" _switch: @@ -1580,14 +1584,14 @@ _notification: youGotPoll: "{name} memilih di angket kamu" youGotMessagingMessageFromUser: "{name} mengirimi kamu pesan" youGotMessagingMessageFromGroup: "Sebuah pesan telah dikirim ke grup {name}" - youWereFollowed: "Sedang mengikuti" + youWereFollowed: "Mengikuti kamu" youReceivedFollowRequest: "Kamu menerima permintaan mengikuti" yourFollowRequestAccepted: "Permintaan mengikuti kamu telah diterima" youWereInvitedToGroup: "Telah diundang ke grup" _types: all: "Semua" follow: "Ikuti" - mention: "Sebutan" + mention: "Sebut" reply: "Balasan" renote: "Renote" quote: "Kutip" @@ -1613,9 +1617,9 @@ _deck: _columns: main: "Utama" widgets: "Widget" - notifications: "Notifikasi" + notifications: "Pemberitahuan" tl: "Linimasa" antenna: "Antena" list: "Daftar" mentions: "Sebutan" - direct: "Direct" + direct: "Langsung" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 63b535a47..0ac8ccfba 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -514,7 +514,6 @@ removeAllFollowing: "Cancella tutti i follows" removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più." userSuspended: "L'utente è sospes@." userSilenced: "L'utente è silenziat@." -sidebar: "Barra laterale" divider: "Linea di separazione" addItem: "Aggiungi elemento" rooms: "Camera" @@ -741,6 +740,7 @@ middle: "Media" low: "Bassa" emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail." ratio: "Rapporto" +global: "Federata" _ad: back: "Indietro" reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso" @@ -825,9 +825,7 @@ _channel: following: "Seguiti" usersCount: "{n} partecipanti" notesCount: "{n} note" -_sidebar: - full: "Intera" - icon: "Icone" +_menuDisplay: hide: "Nascondere" _wordMute: muteWords: "Parole da filtrare" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 9e500f613..406828e3c 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -528,7 +528,7 @@ removeAllFollowing: "フォローを全解除" removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。" userSuspended: "このユーザーは凍結されています。" userSilenced: "このユーザーはサイレンスされています。" -sidebar: "サイドバー" +menu: "メニュー" divider: "分割線" addItem: "項目を追加" rooms: "ルーム" @@ -761,6 +761,10 @@ middle: "中" low: "低" emailNotConfiguredWarning: "メールアドレスの設定がされていません。" ratio: "比率" +customCss: "カスタムCSS" +customCssWarn: "この設定は必ず知識のある方が行ってください。不適切な設定を行うとクライアントが正常に使用できなくなる恐れがあります。" +global: "グローバル" +squareAvatars: "アイコンを四角形で表示" _ad: back: "戻る" @@ -924,9 +928,10 @@ _channel: usersCount: "{n}人が参加中" notesCount: "{n}投稿があります" -_sidebar: - full: "フル" - icon: "アイコン" +_menuDisplay: + sideFull: "横" + sideIcon: "横(アイコン)" + top: "上部" hide: "隠す" _wordMute: diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 060c7b142..ef951adce 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -511,7 +511,6 @@ removeAllFollowing: "フォローを全解除" removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。" userSuspended: "このユーザーは...凍結されとる。" userSilenced: "このユーザーは...サイレンスされとる。" -sidebar: "サイドバー" divider: "分割線" rooms: "ルーム" relays: "リレー" @@ -647,6 +646,7 @@ memo: "メモ" high: "高い" middle: "中" low: "低い" +global: "グローバル" _ad: back: "戻る" _gallery: @@ -731,9 +731,7 @@ _channel: removeBanner: "バナーを削除" featured: "トレンド" notesCount: "{n}こ投稿があるで" -_sidebar: - full: "フル" - icon: "アイコン" +_menuDisplay: hide: "隠す" _wordMute: soft: "ソフト" diff --git a/locales/jbo-EN.yml b/locales/jbo-EN.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/locales/jbo-EN.yml @@ -0,0 +1 @@ +--- diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index f3fce251f..50d920bf5 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -528,7 +528,6 @@ removeAllFollowing: "모든 팔로잉 해제" removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요." userSuspended: "이 계정은 정지된 상태입니다." userSilenced: "이 계정은 사일런스된 상태입니다." -sidebar: "사이드바" divider: "구분선" addItem: "항목 추가" rooms: "방" @@ -761,6 +760,7 @@ middle: "보통" low: "낮음" emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다." ratio: "비율" +global: "글로벌" _ad: back: "뒤로" reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기" @@ -910,9 +910,7 @@ _channel: following: "팔로잉" usersCount: "{n}명 참여 중" notesCount: "{n}노트" -_sidebar: - full: "전체" - icon: "아이콘" +_menuDisplay: hide: "숨기기" _wordMute: muteWords: "뮤트할 단어" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index 550bda78b..db6241c01 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -513,7 +513,6 @@ deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?" removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje." userSuspended: "To konto zostało zawieszone." userSilenced: "Ten użytkownik został wyciszony." -sidebar: "Pasek boczny" divider: "Rozdzielacz" addItem: "Dodaj element" rooms: "Pokój" @@ -735,6 +734,7 @@ middle: "Średnie" low: "Niski" emailNotConfiguredWarning: "Nie podano adresu e-mail" ratio: "Stosunek" +global: "Globalna" _ad: back: "Wróć" reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej" @@ -858,9 +858,7 @@ _channel: following: "Śledzeni" usersCount: "{n} uczestnicy" notesCount: "{n} wpisy" -_sidebar: - full: "Pełne" - icon: "Awatar" +_menuDisplay: hide: "Ukryj" _wordMute: muteWords: "Słowo do wyciszenia" diff --git a/locales/pt-PT.yml b/locales/pt-PT.yml index 0284e62fb..c46f02f10 100644 --- a/locales/pt-PT.yml +++ b/locales/pt-PT.yml @@ -6,25 +6,72 @@ notifications: "Notificações" username: "Nome de usuário" password: "Senha" ok: "OK" +gotIt: "Entendi" cancel: "Cancelar" enterUsername: "Digite o nome de usuário" renotedBy: "Repostado por {user}" +noNotes: "Sem posts" settings: "Configurações" basicSettings: "Configurações básicas" otherSettings: "Outras configurações" profile: "Perfil" timeline: "Timeline" +logout: "Sair" +users: "Usuários" +favorite: "Favoritar" +favorites: "Favoritar" +showMore: "Ver mais" +youGotNewFollower: "Você tem um novo seguidor" +followRequestAccepted: "Pedido de seguir aceito" +note: "Post" +notes: "Posts" +enterEmoji: "Inserir emoji" +renote: "Repostar" +renoted: "Repostado" +cantRenote: "Não pode repostar" +cantReRenote: "Não pode repostar este repost" +pinnedNote: "Post fixado" +sensitive: "Conteúdo sensível" +mute: "Silenciar" +unmute: "Dessilenciar" +settingGuide: "Guia de configuração" +instances: "Instância" +registeredAt: "Registrado em" +perHour: "por hora" +perDay: "por dia" +noUsers: "Sem usuários" +messageRead: "Lida" +lightThemes: "Tema claro" +darkThemes: "Tema escuro" +addFile: "Adicionar arquivo" +nsfw: "Conteúdo sensível" +monthX: "mês de {month}" +pinnedNotes: "Post fixado" smtpUser: "Nome de usuário" smtpPass: "Senha" +user: "Usuários" +_email: + _follow: + title: "Você tem um novo seguidor" _mfm: search: "Pesquisar" +_theme: + keys: + renote: "Repostar" _sfx: + note: "Posts" notification: "Notificações" _widgets: notifications: "Notificações" timeline: "Timeline" _profile: username: "Nome de usuário" +_exportOrImport: + muteList: "Silenciar" +_notification: + youWereFollowed: "Você tem um novo seguidor" + _types: + renote: "Repostar" _deck: _columns: notifications: "Notificações" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index c9700f4c9..119a78de2 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -7,6 +7,7 @@ search: "Поиск" notifications: "Уведомления" username: "Имя пользователя" password: "Пароль" +forgotPassword: "Пароль забыт" fetchingAsApObject: "Приём с других сайтов" ok: "Окей" gotIt: "Ясно!" @@ -278,6 +279,7 @@ emptyDrive: "Диск пуст" emptyFolder: "Папка пуста" unableToDelete: "Удаление невозможно" inputNewFileName: "Введите имя нового файла" +inputNewDescription: "Введите новую подпись" inputNewFolderName: "Пожалуйста, введите новое имя папки!" circularReferenceFolder: "Вы пытаетесь переместить папку внутрь себя." hasChildFilesOrFolders: "Эта папка не пуста и не может быть удалена." @@ -309,6 +311,8 @@ monthX: "{month} месяц" yearX: "{year} год" pages: "Страницы" integration: "Интеграция" +connectService: "Подключиться" +disconnectService: "Отключиться" enableLocalTimeline: "Включить локальную ленту" enableGlobalTimeline: "Включить глобальную ленту" disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены." @@ -322,6 +326,7 @@ driveCapacityPerRemoteAccount: "Объём диска на одного поль inMb: "В мегабайтах" iconUrl: "Ссылка на аватар" bannerUrl: "Ссылка на изображение в шапке" +backgroundImageUrl: "Ссылка на фоновое изображение" basicInfo: "Общая информация" pinnedUsers: "Прикреплённый пользователь" pinnedUsersDescription: "Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"." @@ -523,7 +528,6 @@ removeAllFollowing: "Удалить всех подписчиков" removeAllFollowingDescription: "Отменить все подписки с домена {host}? Пожалуйста, применяйте это действие, если инстанс больше не существует." userSuspended: "Эта учётная запись заморожена" userSilenced: "Этот пользователь был заглушен" -sidebar: "Боковая панель" divider: "Линия-разделитель" addItem: "Добавить элемент" rooms: "Комната" @@ -543,6 +547,8 @@ disablePlayer: "Выключить проигрыватель" expandTweet: "Развернуть твит" themeEditor: "Редактор темы оформления" description: "Описание" +describeFile: "Добавить подпись" +enterFileDescription: "Введите подпись" author: "Автор" leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?" manage: "Управление" @@ -745,10 +751,23 @@ gallery: "Галерея" recentPosts: "Недавние публикации" popularPosts: "Популярные публикации" shareWithNote: "Поделиться заметкой" +ads: "Реклама" expiration: "Опрос длится" +memo: "Памятка" +priority: "Приоритет" +high: "Высокий" middle: "Средне" +low: "Низкий" +emailNotConfiguredWarning: "Не указан адрес электронной почты" +ratio: "Соотношение" +global: "Всеобщая" _ad: back: "Выход" + reduceFrequencyOfThisAd: "Реже показывать эту рекламу" +_forgotPassword: + enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На неё будет выслана ссылка для смены пароля." + ifNoEmail: "Если вы не ввели свой адрес электронной почты, свяжитесь с администратором ресурса, чтобы сменить пароль." + contactAdmin: "Здесь не используются адреса электронной почты, так что свяжитесь с администратором, чтобы поменять пароль." _gallery: my: "Личная" liked: "Понравившееся" @@ -891,9 +910,7 @@ _channel: following: "Подписки" usersCount: "Участников: {n}" notesCount: "Заметок: {n}" -_sidebar: - full: "Полностью" - icon: "Только значки" +_menuDisplay: hide: "Спрятать" _wordMute: muteWords: "Скрыть слово" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index 3b8e6461c..893fb3bcd 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -517,7 +517,6 @@ removeAllFollowing: "Скасувати всі підписки" removeAllFollowingDescription: "Скасувати підписку на всі акаунти з {host}. Будь ласка, робіть це, якщо інстанс більше не існує." userSuspended: "Обліковий запис заблокований." userSilenced: "Обліковий запис приглушений." -sidebar: "Бокова панель" divider: "Розділювач" addItem: "Додати елемент" rooms: "Кімнати" @@ -689,6 +688,7 @@ user: "Користувачі" administration: "Управління" expiration: "Опитування закінчується" middle: "Середній" +global: "Глобальна" _ad: back: "Назад" _gallery: @@ -816,9 +816,7 @@ _channel: following: "Підписки" usersCount: "{n} учасників" notesCount: "{n} дописів" -_sidebar: - full: "Повна" - icon: "Аватар" +_menuDisplay: hide: "Сховати" _wordMute: muteWords: "Заглушені слова" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index f10a09a32..2612652c5 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -1,13 +1,13 @@ --- _lang_: "中文(简体)" headlineMisskey: "通过帖子连接在一起的网络" -introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧!🚀" +introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖子」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖子表达反馈👍\n来探索新的世界吧!🚀" monthAndDay: "{month}月 {day}日" search: "搜索" notifications: "通知" username: "用户名" password: "密码" -forgotPassword: "忘记密码" +forgotPassword: "重置密码" fetchingAsApObject: "联合查询中" ok: "OK" gotIt: "我明白了" @@ -63,33 +63,33 @@ import: "导入" export: "导出" files: "文件" download: "下载" -driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会消失。" +driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会被删除。" unfollowConfirm: "要取消对{name}的关注吗?" -exportRequested: "导出请求已提交。可能需要花一些时间。导出的文件将保存到网盘中。" -importRequested: "导入请求已提交。这可能需要花一点时间。" +exportRequested: "导出请求已提交,这可能需要花一些时间,导出的文件将保存到网盘中。" +importRequested: "导入请求已提交,这可能需要花一点时间。" lists: "列表" noLists: "列表为空" note: "帖子" notes: "帖子" following: "关注中" followers: "关注者" -followsYou: "关注了你" +followsYou: "正在关注你" createList: "创建列表" manageLists: "管理列表" error: "错误" -somethingHappened: "出现了问题" +somethingHappened: "出现了一些问题!" retry: "重试" pageLoadError: "页面加载失败。" pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。" enterListName: "输入列表名称" privacy: "隐私" -makeFollowManuallyApprove: "关注者请求需要批准" +makeFollowManuallyApprove: "关注者的关注请求需要批准" defaultNoteVisibility: "默认可见性" follow: "关注" followRequest: "关注申请" followRequests: "关注申请" unfollow: "取消关注" -followRequestPending: "发送关注申请" +followRequestPending: "发送关注请求" enterEmoji: "输入表情符号" renote: "转发" unrenote: "取消转发" @@ -106,7 +106,7 @@ add: "添加" reaction: "回应" reactionSettingDescription: "选择您想要置顶的回应。" reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。" -rememberNoteVisibility: "记录公开范围" +rememberNoteVisibility: "保存上次设置的可见性" attachCancel: "删除附件" markAsSensitive: "标记为敏感内容" unmarkAsSensitive: "取消标记为敏感内容" @@ -134,11 +134,11 @@ addEmoji: "添加表情符号" settingGuide: "推荐配置" cacheRemoteFiles: "远程文件缓存" cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。" -flagAsBot: "这个账户是Bot" +flagAsBot: "这是一个机器人账号" flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。" -flagAsCat: "这个账户是Cat" -flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。" -autoAcceptFollowed: "自动允许关注" +flagAsCat: "这个账户是一只猫" +flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。" +autoAcceptFollowed: "自动允许关注者的关注" addAccount: "添加账户" loginFailed: "登录失败" showOnRemote: "转到所在实例显示" @@ -172,7 +172,7 @@ software: "软件" version: "版本" metadata: "元数据" withNFiles: "{n}个文件" -monitor: "监视器" +monitor: "服务器状态" jobQueue: "作业队列" cpuAndMemory: "CPU和内存" network: "网络" @@ -211,7 +211,7 @@ instanceFollowing: "关注实例" instanceFollowers: "关注实例" instanceUsers: "实例用户" changePassword: "修改密码" -security: "安全性" +security: "安全" retypedNotMatch: "两次输入不一致!" currentPassword: "现在的密码" newPassword: "新密码" @@ -231,18 +231,18 @@ deleteAreYouSure: "要删掉「{x}」吗?" resetAreYouSure: "恢复默认设置?" saved: "已保存" messaging: "聊天" -upload: "上传" +upload: "本地上传" fromDrive: "从网盘中" fromUrl: "从 URL" uploadFromUrl: "从网址上传" -uploadFromUrlDescription: "要上传的文件的URL" +uploadFromUrlDescription: "输入文件的URL" uploadFromUrlRequested: "请求上传" uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。" explore: "发现" games: "Misskey游戏" messageRead: "已读" noMoreHistory: "没有更多的历史记录" -startMessaging: "开始聊天" +startMessaging: "添加聊天" nUsersRead: "{n}人已读" agreeTo: "{0}人同意" tos: "服务条款" @@ -260,8 +260,8 @@ themeForLightMode: "在浅色模式下使用的主题" themeForDarkMode: "在深色模式下使用的主题" light: "浅色" dark: "深色" -lightThemes: "亮色主题" -darkThemes: "暗色主题" +lightThemes: "浅色主题" +darkThemes: "深色主题" syncDeviceDarkMode: "将深色模式与设备设置同步" drive: "网盘" fileName: "文件名称" @@ -275,24 +275,24 @@ createFolder: "创建文件夹" renameFolder: "重命名文件夹" deleteFolder: "删除文件夹" addFile: "添加文件" -emptyDrive: "驱动器为空" -emptyFolder: "空文件夹" +emptyDrive: "网盘中无文件" +emptyFolder: "此文件夹中无文件" unableToDelete: "无法删除" inputNewFileName: "请输入新文件名" inputNewDescription: "请输入新标题" -inputNewFolderName: "请输入新文件名" +inputNewFolderName: "请输入新文件夹名" circularReferenceFolder: "目标文件夹是您要移动的文件夹的子文件夹。" -hasChildFilesOrFolders: "此文件夹不为空,无法删除。" +hasChildFilesOrFolders: "此文件夹中有文件,无法删除。" copyUrl: "复制链接" rename: "重命名" avatar: "头像" -banner: "Banner" +banner: "横幅" nsfw: "敏感内容" whenServerDisconnected: "与服务器连接中断时" -disconnectedFromServer: "已从服务器断开连接" +disconnectedFromServer: "已和服务器断开连接" reload: "重新加载" -doNothing: "什么都不做" -reloadConfirm: "确定要重新加载吗" +doNothing: "关闭弹窗" +reloadConfirm: "确定要重新加载吗?" watch: "关注" unwatch: "取消关注" accept: "允许" @@ -325,14 +325,14 @@ driveCapacityPerLocalAccount: "每个用户的网盘空间" driveCapacityPerRemoteAccount: "每个远程用户的网盘容量" inMb: "以兆字节(MegaByte)为单位" iconUrl: "图标URL" -bannerUrl: "Banner URL" +bannerUrl: "横幅URL" backgroundImageUrl: "背景图URL" basicInfo: "基本信息" pinnedUsers: "置顶用户" pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。" pinnedPages: "固定页面" pinnedPagesDescription: "输入您要固定到实例首页的页面路径,以换行符分隔。" -pinnedClipId: "置顶的片段ID" +pinnedClipId: "置顶的书签ID" pinnedNotes: "已置顶的帖子" hcaptcha: "hCaptcha" enableHcaptcha: "启用 hCaptcha" @@ -350,13 +350,13 @@ antennaSource: "接收来源" antennaKeywords: "包含关键字" antennaExcludeKeywords: "排除关键字" antennaKeywordsDescription: "使用空格分隔会产生AND规范,并且使用换行符分隔会产生OR规范" -notifyAntenna: "通知新帖子" +notifyAntenna: "开启通知" withFileAntenna: "仅带有附件的帖子" enableServiceworker: "启用ServiceWorker" antennaUsersDescription: "指定用户名,用换行符分隔" caseSensitive: "区分大小写" withReplies: "包括回复" -connectedTo: "您的账号已连到接以下社交账号" +connectedTo: "您的账号已连到接以下第三方账号" notesAndReplies: "帖子与回复" withFiles: "附件" silence: "禁言" @@ -364,8 +364,8 @@ silenceConfirm: "确认要禁言吗?" unsilence: "解除禁言" unsilenceConfirm: "要解除禁言吗?" popularUsers: "热门用户" -recentlyUpdatedUsers: "最近投稿用户" -recentlyRegisteredUsers: "最近登录用户" +recentlyUpdatedUsers: "最近投稿的用户" +recentlyRegisteredUsers: "最近登录的用户" recentlyDiscoveredUsers: "最近发现的用户" exploreUsersCount: "有{count}个用户" exploreFediverse: "探索Fediverse" @@ -374,9 +374,9 @@ userList: "列表" about: "关于" aboutMisskey: "关于 Misskey" administrator: "管理员" -token: "令牌" +token: "Token (令牌)" twoStepAuthentication: "两步验证" -moderator: "版主" +moderator: "监察员" nUsersMentioned: "{n} 被提到" securityKey: "安全密钥" securityKeyName: "密钥名称" @@ -418,7 +418,7 @@ noteOf: "{user}的帖子" inviteToGroup: "群组邀请" maxNoteTextLength: "帖子的字数限制" quoteAttached: "已引用" -quoteQuestion: "是否将其作为引用附上?" +quoteQuestion: "是否引用此链接内容?" noMessagesYet: "现在没有新的聊天" newMessageExists: "新信息" onlyOneFileCanBeAttached: "只能添加一个附件" @@ -442,9 +442,9 @@ tapSecurityKey: "轻触硬件安全密钥" or: "或者" language: "语言" uiLanguage: "显示语言" -groupInvited: "群组招待" +groupInvited: "您有新的群组邀请" aboutX: "关于 {x}" -useOsNativeEmojis: "使用OS原生表情符号" +useOsNativeEmojis: "使用系统的原生表情符号" youHaveNoGroups: "没有群组" joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。" noHistory: "没有历史记录" @@ -460,7 +460,7 @@ regenerate: "重新生成" fontSize: "字体大小" noFollowRequests: "没有关注申请" openImageInNewTab: "在新标签页中打开图片" -dashboard: "Dashboard" +dashboard: "管理面板" local: "本地" remote: "远程" total: "总计" @@ -492,12 +492,12 @@ objectStorageUseProxy: "使用代理" objectStorageUseProxyDesc: "如果您不使用代理进行API连接,请将其关闭。" objectStorageSetPublicRead: "上传时设置为public-read" serverLogs: "服务器日志" -deleteAll: "删除全部" -showFixedPostForm: "在时间线顶部显示帖子表单" +deleteAll: "全部删除" +showFixedPostForm: "在时间线顶部显示发帖框" newNoteRecived: "有新的帖子" -sounds: "声音" -listen: "听" -none: "空" +sounds: "提示音" +listen: "试听" +none: "无" showInPage: "在页面中显示" popout: "弹窗" volume: "音量" @@ -509,15 +509,15 @@ recentUsed: "最近使用" install: "安装" uninstall: "卸载" installedApps: "已授权的应用" -nothing: "没什么" +nothing: "没有" installedDate: "授权日期" lastUsedDate: "最近使用" state: "状态" sort: "排序" ascendingOrder: "升序" descendingOrder: "降序" -scratchpad: "便签本" -scratchpadDescription: "便签本为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。" +scratchpad: "AiScript控制台" +scratchpadDescription: "AiScript控制台为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。" output: "输出" script: "脚本" disablePagesScript: "禁用页面脚本" @@ -528,7 +528,7 @@ removeAllFollowing: "取消所有关注" removeAllFollowingDescription: "取消{host}的所有关注者。当实例不存在时执行。" userSuspended: "该用户已被冻结。" userSilenced: "该用户已被禁言。" -sidebar: "侧边栏" +menu: "菜单" divider: "分割线" addItem: "添加项目" rooms: "房间" @@ -545,7 +545,7 @@ poll: "调查问卷" useCw: "隐藏内容" enablePlayer: "打开播放器" disablePlayer: "关闭播放器" -expandTweet: "展开贴文" +expandTweet: "展开帖子" themeEditor: "主题编辑器" description: "描述" describeFile: "添加标题" @@ -591,10 +591,10 @@ userSaysSomething: "{name}说了什么" makeActive: "启用" display: "显示" copy: "复制" -metrics: "指标" -overview: "概述" +metrics: "服务器监控" +overview: "服务器概况" logs: "日志" -delayed: "延迟" +delayed: "滞后" database: "数据库" channel: "频道" create: "创建" @@ -627,17 +627,17 @@ random: "随机" system: "系统" switchUi: "切换界面" desktop: "桌面" -clip: "片段" +clip: "书签" createNew: "新建" optional: "可选" -createNewClip: "新建片段" +createNewClip: "新建书签" public: "公开" i18nInfo: "Misskey已经被志愿者们翻译到了各种语言。如果你也有兴趣,可以通过{link}帮助翻译。" manageAccessTokens: "管理 Access Tokens" accountInfo: "帐户信息" -notesCount: "贴文数量" +notesCount: "帖子数量" repliesCount: "回复数量" -renotesCount: "转贴数量" +renotesCount: "转帖数量" repliedCount: "回复数" renotedCount: "转发数" followingCount: "正在关注数量" @@ -648,9 +648,9 @@ pollVotesCount: "问卷调查的投票数" pollVotedCount: "问卷调查的被投票数" yes: "是" no: "否" -driveFilesCount: "磁盘文件数" -driveUsage: "磁盘空间用量" -noCrawle: "拒绝搜索器的索引" +driveFilesCount: "网盘的文件数" +driveUsage: "网盘的空间用量" +noCrawle: "拒绝搜索引擎的索引" noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。" lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。" alwaysMarkSensitive: "默认将媒体文件标记为敏感内容" @@ -665,7 +665,7 @@ pageLikedCount: "页面被点赞次数" reversiCount: "黑白棋对战次数" contact: "联系人" useSystemFont: "使用系统默认字体" -clips: "片段" +clips: "书签" experimentalFeatures: "实验性功能" developer: "开发者" makeExplorable: "使账号可见。" @@ -697,7 +697,7 @@ saveConfirm: "确定保存?" deleteConfirm: "确定删除?" invalidValue: "无效值。" registry: "注册表" -closeAccount: "关闭账户" +closeAccount: "永久注销账户" currentVersion: "当前版本" latestVersion: "最新版本" youAreRunningUpToDateClient: "您所使用的客户端已经是最新的。" @@ -761,13 +761,17 @@ middle: "中" low: "低" emailNotConfiguredWarning: "电子邮件地址未设置。" ratio: "比率" +customCss: "自定义 CSS" +customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用!" +global: "全局" +squareAvatars: "显示方形头像图标" _ad: back: "返回" reduceFrequencyOfThisAd: "减少此广告的频率" _forgotPassword: - enterEmail: "请输入您用来注册帐户的电子邮件地址。密码重置链接将发送到该地址。" - ifNoEmail: "如果您没有使用电子邮件地址注册,请联系管理员。" - contactAdmin: "该实例不支持电子邮件。如果您想重设密码,请联系管理员。" + enterEmail: "请输入您验证账号时用的电子邮箱地址,密码重置链接将发送至该邮箱上。" + ifNoEmail: "如果您没有使用电子邮件地址进行验证,请联系管理员。" + contactAdmin: "该实例不支持发送电子邮件。如果您想重设密码,请联系管理员。" _gallery: my: "我的图库" liked: "喜欢的图片" @@ -777,7 +781,7 @@ _email: _follow: title: "你有新的关注者" _receiveFollowRequest: - title: "收到关注请求" + title: "收到了关注请求" _plugin: install: "安装插件" installWarn: "请不要安装不可信的插件。" @@ -910,19 +914,20 @@ _channel: following: "正在关注" usersCount: "有{n}人参与" notesCount: "有{n}个帖子" -_sidebar: - full: "全部" - icon: "图标" +_menuDisplay: + sideFull: "横向" + sideIcon: "横向(图标)" + top: "顶部" hide: "隐藏" _wordMute: muteWords: "禁用词" muteWordsDescription: "使用空格分隔表示AND逻辑,使用换行符分隔表示OR逻辑。" muteWordsDescription2: "将关键字用斜线括起来表示正则表达式。" - softDescription: "隐藏时间线中指定条件的帖文。" - hardDescription: "防止将具有指定条件的帖文添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。" + softDescription: "隐藏时间线中指定条件的帖子。" + hardDescription: "防止将具有指定条件的帖子添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。" soft: "软屏蔽" hard: "硬屏蔽" - mutedNotes: "被屏蔽的帖文" + mutedNotes: "被屏蔽的帖子" _theme: explore: "寻找主题" install: "安装主题" @@ -948,8 +953,8 @@ _theme: argument: "参数" basedProp: "基于的属性名称" alpha: "不透明度" - darken: "暗色" - lighten: "亮色" + darken: "深色" + lighten: "浅色" inputConstantName: "请输入常量名称" importInfo: "您可以在此处粘贴主题代码,将其导入到编辑器中" deleteConstantConfirm: "确定要删除常量{const}吗?" @@ -984,18 +989,18 @@ _theme: cwBg: "CW 按钮背景" cwFg: "CW 按钮文本" cwHoverBg: "CW 按钮背景(悬停)" - toastBg: "吐司通知背景" - toastFg: "吐司通知文本" + toastBg: "Toast通知背景" + toastFg: "Toast通知文本" buttonBg: "按钮背景" buttonHoverBg: "按钮背景(悬停)" inputBorder: "输入框边框" listItemHoverBg: "下拉列表项目背景(悬停)" - driveFolderBg: "驱动器文件夹背景" + driveFolderBg: "网盘的文件夹背景" wallpaperOverlay: "壁纸叠加层" badge: "徽章" messageBg: "聊天背景" - accentDarken: "强调色(暗)" - accentLighten: "强调色(亮)" + accentDarken: "强调色(深)" + accentLighten: "强调色(浅)" fgHighlighted: "高亮显示文本" _sfx: note: "帖子" @@ -1094,9 +1099,9 @@ _auth: _antennaSources: all: "所有帖子" homeTimeline: "已关注用户的帖子" - users: "来自特定用户的帖子" - userList: "来自特定清单中的帖子" - userGroup: "来自特定组中用户的帖子" + users: "来自指定用户的帖子" + userList: "来自指定列表中的帖子" + userGroup: "来自指定群组中用户的帖子" _weekday: sunday: "星期日" monday: "星期一" @@ -1122,7 +1127,7 @@ _widgets: button: "按钮" onlineUsers: "在线用户" jobQueue: "作业队列" - serverMetric: "服务器指标" + serverMetric: "服务器监控" aiscript: "AiScript控制台" _cw: hide: "隐藏" @@ -1135,7 +1140,7 @@ _poll: noMore: "无法再添加更多了" canMultipleVote: "允许多个投票" expiration: "截止时间" - infinite: "无限期" + infinite: "不限时间" at: "指定日期" after: "指定时间" deadlineDate: "截止日期" @@ -1174,7 +1179,7 @@ _postForm: e: "请写下来吧" f: "等待您的发布..." _profile: - name: "名称" + name: "昵称" username: "用户名" description: "个人简介" youCanIncludeHashtags: "您可以包含一个哈希标签。" @@ -1287,7 +1292,7 @@ _rooms: _pages: newPage: "创建页面" editPage: "编辑页面" - readPage: "查看源" + readPage: "查看页面" created: "页面已创建" updated: "页面已更新" deleted: "该页面已被删除" @@ -1600,7 +1605,7 @@ _notification: reaction: "回应" pollVote: "问卷调查被投票" receiveFollowRequest: "收到关注请求" - followRequestAccepted: "关注请求已接受" + followRequestAccepted: "关注请求已通过" groupInvited: "加入群组邀请" app: "关联应用的通知" _deck: diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index dd9552a87..7010220fc 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -14,7 +14,7 @@ gotIt: "知道了" cancel: "取消" enterUsername: "輸入使用者名稱" renotedBy: "{user} 轉傳了" -noNotes: "貼文不可用。" +noNotes: "無貼文。" noNotifications: "沒有通知" instance: "實例" settings: "設定" @@ -47,8 +47,8 @@ deleteAndEdit: "刪除並編輯" deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有情感、轉發和回覆也將會消失。" addToList: "加入至清單" sendMessage: "發送訊息" -copyUsername: "複製用戶名" -searchUser: "搜尋用戶" +copyUsername: "複製使用者名稱" +searchUser: "搜尋使用者" reply: "回覆" loadMore: "載入更多" showMore: "載入更多" @@ -279,6 +279,7 @@ emptyDrive: "雲端硬碟為空" emptyFolder: "資料夾為空" unableToDelete: "無法刪除" inputNewFileName: "輸入檔案名稱" +inputNewDescription: "請輸入新標題 " inputNewFolderName: "輸入新資料夾的名稱" circularReferenceFolder: "目標文件夾是您要移動的文件夾的子文件夾。" hasChildFilesOrFolders: "此文件夾不是空的,無法刪除。" @@ -310,6 +311,8 @@ monthX: "{month}月" yearX: "{year}年" pages: "頁面" integration: "整合" +connectService: "己連結" +disconnectService: "己斷開 " enableLocalTimeline: "開啟本地時間軸" enableGlobalTimeline: "啟用公開時間軸" disablingTimelinesInfo: "即使您關閉了時間線功能,管理員和協調人仍可以繼續使用,以方便您。" @@ -323,6 +326,7 @@ driveCapacityPerRemoteAccount: "每個非本地用戶的雲端容量" inMb: "以Mbps為單位" iconUrl: "圖像URL" bannerUrl: "橫幅圖像URL" +backgroundImageUrl: "背景圖片的來源網址 " basicInfo: "基本資訊" pinnedUsers: "置頂用戶" pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的使用者。" @@ -474,7 +478,9 @@ objectStorage: "Object Storage (物件儲存)" useObjectStorage: "使用Object Storage" objectStorageBaseUrl: "Base URL" objectStorageBucket: "儲存空間(Bucket)" +objectStorageBucketDesc: "請指定您正在使用的服務的存儲桶名稱。 " objectStoragePrefix: "前綴" +objectStoragePrefixDesc: "它存儲在此前綴目錄下。" objectStorageEndpoint: "端點(Endpoint)" objectStorageEndpointDesc: "如要使用AWS S3,請留空。否則請依照你使用的服務商的說明書進行設定,以''或 ':'的形式設定端點(Endpoint)。" objectStorageRegion: "地域(Region)" @@ -517,7 +523,6 @@ removeAllFollowing: "解除所有追蹤" removeAllFollowingDescription: "解除{host}所有的追蹤。在實例不再存在時執行。" userSuspended: "該使用者已被停用" userSilenced: "該用戶已被禁言。" -sidebar: "側邊列" divider: "分割線" addItem: "新增項目" rooms: "房間" @@ -537,6 +542,8 @@ disablePlayer: "關閉播放器" expandTweet: "展開推文" themeEditor: "主題編輯器" description: "描述" +describeFile: "添加標題 " +enterFileDescription: "輸入標題 " author: "作者" leaveConfirm: "有未保存的更改。要放棄嗎?" manage: "管理" @@ -730,12 +737,31 @@ switch: "切換" noMaintainerInformationWarning: "尚未設定管理員信息。" noBotProtectionWarning: "尚未設定Bot防護。" configure: "設定" +postToGallery: "發佈到相簿" +gallery: "相簿" +recentPosts: "最新貼文" +popularPosts: "熱門的貼文" +ads: "廣告" expiration: "期限" +memo: "備忘錄" +priority: "優先級" +high: "高" middle: "中" +low: "低" emailNotConfiguredWarning: "沒有設定電子郵件地址" +ratio: "%" +global: "公開" _ad: back: "返回" + reduceFrequencyOfThisAd: "降低此廣告的頻率 " +_forgotPassword: + enterEmail: "請輸入您的帳戶註冊的電子郵件地址。 密碼重置連結將被發送到該電子郵件地址。" + ifNoEmail: "如果您還沒有註冊您的電子郵件地址,請聯繫管理員。 " + contactAdmin: "此實例不支持電子郵件,請聯繫您的管理員重置您的密碼。 " _gallery: + my: "我的貼文" + liked: "喜歡的貼文" + like: "讚" unlike: "收回喜歡" _email: _follow: @@ -776,6 +802,7 @@ _mfm: url: "URL" urlDescription: "可以展示URL位址。" link: "鏈接" + linkDescription: "您可以將特定範圍的文章與 URL 相關聯。 " bold: "粗體" small: "縮小" center: "置中" @@ -786,7 +813,9 @@ _mfm: blockMath: "數學公式(方塊)" quote: "引用" emoji: "自訂表情符號" + emojiDescription: "您可以通過將自定義表情符號名稱括在冒號中來顯示自定義表情符號。 " search: "搜尋" + searchDescription: "您可以顯示所輸入的搜索框。" flip: "翻轉" flipDescription: "將內容上下或左右翻轉。" jelly: "動畫(果凍)" @@ -855,9 +884,7 @@ _channel: following: "關注中" usersCount: "有{n}人參與" notesCount: "有{n}個貼文" -_sidebar: - full: "全部" - icon: "大頭貼" +_menuDisplay: hide: "隱藏" _wordMute: muteWords: "加入靜音文字" @@ -879,17 +906,27 @@ _theme: constant: "常數" defaultValue: "預設值" color: "顏色" + refProp: "查看屬性 " + key: "按鍵" func: "函数" funcKind: "功能類型" argument: "參數" + basedProp: "要基於的屬性的名稱 " alpha: "透明度" darken: "暗度" lighten: "亮度" keys: + accent: "重點色彩" bg: "背景" fg: "文本" + focus: "聚焦" + indicator: "指標" panel: "面板" shadow: "陰影" + header: "標題" + navBg: "側邊欄的背景 " + navFg: "側邊欄的文字" + navHoverFg: "側邊欄文字(懸停) " navActive: "側邊欄文本 (活動)" navIndicator: "側邊欄指示符" link: "鏈接" @@ -971,6 +1008,7 @@ _tutorial: _2fa: alreadyRegistered: "此設備已經被註冊過了" registerDevice: "註冊裝置" + registerKey: "註冊鍵" step1: "首先,在您的設備上安裝二步驗證程式,例如{a}或{b}。" step2: "然後,掃描螢幕上的QR code。" _permissions: @@ -1040,6 +1078,7 @@ _widgets: button: "按鈕" onlineUsers: "線上的用戶" jobQueue: "佇列" + serverMetric: "服務器指標 " _cw: hide: "隱藏" show: "瀏覽更多" @@ -1053,6 +1092,7 @@ _poll: expiration: "期限" infinite: "無期限" at: "結束時間" + after: "進度指定 " deadlineDate: "截止日期" deadlineTime: "小時" duration: "時長" @@ -1067,6 +1107,7 @@ _poll: remainingSeconds: "{s}秒後截止" _visibility: public: "公開" + publicDescription: "發布給所有用戶 " home: "首頁" followers: "追隨者" specified: "指定使用者" @@ -1180,6 +1221,7 @@ _rooms: cube: "立方體" tv: "電視" pinguin: "企鵝蠟像" + rubik-cube: "魔術方塊" poster-h: "海報(橫向)" poster-v: "海報(直向)" sofa: " 沙發" @@ -1242,6 +1284,7 @@ _pages: post: "發佈窗口" _post: text: "内容" + attachCanvasImage: "附加相簿圖像 " canvasId: "畫布ID" textInput: "插入字串" _textInput: @@ -1266,6 +1309,7 @@ _pages: note: "嵌式貼文" _note: id: "貼文ID" + idDescription: "您也可以粘貼筆記 URL 並進行設置。 " detailed: "顯示詳細內容" switch: "開關" _switch: @@ -1282,12 +1326,15 @@ _pages: colored: "彩色" action: "按下按鈕後發生的行為" _action: + dialog: "顯示對話框 " _dialog: content: "内容" resetRandom: "重設亂數" pushEvent: "發送事件" _pushEvent: event: "事件名稱" + message: "按下時顯示的消息 " + variable: "要發送的變數" no-variable: "沒有" callAiScript: "調用AiScript" _callAiScript: @@ -1296,6 +1343,7 @@ _pages: _radioButton: name: "變數名稱" title: "標題" + values: "由換行符分隔的選項" default: "預設值" script: categories: @@ -1313,6 +1361,8 @@ _pages: text: "字串" multiLineText: "字串(多行)" textList: "字串串列" + _textList: + info: "請分開每個換行符 " strLen: "字串長度" _strLen: arg1: "字串" @@ -1323,6 +1373,8 @@ _pages: strReplace: "替換字串" _strReplace: arg1: "字串" + arg2: "替換前" + arg3: "替換後" strReverse: "倒轉字串" _strReverse: arg1: "字串" @@ -1389,6 +1441,7 @@ _pages: _if: arg1: "如果" arg2: "如果" + arg3: "除此以外 " not: "否" _not: arg1: "否" @@ -1399,13 +1452,17 @@ _pages: _rannum: arg1: "下限" arg2: "上限" + randomPick: "從列表中隨機選擇 " _randomPick: arg1: "清單" + dailyRandom: "隨機(使用者每日變化 )" _dailyRandom: arg1: "機率" + dailyRannum: "亂數(使用者每日變化)" _dailyRannum: arg1: "下限" arg2: "上限" + dailyRandomPick: "從列表中隨機選擇(使用者每日變化 ) " _dailyRandomPick: arg1: "清單" seedRandom: "隨機抽選種子碼" @@ -1444,7 +1501,10 @@ _pages: aiScriptVar: "AiScript的變數" fn: "函数" _fn: + slots: "欄位" + slots-info: "用換行符分隔每個欄位" arg1: "輸出" + for: "重複 " _for: arg1: "重複次數" arg2: "處理" @@ -1454,13 +1514,16 @@ _pages: boolean: "標記" array: "清單" stringArray: "字串列表" + emptySlot: "空欄位" enviromentVariables: "環境變數" pageVariables: "頁面元素" + argVariables: "輸入欄位" _relayStatus: requesting: "等待核准" accepted: "已通過核准" rejected: "已拒絕" _notification: + fileUploaded: "上傳檔案成功。" youGotMention: "{name}提及到您" youGotReply: "{name}回覆了您" youGotQuote: "{name}引用了您" diff --git a/package.json b/package.json index 44cf2404b..fa5dd8da3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo ", - "version": "12.83.0", + "version": "12.84.0", "codename": "indigo", "repository": { "type": "git", @@ -30,14 +30,11 @@ "format": "gulp format" }, "resolutions": { - "mfm-js/twemoji-parser": "13.1.x", "chokidar": "^3.3.1", - "constantinople": "^4.0.1", - "jsonld/rdf-canonize/node-forge": "0.10.0", - "lodash": "^4.17.20" + "lodash": "^4.17.21" }, "dependencies": { - "@babel/plugin-transform-runtime": "7.14.3", + "@babel/plugin-transform-runtime": "7.14.5", "@elastic/elasticsearch": "7.11.0", "@koa/cors": "3.1.0", "@koa/multer": "3.0.0", @@ -47,94 +44,94 @@ "@sinonjs/fake-timers": "7.1.2", "@syuilo/aiscript": "0.11.1", "@types/bcryptjs": "2.4.2", - "@types/bull": "3.15.1", + "@types/bull": "3.15.2", "@types/cbor": "6.0.0", "@types/dateformat": "3.0.1", "@types/escape-regexp": "0.0.0", - "@types/glob": "7.1.3", - "@types/gulp": "4.0.8", - "@types/gulp-rename": "2.0.0", - "@types/is-url": "1.2.29", - "@types/js-yaml": "4.0.1", - "@types/jsdom": "16.2.10", - "@types/jsonld": "1.5.5", - "@types/katex": "0.11.0", - "@types/koa": "2.13.3", - "@types/koa-bodyparser": "4.3.1", - "@types/koa-cors": "0.0.0", - "@types/koa-favicon": "2.0.19", + "@types/glob": "7.1.4", + "@types/gulp": "4.0.9", + "@types/gulp-rename": "2.0.1", + "@types/is-url": "1.2.30", + "@types/js-yaml": "4.0.2", + "@types/jsdom": "16.2.13", + "@types/jsonld": "1.5.6", + "@types/katex": "0.11.1", + "@types/koa": "2.13.4", + "@types/koa-bodyparser": "4.3.2", + "@types/koa-cors": "0.0.1", + "@types/koa-favicon": "2.0.21", "@types/koa-logger": "3.1.1", "@types/koa-mount": "4.0.0", - "@types/koa-send": "4.1.2", + "@types/koa-send": "4.1.3", "@types/koa-views": "7.0.0", - "@types/koa__cors": "3.0.2", - "@types/koa__multer": "2.0.2", - "@types/koa__router": "8.0.4", - "@types/markdown-it": "12.0.2", - "@types/matter-js": "0.14.12", - "@types/mocha": "8.2.2", - "@types/node": "15.12.2", - "@types/node-fetch": "2.5.10", - "@types/nodemailer": "6.4.2", + "@types/koa__cors": "3.0.3", + "@types/koa__multer": "2.0.3", + "@types/koa__router": "8.0.7", + "@types/markdown-it": "12.0.3", + "@types/matter-js": "0.17.3", + "@types/mocha": "8.2.3", + "@types/node": "16.3.3", + "@types/node-fetch": "2.5.11", + "@types/nodemailer": "6.4.4", "@types/nprogress": "0.2.0", "@types/oauth": "0.9.1", - "@types/parse5": "6.0.0", + "@types/parse5": "6.0.1", "@types/parsimmon": "1.10.6", - "@types/portscanner": "2.1.0", - "@types/pug": "2.0.4", + "@types/portscanner": "2.1.1", + "@types/pug": "2.0.5", "@types/punycode": "2.1.0", - "@types/qrcode": "1.4.0", + "@types/qrcode": "1.4.1", "@types/random-seed": "0.3.3", - "@types/ratelimiter": "3.4.1", - "@types/redis": "2.8.29", - "@types/rename": "1.0.3", + "@types/ratelimiter": "3.4.2", + "@types/redis": "2.8.31", + "@types/rename": "1.0.4", "@types/request-stats": "3.0.0", - "@types/rimraf": "3.0.0", + "@types/rimraf": "3.0.1", "@types/seedrandom": "2.4.28", - "@types/sharp": "0.28.3", - "@types/sinonjs__fake-timers": "6.0.2", - "@types/speakeasy": "2.0.5", + "@types/sharp": "0.28.4", + "@types/sinonjs__fake-timers": "6.0.3", + "@types/speakeasy": "2.0.6", "@types/throttle-debounce": "2.1.0", - "@types/tinycolor2": "1.4.2", - "@types/tmp": "0.2.0", - "@types/uuid": "8.3.0", - "@types/web-push": "3.3.0", + "@types/tinycolor2": "1.4.3", + "@types/tmp": "0.2.1", + "@types/uuid": "8.3.1", + "@types/web-push": "3.3.2", "@types/webpack": "5.28.0", "@types/webpack-stream": "3.2.12", - "@types/websocket": "1.0.2", - "@types/ws": "7.4.4", - "@typescript-eslint/parser": "4.26.1", - "@vue/compiler-sfc": "3.1.1", + "@types/websocket": "1.0.3", + "@types/ws": "7.4.6", + "@typescript-eslint/parser": "4.28.3", + "@vue/compiler-sfc": "3.2.0-beta.2", "abort-controller": "3.0.0", - "apexcharts": "3.27.1", + "apexcharts": "3.27.2", "autobind-decorator": "2.4.0", "autosize": "4.0.4", "autwh": "0.1.0", - "aws-sdk": "2.923.0", + "aws-sdk": "2.948.0", "bcryptjs": "2.4.3", "blurhash": "1.1.3", - "broadcast-channel": "3.6.0", - "bull": "3.22.7", + "broadcast-channel": "3.7.0", + "bull": "3.26.0", "cafy": "15.2.1", - "cbor": "7.0.5", + "cbor": "7.0.6", "chalk": "4.1.1", "chart.js": "2.9.4", "cli-highlight": "2.1.11", "commander": "7.2.0", "concurrently": "6.2.0", "content-disposition": "0.5.3", - "core-js": "3.14.0", + "core-js": "3.15.2", "crc-32": "1.2.0", - "css-loader": "5.2.6", - "cssnano": "5.0.5", + "css-loader": "6.0.0", + "cssnano": "5.0.6", "dateformat": "4.5.1", "diskusage": "1.1.3", "escape-regexp": "0.0.1", - "eslint": "7.28.0", - "eslint-plugin-vue": "7.10.0", + "eslint": "7.30.0", + "eslint-plugin-vue": "7.13.0", "eventemitter3": "4.0.7", "feed": "4.2.2", - "file-type": "16.5.0", + "file-type": "16.5.1", "fluent-ffmpeg": "2.1.2", "glob": "7.1.7", "got": "11.8.2", @@ -157,7 +154,7 @@ "jsdom": "16.6.0", "json5": "2.2.0", "json5-loader": "4.0.1", - "jsonld": "4.0.1", + "jsonld": "5.2.0", "jsrsasign": "8.0.20", "katex": "0.13.11", "koa": "2.13.1", @@ -171,26 +168,26 @@ "koa-views": "7.0.1", "langmap": "0.0.16", "lookup-dns-cache": "2.1.0", - "markdown-it": "12.0.6", + "markdown-it": "12.1.0", "markdown-it-anchor": "7.1.0", "matter-js": "0.17.1", - "mfm-js": "0.18.0", - "misskey-js": "0.0.4", + "mfm-js": "0.19.0", + "misskey-js": "0.0.6", "mocha": "8.4.0", "moji": "0.5.1", "ms": "2.1.3", "multer": "1.4.2", "nested-property": "4.0.0", "node-fetch": "2.6.1", - "nodemailer": "6.6.1", + "nodemailer": "6.6.3", "object-assign-deep": "0.4.0", "os-utils": "0.0.14", "parse5": "6.0.1", "pg": "8.6.0", "portscanner": "2.2.0", - "postcss": "8.3.0", - "postcss-loader": "5.3.0", - "prismjs": "1.23.0", + "postcss": "8.3.5", + "postcss-loader": "6.1.1", + "prismjs": "1.24.1", "probe-image-size": "7.2.1", "promise-limit": "2.7.0", "promise-sequential": "1.1.1", @@ -212,16 +209,16 @@ "rimraf": "3.0.2", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.34.1", - "sass-loader": "12.0.0", + "sass": "1.35.2", + "sass-loader": "12.1.0", "seedrandom": "3.0.5", "sharp": "0.28.3", "speakeasy": "2.0.0", "stringz": "2.1.0", - "style-loader": "2.0.0", + "style-loader": "3.1.0", "summaly": "2.4.0", "syslog-pro": "1.0.0", - "systeminformation": "5.7.4", + "systeminformation": "5.7.7", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "three": "0.117.1", @@ -229,32 +226,32 @@ "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.2.3", - "ts-node": "10.0.0", - "tsc-alias": "1.3.2", - "tsconfig-paths": "3.9.0", + "ts-node": "10.1.0", + "tsc-alias": "1.3.7", + "tsconfig-paths": "3.10.1", "tslint": "6.1.3", "tslint-sonarts": "1.9.0", "twemoji-parser": "13.1.0", - "typeorm": "0.2.34", - "typescript": "4.3.2", + "typeorm": "0.2.32", + "typescript": "4.3.5", "ulid": "2.3.0", "uuid": "8.3.2", "v-debounce": "0.1.2", "vanilla-tilt": "1.7.0", - "vue": "3.1.1", + "vue": "3.2.0-beta.2", "vue-color": "2.8.1", - "vue-json-pretty": "1.7.1", - "vue-loader": "16.1.2", + "vue-json-pretty": "1.8.1", + "vue-loader": "16.3.1", "vue-prism-editor": "2.0.0-alpha.2", "vue-router": "4.0.5", "vue-style-loader": "4.1.3", "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", - "web-push": "3.4.4", - "webpack": "5.38.1", + "web-push": "3.4.5", + "webpack": "5.45.1", "webpack-cli": "4.7.2", "websocket": "1.0.34", - "ws": "7.4.6", + "ws": "7.5.3", "xev": "2.0.1" }, "devDependencies": { diff --git a/src/client/account.ts b/src/client/account.ts index 6f06ee0f3..2b860b3dd 100644 --- a/src/client/account.ts +++ b/src/client/account.ts @@ -8,6 +8,8 @@ import { unisonReload } from '@client/scripts/unison-reload'; type Account = { id: string; token: string; + isModerator: boolean; + isAdmin: boolean; }; const data = localStorage.getItem('account'); @@ -45,7 +47,7 @@ function fetchAccount(token): Promise { }) .then(res => { // When failed to authenticate user - if (res.status !== 200 && res.status < 500) { + if (res.status >= 400 && res.status < 500) { return signout(); } diff --git a/src/client/components/analog-clock.vue b/src/client/components/analog-clock.vue index 8aa51898b..bc572e5ff 100644 --- a/src/client/components/analog-clock.vue +++ b/src/client/components/analog-clock.vue @@ -5,7 +5,8 @@ :cy="5 - (Math.cos(angle) * (5 - graduationsPadding))" :r="i % 5 == 0 ? 0.125 : 0.05" :fill="i % 5 == 0 ? majorGraduationColor : minorGraduationColor" - :key="i"/> + :key="i" + /> + :stroke-width="thickness / 2" + stroke-linecap="round" + /> + :stroke-width="thickness" + stroke-linecap="round" + /> + :stroke-width="thickness" + stroke-linecap="round" + /> diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue index fdbae0b8a..cc40d2be9 100644 --- a/src/client/pages/settings/general.vue +++ b/src/client/pages/settings/general.vue @@ -37,6 +37,7 @@ {{ $ts.showGapBetweenNotesInTimeline }} {{ $ts.loadRawImages }} {{ $ts.disableShowingAnimatedImages }} + {{ $ts.squareAvatars }} {{ $ts.useSystemFont }} {{ $ts.useOsNativeEmojis }}
@@ -78,6 +79,8 @@ {{ $ts.deck }} + + {{ $ts.customCss }} @@ -143,6 +146,7 @@ export default defineComponent({ instanceTicker: defaultStore.makeGetterSetter('instanceTicker'), enableInfiniteScroll: defaultStore.makeGetterSetter('enableInfiniteScroll'), useReactionPickerForContextMenu: defaultStore.makeGetterSetter('useReactionPickerForContextMenu'), + squareAvatars: defaultStore.makeGetterSetter('squareAvatars'), }, watch: { @@ -174,6 +178,10 @@ export default defineComponent({ this.reloadAsk(); }, + squareAvatars() { + this.reloadAsk(); + }, + showGapBetweenNotesInTimeline() { this.reloadAsk(); }, diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index 3fd10fc44..17b373fcd 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -26,7 +26,7 @@ {{ $ts.general }} {{ $ts.theme }} - {{ $ts.sidebar }} + {{ $ts.menu }} {{ $ts.sounds }} {{ $ts.plugins }} @@ -121,8 +121,9 @@ export default defineComponent({ case 'theme': return defineAsyncComponent(() => import('./theme.vue')); case 'theme/install': return defineAsyncComponent(() => import('./theme.install.vue')); case 'theme/manage': return defineAsyncComponent(() => import('./theme.manage.vue')); - case 'sidebar': return defineAsyncComponent(() => import('./sidebar.vue')); + case 'menu': return defineAsyncComponent(() => import('./menu.vue')); case 'sounds': return defineAsyncComponent(() => import('./sounds.vue')); + case 'custom-css': return defineAsyncComponent(() => import('./custom-css.vue')); case 'deck': return defineAsyncComponent(() => import('./deck.vue')); case 'plugin': return defineAsyncComponent(() => import('./plugin.vue')); case 'plugin/install': return defineAsyncComponent(() => import('./plugin.install.vue')); diff --git a/src/client/pages/settings/sidebar.vue b/src/client/pages/settings/menu.vue similarity index 70% rename from src/client/pages/settings/sidebar.vue rename to src/client/pages/settings/menu.vue index f0172e945..4b315145e 100644 --- a/src/client/pages/settings/sidebar.vue +++ b/src/client/pages/settings/menu.vue @@ -1,18 +1,18 @@ @@ -26,9 +26,10 @@ import FormBase from '@client/components/form/base.vue'; import FormGroup from '@client/components/form/group.vue'; import FormButton from '@client/components/form/button.vue'; import * as os from '@client/os'; -import { sidebarDef } from '@client/sidebar'; +import { menuDef } from '@client/menu'; import { defaultStore } from '@client/store'; import * as symbols from '@client/symbols'; +import { unisonReload } from '@client/scripts/unison-reload'; export default defineComponent({ components: { @@ -43,11 +44,11 @@ export default defineComponent({ data() { return { [symbols.PAGE_INFO]: { - title: this.$ts.sidebar, + title: this.$ts.menu, icon: 'fas fa-list-ul' }, - menuDef: sidebarDef, - items: '', + menuDef: menuDef, + items: defaultStore.state.menu.join('\n'), } }, @@ -56,11 +57,17 @@ export default defineComponent({ return this.items.trim().split('\n').filter(x => x.trim() !== ''); }, - sidebarDisplay: defaultStore.makeGetterSetter('sidebarDisplay') + menuDisplay: defaultStore.makeGetterSetter('menuDisplay') }, - created() { - this.items = this.$store.state.menu.join('\n'); + watch: { + menuDisplay() { + this.reloadAsk(); + }, + + items() { + this.save(); + }, }, mounted() { @@ -84,7 +91,6 @@ export default defineComponent({ }); if (canceled) return; this.items = [...this.splited, item].join('\n'); - this.save(); }, save() { @@ -95,7 +101,6 @@ export default defineComponent({ reset() { this.$store.reset('menu'); this.items = this.$store.state.menu.join('\n'); - this.reloadAsk(); }, async reloadAsk() { @@ -106,7 +111,7 @@ export default defineComponent({ }); if (canceled) return; - location.reload(); + unisonReload(); } }, }); diff --git a/src/client/pages/settings/theme.vue b/src/client/pages/settings/theme.vue index 1eb0d68be..94eddb1b6 100644 --- a/src/client/pages/settings/theme.vue +++ b/src/client/pages/settings/theme.vue @@ -71,7 +71,7 @@ {{ $ts.removeWallpaper }} - {{ $ts._theme.explore }} + {{ $ts._theme.explore }} {{ $ts._theme.install }} diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue index 717ca5d8f..f5c5a0694 100644 --- a/src/client/pages/user/index.vue +++ b/src/client/pages/user/index.vue @@ -234,7 +234,7 @@ import MkRemoteCaution from '@client/components/remote-caution.vue'; import MkTab from '@client/components/tab.vue'; import MkInfo from '@client/components/ui/info.vue'; import Progress from '@client/scripts/loading'; -import parseAcct from '@/misc/acct/parse'; +import { parseAcct } from '@/misc/acct'; import { getScrollPosition } from '@client/scripts/scroll'; import { getUserMenu } from '@client/scripts/get-user-menu'; import number from '../../filters/number'; diff --git a/src/client/pages/welcome.timeline.vue b/src/client/pages/welcome.timeline.vue index 12c8a4d4f..bd07ac78d 100644 --- a/src/client/pages/welcome.timeline.vue +++ b/src/client/pages/welcome.timeline.vue @@ -1,10 +1,22 @@ @@ -12,16 +24,21 @@ diff --git a/src/client/ui/default.sidebar.vue b/src/client/ui/default.sidebar.vue index c7e2d30c7..2e0336878 100644 --- a/src/client/ui/default.sidebar.vue +++ b/src/client/ui/default.sidebar.vue @@ -45,7 +45,7 @@ import { defineComponent } from 'vue'; import { host } from '@client/config'; import { search } from '@client/scripts/search'; import * as os from '@client/os'; -import { sidebarDef } from '@client/sidebar'; +import { menuDef } from '@client/menu'; import { getAccounts, addAccount, login } from '@client/account'; import MkButton from '@client/components/ui/button.vue'; import { StickySidebar } from '@client/scripts/sticky-sidebar'; @@ -62,7 +62,7 @@ export default defineComponent({ host: host, accounts: [], connection: null, - menuDef: sidebarDef, + menuDef: menuDef, iconOnly: false, settingsWindowed: false, }; @@ -83,7 +83,7 @@ export default defineComponent({ }, watch: { - '$store.reactiveState.sidebarDisplay.value'() { + '$store.reactiveState.menuDisplay.value'() { this.calcViewState(); }, @@ -108,7 +108,7 @@ export default defineComponent({ methods: { calcViewState() { - this.iconOnly = (window.innerWidth <= 1400) || (this.$store.state.sidebarDisplay === 'icon'); + this.iconOnly = (window.innerWidth <= 1400) || (this.$store.state.menuDisplay === 'sideIcon'); this.settingsWindowed = (window.innerWidth > 1400); }, diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue index 3c87bf7ab..c8a16cff0 100644 --- a/src/client/ui/default.vue +++ b/src/client/ui/default.vue @@ -1,9 +1,16 @@