diff --git a/locales/generateDTS.js b/locales/generateDTS.js
new file mode 100644
index 0000000000..5949aee7cd
--- /dev/null
+++ b/locales/generateDTS.js
@@ -0,0 +1,72 @@
+const fs = require('fs');
+const yaml = require('js-yaml');
+const ts = require('typescript');
+
+function createMembers(record) {
+ return Object.entries(record)
+ .map(([k, v]) => ts.factory.createPropertySignature(
+ undefined,
+ ts.factory.createStringLiteral(k),
+ undefined,
+ typeof v === 'string'
+ ? ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword)
+ : ts.factory.createTypeLiteralNode(createMembers(v)),
+ ));
+}
+
+module.exports = function generateDTS() {
+ const locale = yaml.load(fs.readFileSync(`${__dirname}/ja-JP.yml`, 'utf-8'));
+ const members = createMembers(locale);
+ const elements = [
+ ts.factory.createInterfaceDeclaration(
+ [ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
+ ts.factory.createIdentifier('Locale'),
+ undefined,
+ undefined,
+ members,
+ ),
+ ts.factory.createVariableStatement(
+ [ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
+ ts.factory.createVariableDeclarationList(
+ [ts.factory.createVariableDeclaration(
+ ts.factory.createIdentifier('locales'),
+ undefined,
+ ts.factory.createTypeLiteralNode([ts.factory.createIndexSignature(
+ undefined,
+ [ts.factory.createParameterDeclaration(
+ undefined,
+ undefined,
+ ts.factory.createIdentifier('lang'),
+ undefined,
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
+ undefined,
+ )],
+ ts.factory.createTypeReferenceNode(
+ ts.factory.createIdentifier('Locale'),
+ undefined,
+ ),
+ )]),
+ undefined,
+ )],
+ ts.NodeFlags.Const | ts.NodeFlags.Ambient | ts.NodeFlags.ContextFlags,
+ ),
+ ),
+ ts.factory.createExportAssignment(
+ undefined,
+ true,
+ ts.factory.createIdentifier('locales'),
+ ),
+ ];
+ const printed = ts.createPrinter({
+ newLine: ts.NewLineKind.LineFeed,
+ }).printList(
+ ts.ListFormat.MultiLine,
+ ts.factory.createNodeArray(elements),
+ ts.createSourceFile('index.d.ts', '', ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS),
+ );
+
+ fs.writeFileSync(`${__dirname}/index.d.ts`, `/* eslint-disable */
+// This file is generated by locales/generateDTS.js
+// Do not edit this file directly.
+${printed}`, 'utf-8');
+}
diff --git a/locales/index.d.ts b/locales/index.d.ts
index fe3edb445b..6e3edefabb 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -1,3 +1,2144 @@
-declare const locales: { [lang: string]: any };
-
+/* eslint-disable */
+// This file is generated by locales/generateDTS.js
+// Do not edit this file directly.
+export interface Locale {
+ "_lang_": string;
+ "headlineMisskey": string;
+ "introMisskey": string;
+ "poweredByMisskeyDescription": string;
+ "monthAndDay": string;
+ "search": string;
+ "notifications": string;
+ "username": string;
+ "password": string;
+ "forgotPassword": string;
+ "fetchingAsApObject": string;
+ "ok": string;
+ "gotIt": string;
+ "cancel": string;
+ "noThankYou": string;
+ "enterUsername": string;
+ "renotedBy": string;
+ "noNotes": string;
+ "noNotifications": string;
+ "instance": string;
+ "settings": string;
+ "notificationSettings": string;
+ "basicSettings": string;
+ "otherSettings": string;
+ "openInWindow": string;
+ "profile": string;
+ "timeline": string;
+ "noAccountDescription": string;
+ "login": string;
+ "loggingIn": string;
+ "logout": string;
+ "signup": string;
+ "uploading": string;
+ "save": string;
+ "users": string;
+ "addUser": string;
+ "favorite": string;
+ "favorites": string;
+ "unfavorite": string;
+ "favorited": string;
+ "alreadyFavorited": string;
+ "cantFavorite": string;
+ "pin": string;
+ "unpin": string;
+ "copyContent": string;
+ "copyLink": string;
+ "delete": string;
+ "deleteAndEdit": string;
+ "deleteAndEditConfirm": string;
+ "addToList": string;
+ "sendMessage": string;
+ "copyRSS": string;
+ "copyUsername": string;
+ "copyUserId": string;
+ "copyNoteId": string;
+ "searchUser": string;
+ "reply": string;
+ "loadMore": string;
+ "showMore": string;
+ "showLess": string;
+ "youGotNewFollower": string;
+ "receiveFollowRequest": string;
+ "followRequestAccepted": string;
+ "mention": string;
+ "mentions": string;
+ "directNotes": string;
+ "importAndExport": string;
+ "import": string;
+ "export": string;
+ "files": string;
+ "download": string;
+ "driveFileDeleteConfirm": string;
+ "unfollowConfirm": string;
+ "exportRequested": string;
+ "importRequested": string;
+ "lists": string;
+ "noLists": string;
+ "note": string;
+ "notes": string;
+ "following": string;
+ "followers": string;
+ "followsYou": string;
+ "createList": string;
+ "manageLists": string;
+ "error": string;
+ "somethingHappened": string;
+ "retry": string;
+ "pageLoadError": string;
+ "pageLoadErrorDescription": string;
+ "serverIsDead": string;
+ "youShouldUpgradeClient": string;
+ "enterListName": string;
+ "privacy": string;
+ "makeFollowManuallyApprove": string;
+ "defaultNoteVisibility": string;
+ "follow": string;
+ "followRequest": string;
+ "followRequests": string;
+ "unfollow": string;
+ "followRequestPending": string;
+ "enterEmoji": string;
+ "renote": string;
+ "unrenote": string;
+ "renoted": string;
+ "cantRenote": string;
+ "cantReRenote": string;
+ "quote": string;
+ "inChannelRenote": string;
+ "inChannelQuote": string;
+ "pinnedNote": string;
+ "pinned": string;
+ "you": string;
+ "clickToShow": string;
+ "sensitive": string;
+ "add": string;
+ "reaction": string;
+ "reactions": string;
+ "reactionSetting": string;
+ "reactionSettingDescription2": string;
+ "rememberNoteVisibility": string;
+ "attachCancel": string;
+ "markAsSensitive": string;
+ "unmarkAsSensitive": string;
+ "enterFileName": string;
+ "mute": string;
+ "unmute": string;
+ "renoteMute": string;
+ "renoteUnmute": string;
+ "block": string;
+ "unblock": string;
+ "suspend": string;
+ "unsuspend": string;
+ "blockConfirm": string;
+ "unblockConfirm": string;
+ "suspendConfirm": string;
+ "unsuspendConfirm": string;
+ "selectList": string;
+ "selectChannel": string;
+ "selectAntenna": string;
+ "selectWidget": string;
+ "editWidgets": string;
+ "editWidgetsExit": string;
+ "customEmojis": string;
+ "emoji": string;
+ "emojis": string;
+ "emojiName": string;
+ "emojiUrl": string;
+ "addEmoji": string;
+ "settingGuide": string;
+ "cacheRemoteFiles": string;
+ "cacheRemoteFilesDescription": string;
+ "flagAsBot": string;
+ "flagAsBotDescription": string;
+ "flagAsCat": string;
+ "flagAsCatDescription": string;
+ "flagShowTimelineReplies": string;
+ "flagShowTimelineRepliesDescription": string;
+ "autoAcceptFollowed": string;
+ "addAccount": string;
+ "reloadAccountsList": string;
+ "loginFailed": string;
+ "showOnRemote": string;
+ "general": string;
+ "wallpaper": string;
+ "setWallpaper": string;
+ "removeWallpaper": string;
+ "searchWith": string;
+ "youHaveNoLists": string;
+ "followConfirm": string;
+ "proxyAccount": string;
+ "proxyAccountDescription": string;
+ "host": string;
+ "selectUser": string;
+ "recipient": string;
+ "annotation": string;
+ "federation": string;
+ "instances": string;
+ "registeredAt": string;
+ "latestRequestReceivedAt": string;
+ "latestStatus": string;
+ "storageUsage": string;
+ "charts": string;
+ "perHour": string;
+ "perDay": string;
+ "stopActivityDelivery": string;
+ "blockThisInstance": string;
+ "operations": string;
+ "software": string;
+ "version": string;
+ "metadata": string;
+ "withNFiles": string;
+ "monitor": string;
+ "jobQueue": string;
+ "cpuAndMemory": string;
+ "network": string;
+ "disk": string;
+ "instanceInfo": string;
+ "statistics": string;
+ "clearQueue": string;
+ "clearQueueConfirmTitle": string;
+ "clearQueueConfirmText": string;
+ "clearCachedFiles": string;
+ "clearCachedFilesConfirm": string;
+ "blockedInstances": string;
+ "blockedInstancesDescription": string;
+ "muteAndBlock": string;
+ "mutedUsers": string;
+ "blockedUsers": string;
+ "noUsers": string;
+ "editProfile": string;
+ "noteDeleteConfirm": string;
+ "pinLimitExceeded": string;
+ "intro": string;
+ "done": string;
+ "processing": string;
+ "preview": string;
+ "default": string;
+ "defaultValueIs": string;
+ "noCustomEmojis": string;
+ "noJobs": string;
+ "federating": string;
+ "blocked": string;
+ "suspended": string;
+ "all": string;
+ "subscribing": string;
+ "publishing": string;
+ "notResponding": string;
+ "instanceFollowing": string;
+ "instanceFollowers": string;
+ "instanceUsers": string;
+ "changePassword": string;
+ "security": string;
+ "retypedNotMatch": string;
+ "currentPassword": string;
+ "newPassword": string;
+ "newPasswordRetype": string;
+ "attachFile": string;
+ "more": string;
+ "featured": string;
+ "usernameOrUserId": string;
+ "noSuchUser": string;
+ "lookup": string;
+ "announcements": string;
+ "imageUrl": string;
+ "remove": string;
+ "removed": string;
+ "removeAreYouSure": string;
+ "deleteAreYouSure": string;
+ "resetAreYouSure": string;
+ "saved": string;
+ "messaging": string;
+ "upload": string;
+ "keepOriginalUploading": string;
+ "keepOriginalUploadingDescription": string;
+ "fromDrive": string;
+ "fromUrl": string;
+ "uploadFromUrl": string;
+ "uploadFromUrlDescription": string;
+ "uploadFromUrlRequested": string;
+ "uploadFromUrlMayTakeTime": string;
+ "explore": string;
+ "messageRead": string;
+ "noMoreHistory": string;
+ "startMessaging": string;
+ "nUsersRead": string;
+ "agreeTo": string;
+ "agree": string;
+ "agreeBelow": string;
+ "basicNotesBeforeCreateAccount": string;
+ "termsOfService": string;
+ "start": string;
+ "home": string;
+ "remoteUserCaution": string;
+ "activity": string;
+ "images": string;
+ "image": string;
+ "birthday": string;
+ "yearsOld": string;
+ "registeredDate": string;
+ "location": string;
+ "theme": string;
+ "themeForLightMode": string;
+ "themeForDarkMode": string;
+ "light": string;
+ "dark": string;
+ "lightThemes": string;
+ "darkThemes": string;
+ "syncDeviceDarkMode": string;
+ "drive": string;
+ "fileName": string;
+ "selectFile": string;
+ "selectFiles": string;
+ "selectFolder": string;
+ "selectFolders": string;
+ "renameFile": string;
+ "folderName": string;
+ "createFolder": string;
+ "renameFolder": string;
+ "deleteFolder": string;
+ "addFile": string;
+ "emptyDrive": string;
+ "emptyFolder": string;
+ "unableToDelete": string;
+ "inputNewFileName": string;
+ "inputNewDescription": string;
+ "inputNewFolderName": string;
+ "circularReferenceFolder": string;
+ "hasChildFilesOrFolders": string;
+ "copyUrl": string;
+ "rename": string;
+ "avatar": string;
+ "banner": string;
+ "nsfw": string;
+ "whenServerDisconnected": string;
+ "disconnectedFromServer": string;
+ "reload": string;
+ "doNothing": string;
+ "reloadConfirm": string;
+ "watch": string;
+ "unwatch": string;
+ "accept": string;
+ "reject": string;
+ "normal": string;
+ "instanceName": string;
+ "instanceDescription": string;
+ "maintainerName": string;
+ "maintainerEmail": string;
+ "tosUrl": string;
+ "thisYear": string;
+ "thisMonth": string;
+ "today": string;
+ "dayX": string;
+ "monthX": string;
+ "yearX": string;
+ "pages": string;
+ "integration": string;
+ "connectService": string;
+ "disconnectService": string;
+ "enableLocalTimeline": string;
+ "enableGlobalTimeline": string;
+ "disablingTimelinesInfo": string;
+ "registration": string;
+ "enableRegistration": string;
+ "invite": string;
+ "driveCapacityPerLocalAccount": string;
+ "driveCapacityPerRemoteAccount": string;
+ "inMb": string;
+ "iconUrl": string;
+ "bannerUrl": string;
+ "backgroundImageUrl": string;
+ "basicInfo": string;
+ "pinnedUsers": string;
+ "pinnedUsersDescription": string;
+ "pinnedPages": string;
+ "pinnedPagesDescription": string;
+ "pinnedClipId": string;
+ "pinnedNotes": string;
+ "hcaptcha": string;
+ "enableHcaptcha": string;
+ "hcaptchaSiteKey": string;
+ "hcaptchaSecretKey": string;
+ "recaptcha": string;
+ "enableRecaptcha": string;
+ "recaptchaSiteKey": string;
+ "recaptchaSecretKey": string;
+ "turnstile": string;
+ "enableTurnstile": string;
+ "turnstileSiteKey": string;
+ "turnstileSecretKey": string;
+ "avoidMultiCaptchaConfirm": string;
+ "antennas": string;
+ "manageAntennas": string;
+ "name": string;
+ "antennaSource": string;
+ "antennaKeywords": string;
+ "antennaExcludeKeywords": string;
+ "antennaKeywordsDescription": string;
+ "notifyAntenna": string;
+ "withFileAntenna": string;
+ "enableServiceworker": string;
+ "antennaUsersDescription": string;
+ "caseSensitive": string;
+ "withReplies": string;
+ "connectedTo": string;
+ "notesAndReplies": string;
+ "withFiles": string;
+ "silence": string;
+ "silenceConfirm": string;
+ "unsilence": string;
+ "unsilenceConfirm": string;
+ "popularUsers": string;
+ "recentlyUpdatedUsers": string;
+ "recentlyRegisteredUsers": string;
+ "recentlyDiscoveredUsers": string;
+ "exploreUsersCount": string;
+ "exploreFediverse": string;
+ "popularTags": string;
+ "userList": string;
+ "about": string;
+ "aboutMisskey": string;
+ "administrator": string;
+ "token": string;
+ "2fa": string;
+ "totp": string;
+ "totpDescription": string;
+ "moderator": string;
+ "moderation": string;
+ "nUsersMentioned": string;
+ "securityKeyAndPasskey": string;
+ "securityKey": string;
+ "lastUsed": string;
+ "lastUsedAt": string;
+ "unregister": string;
+ "passwordLessLogin": string;
+ "passwordLessLoginDescription": string;
+ "resetPassword": string;
+ "newPasswordIs": string;
+ "reduceUiAnimation": string;
+ "share": string;
+ "notFound": string;
+ "notFoundDescription": string;
+ "uploadFolder": string;
+ "cacheClear": string;
+ "markAsReadAllNotifications": string;
+ "markAsReadAllUnreadNotes": string;
+ "markAsReadAllTalkMessages": string;
+ "help": string;
+ "inputMessageHere": string;
+ "close": string;
+ "invites": string;
+ "members": string;
+ "transfer": string;
+ "title": string;
+ "text": string;
+ "enable": string;
+ "next": string;
+ "retype": string;
+ "noteOf": string;
+ "quoteAttached": string;
+ "quoteQuestion": string;
+ "noMessagesYet": string;
+ "newMessageExists": string;
+ "onlyOneFileCanBeAttached": string;
+ "signinRequired": string;
+ "invitations": string;
+ "invitationCode": string;
+ "checking": string;
+ "available": string;
+ "unavailable": string;
+ "usernameInvalidFormat": string;
+ "tooShort": string;
+ "tooLong": string;
+ "weakPassword": string;
+ "normalPassword": string;
+ "strongPassword": string;
+ "passwordMatched": string;
+ "passwordNotMatched": string;
+ "signinWith": string;
+ "signinFailed": string;
+ "or": string;
+ "language": string;
+ "uiLanguage": string;
+ "aboutX": string;
+ "emojiStyle": string;
+ "native": string;
+ "disableDrawer": string;
+ "showNoteActionsOnlyHover": string;
+ "noHistory": string;
+ "signinHistory": string;
+ "enableAdvancedMfm": string;
+ "enableAnimatedMfm": string;
+ "doing": string;
+ "category": string;
+ "tags": string;
+ "docSource": string;
+ "createAccount": string;
+ "existingAccount": string;
+ "regenerate": string;
+ "fontSize": string;
+ "mediaListWithOneImageAppearance": string;
+ "limitTo": string;
+ "noFollowRequests": string;
+ "openImageInNewTab": string;
+ "dashboard": string;
+ "local": string;
+ "remote": string;
+ "total": string;
+ "weekOverWeekChanges": string;
+ "dayOverDayChanges": string;
+ "appearance": string;
+ "clientSettings": string;
+ "accountSettings": string;
+ "promotion": string;
+ "promote": string;
+ "numberOfDays": string;
+ "hideThisNote": string;
+ "showFeaturedNotesInTimeline": string;
+ "objectStorage": string;
+ "useObjectStorage": string;
+ "objectStorageBaseUrl": string;
+ "objectStorageBaseUrlDesc": string;
+ "objectStorageBucket": string;
+ "objectStorageBucketDesc": string;
+ "objectStoragePrefix": string;
+ "objectStoragePrefixDesc": string;
+ "objectStorageEndpoint": string;
+ "objectStorageEndpointDesc": string;
+ "objectStorageRegion": string;
+ "objectStorageRegionDesc": string;
+ "objectStorageUseSSL": string;
+ "objectStorageUseSSLDesc": string;
+ "objectStorageUseProxy": string;
+ "objectStorageUseProxyDesc": string;
+ "objectStorageSetPublicRead": string;
+ "s3ForcePathStyleDesc": string;
+ "serverLogs": string;
+ "deleteAll": string;
+ "showFixedPostForm": string;
+ "showFixedPostFormInChannel": string;
+ "newNoteRecived": string;
+ "sounds": string;
+ "sound": string;
+ "listen": string;
+ "none": string;
+ "showInPage": string;
+ "popout": string;
+ "volume": string;
+ "masterVolume": string;
+ "details": string;
+ "chooseEmoji": string;
+ "unableToProcess": string;
+ "recentUsed": string;
+ "install": string;
+ "uninstall": string;
+ "installedApps": string;
+ "nothing": string;
+ "installedDate": string;
+ "lastUsedDate": string;
+ "state": string;
+ "sort": string;
+ "ascendingOrder": string;
+ "descendingOrder": string;
+ "scratchpad": string;
+ "scratchpadDescription": string;
+ "output": string;
+ "script": string;
+ "disablePagesScript": string;
+ "updateRemoteUser": string;
+ "deleteAllFiles": string;
+ "deleteAllFilesConfirm": string;
+ "removeAllFollowing": string;
+ "removeAllFollowingDescription": string;
+ "userSuspended": string;
+ "userSilenced": string;
+ "yourAccountSuspendedTitle": string;
+ "yourAccountSuspendedDescription": string;
+ "tokenRevoked": string;
+ "tokenRevokedDescription": string;
+ "accountDeleted": string;
+ "accountDeletedDescription": string;
+ "menu": string;
+ "divider": string;
+ "addItem": string;
+ "rearrange": string;
+ "relays": string;
+ "addRelay": string;
+ "inboxUrl": string;
+ "addedRelays": string;
+ "serviceworkerInfo": string;
+ "deletedNote": string;
+ "invisibleNote": string;
+ "enableInfiniteScroll": string;
+ "visibility": string;
+ "poll": string;
+ "useCw": string;
+ "enablePlayer": string;
+ "disablePlayer": string;
+ "expandTweet": string;
+ "themeEditor": string;
+ "description": string;
+ "describeFile": string;
+ "enterFileDescription": string;
+ "author": string;
+ "leaveConfirm": string;
+ "manage": string;
+ "plugins": string;
+ "preferencesBackups": string;
+ "deck": string;
+ "undeck": string;
+ "useBlurEffectForModal": string;
+ "useFullReactionPicker": string;
+ "width": string;
+ "height": string;
+ "large": string;
+ "medium": string;
+ "small": string;
+ "generateAccessToken": string;
+ "permission": string;
+ "enableAll": string;
+ "disableAll": string;
+ "tokenRequested": string;
+ "pluginTokenRequestedDescription": string;
+ "notificationType": string;
+ "edit": string;
+ "emailServer": string;
+ "enableEmail": string;
+ "emailConfigInfo": string;
+ "email": string;
+ "emailAddress": string;
+ "smtpConfig": string;
+ "smtpHost": string;
+ "smtpPort": string;
+ "smtpUser": string;
+ "smtpPass": string;
+ "emptyToDisableSmtpAuth": string;
+ "smtpSecure": string;
+ "smtpSecureInfo": string;
+ "testEmail": string;
+ "wordMute": string;
+ "regexpError": string;
+ "regexpErrorDescription": string;
+ "instanceMute": string;
+ "userSaysSomething": string;
+ "makeActive": string;
+ "display": string;
+ "copy": string;
+ "metrics": string;
+ "overview": string;
+ "logs": string;
+ "delayed": string;
+ "database": string;
+ "channel": string;
+ "create": string;
+ "notificationSetting": string;
+ "notificationSettingDesc": string;
+ "useGlobalSetting": string;
+ "useGlobalSettingDesc": string;
+ "other": string;
+ "regenerateLoginToken": string;
+ "regenerateLoginTokenDescription": string;
+ "setMultipleBySeparatingWithSpace": string;
+ "fileIdOrUrl": string;
+ "behavior": string;
+ "sample": string;
+ "abuseReports": string;
+ "reportAbuse": string;
+ "reportAbuseOf": string;
+ "fillAbuseReportDescription": string;
+ "abuseReported": string;
+ "reporter": string;
+ "reporteeOrigin": string;
+ "reporterOrigin": string;
+ "forwardReport": string;
+ "forwardReportIsAnonymous": string;
+ "send": string;
+ "abuseMarkAsResolved": string;
+ "openInNewTab": string;
+ "openInSideView": string;
+ "defaultNavigationBehaviour": string;
+ "editTheseSettingsMayBreakAccount": string;
+ "instanceTicker": string;
+ "waitingFor": string;
+ "random": string;
+ "system": string;
+ "switchUi": string;
+ "desktop": string;
+ "clip": string;
+ "createNew": string;
+ "optional": string;
+ "createNewClip": string;
+ "unclip": string;
+ "confirmToUnclipAlreadyClippedNote": string;
+ "public": string;
+ "i18nInfo": string;
+ "manageAccessTokens": string;
+ "accountInfo": string;
+ "notesCount": string;
+ "repliesCount": string;
+ "renotesCount": string;
+ "repliedCount": string;
+ "renotedCount": string;
+ "followingCount": string;
+ "followersCount": string;
+ "sentReactionsCount": string;
+ "receivedReactionsCount": string;
+ "pollVotesCount": string;
+ "pollVotedCount": string;
+ "yes": string;
+ "no": string;
+ "driveFilesCount": string;
+ "driveUsage": string;
+ "noCrawle": string;
+ "noCrawleDescription": string;
+ "lockedAccountInfo": string;
+ "alwaysMarkSensitive": string;
+ "loadRawImages": string;
+ "disableShowingAnimatedImages": string;
+ "verificationEmailSent": string;
+ "notSet": string;
+ "emailVerified": string;
+ "noteFavoritesCount": string;
+ "pageLikesCount": string;
+ "pageLikedCount": string;
+ "contact": string;
+ "useSystemFont": string;
+ "clips": string;
+ "experimentalFeatures": string;
+ "experimental": string;
+ "thisIsExperimentalFeature": string;
+ "developer": string;
+ "makeExplorable": string;
+ "makeExplorableDescription": string;
+ "showGapBetweenNotesInTimeline": string;
+ "duplicate": string;
+ "left": string;
+ "center": string;
+ "wide": string;
+ "narrow": string;
+ "reloadToApplySetting": string;
+ "needReloadToApply": string;
+ "showTitlebar": string;
+ "clearCache": string;
+ "onlineUsersCount": string;
+ "nUsers": string;
+ "nNotes": string;
+ "sendErrorReports": string;
+ "sendErrorReportsDescription": string;
+ "myTheme": string;
+ "backgroundColor": string;
+ "accentColor": string;
+ "textColor": string;
+ "saveAs": string;
+ "advanced": string;
+ "advancedSettings": string;
+ "value": string;
+ "createdAt": string;
+ "updatedAt": string;
+ "saveConfirm": string;
+ "deleteConfirm": string;
+ "invalidValue": string;
+ "registry": string;
+ "closeAccount": string;
+ "currentVersion": string;
+ "latestVersion": string;
+ "youAreRunningUpToDateClient": string;
+ "newVersionOfClientAvailable": string;
+ "usageAmount": string;
+ "capacity": string;
+ "inUse": string;
+ "editCode": string;
+ "apply": string;
+ "receiveAnnouncementFromInstance": string;
+ "emailNotification": string;
+ "publish": string;
+ "inChannelSearch": string;
+ "useReactionPickerForContextMenu": string;
+ "typingUsers": string;
+ "jumpToSpecifiedDate": string;
+ "showingPastTimeline": string;
+ "clear": string;
+ "markAllAsRead": string;
+ "goBack": string;
+ "unlikeConfirm": string;
+ "fullView": string;
+ "quitFullView": string;
+ "addDescription": string;
+ "userPagePinTip": string;
+ "notSpecifiedMentionWarning": string;
+ "info": string;
+ "userInfo": string;
+ "unknown": string;
+ "onlineStatus": string;
+ "hideOnlineStatus": string;
+ "hideOnlineStatusDescription": string;
+ "online": string;
+ "active": string;
+ "offline": string;
+ "notRecommended": string;
+ "botProtection": string;
+ "instanceBlocking": string;
+ "selectAccount": string;
+ "switchAccount": string;
+ "enabled": string;
+ "disabled": string;
+ "quickAction": string;
+ "user": string;
+ "administration": string;
+ "accounts": string;
+ "switch": string;
+ "noMaintainerInformationWarning": string;
+ "noBotProtectionWarning": string;
+ "configure": string;
+ "postToGallery": string;
+ "gallery": string;
+ "recentPosts": string;
+ "popularPosts": string;
+ "shareWithNote": string;
+ "ads": string;
+ "expiration": string;
+ "startingperiod": string;
+ "memo": string;
+ "priority": string;
+ "high": string;
+ "middle": string;
+ "low": string;
+ "emailNotConfiguredWarning": string;
+ "ratio": string;
+ "previewNoteText": string;
+ "customCss": string;
+ "customCssWarn": string;
+ "global": string;
+ "squareAvatars": string;
+ "sent": string;
+ "received": string;
+ "searchResult": string;
+ "hashtags": string;
+ "troubleshooting": string;
+ "useBlurEffect": string;
+ "learnMore": string;
+ "misskeyUpdated": string;
+ "whatIsNew": string;
+ "translate": string;
+ "translatedFrom": string;
+ "accountDeletionInProgress": string;
+ "usernameInfo": string;
+ "aiChanMode": string;
+ "devMode": string;
+ "keepCw": string;
+ "pubSub": string;
+ "lastCommunication": string;
+ "resolved": string;
+ "unresolved": string;
+ "breakFollow": string;
+ "breakFollowConfirm": string;
+ "itsOn": string;
+ "itsOff": string;
+ "on": string;
+ "off": string;
+ "emailRequiredForSignup": string;
+ "unread": string;
+ "filter": string;
+ "controlPanel": string;
+ "manageAccounts": string;
+ "makeReactionsPublic": string;
+ "makeReactionsPublicDescription": string;
+ "classic": string;
+ "muteThread": string;
+ "unmuteThread": string;
+ "ffVisibility": string;
+ "ffVisibilityDescription": string;
+ "continueThread": string;
+ "deleteAccountConfirm": string;
+ "incorrectPassword": string;
+ "voteConfirm": string;
+ "hide": string;
+ "useDrawerReactionPickerForMobile": string;
+ "welcomeBackWithName": string;
+ "clickToFinishEmailVerification": string;
+ "overridedDeviceKind": string;
+ "smartphone": string;
+ "tablet": string;
+ "auto": string;
+ "themeColor": string;
+ "size": string;
+ "numberOfColumn": string;
+ "searchByGoogle": string;
+ "instanceDefaultLightTheme": string;
+ "instanceDefaultDarkTheme": string;
+ "instanceDefaultThemeDescription": string;
+ "mutePeriod": string;
+ "period": string;
+ "indefinitely": string;
+ "tenMinutes": string;
+ "oneHour": string;
+ "oneDay": string;
+ "oneWeek": string;
+ "oneMonth": string;
+ "reflectMayTakeTime": string;
+ "failedToFetchAccountInformation": string;
+ "rateLimitExceeded": string;
+ "cropImage": string;
+ "cropImageAsk": string;
+ "cropYes": string;
+ "cropNo": string;
+ "file": string;
+ "recentNHours": string;
+ "recentNDays": string;
+ "noEmailServerWarning": string;
+ "thereIsUnresolvedAbuseReportWarning": string;
+ "recommended": string;
+ "check": string;
+ "driveCapOverrideLabel": string;
+ "driveCapOverrideCaption": string;
+ "requireAdminForView": string;
+ "isSystemAccount": string;
+ "typeToConfirm": string;
+ "deleteAccount": string;
+ "document": string;
+ "numberOfPageCache": string;
+ "numberOfPageCacheDescription": string;
+ "logoutConfirm": string;
+ "lastActiveDate": string;
+ "statusbar": string;
+ "pleaseSelect": string;
+ "reverse": string;
+ "colored": string;
+ "refreshInterval": string;
+ "label": string;
+ "type": string;
+ "speed": string;
+ "slow": string;
+ "fast": string;
+ "sensitiveMediaDetection": string;
+ "localOnly": string;
+ "remoteOnly": string;
+ "failedToUpload": string;
+ "cannotUploadBecauseInappropriate": string;
+ "cannotUploadBecauseNoFreeSpace": string;
+ "cannotUploadBecauseExceedsFileSizeLimit": string;
+ "beta": string;
+ "enableAutoSensitive": string;
+ "enableAutoSensitiveDescription": string;
+ "activeEmailValidationDescription": string;
+ "navbar": string;
+ "shuffle": string;
+ "account": string;
+ "move": string;
+ "pushNotification": string;
+ "subscribePushNotification": string;
+ "unsubscribePushNotification": string;
+ "pushNotificationAlreadySubscribed": string;
+ "pushNotificationNotSupported": string;
+ "sendPushNotificationReadMessage": string;
+ "sendPushNotificationReadMessageCaption": string;
+ "windowMaximize": string;
+ "windowMinimize": string;
+ "windowRestore": string;
+ "caption": string;
+ "loggedInAsBot": string;
+ "tools": string;
+ "cannotLoad": string;
+ "numberOfProfileView": string;
+ "like": string;
+ "unlike": string;
+ "numberOfLikes": string;
+ "show": string;
+ "neverShow": string;
+ "remindMeLater": string;
+ "didYouLikeMisskey": string;
+ "pleaseDonate": string;
+ "roles": string;
+ "role": string;
+ "noRole": string;
+ "normalUser": string;
+ "undefined": string;
+ "assign": string;
+ "unassign": string;
+ "color": string;
+ "manageCustomEmojis": string;
+ "youCannotCreateAnymore": string;
+ "cannotPerformTemporary": string;
+ "cannotPerformTemporaryDescription": string;
+ "invalidParamError": string;
+ "invalidParamErrorDescription": string;
+ "permissionDeniedError": string;
+ "permissionDeniedErrorDescription": string;
+ "preset": string;
+ "selectFromPresets": string;
+ "achievements": string;
+ "gotInvalidResponseError": string;
+ "gotInvalidResponseErrorDescription": string;
+ "thisPostMayBeAnnoying": string;
+ "thisPostMayBeAnnoyingHome": string;
+ "thisPostMayBeAnnoyingCancel": string;
+ "thisPostMayBeAnnoyingIgnore": string;
+ "collapseRenotes": string;
+ "internalServerError": string;
+ "internalServerErrorDescription": string;
+ "copyErrorInfo": string;
+ "joinThisServer": string;
+ "exploreOtherServers": string;
+ "letsLookAtTimeline": string;
+ "disableFederationConfirm": string;
+ "disableFederationConfirmWarn": string;
+ "disableFederationOk": string;
+ "invitationRequiredToRegister": string;
+ "emailNotSupported": string;
+ "postToTheChannel": string;
+ "cannotBeChangedLater": string;
+ "reactionAcceptance": string;
+ "likeOnly": string;
+ "likeOnlyForRemote": string;
+ "nonSensitiveOnly": string;
+ "nonSensitiveOnlyForLocalLikeOnlyForRemote": string;
+ "rolesAssignedToMe": string;
+ "resetPasswordConfirm": string;
+ "sensitiveWords": string;
+ "sensitiveWordsDescription": string;
+ "sensitiveWordsDescription2": string;
+ "notesSearchNotAvailable": string;
+ "license": string;
+ "unfavoriteConfirm": string;
+ "myClips": string;
+ "drivecleaner": string;
+ "retryAllQueuesNow": string;
+ "retryAllQueuesConfirmTitle": string;
+ "retryAllQueuesConfirmText": string;
+ "enableChartsForRemoteUser": string;
+ "enableChartsForFederatedInstances": string;
+ "showClipButtonInNoteFooter": string;
+ "largeNoteReactions": string;
+ "noteIdOrUrl": string;
+ "video": string;
+ "videos": string;
+ "dataSaver": string;
+ "accountMigration": string;
+ "accountMoved": string;
+ "accountMovedShort": string;
+ "operationForbidden": string;
+ "forceShowAds": string;
+ "addMemo": string;
+ "editMemo": string;
+ "reactionsList": string;
+ "renotesList": string;
+ "notificationDisplay": string;
+ "leftTop": string;
+ "rightTop": string;
+ "leftBottom": string;
+ "rightBottom": string;
+ "stackAxis": string;
+ "vertical": string;
+ "horizontal": string;
+ "position": string;
+ "serverRules": string;
+ "pleaseConfirmBelowBeforeSignup": string;
+ "pleaseAgreeAllToContinue": string;
+ "continue": string;
+ "preservedUsernames": string;
+ "preservedUsernamesDescription": string;
+ "createNoteFromTheFile": string;
+ "archive": string;
+ "channelArchiveConfirmTitle": string;
+ "channelArchiveConfirmDescription": string;
+ "thisChannelArchived": string;
+ "displayOfNote": string;
+ "initialAccountSetting": string;
+ "youFollowing": string;
+ "preventAiLearning": string;
+ "preventAiLearningDescription": string;
+ "options": string;
+ "specifyUser": string;
+ "failedToPreviewUrl": string;
+ "update": string;
+ "rolesThatCanBeUsedThisEmojiAsReaction": string;
+ "rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription": string;
+ "rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn": string;
+ "cancelReactionConfirm": string;
+ "changeReactionConfirm": string;
+ "_initialAccountSetting": {
+ "accountCreated": string;
+ "letsStartAccountSetup": string;
+ "letsFillYourProfile": string;
+ "profileSetting": string;
+ "privacySetting": string;
+ "theseSettingsCanEditLater": string;
+ "youCanEditMoreSettingsInSettingsPageLater": string;
+ "followUsers": string;
+ "pushNotificationDescription": string;
+ "initialAccountSettingCompleted": string;
+ "haveFun": string;
+ "ifYouNeedLearnMore": string;
+ "skipAreYouSure": string;
+ };
+ "_serverRules": {
+ "description": string;
+ };
+ "_accountMigration": {
+ "moveFrom": string;
+ "moveFromSub": string;
+ "moveFromLabel": string;
+ "moveFromDescription": string;
+ "moveTo": string;
+ "moveToLabel": string;
+ "moveCannotBeUndone": string;
+ "moveAccountDescription": string;
+ "moveAccountHowTo": string;
+ "startMigration": string;
+ "migrationConfirm": string;
+ "movedAndCannotBeUndone": string;
+ "postMigrationNote": string;
+ "movedTo": string;
+ };
+ "_achievements": {
+ "earnedAt": string;
+ "_types": {
+ "_notes1": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_notes10": {
+ "title": string;
+ "description": string;
+ };
+ "_notes100": {
+ "title": string;
+ "description": string;
+ };
+ "_notes500": {
+ "title": string;
+ "description": string;
+ };
+ "_notes1000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes5000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes10000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes20000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes30000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes40000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes50000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes60000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes70000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes80000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes90000": {
+ "title": string;
+ "description": string;
+ };
+ "_notes100000": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_login3": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_login7": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_login15": {
+ "title": string;
+ "description": string;
+ };
+ "_login30": {
+ "title": string;
+ "description": string;
+ };
+ "_login60": {
+ "title": string;
+ "description": string;
+ };
+ "_login100": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_login200": {
+ "title": string;
+ "description": string;
+ };
+ "_login300": {
+ "title": string;
+ "description": string;
+ };
+ "_login400": {
+ "title": string;
+ "description": string;
+ };
+ "_login500": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_login600": {
+ "title": string;
+ "description": string;
+ };
+ "_login700": {
+ "title": string;
+ "description": string;
+ };
+ "_login800": {
+ "title": string;
+ "description": string;
+ };
+ "_login900": {
+ "title": string;
+ "description": string;
+ };
+ "_login1000": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_noteClipped1": {
+ "title": string;
+ "description": string;
+ };
+ "_noteFavorited1": {
+ "title": string;
+ "description": string;
+ };
+ "_myNoteFavorited1": {
+ "title": string;
+ "description": string;
+ };
+ "_profileFilled": {
+ "title": string;
+ "description": string;
+ };
+ "_markedAsCat": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_following1": {
+ "title": string;
+ "description": string;
+ };
+ "_following10": {
+ "title": string;
+ "description": string;
+ };
+ "_following50": {
+ "title": string;
+ "description": string;
+ };
+ "_following100": {
+ "title": string;
+ "description": string;
+ };
+ "_following300": {
+ "title": string;
+ "description": string;
+ };
+ "_followers1": {
+ "title": string;
+ "description": string;
+ };
+ "_followers10": {
+ "title": string;
+ "description": string;
+ };
+ "_followers50": {
+ "title": string;
+ "description": string;
+ };
+ "_followers100": {
+ "title": string;
+ "description": string;
+ };
+ "_followers300": {
+ "title": string;
+ "description": string;
+ };
+ "_followers500": {
+ "title": string;
+ "description": string;
+ };
+ "_followers1000": {
+ "title": string;
+ "description": string;
+ };
+ "_collectAchievements30": {
+ "title": string;
+ "description": string;
+ };
+ "_viewAchievements3min": {
+ "title": string;
+ "description": string;
+ };
+ "_iLoveMisskey": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_foundTreasure": {
+ "title": string;
+ "description": string;
+ };
+ "_client30min": {
+ "title": string;
+ "description": string;
+ };
+ "_client60min": {
+ "title": string;
+ "description": string;
+ };
+ "_noteDeletedWithin1min": {
+ "title": string;
+ "description": string;
+ };
+ "_postedAtLateNight": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_postedAt0min0sec": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_selfQuote": {
+ "title": string;
+ "description": string;
+ };
+ "_htl20npm": {
+ "title": string;
+ "description": string;
+ };
+ "_viewInstanceChart": {
+ "title": string;
+ "description": string;
+ };
+ "_outputHelloWorldOnScratchpad": {
+ "title": string;
+ "description": string;
+ };
+ "_open3windows": {
+ "title": string;
+ "description": string;
+ };
+ "_driveFolderCircularReference": {
+ "title": string;
+ "description": string;
+ };
+ "_reactWithoutRead": {
+ "title": string;
+ "description": string;
+ };
+ "_clickedClickHere": {
+ "title": string;
+ "description": string;
+ };
+ "_justPlainLucky": {
+ "title": string;
+ "description": string;
+ };
+ "_setNameToSyuilo": {
+ "title": string;
+ "description": string;
+ };
+ "_passedSinceAccountCreated1": {
+ "title": string;
+ "description": string;
+ };
+ "_passedSinceAccountCreated2": {
+ "title": string;
+ "description": string;
+ };
+ "_passedSinceAccountCreated3": {
+ "title": string;
+ "description": string;
+ };
+ "_loggedInOnBirthday": {
+ "title": string;
+ "description": string;
+ };
+ "_loggedInOnNewYearsDay": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_cookieClicked": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ "_brainDiver": {
+ "title": string;
+ "description": string;
+ "flavor": string;
+ };
+ };
+ };
+ "_role": {
+ "new": string;
+ "edit": string;
+ "name": string;
+ "description": string;
+ "permission": string;
+ "descriptionOfPermission": string;
+ "assignTarget": string;
+ "descriptionOfAssignTarget": string;
+ "manual": string;
+ "conditional": string;
+ "condition": string;
+ "isConditionalRole": string;
+ "isPublic": string;
+ "descriptionOfIsPublic": string;
+ "options": string;
+ "policies": string;
+ "baseRole": string;
+ "useBaseValue": string;
+ "chooseRoleToAssign": string;
+ "iconUrl": string;
+ "asBadge": string;
+ "descriptionOfAsBadge": string;
+ "isExplorable": string;
+ "descriptionOfIsExplorable": string;
+ "displayOrder": string;
+ "descriptionOfDisplayOrder": string;
+ "canEditMembersByModerator": string;
+ "descriptionOfCanEditMembersByModerator": string;
+ "priority": string;
+ "_priority": {
+ "low": string;
+ "middle": string;
+ "high": string;
+ };
+ "_options": {
+ "gtlAvailable": string;
+ "ltlAvailable": string;
+ "canPublicNote": string;
+ "canInvite": string;
+ "canManageCustomEmojis": string;
+ "driveCapacity": string;
+ "alwaysMarkNsfw": string;
+ "pinMax": string;
+ "antennaMax": string;
+ "wordMuteMax": string;
+ "webhookMax": string;
+ "clipMax": string;
+ "noteEachClipsMax": string;
+ "userListMax": string;
+ "userEachUserListsMax": string;
+ "rateLimitFactor": string;
+ "descriptionOfRateLimitFactor": string;
+ "canHideAds": string;
+ "canSearchNotes": string;
+ };
+ "_condition": {
+ "isLocal": string;
+ "isRemote": string;
+ "createdLessThan": string;
+ "createdMoreThan": string;
+ "followersLessThanOrEq": string;
+ "followersMoreThanOrEq": string;
+ "followingLessThanOrEq": string;
+ "followingMoreThanOrEq": string;
+ "notesLessThanOrEq": string;
+ "notesMoreThanOrEq": string;
+ "and": string;
+ "or": string;
+ "not": string;
+ };
+ };
+ "_sensitiveMediaDetection": {
+ "description": string;
+ "sensitivity": string;
+ "sensitivityDescription": string;
+ "setSensitiveFlagAutomatically": string;
+ "setSensitiveFlagAutomaticallyDescription": string;
+ "analyzeVideos": string;
+ "analyzeVideosDescription": string;
+ };
+ "_emailUnavailable": {
+ "used": string;
+ "format": string;
+ "disposable": string;
+ "mx": string;
+ "smtp": string;
+ };
+ "_ffVisibility": {
+ "public": string;
+ "followers": string;
+ "private": string;
+ };
+ "_signup": {
+ "almostThere": string;
+ "emailAddressInfo": string;
+ "emailSent": string;
+ };
+ "_accountDelete": {
+ "accountDelete": string;
+ "mayTakeTime": string;
+ "sendEmail": string;
+ "requestAccountDelete": string;
+ "started": string;
+ "inProgress": string;
+ };
+ "_ad": {
+ "back": string;
+ "reduceFrequencyOfThisAd": string;
+ "hide": string;
+ };
+ "_forgotPassword": {
+ "enterEmail": string;
+ "ifNoEmail": string;
+ "contactAdmin": string;
+ };
+ "_gallery": {
+ "my": string;
+ "liked": string;
+ "like": string;
+ "unlike": string;
+ };
+ "_email": {
+ "_follow": {
+ "title": string;
+ };
+ "_receiveFollowRequest": {
+ "title": string;
+ };
+ };
+ "_plugin": {
+ "install": string;
+ "installWarn": string;
+ "manage": string;
+ };
+ "_preferencesBackups": {
+ "list": string;
+ "saveNew": string;
+ "loadFile": string;
+ "apply": string;
+ "save": string;
+ "inputName": string;
+ "cannotSave": string;
+ "nameAlreadyExists": string;
+ "applyConfirm": string;
+ "saveConfirm": string;
+ "deleteConfirm": string;
+ "renameConfirm": string;
+ "noBackups": string;
+ "createdAt": string;
+ "updatedAt": string;
+ "cannotLoad": string;
+ "invalidFile": string;
+ };
+ "_registry": {
+ "scope": string;
+ "key": string;
+ "keys": string;
+ "domain": string;
+ "createKey": string;
+ };
+ "_aboutMisskey": {
+ "about": string;
+ "contributors": string;
+ "allContributors": string;
+ "source": string;
+ "translation": string;
+ "donate": string;
+ "morePatrons": string;
+ "patrons": string;
+ };
+ "_nsfw": {
+ "respect": string;
+ "ignore": string;
+ "force": string;
+ };
+ "_instanceTicker": {
+ "none": string;
+ "remote": string;
+ "always": string;
+ };
+ "_serverDisconnectedBehavior": {
+ "reload": string;
+ "dialog": string;
+ "quiet": string;
+ };
+ "_channel": {
+ "create": string;
+ "edit": string;
+ "setBanner": string;
+ "removeBanner": string;
+ "featured": string;
+ "owned": string;
+ "following": string;
+ "usersCount": string;
+ "notesCount": string;
+ "nameAndDescription": string;
+ "nameOnly": string;
+ };
+ "_menuDisplay": {
+ "sideFull": string;
+ "sideIcon": string;
+ "top": string;
+ "hide": string;
+ };
+ "_wordMute": {
+ "muteWords": string;
+ "muteWordsDescription": string;
+ "muteWordsDescription2": string;
+ "softDescription": string;
+ "hardDescription": string;
+ "soft": string;
+ "hard": string;
+ "mutedNotes": string;
+ };
+ "_instanceMute": {
+ "instanceMuteDescription": string;
+ "instanceMuteDescription2": string;
+ "title": string;
+ "heading": string;
+ };
+ "_theme": {
+ "explore": string;
+ "install": string;
+ "manage": string;
+ "code": string;
+ "description": string;
+ "installed": string;
+ "installedThemes": string;
+ "builtinThemes": string;
+ "alreadyInstalled": string;
+ "invalid": string;
+ "make": string;
+ "base": string;
+ "addConstant": string;
+ "constant": string;
+ "defaultValue": string;
+ "color": string;
+ "refProp": string;
+ "refConst": string;
+ "key": string;
+ "func": string;
+ "funcKind": string;
+ "argument": string;
+ "basedProp": string;
+ "alpha": string;
+ "darken": string;
+ "lighten": string;
+ "inputConstantName": string;
+ "importInfo": string;
+ "deleteConstantConfirm": string;
+ "keys": {
+ "accent": string;
+ "bg": string;
+ "fg": string;
+ "focus": string;
+ "indicator": string;
+ "panel": string;
+ "shadow": string;
+ "header": string;
+ "navBg": string;
+ "navFg": string;
+ "navHoverFg": string;
+ "navActive": string;
+ "navIndicator": string;
+ "link": string;
+ "hashtag": string;
+ "mention": string;
+ "mentionMe": string;
+ "renote": string;
+ "modalBg": string;
+ "divider": string;
+ "scrollbarHandle": string;
+ "scrollbarHandleHover": string;
+ "dateLabelFg": string;
+ "infoBg": string;
+ "infoFg": string;
+ "infoWarnBg": string;
+ "infoWarnFg": string;
+ "cwBg": string;
+ "cwFg": string;
+ "cwHoverBg": string;
+ "toastBg": string;
+ "toastFg": string;
+ "buttonBg": string;
+ "buttonHoverBg": string;
+ "inputBorder": string;
+ "listItemHoverBg": string;
+ "driveFolderBg": string;
+ "wallpaperOverlay": string;
+ "badge": string;
+ "messageBg": string;
+ "accentDarken": string;
+ "accentLighten": string;
+ "fgHighlighted": string;
+ };
+ };
+ "_sfx": {
+ "note": string;
+ "noteMy": string;
+ "notification": string;
+ "chat": string;
+ "chatBg": string;
+ "antenna": string;
+ "channel": string;
+ };
+ "_ago": {
+ "future": string;
+ "justNow": string;
+ "secondsAgo": string;
+ "minutesAgo": string;
+ "hoursAgo": string;
+ "daysAgo": string;
+ "weeksAgo": string;
+ "monthsAgo": string;
+ "yearsAgo": string;
+ "invalid": string;
+ };
+ "_time": {
+ "second": string;
+ "minute": string;
+ "hour": string;
+ "day": string;
+ };
+ "_timelineTutorial": {
+ "title": string;
+ "step1_1": string;
+ "step1_2": string;
+ "step2_1": string;
+ "step2_2": string;
+ "step3_1": string;
+ "step3_2": string;
+ "step4_1": string;
+ "step4_2": string;
+ };
+ "_2fa": {
+ "alreadyRegistered": string;
+ "registerTOTP": string;
+ "passwordToTOTP": string;
+ "step1": string;
+ "step2": string;
+ "step2Click": string;
+ "step2Url": string;
+ "step3Title": string;
+ "step3": string;
+ "step4": string;
+ "securityKeyNotSupported": string;
+ "registerTOTPBeforeKey": string;
+ "securityKeyInfo": string;
+ "chromePasskeyNotSupported": string;
+ "registerSecurityKey": string;
+ "securityKeyName": string;
+ "tapSecurityKey": string;
+ "removeKey": string;
+ "removeKeyConfirm": string;
+ "whyTOTPOnlyRenew": string;
+ "renewTOTP": string;
+ "renewTOTPConfirm": string;
+ "renewTOTPOk": string;
+ "renewTOTPCancel": string;
+ };
+ "_permissions": {
+ "read:account": string;
+ "write:account": string;
+ "read:blocks": string;
+ "write:blocks": string;
+ "read:drive": string;
+ "write:drive": string;
+ "read:favorites": string;
+ "write:favorites": string;
+ "read:following": string;
+ "write:following": string;
+ "read:messaging": string;
+ "write:messaging": string;
+ "read:mutes": string;
+ "write:mutes": string;
+ "write:notes": string;
+ "read:notifications": string;
+ "write:notifications": string;
+ "read:reactions": string;
+ "write:reactions": string;
+ "write:votes": string;
+ "read:pages": string;
+ "write:pages": string;
+ "read:page-likes": string;
+ "write:page-likes": string;
+ "read:user-groups": string;
+ "write:user-groups": string;
+ "read:channels": string;
+ "write:channels": string;
+ "read:gallery": string;
+ "write:gallery": string;
+ "read:gallery-likes": string;
+ "write:gallery-likes": string;
+ };
+ "_auth": {
+ "shareAccessTitle": string;
+ "shareAccess": string;
+ "shareAccessAsk": string;
+ "permission": string;
+ "permissionAsk": string;
+ "pleaseGoBack": string;
+ "callback": string;
+ "denied": string;
+ "pleaseLogin": string;
+ };
+ "_antennaSources": {
+ "all": string;
+ "homeTimeline": string;
+ "users": string;
+ "userList": string;
+ };
+ "_weekday": {
+ "sunday": string;
+ "monday": string;
+ "tuesday": string;
+ "wednesday": string;
+ "thursday": string;
+ "friday": string;
+ "saturday": string;
+ };
+ "_widgets": {
+ "profile": string;
+ "instanceInfo": string;
+ "memo": string;
+ "notifications": string;
+ "timeline": string;
+ "calendar": string;
+ "trends": string;
+ "clock": string;
+ "rss": string;
+ "rssTicker": string;
+ "activity": string;
+ "photos": string;
+ "digitalClock": string;
+ "unixClock": string;
+ "federation": string;
+ "instanceCloud": string;
+ "postForm": string;
+ "slideshow": string;
+ "button": string;
+ "onlineUsers": string;
+ "jobQueue": string;
+ "serverMetric": string;
+ "aiscript": string;
+ "aiscriptApp": string;
+ "aichan": string;
+ "userList": string;
+ "_userList": {
+ "chooseList": string;
+ };
+ "clicker": string;
+ };
+ "_cw": {
+ "hide": string;
+ "show": string;
+ "chars": string;
+ "files": string;
+ };
+ "_poll": {
+ "noOnlyOneChoice": string;
+ "choiceN": string;
+ "noMore": string;
+ "canMultipleVote": string;
+ "expiration": string;
+ "infinite": string;
+ "at": string;
+ "after": string;
+ "deadlineDate": string;
+ "deadlineTime": string;
+ "duration": string;
+ "votesCount": string;
+ "totalVotes": string;
+ "vote": string;
+ "showResult": string;
+ "voted": string;
+ "closed": string;
+ "remainingDays": string;
+ "remainingHours": string;
+ "remainingMinutes": string;
+ "remainingSeconds": string;
+ };
+ "_visibility": {
+ "public": string;
+ "publicDescription": string;
+ "home": string;
+ "homeDescription": string;
+ "followers": string;
+ "followersDescription": string;
+ "specified": string;
+ "specifiedDescription": string;
+ "disableFederation": string;
+ "disableFederationDescription": string;
+ };
+ "_postForm": {
+ "replyPlaceholder": string;
+ "quotePlaceholder": string;
+ "channelPlaceholder": string;
+ "_placeholders": {
+ "a": string;
+ "b": string;
+ "c": string;
+ "d": string;
+ "e": string;
+ "f": string;
+ };
+ };
+ "_profile": {
+ "name": string;
+ "username": string;
+ "description": string;
+ "youCanIncludeHashtags": string;
+ "metadata": string;
+ "metadataEdit": string;
+ "metadataDescription": string;
+ "metadataLabel": string;
+ "metadataContent": string;
+ "changeAvatar": string;
+ "changeBanner": string;
+ };
+ "_exportOrImport": {
+ "allNotes": string;
+ "favoritedNotes": string;
+ "followingList": string;
+ "muteList": string;
+ "blockingList": string;
+ "userLists": string;
+ "excludeMutingUsers": string;
+ "excludeInactiveUsers": string;
+ };
+ "_charts": {
+ "federation": string;
+ "apRequest": string;
+ "usersIncDec": string;
+ "usersTotal": string;
+ "activeUsers": string;
+ "notesIncDec": string;
+ "localNotesIncDec": string;
+ "remoteNotesIncDec": string;
+ "notesTotal": string;
+ "filesIncDec": string;
+ "filesTotal": string;
+ "storageUsageIncDec": string;
+ "storageUsageTotal": string;
+ };
+ "_instanceCharts": {
+ "requests": string;
+ "users": string;
+ "usersTotal": string;
+ "notes": string;
+ "notesTotal": string;
+ "ff": string;
+ "ffTotal": string;
+ "cacheSize": string;
+ "cacheSizeTotal": string;
+ "files": string;
+ "filesTotal": string;
+ };
+ "_timelines": {
+ "home": string;
+ "local": string;
+ "social": string;
+ "global": string;
+ };
+ "_play": {
+ "new": string;
+ "edit": string;
+ "created": string;
+ "updated": string;
+ "deleted": string;
+ "pageSetting": string;
+ "editThisPage": string;
+ "viewSource": string;
+ "my": string;
+ "liked": string;
+ "featured": string;
+ "title": string;
+ "script": string;
+ "summary": string;
+ };
+ "_pages": {
+ "newPage": string;
+ "editPage": string;
+ "readPage": string;
+ "created": string;
+ "updated": string;
+ "deleted": string;
+ "pageSetting": string;
+ "nameAlreadyExists": string;
+ "invalidNameTitle": string;
+ "invalidNameText": string;
+ "editThisPage": string;
+ "viewSource": string;
+ "viewPage": string;
+ "like": string;
+ "unlike": string;
+ "my": string;
+ "liked": string;
+ "featured": string;
+ "inspector": string;
+ "contents": string;
+ "content": string;
+ "variables": string;
+ "title": string;
+ "url": string;
+ "summary": string;
+ "alignCenter": string;
+ "hideTitleWhenPinned": string;
+ "font": string;
+ "fontSerif": string;
+ "fontSansSerif": string;
+ "eyeCatchingImageSet": string;
+ "eyeCatchingImageRemove": string;
+ "chooseBlock": string;
+ "selectType": string;
+ "contentBlocks": string;
+ "inputBlocks": string;
+ "specialBlocks": string;
+ "blocks": {
+ "text": string;
+ "textarea": string;
+ "section": string;
+ "image": string;
+ "button": string;
+ "note": string;
+ "_note": {
+ "id": string;
+ "idDescription": string;
+ "detailed": string;
+ };
+ };
+ };
+ "_relayStatus": {
+ "requesting": string;
+ "accepted": string;
+ "rejected": string;
+ };
+ "_notification": {
+ "fileUploaded": string;
+ "youGotMention": string;
+ "youGotReply": string;
+ "youGotQuote": string;
+ "youRenoted": string;
+ "youWereFollowed": string;
+ "youReceivedFollowRequest": string;
+ "yourFollowRequestAccepted": string;
+ "pollEnded": string;
+ "unreadAntennaNote": string;
+ "emptyPushNotificationMessage": string;
+ "achievementEarned": string;
+ "_types": {
+ "all": string;
+ "follow": string;
+ "mention": string;
+ "reply": string;
+ "renote": string;
+ "quote": string;
+ "reaction": string;
+ "pollEnded": string;
+ "receiveFollowRequest": string;
+ "followRequestAccepted": string;
+ "achievementEarned": string;
+ "app": string;
+ };
+ "_actions": {
+ "followBack": string;
+ "reply": string;
+ "renote": string;
+ };
+ };
+ "_deck": {
+ "alwaysShowMainColumn": string;
+ "columnAlign": string;
+ "addColumn": string;
+ "configureColumn": string;
+ "swapLeft": string;
+ "swapRight": string;
+ "swapUp": string;
+ "swapDown": string;
+ "stackLeft": string;
+ "popRight": string;
+ "profile": string;
+ "newProfile": string;
+ "deleteProfile": string;
+ "introduction": string;
+ "introduction2": string;
+ "widgetsIntroduction": string;
+ "_columns": {
+ "main": string;
+ "widgets": string;
+ "notifications": string;
+ "tl": string;
+ "antenna": string;
+ "list": string;
+ "channel": string;
+ "mentions": string;
+ "direct": string;
+ "roleTimeline": string;
+ };
+ };
+ "_dialog": {
+ "charactersExceeded": string;
+ "charactersBelow": string;
+ };
+ "_disabledTimeline": {
+ "title": string;
+ "description": string;
+ };
+ "_drivecleaner": {
+ "orderBySizeDesc": string;
+ "orderByCreatedAtAsc": string;
+ };
+ "_webhookSettings": {
+ "createWebhook": string;
+ "name": string;
+ "secret": string;
+ "events": string;
+ "active": string;
+ "_events": {
+ "follow": string;
+ "followed": string;
+ "note": string;
+ "reply": string;
+ "renote": string;
+ "reaction": string;
+ "mention": string;
+ };
+ };
+}
+declare const locales: {
+ [lang: string]: Locale;
+};
export = locales;
diff --git a/package.json b/package.json
index 7b5d729b73..7723623198 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"@typescript-eslint/eslint-plugin": "5.59.5",
"@typescript-eslint/parser": "5.59.5",
"cross-env": "7.0.3",
- "cypress": "12.12.0",
+ "cypress": "12.13.0",
"eslint": "8.40.0",
"start-server-and-test": "2.0.0"
},
diff --git a/packages/backend/package.json b/packages/backend/package.json
index c332e1d03b..e5a8a38c97 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -63,9 +63,9 @@
"@fastify/multipart": "7.6.0",
"@fastify/static": "6.10.1",
"@fastify/view": "7.4.1",
- "@nestjs/common": "9.4.1",
- "@nestjs/core": "9.4.1",
- "@nestjs/testing": "9.4.1",
+ "@nestjs/common": "9.4.2",
+ "@nestjs/core": "9.4.2",
+ "@nestjs/testing": "9.4.2",
"@peertube/http-signature": "1.7.0",
"@sinonjs/fake-timers": "10.0.2",
"@swc/cli": "0.1.62",
@@ -179,11 +179,11 @@
"@types/jsonld": "1.5.8",
"@types/jsrsasign": "10.5.8",
"@types/mime-types": "2.1.1",
- "@types/node": "20.2.1",
+ "@types/node": "20.2.3",
"@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.8",
"@types/oauth": "0.9.1",
- "@types/pg": "8.6.6",
+ "@types/pg": "8.10.1",
"@types/pug": "2.0.6",
"@types/punycode": "2.1.0",
"@types/qrcode": "1.5.0",
@@ -197,7 +197,7 @@
"@types/sinonjs__fake-timers": "8.1.2",
"@types/tinycolor2": "1.4.3",
"@types/tmp": "0.2.3",
- "@types/unzipper": "0.10.5",
+ "@types/unzipper": "0.10.6",
"@types/uuid": "9.0.1",
"@types/vary": "1.1.0",
"@types/web-push": "3.3.2",
diff --git a/packages/backend/src/GlobalModule.ts b/packages/backend/src/GlobalModule.ts
index 5fb4e8ef3c..564787392f 100644
--- a/packages/backend/src/GlobalModule.ts
+++ b/packages/backend/src/GlobalModule.ts
@@ -4,7 +4,7 @@ import * as Redis from 'ioredis';
import { DataSource } from 'typeorm';
import { MeiliSearch } from 'meilisearch';
import { DI } from './di-symbols.js';
-import { loadConfig } from './config.js';
+import { Config, loadConfig } from './config.js';
import { createPostgresDataSource } from './postgres.js';
import { RepositoryModule } from './models/RepositoryModule.js';
import type { Provider, OnApplicationShutdown } from '@nestjs/common';
@@ -25,7 +25,7 @@ const $db: Provider = {
const $meilisearch: Provider = {
provide: DI.meilisearch,
- useFactory: (config) => {
+ useFactory: (config: Config) => {
if (config.meilisearch) {
return new MeiliSearch({
host: `${config.meilisearch.ssl ? 'https' : 'http' }://${config.meilisearch.host}:${config.meilisearch.port}`,
@@ -40,7 +40,7 @@ const $meilisearch: Provider = {
const $redis: Provider = {
provide: DI.redis,
- useFactory: (config) => {
+ useFactory: (config: Config) => {
return new Redis.Redis({
port: config.redis.port,
host: config.redis.host,
@@ -55,7 +55,7 @@ const $redis: Provider = {
const $redisForPub: Provider = {
provide: DI.redisForPub,
- useFactory: (config) => {
+ useFactory: (config: Config) => {
const redis = new Redis.Redis({
port: config.redisForPubsub.port,
host: config.redisForPubsub.host,
@@ -71,7 +71,7 @@ const $redisForPub: Provider = {
const $redisForSub: Provider = {
provide: DI.redisForSub,
- useFactory: (config) => {
+ useFactory: (config: Config) => {
const redis = new Redis.Redis({
port: config.redisForPubsub.port,
host: config.redisForPubsub.host,
diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js
index fd7f54da54..825f02e835 100644
--- a/packages/backend/src/server/web/boot.js
+++ b/packages/backend/src/server/web/boot.js
@@ -160,37 +160,41 @@