i18n: optimize performance

This commit is contained in:
thislight 2024-11-23 23:36:51 +08:00
parent 296de7d23b
commit 9fe86d12b0
No known key found for this signature in database
GPG key ID: FCFE5192241CCD4E
2 changed files with 60 additions and 74 deletions

View file

@ -1,4 +1,4 @@
import { Route, Router } from "@solidjs/router";
import { Route } from "@solidjs/router";
import { ThemeProvider } from "@suid/material";
import {
Component,
@ -17,7 +17,12 @@ import {
} from "./masto/clients.js";
import { $accounts, updateAcctInf } from "./accounts/stores.js";
import { useStore } from "@nanostores/solid";
import { DateFnScope, useLanguage } from "./platform/i18n.jsx";
import {
AppLocaleProvider,
createCurrentLanguage,
createCurrentRegion,
createDateFnLocaleResource,
} from "./platform/i18n.jsx";
import { useRegisterSW } from "virtual:pwa-register/solid";
import {
isJSONRPCResult,
@ -67,7 +72,9 @@ const Routing: Component = () => {
const App: Component = () => {
const theme = useRootTheme();
const accts = useStore($accounts);
const lang = useLanguage();
const lang = createCurrentLanguage();
const region = createCurrentRegion();
const dateFnLocale = createDateFnLocaleResource(region);
const [serviceWorker, setServiceWorker] = createSignal<
ServiceWorker | undefined
>(undefined, { name: "serviceWorker" });
@ -150,7 +157,13 @@ const App: Component = () => {
}}
>
<ThemeProvider theme={theme}>
<DateFnScope>
<AppLocaleProvider
value={{
language: lang,
region: region,
dateFn: dateFnLocale,
}}
>
<ClientProvider value={clients}>
<ServiceWorkerProvider
value={{
@ -162,7 +175,7 @@ const App: Component = () => {
<Routing />
</ServiceWorkerProvider>
</ClientProvider>
</DateFnScope>
</AppLocaleProvider>
</ThemeProvider>
</ErrorBoundary>
);