diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-01-30 00:00:19 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-01-30 00:00:19 +0100 |
| commit | fbd74df78e8c5a1d9c41f52c726fdc5870cbc069 (patch) | |
| tree | 476a019dc0ad9eac22d53094b3423e0fc33a60c0 /src | |
| parent | 82d310403c4bb09bc2f0a204b6374934a10cf348 (diff) | |
chore(baseline): handle baseline translation manually
I cannot use formatjs to translate the website baseline since I need
an async function to load the message. If I use the getIntlInstance
helper outside NextJS, webpack is complaining about fs and path.
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/Branding/Branding.tsx | 12 | ||||
| -rw-r--r-- | src/components/Layouts/Layout.tsx | 5 | ||||
| -rw-r--r-- | src/utils/config.ts | 5 | ||||
| -rw-r--r-- | src/utils/helpers/rss.ts | 2 |
4 files changed, 19 insertions, 5 deletions
diff --git a/src/components/Branding/Branding.tsx b/src/components/Branding/Branding.tsx index adefbca..317a8f3 100644 --- a/src/components/Branding/Branding.tsx +++ b/src/components/Branding/Branding.tsx @@ -3,6 +3,7 @@ import { settings } from '@utils/config'; import Head from 'next/head'; import Image from 'next/image'; import Link from 'next/link'; +import { useRouter } from 'next/router'; import { ReactElement } from 'react'; import { useIntl } from 'react-intl'; import { Person, WithContext } from 'schema-dts'; @@ -13,6 +14,7 @@ type BrandingReturn = ({ isHome }: { isHome: boolean }) => ReactElement; const Branding: BrandingReturn = ({ isHome = false }) => { const intl = useIntl(); + const { locale } = useRouter(); const TitleTag = isHome ? 'h1' : 'p'; const schemaJsonLd: WithContext<Person> = { @@ -21,7 +23,9 @@ const Branding: BrandingReturn = ({ isHome = false }) => { '@id': `${settings.url}/#branding`, name: settings.name, url: settings.url, - jobTitle: settings.baseline, + jobTitle: locale?.startsWith('en') + ? settings.baseline.en + : settings.baseline.fr, image: photo.src, subjectOf: { '@id': `${settings.url}` }, }; @@ -60,7 +64,11 @@ const Branding: BrandingReturn = ({ isHome = false }) => { <a className={styles.link}>{settings.name}</a> </Link> </TitleTag> - <p className={styles.job}>{settings.baseline}</p> + <p className={styles.job}> + {locale?.startsWith('en') + ? settings.baseline.en + : settings.baseline.fr} + </p> </div> </> ); diff --git a/src/components/Layouts/Layout.tsx b/src/components/Layouts/Layout.tsx index d074b68..420b37a 100644 --- a/src/components/Layouts/Layout.tsx +++ b/src/components/Layouts/Layout.tsx @@ -17,6 +17,7 @@ const Layout = ({ isHome?: boolean; }) => { const intl = useIntl(); + const { locale } = useRouter(); const ref = useRef<HTMLSpanElement>(null); const { asPath } = useRouter(); @@ -29,7 +30,9 @@ const Layout = ({ '@id': `${settings.url}`, '@type': 'WebSite', name: settings.name, - description: settings.baseline, + description: locale?.startsWith('en') + ? settings.baseline.en + : settings.baseline.fr, url: settings.url, author: { '@id': `${settings.url}/#branding` }, copyrightYear: Number(settings.copyright.startYear), diff --git a/src/utils/config.ts b/src/utils/config.ts index 1c227cc..dc009d9 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -1,6 +1,9 @@ export const settings = { name: 'Armand Philippot', - baseline: 'Front-end developer', + baseline: { + en: 'Front-end developer', + fr: 'Intégrateur web', + }, copyright: { startYear: '2012', endYear: new Date().getFullYear(), diff --git a/src/utils/helpers/rss.ts b/src/utils/helpers/rss.ts index 55b009a..305c6e7 100644 --- a/src/utils/helpers/rss.ts +++ b/src/utils/helpers/rss.ts @@ -27,7 +27,7 @@ export const generateFeed = async () => { link: websiteUrl, }; const copyright = `${settings.name} CC BY SA ${settings.copyright.startYear} - ${settings.copyright.endYear}`; - const title = `${settings.name} | ${settings.baseline}`; + const title = `${settings.name} | ${settings.baseline.fr}`; const feed = new Feed({ author, |
