diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json
index 5f50f7a2..7e7e236c 100644
--- a/src/assets/locales/en.json
+++ b/src/assets/locales/en.json
@@ -27,6 +27,10 @@
},
"migration": {
"failed": "Failed to migrate your data."
+ },
+ "dmca": {
+ "title": "",
+ "text": ""
}
},
"navigation": {
@@ -44,6 +48,79 @@
"actions": {
"copy": "Copy"
},
+ "settings": {
+ "unsaved": "You have unsaved changes",
+ "reset": "Reset",
+ "save": "Save",
+ "sidebar": {
+ "info": {
+ "title": "App information",
+ "hostname": "Hostname",
+ "backendUrl": "Backend URL",
+ "userId": "User ID",
+ "notLoggedIn": "Not logged in",
+ "appVersion": "App version",
+ "backendVersion": "Backend version",
+ "unknownVersion": "Unknown",
+ "secure": "Secure",
+ "insecure": "Insecure"
+ }
+ },
+ "appearance": {
+ "title": "Appearance",
+ "activeTheme": "Active",
+ "themes": {
+ "default": "Default",
+ "blue": "Blue",
+ "teal": "Teal",
+ "red": "Red",
+ "gray": "Gray"
+ }
+ },
+ "account": {
+ "title": "Account",
+ "register": {
+ "title": "Sync to the cloud",
+ "text": "Instantly share your watch progress between devices and keep them synced.",
+ "cta": "Get started"
+ },
+ "profile": {
+ "title": "Edit profile picture",
+ "firstColor": "First color",
+ "secondColor": "Second color",
+ "userIcon": "User icon",
+ "finish": "Finish editing"
+ },
+ "devices": {
+ "title": "Devices",
+ "failed": "Failed to load sessions",
+ "deviceNameLabel": "Device name",
+ "removeDevice": "Remove"
+ }
+ },
+ "locale": {
+ "title": "Locale",
+ "language": "Application language",
+ "languageDescription": "Language applied to the entire application."
+ },
+ "captions": {
+ "title": "Captions"
+ },
+ "connections": {
+ "title": "Connections"
+ }
+ },
+ "faq": {
+ "title": "About us",
+ "q1": {
+ "title": "1",
+ "body": "Body of 1"
+ },
+ "how": {
+ "title": "1",
+ "body": "Body of 1"
+ }
+ },
"footer": {
"tagline": "Watch your favorite shows and movies with this open source streaming app.",
"links": {
diff --git a/src/pages/About.tsx b/src/pages/About.tsx
index c720186d..c57ed706 100644
--- a/src/pages/About.tsx
+++ b/src/pages/About.tsx
@@ -1,4 +1,4 @@
-/* eslint-disable react/no-unescaped-entities */
+import { useTranslation } from "react-i18next";
import { ThinContainer } from "@/components/layout/ThinContainer";
import { Ol } from "@/components/utils/Ol";
@@ -16,95 +16,18 @@ function Question(props: { title: string; children: React.ReactNode }) {
}
export function AboutPage() {
+ const { t } = useTranslation();
return (
- About us
+ {t("faq.title")}
- Blue, oh so blue, like the tranquil sky on a summer's day. It's
- the color of calm and serenity, a gentle embrace for your senses.
- When you think of blue, you think of the vast ocean stretching
- endlessly, inviting you to dive deep into its azure depths.
- ,
-
- Blue is the color of dreams, where the world slows down, and you
- can hear the whispers of the wind in the tall grass. It's a
- symphony of peacefulness that resonates with your soul, like a
- melody that lingers in your heart.
- ,
-
- Blue, like, it's totally, um, the essence of like, everything, you
- know? It's like, you look at it, and it's like, it's there, but
- it's also not there, and it's like, you're trying to grasp the
- concept of blue, but it's like trying to catch a dream in a net
- made of spaghetti, you know? It's like, it's the ultimate paradox,
- and it's like, it's just blowing your mind, man, like, it's like
- trying to find the meaning of life in a jar of peanut butter, but
- the peanut butter is made of pure energy, man, and it's like,
- whoa.
- ,
+ {t("faq.q1.body")},
]}
/>
-
- Blue, oh so blue, like the tranquil sky on a summer's day. It's the
- color of calm and serenity, a gentle embrace for your senses. When you
- think of blue, you think of the vast ocean stretching endlessly,
- inviting you to dive deep into its azure depths. Blue is the color of
- dreams, where the world slows down, and you can hear the whispers of
- the wind in the tall grass. It's a symphony of peacefulness that
- resonates with your soul, like a melody that lingers in your heart.
-
- How does it work?
-
- Blue, well, it's like this cosmic wavelength, man, and it's like the
- universe is just vibin', you know? It's like, when you stare at the
- blue, it's like you're staring at the secrets of the cosmos, like,
- whoa, it's like a trippy trip to another dimension where time doesn't
- even matter, and you're just floating in a sea of, like, blue, man.
- And it's like, it's not just a color, it's a whole experience, like,
- you're in this cosmic rollercoaster ride through the quantum soup of
- existence, and you're just riding the blue wave, man.
-
-
- Blue, like, it's totally, um, the essence of like, everything, you
- know? It's like, you look at it, and it's like, it's there, but it's
- also not there, and it's like, you're trying to grasp the concept of
- blue, but it's like trying to catch a dream in a net made of
- spaghetti, you know? It's like, it's the ultimate paradox, and it's
- like, it's just blowing your mind, man, like, it's like trying to find
- the meaning of life in a jar of peanut butter, but the peanut butter
- is made of pure energy, man, and it's like, whoa.
-
- Frequently asked questions
-
- Blue, blue, b-b-b-bluuuuuueeeeeeeee, zippity zappity zoooooo, it's
- like, you know, it's like, blue is like, um, you know, it's like, um,
- like a thing, but it's also not a thing, and it's like, whoa, dude,
- it's like, it's like trying to juggle invisible watermelons while
- riding a unicycle made of rubber bands and ketchup, and it's like,
- you're just floating in the cosmic jellyfish of existence, and the
- jellyfish are like, playing the accordion, man, and it's like, the
- accordion is made of, like, spaghetti and, like, um, interdimensional
- cheese, and it's like, whoa, dude, like, whoa.
-
-
- Bloo-bloo-bloo, bleepity-bloop, blibber-blabber, blarble-blurble, blue
- is like, um, you know, flibberflabberfloober, like,
- zoomity-zamity-zoom, and it's like, um, sproingity-sproing, like, uh,
- gibber-gabber-gobblygook, you know, it's like, um,
- jibber-jabber-jibberish, like, whatchamacallit, thingamajig,
- doodad-doodad-dingdong, like, ploopity-ploop, um, blibbity-blam,
- flibbity-floo, like, gobbledygook-gobbledygook,
- whoopsy-daisy-dingleberry, and it's like, uh,
- flibberflabberflooberzoomity-sproing, um, like,
- blibber-gibber-jibber-jabber, thingamajig-whatchamacallit, like, you
- know, thingamajig-doodad-doodledee, and it's like, um,
- doodad-gobbledygook-doodley-doo, like,
- ploopity-whoopsy-doodleberry-flibber, you know, it's like, uh, blue,
- man, like, totally, um, blue.
-
+ {t("faq.how.title")}
+ {t("faq.how.body")}
);
diff --git a/src/pages/Dmca.tsx b/src/pages/Dmca.tsx
index c74ee85a..883af44f 100644
--- a/src/pages/Dmca.tsx
+++ b/src/pages/Dmca.tsx
@@ -7,14 +7,15 @@ import { Heading1, Paragraph } from "@/components/utils/Text";
import { SubPageLayout } from "./layouts/SubPageLayout";
+// TODO make email a constant
export function DmcaPage() {
const { t } = useTranslation();
return (
- {t("dmca.title")}
- {t("dmca.description")}
+ {t("screens.dmca.title")}
+ {t("screens.dmca.text")}dmca@movie-web.app
diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx
index cb0677f1..30ed4e5e 100644
--- a/src/pages/Settings.tsx
+++ b/src/pages/Settings.tsx
@@ -1,5 +1,6 @@
import classNames from "classnames";
import { useCallback, useEffect, useMemo } from "react";
+import { useTranslation } from "react-i18next";
import { useAsyncFn } from "react-use";
import {
@@ -96,6 +97,7 @@ export function AccountSettings(props: {
}
export function SettingsPage() {
+ const { t } = useTranslation();
const activeTheme = useThemeStore((s) => s.theme);
const setTheme = useThemeStore((s) => s.setTheme);
@@ -244,21 +246,21 @@ export function SettingsPage() {
state.changed ? "opacity-100" : "opacity-0"
}`}
>
-