Cleaner post form
ci/woodpecker/push/ociImagePush Pipeline was successful Details

This commit is contained in:
Natty 2024-02-18 16:31:35 +01:00
parent c8d658f807
commit 7bfb5c0f91
Signed by: natty
GPG Key ID: BF6CB659ADEE60EC
2 changed files with 355 additions and 200 deletions

View File

@ -10,7 +10,13 @@
@drop.stop="onDrop" @drop.stop="onDrop"
> >
<header> <header>
<button v-if="!fixed" class="cancel _button" @click="cancel"> <div class="left">
<button
v-if="!fixed"
class="cancel _button"
:aria-label="i18n.ts.close"
@click="cancel"
>
<i class="ph-x ph-bold ph-lg"></i> <i class="ph-x ph-bold ph-lg"></i>
</button> </button>
<button <button
@ -24,13 +30,24 @@
class="avatar" class="avatar"
/> />
</button> </button>
<bdi class="form-username">
<MkUserName
class="form-username-text"
:user="postAccount ?? $i"
></MkUserName>
</bdi>
</div>
<div class="right"> <div class="right">
<span <span
class="text-count" class="text-count"
v-tooltip="i18n.ts.characterLimit"
:class="{ over: textLength > maxTextLength }" :class="{ over: textLength > maxTextLength }"
>{{ maxTextLength - textLength }}</span >{{ maxTextLength - textLength }}</span
> >
<span v-if="localOnly" class="local-only" <span
v-if="localOnly"
v-tooltip="i18n.ts.localOnly"
class="local-only"
><i class="ph-hand-fist ph-bold ph-lg"></i ><i class="ph-hand-fist ph-bold ph-lg"></i
></span> ></span>
<button <button
@ -979,9 +996,6 @@ onMounted(() => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.right {
float: right;
}
.gafaadew { .gafaadew {
position: relative; position: relative;
@ -993,21 +1007,28 @@ onMounted(() => {
> header { > header {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
z-index: 1000; align-items: stretch;
height: 66px; justify-content: space-between;
> .left {
display: flex;
align-items: center;
min-width: 0;
flex: 1;
> .cancel { > .cancel {
padding: 0; flex: 0;
font-size: 20px; font-size: 20px;
width: 64px; height: 100%;
line-height: 66px; aspect-ratio: 1 / 1;
min-height: 56px;
} }
> .account { > .account {
height: 100%; flex: 0;
aspect-ratio: 1/1; box-sizing: content-box;
display: inline-flex; height: 34px;
vertical-align: bottom; aspect-ratio: 1;
> .avatar { > .avatar {
width: 28px; width: 28px;
@ -1016,35 +1037,67 @@ onMounted(() => {
} }
} }
> .form-username {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 6px;
opacity: 0.7;
}
}
> .right { > .right {
position: absolute; display: flex;
top: 0; flex-direction: row;
right: 0; gap: 4px;
padding: 12px;
align-items: center;
justify-content: flex-end;
> .text-count { > .text-count {
opacity: 0.7; opacity: 0.7;
line-height: 66px; line-height: 34px;
margin: 0 6px;
}
> .local-only {
width: 28px;
height: 28px;
border-left: 1px solid var(--fg);
border-top: 1px solid var(--fg);
border-bottom: 1px solid var(--fg);
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
opacity: 0.7;
display: flex;
align-items: center;
justify-content: center;
margin: 0 0 0 4px;
box-sizing: border-box;
& + .visibility {
width: 28px;
height: 28px;
border-right: 1px solid var(--fg);
border-top: 1px solid var(--fg);
border-bottom: 1px solid var(--fg);
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
margin: 0 4px 0 0;
}
} }
> .visibility { > .visibility {
height: 34px; height: 34px;
width: 34px; width: 34px;
margin: 0 0 0 8px; line-height: 16px;
& + .localOnly {
margin-left: 0 !important;
}
}
> .local-only {
margin: 0 0 0 12px;
opacity: 0.7;
} }
> .preview { > .preview {
display: inline-block; display: inline-block;
padding: 0; padding: 0;
margin: 0 8px 0 0; margin: 0 6px 0 0;
font-size: 16px; font-size: 16px;
width: 34px; width: 34px;
height: 34px; height: 34px;
@ -1062,11 +1115,10 @@ onMounted(() => {
> .submit { > .submit {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
margin: 16px 16px 16px 0; margin: 0;
padding: 0 12px; padding: 0 12px;
line-height: 34px; line-height: 34px;
font-weight: bold; font-weight: bold;
vertical-align: bottom;
border-radius: 4px; border-radius: 4px;
font-size: 0.9em; font-size: 0.9em;
@ -1218,21 +1270,16 @@ onMounted(() => {
&.max-width_500px { &.max-width_500px {
> header { > header {
height: 50px; > .left {
min-width: auto;
> .cancel { > .form-username {
width: 50px; display: none;
line-height: 50px; }
} }
> .right { > .right {
> .text-count { flex-grow: 1;
line-height: 50px;
}
> .submit {
margin: 8px;
}
} }
} }

View File

@ -1,7 +1,9 @@
_lang_: "English" _lang_: "English"
headlineMisskey: "An open source, decentralized social media platform that's free headlineMisskey:
"An open source, decentralized social media platform that's free
forever! 🚀" forever! 🚀"
introMisskey: "Welcome! Magnetar is an open source, decentralized social media platform introMisskey:
"Welcome! Magnetar is an open source, decentralized social media platform
that's free forever! 🚀" that's free forever! 🚀"
monthAndDay: "{month}/{day}" monthAndDay: "{month}/{day}"
search: "Search" search: "Search"
@ -49,7 +51,8 @@ copyLink: "Copy link"
delete: "Delete" delete: "Delete"
deleted: "Deleted" deleted: "Deleted"
deleteAndEdit: "Delete and edit" deleteAndEdit: "Delete and edit"
deleteAndEditConfirm: "Are you sure you want to delete this post and edit it? You deleteAndEditConfirm:
"Are you sure you want to delete this post and edit it? You
will lose all reactions, boosts and replies to it." will lose all reactions, boosts and replies to it."
editNote: "Edit note" editNote: "Edit note"
edited: "Edited at {date} {time}" edited: "Edited at {date} {time}"
@ -76,10 +79,12 @@ import: "Import"
export: "Export" export: "Export"
files: "Files" files: "Files"
download: "Download" download: "Download"
driveFileDeleteConfirm: "Are you sure you want to delete the file \"{name}\"? It will driveFileDeleteConfirm:
be removed from all posts that contain it as an attachment." 'Are you sure you want to delete the file "{name}"? It will
be removed from all posts that contain it as an attachment.'
unfollowConfirm: "Are you sure that you want to unfollow {name}?" unfollowConfirm: "Are you sure that you want to unfollow {name}?"
exportRequested: "You've requested an export. This may take a while. It will be added exportRequested:
"You've requested an export. This may take a while. It will be added
to your Drive once completed." to your Drive once completed."
importRequested: "You've requested an import. This may take a while." importRequested: "You've requested an import. This may take a while."
lists: "Lists" lists: "Lists"
@ -97,7 +102,8 @@ error: "Error"
somethingHappened: "An error has occurred" somethingHappened: "An error has occurred"
retry: "Retry" retry: "Retry"
pageLoadError: "An error occurred loading the page." pageLoadError: "An error occurred loading the page."
pageLoadErrorDescription: "This is normally caused by network errors or the browser's pageLoadErrorDescription:
"This is normally caused by network errors or the browser's
cache. Try clearing the cache and then try again after waiting a little while." cache. Try clearing the cache and then try again after waiting a little while."
serverIsDead: "This server is not responding. Please wait for a while and try again." serverIsDead: "This server is not responding. Please wait for a while and try again."
youShouldUpgradeClient: "To view this page, please refresh to update your client." youShouldUpgradeClient: "To view this page, please refresh to update your client."
@ -128,7 +134,7 @@ removeReaction: "Remove your reaction"
enableEmojiReactions: "Enable emoji reactions" enableEmojiReactions: "Enable emoji reactions"
showEmojisInReactionNotifications: "Show emojis in reaction notifications" showEmojisInReactionNotifications: "Show emojis in reaction notifications"
reactionSetting: "Reactions to show in the reaction picker" reactionSetting: "Reactions to show in the reaction picker"
reactionSettingDescription2: "Drag to reorder, click to delete, press \"+\" to add." reactionSettingDescription2: 'Drag to reorder, click to delete, press "+" to add.'
rememberNoteVisibility: "Remember post visibility settings" rememberNoteVisibility: "Remember post visibility settings"
attachCancel: "Remove attachment" attachCancel: "Remove attachment"
markAsSensitive: "Mark as NSFW" markAsSensitive: "Mark as NSFW"
@ -160,11 +166,13 @@ emojiUrl: "Emoji URL"
addEmoji: "Add" addEmoji: "Add"
settingGuide: "Recommended settings" settingGuide: "Recommended settings"
cacheRemoteFiles: "Cache remote files" cacheRemoteFiles: "Cache remote files"
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded cacheRemoteFilesDescription:
"When this setting is disabled, remote files are loaded
directly from the remote server. Disabling this will decrease storage usage, but directly from the remote server. Disabling this will decrease storage usage, but
increase traffic, as thumbnails will not be generated." increase traffic, as thumbnails will not be generated."
flagAsBot: "Mark this account as a bot" flagAsBot: "Mark this account as a bot"
flagAsBotDescription: "Enable this option if this account is controlled by a program. flagAsBotDescription:
"Enable this option if this account is controlled by a program.
If enabled, it will act as a flag for other developers to prevent endless interaction If enabled, it will act as a flag for other developers to prevent endless interaction
chains with other bots and adjust Calckey's internal systems to treat this account chains with other bots and adjust Calckey's internal systems to treat this account
as a bot." as a bot."
@ -173,7 +181,8 @@ flagAsCatDescription: "You'll get cat ears and speak like a cat!"
flagSpeakAsCat: "Speak as a cat" flagSpeakAsCat: "Speak as a cat"
flagSpeakAsCatDescription: "Your posts will get nyanified when in cat mode" flagSpeakAsCatDescription: "Your posts will get nyanified when in cat mode"
flagShowTimelineReplies: "Show replies in timeline" flagShowTimelineReplies: "Show replies in timeline"
flagShowTimelineRepliesDescription: "Shows replies of users to posts of other users flagShowTimelineRepliesDescription:
"Shows replies of users to posts of other users
in the timeline if turned on." in the timeline if turned on."
autoAcceptFollowed: "Automatically approve follow requests from users you're following" autoAcceptFollowed: "Automatically approve follow requests from users you're following"
addAccount: "Add account" addAccount: "Add account"
@ -188,7 +197,8 @@ searchWith: "Search: {q}"
youHaveNoLists: "You don't have any lists" youHaveNoLists: "You don't have any lists"
followConfirm: "Are you sure that you want to follow {name}?" followConfirm: "Are you sure that you want to follow {name}?"
proxyAccount: "Proxy Account" proxyAccount: "Proxy Account"
proxyAccountDescription: "A proxy account is an account that acts as a remote follower proxyAccountDescription:
"A proxy account is an account that acts as a remote follower
for users under certain conditions. For example, when a user adds a remote user for users under certain conditions. For example, when a user adds a remote user
to the list, the remote user's activity will not be delivered to the server if no to the list, the remote user's activity will not be delivered to the server if no
local user is following that user, so the proxy account will follow instead." local user is following that user, so the proxy account will follow instead."
@ -223,20 +233,24 @@ instanceInfo: "Server Information"
statistics: "Statistics" statistics: "Statistics"
clearQueue: "Clear queue" clearQueue: "Clear queue"
clearQueueConfirmTitle: "Are you sure that you want to clear the queue?" clearQueueConfirmTitle: "Are you sure that you want to clear the queue?"
clearQueueConfirmText: "Any undelivered posts remaining in the queue will not be federated. clearQueueConfirmText:
"Any undelivered posts remaining in the queue will not be federated.
Usually this operation is not needed." Usually this operation is not needed."
clearCachedFiles: "Clear cache" clearCachedFiles: "Clear cache"
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?" clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
blockedInstances: "Blocked Servers" blockedInstances: "Blocked Servers"
blockedInstancesDescription: "List the hostnames of the servers that you want to block. blockedInstancesDescription:
"List the hostnames of the servers that you want to block.
Listed servers will no longer be able to communicate with this servers." Listed servers will no longer be able to communicate with this servers."
silencedInstances: "Silenced Servers" silencedInstances: "Silenced Servers"
silencedInstancesDescription: "List the hostnames of the servers that you want to silencedInstancesDescription:
silence. Accounts in the listed servers are treated as \"Silenced\", can only make 'List the hostnames of the servers that you want to
silence. Accounts in the listed servers are treated as "Silenced", can only make
follow requests, and cannot mention local accounts if not followed. This will not follow requests, and cannot mention local accounts if not followed. This will not
affect the blocked servers." affect the blocked servers.'
hiddenTags: "Hidden Hashtags" hiddenTags: "Hidden Hashtags"
hiddenTagsDescription: "List the hashtags (without the #) of the hashtags you wish hiddenTagsDescription:
"List the hashtags (without the #) of the hashtags you wish
to hide from trending and explore. Hidden hashtags are still discoverable via other to hide from trending and explore. Hidden hashtags are still discoverable via other
means." means."
muteAndBlock: "Mutes and Blocks" muteAndBlock: "Mutes and Blocks"
@ -247,6 +261,7 @@ noInstances: "There are no servers"
editProfile: "Edit profile" editProfile: "Edit profile"
noteDeleteConfirm: "Are you sure you want to delete this post?" noteDeleteConfirm: "Are you sure you want to delete this post?"
pinLimitExceeded: "You cannot pin any more posts" pinLimitExceeded: "You cannot pin any more posts"
characterLimit: "Character limit"
intro: "Installation of Calckey has been finished! Please create an admin user." intro: "Installation of Calckey has been finished! Please create an admin user."
done: "Done" done: "Done"
processing: "Processing" processing: "Processing"
@ -282,14 +297,15 @@ announcements: "Announcements"
imageUrl: "Image URL" imageUrl: "Image URL"
remove: "Delete" remove: "Delete"
removed: "Successfully deleted" removed: "Successfully deleted"
removeAreYouSure: "Are you sure that you want to remove \"{x}\"?" removeAreYouSure: 'Are you sure that you want to remove "{x}"?'
deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?" deleteAreYouSure: 'Are you sure that you want to delete "{x}"?'
resetAreYouSure: "Really reset?" resetAreYouSure: "Really reset?"
saved: "Saved" saved: "Saved"
messaging: "Chat" messaging: "Chat"
upload: "Upload" upload: "Upload"
keepOriginalUploading: "Keep original image" keepOriginalUploading: "Keep original image"
keepOriginalUploadingDescription: "Saves the originally uploaded image as-is. If turned keepOriginalUploadingDescription:
"Saves the originally uploaded image as-is. If turned
off, a version to display on the web will be generated on upload." off, a version to display on the web will be generated on upload."
fromDrive: "From Drive" fromDrive: "From Drive"
fromUrl: "From URL" fromUrl: "From URL"
@ -340,7 +356,8 @@ unableToDelete: "Unable to delete"
inputNewFileName: "Enter a new filename" inputNewFileName: "Enter a new filename"
inputNewDescription: "Enter new caption" inputNewDescription: "Enter new caption"
inputNewFolderName: "Enter a new folder name" inputNewFolderName: "Enter a new folder name"
circularReferenceFolder: "The destination folder is a subfolder of the folder you circularReferenceFolder:
"The destination folder is a subfolder of the folder you
wish to move." wish to move."
hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted." hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted."
copyUrl: "Copy URL" copyUrl: "Copy URL"
@ -376,7 +393,8 @@ disconnectService: "Disconnect"
enableLocalTimeline: "Enable local timeline" enableLocalTimeline: "Enable local timeline"
enableGlobalTimeline: "Enable global timeline" enableGlobalTimeline: "Enable global timeline"
enableRecommendedTimeline: "Enable recommended timeline" enableRecommendedTimeline: "Enable recommended timeline"
disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all disablingTimelinesInfo:
"Adminstrators and Moderators will always have access to all
timelines, even if they are not enabled." timelines, even if they are not enabled."
registration: "Register" registration: "Register"
enableRegistration: "Enable new user registration" enableRegistration: "Enable new user registration"
@ -389,10 +407,12 @@ bannerUrl: "Banner image URL"
backgroundImageUrl: "Background image URL" backgroundImageUrl: "Background image URL"
basicInfo: "Basic info" basicInfo: "Basic info"
pinnedUsers: "Pinned users" pinnedUsers: "Pinned users"
pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the pinnedUsersDescription:
\"Explore\" tab." 'List usernames separated by line breaks to be pinned in the
"Explore" tab.'
pinnedPages: "Pinned Pages" pinnedPages: "Pinned Pages"
pinnedPagesDescription: "Enter the paths of the Pages you want to pin to the top page pinnedPagesDescription:
"Enter the paths of the Pages you want to pin to the top page
of this server, separated by line breaks." of this server, separated by line breaks."
pinnedClipId: "ID of the clip to pin" pinnedClipId: "ID of the clip to pin"
pinnedNotes: "Pinned posts" pinnedNotes: "Pinned posts"
@ -404,7 +424,8 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Enable reCAPTCHA" enableRecaptcha: "Enable reCAPTCHA"
recaptchaSiteKey: "Site key" recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key" recaptchaSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interference between avoidMultiCaptchaConfirm:
"Using multiple Captcha systems may cause interference between
them. Would you like to disable the other Captcha systems currently active? If you them. Would you like to disable the other Captcha systems currently active? If you
would like them to stay enabled, press cancel." would like them to stay enabled, press cancel."
antennas: "Antennas" antennas: "Antennas"
@ -414,7 +435,8 @@ name: "Name"
antennaSource: "Antenna source" antennaSource: "Antenna source"
antennaKeywords: "Keywords to listen to" antennaKeywords: "Keywords to listen to"
antennaExcludeKeywords: "Keywords to exclude" antennaExcludeKeywords: "Keywords to exclude"
antennaKeywordsDescription: "Separate with spaces for an AND condition or with line antennaKeywordsDescription:
"Separate with spaces for an AND condition or with line
breaks for an OR condition." breaks for an OR condition."
notifyAntenna: "Notify about new posts" notifyAntenna: "Notify about new posts"
withFileAntenna: "Only posts with files" withFileAntenna: "Only posts with files"
@ -453,7 +475,7 @@ lastUsed: "Last used"
unregister: "Unregister" unregister: "Unregister"
passwordLessLogin: "Password-less login" passwordLessLogin: "Password-less login"
resetPassword: "Reset password" resetPassword: "Reset password"
newPasswordIs: "The new password is \"{password}\"" newPasswordIs: 'The new password is "{password}"'
reduceUiAnimation: "Reduce UI animations" reduceUiAnimation: "Reduce UI animations"
share: "Share" share: "Share"
notFound: "Not found" notFound: "Not found"
@ -546,7 +568,8 @@ showFeaturedNotesInTimeline: "Show featured posts in timelines"
objectStorage: "Object Storage" objectStorage: "Object Storage"
useObjectStorage: "Use object storage" useObjectStorage: "Use object storage"
objectStorageBaseUrl: "Base URL" objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "The URL used as reference. Specify the URL of your CDN objectStorageBaseUrlDesc:
"The URL used as reference. Specify the URL of your CDN
or Proxy if you are using either.\nFor S3 use 'https://<bucket>.s3.amazonaws.com' or Proxy if you are using either.\nFor S3 use 'https://<bucket>.s3.amazonaws.com'
and for GCS or equivalent services use 'https://storage.googleapis.com/<bucket>', and for GCS or equivalent services use 'https://storage.googleapis.com/<bucket>',
etc." etc."
@ -555,18 +578,22 @@ objectStorageBucketDesc: "Please specify the bucket name used at your provider."
objectStoragePrefix: "Prefix" objectStoragePrefix: "Prefix"
objectStoragePrefixDesc: "Files will be stored under directories with this prefix." objectStoragePrefixDesc: "Files will be stored under directories with this prefix."
objectStorageEndpoint: "Endpoint" objectStorageEndpoint: "Endpoint"
objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify objectStorageEndpointDesc:
"Leave this empty if you are using AWS S3, otherwise specify
the endpoint as '<host>' or '<host>:<port>', depending on the service you are using." the endpoint as '<host>' or '<host>:<port>', depending on the service you are using."
objectStorageRegion: "Region" objectStorageRegion: "Region"
objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does objectStorageRegionDesc:
"Specify a region like 'xx-east-1'. If your service does
not distinguish between regions, leave this blank or enter 'us-east-1'." not distinguish between regions, leave this blank or enter 'us-east-1'."
objectStorageUseSSL: "Use SSL" objectStorageUseSSL: "Use SSL"
objectStorageUseSSLDesc: "Turn this off if you are not going to use HTTPS for API objectStorageUseSSLDesc:
"Turn this off if you are not going to use HTTPS for API
connections" connections"
objectStorageUseProxy: "Connect over Proxy" objectStorageUseProxy: "Connect over Proxy"
objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for objectStorageUseProxyDesc:
"Turn this off if you are not going to use a Proxy for
API connections" API connections"
objectStorageSetPublicRead: "Set \"public-read\" on upload" objectStorageSetPublicRead: 'Set "public-read" on upload'
serverLogs: "Server logs" serverLogs: "Server logs"
deleteAll: "Delete all" deleteAll: "Delete all"
showFixedPostForm: "Display the posting form at the top of the timeline" showFixedPostForm: "Display the posting form at the top of the timeline"
@ -593,7 +620,8 @@ sort: "Sort"
ascendingOrder: "Ascending" ascendingOrder: "Ascending"
descendingOrder: "Descending" descendingOrder: "Descending"
scratchpad: "Scratchpad" scratchpad: "Scratchpad"
scratchpadDescription: "The scratchpad provides an environment for AiScript experiments. scratchpadDescription:
"The scratchpad provides an environment for AiScript experiments.
You can write, execute, and check the results of it interacting with Calckey in You can write, execute, and check the results of it interacting with Calckey in
it." it."
output: "Output" output: "Output"
@ -605,12 +633,14 @@ updateRemoteUser: "Update remote user information"
deleteAllFiles: "Delete all files" deleteAllFiles: "Delete all files"
deleteAllFilesConfirm: "Are you sure that you want to delete all files?" deleteAllFilesConfirm: "Are you sure that you want to delete all files?"
removeAllFollowing: "Unfollow all followed users" removeAllFollowing: "Unfollow all followed users"
removeAllFollowingDescription: "Executing this unfollows all accounts from {host}. removeAllFollowingDescription:
"Executing this unfollows all accounts from {host}.
Please run this if the server e.g. no longer exists." Please run this if the server e.g. no longer exists."
userSuspended: "This user has been suspended." userSuspended: "This user has been suspended."
userSilenced: "This user is being silenced." userSilenced: "This user is being silenced."
yourAccountSuspendedTitle: "This account is suspended" yourAccountSuspendedTitle: "This account is suspended"
yourAccountSuspendedDescription: "This account has been suspended due to breaking yourAccountSuspendedDescription:
"This account has been suspended due to breaking
the server's terms of services or similar. Contact the administrator if you would the server's terms of services or similar. Contact the administrator if you would
like to know a more detailed reason. Please do not create a new account." like to know a more detailed reason. Please do not create a new account."
menu: "Menu" menu: "Menu"
@ -653,13 +683,15 @@ permission: "Permissions"
enableAll: "Enable all" enableAll: "Enable all"
disableAll: "Disable all" disableAll: "Disable all"
tokenRequested: "Grant access to account" tokenRequested: "Grant access to account"
pluginTokenRequestedDescription: "This plugin will be able to use the permissions pluginTokenRequestedDescription:
"This plugin will be able to use the permissions
set here." set here."
notificationType: "Notification type" notificationType: "Notification type"
edit: "Edit" edit: "Edit"
emailServer: "Email server" emailServer: "Email server"
enableEmail: "Enable email distribution" enableEmail: "Enable email distribution"
emailConfigInfo: "Used to confirm your email during sign-up or if you forget your emailConfigInfo:
"Used to confirm your email during sign-up or if you forget your
password" password"
email: "Email" email: "Email"
emailAddress: "Email address" emailAddress: "Email address"
@ -674,7 +706,8 @@ smtpSecureInfo: "Turn this off when using STARTTLS"
testEmail: "Test email delivery" testEmail: "Test email delivery"
wordMute: "Word mute" wordMute: "Word mute"
regexpError: "Regular Expression error" regexpError: "Regular Expression error"
regexpErrorDescription: "An error occurred in the regular expression on line {line} regexpErrorDescription:
"An error occurred in the regular expression on line {line}
of your {tab} word mutes:" of your {tab} word mutes:"
instanceMute: "Server Mutes" instanceMute: "Server Mutes"
userSaysSomething: "{name} said something" userSaysSomething: "{name} said something"
@ -696,11 +729,13 @@ create: "Create"
notificationSetting: "Notification settings" notificationSetting: "Notification settings"
notificationSettingDesc: "Select the types of notification to display." notificationSettingDesc: "Select the types of notification to display."
useGlobalSetting: "Use global settings" useGlobalSetting: "Use global settings"
useGlobalSettingDesc: "If turned on, your account's notification settings will be useGlobalSettingDesc:
"If turned on, your account's notification settings will be
used. If turned off, individual configurations can be made." used. If turned off, individual configurations can be made."
other: "Other" other: "Other"
regenerateLoginToken: "Regenerate login token" regenerateLoginToken: "Regenerate login token"
regenerateLoginTokenDescription: "Regenerates the token used internally during login. regenerateLoginTokenDescription:
"Regenerates the token used internally during login.
Normally this action is not necessary. If regenerated, all devices will be logged Normally this action is not necessary. If regenerated, all devices will be logged
out." out."
setMultipleBySeparatingWithSpace: "Separate multiple entries with spaces." setMultipleBySeparatingWithSpace: "Separate multiple entries with spaces."
@ -710,14 +745,16 @@ sample: "Sample"
abuseReports: "Reports" abuseReports: "Reports"
reportAbuse: "Report" reportAbuse: "Report"
reportAbuseOf: "Report {name}" reportAbuseOf: "Report {name}"
fillAbuseReportDescription: "Please fill in details regarding this report. If it is fillAbuseReportDescription:
"Please fill in details regarding this report. If it is
about a specific post, please include its URL." about a specific post, please include its URL."
abuseReported: "Your report has been sent. Thank you very much." abuseReported: "Your report has been sent. Thank you very much."
reporter: "Reporter" reporter: "Reporter"
reporteeOrigin: "Reportee Origin" reporteeOrigin: "Reportee Origin"
reporterOrigin: "Reporter Origin" reporterOrigin: "Reporter Origin"
forwardReport: "Forward report to remote server" forwardReport: "Forward report to remote server"
forwardReportIsAnonymous: "Instead of your account, an anonymous system account will forwardReportIsAnonymous:
"Instead of your account, an anonymous system account will
be displayed as reporter at the remote server." be displayed as reporter at the remote server."
send: "Send" send: "Send"
abuseMarkAsResolved: "Mark report as resolved" abuseMarkAsResolved: "Mark report as resolved"
@ -736,10 +773,12 @@ createNew: "Create new"
optional: "Optional" optional: "Optional"
createNewClip: "Create new clip" createNewClip: "Create new clip"
unclip: "Unclip" unclip: "Unclip"
confirmToUnclipAlreadyClippedNote: "This post is already part of the \"{name}\" clip. confirmToUnclipAlreadyClippedNote:
Do you want to remove it from this clip instead?" 'This post is already part of the "{name}" clip.
Do you want to remove it from this clip instead?'
public: "Public" public: "Public"
i18nInfo: "Calckey is being translated into various languages by volunteers. You can i18nInfo:
"Calckey is being translated into various languages by volunteers. You can
help at {link}." help at {link}."
manageAccessTokens: "Manage access tokens" manageAccessTokens: "Manage access tokens"
accountInfo: "Account Info" accountInfo: "Account Info"
@ -759,14 +798,16 @@ no: "No"
driveFilesCount: "Number of Drive files" driveFilesCount: "Number of Drive files"
driveUsage: "Drive space usage" driveUsage: "Drive space usage"
noCrawle: "Reject crawler indexing" noCrawle: "Reject crawler indexing"
noCrawleDescription: "Ask search engines to not index your profile page, posts, Pages, noCrawleDescription:
"Ask search engines to not index your profile page, posts, Pages,
etc." etc."
lockedAccountInfo: "Unless you set your post visiblity to \"Followers only\", your lockedAccountInfo: 'Unless you set your post visiblity to "Followers only", your
posts will be visible to anyone, even if you require followers to be manually approved." posts will be visible to anyone, even if you require followers to be manually approved.'
alwaysMarkSensitive: "Mark as NSFW by default" alwaysMarkSensitive: "Mark as NSFW by default"
loadRawImages: "Load original images instead of showing thumbnails" loadRawImages: "Load original images instead of showing thumbnails"
disableShowingAnimatedImages: "Don't play animated images" disableShowingAnimatedImages: "Don't play animated images"
verificationEmailSent: "A verification email has been sent. Please follow the included verificationEmailSent:
"A verification email has been sent. Please follow the included
link to complete verification." link to complete verification."
notSet: "Not set" notSet: "Not set"
emailVerified: "Email has been verified" emailVerified: "Email has been verified"
@ -779,9 +820,10 @@ clips: "Clips"
clipsDesc: "Clips are like share-able categorized bookmarks. You can create clips from the menu of individual posts." clipsDesc: "Clips are like share-able categorized bookmarks. You can create clips from the menu of individual posts."
experimentalFeatures: "Experimental features" experimentalFeatures: "Experimental features"
developer: "Developer" developer: "Developer"
makeExplorable: "Make account visible in \"Explore\"" makeExplorable: 'Make account visible in "Explore"'
makeExplorableDescription: "If you turn this off, your account will not show up in makeExplorableDescription:
the \"Explore\" section." 'If you turn this off, your account will not show up in
the "Explore" section.'
showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline" showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline"
duplicate: "Duplicate" duplicate: "Duplicate"
left: "Left" left: "Left"
@ -796,7 +838,8 @@ onlineUsersCount: "{n} users are online"
nUsers: "{n} Users" nUsers: "{n} Users"
nNotes: "{n} Posts" nNotes: "{n} Posts"
sendErrorReports: "Send error reports" sendErrorReports: "Send error reports"
sendErrorReportsDescription: "When turned on, detailed error information will be shared sendErrorReportsDescription:
"When turned on, detailed error information will be shared
with Calckey when a problem occurs, helping to improve the quality of Calckey.\n with Calckey when a problem occurs, helping to improve the quality of Calckey.\n
This will include information such the version of your OS, what browser you're using, This will include information such the version of your OS, what browser you're using,
your activity in Calckey, etc." your activity in Calckey, etc."
@ -838,16 +881,19 @@ unlikeConfirm: "Really remove your like?"
fullView: "Full view" fullView: "Full view"
quitFullView: "Exit full view" quitFullView: "Exit full view"
addDescription: "Add description" addDescription: "Add description"
userPagePinTip: "You can display posts here by selecting \"Pin to profile\" from the userPagePinTip:
menu of individual posts." 'You can display posts here by selecting "Pin to profile" from the
notSpecifiedMentionWarning: "This post contains mentions of users not included as menu of individual posts.'
notSpecifiedMentionWarning:
"This post contains mentions of users not included as
recipients" recipients"
info: "About" info: "About"
userInfo: "User information" userInfo: "User information"
unknown: "Unknown" unknown: "Unknown"
onlineStatus: "Online status" onlineStatus: "Online status"
hideOnlineStatus: "Hide online status" hideOnlineStatus: "Hide online status"
hideOnlineStatusDescription: "Hiding your online status reduces the convenience of hideOnlineStatusDescription:
"Hiding your online status reduces the convenience of
some features such as the search." some features such as the search."
online: "Online" online: "Online"
active: "Active" active: "Active"
@ -885,14 +931,17 @@ secureMode: "Secure Mode (Authorized Fetch)"
instanceSecurity: "Server Security" instanceSecurity: "Server Security"
secureModeInfo: "When requesting from other servers, do not send back without proof." secureModeInfo: "When requesting from other servers, do not send back without proof."
privateMode: "Private Mode" privateMode: "Private Mode"
privateModeInfo: "When enabled, only whitelisted servers can federate with your server. privateModeInfo:
"When enabled, only whitelisted servers can federate with your server.
All posts will be hidden from the public." All posts will be hidden from the public."
allowedInstances: "Whitelisted Servers" allowedInstances: "Whitelisted Servers"
allowedInstancesDescription: "Hosts of servers to be whitelisted for federation, each allowedInstancesDescription:
"Hosts of servers to be whitelisted for federation, each
separated by a new line (only applies in private mode)." separated by a new line (only applies in private mode)."
previewNoteText: "Show preview" previewNoteText: "Show preview"
customCss: "Custom CSS" customCss: "Custom CSS"
customCssWarn: "This setting should only be used if you know what it does. Entering customCssWarn:
"This setting should only be used if you know what it does. Entering
improper values may cause the client to stop functioning normally." improper values may cause the client to stop functioning normally."
global: "Global" global: "Global"
recommended: "Recommended" recommended: "Recommended"
@ -910,7 +959,8 @@ whatIsNew: "Show changes"
translate: "Translate" translate: "Translate"
translatedFrom: "Translated from {x}" translatedFrom: "Translated from {x}"
accountDeletionInProgress: "Account deletion is currently in progress" accountDeletionInProgress: "Account deletion is currently in progress"
usernameInfo: "A name that identifies your account from others on this server. You usernameInfo:
"A name that identifies your account from others on this server. You
can use the alphabet (a~z, A~Z), digits (0~9) or underscores (_). Usernames cannot can use the alphabet (a~z, A~Z), digits (0~9) or underscores (_). Usernames cannot
be changed later." be changed later."
aiChanMode: "Ai-chan in Classic UI" aiChanMode: "Ai-chan in Classic UI"
@ -929,24 +979,26 @@ filter: "Filter"
controlPanel: "Control Panel" controlPanel: "Control Panel"
manageAccounts: "Manage Accounts" manageAccounts: "Manage Accounts"
makeReactionsPublic: "Set reaction history to public" makeReactionsPublic: "Set reaction history to public"
makeReactionsPublicDescription: "This will make the list of all your past reactions makeReactionsPublicDescription:
"This will make the list of all your past reactions
publicly visible." publicly visible."
classic: "Centered" classic: "Centered"
muteThread: "Mute thread" muteThread: "Mute thread"
unmuteThread: "Unmute thread" unmuteThread: "Unmute thread"
ffVisibility: "Follows/Followers Visibility" ffVisibility: "Follows/Followers Visibility"
ffVisibilityDescription: "Allows you to configure who can see who you follow and who ffVisibilityDescription:
"Allows you to configure who can see who you follow and who
follows you." follows you."
continueThread: "Continue thread" continueThread: "Continue thread"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
incorrectPassword: "Incorrect password." incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?" voteConfirm: 'Confirm your vote for "{choice}"?'
hide: "Hide" hide: "Hide"
altText: "Alt text" altText: "Alt text"
noAltText: "No alt text" noAltText: "No alt text"
noAltTextDescription: "This image does not have alt text. Alt text is useful for vision impaired users, as well as for everyone else for context." noAltTextDescription: "This image does not have alt text. Alt text is useful for vision impaired users, as well as for everyone else for context."
leaveGroup: "Leave group" leaveGroup: "Leave group"
leaveGroupConfirm: "Are you sure you want to leave \"{name}\"?" leaveGroupConfirm: 'Are you sure you want to leave "{name}"?'
useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile" useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile"
welcomeBackWithName: "Welcome back, {name}" welcomeBackWithName: "Welcome back, {name}"
clickToFinishEmailVerification: "Please click [{ok}] to complete email verification." clickToFinishEmailVerification: "Please click [{ok}] to complete email verification."
@ -982,17 +1034,20 @@ noEmailServerWarning: "Email server not configured."
thereIsUnresolvedAbuseReportWarning: "There are unsolved reports." thereIsUnresolvedAbuseReportWarning: "There are unsolved reports."
check: "Check" check: "Check"
driveCapOverrideLabel: "Change the drive capacity for this user" driveCapOverrideLabel: "Change the drive capacity for this user"
driveCapOverrideCaption: "Reset the capacity to default by inputting a value of 0 driveCapOverrideCaption:
"Reset the capacity to default by inputting a value of 0
or lower." or lower."
requireAdminForView: "You must log in with an administrator account to view this." requireAdminForView: "You must log in with an administrator account to view this."
isSystemAccount: "This account is created and automatically operated by the system. isSystemAccount:
"This account is created and automatically operated by the system.
Please do not moderate, edit, delete, or otherwise tamper with this account, or Please do not moderate, edit, delete, or otherwise tamper with this account, or
it may break your server." it may break your server."
typeToConfirm: "Please enter {x} to confirm" typeToConfirm: "Please enter {x} to confirm"
deleteAccount: "Delete account" deleteAccount: "Delete account"
document: "Documentation" document: "Documentation"
numberOfPageCache: "Number of cached pages" numberOfPageCache: "Number of cached pages"
numberOfPageCacheDescription: "Increasing this number will improve convenience for numberOfPageCacheDescription:
"Increasing this number will improve convenience for
users but cause more server load as well as more memory to be used." users but cause more server load as well as more memory to be used."
logoutConfirm: "Really log out?" logoutConfirm: "Really log out?"
lastActiveDate: "Last used at" lastActiveDate: "Last used at"
@ -1010,17 +1065,21 @@ sensitiveMediaDetection: "Detection of NSFW media"
localOnly: "Local only" localOnly: "Local only"
remoteOnly: "Remote only" remoteOnly: "Remote only"
failedToUpload: "Upload failed" failedToUpload: "Upload failed"
cannotUploadBecauseInappropriate: "This file could not be uploaded because parts of cannotUploadBecauseInappropriate:
"This file could not be uploaded because parts of
it have been detected as potentially NSFW." it have been detected as potentially NSFW."
cannotUploadBecauseNoFreeSpace: "Upload failed due to lack of Drive capacity." cannotUploadBecauseNoFreeSpace: "Upload failed due to lack of Drive capacity."
cannotUploadBecauseExceedsFileSizeLimit: "This file could not be uploaded because cannotUploadBecauseExceedsFileSizeLimit:
"This file could not be uploaded because
it exceeds the maximum allowed size." it exceeds the maximum allowed size."
beta: "Beta" beta: "Beta"
enableAutoSensitive: "Automatic NSFW-Marking" enableAutoSensitive: "Automatic NSFW-Marking"
enableAutoSensitiveDescription: "Allows automatic detection and marking of NSFW media enableAutoSensitiveDescription:
"Allows automatic detection and marking of NSFW media
through Machine Learning where possible. Even if this option is disabled, it may through Machine Learning where possible. Even if this option is disabled, it may
be enabled server-wide." be enabled server-wide."
activeEmailValidationDescription: "Enables stricter validation of email addresses, activeEmailValidationDescription:
"Enables stricter validation of email addresses,
which includes checking for disposable addresses and by whether it can actually which includes checking for disposable addresses and by whether it can actually
be communicated with. When unchecked, only the format of the email is validated." be communicated with. When unchecked, only the format of the email is validated."
navbar: "Navigation bar" navbar: "Navigation bar"
@ -1032,26 +1091,32 @@ subscribePushNotification: "Enable push notifications"
unsubscribePushNotification: "Disable push notifications" unsubscribePushNotification: "Disable push notifications"
pushNotificationAlreadySubscribed: "Push notifications are already enabled" pushNotificationAlreadySubscribed: "Push notifications are already enabled"
pushNotificationNotSupported: "Your browser or server does not support push notifications" pushNotificationNotSupported: "Your browser or server does not support push notifications"
sendPushNotificationReadMessage: "Delete push notifications once the relevant notifications sendPushNotificationReadMessage:
"Delete push notifications once the relevant notifications
or messages have been read" or messages have been read"
sendPushNotificationReadMessageCaption: "A notification containing the text \"{emptyPushNotificationMessage}\"\ sendPushNotificationReadMessageCaption:
"A notification containing the text \"{emptyPushNotificationMessage}\"\
\ will be displayed for a short time. This may increase the battery usage of your \ will be displayed for a short time. This may increase the battery usage of your
device, if applicable." device, if applicable."
showAds: "Show ads" showAds: "Show ads"
enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)" enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)"
adminCustomCssWarn: "This setting should only be used if you know what it does. Entering adminCustomCssWarn:
"This setting should only be used if you know what it does. Entering
improper values may cause EVERYONE'S clients to stop functioning normally. Please improper values may cause EVERYONE'S clients to stop functioning normally. Please
ensure your CSS works properly by testing it in your user settings." ensure your CSS works properly by testing it in your user settings."
customMOTD: "Custom MOTD (splash screen messages)" customMOTD: "Custom MOTD (splash screen messages)"
customMOTDDescription: "Custom messages for the MOTD (splash screen) separated by customMOTDDescription:
"Custom messages for the MOTD (splash screen) separated by
line breaks to be shown randomly every time a user loads/reloads the page." line breaks to be shown randomly every time a user loads/reloads the page."
customSplashIcons: "Custom splash screen icons (urls)" customSplashIcons: "Custom splash screen icons (urls)"
customSplashIconsDescription: "URLs for custom splash screen icons separated by line customSplashIconsDescription:
"URLs for custom splash screen icons separated by line
breaks to be shown randomly every time a user loads/reloads the page. Please make breaks to be shown randomly every time a user loads/reloads the page. Please make
sure the images are on a static URL, preferably all resized to 192x192." sure the images are on a static URL, preferably all resized to 192x192."
showUpdates: "Show a popup when Calckey updates" showUpdates: "Show a popup when Calckey updates"
recommendedInstances: "Recommended servers" recommendedInstances: "Recommended servers"
recommendedInstancesDescription: "Recommended servers separated by line breaks to recommendedInstancesDescription:
"Recommended servers separated by line breaks to
appear in the recommended timeline. Do NOT add `https://`, ONLY the domain." appear in the recommended timeline. Do NOT add `https://`, ONLY the domain."
caption: "Auto Caption" caption: "Auto Caption"
splash: "Splash Screen" splash: "Splash Screen"
@ -1064,15 +1129,18 @@ migration: "Migration"
moveTo: "Move current account to new account" moveTo: "Move current account to new account"
moveToLabel: "Account you're moving to:" moveToLabel: "Account you're moving to:"
moveAccount: "Move account!" moveAccount: "Move account!"
moveAccountDescription: "This process is irreversible. Make sure you've set up an moveAccountDescription:
"This process is irreversible. Make sure you've set up an
alias for this account on your new account before moving. Please enter the tag of alias for this account on your new account before moving. Please enter the tag of
the account formatted like @person@server.com" the account formatted like @person@server.com"
moveFrom: "Move to this account from an older account" moveFrom: "Move to this account from an older account"
moveFromLabel: "Account you're moving from:" moveFromLabel: "Account you're moving from:"
moveFromDescription: "This will set an alias of your old account so that you can move moveFromDescription:
"This will set an alias of your old account so that you can move
from that account to this current one. Do this BEFORE moving from your older account. from that account to this current one. Do this BEFORE moving from your older account.
Please enter the tag of the account formatted like @person@server.com" Please enter the tag of the account formatted like @person@server.com"
migrationConfirm: "Are you absolutely sure you want to migrate your account to {account}? migrationConfirm:
"Are you absolutely sure you want to migrate your account to {account}?
Once you do this, you won't be able to reverse it, and you won't be able to use Once you do this, you won't be able to reverse it, and you won't be able to use
your account normally again.\nAlso, please ensure that you've set this current account your account normally again.\nAlso, please ensure that you've set this current account
as the account you're moving from." as the account you're moving from."
@ -1081,10 +1149,12 @@ license: "License"
indexPosts: "Index Posts" indexPosts: "Index Posts"
indexFrom: "Index from Post ID onwards" indexFrom: "Index from Post ID onwards"
indexFromDescription: "Leave blank to index every post" indexFromDescription: "Leave blank to index every post"
indexNotice: "Now indexing. This will probably take a while, please don't restart\ indexNotice:
"Now indexing. This will probably take a while, please don't restart\
\ your server for at least an hour." \ your server for at least an hour."
customKaTeXMacro: "Custom KaTeX macros" customKaTeXMacro: "Custom KaTeX macros"
customKaTeXMacroDescription: "Set up macros to write mathematical expressions easily! customKaTeXMacroDescription:
"Set up macros to write mathematical expressions easily!
The notation conforms to the LaTeX command definitions and is written as \\newcommand{\\ The notation conforms to the LaTeX command definitions and is written as \\newcommand{\\
name}{content} or \\newcommand{\\name}[number of arguments]{content}. For example, name}{content} or \\newcommand{\\name}[number of arguments]{content}. For example,
\\newcommand{\\add}[2]{#1 + #2} will expand \\add{3}{foo} to 3 + foo. The curly \\newcommand{\\add}[2]{#1 + #2} will expand \\add{3}{foo} to 3 + foo. The curly
@ -1095,18 +1165,22 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea
advanced syntax, such as conditional branching, cannot be used here." advanced syntax, such as conditional branching, cannot be used here."
enableCustomKaTeXMacro: "Enable custom KaTeX macros" enableCustomKaTeXMacro: "Enable custom KaTeX macros"
noteId: "Post ID" noteId: "Post ID"
signupsDisabled: "Signups on this server are currently disabled, but you can always 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 sign up at another server! If you have an invitation code for this server, please
enter it below." enter it below."
findOtherInstance: "Find another server" findOtherInstance: "Find another server"
apps: "Apps" apps: "Apps"
sendModMail: "Send Moderation Notice" sendModMail: "Send Moderation Notice"
preventAiLearning: "Prevent AI bot scraping" preventAiLearning: "Prevent AI bot scraping"
preventAiLearningDescription: "Request third-party AI language models not to study preventAiLearningDescription:
"Request third-party AI language models not to study
content you upload, such as posts and images." content you upload, such as posts and images."
noGraze: "Please disable the \"Graze for Mastodon\" browser extension, as it interferes noGraze:
with Calckey." 'Please disable the "Graze for Mastodon" browser extension, as it interferes
silencedWarning: "This page is showing because these users are from servers your admin with Calckey.'
silencedWarning:
"This page is showing because these users are from servers your admin
silenced, so they may potentially be spam." silenced, so they may potentially be spam."
isBot: "This account is a bot" isBot: "This account is a bot"
isLocked: "This account has follow approvals" isLocked: "This account has follow approvals"
@ -1116,17 +1190,21 @@ isPatron: "Calckey Patron"
reactionPickerSkinTone: "Preferred emoji skin tone" reactionPickerSkinTone: "Preferred emoji skin tone"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "Reduces the effort of server moderation through automatically recognizing description:
"Reduces the effort of server moderation through automatically recognizing
NSFW media via Machine Learning. This will slightly increase the load on the server." NSFW media via Machine Learning. This will slightly increase the load on the server."
sensitivity: "Detection sensitivity" sensitivity: "Detection sensitivity"
sensitivityDescription: "Reducing the sensitivity will lead to fewer misdetections sensitivityDescription:
"Reducing the sensitivity will lead to fewer misdetections
(false positives) whereas increasing it will lead to fewer missed detections (false (false positives) whereas increasing it will lead to fewer missed detections (false
negatives)." negatives)."
setSensitiveFlagAutomatically: "Mark as NSFW" setSensitiveFlagAutomatically: "Mark as NSFW"
setSensitiveFlagAutomaticallyDescription: "The results of the internal detection setSensitiveFlagAutomaticallyDescription:
"The results of the internal detection
will be retained even if this option is turned off." will be retained even if this option is turned off."
analyzeVideos: "Enable analysis of videos" analyzeVideos: "Enable analysis of videos"
analyzeVideosDescription: "Analyzes videos in addition to images. This will slightly analyzeVideosDescription:
"Analyzes videos in addition to images. This will slightly
increase the load on the server." increase the load on the server."
_emailUnavailable: _emailUnavailable:
used: "This email address is already being used" used: "This email address is already being used"
@ -1141,14 +1219,17 @@ _ffVisibility:
_signup: _signup:
almostThere: "Almost there" almostThere: "Almost there"
emailAddressInfo: "Please enter your email address. It will not be made public." emailAddressInfo: "Please enter your email address. It will not be made public."
emailSent: "A confirmation email has been sent to your email address ({email}). emailSent:
"A confirmation email has been sent to your email address ({email}).
Please click the included link to complete account creation." Please click the included link to complete account creation."
_accountDelete: _accountDelete:
accountDelete: "Delete account" accountDelete: "Delete account"
mayTakeTime: "As account deletion is a resource-heavy process, it may take some mayTakeTime:
"As account deletion is a resource-heavy process, it may take some
time to complete depending on how much content you have created and how many files time to complete depending on how much content you have created and how many files
you have uploaded." you have uploaded."
sendEmail: "Once account deletion has been completed, an email will be sent to the sendEmail:
"Once account deletion has been completed, an email will be sent to the
email address registered to this account." email address registered to this account."
requestAccountDelete: "Request account deletion" requestAccountDelete: "Request account deletion"
started: "Deletion has been started." started: "Deletion has been started."
@ -1157,11 +1238,14 @@ _ad:
back: "Back" back: "Back"
reduceFrequencyOfThisAd: "Show this ad less" reduceFrequencyOfThisAd: "Show this ad less"
_forgotPassword: _forgotPassword:
enterEmail: "Enter the email address you used to register. A link with which you enterEmail:
"Enter the email address you used to register. A link with which you
can reset your password will then be sent to it." can reset your password will then be sent to it."
ifNoEmail: "If you did not use an email during registration, please contact the ifNoEmail:
"If you did not use an email during registration, please contact the
server administrator instead." server administrator instead."
contactAdmin: "This server does not support using email addresses, please contact contactAdmin:
"This server does not support using email addresses, please contact
the server administrator to reset your password instead." the server administrator to reset your password instead."
_gallery: _gallery:
my: "My Gallery" my: "My Gallery"
@ -1185,15 +1269,17 @@ _preferencesBackups:
save: "Save changes" save: "Save changes"
inputName: "Please enter a name for this backup" inputName: "Please enter a name for this backup"
cannotSave: "Saving failed" cannotSave: "Saving failed"
nameAlreadyExists: "A backup called \"{name}\" already exists. Please enter a different nameAlreadyExists:
name." 'A backup called "{name}" already exists. Please enter a different
applyConfirm: "Do you really want to apply the \"{name}\" backup to this device? name.'
Existing settings of this device will be overwritten." applyConfirm: 'Do you really want to apply the "{name}" backup to this device?
Existing settings of this device will be overwritten.'
saveConfirm: "Save backup as {name}?" saveConfirm: "Save backup as {name}?"
deleteConfirm: "Delete the {name} backup?" deleteConfirm: "Delete the {name} backup?"
renameConfirm: "Rename this backup from \"{old}\" to \"{new}\"?" renameConfirm: 'Rename this backup from "{old}" to "{new}"?'
noBackups: "No backups exist. You may backup your client settings on this server noBackups:
by using \"Create new backup\"." 'No backups exist. You may backup your client settings on this server
by using "Create new backup".'
createdAt: "Created at: {date} {time}" createdAt: "Created at: {date} {time}"
updatedAt: "Updated at: {date} {time}" updatedAt: "Updated at: {date} {time}"
cannotLoad: "Loading failed" cannotLoad: "Loading failed"
@ -1211,7 +1297,8 @@ _aboutMisskey:
source: "Source code" source: "Source code"
translation: "Translate Calckey" translation: "Translate Calckey"
donate: "Donate to Calckey" donate: "Donate to Calckey"
morePatrons: "We also appreciate the support of many other helpers not listed here. morePatrons:
"We also appreciate the support of many other helpers not listed here.
Thank you! 🥰" Thank you! 🥰"
patrons: "Calckey patrons" patrons: "Calckey patrons"
_nsfw: _nsfw:
@ -1224,7 +1311,8 @@ _mfm:
warn: "MFM may contain rapidly moving or flashy animations" warn: "MFM may contain rapidly moving or flashy animations"
alwaysPlay: "Always autoplay all animated MFM" alwaysPlay: "Always autoplay all animated MFM"
cheatSheet: "MFM Cheatsheet" cheatSheet: "MFM Cheatsheet"
intro: "MFM is a markup language used on Misskey, Calckey, Akkoma, and more that intro:
"MFM is a markup language used on Misskey, Calckey, Akkoma, and more that
can be used in many places. Here you can view a list of all available MFM syntax." can be used in many places. Here you can view a list of all available MFM syntax."
dummy: "Calckey expands the world of the Fediverse" dummy: "Calckey expands the world of the Fediverse"
advanced: "Advanced MFM" advanced: "Advanced MFM"
@ -1246,7 +1334,8 @@ _mfm:
inlineCode: "Code (Inline)" inlineCode: "Code (Inline)"
inlineCodeDescription: "Displays inline syntax highlighting for (program) code." inlineCodeDescription: "Displays inline syntax highlighting for (program) code."
blockCode: "Code (Block)" blockCode: "Code (Block)"
blockCodeDescription: "Displays syntax highlighting for multi-line (program) code blockCodeDescription:
"Displays syntax highlighting for multi-line (program) code
in a block." in a block."
inlineMath: "Math (Inline)" inlineMath: "Math (Inline)"
inlineMathDescription: "Display math formulas (KaTeX) in-line" inlineMathDescription: "Display math formulas (KaTeX) in-line"
@ -1255,7 +1344,8 @@ _mfm:
quote: "Quote" quote: "Quote"
quoteDescription: "Displays content as a quote." quoteDescription: "Displays content as a quote."
emoji: "Custom Emoji" emoji: "Custom Emoji"
emojiDescription: "By surrounding a custom emoji name with colons, custom emoji emojiDescription:
"By surrounding a custom emoji name with colons, custom emoji
can be displayed." can be displayed."
search: "Search" search: "Search"
searchDescription: "Displays a search box with pre-entered text." searchDescription: "Displays a search box with pre-entered text."
@ -1264,7 +1354,7 @@ _mfm:
jelly: "Animation (Jelly)" jelly: "Animation (Jelly)"
jellyDescription: "Gives content a jelly-like animation." jellyDescription: "Gives content a jelly-like animation."
tada: "Animation (Tada)" tada: "Animation (Tada)"
tadaDescription: "Gives content a \"Tada!\"-like animation." tadaDescription: 'Gives content a "Tada!"-like animation.'
jump: "Animation (Jump)" jump: "Animation (Jump)"
jumpDescription: "Gives content a jumping animation." jumpDescription: "Gives content a jumping animation."
bounce: "Animation (Bounce)" bounce: "Animation (Bounce)"
@ -1304,7 +1394,8 @@ _mfm:
background: "Background color" background: "Background color"
backgroundDescription: "Change the background color of text." backgroundDescription: "Change the background color of text."
plain: "Plain" plain: "Plain"
plainDescription: "Deactivates the effects of all MFM contained within this MFM plainDescription:
"Deactivates the effects of all MFM contained within this MFM
effect." effect."
_instanceTicker: _instanceTicker:
none: "Never show" none: "Never show"
@ -1337,18 +1428,21 @@ _menuDisplay:
hide: "Hide" hide: "Hide"
_wordMute: _wordMute:
muteWords: "Muted words" muteWords: "Muted words"
muteWordsDescription: "Separate with spaces for an AND condition or with line breaks muteWordsDescription:
"Separate with spaces for an AND condition or with line breaks
for an OR condition." for an OR condition."
muteWordsDescription2: "Surround keywords with slashes to use regular expressions." muteWordsDescription2: "Surround keywords with slashes to use regular expressions."
softDescription: "Hide posts that fulfil the set conditions from the timeline." softDescription: "Hide posts that fulfil the set conditions from the timeline."
hardDescription: "Prevents posts fulfilling the set conditions from being added hardDescription:
"Prevents posts fulfilling the set conditions from being added
to the timeline. In addition, these posts will not be added to the timeline even to the timeline. In addition, these posts will not be added to the timeline even
if the conditions are changed." if the conditions are changed."
soft: "Soft" soft: "Soft"
hard: "Hard" hard: "Hard"
mutedNotes: "Muted posts" mutedNotes: "Muted posts"
_instanceMute: _instanceMute:
instanceMuteDescription: "This will mute any posts/boosts from the listed servers, instanceMuteDescription:
"This will mute any posts/boosts from the listed servers,
including those of users replying to a user from a muted server." including those of users replying to a user from a muted server."
instanceMuteDescription2: "Separate with newlines" instanceMuteDescription2: "Separate with newlines"
title: "Hides posts from listed servers." title: "Hides posts from listed servers."
@ -1463,30 +1557,39 @@ _tutorial:
step1_1: "Welcome!" step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!" step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile." step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others step2_2:
"Providing some information about who you are will make it easier for others
to tell if they want to see your posts or follow you." to tell if they want to see your posts or follow you."
step3_1: "Now it's time to follow some people!" step3_1: "Now it's time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try step3_2:
"Your home and social timelines are based off of who you follow, so try
following a couple accounts to get started.\nClick the plus circle on the top following a couple accounts to get started.\nClick the plus circle on the top
right of a profile to follow them." right of a profile to follow them."
step4_1: "Let's get you out there." step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to make an {introduction} post or step4_2:
a simple \"Hello world!\"" 'For your first post, some people like to make an {introduction} post or
a simple "Hello world!"'
step5_1: "Timelines, timelines everywhere!" step5_1: "Timelines, timelines everywhere!"
step5_2: "Your server has {timelines} different timelines enabled." step5_2: "Your server has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from the accounts step5_3:
"The Home {icon} timeline is where you can see posts from the accounts
you follow." you follow."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else step5_4:
"The Local {icon} timeline is where you can see posts from everyone else
on this server." on this server."
step5_5: "The Social {icon} timeline is a combination of the Home and Local timelines." step5_5: "The Social {icon} timeline is a combination of the Home and Local timelines."
step5_6: "The Recommended {icon} timeline is where you can see posts from servers\ step5_6:
"The Recommended {icon} timeline is where you can see posts from servers\
\ the admins recommend." \ the admins recommend."
step5_7: "The Global {icon} timeline is where you can see posts from every other\ step5_7:
"The Global {icon} timeline is where you can see posts from every other\
\ connected server." \ connected server."
step6_1: "So, what is this place?" step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, step6_2:
"Well, you didn't just join Calckey. You joined a portal to the Fediverse,
an interconnected network of thousands of servers." an interconnected network of thousands of servers."
step6_3: "Each server works in different ways, and not all servers run Calckey. step6_3:
"Each server works in different ways, and not all servers run Calckey.
This one does though! It's a bit complicated, but you'll get the hang of it in This one does though! It's a bit complicated, but you'll get the hang of it in
no time." no time."
step6_4: "Now go, explore, and have fun!" step6_4: "Now go, explore, and have fun!"
@ -1548,8 +1651,9 @@ _permissions:
"read:gallery-likes": "View your list of liked gallery posts" "read:gallery-likes": "View your list of liked gallery posts"
"write:gallery-likes": "Edit your list of liked gallery posts" "write:gallery-likes": "Edit your list of liked gallery posts"
_auth: _auth:
shareAccess: "Would you like to authorize \"{name}\" to access this account?" shareAccess: 'Would you like to authorize "{name}" to access this account?'
shareAccessAsk: "Are you sure you want to authorize this application to access your shareAccessAsk:
"Are you sure you want to authorize this application to access your
account?" account?"
permissionAsk: "This application requests the following permissions" permissionAsk: "This application requests the following permissions"
pleaseGoBack: "Please go back to the application" pleaseGoBack: "Please go back to the application"
@ -1657,13 +1761,15 @@ _profile:
youCanIncludeHashtags: "You can also include hashtags in your bio." youCanIncludeHashtags: "You can also include hashtags in your bio."
metadata: "Additional Information" metadata: "Additional Information"
metadataEdit: "Edit additional Information" metadataEdit: "Edit additional Information"
metadataDescription: "Using these, you can display additional information fields metadataDescription:
"Using these, you can display additional information fields
in your profile." in your profile."
metadataLabel: "Label" metadataLabel: "Label"
metadataContent: "Content" metadataContent: "Content"
changeAvatar: "Change avatar" changeAvatar: "Change avatar"
changeBanner: "Change banner" changeBanner: "Change banner"
locationDescription: "If you enter your city first, it will display your local time locationDescription:
"If you enter your city first, it will display your local time
to other users." to other users."
_exportOrImport: _exportOrImport:
allNotes: "All posts" allNotes: "All posts"
@ -1982,8 +2088,8 @@ _pages:
_for: _for:
arg1: "Number of times to repeat" arg1: "Number of times to repeat"
arg2: "Action" arg2: "Action"
typeError: "Slot {slot} accepts values of type \"{expect}\", but the provided typeError: 'Slot {slot} accepts values of type "{expect}", but the provided
value is of type \"{actual}\"!" value is of type "{actual}"!'
thereIsEmptySlot: "Slot {slot} is empty!" thereIsEmptySlot: "Slot {slot} is empty!"
types: types:
string: "Text" string: "Text"
@ -2052,10 +2158,11 @@ _deck:
deleteProfile: "Delete workspace" deleteProfile: "Delete workspace"
nameAlreadyExists: "This workspace name already exists." nameAlreadyExists: "This workspace name already exists."
introduction: "Create the perfect interface for you by arranging columns freely!" introduction: "Create the perfect interface for you by arranging columns freely!"
introduction2: "Click on the + on the right of the screen to add new colums whenever introduction2:
"Click on the + on the right of the screen to add new colums whenever
you want." you want."
widgetsIntroduction: "Please select \"Edit widgets\" in the column menu and add widgetsIntroduction: 'Please select "Edit widgets" in the column menu and add
a widget." a widget.'
_columns: _columns:
main: "Main" main: "Main"
widgets: "Widgets" widgets: "Widgets"
@ -2070,7 +2177,8 @@ _deck:
_experiments: _experiments:
title: "Experiments" title: "Experiments"
enablePostEditing: "Enable post editing" enablePostEditing: "Enable post editing"
postEditingCaption: "Shows the option for users to edit their existing posts via\ postEditingCaption:
"Shows the option for users to edit their existing posts via\
\ the post options menu, and allows post edits from other instances to be recieved." \ the post options menu, and allows post edits from other instances to be recieved."
enablePostImports: "Enable post imports" enablePostImports: "Enable post imports"
postImportsCaption: "Allows users to import their posts from past Calckey,\ postImportsCaption: "Allows users to import their posts from past Calckey,\