feat(translations): new translation system

This commit is contained in:
David Ralph
2021-09-10 16:38:53 +01:00
parent 941c168486
commit b0eeff1bf8
63 changed files with 651 additions and 593 deletions

View File

@@ -1,3 +1,4 @@
import variables from 'modules/variables';
import Tabs from './backend/Tabs';
import Added from '../marketplace/sections/Added';
@@ -5,13 +6,14 @@ import Sideload from '../marketplace/sections/Sideload';
import Create from '../marketplace/sections/Create';
export default function Addons() {
const addons = window.language.modals.main.addons;
const getMessage = (languagecode, text) => variables.language.getMessage(languagecode, text);
const languagecode = variables.languagecode;
return (
<Tabs>
<div label={addons.added} name='added'><Added/></div>
<div label={addons.sideload} name='sideload'><Sideload/></div>
<div label={addons.create.title} name='create'><Create/></div>
<div label={getMessage(languagecode, 'modals.main.addons.added')} name='added'><Added/></div>
<div label={getMessage(languagecode, 'modals.main.addons.sideload')} name='sideload'><Sideload/></div>
<div label={getMessage(languagecode, 'modals.main.addons.create.title')} name='create'><Create/></div>
</Tabs>
);
}

View File

@@ -1,15 +1,17 @@
import variables from 'modules/variables';
import Tabs from './backend/Tabs';
import MarketplaceTab from '../marketplace/sections/Marketplace';
export default function Marketplace() {
const marketplace = window.language.modals.main.marketplace;
const getMessage = (languagecode, text) => variables.language.getMessage(languagecode, text);
const languagecode = variables.languagecode;
return (
<Tabs>
<div label={marketplace.photo_packs} name='photo_packs'><MarketplaceTab type='photo_packs'/></div>
<div label={marketplace.quote_packs} name='quote_packs'><MarketplaceTab type='quote_packs'/></div>
<div label={marketplace.preset_settings} name='preset_settings'><MarketplaceTab type='preset_settings'/></div>
<div label={getMessage(languagecode, 'modals.main.marketplace.photo_packs')} name='photo_packs'><MarketplaceTab type='photo_packs'/></div>
<div label={getMessage(languagecode, 'modals.main.marketplace.quote_packs')} name='quote_packs'><MarketplaceTab type='quote_packs'/></div>
<div label={getMessage(languagecode, 'modals.main.marketplace.preset_setitngs')} name='preset_settings'><MarketplaceTab type='preset_settings'/></div>
</Tabs>
);
}

View File

@@ -1,3 +1,4 @@
import variables from 'modules/variables';
import Tabs from './backend/Tabs';
import About from '../settings/sections/About';
@@ -18,27 +19,28 @@ import Stats from '../settings/sections/Stats';
import Keybinds from '../settings/sections/Keybinds';
export default function Settings() {
const { sections } = window.language.modals.main.settings;
const getMessage = (languagecode, text) => variables.language.getMessage(languagecode, text);
const languagecode = variables.languagecode;
return (
<>
<Tabs>
<div label={sections.time.title} name='time'><Time/></div>
<div label={sections.quote.title} name='quote'><Quote/></div>
<div label={sections.greeting.title} name='greeting'><Greeting/></div>
<div label={sections.background.title} name='background'><Background/></div>
<div label={sections.search.title} name='search'><Search/></div>
<div label={sections.quicklinks.title} name='quicklinks'><QuickLinks/></div>
<div label={sections.weather.title} name='weather'><Weather/></div>
<div label={sections.appearance.title} name='appearance'><Appearance/></div>
<div label={sections.order.title} name='order'><Order/></div>
<div label={sections.language.title} name='language'><Language/></div>
<div label={sections.advanced.title} name='advanced'><Advanced/></div>
<div label={sections.keybinds.title} name='keybinds'><Keybinds/></div>
<div label={sections.stats.title} name='stats'><Stats/></div>
<div label={sections.experimental.title} name='experimental'><Experimental/></div>
<div label={sections.changelog} name='changelog'><Changelog/></div>
<div label={sections.about.title} name='about'><About/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.time.title')} name='time'><Time/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.quote.title')} name='quote'><Quote/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.greeting.title')} name='greeting'><Greeting/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.background.title')} name='background'><Background/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.search.title')} name='search'><Search/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.quicklinks.title')} name='quicklinks'><QuickLinks/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.weather.title')} name='weather'><Weather/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.appearance.title')} name='appearance'><Appearance/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.order.title')} name='order'><Order/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.language.title')} name='language'><Language/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.advanced.title')} name='advanced'><Advanced/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.keybinds.title')} name='keybinds'><Keybinds/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.stats.title')} name='stats'><Stats/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.experimental.title')} name='experimental'><Experimental/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.changelog')} name='changelog'><Changelog/></div>
<div label={getMessage(languagecode, 'modals.main.settings.sections.about.title')} name='about'><About/></div>
</Tabs>
</>
);

