diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 848631823c..6926ed918f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ Configuration files are located in [`/.circleci`](/.circleci). * Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing). * Your PR must include the glTF binary files (`.glb`) of your models. * Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml). -* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5). +* Add a furniture definition at [`src/client/scripts/room/furnitures.json5`](src/client/scripts/room/furnitures.json5). If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/). You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html). diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 370c4a8db3..631027cb7a 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -430,6 +430,8 @@ inUse: "مستخدم" info: "عن" user: "المستخدمون" administration: "إدارة " +expiration: "ينتهي استطلاع الرأي في" +middle: "متوسط" _email: _follow: title: "يتابعك" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 4ed3343378..fe1f499eac 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -7,6 +7,7 @@ search: "Suchen" notifications: "Benachrichtigungen" username: "Benutzername" password: "Passwort" +forgotPassword: "Passwort vergessen" fetchingAsApObject: "Wird aus dem Fediverse angefragt..." ok: "OK" gotIt: "Verstanden!" @@ -298,8 +299,8 @@ reject: "Ablehnen" normal: "Normal" instanceName: "Name der Instanz" instanceDescription: "Beschreibung der Instanz" -maintainerName: "Betreiber" -maintainerEmail: "Betreiber-Email" +maintainerName: "Administrator" +maintainerEmail: "Administrator-Email" tosUrl: "URL der Nutzungsbedingungen" thisYear: "Dieses Jahr" thisMonth: "Dieser Monat" @@ -737,7 +738,7 @@ user: "Benutzer" administration: "Verwaltung" accounts: "Benutzerkonten" switch: "Wechseln" -noMaintainerInformationWarning: "Betreiberinformationen sind nicht konfiguriert." +noMaintainerInformationWarning: "Administratorinformationen sind nicht konfiguriert." noBotProtectionWarning: "Bot-Schutz ist nicht konfiguriert." configure: "Konfigurieren" postToGallery: "Beitrag zu Galerie hinzufügen" @@ -745,6 +746,13 @@ gallery: "Galerie" recentPosts: "Neue Beiträge" popularPosts: "Beliebte Beiträge" shareWithNote: "Mit Notiz teilen" +expiration: "Abstimmung endet am" +middle: "Mittel" +emailNotConfiguredWarning: "Keine Email-Adresse hinterlegt" +_forgotPassword: + enterEmail: "Gib die Email-Adresse ein, mit der du dich registriert hast. An diese wird ein Link gesendet, mit der du dein Passwort zurücksetzen kannst." + ifNoEmail: "Solltest du bei der Registrierung keine Email-Adresse angegeben haben, wende dich bitte an den Administrator." + contactAdmin: "Diese Instanz unterstützt die Verwendung von Email-Adressen nicht. Wende dich, um dein Passwort zurückzusetzen, an den Administrator." _gallery: my: "Meine Galerie" liked: "Beiträge, die mir gefallen" diff --git a/locales/en-US.yml b/locales/en-US.yml index 57ce0c2ac9..15bf985f3e 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -7,6 +7,7 @@ search: "Search" notifications: "Notifications" username: "Username" password: "Password" +forgotPassword: "Forgot password" fetchingAsApObject: "Fetching from Fediverse..." ok: "OK" gotIt: "Got it!" @@ -730,6 +731,7 @@ active: "Active" offline: "Offline" notRecommended: "Not recommended" botProtection: "Bot Protection" +instanceBlocking: "Blocked Instances" selectAccount: "Select account" enabled: "Enabled" disabled: "Disabled" @@ -746,6 +748,13 @@ gallery: "Gallery" recentPosts: "Recent posts" popularPosts: "Popular posts" shareWithNote: "Share with note" +expiration: "Poll ends on" +middle: "Medium" +emailNotConfiguredWarning: "Email address not set" +_forgotPassword: + enterEmail: "Enter the email address you used to register. A link with which you can reset your password will then be sent to it." + ifNoEmail: "If you did not use an email during registration, please contact the administrator instead." + contactAdmin: "This instance does not support using email addresses, please contact the administrator to reset your password instead." _gallery: my: "My Gallery" liked: "Liked Posts" @@ -1068,7 +1077,7 @@ _auth: permissionAsk: "This application requires following permissions:" pleaseGoBack: "Please go back to the application" callback: "Returning back to the application" - denied: "Access Denied" + denied: "Access denied" _antennaSources: all: "All notes" homeTimeline: "Notes from following users" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 9ad9d46661..fa645b3ecf 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -1,5 +1,6 @@ --- _lang_: "Español" +headlineMisskey: "Red conectada por notas" introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀" monthAndDay: "{day}/{month}" search: "Buscar" @@ -137,6 +138,7 @@ flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, a flagAsCat: "Esta cuenta es un gato" flagAsCatDescription: "En caso de que declare que esta cuenta es de un gato, active esta opción." autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues" +addAccount: "Agregar Cuenta" loginFailed: "Error al iniciar sesión." showOnRemote: "Ver en una instancia remota" general: "General" @@ -435,6 +437,7 @@ signinWith: "Inicie sesión con {x}" signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos." tapSecurityKey: "Toque la clave de seguridad" or: "O" +language: "Idioma" uiLanguage: "Idioma de visualización de la interfaz" groupInvited: "Invitado al grupo" aboutX: "Acerca de {x}" @@ -449,6 +452,7 @@ category: "Categoría" tags: "Etiqueta" docSource: "Fuente de este documento" createAccount: "Crear cuenta" +existingAccount: "Cuenta existente" regenerate: "Regenerar" fontSize: "Tamaño de la letra" noFollowRequests: "No hay solicitudes de seguimiento" @@ -563,6 +567,7 @@ pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos notificationType: "Tipo de notificación" edit: "Editar" useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella" +emailServer: "Servidor de correo" enableEmail: "Activar el envío de correos electrónicos" emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña" email: "Correo" @@ -642,6 +647,14 @@ driveFilesCount: "Cantidad de archivos en el drive" driveUsage: "Uso del drive" noCrawle: "Rechazar indexación del crawler" noCrawleDescription: "Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc." +alwaysMarkSensitive: "Marcar los medios de comunicación como contenido sensible por defecto" +verificationEmailSent: "Se le ha enviado un correo electrónico de confirmación. Por favor, acceda al enlace proporcionado en el correo electrónico para completar la configuración." +notSet: "Sin especificar" +emailVerified: "Su dirección de correo electrónico ha sido verificada." +noteFavoritesCount: "Número de notas favoritas" +pageLikesCount: "Número de favoritos en la página" +pageLikedCount: "Número de favoritos de su página" +contact: "Contacto" clips: "Clip" clearCache: "Limpiar caché" backgroundColor: "Fondo" @@ -652,6 +665,8 @@ goBack: "Deseleccionar" info: "Información" user: "Usuarios" administration: "Administrar" +expiration: "Termina el" +middle: "Mediano" _gallery: unlike: "Quitar me gusta" _email: diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 35a97c1456..da2932fae3 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -604,6 +604,7 @@ setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les sé fileIdOrUrl: "ID du fichier ou URL" chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture" behavior: "Comportement" +sample: "Exemple" abuseReports: "Signalements" reportAbuse: "Signalements" reportAbuseOf: "Signaler {name}" @@ -725,6 +726,7 @@ onlineStatus: "Statut" hideOnlineStatus: "Se rendre invisible" hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances de certaines fonctionnalités, telles que la Recherche." online: "En ligne" +active: "Actif·ve" offline: "Hors ligne" notRecommended: "Déconseillé" botProtection: "Protection contre les bots" @@ -745,6 +747,8 @@ gallery: "Galerie" recentPosts: "Les plus récentes" popularPosts: "Les plus consultées" shareWithNote: "Partager dans une note" +expiration: "Fin du sondage" +middle: "Moyen" _gallery: my: "Mes publications" liked: " Publications que j'ai aimées" @@ -760,6 +764,7 @@ _plugin: installWarn: "N’installez que des extensions provenant de sources de confiance." manage: "Gestion des plugins" _registry: + scope: "Portée" key: "Clé " keys: "Clé " domain: "Domaine" @@ -793,18 +798,38 @@ _mfm: boldDescription: "Il est possible de mettre le texte en exergue en le mettant en gras." small: "Diminuer l'emphase" smallDescription: "Le contenu peut être affiché en petit et fin." - center: "Centrée" + center: "Centrer" centerDescription: "Le contenu peut être centré" inlineCode: "Code (inline)" + inlineCodeDescription: "Coloration syntaxique des lignes de code." blockCode: "Bloc de code" + blockCodeDescription: "Coloration syntaxique des lignes de code pour les blocs multi-lignes." inlineMath: "Formule mathématique (inline)" + inlineMathDescription: "Afficher les formules mathématiques (KaTeX)." blockMath: "Formule mathématique (bloc)" + blockMathDescription: "Afficher les formules mathématiques (KaTeX) multi-lignes dans un bloc." quote: "Citer" quoteDescription: "Affiche le contenu sous forme de citation." emoji: "Émojis personnalisés" + emojiDescription: "Entourez le nom de l'émoji personnalisé de deux points pour l'afficher." search: "Rechercher" + searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi." flip: "Inverser" flipDescription: "Rotation verticale ou horizontale du contenu" + jelly: "Animation (Gelée)" + jellyDescription: "Donne une animation d'étirement." + tada: "Animation (Tada)" + tadaDescription: "Donne une animation qui donne une impression de \"Tada !\"" + jump: "Animation (Saut)" + jumpDescription: "Donne une animation qui saute." + bounce: "Animation (Rebond)" + bounceDescription: "Donne une animation de rebondissement." + shake: "Animation (Secousse)" + shakeDescription: "Donne une animation tremblante." + twitch: "Animation (Tremblement)" + twitchDescription: "Donne une animation de tremblement intense." + spin: "Animation (Rotation)" + spinDescription: "Donne une animation de rotation." x2: "Grand" x2Description: "Afficher le contenu en grand." x3: "Très grand" @@ -846,6 +871,7 @@ _reversi: ended: "Fin de partie" playing: "En cours" isLlotheo: "Celui ou celle qui a le moins de pièces gagne (Llotheo)" + loopedMap: "Carte en boucle" canPutEverywhere: "Les pions peuvent être placés partout " _instanceTicker: none: "Cacher " @@ -895,11 +921,13 @@ _theme: constant: "Constante" defaultValue: "Valeur par défaut" color: "Couleur" - refConst: "Référencez une constante" + refProp: "Appeler une propriété" + refConst: "Appeler une constante" key: "Clé " func: "Fonction" funcKind: "Type de fonction" argument: "Argument" + basedProp: "Nom de la propriété référencée" alpha: "Transparence" darken: "Sombre" lighten: "Clair" @@ -925,9 +953,12 @@ _theme: mention: "Mentionner" mentionMe: "Mentions (Moi)" renote: "Partager" + modalBg: "Modal d'arrière-plan" divider: "Séparateur" scrollbarHandle: "Poignée de la barre de navigation" scrollbarHandleHover: "Poignée de la barre de navigation (survolée)" + dateLabelFg: "Texte de l'étiquette de la date" + infoBg: "Arrière-plan pour les informations" infoFg: "Texte d'information" infoWarnBg: "Arrière-plan des avertissements" infoWarnFg: "Texte d’avertissement" @@ -941,6 +972,7 @@ _theme: inputBorder: "Cadre de la zone de texte" listItemHoverBg: "Arrière-plan d'item de liste (survolé)" driveFolderBg: "Arrière-plan du dossier de disque" + wallpaperOverlay: "Superposition de fond d'écran" badge: "Badge" messageBg: "Arrière plan de la discussion" accentDarken: "Plus sombre" @@ -951,7 +983,7 @@ _sfx: noteMy: "Ma note" notification: "Notifications" chat: "Discuter" - chatBg: "Discuter (De fond)" + chatBg: "Discussion (arrière-plan)" antenna: "Réception de l’antenne" channel: "Notifications de canal" reversiPutBlack: "Reversi : les pions noirs ont joué" @@ -996,14 +1028,14 @@ _tutorial: step7_2: "Si vous désirez en savoir plus sur Misskey, jetez un œil sur la section {help}." step7_3: "Bon courage et amusez-vous bien sur Misskey ! 🚀" _2fa: - alreadyRegistered: "Cette étape à déjà été complétée" + alreadyRegistered: "Configuration déjà achevée." registerDevice: "Ajouter un nouvel appareil" - registerKey: "S’inscrire la clé" + registerKey: "Enregistrer une clef" step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil." step2: "Ensuite, scannez le code QR affiché sur l’écran." step3: "Entrez le jeton affiché sur votre application pour compléter la configuration." - step4: "Lorsque vous vous connectez, entrez le jeton de la même manière." - securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion avec non seulement la clé de sécurité matérielle qui prend en charge FIDO2, mais également l'authentification par empreinte digitale ou PIN sur votre appareil." + step4: "À partir de maintenant, ce même jeton vous sera demandé à chacune de vos connexions." + securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion grâce à une clé de sécurité matérielle qui prend en charge FIDO2, ou bien en configurant l'authentification par empreinte digitale ou par code PIN sur votre appareil." _permissions: "read:account": "Afficher les informations du compte" "write:account": "Mettre à jour les informations de votre compte" @@ -1015,8 +1047,8 @@ _permissions: "write:favorites": "Gérer les favoris" "read:following": "Voir les informations de vos abonnements" "write:following": "Abonnements/Se désabonner" - "read:messaging": "Cherche à discuter" - "write:messaging": "Contrôler le discuter" + "read:messaging": "Voir vos discussions" + "write:messaging": "Gérer les discussions" "read:mutes": "Voir les comptes masqués" "write:mutes": "Gérer les comptes masqués" "write:notes": "Créer / supprimer des notes" @@ -1025,10 +1057,10 @@ _permissions: "read:reactions": "Lire les réactions" "write:reactions": "Gérer vos réactions" "write:votes": "Voter" - "read:pages": "Afficher la page" - "write:pages": "Mettre à jour les Pages" - "read:page-likes": "Voir les favoris sur les Pages" - "write:page-likes": "Mettre à jour les favoris sur les Pages" + "read:pages": "Voir vos pages" + "write:pages": "Gérer les pages" + "read:page-likes": "Voir les mentions « J'aime » des pages" + "write:page-likes": "Gérer les mentions « J'aime » sur les pages" "read:user-groups": "Voir les groupes d'utilisateur·rice·s" "write:user-groups": "Éditer les groupes des utilisateur·rice·s" "read:channels": "Lire les canaux" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 1a73f40a34..db236bad9e 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -628,6 +628,7 @@ driveFilesCount: "Numero di file nel Drive" driveUsage: "Utilizzazione del Drive" noCrawle: "Rifiuta l'indicizzazione dai robot." noCrawleDescription: "Richiedi che i motori di ricerca non indicizzino la tua pagina di profilo, le tue note, pagine, ecc." +lockedAccountInfo: "A meno che non imposti la visibilità delle tue note su \"Solo ai follower\", le tue note sono visibili da tutti, anche se hai configurato l'account per confermare manualmente le richieste di follow." alwaysMarkSensitive: "Segnare i media come sensibili per impostazione predefinita" loadRawImages: "Visualizza le intere immagini allegate invece delle miniature." disableShowingAnimatedImages: "Disabilita le immagini animate" @@ -706,6 +707,7 @@ online: "Online" offline: "Offline" notRecommended: "Sconsigliato" botProtection: "Protezione contro i bot" +instanceBlocking: "Istanze bloccate" selectAccount: "Scegli account" enabled: "Attivo" disabled: "Inattivo" @@ -722,6 +724,8 @@ gallery: "Galleria" recentPosts: "Le più recenti" popularPosts: "Le più visualizzate" shareWithNote: "Condividere in nota" +expiration: "Scadenza" +middle: "Predefinito" _gallery: my: "Le mie pubblicazioni" liked: "Pubblicazioni che mi piacciono" @@ -829,11 +833,15 @@ _theme: constant: "Costante" defaultValue: "Valore predefinito" color: "Colore" + refConst: "Chiama costante" key: "Chiave" func: "Funzione" + funcKind: "Tipo di funzione" argument: "Argomento" darken: "Scuro" lighten: "Chiaro" + inputConstantName: "Inserisci un nome per la costante" + deleteConstantConfirm: "Vuoi davvero eliminare la costante {const}?" keys: bg: "Sfondo" fg: "Testo" @@ -850,8 +858,10 @@ _theme: link: "Link" hashtag: "Hashtag" mention: "Menzioni" + mentionMe: "Menzioni (di me)" renote: "Rinota" divider: "Interruzione di linea" + infoBg: "Sfondo informazioni" infoFg: "Testo di informazioni" infoWarnBg: "Sfondo degli avvisi" infoWarnFg: "Testo di avviso" @@ -865,11 +875,13 @@ _theme: inputBorder: "Inquadra casella di testo" listItemHoverBg: "Sfondo della voce di elenco (sorvolato)" driveFolderBg: "Sfondo della cartella di disco" + messageBg: "Sfondo della chat" _sfx: note: "Nota" noteMy: "Mia nota" notification: "Notifiche" chat: "Messaggi" + chatBg: "Chat (sfondo)" antenna: "Ricezione dell'antenna" channel: "Notifiche di canale" _ago: @@ -914,12 +926,18 @@ _tutorial: _2fa: registerDevice: "Aggiungi dispositivo" _permissions: + "read:account": "Visualizzare le informazioni dell'account" + "write:account": "Modificare le informazioni dell'account" "read:blocks": "Visualizza gli account bloccati" "write:blocks": "Gestisci gli account bloccati" + "read:drive": "Aprire il Drive" + "write:drive": "Gestire il Drive" "read:favorites": "Visualizza i tuoi preferiti" "write:favorites": "Gestisci i tuoi preferiti" "read:following": "Vedi le informazioni di follow" "write:following": "Seguiti/ Smetti di seguire" + "read:messaging": "Visualizzare la chat" + "write:messaging": "Gestire la chat" "read:mutes": "Vedi account silenziati" "write:mutes": "Gerisci account silenziati" "write:notes": "Creare / Eliminare note" @@ -927,12 +945,22 @@ _permissions: "write:notifications": "Gerisci notifiche" "read:reactions": "Vedi reazioni" "write:reactions": "Gerisci reazioni" + "write:votes": "Votare" + "read:pages": "Visualizzare pagine" + "write:pages": "Gestire pagine" + "read:page-likes": "Visualizzare i \"Mi piace\" di pagine" + "write:page-likes": "Gestire i \"Mi piace\" di pagine" "read:user-groups": "Vedi gruppi di utenti" "write:user-groups": "Gestisci gruppi di utenti" "read:channels": "Visualizza canali" "write:channels": "Gerisci canali" _auth: shareAccess: "Autorizzare「{name}」ad accedere al tuo account?" + shareAccessAsk: "Vuoi davvero consentire l'accesso al tuo account a questa app'?" + permissionAsk: "Questa app richiede le seguenti autorizzazioni:" + pleaseGoBack: "Si prega di ritornare sulla app" + callback: "Ritornando sulla app" + denied: "Accesso negato" _antennaSources: all: "Tutte le note" homeTimeline: "Note dagli utenti che segui" @@ -960,22 +988,39 @@ _widgets: digitalClock: "Orologio digitale" federation: "Federazione" postForm: "Finestra di pubblicazione" + slideshow: "Diapositive" button: "Pulsante" onlineUsers: "Utenti online" jobQueue: "Coda di lavoro" serverMetric: "Statistiche server" + aiscript: "Console AiScript" _cw: hide: "Nascondere" show: "Mostra di più" + chars: "{count} caratteri" + files: "{count} file" _poll: + noOnlyOneChoice: "Sono necessarie almeno 2 risposte" + choiceN: "Opzione {n}" noMore: "Hai aggiunto il numero massimo di opzioni." - canMultipleVote: "Risposte multiple" + canMultipleVote: "Possibilità di risposte multiple" expiration: "Scadenza" - infinite: "Permanente" + infinite: "Non scade" + at: "Seleziona data" + after: "Seleziona durata" deadlineDate: "Data di scadenza" - deadlineTime: "h" - voted: "Votato" + deadlineTime: "Ora di scadenza" + duration: "Durata" + votesCount: "{n} voti" + totalVotes: "Totale di {n} voti" + vote: "Vota" + showResult: "Visualizza risultati" + voted: "Hai votato" closed: "Terminato" + remainingDays: "Rimangono {d} giorni e {h} ore" + remainingHours: "Rimangono {h} ore e {m} minuti" + remainingMinutes: "Rimangono {m} minuti e {s} secondi" + remainingSeconds: "Rimangono {s} secondi" _visibility: public: "Pubblica" publicDescription: "Visibile per tutti sul Fediverso" @@ -1003,7 +1048,7 @@ _profile: username: "Nome utente" description: "Bio" youCanIncludeHashtags: "Puoi anche includere hashtag." - metadata: "Metadati" + metadata: "Informazioni aggiuntive" metadataEdit: "Modifica informazioni aggiuntive" metadataDescription: "Puoi pubblicare fino a quattro informazioni aggiuntive sul profilo." metadataLabel: "Etichetta" @@ -1312,7 +1357,7 @@ _notification: youGotReply: "{name} ti ha risposto" youGotQuote: "{name} ha citato il tuo Nota e ha detto" youRenoted: "{name} ha rinotato" - youGotPoll: "{name} ha volluto." + youGotPoll: "{name} ha votato" youGotMessagingMessageFromUser: "{name} ti ha mandato un messaggio" youGotMessagingMessageFromGroup: "{name} ti ha mandato un messaggio nella chat" youWereFollowed: "Ha iniziato a seguirti" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 041bdfb11d..0f786a6b14 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -7,6 +7,7 @@ search: "検索" notifications: "通知" username: "ユーザー名" password: "パスワード" +forgotPassword: "パスワードを忘れた" fetchingAsApObject: "連合に照会中" ok: "OK" gotIt: "わかった" @@ -747,6 +748,19 @@ gallery: "ギャラリー" recentPosts: "最近の投稿" popularPosts: "人気の投稿" shareWithNote: "ノートで共有" +ads: "広告" +expiration: "期限" +memo: "メモ" +priority: "優先度" +high: "高" +middle: "中" +low: "低" +emailNotConfiguredWarning: "メールアドレスの設定がされていません。" + +_forgotPassword: + enterEmail: "アカウントに登録したメールアドレスを入力してください。そのアドレス宛てに、パスワードリセット用のリンクが送信されます。" + ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。" + contactAdmin: "このインスタンスではメールがサポートされていないため、パスワードリセットを行う場合は管理者までお問い合わせください。" _gallery: my: "自分の投稿" diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 19ee30a4c9..d30a6cc8c8 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -552,7 +552,7 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する" testEmail: "配信テスト" wordMute: "ワードミュート" userSaysSomething: "{name}が何か言ったようやで" -makeActive: "アクティブにしてや" +makeActive: "使うで" display: "表示" copy: "コピー" metrics: "メトリクス" @@ -643,6 +643,8 @@ goBack: "戻る" info: "情報" user: "ユーザー" administration: "管理" +expiration: "期限" +middle: "中" _gallery: unlike: "良くないわ" _email: diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 024faa45a3..c8dba9b15c 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -747,6 +747,8 @@ gallery: "갤러리" recentPosts: "최근 포스트" popularPosts: "인기 포스트" shareWithNote: "노트로 공유" +expiration: "투표 기한" +middle: "보통" _gallery: my: "내 갤러리" liked: "좋아요 한 갤러리" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index 3b4b53bce4..4a1a2d8686 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -647,6 +647,8 @@ goBack: "Wróć" info: "Informacje" user: "Użytkownicy" administration: "Zarządzanie" +expiration: "Ankieta kończy się" +middle: "Średnie" _gallery: unlike: "Cofnij polubienie" _email: diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 40372658e0..6e906eb55a 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -747,6 +747,8 @@ gallery: "Галерея" recentPosts: "Недавние публикации" popularPosts: "Популярные публикации" shareWithNote: "Поделиться заметкой" +expiration: "Опрос длится" +middle: "Средне" _gallery: my: "Личная" liked: "Понравившееся" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index c3967d74cb..2dfd667330 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -689,6 +689,8 @@ goBack: "Назад" info: "Інформація" user: "Користувачі" administration: "Управління" +expiration: "Опитування закінчується" +middle: "Середній" _gallery: unlike: "Не вподобати" _email: diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index b53be8d113..4d1780c687 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -747,11 +747,13 @@ gallery: "图库" recentPosts: "最新发布" popularPosts: "热门投稿" shareWithNote: "在帖子中分享" +expiration: "截止时间" +middle: "中" _gallery: my: "我的图库" liked: "喜欢的图片" - like: "喜欢❤" - unlike: "取消赞" + like: "喜欢" + unlike: "取消喜欢" _email: _follow: title: "你有新的关注者" @@ -1278,7 +1280,7 @@ _pages: viewSource: "查看源代码" viewPage: "查看页面" like: "赞" - unlike: "取消赞" + unlike: "取消喜欢" my: "我的页面" liked: "喜欢的页面" featured: "热门" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 62b48829b9..23e47f25ac 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -44,7 +44,7 @@ copyLink: "複製連結" delete: "刪除" deleteAndEdit: "刪除並編輯" deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有情感、轉發和回覆也將會消失。" -addToList: "新增至清單" +addToList: "加入至清單" sendMessage: "發送訊息" copyUsername: "複製用戶名" searchUser: "搜尋用戶" @@ -129,7 +129,7 @@ customEmojis: "自訂表情符號" emoji: "表情符號" emojiName: "表情符號名稱" emojiUrl: "表情符號URL" -addEmoji: "新增表情符號" +addEmoji: "加入表情符號" settingGuide: "推薦設定" cacheRemoteFiles: "緩存非遠程檔案" cacheRemoteFilesDescription: "禁用此設定會停止遠端檔案的緩存,從而節省儲存空間,但資料會因直接連線從而產生額外連接數據。" @@ -218,7 +218,7 @@ newPasswordRetype: "確認密碼" attachFile: "上傳附件" more: "更多!" featured: "精選" -usernameOrUserId: "使用者名稱或用戶ID" +usernameOrUserId: "使用者名稱或使用者ID" noSuchUser: "使用者不存在" lookup: "查詢" announcements: "公告" @@ -273,7 +273,7 @@ folderName: "資料夾名稱" createFolder: "新增資料夾" renameFolder: "重新命名資料夾" deleteFolder: "刪除資料夾" -addFile: "添加附件" +addFile: "加入附件" emptyDrive: "雲端硬碟為空" emptyFolder: "資料夾為空" unableToDelete: "無法刪除" @@ -693,6 +693,7 @@ editCode: "編輯代碼" apply: "套用" receiveAnnouncementFromInstance: "接收由本實例發出的電郵通知" emailNotification: "郵件通知" +publish: "發佈" inChannelSearch: "頻道内搜尋" useReactionPickerForContextMenu: "點擊右鍵開啟回應工具欄" typingUsers: "{users}輸入中..." @@ -730,6 +731,8 @@ switch: "切換" noMaintainerInformationWarning: "尚未設定管理員信息。" noBotProtectionWarning: "尚未設定Bot防護。" configure: "設定" +expiration: "期限" +middle: "中" _gallery: unlike: "收回喜歡" _email: @@ -1473,7 +1476,7 @@ _notification: reply: "回覆" renote: "轉發貼文" quote: "引用" - reaction: "情感" + reaction: "反應" pollVote: "統計已投票數" receiveFollowRequest: "已收到追隨請求" followRequestAccepted: "追隨請求已接受" diff --git a/migration/1619942102890-password-reset.ts b/migration/1619942102890-password-reset.ts new file mode 100644 index 0000000000..66854cb025 --- /dev/null +++ b/migration/1619942102890-password-reset.ts @@ -0,0 +1,20 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class passwordReset1619942102890 implements MigrationInterface { + name = 'passwordReset1619942102890' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "password_reset_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_fcf4b02eae1403a2edaf87fd074" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b575fa9a4cfe638a925949285" ON "password_reset_request" ("token") `); + await queryRunner.query(`CREATE INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac" ON "password_reset_request" ("userId") `); + await queryRunner.query(`ALTER TABLE "password_reset_request" ADD CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "password_reset_request" DROP CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8"`); + await queryRunner.query(`DROP INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac"`); + await queryRunner.query(`DROP INDEX "IDX_0b575fa9a4cfe638a925949285"`); + await queryRunner.query(`DROP TABLE "password_reset_request"`); + } + +} diff --git a/migration/1620019354680-ad.ts b/migration/1620019354680-ad.ts new file mode 100644 index 0000000000..27fb99f181 --- /dev/null +++ b/migration/1620019354680-ad.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ad1620019354680 implements MigrationInterface { + name = 'ad1620019354680' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "ad" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "place" character varying(32) NOT NULL, "priority" character varying(32) NOT NULL, "url" character varying(1024) NOT NULL, "imageUrl" character varying(1024) NOT NULL, "memo" character varying(8192) NOT NULL, CONSTRAINT "PK_0193d5ef09746e88e9ea92c634d" PRIMARY KEY ("id")); COMMENT ON COLUMN "ad"."createdAt" IS 'The created date of the Ad.'; COMMENT ON COLUMN "ad"."expiresAt" IS 'The expired date of the Ad.'`); + await queryRunner.query(`CREATE INDEX "IDX_1129c2ef687fc272df040bafaa" ON "ad" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_2da24ce20ad209f1d9dc032457" ON "ad" ("expiresAt") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_2da24ce20ad209f1d9dc032457"`); + await queryRunner.query(`DROP INDEX "IDX_1129c2ef687fc272df040bafaa"`); + await queryRunner.query(`DROP TABLE "ad"`); + } + +} diff --git a/package.json b/package.json index 25ebacaa7c..2a4c9d9013 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo ", - "version": "12.79.3", + "version": "12.80.0", "codename": "indigo", "repository": { "type": "git", @@ -32,7 +32,6 @@ "resolutions": { "chokidar": "^3.3.1", "constantinople": "^4.0.1", - "gulp/gulp-cli/yargs/yargs-parser": "5.0.0-security.0", "jsonld/rdf-canonize/node-forge": "0.10.0", "lodash": "^4.17.20" }, diff --git a/src/client/components/date-separated-list.vue b/src/client/components/date-separated-list.vue index 2a861adb09..d458a0eeb8 100644 --- a/src/client/components/date-separated-list.vue +++ b/src/client/components/date-separated-list.vue @@ -1,5 +1,6 @@ diff --git a/src/client/components/global/ad.vue b/src/client/components/global/ad.vue new file mode 100644 index 0000000000..00592e4ca2 --- /dev/null +++ b/src/client/components/global/ad.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/src/client/components/global/url.vue b/src/client/components/global/url.vue index e633a57bd8..218729882d 100644 --- a/src/client/components/global/url.vue +++ b/src/client/components/global/url.vue @@ -113,8 +113,6 @@ export default defineComponent({ > .icon { padding-left: 2px; font-size: .9em; - font-weight: 400; - font-style: normal; } > .self { diff --git a/src/client/components/index.ts b/src/client/components/index.ts index 0630ed3d8c..8b914c5eec 100644 --- a/src/client/components/index.ts +++ b/src/client/components/index.ts @@ -12,8 +12,10 @@ import url from './global/url.vue'; import i18n from './global/i18n'; import loading from './global/loading.vue'; import error from './global/error.vue'; +import ad from './global/ad.vue'; export default function(app: App) { + app.component('I18n', i18n); app.component('Mfm', mfm); app.component('MkA', a); app.component('MkAcct', acct); @@ -25,5 +27,5 @@ export default function(app: App) { app.component('MkUrl', url); app.component('MkLoading', loading); app.component('MkError', error); - app.component('I18n', i18n); + app.component('MkAd', ad); } diff --git a/src/client/components/note-preview.vue b/src/client/components/note-preview.vue index fcae4c4368..4248c2bb1d 100644 --- a/src/client/components/note-preview.vue +++ b/src/client/components/note-preview.vue @@ -1,5 +1,5 @@