mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-08-07 09:54:19 -07:00
Add language links to switch between English and Spanish (#842)
* Add language links to gov banner - align banners to site logo - create Language component and snapshot test - add Language component to GovBanner - update namespace for betaBanner scss.d.ts file * Update snapshots for each page * Componentizes the GovBanner - add styles - add unit test - token most styles to USWDS * Add language icon and update snapshots * Make language link text smaller * Update total height of BetaBanner * Add languageLink to scss.d.ts file * Add language links to mobile - add isDesktop prop to Language component - refactors header links to a simple array - update snapshots * Add href value to language links - update snapshots * merge other PRs and add spanish links - merge PR 817 - merge PR 794 - add spanish links for footer - add diffEnEs.js to detect differences between two json files - adds esNoBrackets.json - update intl README * Add government banner in spanish * Add spanish content for About and Explore page
This commit is contained in:
parent
62e20dd881
commit
28c5b9c869
29 changed files with 1391 additions and 960 deletions
39
client/src/components/Language/Language.tsx
Normal file
39
client/src/components/Language/Language.tsx
Normal file
|
@ -0,0 +1,39 @@
|
|||
import React from 'react';
|
||||
import {IntlContextConsumer, changeLocale} from 'gatsby-plugin-intl';
|
||||
|
||||
// @ts-ignore
|
||||
import languageIcon from '/node_modules/uswds/dist/img/usa-icons/language.svg';
|
||||
import * as styles from './Language.module.scss';
|
||||
|
||||
const languageName = {
|
||||
en: 'English',
|
||||
es: 'Español',
|
||||
};
|
||||
|
||||
interface ILanguageProps {
|
||||
isDesktop: boolean
|
||||
}
|
||||
|
||||
const Language = ({isDesktop}:ILanguageProps) => {
|
||||
return (
|
||||
<div className={isDesktop ? styles.languageContainer : styles.languageContainerMobile}>
|
||||
<img className={styles.languageIcon} src={languageIcon} alt={'language icon for selecting language'}/>
|
||||
<IntlContextConsumer>
|
||||
{({languages, language: currentLocale}) =>
|
||||
languages.map((language: React.Key | null | undefined) => (
|
||||
<a
|
||||
href="#"
|
||||
className={styles.languageLink}
|
||||
key={language}
|
||||
onClick={() => changeLocale(language)}
|
||||
>
|
||||
{languageName[language]}
|
||||
</a>
|
||||
))
|
||||
}
|
||||
</IntlContextConsumer>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Language;
|
Loading…
Add table
Add a link
Reference in a new issue