View File

@@ -1,3 +1,4 @@
import variables from 'modules/variables';
import { memo } from 'react';
import {
SettingsRounded as Settings,
@@ -25,6 +26,9 @@ import {
} from '@material-ui/icons';
function Tab({ label, currentTab, onClick, navbarTab }) {
const getMessage = (languagecode, text) => variables.language.getMessage(languagecode, text);
const languagecode = variables.languagecode;
let className = 'tab-list-item';
if (currentTab === label) {
className += ' tab-list-active';
@@ -37,44 +41,41 @@ function Tab({ label, currentTab, onClick, navbarTab }) {
}
}
const settings = window.language.modals.main.settings.sections;
const { navbar, marketplace, addons } = window.language.modals.main;
let icon, divider;
switch (label) {
case navbar.settings: icon = <Settings/>; break;
case navbar.addons: icon = <Addons/>; break;
case navbar.marketplace: icon = <Marketplace/>; break;
case getMessage(languagecode, 'modals.main.navbar.settings'): icon = <Settings/>; break;
case getMessage(languagecode, 'modals.main.navbar.addons'): icon = <Addons/>; break;
case getMessage(languagecode, 'modals.main.navbar.marketplace'): icon = <Marketplace/>; break;
case settings.time.title: icon = <Time/>; break;
case settings.greeting.title: icon = <Greeting/>; break;
case settings.quote.title: icon = <Quote/>; break;
case settings.background.title: icon = <Background/>; break;
case settings.search.title: icon = <Search/>; break;
case settings.weather.title: icon = <Weather/>; break;
case settings.quicklinks.title: icon = <QuickLinks/>; break;
case settings.appearance.title: icon = <Appearance/>; break;
case settings.order.title: icon = <Order/>; break;
case settings.language.title: icon = <Language/>; divider = true; break;
case settings.advanced.title: icon = <Advanced/>; break;
case settings.keybinds.title: icon = <Keybinds/>; break;
case settings.stats.title: icon = <Stats/>; break;
case settings.experimental.title: icon = <Experimental/>; divider = true; break;
case settings.changelog: icon = <Changelog/>; break;
case settings.about.title: icon = <About/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.time.title'): icon = <Time/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.greeting.title'): icon = <Greeting/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.quote.title'): icon = <Quote/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.background.title'): icon = <Background/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.search.title'): icon = <Search/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.weather.title'): icon = <Weather/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.quicklinks.title'): icon = <QuickLinks/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.appearance.title'): icon = <Appearance/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.order.title'): icon = <Order/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.language.title'): icon = <Language/>; divider = true; break;
case getMessage(languagecode, 'modals.main.settings.sections.advanced.title'): icon = <Advanced/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.keybinds.title'): icon = <Keybinds/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.stats.title'): icon = <Stats/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.experimental.title'): icon = <Experimental/>; divider = true; break;
case getMessage(languagecode, 'modals.main.settings.sections.changelog'): icon = <Changelog/>; break;
case getMessage(languagecode, 'modals.main.settings.sections.about.title'): icon = <About/>; break;
case addons.added: icon = <Added/>; break;
case addons.sideload: icon = <Sideload/>; break;
case addons.create.title: icon = <Create/>; break;
case getMessage(languagecode, 'modals.main.addons.added'): icon = <Added/>; break;
case getMessage(languagecode, 'modals.main.addons.sideload'): icon = <Sideload/>; break;
case getMessage(languagecode, 'modals.main.addons.create.title'): icon = <Create/>; break;
case marketplace.photo_packs: icon = <Background/>; break;
case marketplace.quote_packs: icon = <Quote/>; break;
case marketplace.preset_settings: icon = <Advanced/>; break;
case getMessage(languagecode, 'modals.main.marketplace.photo_packs'): icon = <Background/>; break;
case getMessage(languagecode, 'modals.main.marketplace.quote_packs'): icon = <Quote/>; break;
case getMessage(languagecode, 'modals.main.marketplace.preset_settings'): icon = <Advanced/>; break;
default: break;
}
if (label === settings.experimental.title) {
if (label === getMessage(languagecode, 'modals.main.settings.sections.experimental.title')) {
if (localStorage.getItem('experimental') === 'false') {
return <hr/>;
}

View File

@@ -1,3 +1,4 @@
import variables from 'modules/variables';
import { PureComponent } from 'react';
import Tab from './Tab';
@@ -25,9 +26,12 @@ export default class Tabs extends PureComponent {
};
render() {
const language = variables.language;
const languagecode = variables.languagecode;
let className = 'sidebar';
let tabClass = 'tab-content';
let optionsText = (<h1>{window.language.modals.main.title}</h1>);
let optionsText = (<h1>{language.getMessage(languagecode, 'modals.main.title')}</h1>);
if (this.props.navbar) {
className = 'modalNavbar';