mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-27 00:30:09 +02:00
app: fix the loading of locales
This commit is contained in:
@@ -370,8 +370,8 @@ export default class Settings extends Component {
|
|||||||
>
|
>
|
||||||
<option value="en">English</option>
|
<option value="en">English</option>
|
||||||
<option value="hi">Hindi</option>
|
<option value="hi">Hindi</option>
|
||||||
<option value="ja">Japanese</option>
|
|
||||||
<option value="sa">Sanskrit</option>
|
<option value="sa">Sanskrit</option>
|
||||||
|
<option value="es">Spanish</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -106,7 +106,8 @@ export default class App extends Component {
|
|||||||
currentItem: {
|
currentItem: {
|
||||||
title: '',
|
title: '',
|
||||||
externalLibs: { js: '', css: '' }
|
externalLibs: { js: '', css: '' }
|
||||||
}
|
},
|
||||||
|
catalogs: {}
|
||||||
};
|
};
|
||||||
this.defaultSettings = {
|
this.defaultSettings = {
|
||||||
preserveLastCode: true,
|
preserveLastCode: true,
|
||||||
@@ -257,20 +258,17 @@ export default class App extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLanguageDefinition() {
|
async loadLanguage(lang) {
|
||||||
// console.log('🇯🇲 fetching defninition');
|
console.log('🇯🇲 fetching defninition');
|
||||||
const { lang } = this.state.prefs;
|
|
||||||
if (!lang || lang === 'en') {
|
|
||||||
return {};
|
|
||||||
} else if (lang === 'hi') {
|
|
||||||
const def = require('../locales/hi/messages');
|
|
||||||
|
|
||||||
return { hi: def.default };
|
const catalog = await import(/* webpackMode: "lazy", webpackChunkName: "i18n-[index]" */ `../locales/${lang}/messages.js`);
|
||||||
} else if (lang === 'ja') {
|
|
||||||
const def = require('../locales/ja/messages');
|
|
||||||
|
|
||||||
return { ja: def.default };
|
this.setState(state => ({
|
||||||
|
catalogs: {
|
||||||
|
...state.catalogs,
|
||||||
|
[lang]: catalog.default
|
||||||
}
|
}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
incrementUnsavedChanges() {
|
incrementUnsavedChanges() {
|
||||||
@@ -637,6 +635,17 @@ export default class App extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shouldComponentUpdate(nextProps, nextState) {
|
||||||
|
const { catalogs } = nextState;
|
||||||
|
const { lang } = nextState.prefs;
|
||||||
|
|
||||||
|
if (lang && lang !== 'en' && !catalogs[lang]) {
|
||||||
|
this.loadLanguage(lang);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
closeAllOverlays() {
|
closeAllOverlays() {
|
||||||
if (this.state.isSavedItemPaneOpen) {
|
if (this.state.isSavedItemPaneOpen) {
|
||||||
this.closeSavedItemsPane();
|
this.closeSavedItemsPane();
|
||||||
@@ -1484,12 +1493,9 @@ export default class App extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render(props, { catalogs = {}, prefs = {} }) {
|
||||||
return (
|
return (
|
||||||
<I18nProvider
|
<I18nProvider language={this.state.prefs.lang} catalogs={catalogs}>
|
||||||
language={this.state.prefs.lang}
|
|
||||||
catalogs={this.getLanguageDefinition()}
|
|
||||||
>
|
|
||||||
<div class={this.getRootClasses()}>
|
<div class={this.getRootClasses()}>
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<MainHeader
|
<MainHeader
|
||||||
|
Reference in New Issue
Block a user