diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..f06ca21
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+src/locales/*.json
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..f06ca21
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+src/locales/*.json
diff --git a/src/admin/options.ts b/src/admin/options.ts
index 1b83fa5..d19277a 100644
--- a/src/admin/options.ts
+++ b/src/admin/options.ts
@@ -98,7 +98,7 @@ const options: Options = {
defaultMessage: 'Quote',
}),
desc: intl.formatMessage({
- id: 'options.homepage.signature.desc',
+ id: 'options.homepage.quote.desc',
defaultMessage: 'The quote text (behinds the slogan).',
}),
type: 'longString',
diff --git a/src/locales/default.json b/src/locales/default.json
index 88281a6..b0dec20 100644
--- a/src/locales/default.json
+++ b/src/locales/default.json
@@ -1,75 +1,82 @@
{
- 'admin.restore.title': 'Restore this option to default.',
- 'app.common.units.year': '{num, plural, =0 {just now} =1 {1 second} other {{num, number, ::compact-short} seconds}}',
- 'messages.admin.invalidUrl': 'Invalid URL',
- 'messages.admin.uplicateUrls': 'Duplicate URLs',
- 'messages.comment.submit.error': 'Comment post failure.',
- 'messages.comment.submit.success': 'Comment post successfully.',
- 'messages.commonMessages.javascriptErrorTitle': 'Opps, something when wrong!',
- 'messages.popup.close': 'Close',
- 'messages.popup.dismiss': 'Dismiss',
- 'messages.popup.showDetails': 'Show details',
- 'messages.postContent.cache.found': 'Fetching the latest post content...',
- 'messages.postList.cache.found': 'Fetching the latest post list...',
- 'messages.postList.reachLastPage': 'No more...',
- 'messages.posts.fetchPageError': 'Failed to fetch page content.',
- 'messages.posts.fetchPostError': 'Failed to fetch post content.',
- 'messages.wordpress.applicationPasswordsEndpointNotAvailable': 'ApplicationPasswords is not avaliabe in your WordPress installation, please upgrade WordPress to v5.6.0 above, or enable the ApplicationPasswords feature in v5.6.0 above installation.',
- 'messages.wordpress.permalink.shouldIncludeFieldsInPost': 'WordPress pages should use %slug% as the permalink.',
- 'messages.wordpress.permalink.shouldIncludeFieldsInSingle': 'WordPress permalink should include at least one of %post_id%, %postname%. You may set them here: {baseUrl}/wp-admin/options-permalink.php',
- 'options.basic.site.logo.binds.button': 'Use this image',
- 'options.basic.site.logo.binds.title': 'Select image for site logo.',
- 'options.basic.site.logo.desc': 'The site\'s Logo image, will display on navigation bar.',
- 'options.basic.site.logo.title': 'Site logo',
- 'options.basic.site.title.desc': 'The site title',
- 'options.basic.site.title.title': 'Site title',
- 'options.basicDesc': 'The basic options',
- 'options.basicTitle': 'Basic',
- 'options.homepage.cover.image.binds.button': 'Use this image',
- 'options.homepage.cover.image.binds.title': 'Select image for homepage cover.',
- 'options.homepage.cover.image.desc': 'Homepage cover images. Will enable slide show with multiple selections.',
- 'options.homepage.cover.image.title': 'Cover images',
- 'options.homepage.quote.title': 'Quote',
- 'options.homepage.signature.desc': 'The signature text (follows the quote).',
- 'options.homepage.signature.title': 'Signature',
- 'options.homepage.slogan.desc': 'The slogan text (with typewriter effect), recommend 10-20 characters.',
- 'options.homepage.slogan.title': 'Slogan',
- 'options.homepageDesc': 'Homepage options',
- 'options.homepageTitle': 'Homepage',
- 'options.social.facebook.desc': 'Your \'Facebook\' username',
- 'options.social.facebook.title': 'Facebook username',
- 'options.social.github.desc': 'Your \'Github\' username',
- 'options.social.github.title': 'Github username',
- 'options.social.gitlab.desc': 'Your \'Gitlab\' username',
- 'options.social.gitlab.title': 'Gitlab username',
- 'options.social.stackoverflow.desc': 'Your \'Stackoverflow\' username',
- 'options.social.stackoverflow.title': 'Stackoverflow username',
- 'options.social.twitter.desc': 'Your \'Twitter\' username',
- 'options.social.twitter.title': 'Twitter username',
- 'options.social.weibo.desc': 'Your \'Weibo\' username',
- 'options.social.weibo.title': 'Weibo username',
- 'options.thirdParty.reCaptcha.enable.desc': 'Use reCAPTCHA for anti-spam check.',
- 'options.thirdParty.reCaptcha.enable.negativeLabel': 'Disabled',
- 'options.thirdParty.reCaptcha.enable.positiveLabel': 'Enabled',
- 'options.thirdParty.reCaptcha.enable.title': 'Enable reCAPTCHA',
- 'options.thirdParty.reCaptcha.secretKey.title': 'reCAPTCHA secret key',
- 'options.thirdParty.reCaptcha.siteKey.title': 'reCAPTCHA site key',
- 'options.thirdParty.reCaptcha.version.desc': 'Register your reCAPTCHA app \'here\', and choose a version.',
- 'options.thirdParty.reCaptcha.version.label.v2': 'reCAPTCHA version 2',
- 'options.thirdParty.reCaptcha.version.label.v3': 'reCAPTCHA version 3',
- 'options.thirdParty.reCaptcha.version.title': 'reCAPTCHA version',
- 'posts.comment.composer.authorEmail.label': 'Email *',
- 'posts.comment.composer.authorName.label': 'Nickname *',
- 'posts.comment.composer.authorUrl.label': 'Link',
- 'posts.comment.composer.captcha.toggleButton': 'Captcha',
- 'posts.comment.composer.content.label': 'You are a surprise that I will only meet once in my life',
- 'posts.comment.composer.submit.button': 'Submit',
- 'posts.comment.composer.tips.markdownSupported': 'Markdown Supported',
- 'posts.commentCount': '{commentCount, plural, =0 {No comment} =1 {One comment} other {{commentCount, number, ::compact-short} Comments}}',
- 'posts.postTimeOn.brief': '{publistTimeDate, date, long}',
- 'posts.postTimeOn.full': 'Post on {publistTimeDate, date, long}',
- 'posts.postTimeSince': 'Post {duration} ago',
- 'posts.readCount': '{readCount, plural, =0 {No one ever read} =1 {One read} other {{readCount, number, ::compact-short} Reads}}',
- 'posts.readMore': 'Read More',
- 'posts.wordCount': '{wordCount, plural, =0 {No content} =1 {One word} other {{wordCount, number, ::compact-short} Words}}'
-}
+ "admin.restore.title": "Restore this option to default.",
+ "app.common.units.day": "{num, plural, =0 {just now} =1 {1 day} other {{num, number, ::compact-short} days}}",
+ "app.common.units.hour": "{num, plural, =0 {just now} =1 {1 hour} other {{num, number, ::compact-short} hours}}",
+ "app.common.units.minute": "{num, plural, =0 {just now} =1 {1 minute} other {{num, number, ::compact-short} minutes}}",
+ "app.common.units.month": "{num, plural, =0 {just now} =1 {1 month} other {{num, number, ::compact-short} monthes}}",
+ "app.common.units.second": "{num, plural, =0 {just now} =1 {1 second} other {{num, number, ::compact-short} seconds}}",
+ "app.common.units.year": "{num, plural, =0 {just now} =1 {1 year} other {{num, number, ::compact-short} years}}",
+ "messages.admin.invalidUrl": "Invalid URL",
+ "messages.admin.uplicateUrls": "Duplicate URLs",
+ "messages.comment.submit.error": "Comment post failure.",
+ "messages.comment.submit.success": "Comment post successfully.",
+ "messages.commonMessages.javascriptErrorTitle": "Opps, something when wrong!",
+ "messages.popup.close": "Close",
+ "messages.popup.dismiss": "Dismiss",
+ "messages.popup.showDetails": "Show details",
+ "messages.postContent.cache.found": "Fetching the latest post content...",
+ "messages.postList.cache.found": "Fetching the latest post list...",
+ "messages.postList.reachLastPage": "No more...",
+ "messages.posts.fetchPageError": "Failed to fetch page content.",
+ "messages.posts.fetchPostError": "Failed to fetch post content.",
+ "messages.wordpress.applicationPasswordsEndpointNotAvailable": "ApplicationPasswords is not avaliabe in your WordPress installation, please upgrade WordPress to v5.6.0 above, or enable the ApplicationPasswords feature in v5.6.0 above installation.",
+ "messages.wordpress.permalink.shouldIncludeFieldsInPost": "WordPress pages should use %slug% as the permalink.",
+ "messages.wordpress.permalink.shouldIncludeFieldsInSingle": "WordPress permalink should include at least one of %post_id%, %postname%. You may set them here: {baseUrl}/wp-admin/options-permalink.php",
+ "options.basic.site.logo.binds.button": "Use this image",
+ "options.basic.site.logo.binds.title": "Select image for site logo.",
+ "options.basic.site.logo.desc": "The site's Logo image, will display on navigation bar.",
+ "options.basic.site.logo.title": "Site logo",
+ "options.basic.site.title.desc": "The site title",
+ "options.basic.site.title.title": "Site title",
+ "options.basicDesc": "The basic options",
+ "options.basicTitle": "Basic",
+ "options.homepage.cover.image.binds.button": "Use this image",
+ "options.homepage.cover.image.binds.title": "Select image for homepage cover.",
+ "options.homepage.cover.image.desc": "Homepage cover images. Will enable slide show with multiple selections.",
+ "options.homepage.cover.image.title": "Cover images",
+ "options.homepage.quote.desc": "The quote text (behinds the slogan).",
+ "options.homepage.quote.title": "Quote",
+ "options.homepage.signature.desc": "The signature text (follows the quote).",
+ "options.homepage.signature.title": "Signature",
+ "options.homepage.slogan.desc": "The slogan text (with typewriter effect), recommend 10-20 characters.",
+ "options.homepage.slogan.title": "Slogan",
+ "options.homepageDesc": "Homepage options",
+ "options.homepageTitle": "Homepage",
+ "options.social.facebook.desc": "Your 'Facebook' username",
+ "options.social.facebook.title": "Facebook username",
+ "options.social.github.desc": "Your 'Github' username",
+ "options.social.github.title": "Github username",
+ "options.social.gitlab.desc": "Your 'Gitlab' username",
+ "options.social.gitlab.title": "Gitlab username",
+ "options.social.stackoverflow.desc": "Your 'Stackoverflow' username",
+ "options.social.stackoverflow.title": "Stackoverflow username",
+ "options.social.twitter.desc": "Your 'Twitter' username",
+ "options.social.twitter.title": "Twitter username",
+ "options.social.weibo.desc": "Your 'Weibo' username",
+ "options.social.weibo.title": "Weibo username",
+ "options.thirdParty.reCaptcha.enable.desc": "Use reCAPTCHA for anti-spam check.",
+ "options.thirdParty.reCaptcha.enable.negativeLabel": "Disabled",
+ "options.thirdParty.reCaptcha.enable.positiveLabel": "Enabled",
+ "options.thirdParty.reCaptcha.enable.title": "Enable reCAPTCHA",
+ "options.thirdParty.reCaptcha.secretKey.title": "reCAPTCHA secret key",
+ "options.thirdParty.reCaptcha.siteKey.title": "reCAPTCHA site key",
+ "options.thirdParty.reCaptcha.version.desc": "Register your reCAPTCHA app 'here', and choose a version.",
+ "options.thirdParty.reCaptcha.version.label.v2": "reCAPTCHA version 2",
+ "options.thirdParty.reCaptcha.version.label.v3": "reCAPTCHA version 3",
+ "options.thirdParty.reCaptcha.version.title": "reCAPTCHA version",
+ "posts.comment.composer.authorEmail.label": "Email *",
+ "posts.comment.composer.authorName.label": "Nickname *",
+ "posts.comment.composer.authorUrl.label": "Link",
+ "posts.comment.composer.captcha.toggleButton": "Captcha",
+ "posts.comment.composer.content.label": "You are a surprise that I will only meet once in my life",
+ "posts.comment.composer.submit.button": "Submit",
+ "posts.comment.composer.tips.markdownSupported": "Markdown Supported",
+ "posts.commentCount": "{commentCount, plural, =0 {No comment} =1 {One comment} other {{commentCount, number, ::compact-short} Comments}}",
+ "posts.postTimeOn.brief": "{publistTimeDate, date, long}",
+ "posts.postTimeOn.full": "Post on {publistTimeDate, date, long}",
+ "posts.postTimeSince.brief": "{duration} ago",
+ "posts.postTimeSince.full": "Post {duration} ago",
+ "posts.readCount": "{readCount, plural, =0 {No one ever read} =1 {One read} other {{readCount, number, ::compact-short} Reads}}",
+ "posts.readMore": "Read More",
+ "posts.wordCount": "{wordCount, plural, =0 {No content} =1 {One word} other {{wordCount, number, ::compact-short} Words}}"
+}
\ No newline at end of file
diff --git a/src/locales/defaultMessages.json b/src/locales/defaultMessages.json
index a41ce7a..469240a 100644
--- a/src/locales/defaultMessages.json
+++ b/src/locales/defaultMessages.json
@@ -1,221 +1,242 @@
{
- 'admin.restore.title': {
- 'defaultMessage': 'Restore this option to default.'
+ "admin.restore.title": {
+ "defaultMessage": "Restore this option to default."
},
- 'app.common.units.year': {
- 'defaultMessage': '{num, plural, =0 {just now} =1 {1 second} other {{num, number, ::compact-short} seconds}}'
+ "app.common.units.day": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 day} other {{num, number, ::compact-short} days}}"
},
- 'messages.admin.invalidUrl': {
- 'defaultMessage': 'Invalid URL'
+ "app.common.units.hour": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 hour} other {{num, number, ::compact-short} hours}}"
},
- 'messages.admin.uplicateUrls': {
- 'defaultMessage': 'Duplicate URLs'
+ "app.common.units.minute": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 minute} other {{num, number, ::compact-short} minutes}}"
},
- 'messages.comment.submit.error': {
- 'defaultMessage': 'Comment post failure.'
+ "app.common.units.month": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 month} other {{num, number, ::compact-short} monthes}}"
},
- 'messages.comment.submit.success': {
- 'defaultMessage': 'Comment post successfully.'
+ "app.common.units.second": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 second} other {{num, number, ::compact-short} seconds}}"
},
- 'messages.commonMessages.javascriptErrorTitle': {
- 'defaultMessage': 'Opps, something when wrong!'
+ "app.common.units.year": {
+ "defaultMessage": "{num, plural, =0 {just now} =1 {1 year} other {{num, number, ::compact-short} years}}"
},
- 'messages.popup.close': {
- 'defaultMessage': 'Close'
+ "messages.admin.invalidUrl": {
+ "defaultMessage": "Invalid URL"
},
- 'messages.popup.dismiss': {
- 'defaultMessage': 'Dismiss'
+ "messages.admin.uplicateUrls": {
+ "defaultMessage": "Duplicate URLs"
},
- 'messages.popup.showDetails': {
- 'defaultMessage': 'Show details'
+ "messages.comment.submit.error": {
+ "defaultMessage": "Comment post failure."
},
- 'messages.postContent.cache.found': {
- 'defaultMessage': 'Fetching the latest post content...'
+ "messages.comment.submit.success": {
+ "defaultMessage": "Comment post successfully."
},
- 'messages.postList.cache.found': {
- 'defaultMessage': 'Fetching the latest post list...'
+ "messages.commonMessages.javascriptErrorTitle": {
+ "defaultMessage": "Opps, something when wrong!"
},
- 'messages.postList.reachLastPage': {
- 'defaultMessage': 'No more...'
+ "messages.popup.close": {
+ "defaultMessage": "Close"
},
- 'messages.posts.fetchPageError': {
- 'defaultMessage': 'Failed to fetch page content.'
+ "messages.popup.dismiss": {
+ "defaultMessage": "Dismiss"
},
- 'messages.posts.fetchPostError': {
- 'defaultMessage': 'Failed to fetch post content.'
+ "messages.popup.showDetails": {
+ "defaultMessage": "Show details"
},
- 'messages.wordpress.applicationPasswordsEndpointNotAvailable': {
- 'defaultMessage': 'ApplicationPasswords is not avaliabe in your WordPress installation, please upgrade WordPress to v5.6.0 above, or enable the ApplicationPasswords feature in v5.6.0 above installation.'
+ "messages.postContent.cache.found": {
+ "defaultMessage": "Fetching the latest post content..."
},
- 'messages.wordpress.permalink.shouldIncludeFieldsInPost': {
- 'defaultMessage': 'WordPress pages should use %slug% as the permalink.'
+ "messages.postList.cache.found": {
+ "defaultMessage": "Fetching the latest post list..."
},
- 'messages.wordpress.permalink.shouldIncludeFieldsInSingle': {
- 'defaultMessage': 'WordPress permalink should include at least one of %post_id%, %postname%. You may set them here: {baseUrl}/wp-admin/options-permalink.php'
+ "messages.postList.reachLastPage": {
+ "defaultMessage": "No more..."
},
- 'options.basic.site.logo.binds.button': {
- 'defaultMessage': 'Use this image'
+ "messages.posts.fetchPageError": {
+ "defaultMessage": "Failed to fetch page content."
},
- 'options.basic.site.logo.binds.title': {
- 'defaultMessage': 'Select image for site logo.'
+ "messages.posts.fetchPostError": {
+ "defaultMessage": "Failed to fetch post content."
},
- 'options.basic.site.logo.desc': {
- 'defaultMessage': 'The site\'s Logo image, will display on navigation bar.'
+ "messages.wordpress.applicationPasswordsEndpointNotAvailable": {
+ "defaultMessage": "ApplicationPasswords is not avaliabe in your WordPress installation, please upgrade WordPress to v5.6.0 above, or enable the ApplicationPasswords feature in v5.6.0 above installation."
},
- 'options.basic.site.logo.title': {
- 'defaultMessage': 'Site logo'
+ "messages.wordpress.permalink.shouldIncludeFieldsInPost": {
+ "defaultMessage": "WordPress pages should use %slug% as the permalink."
},
- 'options.basic.site.title.desc': {
- 'defaultMessage': 'The site title'
+ "messages.wordpress.permalink.shouldIncludeFieldsInSingle": {
+ "defaultMessage": "WordPress permalink should include at least one of %post_id%, %postname%. You may set them here: {baseUrl}/wp-admin/options-permalink.php"
},
- 'options.basic.site.title.title': {
- 'defaultMessage': 'Site title'
+ "options.basic.site.logo.binds.button": {
+ "defaultMessage": "Use this image"
},
- 'options.basicDesc': {
- 'defaultMessage': 'The basic options'
+ "options.basic.site.logo.binds.title": {
+ "defaultMessage": "Select image for site logo."
},
- 'options.basicTitle': {
- 'defaultMessage': 'Basic'
+ "options.basic.site.logo.desc": {
+ "defaultMessage": "The site's Logo image, will display on navigation bar."
},
- 'options.homepage.cover.image.binds.button': {
- 'defaultMessage': 'Use this image'
+ "options.basic.site.logo.title": {
+ "defaultMessage": "Site logo"
},
- 'options.homepage.cover.image.binds.title': {
- 'defaultMessage': 'Select image for homepage cover.'
+ "options.basic.site.title.desc": {
+ "defaultMessage": "The site title"
},
- 'options.homepage.cover.image.desc': {
- 'defaultMessage': 'Homepage cover images. Will enable slide show with multiple selections.'
+ "options.basic.site.title.title": {
+ "defaultMessage": "Site title"
},
- 'options.homepage.cover.image.title': {
- 'defaultMessage': 'Cover images'
+ "options.basicDesc": {
+ "defaultMessage": "The basic options"
},
- 'options.homepage.quote.title': {
- 'defaultMessage': 'Quote'
+ "options.basicTitle": {
+ "defaultMessage": "Basic"
},
- 'options.homepage.signature.desc': {
- 'defaultMessage': 'The signature text (follows the quote).'
+ "options.homepage.cover.image.binds.button": {
+ "defaultMessage": "Use this image"
},
- 'options.homepage.signature.title': {
- 'defaultMessage': 'Signature'
+ "options.homepage.cover.image.binds.title": {
+ "defaultMessage": "Select image for homepage cover."
},
- 'options.homepage.slogan.desc': {
- 'defaultMessage': 'The slogan text (with typewriter effect), recommend 10-20 characters.'
+ "options.homepage.cover.image.desc": {
+ "defaultMessage": "Homepage cover images. Will enable slide show with multiple selections."
},
- 'options.homepage.slogan.title': {
- 'defaultMessage': 'Slogan'
+ "options.homepage.cover.image.title": {
+ "defaultMessage": "Cover images"
},
- 'options.homepageDesc': {
- 'defaultMessage': 'Homepage options'
+ "options.homepage.quote.desc": {
+ "defaultMessage": "The quote text (behinds the slogan)."
},
- 'options.homepageTitle': {
- 'defaultMessage': 'Homepage'
+ "options.homepage.quote.title": {
+ "defaultMessage": "Quote"
},
- 'options.social.facebook.desc': {
- 'defaultMessage': 'Your \'Facebook\' username'
+ "options.homepage.signature.desc": {
+ "defaultMessage": "The signature text (follows the quote)."
},
- 'options.social.facebook.title': {
- 'defaultMessage': 'Facebook username'
+ "options.homepage.signature.title": {
+ "defaultMessage": "Signature"
},
- 'options.social.github.desc': {
- 'defaultMessage': 'Your \'Github\' username'
+ "options.homepage.slogan.desc": {
+ "defaultMessage": "The slogan text (with typewriter effect), recommend 10-20 characters."
},
- 'options.social.github.title': {
- 'defaultMessage': 'Github username'
+ "options.homepage.slogan.title": {
+ "defaultMessage": "Slogan"
},
- 'options.social.gitlab.desc': {
- 'defaultMessage': 'Your \'Gitlab\' username'
+ "options.homepageDesc": {
+ "defaultMessage": "Homepage options"
},
- 'options.social.gitlab.title': {
- 'defaultMessage': 'Gitlab username'
+ "options.homepageTitle": {
+ "defaultMessage": "Homepage"
},
- 'options.social.stackoverflow.desc': {
- 'defaultMessage': 'Your \'Stackoverflow\' username'
+ "options.social.facebook.desc": {
+ "defaultMessage": "Your 'Facebook' username"
},
- 'options.social.stackoverflow.title': {
- 'defaultMessage': 'Stackoverflow username'
+ "options.social.facebook.title": {
+ "defaultMessage": "Facebook username"
},
- 'options.social.twitter.desc': {
- 'defaultMessage': 'Your \'Twitter\' username'
+ "options.social.github.desc": {
+ "defaultMessage": "Your 'Github' username"
},
- 'options.social.twitter.title': {
- 'defaultMessage': 'Twitter username'
+ "options.social.github.title": {
+ "defaultMessage": "Github username"
},
- 'options.social.weibo.desc': {
- 'defaultMessage': 'Your \'Weibo\' username'
+ "options.social.gitlab.desc": {
+ "defaultMessage": "Your 'Gitlab' username"
},
- 'options.social.weibo.title': {
- 'defaultMessage': 'Weibo username'
+ "options.social.gitlab.title": {
+ "defaultMessage": "Gitlab username"
},
- 'options.thirdParty.reCaptcha.enable.desc': {
- 'defaultMessage': 'Use reCAPTCHA for anti-spam check.'
+ "options.social.stackoverflow.desc": {
+ "defaultMessage": "Your 'Stackoverflow' username"
},
- 'options.thirdParty.reCaptcha.enable.negativeLabel': {
- 'defaultMessage': 'Disabled'
+ "options.social.stackoverflow.title": {
+ "defaultMessage": "Stackoverflow username"
},
- 'options.thirdParty.reCaptcha.enable.positiveLabel': {
- 'defaultMessage': 'Enabled'
+ "options.social.twitter.desc": {
+ "defaultMessage": "Your 'Twitter' username"
},
- 'options.thirdParty.reCaptcha.enable.title': {
- 'defaultMessage': 'Enable reCAPTCHA'
+ "options.social.twitter.title": {
+ "defaultMessage": "Twitter username"
},
- 'options.thirdParty.reCaptcha.secretKey.title': {
- 'defaultMessage': 'reCAPTCHA secret key'
+ "options.social.weibo.desc": {
+ "defaultMessage": "Your 'Weibo' username"
},
- 'options.thirdParty.reCaptcha.siteKey.title': {
- 'defaultMessage': 'reCAPTCHA site key'
+ "options.social.weibo.title": {
+ "defaultMessage": "Weibo username"
},
- 'options.thirdParty.reCaptcha.version.desc': {
- 'defaultMessage': 'Register your reCAPTCHA app \'here\', and choose a version.'
+ "options.thirdParty.reCaptcha.enable.desc": {
+ "defaultMessage": "Use reCAPTCHA for anti-spam check."
},
- 'options.thirdParty.reCaptcha.version.label.v2': {
- 'defaultMessage': 'reCAPTCHA version 2'
+ "options.thirdParty.reCaptcha.enable.negativeLabel": {
+ "defaultMessage": "Disabled"
},
- 'options.thirdParty.reCaptcha.version.label.v3': {
- 'defaultMessage': 'reCAPTCHA version 3'
+ "options.thirdParty.reCaptcha.enable.positiveLabel": {
+ "defaultMessage": "Enabled"
},
- 'options.thirdParty.reCaptcha.version.title': {
- 'defaultMessage': 'reCAPTCHA version'
+ "options.thirdParty.reCaptcha.enable.title": {
+ "defaultMessage": "Enable reCAPTCHA"
},
- 'posts.comment.composer.authorEmail.label': {
- 'defaultMessage': 'Email *'
+ "options.thirdParty.reCaptcha.secretKey.title": {
+ "defaultMessage": "reCAPTCHA secret key"
},
- 'posts.comment.composer.authorName.label': {
- 'defaultMessage': 'Nickname *'
+ "options.thirdParty.reCaptcha.siteKey.title": {
+ "defaultMessage": "reCAPTCHA site key"
},
- 'posts.comment.composer.authorUrl.label': {
- 'defaultMessage': 'Link'
+ "options.thirdParty.reCaptcha.version.desc": {
+ "defaultMessage": "Register your reCAPTCHA app 'here', and choose a version."
},
- 'posts.comment.composer.captcha.toggleButton': {
- 'defaultMessage': 'Captcha'
+ "options.thirdParty.reCaptcha.version.label.v2": {
+ "defaultMessage": "reCAPTCHA version 2"
},
- 'posts.comment.composer.content.label': {
- 'defaultMessage': 'You are a surprise that I will only meet once in my life'
+ "options.thirdParty.reCaptcha.version.label.v3": {
+ "defaultMessage": "reCAPTCHA version 3"
},
- 'posts.comment.composer.submit.button': {
- 'defaultMessage': 'Submit'
+ "options.thirdParty.reCaptcha.version.title": {
+ "defaultMessage": "reCAPTCHA version"
},
- 'posts.comment.composer.tips.markdownSupported': {
- 'defaultMessage': 'Markdown Supported'
+ "posts.comment.composer.authorEmail.label": {
+ "defaultMessage": "Email *"
},
- 'posts.commentCount': {
- 'defaultMessage': '{commentCount, plural, =0 {No comment} =1 {One comment} other {{commentCount, number, ::compact-short} Comments}}'
+ "posts.comment.composer.authorName.label": {
+ "defaultMessage": "Nickname *"
},
- 'posts.postTimeOn.brief': {
- 'defaultMessage': '{publistTimeDate, date, long}'
+ "posts.comment.composer.authorUrl.label": {
+ "defaultMessage": "Link"
},
- 'posts.postTimeOn.full': {
- 'defaultMessage': 'Post on {publistTimeDate, date, long}'
+ "posts.comment.composer.captcha.toggleButton": {
+ "defaultMessage": "Captcha"
},
- 'posts.postTimeSince': {
- 'defaultMessage': 'Post {duration} ago'
+ "posts.comment.composer.content.label": {
+ "defaultMessage": "You are a surprise that I will only meet once in my life"
},
- 'posts.readCount': {
- 'defaultMessage': '{readCount, plural, =0 {No one ever read} =1 {One read} other {{readCount, number, ::compact-short} Reads}}'
+ "posts.comment.composer.submit.button": {
+ "defaultMessage": "Submit"
},
- 'posts.readMore': {
- 'defaultMessage': 'Read More'
+ "posts.comment.composer.tips.markdownSupported": {
+ "defaultMessage": "Markdown Supported"
},
- 'posts.wordCount': {
- 'defaultMessage': '{wordCount, plural, =0 {No content} =1 {One word} other {{wordCount, number, ::compact-short} Words}}'
+ "posts.commentCount": {
+ "defaultMessage": "{commentCount, plural, =0 {No comment} =1 {One comment} other {{commentCount, number, ::compact-short} Comments}}"
+ },
+ "posts.postTimeOn.brief": {
+ "defaultMessage": "{publistTimeDate, date, long}"
+ },
+ "posts.postTimeOn.full": {
+ "defaultMessage": "Post on {publistTimeDate, date, long}"
+ },
+ "posts.postTimeSince.brief": {
+ "defaultMessage": "{duration} ago"
+ },
+ "posts.postTimeSince.full": {
+ "defaultMessage": "Post {duration} ago"
+ },
+ "posts.readCount": {
+ "defaultMessage": "{readCount, plural, =0 {No one ever read} =1 {One read} other {{readCount, number, ::compact-short} Reads}}"
+ },
+ "posts.readMore": {
+ "defaultMessage": "Read More"
+ },
+ "posts.wordCount": {
+ "defaultMessage": "{wordCount, plural, =0 {No content} =1 {One word} other {{wordCount, number, ::compact-short} Words}}"
}
}
diff --git a/src/utils/filters/publishTime.ts b/src/utils/filters/publishTime.ts
index 9f47c2c..ca20a84 100644
--- a/src/utils/filters/publishTime.ts
+++ b/src/utils/filters/publishTime.ts
@@ -14,7 +14,7 @@ export default function (publishTime: string, brief = false) {
)
: intl.formatMessage(
{
- id: 'posts.postTimeSince',
+ id: 'posts.postTimeSince.brief',
defaultMessage: '{duration} ago',
},
{ duration: publistTimeDate.getReadableTimeFromNowBrief() }
@@ -30,7 +30,7 @@ export default function (publishTime: string, brief = false) {
)
: intl.formatMessage(
{
- id: 'posts.postTimeSince',
+ id: 'posts.postTimeSince.full',
defaultMessage: 'Post {duration} ago',
},
{ duration: publistTimeDate.getReadableTimeFromNow() }
diff --git a/src/utils/timeFormater.ts b/src/utils/timeFormater.ts
index 778114e..c2c824c 100644
--- a/src/utils/timeFormater.ts
+++ b/src/utils/timeFormater.ts
@@ -83,7 +83,7 @@ export default class timeFormater {
)
const month = intl.formatMessage(
{
- id: 'app.common.units.year',
+ id: 'app.common.units.month',
defaultMessage:
'{num, plural, =0 {just now} =1 {1 month} other {{num, number, ::compact-short} monthes}}',
},
@@ -91,7 +91,7 @@ export default class timeFormater {
)
const day = intl.formatMessage(
{
- id: 'app.common.units.year',
+ id: 'app.common.units.day',
defaultMessage:
'{num, plural, =0 {just now} =1 {1 day} other {{num, number, ::compact-short} days}}',
},
@@ -99,7 +99,7 @@ export default class timeFormater {
)
const hour = intl.formatMessage(
{
- id: 'app.common.units.year',
+ id: 'app.common.units.hour',
defaultMessage:
'{num, plural, =0 {just now} =1 {1 hour} other {{num, number, ::compact-short} hours}}',
},
@@ -107,7 +107,7 @@ export default class timeFormater {
)
const minute = intl.formatMessage(
{
- id: 'app.common.units.year',
+ id: 'app.common.units.minute',
defaultMessage:
'{num, plural, =0 {just now} =1 {1 minute} other {{num, number, ::compact-short} minutes}}',
},
@@ -115,7 +115,7 @@ export default class timeFormater {
)
const second = intl.formatMessage(
{
- id: 'app.common.units.year',
+ id: 'app.common.units.second',
defaultMessage:
'{num, plural, =0 {just now} =1 {1 second} other {{num, number, ::compact-short} seconds}}',
},