diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-03-23 12:29:43 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-03-23 12:29:43 +0100 |
| commit | 4e7a96c5a831882463802cdd4f84fe1464969cb0 (patch) | |
| tree | 528e2766120465bd74e94a8f5d37db7c3cd5a3cc | |
| parent | 3a20d3ef2d6fcb6c77ca5ad6aeaf6179d23ecb3e (diff) | |
refactor: use formatjs swc plugin
I'm not able to configure SWC plugins in Next.js so to make it works,
all translation must have an id.
65 files changed, 237 insertions, 7 deletions
@@ -1,7 +1,6 @@ { "presets": ["next/babel"], "plugins": [ - ["formatjs", { "ast": true }], [ "prismjs", { diff --git a/.eslintrc.json b/.eslintrc.json index 46d209f..e79fc56 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -2,6 +2,13 @@ "extends": ["next/core-web-vitals", "prettier"], "plugins": ["formatjs"], "rules": { - "formatjs/enforce-default-message": ["error", "literal"] + "formatjs/enforce-default-message": ["error", "literal"], + "formatjs/enforce-description": ["error", "literal"], + "formatjs/enforce-id": [ + "error", + { + "idInterpolationPattern": "[sha512:contenthash:base64:6]" + } + ] } } diff --git a/package.json b/package.json index d522db3..33fd42f 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "test:watch": "jest --watch" }, "dependencies": { + "@formatjs/swc-plugin": "^1.3.2", "@mdx-js/loader": "^2.0.0", "@mdx-js/react": "^2.0.0", "@next/bundle-analyzer": "^12.1.0", @@ -45,7 +46,6 @@ "feed": "^4.2.2", "graphql": "^16.1.0", "graphql-request": "^4.1.0", - "intl-messageformat": "^9.11.4", "modern-normalize": "^1.1.0", "next": "^12.1.0", "next-sitemap": "^2.5.7", diff --git a/src/components/Branding/Branding.tsx b/src/components/Branding/Branding.tsx index 5c76fd2..b19116d 100644 --- a/src/components/Branding/Branding.tsx +++ b/src/components/Branding/Branding.tsx @@ -76,6 +76,7 @@ const Branding: BrandingReturn = ({ isHome = false }) => { { defaultMessage: '{brandingName} picture', description: 'Branding: branding name picture.', + id: 'ILRLTq', }, { brandingName: settings.name, diff --git a/src/components/Breadcrumb/Breadcrumb.tsx b/src/components/Breadcrumb/Breadcrumb.tsx index 92350c0..a7b945a 100644 --- a/src/components/Breadcrumb/Breadcrumb.tsx +++ b/src/components/Breadcrumb/Breadcrumb.tsx @@ -25,6 +25,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { {intl.formatMessage({ defaultMessage: 'Home', description: 'Breadcrumb: Home item', + id: 'Enij19', })} </a> </Link> @@ -37,6 +38,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { {intl.formatMessage({ defaultMessage: 'Blog', description: 'Breadcrumb: Blog item', + id: 'z0ic9c', })} </a> </Link> @@ -51,6 +53,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { {intl.formatMessage({ defaultMessage: 'Projects', description: 'Breadcrumb: Projects item', + id: 'Igx3qp', })} </a> </Link> @@ -70,6 +73,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { name: intl.formatMessage({ defaultMessage: 'Home', description: 'Breadcrumb: Home item', + id: 'Enij19', }), item: settings.url, }; @@ -83,6 +87,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { name: intl.formatMessage({ defaultMessage: 'Blog', description: 'Breadcrumb: Blog item', + id: 'z0ic9c', }), item: `${settings.url}/blog`, }; @@ -97,6 +102,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { name: intl.formatMessage({ defaultMessage: 'Projects', description: 'Breadcrumb: Projects item', + id: 'Igx3qp', }), item: `${settings.url}/projets`, }; @@ -136,6 +142,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => { {intl.formatMessage({ defaultMessage: 'You are here:', description: 'Breadcrumb: You are here prefix', + id: '16zl9Z', })} </span> <ol className={styles.list}>{getItems()}</ol> diff --git a/src/components/Buttons/ButtonHelp/ButtonHelp.tsx b/src/components/Buttons/ButtonHelp/ButtonHelp.tsx index 252e58c..2616a8f 100644 --- a/src/components/Buttons/ButtonHelp/ButtonHelp.tsx +++ b/src/components/Buttons/ButtonHelp/ButtonHelp.tsx @@ -32,6 +32,7 @@ const ButtonHelp = ({ {intl.formatMessage({ defaultMessage: 'Help', description: 'ButtonHelp: screen reader text', + id: 'oPf+XA', })} </span> </button> diff --git a/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx b/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx index e9f6079..7ceb70d 100644 --- a/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx +++ b/src/components/Buttons/ButtonToolbar/ButtonToolbar.tsx @@ -44,6 +44,7 @@ const ButtonToolbar = ( { defaultMessage: 'Close {type}', description: 'ButtonToolbar: Close button', + id: 'SWq8a4', }, { type, @@ -56,6 +57,7 @@ const ButtonToolbar = ( { defaultMessage: 'Open {type}', description: 'ButtonToolbar: Open button', + id: 'Z1eSIz', }, { type, diff --git a/src/components/Comment/Comment.tsx b/src/components/Comment/Comment.tsx index e20c5aa..355363b 100644 --- a/src/components/Comment/Comment.tsx +++ b/src/components/Comment/Comment.tsx @@ -56,6 +56,7 @@ const Comment = ({ { defaultMessage: '{date} at {time}', description: 'Comment: publication date', + id: 'CT3ydM', }, { date, @@ -88,6 +89,7 @@ const Comment = ({ {intl.formatMessage({ defaultMessage: 'Published on:', description: 'Comment: publication date label', + id: 'soj7do', })} </dt> <dd> @@ -109,10 +111,12 @@ const Comment = ({ ? intl.formatMessage({ defaultMessage: 'Cancel reply', description: 'Comment: reply button', + id: 'e1Forh', }) : intl.formatMessage({ defaultMessage: 'Reply', description: 'Comment: reply button', + id: 'hzHuCc', })} </Button> </footer> @@ -148,6 +152,7 @@ const Comment = ({ {intl.formatMessage({ defaultMessage: 'This comment is awaiting moderation.', description: 'Comment: awaiting moderation message', + id: 'rXeTkM', })} </p> ); diff --git a/src/components/CommentForm/CommentForm.tsx b/src/components/CommentForm/CommentForm.tsx index eb7c100..128dc58 100644 --- a/src/components/CommentForm/CommentForm.tsx +++ b/src/components/CommentForm/CommentForm.tsx @@ -63,6 +63,7 @@ const CommentForm = ({ intl.formatMessage({ defaultMessage: 'Thanks for your comment!', description: 'CommentForm: success notice', + id: 'AVUUgG', }) ); } else { @@ -71,6 +72,7 @@ const CommentForm = ({ defaultMessage: 'Thanks for your comment! It is now awaiting moderation.', description: 'CommentForm: success notice but awaiting moderation', + id: 'Ul2NIl', }) ); } @@ -85,6 +87,7 @@ const CommentForm = ({ defaultMessage: 'An unexpected error happened. Comment cannot be submitted.', description: 'CommentForm: error notice', + id: 'cjK9Ad', }) ); } @@ -105,6 +108,7 @@ const CommentForm = ({ defaultMessage: 'Some required fields are empty. Comment cannot be submitted.', description: 'CommentForm: missing required fields', + id: 'Rle+UK', }) ); } @@ -126,21 +130,25 @@ const CommentForm = ({ const nameLabelBody = intl.formatMessage({ defaultMessage: 'Name', description: 'CommentForm: Name field label', + id: 'F7QxJH', }); const emailLabelBody = intl.formatMessage({ defaultMessage: 'Email', description: 'CommentForm: Email field label', + id: 'Oim3rQ', }); const websiteLabelBody = intl.formatMessage({ defaultMessage: 'Website', description: 'CommentForm: Website field label', + id: 'jN+dY5', }); const commentLabelBody = intl.formatMessage({ defaultMessage: 'Comment', description: 'CommentForm: Comment field label', + id: 'J4nhm4', }); return ( @@ -149,6 +157,7 @@ const CommentForm = ({ {intl.formatMessage({ defaultMessage: 'Leave a comment', description: 'CommentForm: Form title', + id: '+aHn7j', })} </h2> <Form @@ -202,12 +211,14 @@ const CommentForm = ({ {intl.formatMessage({ defaultMessage: 'Javascript is required to post a comment.', description: 'CommentForm: noscript tag', + id: 'g1cFCa', })} </noscript> <ButtonSubmit> {intl.formatMessage({ defaultMessage: 'Send', description: 'CommentForm: Send button', + id: 'WGFOmA', })} </ButtonSubmit> </FormItem> @@ -217,6 +228,7 @@ const CommentForm = ({ message={intl.formatMessage({ defaultMessage: 'Submitting...', description: 'CommentForm: submitting message', + id: 'HEJ3Gv', })} /> )} diff --git a/src/components/CommentsList/CommentsList.tsx b/src/components/CommentsList/CommentsList.tsx index 4ea2fc2..0eaac17 100644 --- a/src/components/CommentsList/CommentsList.tsx +++ b/src/components/CommentsList/CommentsList.tsx @@ -25,6 +25,7 @@ const CommentsList = ({ return intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'CommentsList: failed to load', + id: 'Zlkww3', }); } @@ -47,6 +48,7 @@ const CommentsList = ({ {intl.formatMessage({ defaultMessage: 'Comments', description: 'CommentsList: Comments section title', + id: 'Ns8CFb', })} </h2> {data && data.length > 0 ? ( @@ -56,6 +58,7 @@ const CommentsList = ({ {intl.formatMessage({ defaultMessage: 'No comments yet.', description: 'CommentsList: No comment message', + id: 'e9L59q', })} </p> )} diff --git a/src/components/ContactForm/ContactForm.tsx b/src/components/ContactForm/ContactForm.tsx index 48772a0..5af6982 100644 --- a/src/components/ContactForm/ContactForm.tsx +++ b/src/components/ContactForm/ContactForm.tsx @@ -34,6 +34,7 @@ const ContactForm = () => { defaultMessage: 'Warning: mail not sent. Some required fields are empty.', description: 'ContactForm: missing fields message.', + id: 'WpycgB', }) ); return; @@ -57,6 +58,7 @@ const ContactForm = () => { defaultMessage: 'Thanks. Your message was successfully sent. I will answer it as soon as possible.', description: 'ContactForm: success message', + id: 'gQKeF+', }) ); resetForm(); @@ -64,6 +66,7 @@ const ContactForm = () => { const errorPrefix = intl.formatMessage({ defaultMessage: 'An error occurred:', description: 'ContactForm: error message', + id: 'pTxT7N', }); const error = `${errorPrefix} ${mail.message}`; setStatus('error'); @@ -94,21 +97,25 @@ const ContactForm = () => { const nameLabelBody = intl.formatMessage({ defaultMessage: 'Name', description: 'ContactForm: name field label', + id: '6ibqFS', }); const emailLabelBody = intl.formatMessage({ defaultMessage: 'Email', description: 'ContactForm: email field label', + id: 'Vuryko', }); const subjectLabelBody = intl.formatMessage({ defaultMessage: 'Subject', description: 'ContactForm: subject field label', + id: 'uMURuJ', }); const messageLabelBody = intl.formatMessage({ defaultMessage: 'Message', description: 'ContactForm: message field label', + id: '0zBQpa', }); return ( @@ -160,6 +167,7 @@ const ContactForm = () => { {intl.formatMessage({ defaultMessage: 'Send', description: 'ContactForm: send button text', + id: 'X7n7N2', })} </ButtonSubmit> </FormItem> diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 4aa980d..381b4a8 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -41,6 +41,7 @@ const Footer = () => { {intl.formatMessage({ defaultMessage: 'Back to top', description: 'Footer: Back to top button', + id: 'dqrd6I', })} </span> <ArrowIcon direction="top" /> diff --git a/src/components/FooterNav/FooterNav.tsx b/src/components/FooterNav/FooterNav.tsx index 7167b69..763e951 100644 --- a/src/components/FooterNav/FooterNav.tsx +++ b/src/components/FooterNav/FooterNav.tsx @@ -12,6 +12,7 @@ const FooterNav = () => { name: intl.formatMessage({ defaultMessage: 'Legal notice', description: 'FooterNav: legal notice link', + id: 'yWjXRx', }), slug: '/mentions-legales', }, @@ -33,6 +34,7 @@ const FooterNav = () => { aria-label={intl.formatMessage({ defaultMessage: 'Footer', description: 'FooterNav: aria-label', + id: 'HTdaZj', })} > <ul className={styles.list}>{navItems}</ul> diff --git a/src/components/Icons/Moon/Moon.tsx b/src/components/Icons/Moon/Moon.tsx index acdf6ae..26f56a1 100644 --- a/src/components/Icons/Moon/Moon.tsx +++ b/src/components/Icons/Moon/Moon.tsx @@ -14,6 +14,7 @@ const MoonIcon = () => { {intl.formatMessage({ defaultMessage: 'Dark theme', description: 'Icons: Moon icon (dark theme)', + id: 'ode0YK', })} </title> <path d="M 51.077315,1.9893942 A 43.319985,43.319985 0 0 1 72.840039,39.563145 43.319985,43.319985 0 0 1 29.520053,82.88313 43.319985,43.319985 0 0 1 5.4309911,75.569042 48.132997,48.132997 0 0 0 46.126047,98 48.132997,48.132997 0 0 0 94.260004,49.867002 48.132997,48.132997 0 0 0 51.077315,1.9893942 Z" /> diff --git a/src/components/Icons/Sun/Sun.tsx b/src/components/Icons/Sun/Sun.tsx index 44945c2..12f47d3 100644 --- a/src/components/Icons/Sun/Sun.tsx +++ b/src/components/Icons/Sun/Sun.tsx @@ -14,6 +14,7 @@ const SunIcon = () => { {intl.formatMessage({ defaultMessage: 'Light theme', description: 'Icons: Sun icon (light theme)', + id: 'KeRtm/', })} </title> <path d="M 69.398043,50.000437 A 19.399259,19.399204 0 0 1 49.998784,69.399641 19.399259,19.399204 0 0 1 30.599525,50.000437 19.399259,19.399204 0 0 1 49.998784,30.601234 19.399259,19.399204 0 0 1 69.398043,50.000437 Z m 27.699233,1.125154 c 2.657696,0.0679 1.156196,12.061455 -1.435545,11.463959 L 80.113224,59.000697 c -2.589801,-0.597494 -1.625657,-8.345536 1.032041,-8.278609 z m -18.06653,37.251321 c 1.644087,2.091234 -9.030355,8.610337 -10.126414,6.188346 L 62.331863,80.024585 c -1.096058,-2.423931 5.197062,-6.285342 6.839209,-4.194107 z M 38.611418,97.594444 C 38.02653,100.18909 26.24148,95.916413 27.436475,93.54001 l 7.168026,-14.256474 c 1.194024,-2.376403 8.102101,0.151313 7.517214,2.744986 z M 6.1661563,71.834242 C 3.7916868,73.028262 -0.25499873,61.16274 2.3386824,60.577853 L 17.905618,57.067567 c 2.593681,-0.584886 4.894434,6.403678 2.518995,7.598668 z M 6.146757,30.055146 c -2.3764094,-1.194991 4.46571,-11.714209 6.479353,-9.97798 l 12.090589,10.414462 c 2.014613,1.736229 -1.937017,7.926514 -4.314396,6.731524 z M 38.56777,4.2639045 C 37.982883,1.6682911 50.480855,0.41801247 50.415868,3.0766733 L 50.020123,19.028638 c -0.06596,2.657691 -7.357169,3.394862 -7.943027,0.800218 z m 40.403808,9.1622435 c 1.635357,-2.098023 10.437771,6.872168 8.339742,8.506552 l -12.58818,9.805327 c -2.099,1.634383 -7.192276,-3.626682 -5.557888,-5.724706 z M 97.096306,50.69105 c 2.657696,-0.06596 1.164926,12.462047 -1.425846,11.863582 L 80.122924,58.96578 c -2.590771,-0.597496 -1.636327,-7.814 1.021371,-7.879957 z" /> diff --git a/src/components/Layouts/Layout.tsx b/src/components/Layouts/Layout.tsx index 23c1d0e..ada32b3 100644 --- a/src/components/Layouts/Layout.tsx +++ b/src/components/Layouts/Layout.tsx @@ -121,6 +121,7 @@ const Layout = ({ {intl.formatMessage({ defaultMessage: 'Skip to content', description: 'Layout: Skip to content button', + id: 'iqAbyn', })} </a> <Header isHome={isHome} /> @@ -132,6 +133,7 @@ const Layout = ({ defaultMessage: 'Without Javascript, some features may not work like loading more posts or use search. If you want to benefit from these features, please activate Javascript.', description: 'Layout: noscript banner', + id: 'LR70nt', })} </div> </noscript> diff --git a/src/components/MDX/CodeBlock/CodeBlock.tsx b/src/components/MDX/CodeBlock/CodeBlock.tsx index b5cb30e..69f0124 100644 --- a/src/components/MDX/CodeBlock/CodeBlock.tsx +++ b/src/components/MDX/CodeBlock/CodeBlock.tsx @@ -35,22 +35,27 @@ const CodeBlock = ({ const copyText = intl.formatMessage({ defaultMessage: 'Copy', description: 'Prism: copy button text (no clicked)', + id: '/ly3AC', }); const copiedText = intl.formatMessage({ defaultMessage: 'Copied!', description: 'Prism: copy button text (clicked)', + id: 'OV9r1K', }); const errorText = intl.formatMessage({ defaultMessage: 'Use Ctrl+c to copy', description: 'Prism: error text', + id: 'z9qkcQ', }); const darkTheme = intl.formatMessage({ defaultMessage: 'Dark Theme 🌙', description: 'Prism: toggle dark theme button text', + id: 'nFMdWI', }); const lightTheme = intl.formatMessage({ defaultMessage: 'Light Theme 🌞', description: 'Prism: toggle light theme button text', + id: 'Ua2g2p', }); return ( diff --git a/src/components/MainNav/MainNav.tsx b/src/components/MainNav/MainNav.tsx index dcaba30..9cb6b4c 100644 --- a/src/components/MainNav/MainNav.tsx +++ b/src/components/MainNav/MainNav.tsx @@ -32,6 +32,7 @@ const MainNav = ( name: intl.formatMessage({ defaultMessage: 'Home', description: 'MainNav: home link', + id: 'ZJMNRW', }), slug: '/', }, @@ -40,6 +41,7 @@ const MainNav = ( name: intl.formatMessage({ defaultMessage: 'Blog', description: 'MainNav: blog link', + id: 'zPJifH', }), slug: '/blog', }, @@ -48,6 +50,7 @@ const MainNav = ( name: intl.formatMessage({ defaultMessage: 'Projects', description: 'MainNav: projects link', + id: 'akSutM', }), slug: '/projets', }, @@ -56,6 +59,7 @@ const MainNav = ( name: intl.formatMessage({ defaultMessage: 'Resume', description: 'MainNav: resume link', + id: 'jpv+Nz', }), slug: '/cv', }, @@ -64,6 +68,7 @@ const MainNav = ( name: intl.formatMessage({ defaultMessage: 'Contact', description: 'MainNav: contact link', + id: 'c2NtPj', }), slug: '/contact', }, @@ -124,10 +129,12 @@ const MainNav = ( ? intl.formatMessage({ defaultMessage: 'Close menu', description: 'MainNav: close button', + id: 'dE8xxV', }) : intl.formatMessage({ defaultMessage: 'Open menu', description: 'MainNav: open button', + id: 'azc1GT', })} </span> </label> @@ -136,6 +143,7 @@ const MainNav = ( aria-label={intl.formatMessage({ defaultMessage: 'Primary', description: 'MainNav: aria-label', + id: 'H7C5Bk', })} > <ul className={styles.list}>{navItems}</ul> diff --git a/src/components/MetaItems/Author/Author.tsx b/src/components/MetaItems/Author/Author.tsx index c3d78c2..4ff0086 100644 --- a/src/components/MetaItems/Author/Author.tsx +++ b/src/components/MetaItems/Author/Author.tsx @@ -10,6 +10,7 @@ const Author = ({ name, kind }: { name: string; kind: MetaKind }) => { title={intl.formatMessage({ defaultMessage: 'Written by:', description: 'Author: article author meta label', + id: 'jCyqZS', })} value={name} kind={kind} diff --git a/src/components/MetaItems/CommentsCount/CommentsCount.tsx b/src/components/MetaItems/CommentsCount/CommentsCount.tsx index bd1990d..04cffa6 100644 --- a/src/components/MetaItems/CommentsCount/CommentsCount.tsx +++ b/src/components/MetaItems/CommentsCount/CommentsCount.tsx @@ -15,6 +15,7 @@ const CommentsCount = ({ total, kind }: { total: number; kind: MetaKind }) => { defaultMessage: '{total, plural, =0 {No comments} one {# comment} other {# comments}}', description: 'CommentsCount: comment count value', + id: 'lKGNKx', }, { total } ); @@ -25,6 +26,7 @@ const CommentsCount = ({ total, kind }: { total: number; kind: MetaKind }) => { title={intl.formatMessage({ defaultMessage: 'Comments:', description: 'CommentsCount: comment count meta label', + id: '6BRtAu', })} value={ isArticle() ? ( diff --git a/src/components/MetaItems/Dates/Dates.tsx b/src/components/MetaItems/Dates/Dates.tsx index 04dff3a..4314ed9 100644 --- a/src/components/MetaItems/Dates/Dates.tsx +++ b/src/components/MetaItems/Dates/Dates.tsx @@ -27,6 +27,7 @@ const Dates = ({ title={intl.formatMessage({ defaultMessage: 'Published on:', description: 'Dates: publication date meta label', + id: '52Fev1', })} values={[ <time key={publication} dateTime={publication}> @@ -40,6 +41,7 @@ const Dates = ({ title={intl.formatMessage({ defaultMessage: 'Updated on:', description: 'Dates: update date meta label', + id: 'C+r/LF', })} values={[ <time key={update} dateTime={update}> diff --git a/src/components/MetaItems/PostsCount/PostsCount.tsx b/src/components/MetaItems/PostsCount/PostsCount.tsx index 9fb1784..679abcd 100644 --- a/src/components/MetaItems/PostsCount/PostsCount.tsx +++ b/src/components/MetaItems/PostsCount/PostsCount.tsx @@ -10,12 +10,14 @@ const PostsCount = ({ total, kind }: { total: number; kind: MetaKind }) => { title={intl.formatMessage({ defaultMessage: 'Total:', description: 'PostCount: total found articles meta label', + id: 'p1zZ/Z', })} value={intl.formatMessage( { defaultMessage: '{total, plural, =0 {No articles} one {# article} other {# articles}}', description: 'PostCount: total found articles', + id: '4EMSLO', }, { total } )} diff --git a/src/components/MetaItems/ReadingTime/ReadingTime.tsx b/src/components/MetaItems/ReadingTime/ReadingTime.tsx index 94215b3..79d6f3c 100644 --- a/src/components/MetaItems/ReadingTime/ReadingTime.tsx +++ b/src/components/MetaItems/ReadingTime/ReadingTime.tsx @@ -20,6 +20,7 @@ const ReadingTime = ({ return intl.formatMessage({ defaultMessage: 'less than 1 minute', description: 'ReadingTime: Reading time value', + id: 'ySsWZl', }); } @@ -28,6 +29,7 @@ const ReadingTime = ({ defaultMessage: '{time, plural, =0 {# minutes} one {# minute} other {# minutes}}', description: 'ReadingTime: reading time value', + id: 'wdqOpf', }, { time } ); @@ -38,12 +40,14 @@ const ReadingTime = ({ title={intl.formatMessage({ defaultMessage: 'Reading time:', description: 'ReadingTime: reading time meta label', + id: 'n0Gbod', })} value={getEstimation()} info={intl.formatMessage( { - defaultMessage: `Approximately {number} words`, + defaultMessage: 'Approximately {number} words', description: 'ReadingTime: number of words', + id: 'k7/SkN', }, { number: words.toLocaleString(locale) } )} diff --git a/src/components/MetaItems/Thematics/Thematics.tsx b/src/components/MetaItems/Thematics/Thematics.tsx index a127715..e655c5d 100644 --- a/src/components/MetaItems/Thematics/Thematics.tsx +++ b/src/components/MetaItems/Thematics/Thematics.tsx @@ -30,6 +30,7 @@ const Thematics = ({ defaultMessage: '{thematicsCount, plural, =0 {Thematics:} one {Thematic:} other {Thematics:}}', description: 'Thematics: thematics list meta label', + id: '1r4ujR', }, { thematicsCount: list.length } )} diff --git a/src/components/MetaItems/Topics/Topics.tsx b/src/components/MetaItems/Topics/Topics.tsx index 4f2dc1f..d5d90f0 100644 --- a/src/components/MetaItems/Topics/Topics.tsx +++ b/src/components/MetaItems/Topics/Topics.tsx @@ -24,6 +24,7 @@ const Topics = ({ list, kind }: { list: TopicPreview[]; kind: MetaKind }) => { defaultMessage: '{topicsCount, plural, =0 {Topics:} one {Topic:} other {Topics:}}', description: 'Topics: topics list meta label', + id: '0pp/IQ', }, { topicsCount: list.length } )} diff --git a/src/components/MetaItems/Website/Website.tsx b/src/components/MetaItems/Website/Website.tsx index bcf3fc8..7d2dc06 100644 --- a/src/components/MetaItems/Website/Website.tsx +++ b/src/components/MetaItems/Website/Website.tsx @@ -10,6 +10,7 @@ const Website = ({ url, kind }: { url: string; kind: MetaKind }) => { title={intl.formatMessage({ defaultMessage: 'Website:', description: 'Website: website meta label', + id: 'JsOoAW', })} value={<a href={url}>{url}</a>} kind={kind} diff --git a/src/components/Pagination/Pagination.tsx b/src/components/Pagination/Pagination.tsx index 2c24a8c..55c366a 100644 --- a/src/components/Pagination/Pagination.tsx +++ b/src/components/Pagination/Pagination.tsx @@ -23,6 +23,7 @@ const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => { { defaultMessage: '{icon} Previous page', description: 'Pagination: previous page link', + id: 'aMFqPH', }, { icon: '←' } )} @@ -41,6 +42,7 @@ const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => { { defaultMessage: 'Next page {icon}', description: 'Pagination: Next page link', + id: 'R4yaW6', }, { icon: '→' } )} @@ -62,6 +64,7 @@ const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => { { defaultMessage: '<a11y>Page </a11y>{number}', description: 'Pagination: page number', + id: 'TSXPzr', }, { number: i, @@ -83,6 +86,7 @@ const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => { { defaultMessage: '<a11y>Page </a11y>{number}', description: 'Pagination: page number', + id: 'TSXPzr', }, { number: i, @@ -117,6 +121,7 @@ const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => { {intl.formatMessage({ defaultMessage: 'Pagination', description: 'Pagination: pagination title', + id: 'BAkq7J', })} </h2> <ul className={styles.list}> diff --git a/src/components/PaginationCursor/PaginationCursor.tsx b/src/components/PaginationCursor/PaginationCursor.tsx index 3b0c15f..d64f961 100644 --- a/src/components/PaginationCursor/PaginationCursor.tsx +++ b/src/components/PaginationCursor/PaginationCursor.tsx @@ -18,6 +18,7 @@ const PaginationCursor = ({ defaultMessage: '{articlesCount, plural, =0 {# loaded articles} one {# loaded article} other {# loaded articles}} out of a total of {total}', description: 'PaginationCursor: loaded articles count message', + id: 'du4MLN', }, { articlesCount: current, total } )} @@ -32,6 +33,7 @@ const PaginationCursor = ({ defaultMessage: 'Number of articles loaded out of the total available.', description: 'PaginationCursor: loaded articles count aria-label', + id: 'mC21ht', })} ></progress> </div> diff --git a/src/components/PostFooter/PostFooter.tsx b/src/components/PostFooter/PostFooter.tsx index 6c97ec2..9bc4053 100644 --- a/src/components/PostFooter/PostFooter.tsx +++ b/src/components/PostFooter/PostFooter.tsx @@ -37,6 +37,7 @@ const PostFooter = ({ topics }: { topics: TopicPreview[] }) => { {intl.formatMessage({ defaultMessage: 'Read more articles about:', description: 'PostFooter: read more posts about given subjects', + id: 'YEudoh', })} </dt> <dd> diff --git a/src/components/PostPreview/PostPreview.tsx b/src/components/PostPreview/PostPreview.tsx index 8b20eca..0b9e332 100644 --- a/src/components/PostPreview/PostPreview.tsx +++ b/src/components/PostPreview/PostPreview.tsx @@ -100,6 +100,7 @@ const PostPreview = ({ <FormattedMessage defaultMessage="Read more<a11y> about {title}</a11y>" description="PostPreview: read more link" + id="bkbrN7" values={{ title, a11y: (chunks: string) => ( diff --git a/src/components/PostsList/PostsList.tsx b/src/components/PostsList/PostsList.tsx index b57630e..f998846 100644 --- a/src/components/PostsList/PostsList.tsx +++ b/src/components/PostsList/PostsList.tsx @@ -37,6 +37,7 @@ const PostsList = ( {intl.formatMessage({ defaultMessage: 'Published on', description: 'PostsList: published on year label', + id: 'EvODgw', })}{' '} </span> {year} @@ -77,6 +78,7 @@ const PostsList = ( {intl.formatMessage({ defaultMessage: 'No results found.', description: 'PostsList: no results', + id: 'vK7Sxv', })} </p> ); diff --git a/src/components/ProjectPreview/ProjectPreview.tsx b/src/components/ProjectPreview/ProjectPreview.tsx index 043d945..1e1ced2 100644 --- a/src/components/ProjectPreview/ProjectPreview.tsx +++ b/src/components/ProjectPreview/ProjectPreview.tsx @@ -25,6 +25,7 @@ const ProjectPreview = ({ project }: { project: Project }) => { { defaultMessage: '{title} picture', description: 'ProjectPreview: cover alt text', + id: '2pykor', }, { title } )} @@ -49,6 +50,7 @@ const ProjectPreview = ({ project }: { project: Project }) => { defaultMessage: '{count, plural, =0 {Technologies:} one {Technology:} other {Technologies:}}', description: 'ProjectPreview: technologies list label', + id: 'okFrAO', }, { count: meta.technologies.length } )} diff --git a/src/components/ProjectSummary/ProjectSummary.tsx b/src/components/ProjectSummary/ProjectSummary.tsx index e51015e..79e783e 100644 --- a/src/components/ProjectSummary/ProjectSummary.tsx +++ b/src/components/ProjectSummary/ProjectSummary.tsx @@ -33,6 +33,7 @@ const ProjectSummary = ({ alt={intl.formatMessage({ defaultMessage: '{title} preview', description: 'ProjectSummary: cover alt text', + id: 'mh7tGg', })} layout="fill" objectFit="contain" @@ -46,6 +47,7 @@ const ProjectSummary = ({ {intl.formatMessage({ defaultMessage: 'Created on:', description: 'ProjectSummary: creation date label', + id: 'CWi0go', })} </dt> <dd> @@ -61,6 +63,7 @@ const ProjectSummary = ({ {intl.formatMessage({ defaultMessage: 'Last updated on:', description: 'ProjectSummary: update date label', + id: 'vJ+QDV', })} </dt> <dd> @@ -75,6 +78,7 @@ const ProjectSummary = ({ {intl.formatMessage({ defaultMessage: 'License:', description: 'ProjectSummary: license label', + id: 'hKagVG', })} </dt> <dd>{license}</dd> @@ -87,6 +91,7 @@ const ProjectSummary = ({ defaultMessage: '{count, plural, =0 {Technologies:} one {Technology:} other {Technologies:}}', description: 'ProjectSummary: technologies list label', + id: 'enwhNm', }, { count: technologies.length } )} @@ -109,6 +114,7 @@ const ProjectSummary = ({ defaultMessage: '{count, plural, =0 {Repositories:} one {Repository:} other {Repositories:}}', description: 'ProjectSummary: repositories list label', + id: 'OTTv+m', }, { count: Object.keys(repos).length } )} @@ -143,6 +149,7 @@ const ProjectSummary = ({ {intl.formatMessage({ defaultMessage: 'Popularity:', description: 'ProjectSummary: popularity label', + id: 'vgMk0q', })} </dt> {repos.github && ( @@ -154,6 +161,7 @@ const ProjectSummary = ({ defaultMessage: '{starsCount, plural, =0 {0 stars on Github} one {# star on Github} other {# stars on Github}}', description: 'ProjectSummary: technologies list label', + id: 'aA3hOT', }, { starsCount: data.stargazers_count } )} diff --git a/src/components/SearchForm/SearchForm.tsx b/src/components/SearchForm/SearchForm.tsx index fe809a3..f4735af 100644 --- a/src/components/SearchForm/SearchForm.tsx +++ b/src/components/SearchForm/SearchForm.tsx @@ -32,6 +32,7 @@ const SearchForm = ({ isOpened }: { isOpened: boolean }) => { {intl.formatMessage({ defaultMessage: 'Search', description: 'SearchForm : form title', + id: 'eFMu2E', })} </div> <Form submitHandler={launchSearch} kind="search" id="search"> @@ -39,6 +40,7 @@ const SearchForm = ({ isOpened }: { isOpened: boolean }) => { {intl.formatMessage({ defaultMessage: 'Keywords:', description: 'SearchForm: search field label', + id: 'YvMPuD', })} </label> <Field @@ -56,6 +58,7 @@ const SearchForm = ({ isOpened }: { isOpened: boolean }) => { {intl.formatMessage({ defaultMessage: 'Search', description: 'SearchForm: search button text', + id: 'AnaPbu', })} </span> </ButtonSubmit> diff --git a/src/components/Settings/AckeeSelect/AckeeSelect.tsx b/src/components/Settings/AckeeSelect/AckeeSelect.tsx index e1a8ed8..f711fe2 100644 --- a/src/components/Settings/AckeeSelect/AckeeSelect.tsx +++ b/src/components/Settings/AckeeSelect/AckeeSelect.tsx @@ -14,6 +14,7 @@ const AckeeSelect = () => { name: intl.formatMessage({ defaultMessage: 'Partial', description: 'AckeeSelect: partial option name', + id: 'e/8Kyj', }), value: 'partial', }, @@ -22,6 +23,7 @@ const AckeeSelect = () => { name: intl.formatMessage({ defaultMessage: 'Full', description: 'AckeeSelect: full option name', + id: 'PzRpPw', }), value: 'full', }, @@ -47,6 +49,7 @@ const AckeeSelect = () => { body={intl.formatMessage({ defaultMessage: 'Tracking:', description: 'AckeeSelect: select label', + id: '2pmylc', })} htmlFor="ackee-settings" kind="settings" @@ -57,11 +60,13 @@ const AckeeSelect = () => { intl.formatMessage({ defaultMessage: 'Partial includes only page url, views and duration.', description: 'AckeeSelect: tooltip message', + id: 'skb4W5', }), intl.formatMessage({ defaultMessage: 'Full includes all information from partial as well as information about referrer, operating system, device, browser, screen size and language.', description: 'AckeeSelect: tooltip message', + id: 'Ogccx6', }), ]; @@ -81,6 +86,7 @@ const AckeeSelect = () => { title={intl.formatMessage({ defaultMessage: 'Ackee tracking (analytics)', description: 'AckeeSelect: tooltip title', + id: 'F1EQX3', })} /> </div> diff --git a/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx b/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx index 6f42f86..9707097 100644 --- a/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx +++ b/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx @@ -37,6 +37,7 @@ const PrismThemeToggle = () => { label={intl.formatMessage({ defaultMessage: 'Code blocks:', description: 'PrismThemeToggle: toggle label', + id: 'w0UfY0', })} leftChoice={<SunIcon />} rightChoice={<MoonIcon />} diff --git a/src/components/Settings/ReduceMotion/ReduceMotion.tsx b/src/components/Settings/ReduceMotion/ReduceMotion.tsx index d0f7980..00562cd 100644 --- a/src/components/Settings/ReduceMotion/ReduceMotion.tsx +++ b/src/components/Settings/ReduceMotion/ReduceMotion.tsx @@ -27,14 +27,17 @@ const ReduceMotion = () => { label={intl.formatMessage({ defaultMessage: 'Animations:', description: 'ReduceMotion: toggle label', + id: 'X3PDXO', })} leftChoice={intl.formatMessage({ defaultMessage: 'On', description: 'ReduceMotion: toggle on label', + id: 'qPU/Qn', })} rightChoice={intl.formatMessage({ defaultMessage: 'Off', description: 'ReduceMotion: toggle off label', + id: 'w1nIrj', })} value={isDeactivated} changeHandler={updateState} diff --git a/src/components/Settings/Settings.tsx b/src/components/Settings/Settings.tsx index 4ccb895..fec4c45 100644 --- a/src/components/Settings/Settings.tsx +++ b/src/components/Settings/Settings.tsx @@ -16,6 +16,7 @@ const Settings = () => { {intl.formatMessage({ defaultMessage: 'Settings', description: 'Settings: modal title', + id: 'bHEmkY', })} </div> <ThemeToggle /> diff --git a/src/components/Settings/ThemeToggle/ThemeToggle.tsx b/src/components/Settings/ThemeToggle/ThemeToggle.tsx index 77b2797..ec2cee1 100644 --- a/src/components/Settings/ThemeToggle/ThemeToggle.tsx +++ b/src/components/Settings/ThemeToggle/ThemeToggle.tsx @@ -28,6 +28,7 @@ const ThemeToggle = () => { label={intl.formatMessage({ defaultMessage: 'Theme:', description: 'ThemeToggle: toggle label', + id: 'O9XLDc', })} leftChoice={<SunIcon />} rightChoice={<MoonIcon />} diff --git a/src/components/Spinner/Spinner.tsx b/src/components/Spinner/Spinner.tsx index afe86f6..9117d90 100644 --- a/src/components/Spinner/Spinner.tsx +++ b/src/components/Spinner/Spinner.tsx @@ -14,6 +14,7 @@ const Spinner = ({ message }: { message?: string }) => { intl.formatMessage({ defaultMessage: 'Loading...', description: 'Spinner: loading text', + id: 'q9cJQe', })} </div> </div> diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx index 5929c96..56a87ab 100644 --- a/src/components/Tooltip/Tooltip.tsx +++ b/src/components/Tooltip/Tooltip.tsx @@ -29,10 +29,12 @@ const Tooltip = ({ ? intl.formatMessage({ defaultMessage: 'Close help', description: 'Tooltip: button title', + id: '9kx83j', }) : intl.formatMessage({ defaultMessage: 'Show help', description: 'Tooltip: button title', + id: 'A5n+C9', }); const wrapperModifier = isOpen ? styles.visible : styles.hidden; diff --git a/src/components/WidgetParts/ExpandableWidget/ExpandableWidget.tsx b/src/components/WidgetParts/ExpandableWidget/ExpandableWidget.tsx index 1040e7e..38e57ad 100644 --- a/src/components/WidgetParts/ExpandableWidget/ExpandableWidget.tsx +++ b/src/components/WidgetParts/ExpandableWidget/ExpandableWidget.tsx @@ -42,10 +42,12 @@ const ExpandableWidget = ({ ? intl.formatMessage({ defaultMessage: 'Collapse', description: 'ExpandableWidget: collapse text', + id: 'WRkY1/', }) : intl.formatMessage({ defaultMessage: 'Expand', description: 'ExpandableWidget: expand text', + id: 'hV0qHp', })} </span> <TitleTag className={styles.title}>{title}</TitleTag> diff --git a/src/components/Widgets/CVPreview/CVPreview.tsx b/src/components/Widgets/CVPreview/CVPreview.tsx index 08a4c72..cf6a8fa 100644 --- a/src/components/Widgets/CVPreview/CVPreview.tsx +++ b/src/components/Widgets/CVPreview/CVPreview.tsx @@ -28,6 +28,7 @@ const CVPreview = ({ <FormattedMessage defaultMessage="Download <link>CV in PDF</link>" description="CVPreview: download as PDF link" + id="xC3Khf" values={{ link: (chunks: string) => ( <Link href={pdf}> diff --git a/src/components/Widgets/RecentPosts/RecentPosts.tsx b/src/components/Widgets/RecentPosts/RecentPosts.tsx index 1a58574..11d8558 100644 --- a/src/components/Widgets/RecentPosts/RecentPosts.tsx +++ b/src/components/Widgets/RecentPosts/RecentPosts.tsx @@ -44,6 +44,7 @@ const RecentPosts = ({ posts }: { posts: PostsList }) => { {intl.formatMessage({ defaultMessage: 'Published on:', description: 'RecentPosts: publication date label', + id: '1h+N2z', })} </dt> <dd> @@ -64,6 +65,7 @@ const RecentPosts = ({ posts }: { posts: PostsList }) => { return intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'RecentPosts: failed to load text', + id: 'iyEh0R', }); if (!data) return <Spinner />; diff --git a/src/components/Widgets/RelatedThematics/RelatedThematics.tsx b/src/components/Widgets/RelatedThematics/RelatedThematics.tsx index 74325bb..a66de82 100644 --- a/src/components/Widgets/RelatedThematics/RelatedThematics.tsx +++ b/src/components/Widgets/RelatedThematics/RelatedThematics.tsx @@ -27,6 +27,7 @@ const RelatedThematics = ({ thematics }: { thematics: ThematicPreview[] }) => { defaultMessage: '{thematicsCount, plural, =0 {Related thematics} one {Related thematic} other {Related thematics}}', description: 'RelatedThematics: widget title', + id: 'qXQETZ', }, { thematicsCount: thematics.length } )} diff --git a/src/components/Widgets/RelatedTopics/RelatedTopics.tsx b/src/components/Widgets/RelatedTopics/RelatedTopics.tsx index 1702e82..992173d 100644 --- a/src/components/Widgets/RelatedTopics/RelatedTopics.tsx +++ b/src/components/Widgets/RelatedTopics/RelatedTopics.tsx @@ -27,6 +27,7 @@ const RelatedTopics = ({ topics }: { topics: TopicPreview[] }) => { defaultMessage: '{topicsCount, plural, =0 {Related topics} one {Related topic} other {Related topics}}', description: 'RelatedTopics: widget title', + id: 'w/lPUh', }, { topicsCount: topicsList.length } )} diff --git a/src/components/Widgets/Sharing/Sharing.tsx b/src/components/Widgets/Sharing/Sharing.tsx index dd2d2a0..45fe3ce 100644 --- a/src/components/Widgets/Sharing/Sharing.tsx +++ b/src/components/Widgets/Sharing/Sharing.tsx @@ -1,5 +1,4 @@ import { ExpandableWidget } from '@components/WidgetParts'; -import { getIntlInstance } from '@utils/helpers/i18n'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; @@ -58,10 +57,12 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { const intro = intl.formatMessage({ defaultMessage: 'Introduction:', description: 'Sharing: email content prefix', + id: 'yfgMcl', }); const readMore = intl.formatMessage({ defaultMessage: 'Read more here:', description: 'Sharing: content link prefix', + id: 'UsQske', }); const body = `${intro}\n\n"${pageExcerpt}"\n\n${readMore} ${pageUrl}`; sharingUrl += encodeURI(body); @@ -76,6 +77,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { { defaultMessage: 'Seen on {domainName}:', description: 'Sharing: seen on text', + id: 'eUXMG4', }, { domainName } ) @@ -101,6 +103,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'Diaspora', description: 'Sharing: Diaspora', + id: 'Dhow1m', }), parameters: { content: '', @@ -115,6 +118,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'Facebook', description: 'Sharing: Facebook', + id: '7iiaRx', }), parameters: { content: '', @@ -129,6 +133,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'LinkedIn', description: 'Sharing: LinkedIn', + id: 'csCQQk', }), parameters: { content: '', @@ -143,6 +148,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'Twitter', description: 'Sharing: Twitter', + id: 'WjVBnY', }), parameters: { content: '', @@ -157,6 +163,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'Journal du hacker', description: 'Sharing: Journal du hacker', + id: 'P0I+Xm', }), parameters: { content: '', @@ -171,6 +178,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { name: intl.formatMessage({ defaultMessage: 'Email', description: 'Sharing: Email', + id: 'lKZm9t', }), parameters: { content: 'body', @@ -200,6 +208,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { { defaultMessage: 'Share on {name}', description: 'Sharing: share on social network text', + id: 'ureXFw', }, { name } )} @@ -215,6 +224,7 @@ const Sharing = ({ excerpt, title }: { excerpt: string; title: string }) => { title={intl.formatMessage({ defaultMessage: 'Share', description: 'Sharing: widget title', + id: 'q3U6uI', })} expand={true} > diff --git a/src/components/Widgets/SocialMedia/SocialMedia.tsx b/src/components/Widgets/SocialMedia/SocialMedia.tsx index f96d10f..decf657 100644 --- a/src/components/Widgets/SocialMedia/SocialMedia.tsx +++ b/src/components/Widgets/SocialMedia/SocialMedia.tsx @@ -27,6 +27,7 @@ const SocialMedia = ({ name: intl.formatMessage({ defaultMessage: 'Github', description: 'SocialMedia: Github', + id: 'SWjj4l', }), url: 'https://github.com/ArmandPhilippot', }, @@ -35,6 +36,7 @@ const SocialMedia = ({ name: intl.formatMessage({ defaultMessage: 'Gitlab', description: 'SocialMedia: Gitlab', + id: 'obmlFh', }), url: 'https://gitlab.com/ArmandPhilippot', }, @@ -43,6 +45,7 @@ const SocialMedia = ({ name: intl.formatMessage({ defaultMessage: 'LinkedIn', description: 'SocialMedia: LinkedIn', + id: 'VbcHZ4', }), url: 'https://www.linkedin.com/in/armandphilippot', }, @@ -51,6 +54,7 @@ const SocialMedia = ({ name: intl.formatMessage({ defaultMessage: 'Twitter', description: 'SocialMedia: Twitter', + id: 'IPs/Ck', }), url: 'https://twitter.com/ArmandPhilippot', }, diff --git a/src/components/Widgets/ThematicsList/ThematicsList.tsx b/src/components/Widgets/ThematicsList/ThematicsList.tsx index f50a069..51254ee 100644 --- a/src/components/Widgets/ThematicsList/ThematicsList.tsx +++ b/src/components/Widgets/ThematicsList/ThematicsList.tsx @@ -35,6 +35,7 @@ const ThematicsList = ({ {intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'ThematicsList: failed to load text', + id: 'PxMDzL', })} </ul> ); diff --git a/src/components/Widgets/ToC/ToC.tsx b/src/components/Widgets/ToC/ToC.tsx index 89ca8d4..3f759db 100644 --- a/src/components/Widgets/ToC/ToC.tsx +++ b/src/components/Widgets/ToC/ToC.tsx @@ -9,6 +9,7 @@ const ToC = () => { const title = intl.formatMessage({ defaultMessage: 'Table of contents', description: 'ToC: widget title', + id: 'Zg4L7U', }); const getItems = (headings: Heading[]) => { @@ -19,6 +20,7 @@ const ToC = () => { <FormattedMessage defaultMessage="<a11y>Jump to </a11y>{title}" description="ToC: link" + id="GgIWnN" values={{ title: heading.title, a11y: (chunks: string) => ( @@ -42,6 +44,7 @@ const ToC = () => { defaultMessage: 'Javascript is required to use the table of contents.', description: 'ToC: noscript tag', + id: 'RZzx/4', })} </noscript> <OrderedList items={getItems(headingsTree)} /> diff --git a/src/components/Widgets/TopicsList/TopicsList.tsx b/src/components/Widgets/TopicsList/TopicsList.tsx index 55bf5af..7bc7d70 100644 --- a/src/components/Widgets/TopicsList/TopicsList.tsx +++ b/src/components/Widgets/TopicsList/TopicsList.tsx @@ -35,6 +35,7 @@ const TopicsList = ({ {intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'TopicsList: failed to load text', + id: '00Pf5p', })} </ul> ); diff --git a/src/pages/404.tsx b/src/pages/404.tsx index d5b2e86..24c6951 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -16,12 +16,14 @@ const Error404: NextPageWithLayout = () => { { defaultMessage: 'Error 404: Page not found - {websiteName}', description: '404Page: SEO - Page title', + id: '310o3F', }, { websiteName: settings.name } ); const pageDescription = intl.formatMessage({ defaultMessage: 'Page not found.', description: '404Page: SEO - Meta description', + id: '48Ww//', }); return ( @@ -35,12 +37,14 @@ const Error404: NextPageWithLayout = () => { title={intl.formatMessage({ defaultMessage: 'Page not found', description: '404Page: page title', + id: 'OccTWi', })} /> <div className={styles.body}> <FormattedMessage defaultMessage="Sorry, it seems that the page your are looking for does not exist. If you think this path should work, feel free to <link>contact me</link> with the necessary information so that I can fix the problem." description="404Page: page body" + id="ZWh78Y" values={{ link: (chunks: string) => ( <Link href="/contact/"> @@ -64,6 +68,7 @@ export const getStaticProps: GetStaticProps = async ( const breadcrumbTitle = intl.formatMessage({ defaultMessage: 'Error 404', description: '404Page: breadcrumb item', + id: 'ywkCsK', }); const { locale } = context; const translation = await loadTranslation(locale); diff --git a/src/pages/article/[slug].tsx b/src/pages/article/[slug].tsx index 656f7c9..41b84b6 100644 --- a/src/pages/article/[slug].tsx +++ b/src/pages/article/[slug].tsx @@ -140,22 +140,27 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ const copyText = intl.formatMessage({ defaultMessage: 'Copy', description: 'Prism: copy button text (no clicked)', + id: '/ly3AC', }); const copiedText = intl.formatMessage({ defaultMessage: 'Copied!', description: 'Prism: copy button text (clicked)', + id: 'OV9r1K', }); const errorText = intl.formatMessage({ defaultMessage: 'Use Ctrl+c to copy', description: 'Prism: error text', + id: 'z9qkcQ', }); const darkTheme = intl.formatMessage({ defaultMessage: 'Dark Theme 🌙', description: 'Prism: toggle dark theme button text', + id: 'nFMdWI', }); const lightTheme = intl.formatMessage({ defaultMessage: 'Light Theme 🌞', description: 'Prism: toggle light theme button text', + id: 'Ua2g2p', }); return ( @@ -190,6 +195,7 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'ArticlePage: ToC sidebar aria-label', + id: '9nhYRA', })} > <ToC /> @@ -204,6 +210,7 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Sidebar', description: 'ArticlePage: right sidebar aria-label', + id: 'JeYOeA', })} > <Sharing title={title} excerpt={intro} /> diff --git a/src/pages/blog/index.tsx b/src/pages/blog/index.tsx index 366fc28..b5ced07 100644 --- a/src/pages/blog/index.tsx +++ b/src/pages/blog/index.tsx @@ -97,6 +97,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ return intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'BlogPage: failed to load text', + id: 'C/XGkH', }); if (!data) return <Spinner />; @@ -107,6 +108,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ { defaultMessage: 'Blog: development, open source - {websiteName}', description: 'BlogPage: SEO - Page title', + id: '+Y+tLK', }, { websiteName: settings.name } ); @@ -115,6 +117,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ defaultMessage: "Discover {websiteName}'s writings. He talks about web development, Linux and open source mostly.", description: 'BlogPage: SEO - Meta description', + id: '18h/t0', }, { websiteName: settings.name } ); @@ -153,6 +156,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ const title = intl.formatMessage({ defaultMessage: 'Blog', description: 'BlogPage: page title', + id: '7TbbIk', }); return ( @@ -193,6 +197,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ {intl.formatMessage({ defaultMessage: 'Load more?', description: 'BlogPage: load more text', + id: 'Kqq2cm', })} </Button> </> @@ -205,6 +210,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Filter by:', description: 'BlogPage: sidebar title', + id: 'KERk7L', })} > <ThematicsList @@ -212,6 +218,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Thematics', description: 'BlogPage: thematics list widget title', + id: 'HriY57', })} /> <TopicsList @@ -219,6 +226,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Topics', description: 'BlogPage: topics list widget title', + id: '2D9tB5', })} /> </Sidebar> @@ -236,6 +244,7 @@ export const getStaticProps: GetStaticProps = async ( const breadcrumbTitle = intl.formatMessage({ defaultMessage: 'Blog', description: 'BlogPage: breadcrumb item', + id: 'R0eDmw', }); const firstPosts = await getPublishedPosts({ first: settings.postsPerPage }); const totalPosts = await getPostsTotal(); diff --git a/src/pages/blog/page/[id].tsx b/src/pages/blog/page/[id].tsx index 2cbd486..6c4d2f8 100644 --- a/src/pages/blog/page/[id].tsx +++ b/src/pages/blog/page/[id].tsx @@ -44,8 +44,9 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ const pageTitle = intl.formatMessage( { - defaultMessage: `Blog - Page {number} - {websiteName}`, + defaultMessage: 'Blog - Page {number} - {websiteName}', description: 'BlogPage: SEO - Page title', + id: '8w+jnD', }, { number: pageNumber, websiteName: settings.name } ); @@ -54,6 +55,7 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ defaultMessage: "Discover {websiteName}'s writings. He talks about web development, Linux and open source mostly.", description: 'BlogPage: SEO - Meta description', + id: '18h/t0', }, { websiteName: settings.name } ); @@ -92,6 +94,7 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ const title = intl.formatMessage({ defaultMessage: 'Blog', description: 'BlogPage: page title', + id: '7TbbIk', }); return ( @@ -123,6 +126,7 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Filter by:', description: 'BlogPage: sidebar title', + id: 'KERk7L', })} > <ThematicsList @@ -130,6 +134,7 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Thematics', description: 'BlogPage: thematics list widget title', + id: 'HriY57', })} /> <TopicsList @@ -137,6 +142,7 @@ const BlogPage: NextPageWithLayout<BlogPageProps> = ({ title={intl.formatMessage({ defaultMessage: 'Topics', description: 'BlogPage: topics list widget title', + id: '2D9tB5', })} /> </Sidebar> @@ -154,6 +160,7 @@ export const getStaticProps: GetStaticProps = async ( const breadcrumbTitle = intl.formatMessage({ defaultMessage: 'Blog', description: 'BlogPage: breadcrumb item', + id: 'R0eDmw', }); const { locale, params } = context; const queriedPageNumber = params ? Number(params.id) : 1; diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx index 9f8ec0f..5934dd9 100644 --- a/src/pages/contact.tsx +++ b/src/pages/contact.tsx @@ -22,6 +22,7 @@ const ContactPage: NextPageWithLayout = () => { { defaultMessage: 'Contact form - {websiteName}', description: 'ContactPage: SEO - Page title', + id: 'Y3qRib', }, { websiteName: settings.name } ); @@ -30,6 +31,7 @@ const ContactPage: NextPageWithLayout = () => { defaultMessage: "Contact {websiteName} through its website. All you need to do it's to fill the contact form.", description: 'ContactPage: SEO - Meta description', + id: 'OIffB4', }, { websiteName: settings.name } ); @@ -37,10 +39,12 @@ const ContactPage: NextPageWithLayout = () => { const title = intl.formatMessage({ defaultMessage: 'Contact', description: 'ContactPage: page title', + id: 'AN9iy7', }); const intro = intl.formatMessage({ defaultMessage: 'Please fill the form to contact me.', description: 'ContactPage: page introduction', + id: '8Ls2mD', }); const webpageSchema: WebPage = { @@ -99,6 +103,7 @@ const ContactPage: NextPageWithLayout = () => { {intl.formatMessage({ defaultMessage: 'All fields marked with * are required.', description: 'ContactPage: required fields text', + id: 'txusHd', })} </p> <ContactForm /> @@ -108,6 +113,7 @@ const ContactPage: NextPageWithLayout = () => { title={intl.formatMessage({ defaultMessage: 'Find me elsewhere', description: 'ContactPage: social media widget title', + id: 'Qh2CwH', })} github={true} gitlab={true} @@ -128,6 +134,7 @@ export const getStaticProps: GetStaticProps = async ( const breadcrumbTitle = intl.formatMessage({ defaultMessage: 'Contact', description: 'ContactPage: breadcrumb item', + id: 'CzTbM4', }); const { locale } = context; const translation = await loadTranslation(locale); diff --git a/src/pages/cv.tsx b/src/pages/cv.tsx index 39dfeed..71eb449 100644 --- a/src/pages/cv.tsx +++ b/src/pages/cv.tsx @@ -31,6 +31,7 @@ const CV: NextPageWithLayout = () => { { defaultMessage: 'CV Front-end developer - {websiteName}', description: 'CVPage: SEO - Page title', + id: 'Y1ZdJ6', }, { websiteName: settings.name } ); @@ -39,6 +40,7 @@ const CV: NextPageWithLayout = () => { defaultMessage: 'Discover the curriculum of {websiteName}, front-end developer located in France: skills, experiences and training.', description: 'CVPage: SEO - Meta description', + id: 'bBdMGm', }, { websiteName: settings.name } ); @@ -86,6 +88,7 @@ const CV: NextPageWithLayout = () => { { defaultMessage: "{name}'s CV", description: 'CVPage: page title', + id: 'Mj2BQf', }, { name: settings.name } ); @@ -117,6 +120,7 @@ const CV: NextPageWithLayout = () => { ariaLabel={intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'CVPage: ToC sidebar aria-label', + id: 'g4DckL', })} > <ToC /> @@ -129,12 +133,14 @@ const CV: NextPageWithLayout = () => { ariaLabel={intl.formatMessage({ defaultMessage: 'Sidebar', description: 'CVPage: right sidebar aria-label', + id: 'QHOm5t', })} > <CVPreview title={intl.formatMessage({ defaultMessage: 'Others formats', description: 'CVPage: cv preview widget title', + id: 'B9OCyV', })} imgSrc={image} pdf={pdf} @@ -143,6 +149,7 @@ const CV: NextPageWithLayout = () => { title={intl.formatMessage({ defaultMessage: 'Open-source projects', description: 'CVPage: social media widget title', + id: '+Dre5J', })} github={true} gitlab={true} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 513df69..ca0a809 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -38,6 +38,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Web development', description: 'HomePage: link to web development thematic', + id: 'vkF/RP', })} </ButtonLink> </li> @@ -46,6 +47,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Projects', description: 'HomePage: link to projects', + id: 'N44SOc', })} </ButtonLink> </li> @@ -84,6 +86,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Free', description: 'HomePage: link to free thematic', + id: 'w8GrOf', })} </ButtonLink> </li> @@ -92,6 +95,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Linux', description: 'HomePage: link to Linux thematic', + id: 'jASD7k', })} </ButtonLink> </li> @@ -107,6 +111,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Shaarli', description: 'HomePage: link to Shaarli', + id: 'i5L19t', })} </ButtonLink> </li> @@ -123,6 +128,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Contact me', description: 'HomePage: contact button text', + id: 'sO/Iwj', })} </ButtonLink> </li> @@ -132,6 +138,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ {intl.formatMessage({ defaultMessage: 'Subscribe', description: 'HomePage: RSS feed subscription text', + id: 'T4YA64', })} </ButtonLink> </li> @@ -157,6 +164,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ { defaultMessage: '{websiteName} | Front-end developer: WordPress/React', description: 'HomePage: SEO - Page title', + id: 'PXp2hv', }, { websiteName: settings.name } ); @@ -165,6 +173,7 @@ const Home: NextPageWithLayout<HomePageProps> = ({ defaultMessage: '{websiteName} is a front-end developer located in France. He codes and he writes mostly about web development and open-source.', description: 'HomePage: SEO - Meta description', + id: 'tMuNTy', }, { websiteName: settings.name } ); diff --git a/src/pages/mentions-legales.tsx b/src/pages/mentions-legales.tsx index 1bc5c31..b103b5e 100644 --- a/src/pages/mentions-legales.tsx +++ b/src/pages/mentions-legales.tsx @@ -35,6 +35,7 @@ const LegalNotice: NextPageWithLayout = () => { { defaultMessage: 'Legal notice - {websiteName}', description: 'LegalNoticePage: SEO - Page title', + id: '4zAUSu', }, { websiteName: settings.name } ); @@ -42,6 +43,7 @@ const LegalNotice: NextPageWithLayout = () => { { defaultMessage: "Discover the legal notice of {websiteName}'s website.", description: 'LegalNoticePage: SEO - Meta description', + id: 'uvB+32', }, { websiteName: settings.name } ); @@ -49,6 +51,7 @@ const LegalNotice: NextPageWithLayout = () => { const title = intl.formatMessage({ defaultMessage: 'Legal notice', description: 'LegalNoticePage: page title', + id: '/IirIt', }); const publicationDate = new Date(dates.publication); const updateDate = new Date(dates.update); diff --git a/src/pages/projet/[slug].tsx b/src/pages/projet/[slug].tsx index 51f3d0b..b9a8f39 100644 --- a/src/pages/projet/[slug].tsx +++ b/src/pages/projet/[slug].tsx @@ -117,6 +117,7 @@ const Project: NextPageWithLayout<ProjectProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'ProjectPage: ToC sidebar aria-label', + id: '6dXfvr', })} > <ToC /> @@ -130,6 +131,7 @@ const Project: NextPageWithLayout<ProjectProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Sidebar', description: 'ProjectPage: right sidebar aria-label', + id: 'hHrNd0', })} > <Sharing title={title} excerpt={intro} /> diff --git a/src/pages/projets.tsx b/src/pages/projets.tsx index 7fb7187..8a81f39 100644 --- a/src/pages/projets.tsx +++ b/src/pages/projets.tsx @@ -28,6 +28,7 @@ const Projects = ({ projects }: { projects: Project[] }) => { { defaultMessage: 'Projects: open-source makings - {websiteName}', description: 'ProjectsPage: SEO - Page title', + id: 'SX1z3t', }, { websiteName: settings.name } ); @@ -36,6 +37,7 @@ const Projects = ({ projects }: { projects: Project[] }) => { defaultMessage: 'Discover {websiteName} projects. Mostly related to web development and open source.', description: 'ProjectsPage: SEO - Meta description', + id: 's6U1Xt', }, { websiteName: settings.name } ); diff --git a/src/pages/recherche/index.tsx b/src/pages/recherche/index.tsx index 42e45cd..b843f8d 100644 --- a/src/pages/recherche/index.tsx +++ b/src/pages/recherche/index.tsx @@ -81,12 +81,14 @@ const Search: NextPageWithLayout = () => { { defaultMessage: 'Search results for {query}', description: 'SearchPage: search results text', + id: 'VSGuGE', }, { query } ) : intl.formatMessage({ defaultMessage: 'Search', description: 'SearchPage: page title', + id: 'U+35YD', }); const description = query @@ -94,6 +96,7 @@ const Search: NextPageWithLayout = () => { { defaultMessage: 'Discover search results for {query}', description: 'SearchPage: meta description with query', + id: 'A4LTGq', }, { query } ) @@ -101,6 +104,7 @@ const Search: NextPageWithLayout = () => { { defaultMessage: 'Search for a post on {websiteName}', description: 'SearchPage: meta description without query', + id: 'PrIz5o', }, { websiteName: settings.name } ); @@ -122,6 +126,7 @@ const Search: NextPageWithLayout = () => { return intl.formatMessage({ defaultMessage: 'Failed to load.', description: 'SearchPage: failed to load text', + id: 'fOe8rH', }); if (!data) return <Spinner />; @@ -155,6 +160,7 @@ const Search: NextPageWithLayout = () => { {intl.formatMessage({ defaultMessage: 'Load more?', description: 'SearchPage: load more text', + id: 'pEtJik', })} </Button> </> @@ -165,12 +171,14 @@ const Search: NextPageWithLayout = () => { title={intl.formatMessage({ defaultMessage: 'Thematics', description: 'SearchPage: thematics list widget title', + id: 'Dq6+WH', })} /> <TopicsList title={intl.formatMessage({ defaultMessage: 'Topics', description: 'SearchPage: topics list widget title', + id: 'N804XO', })} /> </Sidebar> @@ -188,6 +196,7 @@ export const getStaticProps: GetStaticProps = async ( const breadcrumbTitle = intl.formatMessage({ defaultMessage: 'Search', description: 'SearchPage: breadcrumb item', + id: 'TfU6Qm', }); const { locale } = context; const translation = await loadTranslation(locale); diff --git a/src/pages/sujet/[slug].tsx b/src/pages/sujet/[slug].tsx index bb22a88..30dd36c 100644 --- a/src/pages/sujet/[slug].tsx +++ b/src/pages/sujet/[slug].tsx @@ -138,6 +138,7 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic, allTopics }) => { ariaLabel={intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'TopicPage: ToC sidebar aria-label', + id: 'lsDB5G', })} > <ToC /> @@ -151,6 +152,7 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic, allTopics }) => { { defaultMessage: 'All posts in {name}', description: 'TopicPage: posts list title', + id: 'FLkF2R', }, { name: topic.title } )} @@ -164,6 +166,7 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic, allTopics }) => { ariaLabel={intl.formatMessage({ defaultMessage: 'Sidebar', description: 'TopicPage: right sidebar aria-label', + id: 'eu3beS', })} > <RelatedThematics thematics={relatedThematics.current} /> @@ -172,6 +175,7 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic, allTopics }) => { title={intl.formatMessage({ defaultMessage: 'Others topics', description: 'TopicPage: topics list widget title', + id: '+4tiVb', })} /> </Sidebar> diff --git a/src/pages/thematique/[slug].tsx b/src/pages/thematique/[slug].tsx index edc4296..db22214 100644 --- a/src/pages/thematique/[slug].tsx +++ b/src/pages/thematique/[slug].tsx @@ -128,6 +128,7 @@ const Thematic: NextPageWithLayout<ThematicProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'ThematicPage: ToC sidebar aria-label', + id: 'YwvYfw', })} > <ToC /> @@ -141,6 +142,7 @@ const Thematic: NextPageWithLayout<ThematicProps> = ({ { defaultMessage: 'All posts in {name}', description: 'ThematicPage: posts list title', + id: 'P7fxX2', }, { name: thematic.title } )} @@ -154,6 +156,7 @@ const Thematic: NextPageWithLayout<ThematicProps> = ({ ariaLabel={intl.formatMessage({ defaultMessage: 'Sidebar', description: 'ThematicPage: right sidebar aria-label', + id: 'syLgY9', })} > <RelatedTopics topics={relatedTopics.current} /> @@ -162,6 +165,7 @@ const Thematic: NextPageWithLayout<ThematicProps> = ({ title={intl.formatMessage({ defaultMessage: 'Others thematics', description: 'ThematicPage: thematics list widget title', + id: 'norrGp', })} /> </Sidebar> @@ -1282,6 +1282,17 @@ intl-messageformat "9.11.4" tslib "^2.1.0" +"@formatjs/swc-plugin@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@formatjs/swc-plugin/-/swc-plugin-1.3.2.tgz#3de6c0bd49819629b1398fa97759130ec909596b" + integrity sha512-gL9u/LRrJTBury5g4aQxW8s4ZuhMJljSkmDhXejAurVnRfdhFWV9DZc2lsZ7KqAvIOTOta7BUvzTu54JWZOEMg== + dependencies: + "@formatjs/icu-messageformat-parser" "2.0.18" + "@formatjs/ts-transformer" "3.9.2" + "@types/node" "14 || 16 || 17" + chalk "^4.0.0" + tslib "^2.1.0" + "@formatjs/ts-transformer@3.9.2": version "3.9.2" resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.9.2.tgz#958582b16ed9125fd904c051a9dda1ecd2474a5a" @@ -4600,7 +4611,7 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -intl-messageformat@9.11.4, intl-messageformat@^9.11.4: +intl-messageformat@9.11.4: version "9.11.4" resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.11.4.tgz#0f9030bc6d10e6a48592142f88e646d88f05f1f2" integrity sha512-77TSkNubIy/hsapz6LQpyR6OADcxhWdhSaboPb5flMaALCVkPvAIxr48AlPqaMl4r1anNcvR9rpLWVdwUY1IKg== |
