diff --git a/web/i18n/en/updates.json b/web/i18n/en/updates.json
new file mode 100644
index 00000000..3ffeb8b4
--- /dev/null
+++ b/web/i18n/en/updates.json
@@ -0,0 +1,4 @@
+{
+ "button.next": "go to older changelog ({{ value }})",
+ "button.previous": "go to newer changelog ({{ value }})"
+}
diff --git a/web/src/lib/i18n/translations.ts b/web/src/lib/i18n/translations.ts
index 97a200f2..9bdefaa7 100644
--- a/web/src/lib/i18n/translations.ts
+++ b/web/src/lib/i18n/translations.ts
@@ -12,8 +12,8 @@ import languages from '$i18n/languages.json';
const locFiles = import.meta.glob('$i18n/*/**/*.json');
const parsedLocfiles: StructuredLocfileInfo = {};
-for (const [ path, loader ] of Object.entries(locFiles)) {
- const [,, lang, ...keyComponents ] = path.split('/');
+for (const [path, loader] of Object.entries(locFiles)) {
+ const [, , lang, ...keyComponents] = path.split('/');
const key = keyComponents.map(k => k.replace('.json', '')).join('.');
parsedLocfiles[lang] = {
...parsedLocfiles[lang],
@@ -22,7 +22,9 @@ for (const [ path, loader ] of Object.entries(locFiles)) {
}
const defaultLocale = 'en';
-const config: Config = {
+const config: Config<{
+ value?: string;
+}> = {
fallbackLocale: defaultLocale,
translations: Object.keys(parsedLocfiles).reduce((obj, lang) => {
return {
@@ -30,8 +32,8 @@ const config: Config = {
[lang]: { languages }
}
}, {}),
- loaders: Object.entries(parsedLocfiles).map(([ lang, keys ]) => {
- return Object.entries(keys).map(([ key, importer ]) => {
+ loaders: Object.entries(parsedLocfiles).map(([lang, keys]) => {
+ return Object.entries(keys).map(([key, importer]) => {
return {
locale: lang,
key,
diff --git a/web/src/routes/updates/+page.svelte b/web/src/routes/updates/+page.svelte
index 475e9397..d8e13601 100644
--- a/web/src/routes/updates/+page.svelte
+++ b/web/src/routes/updates/+page.svelte
@@ -67,7 +67,7 @@
wrapper.scrollTop += e.deltaY;
e.preventDefault();
}
- }
+ };
$: prev = versions[currentIndex - 1];
$: next = versions[currentIndex + 1];
@@ -80,20 +80,16 @@
-