diff --git a/package-lock.json b/package-lock.json index 7830a113..9fdaf09b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,16 +5,16 @@ "requires": true, "dependencies": { "@mcschema/core": { - "version": "0.10.0-beta.6", - "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.10.0-beta.6.tgz", - "integrity": "sha512-52QcHOBuATSL9dqI3fuNMexuJFwwF9NrtILs+IzkwAt/40e7VnR29doJW8P3JkNcZ2a9BaVtw5ExfbePj9rTFg==" + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.11.0.tgz", + "integrity": "sha512-6FZxNI2PQleT/4wDIatL7PvTZRHvbD5zWzcJLl0JgvKu7G6XXmox+TNT3L7j/auGCDSSf4wq+n+MtoXYxZ/EnQ==" }, "@mcschema/java-1.16": { - "version": "0.5.9-beta.1", - "resolved": "https://registry.npmjs.org/@mcschema/java-1.16/-/java-1.16-0.5.9-beta.1.tgz", - "integrity": "sha512-Yh+Z6jH/GU/WgshsHfz6aRZLXGMldhaHgWfk+eWvY3f8ftrurNW+OUddCx3kwOZ4gADy5pivVhISB1yecpWKxQ==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@mcschema/java-1.16/-/java-1.16-0.5.12.tgz", + "integrity": "sha512-o6bnFQgilAYYMLklv3buBbVRDeK3THN2FiHHaJqHiFbs+EeNpcJ0tWm/PDRgrTUnw8TIfiNft6Ro992NwWXkkg==", "requires": { - "@mcschema/core": "^0.10.0-beta.3" + "@mcschema/core": "^0.11.0" } }, "@mcschema/locales": { diff --git a/package.json b/package.json index f3803920..93d1e6f8 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "author": "Misode", "license": "MIT", "dependencies": { - "@mcschema/core": "^0.10.0-beta.6", - "@mcschema/java-1.16": "^0.5.9-beta.1", + "@mcschema/core": "^0.11.0", + "@mcschema/java-1.16": "^0.5.12", "@mcschema/locales": "^0.1.11", "@types/google.analytics": "0.0.40", "@types/split.js": "^1.4.0", diff --git a/src/app/ErrorsView.ts b/src/app/ErrorsView.ts index 9664d230..785b91b2 100644 --- a/src/app/ErrorsView.ts +++ b/src/app/ErrorsView.ts @@ -1,9 +1,9 @@ import { DataModel, Errors, - locale, } from '@mcschema/core' import { AbstractView } from './AbstractView' +import { locale } from './locales' export class ErrorsView extends AbstractView { target: HTMLElement diff --git a/src/app/app.ts b/src/app/app.ts index 1e4965dc..40deb0cf 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -1,12 +1,5 @@ import Split from 'split.js' -import { - Base, - DataModel, - locale, - LOCALES, - ModelPath, - Path, -} from '@mcschema/core' +import { Base, DataModel, ModelPath, Path } from '@mcschema/core' import { getCollections, getSchemas } from '@mcschema/java-1.16' import { VisualizerView } from './visualization/VisualizerView' import { RegistryFetcher } from './RegistryFetcher' @@ -16,6 +9,7 @@ import { ErrorsView } from './ErrorsView' import config from '../config.json' import { BiomeNoiseVisualizer } from './visualization/BiomeNoiseVisualizer' import { Mounter } from './Mounter' +import { getLanguage, hasLocale, locale, registerLocale, setLanguage } from './locales' const LOCAL_STORAGE_THEME = 'theme' const LOCAL_STORAGE_LANGUAGE = 'language' @@ -92,9 +86,9 @@ const treeViewNodeInjector = (path: ModelPath, mounter: Mounter) => { const fetchLocale = async (id: string) => { const response = await fetch(publicPath + `locales/${id}.json`) - LOCALES.register(id, await response.json()) + registerLocale(id, await response.json()) } -LOCALES.language = localStorage.getItem(LOCAL_STORAGE_LANGUAGE)?.toLowerCase() ?? 'en' +setLanguage(localStorage.getItem(LOCAL_STORAGE_LANGUAGE)?.toLowerCase()) const homeLink = document.getElementById('home-link')! const homeGenerators = document.getElementById('home-generators')! @@ -151,8 +145,8 @@ const views = { const COLLECTIONS = getCollections() Promise.all([ - fetchLocale(LOCALES.language), - ...(LOCALES.language === 'en' ? [] : [fetchLocale('en')]), + fetchLocale(getLanguage()), + ...(getLanguage() === 'en' ? [] : [fetchLocale('en')]), RegistryFetcher(COLLECTIONS, config.registries) ]).then(responses => { @@ -182,29 +176,29 @@ Promise.all([ } selectedModel.textContent = title document.title = title - } - - const updateLanguage = (id: string, store = false) => { - LOCALES.language = id - if (store) { - localStorage.setItem(LOCAL_STORAGE_LANGUAGE, id) - } document.querySelectorAll('[data-i18n]').forEach(el => { el.textContent = locale(el.attributes.getNamedItem('data-i18n')!.value) }) + } + + const updateLanguage = (id: string, store = false) => { + setLanguage(id) + if (store) { + localStorage.setItem(LOCAL_STORAGE_LANGUAGE, id) + } languageSelectorMenu.innerHTML = '' config.languages.forEach(lang => { languageSelectorMenu.insertAdjacentHTML('beforeend', - `