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

View File

@ -1,7 +1,9 @@
_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! 🚀"
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! 🚀"
monthAndDay: "{month}/{day}"
search: "Search"
@ -49,7 +51,8 @@ copyLink: "Copy link"
delete: "Delete"
deleted: "Deleted"
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."
editNote: "Edit note"
edited: "Edited at {date} {time}"
@ -76,10 +79,12 @@ import: "Import"
export: "Export"
files: "Files"
download: "Download"
driveFileDeleteConfirm: "Are you sure you want to delete the file \"{name}\"? It will
be removed from all posts that contain it as an attachment."
driveFileDeleteConfirm:
'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}?"
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."
importRequested: "You've requested an import. This may take a while."
lists: "Lists"
@ -97,7 +102,8 @@ error: "Error"
somethingHappened: "An error has occurred"
retry: "Retry"
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."
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."
@ -128,7 +134,7 @@ removeReaction: "Remove your reaction"
enableEmojiReactions: "Enable emoji reactions"
showEmojisInReactionNotifications: "Show emojis in reaction notifications"
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"
attachCancel: "Remove attachment"
markAsSensitive: "Mark as NSFW"
@ -160,11 +166,13 @@ emojiUrl: "Emoji URL"
addEmoji: "Add"
settingGuide: "Recommended settings"
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
increase traffic, as thumbnails will not be generated."
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
chains with other bots and adjust Calckey's internal systems to treat this account
as a bot."
@ -173,7 +181,8 @@ flagAsCatDescription: "You'll get cat ears and speak like a cat!"
flagSpeakAsCat: "Speak as a cat"
flagSpeakAsCatDescription: "Your posts will get nyanified when in cat mode"
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."
autoAcceptFollowed: "Automatically approve follow requests from users you're following"
addAccount: "Add account"
@ -188,7 +197,8 @@ searchWith: "Search: {q}"
youHaveNoLists: "You don't have any lists"
followConfirm: "Are you sure that you want to follow {name}?"
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
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."
@ -223,20 +233,24 @@ instanceInfo: "Server Information"
statistics: "Statistics"
clearQueue: "Clear 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."
clearCachedFiles: "Clear cache"
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
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."
silencedInstances: "Silenced Servers"
silencedInstancesDescription: "List the hostnames of the servers that you want to
silence. Accounts in the listed servers are treated as \"Silenced\", can only make
silencedInstancesDescription:
'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
affect the blocked servers."
affect the blocked servers.'
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
means."
muteAndBlock: "Mutes and Blocks"
@ -247,6 +261,7 @@ noInstances: "There are no servers"
editProfile: "Edit profile"
noteDeleteConfirm: "Are you sure you want to delete this post?"
pinLimitExceeded: "You cannot pin any more posts"
characterLimit: "Character limit"
intro: "Installation of Calckey has been finished! Please create an admin user."
done: "Done"
processing: "Processing"
@ -282,14 +297,15 @@ announcements: "Announcements"
imageUrl: "Image URL"
remove: "Delete"
removed: "Successfully deleted"
removeAreYouSure: "Are you sure that you want to remove \"{x}\"?"
deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?"
removeAreYouSure: 'Are you sure that you want to remove "{x}"?'
deleteAreYouSure: 'Are you sure that you want to delete "{x}"?'
resetAreYouSure: "Really reset?"
saved: "Saved"
messaging: "Chat"
upload: "Upload"
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."
fromDrive: "From Drive"
fromUrl: "From URL"
@ -340,7 +356,8 @@ unableToDelete: "Unable to delete"
inputNewFileName: "Enter a new filename"
inputNewDescription: "Enter new caption"
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."
hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted."
copyUrl: "Copy URL"
@ -376,7 +393,8 @@ disconnectService: "Disconnect"
enableLocalTimeline: "Enable local timeline"
enableGlobalTimeline: "Enable global 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."
registration: "Register"
enableRegistration: "Enable new user registration"
@ -389,10 +407,12 @@ bannerUrl: "Banner image URL"
backgroundImageUrl: "Background image URL"
basicInfo: "Basic info"
pinnedUsers: "Pinned users"
pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the
\"Explore\" tab."
pinnedUsersDescription:
'List usernames separated by line breaks to be pinned in the
"Explore" tab.'
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."
pinnedClipId: "ID of the clip to pin"
pinnedNotes: "Pinned posts"
@ -404,7 +424,8 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Enable reCAPTCHA"
recaptchaSiteKey: "Site 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
would like them to stay enabled, press cancel."
antennas: "Antennas"
@ -414,7 +435,8 @@ name: "Name"
antennaSource: "Antenna source"
antennaKeywords: "Keywords to listen to"
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."
notifyAntenna: "Notify about new posts"
withFileAntenna: "Only posts with files"
@ -453,7 +475,7 @@ lastUsed: "Last used"
unregister: "Unregister"
passwordLessLogin: "Password-less login"
resetPassword: "Reset password"
newPasswordIs: "The new password is \"{password}\""
newPasswordIs: 'The new password is "{password}"'
reduceUiAnimation: "Reduce UI animations"
share: "Share"
notFound: "Not found"
@ -546,7 +568,8 @@ showFeaturedNotesInTimeline: "Show featured posts in timelines"
objectStorage: "Object Storage"
useObjectStorage: "Use object storage"
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'
and for GCS or equivalent services use 'https://storage.googleapis.com/<bucket>',
etc."
@ -555,18 +578,22 @@ objectStorageBucketDesc: "Please specify the bucket name used at your provider."
objectStoragePrefix: "Prefix"
objectStoragePrefixDesc: "Files will be stored under directories with this prefix."
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."
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'."
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"
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"
objectStorageSetPublicRead: "Set \"public-read\" on upload"
objectStorageSetPublicRead: 'Set "public-read" on upload'
serverLogs: "Server logs"
deleteAll: "Delete all"
showFixedPostForm: "Display the posting form at the top of the timeline"
@ -593,7 +620,8 @@ sort: "Sort"
ascendingOrder: "Ascending"
descendingOrder: "Descending"
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
it."
output: "Output"
@ -605,12 +633,14 @@ updateRemoteUser: "Update remote user information"
deleteAllFiles: "Delete all files"
deleteAllFilesConfirm: "Are you sure that you want to delete all files?"
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."
userSuspended: "This user has been suspended."
userSilenced: "This user is being silenced."
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
like to know a more detailed reason. Please do not create a new account."
menu: "Menu"
@ -653,13 +683,15 @@ permission: "Permissions"
enableAll: "Enable all"
disableAll: "Disable all"
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."
notificationType: "Notification type"
edit: "Edit"
emailServer: "Email server"
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"
email: "Email"
emailAddress: "Email address"
@ -674,7 +706,8 @@ smtpSecureInfo: "Turn this off when using STARTTLS"
testEmail: "Test email delivery"
wordMute: "Word mute"
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:"
instanceMute: "Server Mutes"
userSaysSomething: "{name} said something"
@ -696,11 +729,13 @@ create: "Create"
notificationSetting: "Notification settings"
notificationSettingDesc: "Select the types of notification to display."
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."
other: "Other"
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
out."
setMultipleBySeparatingWithSpace: "Separate multiple entries with spaces."
@ -710,14 +745,16 @@ sample: "Sample"
abuseReports: "Reports"
reportAbuse: "Report"
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."
abuseReported: "Your report has been sent. Thank you very much."
reporter: "Reporter"
reporteeOrigin: "Reportee Origin"
reporterOrigin: "Reporter Origin"
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."
send: "Send"
abuseMarkAsResolved: "Mark report as resolved"
@ -736,10 +773,12 @@ createNew: "Create new"
optional: "Optional"
createNewClip: "Create new clip"
unclip: "Unclip"
confirmToUnclipAlreadyClippedNote: "This post is already part of the \"{name}\" clip.
Do you want to remove it from this clip instead?"
confirmToUnclipAlreadyClippedNote:
'This post is already part of the "{name}" clip.
Do you want to remove it from this clip instead?'
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}."
manageAccessTokens: "Manage access tokens"
accountInfo: "Account Info"
@ -759,14 +798,16 @@ no: "No"
driveFilesCount: "Number of Drive files"
driveUsage: "Drive space usage"
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."
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."
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.'
alwaysMarkSensitive: "Mark as NSFW by default"
loadRawImages: "Load original images instead of showing thumbnails"
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."
notSet: "Not set"
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."
experimentalFeatures: "Experimental features"
developer: "Developer"
makeExplorable: "Make account visible in \"Explore\""
makeExplorableDescription: "If you turn this off, your account will not show up in
the \"Explore\" section."
makeExplorable: 'Make account visible in "Explore"'
makeExplorableDescription:
'If you turn this off, your account will not show up in
the "Explore" section.'
showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline"
duplicate: "Duplicate"
left: "Left"
@ -796,7 +838,8 @@ onlineUsersCount: "{n} users are online"
nUsers: "{n} Users"
nNotes: "{n} Posts"
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
This will include information such the version of your OS, what browser you're using,
your activity in Calckey, etc."
@ -838,16 +881,19 @@ unlikeConfirm: "Really remove your like?"
fullView: "Full view"
quitFullView: "Exit full view"
addDescription: "Add description"
userPagePinTip: "You can display posts here by selecting \"Pin to profile\" from the
menu of individual posts."
notSpecifiedMentionWarning: "This post contains mentions of users not included as
userPagePinTip:
'You can display posts here by selecting "Pin to profile" from the
menu of individual posts.'
notSpecifiedMentionWarning:
"This post contains mentions of users not included as
recipients"
info: "About"
userInfo: "User information"
unknown: "Unknown"
onlineStatus: "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."
online: "Online"
active: "Active"
@ -885,14 +931,17 @@ secureMode: "Secure Mode (Authorized Fetch)"
instanceSecurity: "Server Security"
secureModeInfo: "When requesting from other servers, do not send back without proof."
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."
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)."
previewNoteText: "Show preview"
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."
global: "Global"
recommended: "Recommended"
@ -910,7 +959,8 @@ whatIsNew: "Show changes"
translate: "Translate"
translatedFrom: "Translated from {x}"
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
be changed later."
aiChanMode: "Ai-chan in Classic UI"
@ -929,24 +979,26 @@ filter: "Filter"
controlPanel: "Control Panel"
manageAccounts: "Manage Accounts"
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."
classic: "Centered"
muteThread: "Mute thread"
unmuteThread: "Unmute thread"
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."
continueThread: "Continue thread"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?"
voteConfirm: 'Confirm your vote for "{choice}"?'
hide: "Hide"
altText: "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."
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"
welcomeBackWithName: "Welcome back, {name}"
clickToFinishEmailVerification: "Please click [{ok}] to complete email verification."
@ -982,17 +1034,20 @@ noEmailServerWarning: "Email server not configured."
thereIsUnresolvedAbuseReportWarning: "There are unsolved reports."
check: "Check"
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."
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
it may break your server."
typeToConfirm: "Please enter {x} to confirm"
deleteAccount: "Delete account"
document: "Documentation"
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."
logoutConfirm: "Really log out?"
lastActiveDate: "Last used at"
@ -1010,17 +1065,21 @@ sensitiveMediaDetection: "Detection of NSFW media"
localOnly: "Local only"
remoteOnly: "Remote only"
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."
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."
beta: "Beta"
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
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
be communicated with. When unchecked, only the format of the email is validated."
navbar: "Navigation bar"
@ -1032,26 +1091,32 @@ subscribePushNotification: "Enable push notifications"
unsubscribePushNotification: "Disable push notifications"
pushNotificationAlreadySubscribed: "Push notifications are already enabled"
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"
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
device, if applicable."
showAds: "Show ads"
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
ensure your CSS works properly by testing it in your user settings."
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."
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
sure the images are on a static URL, preferably all resized to 192x192."
showUpdates: "Show a popup when Calckey updates"
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."
caption: "Auto Caption"
splash: "Splash Screen"
@ -1064,15 +1129,18 @@ migration: "Migration"
moveTo: "Move current account to new account"
moveToLabel: "Account you're moving to:"
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
the account formatted like @person@server.com"
moveFrom: "Move to this account from an older account"
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.
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
your account normally again.\nAlso, please ensure that you've set this current account
as the account you're moving from."
@ -1081,10 +1149,12 @@ license: "License"
indexPosts: "Index Posts"
indexFrom: "Index from Post ID onwards"
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."
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{\\
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
@ -1095,18 +1165,22 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea
advanced syntax, such as conditional branching, cannot be used here."
enableCustomKaTeXMacro: "Enable custom KaTeX macros"
noteId: "Post ID"
signupsDisabled: "Signups on this server are currently disabled, but you can always
signupsDisabled:
"Signups on this server are currently disabled, but you can always
sign up at another server! If you have an invitation code for this server, please
enter it below."
findOtherInstance: "Find another server"
apps: "Apps"
sendModMail: "Send Moderation Notice"
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."
noGraze: "Please disable the \"Graze for Mastodon\" browser extension, as it interferes
with Calckey."
silencedWarning: "This page is showing because these users are from servers your admin
noGraze:
'Please disable the "Graze for Mastodon" browser extension, as it interferes
with Calckey.'
silencedWarning:
"This page is showing because these users are from servers your admin
silenced, so they may potentially be spam."
isBot: "This account is a bot"
isLocked: "This account has follow approvals"
@ -1116,17 +1190,21 @@ isPatron: "Calckey Patron"
reactionPickerSkinTone: "Preferred emoji skin tone"
_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."
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
negatives)."
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."
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."
_emailUnavailable:
used: "This email address is already being used"
@ -1141,14 +1219,17 @@ _ffVisibility:
_signup:
almostThere: "Almost there"
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."
_accountDelete:
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
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."
requestAccountDelete: "Request account deletion"
started: "Deletion has been started."
@ -1157,11 +1238,14 @@ _ad:
back: "Back"
reduceFrequencyOfThisAd: "Show this ad less"
_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."
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."
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."
_gallery:
my: "My Gallery"
@ -1185,15 +1269,17 @@ _preferencesBackups:
save: "Save changes"
inputName: "Please enter a name for this backup"
cannotSave: "Saving failed"
nameAlreadyExists: "A backup called \"{name}\" already exists. Please enter a different
name."
applyConfirm: "Do you really want to apply the \"{name}\" backup to this device?
Existing settings of this device will be overwritten."
nameAlreadyExists:
'A backup called "{name}" already exists. Please enter a different
name.'
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}?"
deleteConfirm: "Delete the {name} backup?"
renameConfirm: "Rename this backup from \"{old}\" to \"{new}\"?"
noBackups: "No backups exist. You may backup your client settings on this server
by using \"Create new backup\"."
renameConfirm: 'Rename this backup from "{old}" to "{new}"?'
noBackups:
'No backups exist. You may backup your client settings on this server
by using "Create new backup".'
createdAt: "Created at: {date} {time}"
updatedAt: "Updated at: {date} {time}"
cannotLoad: "Loading failed"
@ -1211,7 +1297,8 @@ _aboutMisskey:
source: "Source code"
translation: "Translate 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! 🥰"
patrons: "Calckey patrons"
_nsfw:
@ -1224,7 +1311,8 @@ _mfm:
warn: "MFM may contain rapidly moving or flashy animations"
alwaysPlay: "Always autoplay all animated MFM"
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."
dummy: "Calckey expands the world of the Fediverse"
advanced: "Advanced MFM"
@ -1246,7 +1334,8 @@ _mfm:
inlineCode: "Code (Inline)"
inlineCodeDescription: "Displays inline syntax highlighting for (program) code."
blockCode: "Code (Block)"
blockCodeDescription: "Displays syntax highlighting for multi-line (program) code
blockCodeDescription:
"Displays syntax highlighting for multi-line (program) code
in a block."
inlineMath: "Math (Inline)"
inlineMathDescription: "Display math formulas (KaTeX) in-line"
@ -1255,7 +1344,8 @@ _mfm:
quote: "Quote"
quoteDescription: "Displays content as a quote."
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."
search: "Search"
searchDescription: "Displays a search box with pre-entered text."
@ -1264,7 +1354,7 @@ _mfm:
jelly: "Animation (Jelly)"
jellyDescription: "Gives content a jelly-like animation."
tada: "Animation (Tada)"
tadaDescription: "Gives content a \"Tada!\"-like animation."
tadaDescription: 'Gives content a "Tada!"-like animation.'
jump: "Animation (Jump)"
jumpDescription: "Gives content a jumping animation."
bounce: "Animation (Bounce)"
@ -1304,7 +1394,8 @@ _mfm:
background: "Background color"
backgroundDescription: "Change the background color of text."
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."
_instanceTicker:
none: "Never show"
@ -1337,18 +1428,21 @@ _menuDisplay:
hide: "Hide"
_wordMute:
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."
muteWordsDescription2: "Surround keywords with slashes to use regular expressions."
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
if the conditions are changed."
soft: "Soft"
hard: "Hard"
mutedNotes: "Muted posts"
_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."
instanceMuteDescription2: "Separate with newlines"
title: "Hides posts from listed servers."
@ -1463,30 +1557,39 @@ _tutorial:
step1_1: "Welcome!"
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_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."
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
right of a profile to follow them."
step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to make an {introduction} post or
a simple \"Hello world!\""
step4_2:
'For your first post, some people like to make an {introduction} post or
a simple "Hello world!"'
step5_1: "Timelines, timelines everywhere!"
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."
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."
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."
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."
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."
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
no time."
step6_4: "Now go, explore, and have fun!"
@ -1548,8 +1651,9 @@ _permissions:
"read:gallery-likes": "View your list of liked gallery posts"
"write:gallery-likes": "Edit your list of liked gallery posts"
_auth:
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
shareAccessAsk: "Are you sure you want to authorize this application to access your
shareAccess: 'Would you like to authorize "{name}" to access this account?'
shareAccessAsk:
"Are you sure you want to authorize this application to access your
account?"
permissionAsk: "This application requests the following permissions"
pleaseGoBack: "Please go back to the application"
@ -1657,13 +1761,15 @@ _profile:
youCanIncludeHashtags: "You can also include hashtags in your bio."
metadata: "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."
metadataLabel: "Label"
metadataContent: "Content"
changeAvatar: "Change avatar"
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."
_exportOrImport:
allNotes: "All posts"
@ -1982,8 +2088,8 @@ _pages:
_for:
arg1: "Number of times to repeat"
arg2: "Action"
typeError: "Slot {slot} accepts values of type \"{expect}\", but the provided
value is of type \"{actual}\"!"
typeError: 'Slot {slot} accepts values of type "{expect}", but the provided
value is of type "{actual}"!'
thereIsEmptySlot: "Slot {slot} is empty!"
types:
string: "Text"
@ -2052,10 +2158,11 @@ _deck:
deleteProfile: "Delete workspace"
nameAlreadyExists: "This workspace name already exists."
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."
widgetsIntroduction: "Please select \"Edit widgets\" in the column menu and add
a widget."
widgetsIntroduction: 'Please select "Edit widgets" in the column menu and add
a widget.'
_columns:
main: "Main"
widgets: "Widgets"
@ -2070,7 +2177,8 @@ _deck:
_experiments:
title: "Experiments"
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."
enablePostImports: "Enable post imports"
postImportsCaption: "Allows users to import their posts from past Calckey,\