diff --git a/src/locales/af.json b/src/locales/af.json
new file mode 100644
index 00000000..a43a4de3
--- /dev/null
+++ b/src/locales/af.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Soek"
+ }
+}
diff --git a/src/locales/bg.json b/src/locales/bg.json
new file mode 100644
index 00000000..3d2a9716
--- /dev/null
+++ b/src/locales/bg.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Търси"
+ }
+}
diff --git a/src/locales/cs.json b/src/locales/cs.json
new file mode 100644
index 00000000..57c4f569
--- /dev/null
+++ b/src/locales/cs.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Search"
+ }
+}
diff --git a/src/locales/da.json b/src/locales/da.json
new file mode 100644
index 00000000..4ee323d3
--- /dev/null
+++ b/src/locales/da.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Hjem",
+ "browse": "Gennemse",
+ "search": "Søg"
+ }
+}
diff --git a/src/locales/de.json b/src/locales/de.json
index 17dff156..f9dd35a9 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -1,9 +1,15 @@
{
"nav": {
- "home": "Home",
+ "home": "Start",
"browse": "Stöbern",
"playlist": "Playliste",
"profile": "Profil",
"search": "Suche"
+ },
+ "error": {
+ "page-not-found": {
+ "headline": "Fehler",
+ "text": "Die Seite \"{path}\" gibt es nicht"
+ }
}
}
diff --git a/src/locales/el.json b/src/locales/el.json
new file mode 100644
index 00000000..cdeace5f
--- /dev/null
+++ b/src/locales/el.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Αναζήτηση"
+ }
+}
diff --git a/src/locales/en.json b/src/locales/en.json
index 8de8766d..88a3b763 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -5,5 +5,11 @@
"playlist": "Playlist",
"profile": "Profile",
"search": "Search"
+ },
+ "error": {
+ "page-not-found": {
+ "headline": "Error",
+ "text": "Sorry. We can't find the page \"{path}\"."
+ }
}
}
diff --git a/src/locales/es.json b/src/locales/es.json
new file mode 100644
index 00000000..bf4addc4
--- /dev/null
+++ b/src/locales/es.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Inicio",
+ "browse": "Buscar",
+ "search": "Buscar"
+ }
+}
diff --git a/src/locales/et.json b/src/locales/et.json
new file mode 100644
index 00000000..86a6c503
--- /dev/null
+++ b/src/locales/et.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Otsi"
+ }
+}
diff --git a/src/locales/fi.json b/src/locales/fi.json
new file mode 100644
index 00000000..c5cdcf27
--- /dev/null
+++ b/src/locales/fi.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Koti",
+ "browse": "Selaa",
+ "search": "Haku"
+ }
+}
diff --git a/src/locales/fr.json b/src/locales/fr.json
new file mode 100644
index 00000000..25d06bc0
--- /dev/null
+++ b/src/locales/fr.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Accueil",
+ "browse": "Parcourir",
+ "search": "Recherche"
+ }
+}
diff --git a/src/locales/he.json b/src/locales/he.json
new file mode 100644
index 00000000..57c4f569
--- /dev/null
+++ b/src/locales/he.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Search"
+ }
+}
diff --git a/src/locales/hr.json b/src/locales/hr.json
new file mode 100644
index 00000000..57c4f569
--- /dev/null
+++ b/src/locales/hr.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Search"
+ }
+}
diff --git a/src/locales/hu.json b/src/locales/hu.json
new file mode 100644
index 00000000..7c6cf9aa
--- /dev/null
+++ b/src/locales/hu.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Főoldal",
+ "browse": "Böngész",
+ "search": "Keresés"
+ }
+}
diff --git a/src/locales/it.json b/src/locales/it.json
new file mode 100644
index 00000000..5dc645aa
--- /dev/null
+++ b/src/locales/it.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Cerca"
+ }
+}
diff --git a/src/locales/nb.json b/src/locales/nb.json
new file mode 100644
index 00000000..7f94ee35
--- /dev/null
+++ b/src/locales/nb.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Hjem",
+ "browse": "Browse",
+ "search": "Søk"
+ }
+}
diff --git a/src/locales/nl.json b/src/locales/nl.json
new file mode 100644
index 00000000..08c7eb53
--- /dev/null
+++ b/src/locales/nl.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Zoeken"
+ }
+}
diff --git a/src/locales/pl.json b/src/locales/pl.json
new file mode 100644
index 00000000..e8c3332c
--- /dev/null
+++ b/src/locales/pl.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Przeglądaj",
+ "search": "Szukaj"
+ }
+}
diff --git a/src/locales/pt.json b/src/locales/pt.json
new file mode 100644
index 00000000..1ce107a3
--- /dev/null
+++ b/src/locales/pt.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Início",
+ "browse": "Navegar",
+ "search": "Busca"
+ }
+}
diff --git a/src/locales/ro.json b/src/locales/ro.json
new file mode 100644
index 00000000..5c412f7e
--- /dev/null
+++ b/src/locales/ro.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Acasă",
+ "browse": "Explorează",
+ "search": "Caută"
+ }
+}
diff --git a/src/locales/ru.json b/src/locales/ru.json
new file mode 100644
index 00000000..efaa8945
--- /dev/null
+++ b/src/locales/ru.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Поиск"
+ }
+}
diff --git a/src/locales/sl.json b/src/locales/sl.json
new file mode 100644
index 00000000..4a1c5fc4
--- /dev/null
+++ b/src/locales/sl.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Domov",
+ "browse": "Razišči",
+ "search": "Išči"
+ }
+}
diff --git a/src/locales/tr.json b/src/locales/tr.json
new file mode 100644
index 00000000..6213a635
--- /dev/null
+++ b/src/locales/tr.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Ara"
+ }
+}
diff --git a/src/locales/uk.json b/src/locales/uk.json
new file mode 100644
index 00000000..0e66bc39
--- /dev/null
+++ b/src/locales/uk.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Пошук"
+ }
+}
diff --git a/src/locales/zh.json b/src/locales/zh.json
new file mode 100644
index 00000000..57c4f569
--- /dev/null
+++ b/src/locales/zh.json
@@ -0,0 +1,7 @@
+{
+ "nav": {
+ "home": "Home",
+ "browse": "Browse",
+ "search": "Search"
+ }
+}
diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts
index 0f35bcee..5ed600db 100644
--- a/src/plugins/i18n.ts
+++ b/src/plugins/i18n.ts
@@ -1,13 +1,87 @@
import { createI18n } from "vue-i18n";
-import en from "../locales/en.json";
+import af from "../locales/af.json";
+import bg from "../locales/bg.json";
+import cs from "../locales/cs.json";
+import da from "../locales/da.json";
import de from "../locales/de.json";
+import el from "../locales/el.json";
+import en from "../locales/en.json";
+import es from "../locales/es.json";
+import et from "../locales/et.json";
+import fi from "../locales/fi.json";
+import fr from "../locales/fr.json";
+import he from "../locales/he.json";
+import hr from "../locales/hr.json";
+import hu from "../locales/hu.json";
+import it from "../locales/it.json";
+import nb from "../locales/nb.json";
+import nl from "../locales/nl.json";
+import pl from "../locales/pl.json";
+import pt from "../locales/pt.json";
+import ro from "../locales/ro.json";
+import ru from "../locales/ru.json";
+import sl from "../locales/sl.json";
+import tr from "../locales/tr.json";
+import uk from "../locales/uk.json";
+import zh from "../locales/zh.json";
-const i18n = createI18n<[{}], "en" | "de", false>({
+const i18n = createI18n<
+ [{}],
+ | "af"
+ | "bg"
+ | "cs"
+ | "da"
+ | "de"
+ | "el"
+ | "en"
+ | "es"
+ | "et"
+ | "fi"
+ | "fr"
+ | "he"
+ | "hr"
+ | "hu"
+ | "it"
+ | "nb"
+ | "nl"
+ | "pl"
+ | "pt"
+ | "ro"
+ | "ru"
+ | "sl"
+ | "tr"
+ | "uk"
+ | "zh",
+ false
+>({
legacy: false,
locale: "en",
messages: {
- en,
+ af,
+ bg,
+ cs,
+ da,
de,
+ el,
+ en,
+ es,
+ et,
+ fi,
+ fr,
+ he,
+ hr,
+ hu,
+ it,
+ nb,
+ nl,
+ pl,
+ pt,
+ ro,
+ ru,
+ sl,
+ tr,
+ uk,
+ zh,
},
});
diff --git a/src/router.ts b/src/router.ts
index 1dfbfbac..c23ef5bb 100644
--- a/src/router.ts
+++ b/src/router.ts
@@ -61,6 +61,12 @@ const router = createRouter({
toolbarTitle: reactiveTranslation(() => t("nav.playlist")),
},
},
+ {
+ name: "error",
+ path: "/:path(.*)",
+ component: () => import("@/views/NotFound.vue"),
+ props: true,
+ },
],
});
diff --git a/src/views/NotFound.vue b/src/views/NotFound.vue
new file mode 100644
index 00000000..0b30c25b
--- /dev/null
+++ b/src/views/NotFound.vue
@@ -0,0 +1,10 @@
+
+
+
+ {{ $t("error.page-not-found.headline") }}
+ {{ $t("error.page-not-found.text", props) }}
+