diff --git a/.vscode/extensions.json b/.vscode/extensions.json index ac8124f48a..0083604d44 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,7 +2,6 @@ "recommendations": [ "editorconfig.editorconfig", "vue.volar", - "vue.vscode-typescript-vue-plugin", "arcanis.vscode-zipfs", "orta.vscode-twoslash-queries", "antfu.iconify", diff --git a/README.md b/README.md index efade01629..06ef89b9fd 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ For install production environment details, read [this document](https://firefis ## Dependencies -- At least [NodeJS](https://nodejs.org/en/) v18.16.0 (v20/v21 recommended) +- At least [NodeJS](https://nodejs.org/en/) v18.17.0 (v20/v21 recommended) - At least [PostgreSQL](https://www.postgresql.org/) v12 (v16 recommended) with [PGroonga](https://pgroonga.github.io/) extension - At least [Redis](https://redis.io/) v7 - Web Proxy (one of the following) diff --git a/docs/activitypub-extensions.md b/docs/activitypub-extensions.md new file mode 100644 index 0000000000..4d5faeff80 --- /dev/null +++ b/docs/activitypub-extensions.md @@ -0,0 +1,10 @@ +# Firefish's ActivityPub extensions + +These are the extensions to ActivityPub that Firefish implements. This page uses [compact IRIs](https://www.w3.org/TR/json-ld/#dfn-compact-iri). The `firefish` prefix is used to refer to `https://firefish.dev/ns#`. + +## speakAsCat + +- Compact IRI: `firefish:speakAsCat` +- Canonical IRI: `https://firefish.dev/ns#speakascat` + +Used on actors to indicate that they not only identify as a cat, but also want to have their text be transformed to speak like one, expressed as a boolean value. If this property is set to true, displaying the actor’s posts will make them speak with “nya” instead of “na” and other cat-related text mannerisms. Used in combination with [misskey:isCat](https://misskey-hub.net/ns/#iscat). diff --git a/docs/changelog.md b/docs/changelog.md index 16fe645f19..6d8abed428 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -8,6 +8,10 @@ Critical security updates are indicated by the :warning: icon. - Refactoring - Show unlisted posts from following users in antennas (similar to [Fedibird](https://github.com/fedibird/mastodon/tree/fedibird) and [kmyblue](https://github.com/kmycode/mastodon), unlisted posts from people you don't follow won't be shown) - Add ability to publish the Local and Global timelines on `/timeline` page +- Add langage annotation to post contents (!10687) +- Add a toggleable setting to show a warning when you attempt to post files without alt text +- Fix bugs +- Update documents ## v20240301 diff --git a/docs/notice-for-admins.md b/docs/notice-for-admins.md index 6fa5689642..c52cf61620 100644 --- a/docs/notice-for-admins.md +++ b/docs/notice-for-admins.md @@ -4,6 +4,9 @@ The full-text search engine used in Firefish has been changed to [PGroonga](http ## For systemd/pm2 users +- Required Node.js version has been bumped from v18.16.0 to v18.17.0. +- You need to install PGroonga on your system. Please follow the instructions below. + ### 1. Install PGroonga Please execute `psql --version` to check your PostgreSQL major version. This will print a message like this: diff --git a/locales/bg-BG.yml b/locales/bg-BG.yml index 2f26fb9c5c..2ac83494ed 100644 --- a/locales/bg-BG.yml +++ b/locales/bg-BG.yml @@ -14,8 +14,8 @@ unpin: Откачане от профила copyLink: Копиране на връзката pin: Закачане в профила deleted: Изтрито -deleteAndEditConfirm: Сигурен ли си, че искаш да изтриеш тази публикация и да я редактираш? - Ще загубиш всички реакции, подсилвания и отговори към нея. +deleteAndEditConfirm: Сигурни ли сте, че искате да изтриете тази публикация и да я + редактирате? Ще загубите всички реакции, подсилвания и отговори към нея. copyUsername: Копиране на потребителското име searchUser: Търсене на потребител reply: Отговор @@ -549,8 +549,8 @@ _sfx: antenna: Антени note: Нова публикация _permissions: - "read:favorites": Виж списъка си с отметки - "write:favorites": Редактирай списъка си с отметки + "read:favorites": Преглед на списъка ви с отметки + "write:favorites": Редактиране на списъка ви с отметки _visibility: followers: Последователи specified: Директна @@ -595,18 +595,18 @@ _tutorial: step5_1: Инфопотоци, инфопотоци навсякъде! step3_1: Сега е време да последвате няколко хора! step1_2: Нека да ви настроим. Ще бъдете готови за нула време! - step5_3: Началният {icon} инфопоток е мястото, където можеш да видиш публикации - от акаунтите, които следваш. + step5_3: Началният {icon} инфопоток е мястото, където можете да видите публикации + от акаунтите, които следвате. step6_1: И така, какво е това място? - step5_7: Глобалният {icon} инфопоток е мястото, където можете да видиш публикации + step5_7: Глобалният {icon} инфопоток е мястото, където можете да видите публикации от всеки друг свързан сървър. step4_2: За първата си публикация някои хора обичат да правят публикация {introduction} или просто „Здравей свят!“ step5_2: Вашият сървър има активирани {timelines} различни инфопотоци. - step5_4: Местният {icon} инфопоток е мястото, където можеш да видиш публикации от - всички останали на този сървър. + step5_4: Местният {icon} инфопоток е мястото, където можете да видите публикации + от всички останали на този сървър. step5_5: Социалният {icon} инфопоток е комбинация от Началния и Местния инфопоток. - step5_6: Препоръчаният {icon} инфопоток е мястото, където можеш да видиш публикации + step5_6: Препоръчаният {icon} инфопоток е мястото, където можете да видите публикации от сървъри, препоръчани от администраторите. step6_4: Сега отидете, изследвайте и се забавлявайте! step6_3: Всеки сървър работи по различни начини и не всички сървъри работят с Firefish. @@ -663,7 +663,7 @@ operations: Операции mutedUsers: Заглушени потребители imageUrl: URL адрес на изображение announcements: Оповестявания -removeAreYouSure: Сигурен ли си, че искаш да премахнеш "{x}"? +removeAreYouSure: Сигурни ли сте, че искате да премахнете "{x}"? fromUrl: От URL адрес manageGroups: Управление на групи nUsersRead: прочетено от {n} @@ -758,7 +758,7 @@ reload: Опресняване invites: Покани blockedInstances: Блокирани сървъри inMb: В мегабайти -unfollowConfirm: Сигурен ли си, че искаш да спреш да следваш {name}? +unfollowConfirm: Сигурни ли сте, че искате да прекратите следването на {name}? somethingHappened: Възникна грешка pageLoadError: Възникна грешка при зареждането на страницата. enterListName: Въведи име за списъка @@ -768,9 +768,9 @@ selectChannel: Избор на канал all: Всичко muteAndBlock: Заглушени и блокирани blockedUsers: Блокирани потребители -noteDeleteConfirm: Сигурен ли си, че искаш да изтриеш тази публикация? +noteDeleteConfirm: Сигурни ли сте, че искате да изтриете тази публикация? hiddenTags: Скрити хаштагове -deleteAreYouSure: Сигурен ли си, че искаш да изтриеш "{x}"? +deleteAreYouSure: Сигурни ли сте, че искате да изтриете "{x}"? startMessaging: Започване на нов чат uploadFromUrl: Качване от URL адрес instanceName: Име на сървъра @@ -778,7 +778,6 @@ instanceDescription: Описание на сървъра accept: Приемане enableLocalTimeline: Включване на местния инфопоток enableGlobalTimeline: Включване на глобалния инфопоток -findOtherInstance: Намиране на друг сървър removeMember: Премахване на член isAdmin: Администратор isModerator: Модератор @@ -858,3 +857,13 @@ apply: Прилагане selectAccount: Избор на акаунт muteThread: Заглушаване на нишката ffVisibility: Видимост на Последвани/Последователи +renoteMute: Заглушаване на подсилванията в инфопотоците +replyMute: Заглушаване на отговорите в инфопотоците +blockConfirm: Сигурни ли сте, че искате да блокирате този акаунт? +appearance: Облик +fontSize: Размер на шрифта +describeFile: Добавяне на описание +unblockConfirm: Сигурни ли сте, че искате да отблокирате този акаунт? +followConfirm: Сигурни ли сте, че искате да последвате {name}? +accountMoved: 'Потребителят се премести на нов акаунт:' +inputNewDescription: Въведете ново описание diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml index a839bd8788..aea2d7f03c 100644 --- a/locales/bn-BD.yml +++ b/locales/bn-BD.yml @@ -15,10 +15,10 @@ ok: "ঠিক" gotIt: "বুঝেছি" cancel: "বাতিল" enterUsername: "ইউজারনেম লিখুন" -renotedBy: "{user} রিনোট করেছেন" -noNotes: "কোন নোট নেই" +renotedBy: "{user} দ্বারা বুস্ট করা হয়েছে" +noNotes: "No posts" noNotifications: "কোনো বিজ্ঞপ্তি নেই" -instance: "ইন্সট্যান্স" +instance: "সার্ভার" settings: "সেটিংস" basicSettings: "সাধারণ সেটিংস" otherSettings: "অন্যান্য সেটিংস" @@ -46,8 +46,8 @@ copyContent: "বিষয়বস্তু কপি করুন" copyLink: "লিঙ্ক কপি করুন" delete: "মুছুন" deleteAndEdit: "মুছুন এবং সম্পাদনা করুন" -deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি - এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।" +deleteAndEditConfirm: "আপনি কি এই পোস্টটি মুছে ফেলার এবং এটি সম্পাদনা করার বিষয়ে + নিশ্চিত? আপনি এটির সমস্ত প্রতিক্রিয়া, বুস্ট এবং উত্তর হারাবেন।" addToList: "লিস্ট এ যোগ করুন" sendMessage: "একটি বার্তা পাঠান" copyUsername: "ব্যবহারকারীর নাম কপি করুন" @@ -61,18 +61,18 @@ receiveFollowRequest: "অনুসরণ করার জন্য অনুর followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে" mention: "উল্লেখ" mentions: "উল্লেখসমূহ" -directNotes: "ডাইরেক্ট নোটগুলি" -importAndExport: "আমদানি এবং রপ্তানি" -import: "আমদানি করুণ" -export: "রপ্তানি" +directNotes: "প্রত্যক্ষ বার্তা" +importAndExport: "ডেটা ইমপোর্ট/এক্সপোর্ট" +import: "ইমপোর্ট করুণ" +export: "এক্সপোর্ট করুন" files: "ফাইলগুলি" download: "ডাউনলোড" driveFileDeleteConfirm: "আপনি কি নিশ্চিত যে আপনি \"{name}\" ডিলিট করতে চান? যে সকল - নোটের সাথে এই ফাইলটি সংযুক্ত সেগুলোও ডিলিট করা হবে।" + পোস্ট এর সাথে এই ফাইলটি সংযুক্ত সেগুলোও ডিলিট করা হবে।" unfollowConfirm: "{name} কে আনফলোও করার ব্যাপারে নিশ্চিত?" -exportRequested: "আপনার তথ্যসমূহ রপ্তানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। - রপ্তানি সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।" -importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। " +exportRequested: "আপনার তথ্যসমূহ এক্সপোর্ট জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে + পারে। এক্সপোর্ট সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।" +importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে।" lists: "লিস্ট" noLists: "কোন লিস্ট নেই" note: "নোট" @@ -87,7 +87,7 @@ somethingHappened: "একটি ত্রুটি হয়েছে" retry: "আবার চেষ্টা করুন" pageLoadError: "পেজ লোড করা যায়নি" pageLoadErrorDescription: "এটি সাধারনত নেটওয়ার্কের সমস্যার বা ব্রাউজার ক্যাশের কারণে - ঘটে থাকে। ব্রাউজার এর ক্যাশ পরিষ্কার করুন এবং একটু পর আবার চেষ্টা করুন। " + ঘটে থাকে। ব্রাউজার এর ক্যাশ পরিষ্কার করুন এবং একটু পর আবার চেষ্টা করুন।" serverIsDead: "এই সার্ভার বর্তমানে সাড়া দিচ্ছে না। একটু পরে আবার চেষ্টা করুন।" youShouldUpgradeClient: "এই পেজ দেখার জন্য আপনার ব্রাউজার রিফ্রেশ করে ক্লায়েন্ট আপডেট করুন। " @@ -102,13 +102,13 @@ unfollow: "অনুসরণ বাতিল" followRequestPending: "অনুসরণ করার অনুরোধ বিচারাধীন" enterEmoji: "ইমোজি প্রবেশ করান" renote: "রিনোট" -unrenote: "রিনোট সরান " -renoted: "রিনোট করা হয়েছে" -cantRenote: "এই নোটটি রিনোট করা যাবে না।" -cantReRenote: "রিনোটকে রিনোট করা যাবে না।" -quote: "উদ্ধৃতি" -pinnedNote: "পিন করা নোট" -pinned: "পিন করা" +unrenote: "বুস্ট ফিরিয়ে নিন" +renoted: "বুস্ট করা হয়েছে।" +cantRenote: "এই পোস্টটি বুস্ট করা যাবে না।" +cantReRenote: "বুস্টকে বুস্ট করা যাবে না।" +quote: "উক্তি" +pinnedNote: "পিন করা পোস্ট" +pinned: "প্রোফাইলে পিন করুন" you: "আপনি" clickToShow: "দেখার জন্য ক্লিক করুন" sensitive: "সংবেদনশীল বিষয়বস্তু" @@ -1761,3 +1761,14 @@ _deck: list: "লিস্ট" mentions: "উল্লেখসমূহ" direct: "ডাইরেক্ট নোটগুলি" +removeReaction: আপনার প্রতিক্রিয়া সরান +addInstance: একটি সার্ভার যোগ করুন +deleted: মুছে ফেলা হয়েছে +editNote: পোস্ট এডিট করুন +edited: '{date} {time} এ সম্পাদিত' +searchPlaceholder: ফায়ারফিশে খুঁজুন +noThankYou: না, ধন্যবাদ +cw: সতর্কবার্তা +replies: উত্তর +quotes: উক্তি গুলো +reactions: প্রতিক্রিয়াগুলি diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml index 6f850e14b5..f38779bda4 100644 --- a/locales/ca-ES.yml +++ b/locales/ca-ES.yml @@ -2031,6 +2031,7 @@ _wordMute: de temps. muteLangs: Llenguatges silenciats muteLangsDescription: Separar amb espais o línies no es per una condició OR. + mutePatterns: Patrons per silenciar _auth: shareAccessAsk: Estàs segur que vols autoritzar aquesta aplicació per accedir al teu compte? @@ -2066,7 +2067,6 @@ _relayStatus: deleted: Eliminat editNote: Edita la publicació edited: 'Editat el {date} {time}' -findOtherInstance: Cercar un altre servidor signupsDisabled: Actualment, les inscripcions en aquest servidor estan desactivades, però sempre podeu registrar-vos en un altre servidor. Si teniu un codi d'invitació per a aquest servidor, introduïu-lo a continuació. @@ -2244,3 +2244,16 @@ noSentFollowRequests: No tens cap sol·licitud de seguiment enviada sentFollowRequests: Enviar sol·licituds de seguiment replyMute: Silencia les respostes a les línies de temps replyUnmute: Treu el silencia de les respostes a les línies de temps +searchWordsDescription: "Per cercar publicacions, escriu el terme a buscar. Separa + les paraules amb espais per fer condicions AND o escriules dins de cometes per fer + una cerca OR.\nPer exemple, 'dia nit' trobarà publicacions que continguin tan 'dia' + com 'nit', i 'dia OR nit' trobaran publicacions que continguin tan 'dia' com 'nit' + o ambdues.\nPots combinar condicions AND/OR per exemple '(dia OR nit) endormiscar'.\n + \nSi vols anar a una pàgina d'usuari o publicació en concret, escriu la adreça URL + o la ID en aquest camp i fes clic al botó 'Trobar'. Fent clic a 'Cercar' trobarà + publicacions que, literalment , continguin la ID/adreça URL." +searchPostsWithFiles: Només publicacions amb fitxers +searchCwAndAlt: Inclou avisos de contingut i arxius amb descripcions. +searchUsers: Publicat per (opcional) +searchRange: Publicat dintre de (opcional) +publishTimelines: Publica línies de temps per visitants diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 42228695a4..44e8fb1d7c 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -2024,7 +2024,6 @@ moveAccountDescription: 'Dieser Vorgang kann nicht rückgängig gemacht werden! sie vor dem Umzug dieses Nutzerkontos sicher, dass Sie einen Namen für Ihr neues Nutzerkonto eingerichtet haben. Bitte geben sie die Bezeichnung des neuen Nutzerkontos wie folgt ein: @name@server.xyz' -findOtherInstance: Einen anderen Server finden sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden Benachrichtigungen oder Nachrichten gelesen wurden signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen diff --git a/locales/en-US.yml b/locales/en-US.yml index a2298d9081..c7512bb941 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -59,6 +59,7 @@ copyUsername: "Copy username" searchUser: "Search for a user" reply: "Reply" replies: "Replies" +toReply: "Reply" jumpToPrevious: "Jump to previous" loadMore: "Load more" showMore: "Show more" @@ -89,6 +90,7 @@ listsDesc: "Lists let you create timelines with specified users. They can be acc noLists: "You don't have any lists" note: "Post" notes: "Posts" +toPost: "Post" following: "Following" followers: "Followers" followsYou: "Follows you" @@ -121,6 +123,7 @@ cantRenote: "This post can't be boosted." cantReRenote: "A boost can't be boosted." quote: "Quote" quotes: "Quotes" +toQuote: "Quote" pinnedNote: "Pinned post" pinned: "Pin to profile" you: "You" @@ -671,6 +674,7 @@ pluginTokenRequestedDescription: "This plugin will be able to use the permission set here." notificationType: "Notification type" edit: "Edit" +toEdit: "Edit" emailServer: "Email server" enableEmail: "Enable email distribution" emailConfigInfo: "Used to confirm your email during sign-up or if you forget your @@ -1104,10 +1108,8 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea advanced syntax, such as conditional branching, cannot be used here." enableCustomKaTeXMacro: "Enable custom KaTeX macros" noteId: "Post ID" -signupsDisabled: "Signups on this server are currently disabled, but you can always - sign up at another server! If you have an invitation code for this server, please - enter it below." -findOtherInstance: "Find another server" +signupsDisabled: "Signups on this server are currently disabled. If you have an invitation + code for this server, please enter it below." apps: "Apps" sendModMail: "Send Moderation Notice" preventAiLearning: "Prevent AI bot scraping" @@ -1214,6 +1216,8 @@ searchCwAndAlt: "Include content warnings and file descriptions" publishTimelines: "Publish timelines for visitors" publishTimelinesDescription: "If enabled, the Local and Global timeline will be shown on {url} even when signed out." +noAltTextWarning: "Some attached file(s) have no description. Did you forget to write?" +showNoAltTextWarning: "Show a warning if you attempt to post files without a description" _emojiModPerm: unauthorized: "None" @@ -2216,3 +2220,4 @@ _iconSets: moreUrls: "Pinned pages" moreUrlsDescription: "Enter the pages you want to pin to the help menu in the lower left corner using this notation:\n\"Display name\": https://example.com/" +messagingUnencryptedInfo: "Chats on Firefish are not end-to-end encrypted. Don't share any sensitive infomation over Firefish." diff --git a/locales/es-ES.yml b/locales/es-ES.yml index b0b1fc28e1..b0a7059f9d 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -1985,7 +1985,6 @@ deleted: Eliminado edited: 'Editado a las {date} {time}' editNote: Editar publicación silenceThisInstance: Silenciar este servidor -findOtherInstance: Buscar otro servidor userSaysSomethingReasonRenote: '{name} impulsó una publicación que contiene {reason]' enableRecommendedTimeline: Habilitar línea de tiempo "Recomendado" searchPlaceholder: Buscar en Firefish diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 05c70afaf4..429ce14835 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -2090,7 +2090,6 @@ _experiments: de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela peut entraîner des ralentissements lors du chargement si votre file d'attente est congestionnée. -findOtherInstance: Trouver un autre serveur userSaysSomethingReasonQuote: '{name} a cité une publication contenant {reason}' signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais vous pouvez toujours vous inscrire sur un autre serveur ! Si vous avez un code d'invitation diff --git a/locales/id-ID.yml b/locales/id-ID.yml index 3b411ae60c..6b8e2b9407 100644 --- a/locales/id-ID.yml +++ b/locales/id-ID.yml @@ -2007,7 +2007,6 @@ enterSendsMessage: Tekan Enter pada Pesan untuk mengirim pesan (matikan dengan C + Enter) showAdminUpdates: Indikasi versi Firefish baru tersedia (hanya admin) noteId: ID Postingan -findOtherInstance: Cari server lain caption: Deskripsi itomatis splash: Layar Percik migration: Migrasi diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 6a8239d007..f12b2ade4a 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -1839,7 +1839,6 @@ customKaTeXMacro: Macro KaTeX personalizzate signupsDisabled: Le iscrizioni su questo server al momento non sono possibili, ma puoi sempre iscriverti su un altro server! Se invece hai un codice di invito per questo server, inseriscilo qua sotto. -findOtherInstance: Scegli un altro server apps: App expandOnNoteClick: Apri i post con un click userSaysSomethingReasonReply: '{name} ha risposto a un post che contiene {reason}' diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 5a99b7d935..6630bdf79b 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -53,6 +53,7 @@ copyUsername: "ユーザー名をコピー" searchUser: "ユーザーを検索" reply: "返信" replies: "返信" +toReply: "返信" loadMore: "もっと読み込む" showMore: "もっと見る" showLess: "閉じる" @@ -75,6 +76,7 @@ lists: "リスト" noLists: "リストはありません" note: "投稿" notes: "投稿" +toPost: "投稿する" following: "フォロー" followers: "フォロワー" followsYou: "フォローされています" @@ -105,6 +107,7 @@ cantRenote: "この投稿はブーストできません。" cantReRenote: "ブーストをブーストすることはできません。" quote: "引用" quotes: "引用" +toQuote: "引用" pinnedNote: "ピン留めされた投稿" pinned: "ピン留め" you: "あなた" @@ -606,6 +609,7 @@ tokenRequested: "アカウントへのアクセス許可" pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。" notificationType: "通知の種類" edit: "編集" +toEdit: "編集する" emailServer: "メールサーバー" enableEmail: "メール配信機能を有効化する" emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います" @@ -1018,6 +1022,8 @@ searchPostsWithFiles: "添付ファイルのある投稿のみ" searchCwAndAlt: "閲覧注意の注釈と添付ファイルの代替テキストも検索する" publishTimelines: "非ログインユーザーにもタイムラインを公開する" publishTimelinesDescription: "有効にすると、{url} でローカルタイムラインとグローバルタイムラインが公開されます。" +noAltTextWarning: "説明が書かれていない添付ファイルがあります。書き忘れてはいませんか?" +showNoAltTextWarning: "説明が書かれていない添付ファイルを投稿しようとした場合に警告する" _sensitiveMediaDetection: description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てられます。サーバーの負荷が少し増えます。" @@ -1941,9 +1947,7 @@ sendModMail: モデレーション通知を送る deleted: 削除済み editNote: 投稿を編集 edited: '編集済み: {date} {time}' -signupsDisabled: - 現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。招待コードをお持ちでない場合にも、新規登録を開放している他のサーバーには入れますよ! -findOtherInstance: 他のサーバーを探す +signupsDisabled: 現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。 newer: 新しい投稿 older: 古い投稿 accessibility: アクセシビリティ diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index ace8aa5f42..75f347a96a 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -1824,7 +1824,6 @@ pushNotificationNotSupported: 브라우저 및 서버가 푸시 알림을 지원 enableRecommendedTimeline: 추천 타임라인을 활성화 pushNotificationAlreadySubscribed: 푸시 알림이 활성화되었습니다 caption: 자동으로 설명 붙이기 -findOtherInstance: 다른 서버 둘러보기 enableIdenticonGeneration: 유저 별 Identicon의 생성을 활성화 secureModeInfo: 인증 정보가 없는 리모트 서버로부터의 요청에 응답하지 않습니다. allowedInstances: 허가된 서버 diff --git a/locales/no-NO.yml b/locales/no-NO.yml index d8b80e0e2c..bd643c34e1 100644 --- a/locales/no-NO.yml +++ b/locales/no-NO.yml @@ -1196,7 +1196,6 @@ customKaTeXMacroDescription: 'Sett opp makroer for å skrive matematiske uttrykk signupsDisabled: Registreringer av nye konti på denne tjeneren er slått av, men du kan alltids registrere deg på en annen tjener! Hvis du har en invitasjonskode for denne tjeneren, skriv den inn under. -findOtherInstance: Finn en annen tjener preventAiLearningDescription: Ber tredjeparts AI-språkmodeller om å ikke bruke innhold du laster opp, sliks om poster og bilder. enableCustomKaTeXMacro: Slå på egne KaTeX-makroer diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index 73b3939abb..95a05009bd 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -1992,7 +1992,6 @@ deleted: Usunięte editNote: Edytuj wpis edited: 'Edytowano o {date} {time}' silenced: Wyciszony -findOtherInstance: Znajdź inny serwer userSaysSomethingReasonReply: '{name} odpowiedział na wpis zawierający {reason}' userSaysSomethingReasonRenote: '{name} podbił post zawierający {reason}' signupsDisabled: Rejestracja na tym serwerze jest obecnie zamknięta, ale zawsze możesz diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 64742e5479..df9d183433 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -2086,7 +2086,6 @@ enableServerMachineStats: Включить статистику серверно enableIdenticonGeneration: Включить генерацию Identicon reactionPickerSkinTone: Предпочитаемый цвет кожи эмодзи sendModMail: Отправить сообщение о модерации -findOtherInstance: Найти другой сервер signupsDisabled: Регистрация на этом сервере сейчас отключена, но вы всегда можете зарегистрироваться на другом сервере! Если у вас есть код приглашения на этот сервер, пожалуйста, введите его ниже. diff --git a/locales/th-TH.yml b/locales/th-TH.yml index 1302f86726..6ae3201f01 100644 --- a/locales/th-TH.yml +++ b/locales/th-TH.yml @@ -1288,7 +1288,6 @@ customMOTD: ข้อความหน้าจอเริ่มต้นท swipeOnMobile: อนุญาตให้ปัดระหว่างหน้า breakFollowConfirm: คุณแน่ใจหรือไม่ที่จะลบผู้ติดตาม? defaultReaction: ค่าเริ่มต้นของปฏิกิริยาอีโมจิสำหรับโพสต์ขาออกและขาเข้า -findOtherInstance: ค้นหาเซิร์ฟเวอร์อื่น silenceThisInstance: ปิดเงียบสำหรับเซิร์ฟเวอร์นี้ antennaInstancesDescription: เขียนชื่อเซิร์ฟเวอร์ได้ 1 ชื่อต่อ 1 บรรทัด splash: หน้าจอเริ่มต้น diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml index 16206614b3..7a687dc7c4 100644 --- a/locales/tr-TR.yml +++ b/locales/tr-TR.yml @@ -1284,7 +1284,6 @@ _emailUnavailable: used: Bu mail zaten kullanılıyor format: Bu mail adresi yanlış apps: Uygulamalar -findOtherInstance: Başka bir sunucu bul showWithSparkles: Parıltılarla göster showPopup: Kullanıcıları pop-up ile bilgilendirin silencedWarning: Bu sayfa, bu kullanıcılar yöneticinizin susturduğu sunuculardan olduğu diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index f0b7296b78..5e73078a98 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -1977,7 +1977,6 @@ license: Ліцензія signupsDisabled: Реєстрація на цьому сервері наразі відключена, але ви завжди можете зареєструватися на іншому сервері! Якщо у вас є код запрошення на цей сервер, будь ласка, введіть його нижче. -findOtherInstance: Знайти інший сервер customKaTeXMacro: Користувацькі макроси KaTeX enableCustomKaTeXMacro: Увімкнути користувацькі макроси KaTeX apps: Додатки diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml index 119c745ac3..527258bdad 100644 --- a/locales/vi-VN.yml +++ b/locales/vi-VN.yml @@ -1908,7 +1908,6 @@ renoteMute: Ẩn lượt chia sẻ renoteUnmute: Bỏ ẩn lượt chia sẻ searchPlaceholder: Lướt Firefish edited: Đã sửa {date} {time} -findOtherInstance: Tìm máy chủ khác noThankYou: Từ chối _filters: withFile: Có file diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 125d75acd3..7c33eb815f 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -50,6 +50,7 @@ copyUsername: "复制用户名" searchUser: "搜索用户" reply: "回复" replies: "回复" +toReply: "回复" loadMore: "加载更多" showMore: "查看更多" showLess: "关闭" @@ -70,8 +71,9 @@ exportRequested: "导出请求已提交,这可能需要花一些时间,导 importRequested: "导入请求已提交,这可能需要花一点时间。" lists: "列表" noLists: "列表为空" -note: "发帖" +note: "帖子" notes: "帖子" +toPost: "发帖" following: "关注中" followers: "关注者" followsYou: "关注了您" @@ -103,6 +105,7 @@ cantRenote: "此帖子无法被转发。" cantReRenote: "转发无法被再次转发。" quote: "引用" quotes: "引用" +toQuote: "引用" pinnedNote: "已置顶的帖子" pinned: "置顶" you: "您" @@ -589,6 +592,7 @@ tokenRequested: "允许访问账号" pluginTokenRequestedDescription: "此插件将能够拥有这里设置的权限。" notificationType: "通知类型" edit: "编辑" +toEdit: "编辑" emailServer: "邮件服务器" enableEmail: "启用发送邮件功能" emailConfigInfo: "用于确认电子邮件和密码重置" @@ -1912,10 +1916,9 @@ _skinTones: mediumDark: 中等偏深 isModerator: 监察员 isAdmin: 管理员 -findOtherInstance: 寻找其它服务器 moveFromDescription: 这将为您的旧账号设置一个别名,以便您可以从该旧账号迁移到当前账号。在从旧账号迁移之前执行此操作。请输入格式如 @person@server.com 的账号标签 -signupsDisabled: 该服务器目前关闭注册,但您随时可以在另一台服务器上注册!如果您有该服务器的邀请码,请在下面输入。 +signupsDisabled: 该服务器目前关闭注册。如果您有该服务器的邀请码,请在下面输入。 silencedWarning: 显示这个页面是因为这些用户来自您的管理员设置的禁言服务器,所以他们有可能是垃圾信息。 isBot: 这个账号是一个自动化账号 moveAccountDescription: 这个过程是不可逆的。在迁移之前,请确保您已在新账号上为当前账号设置了别名。请输入格式如 @person@server.com @@ -2030,7 +2033,7 @@ emojiModPermDescription: "添加:允许该用户添加新的自定义表情符 权限的基础上,允许该用户编辑现有自定义表情符号的名称/类别/标签/授权。\n全部允许:在 “添加和编辑” 权限的基础上,允许该用户删除现有的自定义表情符号。" replyMute: 静音回复 replyUnmute: 取消静音回复 -searchWords: 要搜索的词 / ID 或者要查找的 URL +searchWords: 要搜索的关键词 / 要查询的用户 ID 或 URL searchRange: 发表于(可选) searchUsers: 发布者(可选) searchUsersDescription: "要搜索特定用户/服务器的帖子,请输入 ID(@user@example.com,或 @user 对于本地用户)或域名(example.com)。\n @@ -2039,10 +2042,11 @@ searchPostsWithFiles: 只带有文件的帖子 searchCwAndAlt: 包括内容警告和文件描述 publishTimelines: 为访客发布时间线 publishTimelinesDescription: 如果启用,在用户登出时本地和全局时间线也会显示在 {url} 上。 -searchWordsDescription: "要搜索帖子,请输入搜索词。交集搜索用空格分隔单词,并集搜索单词之间用 OR 分隔。\n例如 '早上 晚上' 将查找包含 - '早上' 和 '晚上' 的帖子,而 '早上 OR 晚上' 将查找包含 '早上' 或 '晚上' (以及同时包含两者)的帖子。\n您还可以组合交集/并集条件,例如 - '(早上 OR 晚上) 困了' 。\n\n如果您想转到特定的用户页面或帖子页面,请在此字段中输入 ID 或 URL,然后单击 “查找” 按钮。 单击 “搜索” - 将搜索字面包含 ID/URL 的帖子。" +searchWordsDescription: "要搜索帖子,请输入关键词。交集搜索关键词之间使用空格进行区分,并集搜索关键词之间使用 OR 进行区分。\n例如 '早上 + 晚上' 将查找包含 '早上' 和 '晚上' 的帖子,而 '早上 OR 晚上' 将查找包含 '早上' 或 '晚上' (以及同时包含两者)的帖子。\n您还可以组合交集/并集条件,例如 + '(早上 OR 晚上) 困了' 。\n\n如果您想转到特定的用户页面或帖子页面,请在此字段中输入用户 ID 或 URL,然后单击 “查询” 按钮。 单击 “搜索” + 将搜索字面包含用户 ID/URL 的帖子。" searchRangeDescription: "如果您要过滤时间段,请按以下格式输入:20220615-20231031\n\n如果您省略年份(例如 0105-0106 或 20231105-0110),它将被解释为当前年份。\n\n您还可以省略开始日期或结束日期。 例如 -0102 将过滤搜索结果以仅显示今年 1 月 2 日之前发布的帖子,而 20231026- 将过滤结果以仅显示 2023 年 10 月 26 日之后发布的帖子。" +messagingUnencryptedInfo: "Firefish 上的聊天没有经过端到端加密,请不要在聊天中分享您的敏感信息。" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 44e7c93b24..78814ec896 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -50,6 +50,7 @@ copyUsername: "複製使用者名稱" searchUser: "搜尋使用者" reply: "回覆" replies: "回覆" +toReply: "回覆" loadMore: "載入更多" showMore: "載入更多" showLess: "關閉" @@ -72,6 +73,7 @@ lists: "清單" noLists: "你沒有任何清單" note: "貼文" notes: "貼文" +toPost: "發貼文" following: "追隨中" followers: "追隨者" followsYou: "追隨你的人" @@ -103,6 +105,7 @@ cantRenote: "無法轉發此貼文。" cantReRenote: "無法轉發之前已經轉發過的內容。" quote: "引用" quotes: "引用" +toQuote: "引用" pinnedNote: "已置頂的貼文" pinned: "置頂" you: "您" @@ -585,6 +588,7 @@ tokenRequested: "允許存取帳戶" pluginTokenRequestedDescription: "此外掛將擁有在此設定的權限。" notificationType: "通知形式" edit: "編輯" +toEdit: "編輯" emailServer: "電郵伺服器" enableEmail: "啟用發送電郵功能" emailConfigInfo: "用於確認電郵地址及密碼重置" @@ -1870,7 +1874,6 @@ _experiments: enablePostImports: 啟用匯入貼文的功能 postImportsCaption: 允許使用者從舊有的Firefish・Misskey・Mastodon・Akkoma・Pleroma帳號匯入貼文。在伺服器佇列堵塞時匯入貼文可能會導致載入速度變慢。 -findOtherInstance: 找找另一個伺服器 noGraze: 瀏覽器擴充元件 "Graze for Mastodon" 會與Firefish發生衝突,請停用該擴充元件。 userSaysSomethingReasonRenote: '{name} 轉發了包含 {reason} 的貼文' pushNotificationNotSupported: 你的瀏覽器或伺服器不支援推送通知 @@ -1928,7 +1931,7 @@ isModerator: 板主 isAdmin: 管理員 isPatron: Firefish 項目贊助者 silencedWarning: 顯示此頁面是因為這些使用者來自您伺服器管理員已靜音的伺服器,因此他們可能是垃圾訊息。 -signupsDisabled: 此伺服器目前停止註冊,但您隨時可以在另一台伺服器上註冊!如果您有此伺服器的邀請碼,請在下面輸入。 +signupsDisabled: 此伺服器目前停止註冊。如果您有此伺服器的邀請碼,請在下面輸入。 showPopup: 通過彈出式視窗通知使用者 showWithSparkles: 讓標題閃閃發光 youHaveUnreadAnnouncements: 您有未讀的公告 diff --git a/packages/backend-rs/Cargo.lock b/packages/backend-rs/Cargo.lock index e318891dcd..3b2eef0389 100644 --- a/packages/backend-rs/Cargo.lock +++ b/packages/backend-rs/Cargo.lock @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", @@ -182,9 +182,9 @@ dependencies = [ [[package]] name = "atomic-write-file" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +checksum = "a8204db279bf648d64fe845bd8840f78b39c8132ed4d6a4194c3b10d4b4cfb0b" dependencies = [ "nix", "rand", @@ -388,9 +388,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" +checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723" [[package]] name = "cfg-if" @@ -406,9 +406,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", @@ -421,9 +421,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", "clap_derive", @@ -431,9 +431,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -900,7 +900,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.10", + "ahash 0.8.11", "allocator-api2", ] @@ -963,9 +963,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -1105,9 +1105,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1118,7 +1118,7 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a071f4f7efc9a9118dfb627a0a94ef247986e1ab8606a4c806ae2b3aa3b6978" dependencies = [ - "ahash 0.8.10", + "ahash 0.8.11", "anyhow", "base64", "bytecount", @@ -1168,12 +1168,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] [[package]] @@ -1254,9 +1254,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -1323,12 +1323,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.4.2", "cfg-if", + "cfg_aliases", "libc", ] @@ -1766,9 +1767,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -2299,7 +2300,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.8.10", + "ahash 0.8.11", "atoi", "bigdecimal", "byteorder", @@ -2923,10 +2924,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.91" +name = "wasite" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2934,9 +2941,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", @@ -2949,9 +2956,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2961,9 +2968,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2971,9 +2978,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", @@ -2984,15 +2991,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -3006,9 +3013,13 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "whoami" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e" +dependencies = [ + "redox_syscall", + "wasite", +] [[package]] name = "windows-core" diff --git a/packages/backend-rs/Cargo.toml b/packages/backend-rs/Cargo.toml index 1c80914c54..3ab3a4b742 100644 --- a/packages/backend-rs/Cargo.toml +++ b/packages/backend-rs/Cargo.toml @@ -28,8 +28,8 @@ thiserror = "1.0.52" tokio = { version = "1.35.1", features = ["full"] } # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix -napi = { version = "2.14.1", default-features = false, features = ["napi6", "tokio_rt"], optional = true } -napi-derive = { version = "2.14.5", optional = true } +napi = { version = "2.16.0", default-features = false, features = ["napi9", "tokio_rt"], optional = true } +napi-derive = { version = "2.16.0", optional = true } basen = "0.1.0" [dev-dependencies] diff --git a/packages/backend/.swcrc b/packages/backend/.swcrc index e87bd7cf47..08aca7562a 100644 --- a/packages/backend/.swcrc +++ b/packages/backend/.swcrc @@ -14,11 +14,9 @@ "keepImportAssertions": true, "emitAssertForImportAttributes": true }, - "baseUrl": ".", + "baseUrl": "src", "paths": { - "@/*": [ - "./src/*" - ] + "@/*": ["*"] }, "target": "es2022" }, diff --git a/packages/backend/package.json b/packages/backend/package.json index 1aeeec802c..e9e7422727 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -31,14 +31,14 @@ "@koa/router": "12.0.1", "@ladjs/koa-views": "9.0.0", "@peertube/http-signature": "1.7.0", - "@redocly/openapi-core": "1.10.1", + "@redocly/openapi-core": "1.10.3", "@sinonjs/fake-timers": "11.2.2", "@twemoji/parser": "^15.0.0", "adm-zip": "^0.5.10", "ajv": "8.12.0", "archiver": "7.0.0", "argon2": "^0.40.1", - "aws-sdk": "2.1569.0", + "aws-sdk": "2.1571.0", "axios": "^1.6.7", "backend-rs": "workspace:*", "bcryptjs": "2.4.3", @@ -103,8 +103,8 @@ "qs": "6.11.2", "random-seed": "0.3.0", "ratelimiter": "3.4.1", - "re2": "1.20.9", - "redis-semaphore": "5.5.0", + "re2": "1.20.10", + "redis-semaphore": "5.5.1", "reflect-metadata": "0.2.1", "rename": "1.0.4", "rndstr": "1.0.0", @@ -129,7 +129,7 @@ }, "devDependencies": { "@swc/cli": "0.3.10", - "@swc/core": "1.4.2", + "@swc/core": "1.4.4", "@types/adm-zip": "^0.5.5", "@types/bcryptjs": "2.4.6", "@types/color-convert": "^2.0.3", diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts index 9418f59e4c..5a1e0da454 100644 --- a/packages/backend/src/boot/master.ts +++ b/packages/backend/src/boot/master.ts @@ -149,7 +149,7 @@ function showNodejsVersion(): void { nodejsLogger.info(`Version ${process.version} detected.`); - const minVersion = "v18.16.0"; + const minVersion = "v18.17.0"; if (semver.lt(process.version, minVersion)) { nodejsLogger.error(`At least Node.js ${minVersion} required!`); process.exit(1); diff --git a/packages/backend/src/models/repositories/user.ts b/packages/backend/src/models/repositories/user.ts index 59bba8b44d..d880ac9741 100644 --- a/packages/backend/src/models/repositories/user.ts +++ b/packages/backend/src/models/repositories/user.ts @@ -494,9 +494,7 @@ export const UserRepository = db.getRepository(User).extend({ url: profile!.url, uri: user.uri, movedToUri: user.movedToUri - ? await this.userFromURI(user.movedToUri).catch( - () => user.movedToUri, - ) + ? await this.userFromURI(user.movedToUri).catch(() => null) : null, alsoKnownAs: user.alsoKnownAs, createdAt: user.createdAt.toISOString(), diff --git a/packages/backend/src/remote/activitypub/renderer/index.ts b/packages/backend/src/remote/activitypub/renderer/index.ts index 734d1198c9..2b6229b3e4 100644 --- a/packages/backend/src/remote/activitypub/renderer/index.ts +++ b/packages/backend/src/remote/activitypub/renderer/index.ts @@ -36,7 +36,7 @@ export const renderActivity = (x: any): IActivity | null => { PropertyValue: "schema:PropertyValue", value: "schema:value", // Firefish - firefish: "https://joinfirefish.org/ns#", + firefish: "https://firefish.dev/ns#", speakAsCat: "firefish:speakAsCat", // Misskey misskey: "https://misskey-hub.net/ns#", diff --git a/packages/backend/src/server/nodeinfo.ts b/packages/backend/src/server/nodeinfo.ts index a05992da59..1cb8eb1eaf 100644 --- a/packages/backend/src/server/nodeinfo.ts +++ b/packages/backend/src/server/nodeinfo.ts @@ -53,7 +53,7 @@ const nodeinfo2 = async () => { name: "firefish", version: config.version, repository: meta.repositoryUrl, - homepage: "https://joinfirefish.org/", + homepage: "https://firefish.dev/firefish/firefish", }, protocols: ["activitypub"], services: { diff --git a/packages/backend/test/mfm.ts b/packages/backend/test/mfm.ts index 81ed95848a..97e8e15e91 100644 --- a/packages/backend/test/mfm.ts +++ b/packages/backend/test/mfm.ts @@ -55,33 +55,33 @@ describe("fromHtml", () => { it("link with different text", () => { assert.deepStrictEqual( - fromHtml('

a c d

'), - "a [c](https://joinfirefish.org/b) d", + fromHtml('

a c d

'), + "a [c](https://firefish.dev/firefish) d", ); }); it("link with different text, but not encoded", () => { assert.deepStrictEqual( - fromHtml('

a c d

'), - "a [c]() d", + fromHtml('

a c d

'), + "a [c]() d", ); }); it("link with same text", () => { assert.deepStrictEqual( fromHtml( - '

a https://joinfirefish.org/b d

', + '

a https://firefish.dev/firefish/firefish d

', ), - "a https://joinfirefish.org/b d", + "a https://firefish.dev/firefish/firefish d", ); }); it("link with same text, but not encoded", () => { assert.deepStrictEqual( fromHtml( - '

a https://joinfirefish.org/ä d

', + '

a https://firefish.dev/ä d

', ), - "a d", + "a d", ); }); @@ -98,8 +98,8 @@ describe("fromHtml", () => { it("link without text", () => { assert.deepStrictEqual( - fromHtml('

a d

'), - "a https://joinfirefish.org/b d", + fromHtml('

a d

'), + "a https://firefish.dev/b d", ); }); @@ -110,15 +110,15 @@ describe("fromHtml", () => { it("mention", () => { assert.deepStrictEqual( fromHtml( - '

a @user d

', + '

a @firefish d

', ), - "a @user@joinfirefish.org d", + "a @firefish@info.firefish.dev d", ); }); it("hashtag", () => { assert.deepStrictEqual( - fromHtml('

a #a d

', [ + fromHtml('

a #a d

', [ "#a", ]), "a #a d", diff --git a/packages/client/package.json b/packages/client/package.json index 7289c4f787..f1b76ad13a 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -84,7 +84,7 @@ "typescript": "5.3.3", "unicode-emoji-json": "^0.4.0", "uuid": "9.0.1", - "vite": "5.1.4", + "vite": "5.1.5", "vite-plugin-compression": "^0.5.1", "vue": "3.4.21", "vue-draggable-plus": "^0.3.5", diff --git a/packages/client/src/components/MkDialog.vue b/packages/client/src/components/MkDialog.vue index 3c9e0e3a8c..2dca900235 100644 --- a/packages/client/src/components/MkDialog.vue +++ b/packages/client/src/components/MkDialog.vue @@ -144,16 +144,17 @@ :disabled="okButtonDisabled" @click="ok" >{{ - showCancelButton || input || select + okText ?? + (showCancelButton || input || select ? i18n.ts.ok - : i18n.ts.gotIt + : i18n.ts.gotIt) }} {{ i18n.ts.cancel }}{{ cancelText ?? i18n.ts.cancel }}
@@ -194,13 +195,11 @@