From a800ea217bb664329fe8401dc8276c4ccb1199ee Mon Sep 17 00:00:00 2001 From: Maximilian Harz Date: Mon, 4 Aug 2025 11:43:07 +0100 Subject: [PATCH] Fix i18n --- maintenance/app.vue | 4 +- maintenance/components/maintenance-old.vue | 80 +++++++++++++++++++ maintenance/{ => i18n}/locales/de.json | 2 +- maintenance/{ => i18n}/locales/en.json | 2 +- maintenance/{ => i18n}/locales/es.json | 2 +- maintenance/{ => i18n}/locales/fr.json | 2 +- .../locales/html/de/code-of-conduct.html | 0 .../locales/html/de/data-privacy.html | 0 .../{ => i18n}/locales/html/de/donate.html | 0 .../{ => i18n}/locales/html/de/faq.html | 0 .../{ => i18n}/locales/html/de/imprint.html | 0 .../{ => i18n}/locales/html/de/index.js | 0 .../locales/html/de/organization.html | 0 .../{ => i18n}/locales/html/de/support.html | 0 .../locales/html/de/terms-and-conditions.html | 0 .../locales/html/en/code-of-conduct.html | 0 .../locales/html/en/data-privacy.html | 0 .../{ => i18n}/locales/html/en/donate.html | 0 .../{ => i18n}/locales/html/en/faq.html | 0 .../{ => i18n}/locales/html/en/imprint.html | 0 .../{ => i18n}/locales/html/en/index.js | 0 .../locales/html/en/organization.html | 0 .../{ => i18n}/locales/html/en/support.html | 0 .../locales/html/en/terms-and-conditions.html | 0 maintenance/{ => i18n}/locales/html/index.js | 0 .../index.js => i18n/locales/index.ts} | 7 +- maintenance/{ => i18n}/locales/it.json | 2 +- maintenance/{ => i18n}/locales/nl.json | 2 +- maintenance/{ => i18n}/locales/pl.json | 2 +- maintenance/{ => i18n}/locales/pt.json | 2 +- maintenance/{ => i18n}/locales/ru.json | 2 +- maintenance/{ => i18n}/locales/tmp/.gitkeep | 0 maintenance/nuxt.config.ts | 28 +++++-- maintenance/package-lock.json | 8 ++ maintenance/package.json | 1 + 35 files changed, 126 insertions(+), 20 deletions(-) create mode 100644 maintenance/components/maintenance-old.vue rename maintenance/{ => i18n}/locales/de.json (99%) rename maintenance/{ => i18n}/locales/en.json (99%) rename maintenance/{ => i18n}/locales/es.json (99%) rename maintenance/{ => i18n}/locales/fr.json (99%) rename maintenance/{ => i18n}/locales/html/de/code-of-conduct.html (100%) rename maintenance/{ => i18n}/locales/html/de/data-privacy.html (100%) rename maintenance/{ => i18n}/locales/html/de/donate.html (100%) rename maintenance/{ => i18n}/locales/html/de/faq.html (100%) rename maintenance/{ => i18n}/locales/html/de/imprint.html (100%) rename maintenance/{ => i18n}/locales/html/de/index.js (100%) rename maintenance/{ => i18n}/locales/html/de/organization.html (100%) rename maintenance/{ => i18n}/locales/html/de/support.html (100%) rename maintenance/{ => i18n}/locales/html/de/terms-and-conditions.html (100%) rename maintenance/{ => i18n}/locales/html/en/code-of-conduct.html (100%) rename maintenance/{ => i18n}/locales/html/en/data-privacy.html (100%) rename maintenance/{ => i18n}/locales/html/en/donate.html (100%) rename maintenance/{ => i18n}/locales/html/en/faq.html (100%) rename maintenance/{ => i18n}/locales/html/en/imprint.html (100%) rename maintenance/{ => i18n}/locales/html/en/index.js (100%) rename maintenance/{ => i18n}/locales/html/en/organization.html (100%) rename maintenance/{ => i18n}/locales/html/en/support.html (100%) rename maintenance/{ => i18n}/locales/html/en/terms-and-conditions.html (100%) rename maintenance/{ => i18n}/locales/html/index.js (100%) rename maintenance/{locales/index.js => i18n/locales/index.ts} (85%) rename maintenance/{ => i18n}/locales/it.json (99%) rename maintenance/{ => i18n}/locales/nl.json (99%) rename maintenance/{ => i18n}/locales/pl.json (99%) rename maintenance/{ => i18n}/locales/pt.json (99%) rename maintenance/{ => i18n}/locales/ru.json (99%) rename maintenance/{ => i18n}/locales/tmp/.gitkeep (100%) diff --git a/maintenance/app.vue b/maintenance/app.vue index e8812b8d7..165d402f6 100644 --- a/maintenance/app.vue +++ b/maintenance/app.vue @@ -28,7 +28,9 @@ - + + diff --git a/maintenance/locales/de.json b/maintenance/i18n/locales/de.json similarity index 99% rename from maintenance/locales/de.json rename to maintenance/i18n/locales/de.json index 19d0896a9..5be667ce0 100644 --- a/maintenance/locales/de.json +++ b/maintenance/i18n/locales/de.json @@ -925,7 +925,7 @@ "Tag": "Hashtag ::: Hashtags", "User": "Nutzer ::: Nutzer" }, - "hint": "!... sucht Beiträge, @... sucht Nutzer, &... sucht Gruppen, #… sucht Hashtags", + "hint": "!... sucht Beiträge, {'@'}... sucht Nutzer, &... sucht Gruppen, #… sucht Hashtags", "no-results": "Keine Ergebnisse für \"{search}\" gefunden. Versuch' es mit einem anderen Begriff!", "page": "Seite", "placeholder": "Suchen", diff --git a/maintenance/locales/en.json b/maintenance/i18n/locales/en.json similarity index 99% rename from maintenance/locales/en.json rename to maintenance/i18n/locales/en.json index b4c1125f3..39f5e3d5e 100644 --- a/maintenance/locales/en.json +++ b/maintenance/i18n/locales/en.json @@ -925,7 +925,7 @@ "Tag": "Hashtag ::: Hashtags", "User": "User ::: Users" }, - "hint": "!... searches posts, @... searches users, &... searches groups, #… searches hashtags", + "hint": "!... searches posts, {'@'}'... searches users, &... searches groups, #… searches hashtags", "no-results": "No results found for \"{search}\". Try a different search term!", "page": "Page", "placeholder": "Search", diff --git a/maintenance/locales/es.json b/maintenance/i18n/locales/es.json similarity index 99% rename from maintenance/locales/es.json rename to maintenance/i18n/locales/es.json index 7184a327a..84ebba803 100644 --- a/maintenance/locales/es.json +++ b/maintenance/i18n/locales/es.json @@ -925,7 +925,7 @@ "Tag": null, "User": "Usuarios" }, - "hint": "¿Qué estás buscando? Utiliza !… para contribuciones, @… para usuarios, #… para hashtags.", + "hint": "¿Qué estás buscando? Utiliza !… para contribuciones, {'@'}… para usuarios, #… para hashtags.", "no-results": null, "page": null, "placeholder": "Buscar", diff --git a/maintenance/locales/fr.json b/maintenance/i18n/locales/fr.json similarity index 99% rename from maintenance/locales/fr.json rename to maintenance/i18n/locales/fr.json index 851743e63..a8edd15c8 100644 --- a/maintenance/locales/fr.json +++ b/maintenance/i18n/locales/fr.json @@ -925,7 +925,7 @@ "Tag": null, "User": "Utilisateurs" }, - "hint": "Qu'est-ce que vous cherchez? Utiliser !… pour des posts, @… pour des membres, #… pour des hashtag.", + "hint": "Qu'est-ce que vous cherchez? Utiliser !… pour des posts, {'@'}… pour des membres, #… pour des hashtag.", "no-results": null, "page": null, "placeholder": "Rechercher", diff --git a/maintenance/locales/html/de/code-of-conduct.html b/maintenance/i18n/locales/html/de/code-of-conduct.html similarity index 100% rename from maintenance/locales/html/de/code-of-conduct.html rename to maintenance/i18n/locales/html/de/code-of-conduct.html diff --git a/maintenance/locales/html/de/data-privacy.html b/maintenance/i18n/locales/html/de/data-privacy.html similarity index 100% rename from maintenance/locales/html/de/data-privacy.html rename to maintenance/i18n/locales/html/de/data-privacy.html diff --git a/maintenance/locales/html/de/donate.html b/maintenance/i18n/locales/html/de/donate.html similarity index 100% rename from maintenance/locales/html/de/donate.html rename to maintenance/i18n/locales/html/de/donate.html diff --git a/maintenance/locales/html/de/faq.html b/maintenance/i18n/locales/html/de/faq.html similarity index 100% rename from maintenance/locales/html/de/faq.html rename to maintenance/i18n/locales/html/de/faq.html diff --git a/maintenance/locales/html/de/imprint.html b/maintenance/i18n/locales/html/de/imprint.html similarity index 100% rename from maintenance/locales/html/de/imprint.html rename to maintenance/i18n/locales/html/de/imprint.html diff --git a/maintenance/locales/html/de/index.js b/maintenance/i18n/locales/html/de/index.js similarity index 100% rename from maintenance/locales/html/de/index.js rename to maintenance/i18n/locales/html/de/index.js diff --git a/maintenance/locales/html/de/organization.html b/maintenance/i18n/locales/html/de/organization.html similarity index 100% rename from maintenance/locales/html/de/organization.html rename to maintenance/i18n/locales/html/de/organization.html diff --git a/maintenance/locales/html/de/support.html b/maintenance/i18n/locales/html/de/support.html similarity index 100% rename from maintenance/locales/html/de/support.html rename to maintenance/i18n/locales/html/de/support.html diff --git a/maintenance/locales/html/de/terms-and-conditions.html b/maintenance/i18n/locales/html/de/terms-and-conditions.html similarity index 100% rename from maintenance/locales/html/de/terms-and-conditions.html rename to maintenance/i18n/locales/html/de/terms-and-conditions.html diff --git a/maintenance/locales/html/en/code-of-conduct.html b/maintenance/i18n/locales/html/en/code-of-conduct.html similarity index 100% rename from maintenance/locales/html/en/code-of-conduct.html rename to maintenance/i18n/locales/html/en/code-of-conduct.html diff --git a/maintenance/locales/html/en/data-privacy.html b/maintenance/i18n/locales/html/en/data-privacy.html similarity index 100% rename from maintenance/locales/html/en/data-privacy.html rename to maintenance/i18n/locales/html/en/data-privacy.html diff --git a/maintenance/locales/html/en/donate.html b/maintenance/i18n/locales/html/en/donate.html similarity index 100% rename from maintenance/locales/html/en/donate.html rename to maintenance/i18n/locales/html/en/donate.html diff --git a/maintenance/locales/html/en/faq.html b/maintenance/i18n/locales/html/en/faq.html similarity index 100% rename from maintenance/locales/html/en/faq.html rename to maintenance/i18n/locales/html/en/faq.html diff --git a/maintenance/locales/html/en/imprint.html b/maintenance/i18n/locales/html/en/imprint.html similarity index 100% rename from maintenance/locales/html/en/imprint.html rename to maintenance/i18n/locales/html/en/imprint.html diff --git a/maintenance/locales/html/en/index.js b/maintenance/i18n/locales/html/en/index.js similarity index 100% rename from maintenance/locales/html/en/index.js rename to maintenance/i18n/locales/html/en/index.js diff --git a/maintenance/locales/html/en/organization.html b/maintenance/i18n/locales/html/en/organization.html similarity index 100% rename from maintenance/locales/html/en/organization.html rename to maintenance/i18n/locales/html/en/organization.html diff --git a/maintenance/locales/html/en/support.html b/maintenance/i18n/locales/html/en/support.html similarity index 100% rename from maintenance/locales/html/en/support.html rename to maintenance/i18n/locales/html/en/support.html diff --git a/maintenance/locales/html/en/terms-and-conditions.html b/maintenance/i18n/locales/html/en/terms-and-conditions.html similarity index 100% rename from maintenance/locales/html/en/terms-and-conditions.html rename to maintenance/i18n/locales/html/en/terms-and-conditions.html diff --git a/maintenance/locales/html/index.js b/maintenance/i18n/locales/html/index.js similarity index 100% rename from maintenance/locales/html/index.js rename to maintenance/i18n/locales/html/index.js diff --git a/maintenance/locales/index.js b/maintenance/i18n/locales/index.ts similarity index 85% rename from maintenance/locales/index.js rename to maintenance/i18n/locales/index.ts index 28cbd27d0..c9ed8f7f6 100644 --- a/maintenance/locales/index.js +++ b/maintenance/i18n/locales/index.ts @@ -1,5 +1,4 @@ import { enUS, de, nl, fr, es, it, pt, pl, ru } from 'date-fns/locale' -import find from 'lodash/find' const locales = [ { @@ -68,7 +67,7 @@ const locales = [ ] export default locales -export function getDateFnsLocale({ $i18n }) { - const { dateFnsLocale } = find(locales, { code: $i18n.locale() }) || {} - return dateFnsLocale || enUS + +export function getDateFnsLocale(code: string) { + return locales.find(locale => locale.code === code)?.dateFnsLocale ?? enUS } diff --git a/maintenance/locales/it.json b/maintenance/i18n/locales/it.json similarity index 99% rename from maintenance/locales/it.json rename to maintenance/i18n/locales/it.json index 0c693ca43..1b5258fe6 100644 --- a/maintenance/locales/it.json +++ b/maintenance/i18n/locales/it.json @@ -925,7 +925,7 @@ "Tag": null, "User": null }, - "hint": "Cosa state cercando? Usate !... per i post, @... per gli utenti, #... per gli hashtag.", + "hint": "Cosa state cercando? Usate !... per i post, {'@'}... per gli utenti, #... per gli hashtag.", "no-results": null, "page": null, "placeholder": "Ricerca", diff --git a/maintenance/locales/nl.json b/maintenance/i18n/locales/nl.json similarity index 99% rename from maintenance/locales/nl.json rename to maintenance/i18n/locales/nl.json index 433adf8e8..b780a0cbf 100644 --- a/maintenance/locales/nl.json +++ b/maintenance/i18n/locales/nl.json @@ -925,7 +925,7 @@ "Tag": null, "User": null }, - "hint": "Waar zoekt u naar? Gebruik !... voor berichten, @... voor gebruikers, #... voor hashtags.", + "hint": "Waar zoekt u naar? Gebruik !... voor berichten, {'@'}... voor gebruikers, #... voor hashtags.", "no-results": null, "page": null, "placeholder": "Zoeken", diff --git a/maintenance/locales/pl.json b/maintenance/i18n/locales/pl.json similarity index 99% rename from maintenance/locales/pl.json rename to maintenance/i18n/locales/pl.json index c0ab9d09c..aa40d13c6 100644 --- a/maintenance/locales/pl.json +++ b/maintenance/i18n/locales/pl.json @@ -925,7 +925,7 @@ "Tag": null, "User": null }, - "hint": "Czego szukasz? Użyj !... dla postów, @... dla użytkowników, #... dla hashtagów.", + "hint": "Czego szukasz? Użyj !... dla postów, {'@'}... dla użytkowników, #... dla hashtagów.", "no-results": null, "page": null, "placeholder": "Szukaj", diff --git a/maintenance/locales/pt.json b/maintenance/i18n/locales/pt.json similarity index 99% rename from maintenance/locales/pt.json rename to maintenance/i18n/locales/pt.json index 02f8fb2cc..1b0062f4a 100644 --- a/maintenance/locales/pt.json +++ b/maintenance/i18n/locales/pt.json @@ -925,7 +925,7 @@ "Tag": null, "User": null }, - "hint": "O que você está buscando? Use !... para postagens, @... para usuários, #... para hashtags.", + "hint": "O que você está buscando? Use !... para postagens, {'@'}... para usuários, #... para hashtags.", "no-results": null, "page": null, "placeholder": "Buscar", diff --git a/maintenance/locales/ru.json b/maintenance/i18n/locales/ru.json similarity index 99% rename from maintenance/locales/ru.json rename to maintenance/i18n/locales/ru.json index ea0279450..8c67163aa 100644 --- a/maintenance/locales/ru.json +++ b/maintenance/i18n/locales/ru.json @@ -925,7 +925,7 @@ "Tag": null, "User": "Пользователи" }, - "hint": "Что вы хотите найти? Используйте !... для постов, @... для пользователей, #... для хэштегов.", + "hint": "Что вы хотите найти? Используйте !... для постов, {'@'}... для пользователей, #... для хэштегов.", "no-results": null, "page": null, "placeholder": "Поиск", diff --git a/maintenance/locales/tmp/.gitkeep b/maintenance/i18n/locales/tmp/.gitkeep similarity index 100% rename from maintenance/locales/tmp/.gitkeep rename to maintenance/i18n/locales/tmp/.gitkeep diff --git a/maintenance/nuxt.config.ts b/maintenance/nuxt.config.ts index d404ac44a..7d324acfd 100644 --- a/maintenance/nuxt.config.ts +++ b/maintenance/nuxt.config.ts @@ -1,6 +1,7 @@ import { resolve } from "path"; import sourcemaps from "rollup-plugin-sourcemaps"; -import viteTsConfigPaths from 'vite-tsconfig-paths'; +import viteTsConfigPaths from "vite-tsconfig-paths"; +import locales from "./i18n/locales"; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ @@ -26,16 +27,31 @@ export default defineNuxtConfig({ }, }, + i18n: { + locales: locales.map((locale: typeof locales[0]) => ({ + code: locale.code, + language: locale.name, + file: `${locale.code}.json`, + })), + defaultLocale: "en", + compilation: { + strictMessage: false, + }, + bundle: { + optimizeTranslationDirective: false, + } + }, + vite: { plugins: [viteTsConfigPaths()], resolve: { - alias: { - '@@': resolve(__dirname, './lib/styleguide'), - } - }, + alias: { + "@@": resolve(__dirname, "./lib/styleguide"), + }, + }, build: { rollupOptions: { - plugins: [sourcemaps, ], + plugins: [sourcemaps], output: { sourcemap: true, }, diff --git a/maintenance/package-lock.json b/maintenance/package-lock.json index 7afae9b8d..bf3a02887 100644 --- a/maintenance/package-lock.json +++ b/maintenance/package-lock.json @@ -35,6 +35,7 @@ }, "devDependencies": { "@nuxtjs/apollo": "^5.0.0-alpha.14", + "@types/lodash": "^4.17.20", "rollup-plugin-sourcemaps": "^0.6.3" } }, @@ -5021,6 +5022,13 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "license": "MIT" }, + "node_modules/@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.0.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", diff --git a/maintenance/package.json b/maintenance/package.json index 5d770ed9a..afcb82b16 100644 --- a/maintenance/package.json +++ b/maintenance/package.json @@ -40,6 +40,7 @@ }, "devDependencies": { "@nuxtjs/apollo": "^5.0.0-alpha.14", + "@types/lodash": "^4.17.20", "rollup-plugin-sourcemaps": "^0.6.3" } }