mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-28 16:06:15 -04:00
Extracted english translations
This commit is contained in:
parent
7999777f69
commit
7555ed0ff1
14 changed files with 10224 additions and 2910 deletions
29
src/i18n/i18n.ts
Normal file
29
src/i18n/i18n.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import fr from './fr.json'
|
||||
import en from './en.json'
|
||||
import {getSettingValue} from "../settings";
|
||||
|
||||
type translationKeys = keyof typeof en
|
||||
type translation= { [key in translationKeys] : string }
|
||||
const languages:Record<string, translation>= {fr,en}
|
||||
|
||||
export function t(key: translationKeys, params: {[key:string]:any} = {}):string {
|
||||
const lang = getSettingValue('lang',getFirstBrowserLanguage())
|
||||
let template=languages[lang]?.[key] || languages.en[key]
|
||||
for(let key in params){
|
||||
template=template.split('{{'+key+'}}').join(`${params[key]}`)
|
||||
}
|
||||
return template
|
||||
}
|
||||
|
||||
function getFirstBrowserLanguage() {
|
||||
const preferred_languages = [
|
||||
...navigator.languages,
|
||||
navigator.language,
|
||||
'en'
|
||||
].filter(i => i)
|
||||
.map(i => i.slice(0, 2).toLowerCase())
|
||||
const supported = Object.keys(languages)
|
||||
|
||||
return preferred_languages.find(k=>supported.includes(k)) || 'en'
|
||||
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue