Merge branch 'dev' of github.com:MomentQYC/misskey into dev
This commit is contained in:
commit
40d7dc0ca6
|
@ -21,6 +21,8 @@
|
||||||
### Client
|
### Client
|
||||||
- Enhance: デザインの調整
|
- Enhance: デザインの調整
|
||||||
- Enhance: ログイン画面の認証フローを改善
|
- Enhance: ログイン画面の認証フローを改善
|
||||||
|
- Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正
|
||||||
|
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657)
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように
|
- Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように
|
||||||
|
|
|
@ -626,10 +626,7 @@ abuseReported: "أُرسل البلاغ، شكرًا لك"
|
||||||
reporter: "المُبلّغ"
|
reporter: "المُبلّغ"
|
||||||
reporteeOrigin: "أصل البلاغ"
|
reporteeOrigin: "أصل البلاغ"
|
||||||
reporterOrigin: "أصل المُبلّغ"
|
reporterOrigin: "أصل المُبلّغ"
|
||||||
forwardReport: "وجّه البلاغ إلى المثيل البعيد"
|
|
||||||
forwardReportIsAnonymous: "في المثيل البعيد سيظهر المبلّغ كحساب مجهول."
|
|
||||||
send: "أرسل"
|
send: "أرسل"
|
||||||
abuseMarkAsResolved: "علّم البلاغ كمحلول"
|
|
||||||
openInNewTab: "افتح في لسان جديد"
|
openInNewTab: "افتح في لسان جديد"
|
||||||
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
|
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
|
||||||
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
|
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
|
||||||
|
|
|
@ -624,10 +624,7 @@ abuseReported: "আপনার অভিযোগটি দাখিল কর
|
||||||
reporter: "অভিযোগকারী"
|
reporter: "অভিযোগকারী"
|
||||||
reporteeOrigin: "অভিযোগটির উৎস"
|
reporteeOrigin: "অভিযোগটির উৎস"
|
||||||
reporterOrigin: "অভিযোগকারীর উৎস"
|
reporterOrigin: "অভিযোগকারীর উৎস"
|
||||||
forwardReport: "রিমোট ইন্সত্যান্সে অভিযোগটি পাঠান"
|
|
||||||
forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন্সত্যান্সে পাঠানো হবে না এবং একটি বেনামী সিস্টেম অ্যাকাউন্ট হিসাবে প্রদর্শিত হবে।"
|
|
||||||
send: "পাঠান"
|
send: "পাঠান"
|
||||||
abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন"
|
|
||||||
openInNewTab: "নতুন ট্যাবে খুলুন"
|
openInNewTab: "নতুন ট্যাবে খুলুন"
|
||||||
openInSideView: "সাইড ভিউতে খুলুন"
|
openInSideView: "সাইড ভিউতে খুলুন"
|
||||||
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
|
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
|
||||||
|
|
|
@ -8,6 +8,8 @@ search: "Cercar"
|
||||||
notifications: "Notificacions"
|
notifications: "Notificacions"
|
||||||
username: "Nom d'usuari"
|
username: "Nom d'usuari"
|
||||||
password: "Contrasenya"
|
password: "Contrasenya"
|
||||||
|
initialPasswordForSetup: "Contrasenya inicial per la configuració inicial"
|
||||||
|
initialPasswordIsIncorrect: "La contrasenya no és correcta."
|
||||||
forgotPassword: "Contrasenya oblidada"
|
forgotPassword: "Contrasenya oblidada"
|
||||||
fetchingAsApObject: "Cercant en el Fediverse..."
|
fetchingAsApObject: "Cercant en el Fediverse..."
|
||||||
ok: "OK"
|
ok: "OK"
|
||||||
|
@ -716,10 +718,7 @@ abuseReported: "La teva denúncia s'ha enviat. Moltes gràcies."
|
||||||
reporter: "Denunciant "
|
reporter: "Denunciant "
|
||||||
reporteeOrigin: "Origen de la denúncia "
|
reporteeOrigin: "Origen de la denúncia "
|
||||||
reporterOrigin: "Origen del denunciant"
|
reporterOrigin: "Origen del denunciant"
|
||||||
forwardReport: "Transferir la denúncia a una instància remota"
|
|
||||||
forwardReportIsAnonymous: "En lloc del teu compte, es farà servir un compte anònim com a denunciant al servidor remot."
|
|
||||||
send: "Envia"
|
send: "Envia"
|
||||||
abuseMarkAsResolved: "Marca la denúncia com a resolta"
|
|
||||||
openInNewTab: "Obre a una pestanya nova"
|
openInNewTab: "Obre a una pestanya nova"
|
||||||
openInSideView: "Obre a una vista lateral"
|
openInSideView: "Obre a una vista lateral"
|
||||||
defaultNavigationBehaviour: "Navegació per defecte"
|
defaultNavigationBehaviour: "Navegació per defecte"
|
||||||
|
@ -921,6 +920,7 @@ followersVisibility: "Visibilitat dels seguidors"
|
||||||
continueThread: "Veure la continuació del fil"
|
continueThread: "Veure la continuació del fil"
|
||||||
deleteAccountConfirm: "Això eliminarà el teu compte irreversiblement. Procedir?"
|
deleteAccountConfirm: "Això eliminarà el teu compte irreversiblement. Procedir?"
|
||||||
incorrectPassword: "Contrasenya incorrecta."
|
incorrectPassword: "Contrasenya incorrecta."
|
||||||
|
incorrectTotp: "La contrasenya no és correcta, o ha caducat."
|
||||||
voteConfirm: "Confirma el teu vot \"{choice}\""
|
voteConfirm: "Confirma el teu vot \"{choice}\""
|
||||||
hide: "Amagar"
|
hide: "Amagar"
|
||||||
useDrawerReactionPickerForMobile: "Mostrar el selector de reaccions com un calaix al mòbil "
|
useDrawerReactionPickerForMobile: "Mostrar el selector de reaccions com un calaix al mòbil "
|
||||||
|
|
|
@ -657,10 +657,7 @@ abuseReported: "Nahlášení bylo odesláno. Děkujeme převelice."
|
||||||
reporter: "Nahlásil"
|
reporter: "Nahlásil"
|
||||||
reporteeOrigin: "Původ nahlášení"
|
reporteeOrigin: "Původ nahlášení"
|
||||||
reporterOrigin: "Původ nahlasovače"
|
reporterOrigin: "Původ nahlasovače"
|
||||||
forwardReport: "Přeposlat nahlášení do vzdálené instance"
|
|
||||||
forwardReportIsAnonymous: "Místo vašeho účtu se ve vzdálené instanci zobrazí anonymní systémový účet jako nahlašovač."
|
|
||||||
send: "Odeslat"
|
send: "Odeslat"
|
||||||
abuseMarkAsResolved: "Označit nahlášení jako vyřešené"
|
|
||||||
openInNewTab: "Otevřít v nové kartě"
|
openInNewTab: "Otevřít v nové kartě"
|
||||||
openInSideView: "Otevřít v bočním panelu"
|
openInSideView: "Otevřít v bočním panelu"
|
||||||
defaultNavigationBehaviour: "Výchozí chování navigace"
|
defaultNavigationBehaviour: "Výchozí chování navigace"
|
||||||
|
|
|
@ -686,10 +686,7 @@ abuseReported: "Deine Meldung wurde versendet. Vielen Dank."
|
||||||
reporter: "Melder"
|
reporter: "Melder"
|
||||||
reporteeOrigin: "Herkunft des Gemeldeten"
|
reporteeOrigin: "Herkunft des Gemeldeten"
|
||||||
reporterOrigin: "Herkunft des Meldenden"
|
reporterOrigin: "Herkunft des Meldenden"
|
||||||
forwardReport: "Meldung an fremde Instanz weiterleiten"
|
|
||||||
forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt."
|
|
||||||
send: "Senden"
|
send: "Senden"
|
||||||
abuseMarkAsResolved: "Meldung als gelöst markieren"
|
|
||||||
openInNewTab: "In neuem Tab öffnen"
|
openInNewTab: "In neuem Tab öffnen"
|
||||||
openInSideView: "In Seitenansicht öffnen"
|
openInSideView: "In Seitenansicht öffnen"
|
||||||
defaultNavigationBehaviour: "Standardnavigationsverhalten"
|
defaultNavigationBehaviour: "Standardnavigationsverhalten"
|
||||||
|
|
|
@ -719,10 +719,7 @@ abuseReported: "Your report has been sent. Thank you very much."
|
||||||
reporter: "Reporter"
|
reporter: "Reporter"
|
||||||
reporteeOrigin: "Reportee Origin"
|
reporteeOrigin: "Reportee Origin"
|
||||||
reporterOrigin: "Reporter Origin"
|
reporterOrigin: "Reporter Origin"
|
||||||
forwardReport: "Forward report to remote instance"
|
|
||||||
forwardReportIsAnonymous: "Instead of your account, an anonymous system account will be displayed as reporter at the remote instance."
|
|
||||||
send: "Send"
|
send: "Send"
|
||||||
abuseMarkAsResolved: "Mark report as resolved"
|
|
||||||
openInNewTab: "Open in new tab"
|
openInNewTab: "Open in new tab"
|
||||||
openInSideView: "Open in side view"
|
openInSideView: "Open in side view"
|
||||||
defaultNavigationBehaviour: "Default navigation behavior"
|
defaultNavigationBehaviour: "Default navigation behavior"
|
||||||
|
|
|
@ -700,10 +700,7 @@ abuseReported: "Se ha enviado el reporte. Muchas gracias."
|
||||||
reporter: "Reportador"
|
reporter: "Reportador"
|
||||||
reporteeOrigin: "Reportar a"
|
reporteeOrigin: "Reportar a"
|
||||||
reporterOrigin: "Origen del reporte"
|
reporterOrigin: "Origen del reporte"
|
||||||
forwardReport: "Transferir un informe a una instancia remota"
|
|
||||||
forwardReportIsAnonymous: "No puede ver su información de la instancia remota y aparecerá como una cuenta anónima del sistema"
|
|
||||||
send: "Enviar"
|
send: "Enviar"
|
||||||
abuseMarkAsResolved: "Marcar reporte como resuelto"
|
|
||||||
openInNewTab: "Abrir en una Nueva Pestaña"
|
openInNewTab: "Abrir en una Nueva Pestaña"
|
||||||
openInSideView: "Abrir en una vista al costado"
|
openInSideView: "Abrir en una vista al costado"
|
||||||
defaultNavigationBehaviour: "Navegación por defecto"
|
defaultNavigationBehaviour: "Navegación por defecto"
|
||||||
|
|
|
@ -691,10 +691,7 @@ abuseReported: "Le rapport est envoyé. Merci."
|
||||||
reporter: "Signalé par"
|
reporter: "Signalé par"
|
||||||
reporteeOrigin: "Origine du signalement"
|
reporteeOrigin: "Origine du signalement"
|
||||||
reporterOrigin: "Signalé par"
|
reporterOrigin: "Signalé par"
|
||||||
forwardReport: "Transférer le signalement à l’instance distante"
|
|
||||||
forwardReportIsAnonymous: "L'instance distante ne sera pas en mesure de voir vos informations et apparaîtra comme un compte anonyme du système."
|
|
||||||
send: "Envoyer"
|
send: "Envoyer"
|
||||||
abuseMarkAsResolved: "Marquer le signalement comme résolu"
|
|
||||||
openInNewTab: "Ouvrir dans un nouvel onglet"
|
openInNewTab: "Ouvrir dans un nouvel onglet"
|
||||||
openInSideView: "Ouvrir en vue latérale"
|
openInSideView: "Ouvrir en vue latérale"
|
||||||
defaultNavigationBehaviour: "Navigation par défaut"
|
defaultNavigationBehaviour: "Navigation par défaut"
|
||||||
|
|
|
@ -702,10 +702,7 @@ abuseReported: "Laporan kamu telah dikirimkan. Terima kasih."
|
||||||
reporter: "Pelapor"
|
reporter: "Pelapor"
|
||||||
reporteeOrigin: "Yang dilaporkan"
|
reporteeOrigin: "Yang dilaporkan"
|
||||||
reporterOrigin: "Pelapor"
|
reporterOrigin: "Pelapor"
|
||||||
forwardReport: "Teruskan laporan ke instansi luar"
|
|
||||||
forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari sistem akan digunakan sebagai pelapor pada instansi luar."
|
|
||||||
send: "Kirim"
|
send: "Kirim"
|
||||||
abuseMarkAsResolved: "Tandai laporan sebagai selesai"
|
|
||||||
openInNewTab: "Buka di tab baru"
|
openInNewTab: "Buka di tab baru"
|
||||||
openInSideView: "Buka di tampilan samping"
|
openInSideView: "Buka di tampilan samping"
|
||||||
defaultNavigationBehaviour: "Navigasi bawaan"
|
defaultNavigationBehaviour: "Navigasi bawaan"
|
||||||
|
|
|
@ -8,6 +8,9 @@ search: "Cerca"
|
||||||
notifications: "Notifiche"
|
notifications: "Notifiche"
|
||||||
username: "Nome utente"
|
username: "Nome utente"
|
||||||
password: "Password"
|
password: "Password"
|
||||||
|
initialPasswordForSetup: "Password iniziale, per avviare le impostazioni"
|
||||||
|
initialPasswordIsIncorrect: "Password iniziale, sbagliata."
|
||||||
|
initialPasswordForSetupDescription: "Se hai installato Misskey di persona, usa la password che hai indicato nel file di configurazione.\nSe stai utilizzando un servizio di hosting Misskey, usa la password fornita dal gestore.\nSe non hai una password preimpostata, lascia il campo vuoto e continua."
|
||||||
forgotPassword: "Hai dimenticato la password?"
|
forgotPassword: "Hai dimenticato la password?"
|
||||||
fetchingAsApObject: "Recuperando dal Fediverso..."
|
fetchingAsApObject: "Recuperando dal Fediverso..."
|
||||||
ok: "OK"
|
ok: "OK"
|
||||||
|
@ -716,10 +719,7 @@ abuseReported: "La segnalazione è stata inviata. Grazie."
|
||||||
reporter: "il corrispondente"
|
reporter: "il corrispondente"
|
||||||
reporteeOrigin: "Segnalazione a"
|
reporteeOrigin: "Segnalazione a"
|
||||||
reporterOrigin: "Segnalazione da"
|
reporterOrigin: "Segnalazione da"
|
||||||
forwardReport: "Inoltro di un report a un'istanza remota."
|
|
||||||
forwardReportIsAnonymous: "L'istanza remota non vedrà le tue informazioni, apparirai come profilo di sistema, anonimo."
|
|
||||||
send: "Inviare"
|
send: "Inviare"
|
||||||
abuseMarkAsResolved: "Risolvi segnalazione"
|
|
||||||
openInNewTab: "Apri in una nuova scheda"
|
openInNewTab: "Apri in una nuova scheda"
|
||||||
openInSideView: "Apri in vista laterale"
|
openInSideView: "Apri in vista laterale"
|
||||||
defaultNavigationBehaviour: "Navigazione preimpostata"
|
defaultNavigationBehaviour: "Navigazione preimpostata"
|
||||||
|
@ -921,6 +921,7 @@ followersVisibility: "Visibilità dei profili che ti seguono"
|
||||||
continueThread: "Altre conversazioni"
|
continueThread: "Altre conversazioni"
|
||||||
deleteAccountConfirm: "Così verrà eliminato il profilo. Vuoi procedere?"
|
deleteAccountConfirm: "Così verrà eliminato il profilo. Vuoi procedere?"
|
||||||
incorrectPassword: "La password è errata."
|
incorrectPassword: "La password è errata."
|
||||||
|
incorrectTotp: "Il codice OTP è sbagliato, oppure scaduto."
|
||||||
voteConfirm: "Votare per「{choice}」?"
|
voteConfirm: "Votare per「{choice}」?"
|
||||||
hide: "Nascondere"
|
hide: "Nascondere"
|
||||||
useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile"
|
useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile"
|
||||||
|
@ -2393,6 +2394,7 @@ _notification:
|
||||||
followedBySomeUsers: "{n} follower"
|
followedBySomeUsers: "{n} follower"
|
||||||
flushNotification: "Azzera le notifiche"
|
flushNotification: "Azzera le notifiche"
|
||||||
exportOfXCompleted: "Abbiamo completato l'esportazione di {x}"
|
exportOfXCompleted: "Abbiamo completato l'esportazione di {x}"
|
||||||
|
login: "Autenticazione avvenuta"
|
||||||
_types:
|
_types:
|
||||||
all: "Tutto"
|
all: "Tutto"
|
||||||
note: "Nuove Note"
|
note: "Nuove Note"
|
||||||
|
|
|
@ -707,10 +707,7 @@ abuseReported: "無事内容が送信されたみたいやで。おおきに〜
|
||||||
reporter: "通報者"
|
reporter: "通報者"
|
||||||
reporteeOrigin: "通報先"
|
reporteeOrigin: "通報先"
|
||||||
reporterOrigin: "通報元"
|
reporterOrigin: "通報元"
|
||||||
forwardReport: "リモートサーバーに通報を転送するで"
|
|
||||||
forwardReportIsAnonymous: "リモートサーバーからはあんたの情報は見えんなって、匿名のシステムアカウントとして表示されるで。"
|
|
||||||
send: "送信"
|
send: "送信"
|
||||||
abuseMarkAsResolved: "対応したで"
|
|
||||||
openInNewTab: "新しいタブで開く"
|
openInNewTab: "新しいタブで開く"
|
||||||
openInSideView: "サイドビューで開く"
|
openInSideView: "サイドビューで開く"
|
||||||
defaultNavigationBehaviour: "デフォルトのナビゲーション"
|
defaultNavigationBehaviour: "デフォルトのナビゲーション"
|
||||||
|
|
|
@ -601,8 +601,6 @@ reportAbuseOf: "{name}님얼 신고하기"
|
||||||
reporter: "신고한 사람"
|
reporter: "신고한 사람"
|
||||||
reporteeOrigin: "신고덴 사람"
|
reporteeOrigin: "신고덴 사람"
|
||||||
reporterOrigin: "신고한 곳"
|
reporterOrigin: "신고한 곳"
|
||||||
forwardReport: "웬겍 서버에 신고 보내기"
|
|
||||||
forwardReportIsAnonymous: "웬겍 서버서는 나으 정보럴 몬 보고 익멩으 시스템 게정어로 보입니다."
|
|
||||||
waitingFor: "{x}(얼)럴 지달리고 잇십니다"
|
waitingFor: "{x}(얼)럴 지달리고 잇십니다"
|
||||||
random: "무작이"
|
random: "무작이"
|
||||||
system: "시스템"
|
system: "시스템"
|
||||||
|
|
|
@ -454,6 +454,7 @@ totpDescription: "인증 앱을 사용하여 일회성 비밀번호 입력"
|
||||||
moderator: "모더레이터"
|
moderator: "모더레이터"
|
||||||
moderation: "조정"
|
moderation: "조정"
|
||||||
moderationNote: "조정 기록"
|
moderationNote: "조정 기록"
|
||||||
|
moderationNoteDescription: "모더레이터 역할을 가진 유저만 보이는 메모를 적을 수 있습니다."
|
||||||
addModerationNote: "조정 기록 추가하기"
|
addModerationNote: "조정 기록 추가하기"
|
||||||
moderationLogs: "모더레이션 로그"
|
moderationLogs: "모더레이션 로그"
|
||||||
nUsersMentioned: "{n}명이 언급함"
|
nUsersMentioned: "{n}명이 언급함"
|
||||||
|
@ -719,10 +720,7 @@ abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
|
||||||
reporter: "신고자"
|
reporter: "신고자"
|
||||||
reporteeOrigin: "피신고자"
|
reporteeOrigin: "피신고자"
|
||||||
reporterOrigin: "신고자"
|
reporterOrigin: "신고자"
|
||||||
forwardReport: "리모트 서버에도 신고 내용 보내기"
|
|
||||||
forwardReportIsAnonymous: "리모트 서버에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다."
|
|
||||||
send: "전송"
|
send: "전송"
|
||||||
abuseMarkAsResolved: "해결됨으로 표시"
|
|
||||||
openInNewTab: "새 탭에서 열기"
|
openInNewTab: "새 탭에서 열기"
|
||||||
openInSideView: "사이드뷰로 열기"
|
openInSideView: "사이드뷰로 열기"
|
||||||
defaultNavigationBehaviour: "기본 탐색 동작"
|
defaultNavigationBehaviour: "기본 탐색 동작"
|
||||||
|
@ -924,6 +922,7 @@ followersVisibility: "팔로워의 공개 범위"
|
||||||
continueThread: "글타래 더 보기"
|
continueThread: "글타래 더 보기"
|
||||||
deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? "
|
deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? "
|
||||||
incorrectPassword: "비밀번호가 올바르지 않습니다."
|
incorrectPassword: "비밀번호가 올바르지 않습니다."
|
||||||
|
incorrectTotp: "OTP 번호가 틀렸거나 유효기간이 만료되어 있을 수 있습니다."
|
||||||
voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
|
voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
|
||||||
hide: "숨기기"
|
hide: "숨기기"
|
||||||
useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시"
|
useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시"
|
||||||
|
@ -1123,7 +1122,7 @@ preservedUsernames: "예약한 사용자 이름"
|
||||||
preservedUsernamesDescription: "예약할 사용자명을 한 줄에 하나씩 입력합니다. 여기에서 지정한 사용자명으로는 계정을 생성할 수 없게 됩니다. 단, 관리자 권한으로 계정을 생성할 때에는 해당되지 않으며, 이미 존재하는 계정도 영향을 받지 않습니다."
|
preservedUsernamesDescription: "예약할 사용자명을 한 줄에 하나씩 입력합니다. 여기에서 지정한 사용자명으로는 계정을 생성할 수 없게 됩니다. 단, 관리자 권한으로 계정을 생성할 때에는 해당되지 않으며, 이미 존재하는 계정도 영향을 받지 않습니다."
|
||||||
createNoteFromTheFile: "이 파일로 노트를 작성"
|
createNoteFromTheFile: "이 파일로 노트를 작성"
|
||||||
archive: "아카이브"
|
archive: "아카이브"
|
||||||
archived: "보관됨"
|
archived: "아카이브 됨"
|
||||||
unarchive: "보관 취소"
|
unarchive: "보관 취소"
|
||||||
channelArchiveConfirmTitle: "{name} 채널을 보존하시겠습니까?"
|
channelArchiveConfirmTitle: "{name} 채널을 보존하시겠습니까?"
|
||||||
channelArchiveConfirmDescription: "보존한 채널은 채널 목록과 검색 결과에 표시되지 않으며 새로운 노트도 작성할 수 없습니다."
|
channelArchiveConfirmDescription: "보존한 채널은 채널 목록과 검색 결과에 표시되지 않으며 새로운 노트도 작성할 수 없습니다."
|
||||||
|
@ -1287,6 +1286,14 @@ unknownWebAuthnKey: "등록되지 않은 패스키입니다."
|
||||||
passkeyVerificationFailed: "패스키 검증을 실패했습니다."
|
passkeyVerificationFailed: "패스키 검증을 실패했습니다."
|
||||||
passkeyVerificationSucceededButPasswordlessLoginDisabled: "패스키를 검증했으나, 비밀번호 없이 로그인하기가 꺼져 있습니다."
|
passkeyVerificationSucceededButPasswordlessLoginDisabled: "패스키를 검증했으나, 비밀번호 없이 로그인하기가 꺼져 있습니다."
|
||||||
messageToFollower: "팔로워에 보낼 메시지"
|
messageToFollower: "팔로워에 보낼 메시지"
|
||||||
|
target: "대상"
|
||||||
|
_abuseUserReport:
|
||||||
|
forward: "전달"
|
||||||
|
forwardDescription: "익명 시스템 계정을 사용하여 리모트 서버에 신고 내용을 전달할 수 있습니다."
|
||||||
|
resolve: "해결됨"
|
||||||
|
accept: "인용"
|
||||||
|
reject: "기각"
|
||||||
|
resolveTutorial: "적절한 신고 내용에 대응한 경우, \"인용\"을 선택하여 \"해결됨\"으로 기록합니다.\n적절하지 않은 신고를 받은 경우, \"기각\"을 선택하여 \"기각\"으로 기록합니다."
|
||||||
_delivery:
|
_delivery:
|
||||||
status: "전송 상태"
|
status: "전송 상태"
|
||||||
stop: "정지됨"
|
stop: "정지됨"
|
||||||
|
@ -1993,7 +2000,7 @@ _sfx:
|
||||||
_soundSettings:
|
_soundSettings:
|
||||||
driveFile: "드라이브에 있는 오디오를 사용"
|
driveFile: "드라이브에 있는 오디오를 사용"
|
||||||
driveFileWarn: "드라이브에 있는 파일을 선택하세요."
|
driveFileWarn: "드라이브에 있는 파일을 선택하세요."
|
||||||
driveFileTypeWarn: "이 파일은 지원되지 않습니다."
|
driveFileTypeWarn: "이 파이"
|
||||||
driveFileTypeWarnDescription: "오디오 파일을 선택하세요."
|
driveFileTypeWarnDescription: "오디오 파일을 선택하세요."
|
||||||
driveFileDurationWarn: "오디오가 너무 깁니다"
|
driveFileDurationWarn: "오디오가 너무 깁니다"
|
||||||
driveFileDurationWarnDescription: "긴 오디오로 설정할 경우 미스키 사용에 지장이 갈 수도 있습니다. 그래도 괜찮습니까?"
|
driveFileDurationWarnDescription: "긴 오디오로 설정할 경우 미스키 사용에 지장이 갈 수도 있습니다. 그래도 괜찮습니까?"
|
||||||
|
@ -2476,7 +2483,7 @@ _webhookSettings:
|
||||||
reaction: "누군가 내 노트에 리액션했을 때"
|
reaction: "누군가 내 노트에 리액션했을 때"
|
||||||
mention: "누군가 나를 멘션했을 때"
|
mention: "누군가 나를 멘션했을 때"
|
||||||
_systemEvents:
|
_systemEvents:
|
||||||
abuseReport: "유저로부터 신고를 받았을 때"
|
abuseReport: "유저롭"
|
||||||
abuseReportResolved: "받은 신고를 처리했을 때"
|
abuseReportResolved: "받은 신고를 처리했을 때"
|
||||||
userCreated: "유저가 생성되었을 때"
|
userCreated: "유저가 생성되었을 때"
|
||||||
deleteConfirm: "Webhook을 삭제할까요?"
|
deleteConfirm: "Webhook을 삭제할까요?"
|
||||||
|
@ -2524,6 +2531,8 @@ _moderationLogTypes:
|
||||||
markSensitiveDriveFile: "파일에 열람주의를 설정"
|
markSensitiveDriveFile: "파일에 열람주의를 설정"
|
||||||
unmarkSensitiveDriveFile: "파일에 열람주의를 해제"
|
unmarkSensitiveDriveFile: "파일에 열람주의를 해제"
|
||||||
resolveAbuseReport: "신고 처리"
|
resolveAbuseReport: "신고 처리"
|
||||||
|
forwardAbuseReport: "신고 전달"
|
||||||
|
updateAbuseReportNote: "신고 조정 노트 갱신"
|
||||||
createInvitation: "초대 코드 생성"
|
createInvitation: "초대 코드 생성"
|
||||||
createAd: "광고 생성"
|
createAd: "광고 생성"
|
||||||
deleteAd: "광고 삭제"
|
deleteAd: "광고 삭제"
|
||||||
|
@ -2663,7 +2672,7 @@ _urlPreviewSetting:
|
||||||
timeoutDescription: "미리보기를 로딩하는데 걸리는 시간이 정한 시간보다 오래 걸리는 경우, 미리보기를 생성하지 않습니다."
|
timeoutDescription: "미리보기를 로딩하는데 걸리는 시간이 정한 시간보다 오래 걸리는 경우, 미리보기를 생성하지 않습니다."
|
||||||
maximumContentLength: "Content-Length의 최대치 (byte)"
|
maximumContentLength: "Content-Length의 최대치 (byte)"
|
||||||
maximumContentLengthDescription: "Content-Length가 이 값을 넘어서면 미리보기를 생성하지 않습니다."
|
maximumContentLengthDescription: "Content-Length가 이 값을 넘어서면 미리보기를 생성하지 않습니다."
|
||||||
requireContentLength: "Content-Length를 얻었을 때만 미리보기 만들기"
|
requireContentLength: "Content-Length를 받아온 경우에만 "
|
||||||
requireContentLengthDescription: "상대 서버가 Content-Length를 되돌려주지 않는다면 미리보기를 만들지 않습니다."
|
requireContentLengthDescription: "상대 서버가 Content-Length를 되돌려주지 않는다면 미리보기를 만들지 않습니다."
|
||||||
userAgent: "User-Agent"
|
userAgent: "User-Agent"
|
||||||
userAgentDescription: "미리보기를 얻을 때 사용한 User-Agent를 설정합니다. 비어 있다면 기본값의 User-Agent를 사용합니다."
|
userAgentDescription: "미리보기를 얻을 때 사용한 User-Agent를 설정합니다. 비어 있다면 기본값의 User-Agent를 사용합니다."
|
||||||
|
|
|
@ -689,10 +689,7 @@ abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
|
||||||
reporter: "Zgłaszający"
|
reporter: "Zgłaszający"
|
||||||
reporteeOrigin: "Pochodzenie zgłoszonego"
|
reporteeOrigin: "Pochodzenie zgłoszonego"
|
||||||
reporterOrigin: "Pochodzenie zgłaszającego"
|
reporterOrigin: "Pochodzenie zgłaszającego"
|
||||||
forwardReport: "Przekaż zgłoszenie do innej instancji"
|
|
||||||
forwardReportIsAnonymous: "Zamiast twojego konta, anonimowe konto systemowe będzie wyświetlone jako zgłaszający na instancji zdalnej."
|
|
||||||
send: "Wyślij"
|
send: "Wyślij"
|
||||||
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
|
|
||||||
openInNewTab: "Otwórz w nowej karcie"
|
openInNewTab: "Otwórz w nowej karcie"
|
||||||
openInSideView: "Otwórz w bocznym widoku"
|
openInSideView: "Otwórz w bocznym widoku"
|
||||||
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
|
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
|
||||||
|
|
|
@ -707,10 +707,7 @@ abuseReported: "Denúncia enviada. Obrigado por sua ajuda."
|
||||||
reporter: "Denunciante"
|
reporter: "Denunciante"
|
||||||
reporteeOrigin: "Origem da denúncia"
|
reporteeOrigin: "Origem da denúncia"
|
||||||
reporterOrigin: "Origem do denunciante"
|
reporterOrigin: "Origem do denunciante"
|
||||||
forwardReport: "Encaminhar a denúncia para o servidor remoto"
|
|
||||||
forwardReportIsAnonymous: "No servidor remoto, suas informações não serão visíveis, e você será apresentado como uma conta do sistema anônima."
|
|
||||||
send: "Enviar"
|
send: "Enviar"
|
||||||
abuseMarkAsResolved: "Marcar denúncia como resolvida"
|
|
||||||
openInNewTab: "Abrir em nova aba"
|
openInNewTab: "Abrir em nova aba"
|
||||||
openInSideView: "Abrir em visão lateral"
|
openInSideView: "Abrir em visão lateral"
|
||||||
defaultNavigationBehaviour: "Navegação padrão"
|
defaultNavigationBehaviour: "Navegação padrão"
|
||||||
|
|
|
@ -625,10 +625,7 @@ abuseReported: "Raportul tău a fost trimis. Mulțumim."
|
||||||
reporter: "Raportorul"
|
reporter: "Raportorul"
|
||||||
reporteeOrigin: "Originea raportatului"
|
reporteeOrigin: "Originea raportatului"
|
||||||
reporterOrigin: "Originea raportorului"
|
reporterOrigin: "Originea raportorului"
|
||||||
forwardReport: "Redirecționează raportul către instanța externă"
|
|
||||||
forwardReportIsAnonymous: "În locul contului tău, va fi afișat un cont anonim, de sistem, ca raportor către instanța externă."
|
|
||||||
send: "Trimite"
|
send: "Trimite"
|
||||||
abuseMarkAsResolved: "Marchează raportul ca rezolvat"
|
|
||||||
openInNewTab: "Deschide în tab nou"
|
openInNewTab: "Deschide în tab nou"
|
||||||
openInSideView: "Deschide în vedere laterală"
|
openInSideView: "Deschide în vedere laterală"
|
||||||
defaultNavigationBehaviour: "Comportament de navigare implicit"
|
defaultNavigationBehaviour: "Comportament de navigare implicit"
|
||||||
|
|
|
@ -700,10 +700,7 @@ abuseReported: "Жалоба отправлена. Большое спасибо
|
||||||
reporter: "Сообщивший"
|
reporter: "Сообщивший"
|
||||||
reporteeOrigin: "О ком сообщено"
|
reporteeOrigin: "О ком сообщено"
|
||||||
reporterOrigin: "Кто сообщил"
|
reporterOrigin: "Кто сообщил"
|
||||||
forwardReport: "Отправить жалобу на инстанс автора."
|
|
||||||
forwardReportIsAnonymous: "Жалоба на удалённый инстанс будет отправлена анонимно. Вместо ваших данных у получателя будет отображена системная учётная запись."
|
|
||||||
send: "Отправить"
|
send: "Отправить"
|
||||||
abuseMarkAsResolved: "Отметить жалобу как решённую"
|
|
||||||
openInNewTab: "Открыть в новой вкладке"
|
openInNewTab: "Открыть в новой вкладке"
|
||||||
openInSideView: "Открывать в боковой колонке"
|
openInSideView: "Открывать в боковой колонке"
|
||||||
defaultNavigationBehaviour: "Поведение навигации по умолчанию"
|
defaultNavigationBehaviour: "Поведение навигации по умолчанию"
|
||||||
|
|
|
@ -631,10 +631,7 @@ abuseReported: "Vaše nahlásenie je odoslané. Veľmi pekne ďakujeme."
|
||||||
reporter: "Nahlásil"
|
reporter: "Nahlásil"
|
||||||
reporteeOrigin: "Pôvod nahláseného"
|
reporteeOrigin: "Pôvod nahláseného"
|
||||||
reporterOrigin: "Pôvod nahlasovača"
|
reporterOrigin: "Pôvod nahlasovača"
|
||||||
forwardReport: "Preposlať nahlásenie na server"
|
|
||||||
forwardReportIsAnonymous: "Namiesto vášho účtu bude zobrazený anonymný systémový účet na vzdialenom serveri ako autor nahlásenia."
|
|
||||||
send: "Poslať"
|
send: "Poslať"
|
||||||
abuseMarkAsResolved: "Označiť nahlásenia ako vyriešené"
|
|
||||||
openInNewTab: "Otvoriť v novom tabe"
|
openInNewTab: "Otvoriť v novom tabe"
|
||||||
openInSideView: "Otvoriť v bočnom paneli"
|
openInSideView: "Otvoriť v bočnom paneli"
|
||||||
defaultNavigationBehaviour: "Predvolené správanie navigácie"
|
defaultNavigationBehaviour: "Predvolené správanie navigácie"
|
||||||
|
|
|
@ -707,10 +707,7 @@ abuseReported: "เราได้ส่งรายงานของคุณ
|
||||||
reporter: "ผู้รายงาน"
|
reporter: "ผู้รายงาน"
|
||||||
reporteeOrigin: "ปลายทางรายงาน"
|
reporteeOrigin: "ปลายทางรายงาน"
|
||||||
reporterOrigin: "แหล่งผู้รายงาน"
|
reporterOrigin: "แหล่งผู้รายงาน"
|
||||||
forwardReport: "ส่งต่อรายงานไปยังเซิร์ฟเวอร์ระยะไกล"
|
|
||||||
forwardReportIsAnonymous: "ข้อมูลของคุณจะไม่ปรากฏบนเซิร์ฟเวอร์ระยะไกลและปรากฏเป็นบัญชีระบบที่ไม่ระบุชื่อ"
|
|
||||||
send: "ส่ง"
|
send: "ส่ง"
|
||||||
abuseMarkAsResolved: "ทำเครื่องหมายรายงานว่าแก้ไขแล้ว"
|
|
||||||
openInNewTab: "เปิดในแท็บใหม่"
|
openInNewTab: "เปิดในแท็บใหม่"
|
||||||
openInSideView: "เปิดในมุมมองด้านข้าง"
|
openInSideView: "เปิดในมุมมองด้านข้าง"
|
||||||
defaultNavigationBehaviour: "พฤติกรรมการนำทางที่เป็นค่าเริ่มต้น"
|
defaultNavigationBehaviour: "พฤติกรรมการนำทางที่เป็นค่าเริ่มต้น"
|
||||||
|
|
|
@ -630,10 +630,7 @@ abuseReported: "Дякуємо, вашу скаргу було відправл
|
||||||
reporter: "Репортер"
|
reporter: "Репортер"
|
||||||
reporteeOrigin: "Про кого повідомлено"
|
reporteeOrigin: "Про кого повідомлено"
|
||||||
reporterOrigin: "Хто повідомив"
|
reporterOrigin: "Хто повідомив"
|
||||||
forwardReport: "Переслати звіт на віддалений інстанс"
|
|
||||||
forwardReportIsAnonymous: "Замість вашого облікового запису анонімний системний обліковий запис буде відображатися як доповідач на віддаленому інстансі"
|
|
||||||
send: "Відправити"
|
send: "Відправити"
|
||||||
abuseMarkAsResolved: "Позначити скаргу як вирішену"
|
|
||||||
openInNewTab: "Відкрити в новій вкладці"
|
openInNewTab: "Відкрити в новій вкладці"
|
||||||
openInSideView: "Відкрити збоку"
|
openInSideView: "Відкрити збоку"
|
||||||
defaultNavigationBehaviour: "Поведінка навігації за замовчуванням"
|
defaultNavigationBehaviour: "Поведінка навігації за замовчуванням"
|
||||||
|
|
|
@ -629,10 +629,7 @@ abuseReported: "Shikoyatingiz yetkazildi. Ma'lumot uchun rahmat."
|
||||||
reporter: "Shikoyat qiluvchi"
|
reporter: "Shikoyat qiluvchi"
|
||||||
reporteeOrigin: "Xabarning kelib chiqishi"
|
reporteeOrigin: "Xabarning kelib chiqishi"
|
||||||
reporterOrigin: "Xabarchining joylashuvi"
|
reporterOrigin: "Xabarchining joylashuvi"
|
||||||
forwardReport: "Xabarni masofadagi serverga yuborish"
|
|
||||||
forwardReportIsAnonymous: "Sizning yuborayotgan xabaringiz o'z akkountingiz emas balki anonim tarzda qoladi"
|
|
||||||
send: "Yuborish"
|
send: "Yuborish"
|
||||||
abuseMarkAsResolved: "Yuborilgan xabarni hal qilingan deb belgilash"
|
|
||||||
openInNewTab: "Yangi tab da ochish"
|
openInNewTab: "Yangi tab da ochish"
|
||||||
openInSideView: "Yon panelda ochish"
|
openInSideView: "Yon panelda ochish"
|
||||||
defaultNavigationBehaviour: "Standart navigatsiya harakati"
|
defaultNavigationBehaviour: "Standart navigatsiya harakati"
|
||||||
|
|
|
@ -675,10 +675,7 @@ abuseReported: "Báo cáo đã được gửi. Cảm ơn bạn nhiều."
|
||||||
reporter: "Người báo cáo"
|
reporter: "Người báo cáo"
|
||||||
reporteeOrigin: "Bị báo cáo"
|
reporteeOrigin: "Bị báo cáo"
|
||||||
reporterOrigin: "Máy chủ người báo cáo"
|
reporterOrigin: "Máy chủ người báo cáo"
|
||||||
forwardReport: "Chuyển tiếp báo cáo cho máy chủ từ xa"
|
|
||||||
forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản hệ thống ẩn danh sẽ được hiển thị dưới dạng người báo cáo ở máy chủ từ xa."
|
|
||||||
send: "Gửi"
|
send: "Gửi"
|
||||||
abuseMarkAsResolved: "Đánh dấu đã xử lý"
|
|
||||||
openInNewTab: "Mở trong tab mới"
|
openInNewTab: "Mở trong tab mới"
|
||||||
openInSideView: "Mở trong thanh bên"
|
openInSideView: "Mở trong thanh bên"
|
||||||
defaultNavigationBehaviour: "Thao tác điều hướng mặc định"
|
defaultNavigationBehaviour: "Thao tác điều hướng mặc định"
|
||||||
|
|
|
@ -454,6 +454,7 @@ totpDescription: "使用验证器输入一次性密码"
|
||||||
moderator: "监察员"
|
moderator: "监察员"
|
||||||
moderation: "管理"
|
moderation: "管理"
|
||||||
moderationNote: "管理笔记"
|
moderationNote: "管理笔记"
|
||||||
|
moderationNoteDescription: "可以用来记录仅在管理员之间共享的笔记。"
|
||||||
addModerationNote: "添加管理笔记"
|
addModerationNote: "添加管理笔记"
|
||||||
moderationLogs: "管理日志"
|
moderationLogs: "管理日志"
|
||||||
nUsersMentioned: "{n} 被提到"
|
nUsersMentioned: "{n} 被提到"
|
||||||
|
@ -719,10 +720,7 @@ abuseReported: "内容已发送。感谢您提交信息。"
|
||||||
reporter: "举报者"
|
reporter: "举报者"
|
||||||
reporteeOrigin: "举报来源"
|
reporteeOrigin: "举报来源"
|
||||||
reporterOrigin: "举报者来源"
|
reporterOrigin: "举报者来源"
|
||||||
forwardReport: "将该举报信息转发给远程服务器"
|
|
||||||
forwardReportIsAnonymous: "在远程实例上显示的报告者是匿名的系统账号,而不是您的账号。"
|
|
||||||
send: "发送"
|
send: "发送"
|
||||||
abuseMarkAsResolved: "处理完毕"
|
|
||||||
openInNewTab: "在新标签页中打开"
|
openInNewTab: "在新标签页中打开"
|
||||||
openInSideView: "在侧边栏中打开"
|
openInSideView: "在侧边栏中打开"
|
||||||
defaultNavigationBehaviour: "默认导航"
|
defaultNavigationBehaviour: "默认导航"
|
||||||
|
@ -1288,6 +1286,10 @@ unknownWebAuthnKey: "此通行密钥未注册。"
|
||||||
passkeyVerificationFailed: "验证通行密钥失败。"
|
passkeyVerificationFailed: "验证通行密钥失败。"
|
||||||
passkeyVerificationSucceededButPasswordlessLoginDisabled: "通行密钥验证成功,但账户未开启无密码登录。"
|
passkeyVerificationSucceededButPasswordlessLoginDisabled: "通行密钥验证成功,但账户未开启无密码登录。"
|
||||||
messageToFollower: "给关注者的消息"
|
messageToFollower: "给关注者的消息"
|
||||||
|
target: "对象"
|
||||||
|
_abuseUserReport:
|
||||||
|
forward: "转发"
|
||||||
|
forwardDescription: "目标是匿名系统账户,将把举报转发给远程服务器。"
|
||||||
_delivery:
|
_delivery:
|
||||||
status: "投递状态"
|
status: "投递状态"
|
||||||
stop: "停止投递"
|
stop: "停止投递"
|
||||||
|
@ -2525,6 +2527,8 @@ _moderationLogTypes:
|
||||||
markSensitiveDriveFile: "标记网盘文件为敏感媒体"
|
markSensitiveDriveFile: "标记网盘文件为敏感媒体"
|
||||||
unmarkSensitiveDriveFile: "取消标记网盘文件为敏感媒体"
|
unmarkSensitiveDriveFile: "取消标记网盘文件为敏感媒体"
|
||||||
resolveAbuseReport: "处理举报"
|
resolveAbuseReport: "处理举报"
|
||||||
|
forwardAbuseReport: "转发举报"
|
||||||
|
updateAbuseReportNote: "更新举报用管理笔记"
|
||||||
createInvitation: "生成邀请码"
|
createInvitation: "生成邀请码"
|
||||||
createAd: "创建了广告"
|
createAd: "创建了广告"
|
||||||
deleteAd: "删除了广告"
|
deleteAd: "删除了广告"
|
||||||
|
|
|
@ -719,10 +719,7 @@ abuseReported: "檢舉完成。感謝您的報告。"
|
||||||
reporter: "檢舉者"
|
reporter: "檢舉者"
|
||||||
reporteeOrigin: "檢舉來源"
|
reporteeOrigin: "檢舉來源"
|
||||||
reporterOrigin: "檢舉者來源"
|
reporterOrigin: "檢舉者來源"
|
||||||
forwardReport: "將報告轉送給遠端伺服器"
|
|
||||||
forwardReportIsAnonymous: "在遠端實例上看不到您的資訊,顯示的報告者是匿名的系统帳戶。"
|
|
||||||
send: "發送"
|
send: "發送"
|
||||||
abuseMarkAsResolved: "處理完畢"
|
|
||||||
openInNewTab: "在新分頁中開啟"
|
openInNewTab: "在新分頁中開啟"
|
||||||
openInSideView: "在側欄中開啟"
|
openInSideView: "在側欄中開啟"
|
||||||
defaultNavigationBehaviour: "預設導航"
|
defaultNavigationBehaviour: "預設導航"
|
||||||
|
@ -924,6 +921,7 @@ followersVisibility: "追隨者的可見性"
|
||||||
continueThread: "查看更多貼文"
|
continueThread: "查看更多貼文"
|
||||||
deleteAccountConfirm: "將要刪除帳戶。是否確定?"
|
deleteAccountConfirm: "將要刪除帳戶。是否確定?"
|
||||||
incorrectPassword: "密碼錯誤。"
|
incorrectPassword: "密碼錯誤。"
|
||||||
|
incorrectTotp: "一次性密碼錯誤,或者已過期。"
|
||||||
voteConfirm: "確定投給「{choice}」?"
|
voteConfirm: "確定投給「{choice}」?"
|
||||||
hide: "隱藏"
|
hide: "隱藏"
|
||||||
useDrawerReactionPickerForMobile: "在移動設備上使用抽屜顯示"
|
useDrawerReactionPickerForMobile: "在移動設備上使用抽屜顯示"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"version": "2024.10.0-beta.5",
|
"version": "2024.10.0-beta.6",
|
||||||
"codename": "nasubi",
|
"codename": "nasubi",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
@ -230,19 +230,25 @@ export async function mainBoot() {
|
||||||
claimAchievement('collectAchievements30');
|
claimAchievement('collectAchievements30');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!claimedAchievements.includes('justPlainLucky')) {
|
||||||
window.setInterval(() => {
|
window.setInterval(() => {
|
||||||
if (Math.floor(Math.random() * 20000) === 0) {
|
if (Math.floor(Math.random() * 20000) === 0) {
|
||||||
claimAchievement('justPlainLucky');
|
claimAchievement('justPlainLucky');
|
||||||
}
|
}
|
||||||
}, 1000 * 10);
|
}, 1000 * 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!claimedAchievements.includes('client30min')) {
|
||||||
window.setTimeout(() => {
|
window.setTimeout(() => {
|
||||||
claimAchievement('client30min');
|
claimAchievement('client30min');
|
||||||
}, 1000 * 60 * 30);
|
}, 1000 * 60 * 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!claimedAchievements.includes('client60min')) {
|
||||||
window.setTimeout(() => {
|
window.setTimeout(() => {
|
||||||
claimAchievement('client60min');
|
claimAchievement('client60min');
|
||||||
}, 1000 * 60 * 60);
|
}, 1000 * 60 * 60);
|
||||||
|
}
|
||||||
|
|
||||||
// 邪魔
|
// 邪魔
|
||||||
//const lastUsed = miLocalStorage.getItem('lastUsed');
|
//const lastUsed = miLocalStorage.getItem('lastUsed');
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { StoryObj } from '@storybook/vue3';
|
||||||
|
import MkExtensionInstaller from './MkExtensionInstaller.vue';
|
||||||
|
import lightTheme from '@@/themes/_light.json5';
|
||||||
|
|
||||||
|
export const Plugin = {
|
||||||
|
render(args) {
|
||||||
|
return {
|
||||||
|
components: {
|
||||||
|
MkExtensionInstaller,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return {
|
||||||
|
args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
props() {
|
||||||
|
return {
|
||||||
|
...this.args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
template: '<MkExtensionInstaller v-bind="props" />',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
args: {
|
||||||
|
extension: {
|
||||||
|
type: 'plugin',
|
||||||
|
raw: '"do nothing"',
|
||||||
|
meta: {
|
||||||
|
name: 'do nothing plugin',
|
||||||
|
version: '1.0',
|
||||||
|
author: 'syuilo and misskey-project',
|
||||||
|
description: 'a plugin that does nothing',
|
||||||
|
permissions: ['read:account'],
|
||||||
|
config: {
|
||||||
|
'doNothing': true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
parameters: {
|
||||||
|
layout: 'centered',
|
||||||
|
},
|
||||||
|
} satisfies StoryObj<typeof MkExtensionInstaller>;
|
||||||
|
|
||||||
|
export const Theme = {
|
||||||
|
render(args) {
|
||||||
|
return {
|
||||||
|
components: {
|
||||||
|
MkExtensionInstaller,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return {
|
||||||
|
args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
props() {
|
||||||
|
return {
|
||||||
|
...this.args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
template: '<MkExtensionInstaller v-bind="props" />',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
args: {
|
||||||
|
extension: {
|
||||||
|
type: 'theme',
|
||||||
|
raw: JSON.stringify(lightTheme),
|
||||||
|
meta: lightTheme,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
parameters: {
|
||||||
|
layout: 'centered',
|
||||||
|
},
|
||||||
|
} satisfies StoryObj<typeof MkExtensionInstaller>;
|
|
@ -0,0 +1,146 @@
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: syuilo and misskey-project
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
-->
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="_gaps_m" :class="$style.extInstallerRoot">
|
||||||
|
<div :class="$style.extInstallerIconWrapper">
|
||||||
|
<i v-if="isPlugin" class="ti ti-plug"></i>
|
||||||
|
<i v-else-if="isTheme" class="ti ti-palette"></i>
|
||||||
|
<!-- 拡張用? -->
|
||||||
|
<i v-else class="ti ti-download"></i>
|
||||||
|
</div>
|
||||||
|
<h2 :class="$style.extInstallerTitle">{{ i18n.ts._externalResourceInstaller[`_${extension.type}`].title }}</h2>
|
||||||
|
<div :class="$style.extInstallerNormDesc">{{ i18n.ts._externalResourceInstaller.checkVendorBeforeInstall }}</div>
|
||||||
|
<MkInfo v-if="isPlugin" :warn="true">{{ i18n.ts._plugin.installWarn }}</MkInfo>
|
||||||
|
<FormSection>
|
||||||
|
<template #label>{{ i18n.ts._externalResourceInstaller[`_${extension.type}`].metaTitle }}</template>
|
||||||
|
<div class="_gaps_s">
|
||||||
|
<FormSplit>
|
||||||
|
<MkKeyValue>
|
||||||
|
<template #key>{{ i18n.ts.name }}</template>
|
||||||
|
<template #value>{{ extension.meta.name }}</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
<MkKeyValue>
|
||||||
|
<template #key>{{ i18n.ts.author }}</template>
|
||||||
|
<template #value>{{ extension.meta.author }}</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
</FormSplit>
|
||||||
|
<MkKeyValue v-if="isPlugin">
|
||||||
|
<template #key>{{ i18n.ts.description }}</template>
|
||||||
|
<template #value>{{ extension.meta.description ?? i18n.ts.none }}</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
<MkKeyValue v-if="isPlugin">
|
||||||
|
<template #key>{{ i18n.ts.version }}</template>
|
||||||
|
<template #value>{{ extension.meta.version }}</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
<MkKeyValue v-if="isPlugin">
|
||||||
|
<template #key>{{ i18n.ts.permission }}</template>
|
||||||
|
<template #value>
|
||||||
|
<ul v-if="extension.meta.permissions && extension.meta.permissions.length > 0" :class="$style.extInstallerKVList">
|
||||||
|
<li v-for="permission in extension.meta.permissions" :key="permission">{{ i18n.ts._permissions[permission] }}</li>
|
||||||
|
</ul>
|
||||||
|
<template v-else>{{ i18n.ts.none }}</template>
|
||||||
|
</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
<MkKeyValue v-if="isTheme">
|
||||||
|
<template #key>{{ i18n.ts._externalResourceInstaller._meta.base }}</template>
|
||||||
|
<template #value>{{ i18n.ts[extension.meta.base ?? 'none'] }}</template>
|
||||||
|
</MkKeyValue>
|
||||||
|
<MkFolder>
|
||||||
|
<template #icon><i class="ti ti-code"></i></template>
|
||||||
|
<template #label>{{ i18n.ts._plugin.viewSource }}</template>
|
||||||
|
|
||||||
|
<MkCode :code="extension.raw"/>
|
||||||
|
</MkFolder>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
<slot name="additionalInfo"/>
|
||||||
|
<div class="_buttonsCenter">
|
||||||
|
<MkButton primary @click="emits('confirm')"><i class="ti ti-check"></i> {{ i18n.ts.install }}</MkButton>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
export type Extension = {
|
||||||
|
type: 'plugin';
|
||||||
|
raw: string;
|
||||||
|
meta: {
|
||||||
|
name: string;
|
||||||
|
version: string;
|
||||||
|
author: string;
|
||||||
|
description?: string;
|
||||||
|
permissions?: string[];
|
||||||
|
config?: Record<string, any>;
|
||||||
|
};
|
||||||
|
} | {
|
||||||
|
type: 'theme';
|
||||||
|
raw: string;
|
||||||
|
meta: {
|
||||||
|
name: string;
|
||||||
|
author: string;
|
||||||
|
base?: 'light' | 'dark';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { computed } from 'vue';
|
||||||
|
import MkButton from '@/components/MkButton.vue';
|
||||||
|
import FormSection from '@/components/form/section.vue';
|
||||||
|
import FormSplit from '@/components/form/split.vue';
|
||||||
|
import MkCode from '@/components/MkCode.vue';
|
||||||
|
import MkInfo from '@/components/MkInfo.vue';
|
||||||
|
import MkFolder from '@/components/MkFolder.vue';
|
||||||
|
import MkKeyValue from '@/components/MkKeyValue.vue';
|
||||||
|
import { i18n } from '@/i18n.js';
|
||||||
|
|
||||||
|
const isPlugin = computed(() => props.extension.type === 'plugin');
|
||||||
|
const isTheme = computed(() => props.extension.type === 'theme');
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
extension: Extension;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const emits = defineEmits<{
|
||||||
|
(ev: 'confirm'): void;
|
||||||
|
}>();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" module>
|
||||||
|
.extInstallerRoot {
|
||||||
|
border-radius: var(--radius);
|
||||||
|
background: var(--panel);
|
||||||
|
padding: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extInstallerIconWrapper {
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 48px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
|
||||||
|
background-color: var(--accentedBg);
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.extInstallerTitle {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extInstallerNormDesc {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extInstallerKVList {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -8,76 +8,26 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :contentMax="500">
|
<MkSpacer :contentMax="500">
|
||||||
<MkLoading v-if="uiPhase === 'fetching'"/>
|
<MkLoading v-if="uiPhase === 'fetching'"/>
|
||||||
<div v-else-if="uiPhase === 'confirm' && data" class="_gaps_m" :class="$style.extInstallerRoot">
|
<MkExtensionInstaller v-else-if="uiPhase === 'confirm' && data" :extension="data" @confirm="install()">
|
||||||
<div :class="$style.extInstallerIconWrapper">
|
<template #additionalInfo>
|
||||||
<i v-if="data.type === 'plugin'" class="ti ti-plug"></i>
|
|
||||||
<i v-else-if="data.type === 'theme'" class="ti ti-palette"></i>
|
|
||||||
<i v-else class="ti ti-download"></i>
|
|
||||||
</div>
|
|
||||||
<h2 :class="$style.extInstallerTitle">{{ i18n.ts._externalResourceInstaller[`_${data.type}`].title }}</h2>
|
|
||||||
<div :class="$style.extInstallerNormDesc">{{ i18n.ts._externalResourceInstaller.checkVendorBeforeInstall }}</div>
|
|
||||||
<MkInfo v-if="data.type === 'plugin'" :warn="true">{{ i18n.ts._plugin.installWarn }}</MkInfo>
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts._externalResourceInstaller[`_${data.type}`].metaTitle }}</template>
|
|
||||||
<div class="_gaps_s">
|
|
||||||
<FormSplit>
|
|
||||||
<MkKeyValue>
|
|
||||||
<template #key>{{ i18n.ts.name }}</template>
|
|
||||||
<template #value>{{ data.meta?.name }}</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
<MkKeyValue>
|
|
||||||
<template #key>{{ i18n.ts.author }}</template>
|
|
||||||
<template #value>{{ data.meta?.author }}</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
</FormSplit>
|
|
||||||
<MkKeyValue v-if="data.type === 'plugin'">
|
|
||||||
<template #key>{{ i18n.ts.description }}</template>
|
|
||||||
<template #value>{{ data.meta?.description }}</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
<MkKeyValue v-if="data.type === 'plugin'">
|
|
||||||
<template #key>{{ i18n.ts.version }}</template>
|
|
||||||
<template #value>{{ data.meta?.version }}</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
<MkKeyValue v-if="data.type === 'plugin'">
|
|
||||||
<template #key>{{ i18n.ts.permission }}</template>
|
|
||||||
<template #value>
|
|
||||||
<ul :class="$style.extInstallerKVList">
|
|
||||||
<li v-for="permission in data.meta?.permissions" :key="permission">{{ i18n.ts._permissions[permission] }}</li>
|
|
||||||
</ul>
|
|
||||||
</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
<MkKeyValue v-if="data.type === 'theme' && data.meta?.base">
|
|
||||||
<template #key>{{ i18n.ts._externalResourceInstaller._meta.base }}</template>
|
|
||||||
<template #value>{{ i18n.ts[data.meta.base] }}</template>
|
|
||||||
</MkKeyValue>
|
|
||||||
<MkFolder>
|
|
||||||
<template #icon><i class="ti ti-code"></i></template>
|
|
||||||
<template #label>{{ i18n.ts._plugin.viewSource }}</template>
|
|
||||||
|
|
||||||
<MkCode :code="data.raw ?? ''"/>
|
|
||||||
</MkFolder>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts._externalResourceInstaller._vendorInfo.title }}</template>
|
<template #label>{{ i18n.ts._externalResourceInstaller._vendorInfo.title }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>{{ i18n.ts._externalResourceInstaller._vendorInfo.endpoint }}</template>
|
<template #key>{{ i18n.ts._externalResourceInstaller._vendorInfo.endpoint }}</template>
|
||||||
<template #value><MkUrl :url="url ?? ''" :showUrlPreview="false"></MkUrl></template>
|
<template #value><MkUrl :url="url" :showUrlPreview="false"></MkUrl></template>
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>{{ i18n.ts._externalResourceInstaller._vendorInfo.hashVerify }}</template>
|
<template #key>{{ i18n.ts._externalResourceInstaller._vendorInfo.hashVerify }}</template>
|
||||||
<template #value>
|
<template #value>
|
||||||
<!--この画面が出ている時点でハッシュの検証には成功している-->
|
<!-- この画面が出ている時点でハッシュの検証には成功している -->
|
||||||
<i class="ti ti-check" style="color: var(--accent)"></i>
|
<i class="ti ti-check" style="color: var(--accent)"></i>
|
||||||
</template>
|
</template>
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<div class="_buttonsCenter">
|
</template>
|
||||||
<MkButton primary @click="install()"><i class="ti ti-check"></i> {{ i18n.ts.install }}</MkButton>
|
</MkExtensionInstaller>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="uiPhase === 'error'" class="_gaps_m" :class="[$style.extInstallerRoot, $style.error]">
|
<div v-else-if="uiPhase === 'error'" class="_gaps_m" :class="[$style.extInstallerRoot, $style.error]">
|
||||||
<div :class="$style.extInstallerIconWrapper">
|
<div :class="$style.extInstallerIconWrapper">
|
||||||
<i class="ti ti-circle-x"></i>
|
<i class="ti ti-circle-x"></i>
|
||||||
|
@ -96,14 +46,11 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, onActivated, onDeactivated, nextTick } from 'vue';
|
import { ref, computed, onActivated, onDeactivated, nextTick } from 'vue';
|
||||||
import MkLoading from '@/components/global/MkLoading.vue';
|
import MkLoading from '@/components/global/MkLoading.vue';
|
||||||
|
import MkExtensionInstaller, { type Extension } from '@/components/MkExtensionInstaller.vue';
|
||||||
import MkButton from '@/components/MkButton.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import FormSection from '@/components/form/section.vue';
|
|
||||||
import FormSplit from '@/components/form/split.vue';
|
|
||||||
import MkCode from '@/components/MkCode.vue';
|
|
||||||
import MkUrl from '@/components/global/MkUrl.vue';
|
|
||||||
import MkInfo from '@/components/MkInfo.vue';
|
|
||||||
import MkFolder from '@/components/MkFolder.vue';
|
|
||||||
import MkKeyValue from '@/components/MkKeyValue.vue';
|
import MkKeyValue from '@/components/MkKeyValue.vue';
|
||||||
|
import MkUrl from '@/components/global/MkUrl.vue';
|
||||||
|
import FormSection from '@/components/form/section.vue';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi } from '@/scripts/misskey-api.js';
|
import { misskeyApi } from '@/scripts/misskey-api.js';
|
||||||
import { AiScriptPluginMeta, parsePluginMeta, installPlugin } from '@/scripts/install-plugin.js';
|
import { AiScriptPluginMeta, parsePluginMeta, installPlugin } from '@/scripts/install-plugin.js';
|
||||||
|
@ -124,24 +71,7 @@ const errorKV = ref<{
|
||||||
const url = ref<string | null>(null);
|
const url = ref<string | null>(null);
|
||||||
const hash = ref<string | null>(null);
|
const hash = ref<string | null>(null);
|
||||||
|
|
||||||
const data = ref<{
|
const data = ref<Extension | null>(null);
|
||||||
type: 'plugin' | 'theme';
|
|
||||||
raw: string;
|
|
||||||
meta?: {
|
|
||||||
// Plugin & Theme Common
|
|
||||||
name: string;
|
|
||||||
author: string;
|
|
||||||
|
|
||||||
// Plugin
|
|
||||||
description?: string;
|
|
||||||
version?: string;
|
|
||||||
permissions?: string[];
|
|
||||||
config?: Record<string, any>;
|
|
||||||
|
|
||||||
// Theme
|
|
||||||
base?: 'light' | 'dark';
|
|
||||||
};
|
|
||||||
} | null>(null);
|
|
||||||
|
|
||||||
function goBack(): void {
|
function goBack(): void {
|
||||||
history.back();
|
history.back();
|
||||||
|
@ -227,7 +157,7 @@ async function fetch() {
|
||||||
data.value = {
|
data.value = {
|
||||||
type: 'theme',
|
type: 'theme',
|
||||||
meta: {
|
meta: {
|
||||||
description,
|
// description, // 使用されていない
|
||||||
...meta,
|
...meta,
|
||||||
},
|
},
|
||||||
raw: res.data,
|
raw: res.data,
|
||||||
|
@ -353,9 +283,4 @@ definePageMetadata(() => ({
|
||||||
.extInstallerNormDesc {
|
.extInstallerNormDesc {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.extInstallerKVList {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -226,7 +226,7 @@ export const defaultStore = markRaw(new Storage('base', {
|
||||||
},
|
},
|
||||||
animatedMfm: {
|
animatedMfm: {
|
||||||
where: 'device',
|
where: 'device',
|
||||||
default: true,
|
default: window.matchMedia('(prefers-reduced-motion)').matches,
|
||||||
},
|
},
|
||||||
advancedMfm: {
|
advancedMfm: {
|
||||||
where: 'device',
|
where: 'device',
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"name": "misskey-js",
|
"name": "misskey-js",
|
||||||
"version": "2024.10.0-beta.5",
|
"version": "2024.10.0-beta.6",
|
||||||
"description": "Misskey SDK for JavaScript",
|
"description": "Misskey SDK for JavaScript",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
|
|
Loading…
Reference in New Issue