From 27aac495b96728595ca677fd7f07fe611a987b89 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Mon, 6 Jan 2025 15:51:47 +0100 Subject: [PATCH] set up i18n --- bun.lockb | Bin 359422 -> 361064 bytes package.json | 3 ++ src/app.tsx | 9 +++-- src/features/i18n/constants.ts | 9 +++++ src/features/i18n/context.tsx | 60 ++++++++++++++++++++++++++++ src/features/i18n/index.tsx | 2 + src/features/i18n/picker.module.css | 7 ++++ src/features/i18n/picker.tsx | 22 ++++++++++ src/i18n/en-GB.json | 37 +++++++++++++++++ src/i18n/nl-NL.json | 37 +++++++++++++++++ 10 files changed, 183 insertions(+), 3 deletions(-) create mode 100644 src/features/i18n/constants.ts create mode 100644 src/features/i18n/context.tsx create mode 100644 src/features/i18n/index.tsx create mode 100644 src/features/i18n/picker.module.css create mode 100644 src/features/i18n/picker.tsx create mode 100644 src/i18n/en-GB.json create mode 100644 src/i18n/nl-NL.json diff --git a/bun.lockb b/bun.lockb index e8be32d79d53775720017dedc23389252b0f35fe..9652a01f2338a9550368b771d72d1333f279a798 100644 GIT binary patch delta 61061 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
    *4!wg19a-Rv6N2WpM&StEK zWTXX91t1zEu?Xs*B~SyFLgkTZkkB#^!N9-(qCw2%AOe&@k!VmfuZHqLG>E?*YW_wM zsKiD_h(oq9GBB`D|0~TXKAlH~kpmn(po20%F@#Kmv>gNypghC~DLsxr>ElpGpMcV! zgE&C?vC*JtI|EgB7HS?6T@TvN!SDzwL4P_KFfJ{QB zLDBpT6b;jTEg8i*K{|ed0%H1FSw?ZtHd2P)ATb686dI)KFH{^G%`%-=j!}NPj2xo? zh|rjBBL|H|c92$3Er~>fic-+QJ0Q1#Xpq5zPAfm-<4w&pZ-RU zkpn@16PGkp88QtLl4XLlHcUYr1_lNi(2x?71_pzI6UD)x@GxV7IaC=k4Jv$AF)@IfKP~?C!@$6B5-N^NgXB*^!}%gK9Iivv zU5BMJkN`;RCe)x?APxfq1BeD0a2qOq2P%$CgXHf*v4=T^c4DEP;1V9S;nZY|_ z8PuQ(XitNaF9TIA1bIXq>QhZ9tqlzU9jM3PG`N^%U|;|VfP&Hls?Zcln?W_;qd_^t zi5XJNxI)!~Xi)1e2Fk}p*W;3)lXyJ?F&2TkMQKo{IN2WpYptJVCT{Z}VfdLy0YG>9lgSXlf;2 z2$H`5O_Z0R;#Z*bRj5aNlfdNE=nD0OY0|Nsx4T_=)|a)UPuq^R_T(*9675Nc5< z3#7;mgX#m(AbpWg`B)Z6d5{2=2hkvA3Jav&lLeKp&t(Bm-ZOxX)&vFdBB;TOq4W}v zE(Qh$5DjwiQYarpgP1F!A+Qc=;6^CD1?rF;P>1h=(tDuvK8X4C4EsT*Fff2=P?O{+ z3#5ex+A9lcx!r;qbPuZW0aQIc8syN25DOR{LFva({ZFC%XJCiNGcde{3cO)~r?1sw6bFw>$*@9VL>@{j zL1|SetpTOAp|l>3kScg8~X z$Ff2ze~3pBD|o_|VJ(!u9xA^HYS1>Q!P{9ONqR5H5C#SY5Dm)YphI6l zL| z6@LzO*9)lp8>sj@DE||b{suMoCsh3}sJcH;@&BLz0(pdy4Uz(wp)@O$W@m$>C@v_? z%LYk+f>3#3sJIwZTnZ{K1EuAlv;tI}G8-fzYe4zhZ1oTe^q>k2pc2MVzA2P%0p(jk zX&WeQ2c;dLv=dalE0pgJb(lAl?+c~

    !Y*R6__zVESKA=s;jB8zhItfyxU81_lrf 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 V_WiV87S(B~tQ_0fm|1^R008bh3#kAA delta 60714 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 J0#4Q+6#(3etMLE; diff --git a/package.json b/package.json index aa19ecb..8730fd2 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,13 @@ { "name": "calque", "dependencies": { + "@solid-primitives/i18n": "^2.1.1", + "@solid-primitives/storage": "^4.2.1", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.2", "@solidjs/start": "^1.0.10", "dexie": "^4.0.10", + "flag-icons": "^7.2.3", "iterator-helpers-polyfill": "^3.0.1", "sitemap": "^8.0.0", "solid-icons": "^1.1.0", diff --git a/src/app.tsx b/src/app.tsx index 977a2cf..f47cf2b 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -2,8 +2,9 @@ import { MetaProvider } from "@solidjs/meta"; import { Router } from "@solidjs/router"; import { FileRoutes } from "@solidjs/start/router"; import { Suspense } from "solid-js"; -import "./app.css"; import { ThemeProvider } from "./components/colorschemepicker"; +import { I18nProvider } from "./features/i18n"; +import "./app.css"; export default function App() { return ( @@ -11,9 +12,11 @@ export default function App() { root={props => ( - {props.children} + + {props.children} + - + )} > diff --git a/src/features/i18n/constants.ts b/src/features/i18n/constants.ts new file mode 100644 index 0000000..8d26e30 --- /dev/null +++ b/src/features/i18n/constants.ts @@ -0,0 +1,9 @@ +import { Locale } from "./context"; + +import Flag_en_GB from 'flag-icons/flags/4x3/gb.svg'; +import Flag_nl_NL from 'flag-icons/flags/4x3/nl.svg'; + +export const locales: Record = { + 'en-GB': { label: 'English', flag: Flag_en_GB }, + 'nl-NL': { label: 'Nederlands', flag: Flag_nl_NL }, +} as const; \ No newline at end of file diff --git a/src/features/i18n/context.tsx b/src/features/i18n/context.tsx new file mode 100644 index 0000000..39f801a --- /dev/null +++ b/src/features/i18n/context.tsx @@ -0,0 +1,60 @@ +import { Accessor, createContext, createMemo, createSignal, ParentComponent, Setter, useContext } from 'solid-js'; +import { translator, flatten, Translator, Flatten } from "@solid-primitives/i18n"; +import en from '~/i18n/en-GB.json'; +import nl from '~/i18n/nl-NL.json'; +import { makePersisted } from '@solid-primitives/storage'; + +type RawDictionary = typeof en; +type Dictionary = Flatten; +export type Locale = 'en-GB' | 'nl-NL'; + +const dictionaries = { + 'en-GB': en, + 'nl-NL': nl, +} as const; + +interface I18nContextType { + readonly t: Translator; + readonly locale: Accessor; + readonly setLocale: Setter; + readonly dictionaries: Accessor>; + readonly availableLocales: Accessor; +} + +const I18nContext = createContext(); + +export const I18nProvider: ParentComponent = (props) => { + const [locale, setLocale, initLocale] = makePersisted(createSignal('en-GB'), { name: 'locale' }); + const dictionary = createMemo(() => flatten(dictionaries[locale()])); + const t = translator(dictionary); + + const ctx: I18nContextType = { + t, + locale, + setLocale, + dictionaries: createMemo(() => dictionaries), + availableLocales: createMemo(() => Object.keys(dictionaries) as Locale[]), + }; + + return {props.children} +}; + +export const useI18n = () => { + const context = useContext(I18nContext); + + if (!context) { + throw new Error(`'useI18n' is called outside the scope of an `); + } + + return { t: context.t, locale: context.locale }; +}; + +export const internal_useI18n = () => { + const context = useContext(I18nContext); + + if (!context) { + throw new Error(`'useI18n' is called outside the scope of an `); + } + + return context; +}; \ No newline at end of file diff --git a/src/features/i18n/index.tsx b/src/features/i18n/index.tsx new file mode 100644 index 0000000..38e40d4 --- /dev/null +++ b/src/features/i18n/index.tsx @@ -0,0 +1,2 @@ +export { I18nProvider, useI18n } from './context'; +export { LocalePicker } from './picker'; \ No newline at end of file diff --git a/src/features/i18n/picker.module.css b/src/features/i18n/picker.module.css new file mode 100644 index 0000000..5582a74 --- /dev/null +++ b/src/features/i18n/picker.module.css @@ -0,0 +1,7 @@ +.box { + grid-template-columns: 1fr; +} + +.flag { + inline-size: 1em; +} \ No newline at end of file diff --git a/src/features/i18n/picker.tsx b/src/features/i18n/picker.tsx new file mode 100644 index 0000000..bb811aa --- /dev/null +++ b/src/features/i18n/picker.tsx @@ -0,0 +1,22 @@ +import { Component } from "solid-js"; +import { internal_useI18n } from "./context"; +import { locales } from "./constants"; +import { ComboBox } from "~/components/combobox"; +import { Dynamic } from "solid-js/web"; +import css from './picker.module.css'; + +interface LocalePickerProps { } + +export const LocalePicker: Component = (props) => { + const { locale, setLocale } = internal_useI18n(); + + return + {(locale, { flag, label }) => } + +}; \ No newline at end of file diff --git a/src/i18n/en-GB.json b/src/i18n/en-GB.json new file mode 100644 index 0000000..39f6209 --- /dev/null +++ b/src/i18n/en-GB.json @@ -0,0 +1,37 @@ +{ + "page": { + "welcome": { + "title": "Hi, welcome!", + "subtitle": "Lets get started", + "edit": "Start editing", + "instructions": "Read the instructions", + "about": "Abut this app" + }, + "edit": { + "menu": { + "file": "File", + "edit": "Edit", + "selection": "Selection" + }, + "command": { + "open": "Open folder", + "close": "Close folder", + "closeTab": "Close tab", + "save": "Save", + "saveAs": "Save as ...", + "selectAll": "Select all", + "clearSelection": "Clear selection", + "insertKey": "Insert new key", + "insertLanguage": "Insert new language", + "delete": "Delete selected items" + } + } + }, + "feature": { + "file": { + "grid": { + "key": "Key" + } + } + } +} \ No newline at end of file diff --git a/src/i18n/nl-NL.json b/src/i18n/nl-NL.json new file mode 100644 index 0000000..b55871c --- /dev/null +++ b/src/i18n/nl-NL.json @@ -0,0 +1,37 @@ +{ + "page": { + "welcome": { + "title": "Hoi, welkom!", + "subtitle": "Laten we beginnen", + "edit": "Begin met bewerken", + "instructions": "Lees de instructies", + "about": "Over deze app" + }, + "edit": { + "menu": { + "file": "Bestand", + "edit": "Bewerken", + "selection": "Selectie" + }, + "command": { + "open": "Map openen", + "close": "Map sluiten", + "closeTab": "Tabblad sluiten", + "save": "Opslaan", + "saveAs": "Opslaan als ...", + "selectAll": "Selecteer alles", + "clearSelection": "Selectie leeg maken", + "insertKey": "Voeg nieuwe sleutel toe", + "insertLanguage": "Voeg nieuwe taal toe", + "delete": "Verwijder geselecteerde items" + } + } + }, + "feature": { + "file": { + "grid": { + "key": "Sleutel" + } + } + } +} \ No newline at end of file