diff options
| author | Joe Carstairs <65492573+Sycamost@users.noreply.github.com> | 2023-08-12 20:47:32 +0100 |
|---|---|---|
| committer | Joe Carstairs <65492573+Sycamost@users.noreply.github.com> | 2023-08-12 20:47:32 +0100 |
| commit | 8a5b11d8322b806ce277c399e51b7f40efcb2556 (patch) | |
| tree | 447694202ee9d70cab7e3ecb4ff49e9d6f7ebee7 /src/components/SwitchLanguageLink.astro | |
| parent | de86f122320be7a41cd94476c8a9424c7c766b19 (diff) | |
Text color and background colour is controlled by CSS vars
Diffstat (limited to 'src/components/SwitchLanguageLink.astro')
| -rw-r--r-- | src/components/SwitchLanguageLink.astro | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/components/SwitchLanguageLink.astro b/src/components/SwitchLanguageLink.astro new file mode 100644 index 0000000..77dfa18 --- /dev/null +++ b/src/components/SwitchLanguageLink.astro @@ -0,0 +1,28 @@ +--- +import tPage from '../i18n/translations/components/languageLinks'; +import tSite from '../i18n/translations/site'; +import translate from '../i18n/translate'; +import type Locale from '../types/Locale'; + +interface Props { + currentLocale: Locale; +} + +// This logic assumes that there are exactly two locales. +const { currentLocale } = Astro.props; +const otherLocale: Locale = currentLocale === 'sco' ? 'en-GB' : 'sco'; +const currentPath = Astro.url.pathname; +const currentLocaleInPath = new RegExp(`(?<=^/)(${currentLocale}/)?`); +const otherLocalePath = currentPath.replace(currentLocaleInPath, `${otherLocale}/`); + +const t = translate(currentLocale); +--- + +<a class="link" href={otherLocalePath}> + { + t(tPage, { + key: 'language-link-text', + language: t(tSite, { key: 'locale', locale: otherLocale }), + }) + } +</a> |
