mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-14 16:14:48 +01:00
english fallback when using other languages
This commit is contained in:
@@ -21,14 +21,18 @@ export default class Tr extends React.Component<IProps, IState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
async componentDidMount() {
|
||||||
const { text } = this.props
|
const { text } = this.props
|
||||||
getConfigOption('language').then((language: string) => {
|
let language = await getConfigOption('language')
|
||||||
|
|
||||||
// Get translation file
|
// Get translation file
|
||||||
if (!language) language = 'en'
|
if (!language) language = 'en'
|
||||||
|
|
||||||
invoke('get_lang', { lang: language }).then((response) => {
|
const response = await invoke('get_lang', { lang: language })
|
||||||
|
const default_resp = await invoke('get_lang', { lang: 'en' })
|
||||||
|
|
||||||
const translation_obj = JSON.parse((response as string) || '{}')
|
const translation_obj = JSON.parse((response as string) || '{}')
|
||||||
|
const default_obj = JSON.parse((default_resp as string) || '{}')
|
||||||
|
|
||||||
// Traversal
|
// Traversal
|
||||||
if (text.includes('.')) {
|
if (text.includes('.')) {
|
||||||
@@ -43,6 +47,19 @@ export default class Tr extends React.Component<IProps, IState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we could not find a translation, use the default one
|
||||||
|
if (!translation) {
|
||||||
|
translation = default_obj
|
||||||
|
|
||||||
|
for (let i = 0; i < keys.length; i++) {
|
||||||
|
if (!translation) {
|
||||||
|
translation = ''
|
||||||
|
} else {
|
||||||
|
translation = typeof translation !== 'string' ? translation[keys[i]] : (translation as string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
translated_text: translation as string,
|
translated_text: translation as string,
|
||||||
})
|
})
|
||||||
@@ -51,8 +68,6 @@ export default class Tr extends React.Component<IProps, IState> {
|
|||||||
translated_text: translation_obj[text] || '',
|
translated_text: translation_obj[text] || '',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@@ -82,6 +97,7 @@ export async function getLanguages() {
|
|||||||
export async function translate(text: string) {
|
export async function translate(text: string) {
|
||||||
const language = (await getConfigOption('language')) || 'en'
|
const language = (await getConfigOption('language')) || 'en'
|
||||||
const translation_json = JSON.parse((await invoke('get_lang', { lang: language })) || '{}')
|
const translation_json = JSON.parse((await invoke('get_lang', { lang: language })) || '{}')
|
||||||
|
const default_json = JSON.parse(await invoke('get_lang', { lang: 'en' }))
|
||||||
|
|
||||||
// Traversal
|
// Traversal
|
||||||
if (text.includes('.')) {
|
if (text.includes('.')) {
|
||||||
@@ -96,6 +112,19 @@ export async function translate(text: string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we could not find a translation, use the default one
|
||||||
|
if (!translation) {
|
||||||
|
translation = default_json
|
||||||
|
|
||||||
|
for (let i = 0; i < keys.length; i++) {
|
||||||
|
if (!translation) {
|
||||||
|
translation = ''
|
||||||
|
} else {
|
||||||
|
translation = typeof translation !== 'string' ? translation[keys[i]] : (translation as string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return translation
|
return translation
|
||||||
} else {
|
} else {
|
||||||
return translation_json[text] || ''
|
return translation_json[text] || ''
|
||||||
|
|||||||
Reference in New Issue
Block a user