2019-02-21 12:53:02 +01:00
|
|
|
import Router from 'next/router'
|
|
|
|
import { I18n } from '@lingui/react'
|
|
|
|
import { t, Trans } from '@lingui/macro'
|
|
|
|
|
|
|
|
const availableLanguageNames = {
|
2019-03-27 21:12:45 +01:00
|
|
|
en: t`English`,
|
|
|
|
sv: t`Swedish`
|
2019-02-21 12:53:02 +01:00
|
|
|
}
|
|
|
|
const availableLanguages = Object.keys(availableLanguageNames)
|
|
|
|
|
|
|
|
export default () => {
|
|
|
|
function onSubmit (evt) {
|
|
|
|
evt.preventDefault()
|
|
|
|
Router.push({
|
|
|
|
pathname: window.location.pathname,
|
2019-02-21 15:34:35 +01:00
|
|
|
query: { lang: evt.currentTarget.lang.value }
|
2019-02-21 12:53:02 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
2019-03-27 21:12:45 +01:00
|
|
|
<I18n>
|
|
|
|
{({ i18n }) => (
|
|
|
|
<form onSubmit={onSubmit}>
|
|
|
|
<select
|
|
|
|
key={i18n.language}
|
|
|
|
name='lang'
|
|
|
|
defaultValue={availableLanguages.find(
|
|
|
|
lang => lang !== i18n.language
|
|
|
|
)}
|
|
|
|
>
|
|
|
|
{availableLanguages.map(lang => (
|
|
|
|
<option key={lang} value={lang} disabled={i18n.language === lang}>
|
|
|
|
{i18n._(availableLanguageNames[lang])}
|
|
|
|
</option>
|
|
|
|
))}
|
|
|
|
</select>
|
|
|
|
<button>
|
|
|
|
<Trans>Switch language</Trans>
|
|
|
|
</button>
|
|
|
|
</form>
|
|
|
|
)}
|
|
|
|
</I18n>
|
2019-02-21 12:53:02 +01:00
|
|
|
)
|
|
|
|
}
|