Merge pull request #4833 from h3poteto/feat/portuguese

Add portuguese translation
This commit is contained in:
AkiraFukushima 2024-02-06 09:55:48 +09:00 committed by GitHub
commit 5124524ddf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 3 deletions

View File

@ -17,6 +17,10 @@ const languages = [
{ {
label: '日本語', label: '日本語',
value: 'ja' value: 'ja'
},
{
label: 'Português',
value: 'pt-PT'
} }
] ]
@ -27,11 +31,16 @@ export default function Settings(props: Props) {
useEffect(() => { useEffect(() => {
if (typeof localStorage !== 'undefined') { if (typeof localStorage !== 'undefined') {
const lang = localStorage.getItem('language') const lang = localStorage.getItem('language')
setLanguage(lang as localeType) if (lang) {
setLanguage(lang as localeType)
} else {
setLanguage('en')
}
} }
}, []) }, [])
const languageChanged = (e: string) => { const languageChanged = (e: string) => {
setLanguage(e as localeType)
if (typeof localStorage !== 'undefined') { if (typeof localStorage !== 'undefined') {
localStorage.setItem('language', e) localStorage.setItem('language', e)
} }

View File

@ -1,10 +1,11 @@
import en from '../../locales/en/translation.json' import en from '../../locales/en/translation.json'
import ja from '../../locales/ja/translation.json' import ja from '../../locales/ja/translation.json'
import pt_pt from '../../locales/pt_pt/translation.json'
import { flattenMessages } from '../utils/flattenMessage' import { flattenMessages } from '../utils/flattenMessage'
import { createContext, useState } from 'react' import { createContext, useState } from 'react'
import { IntlProvider } from 'react-intl' import { IntlProvider } from 'react-intl'
export type localeType = 'en' | 'ja' export type localeType = 'en' | 'ja' | 'pt-PT'
type Props = { type Props = {
children: React.ReactNode children: React.ReactNode
@ -19,7 +20,8 @@ export const Context = createContext<Lang>({} as Lang)
export const IntlProviderWrapper: React.FC<Props> = props => { export const IntlProviderWrapper: React.FC<Props> = props => {
const langs = [ const langs = [
{ locale: 'en', messages: flattenMessages(en) }, { locale: 'en', messages: flattenMessages(en) },
{ locale: 'ja', messages: flattenMessages(ja) } { locale: 'ja', messages: flattenMessages(ja) },
{ locale: 'pt-PT', messages: flattenMessages(pt_pt) }
] ]
const [lang, setLang] = useState(langs[0]) const [lang, setLang] = useState(langs[0])