credits, clean up css, add more translations

This commit is contained in:
rift 2024-03-27 21:16:45 -05:00
parent 9abb1dfc97
commit 9e4f84cf09
10 changed files with 195 additions and 15 deletions

View file

@ -24,7 +24,8 @@
"proxy": "Proxy", "proxy": "Proxy",
"tab": "Tab", "tab": "Tab",
"custom": "Customization", "custom": "Customization",
"misc": "Misc" "misc": "Misc",
"credits": "Credits"
}, },
"proxy": { "proxy": {
"title": "Proxy", "title": "Proxy",
@ -56,10 +57,22 @@
"subtitle": "Enter the URL of your bare server", "subtitle": "Enter the URL of your bare server",
"select": "Select" "select": "Select"
}, },
"wisp": {
"title": "Wisp Server",
"subtitle": "Enter the url of a Wisp server",
"select": "Select"
},
"transport": {
"title": "Transport",
"desc": "Select the transport to use"
},
"theme": { "theme": {
"title": "Theme", "title": "Theme",
"subtitle": "Choose a theme so your eyes don't hate us", "subtitle": "Choose a theme so your eyes don't hate us",
"select": "Select" "select": "Select",
"particles": "Particles",
"particlesDesc": "Choose a particles wallpaper",
"particlesNone": "None"
}, },
"httpProxy": { "httpProxy": {
"title": "(Advanced) HTTP Proxy", "title": "(Advanced) HTTP Proxy",
@ -118,5 +131,10 @@
"q": "Nebula is slow.", "q": "Nebula is slow.",
"a": "You might be connected to the wrong server. Check the bare server you are connected to and make sure its the country you're closest to." "a": "You might be connected to the wrong server. Check the bare server you are connected to and make sure its the country you're closest to."
} }
},
"credits": {
"devs": "Site Developers",
"jpTranslators": "Japanese Translators",
"esTranslators": "Spanish Translators"
} }
} }

View file

@ -24,7 +24,8 @@
"proxy": "Proxy", "proxy": "Proxy",
"tab": "Pestaña", "tab": "Pestaña",
"custom": "Personalización", "custom": "Personalización",
"misc": "Misc" "misc": "Misc",
"credits": "Créditos"
}, },
"proxy": { "proxy": {
"title": "Proxy", "title": "Proxy",
@ -56,9 +57,21 @@
"subtitle": "Pon tu url de tu bare server", "subtitle": "Pon tu url de tu bare server",
"select": "Seleccionar" "select": "Seleccionar"
}, },
"wisp": {
"title": "Servidor Wisp",
"subtitle": "Introduzca la URL de un servidor Wisp",
"select": "Seleccionar"
},
"transport": {
"title": "Transporte",
"desc": "Seleccione el transporte que desea utilizar"
},
"theme": { "theme": {
"title": "Mirar", "title": "Mirar",
"subtitle": "Elige una mirada para que tus ojos no nos odienn" "subtitle": "Elige una mirada para que tus ojos no nos odienn",
"particles": "Partículas",
"particlesDesc": "Elige un fondo de pantalla de partículas",
"particlesNone": "Ninguna"
}, },
"httpProxy": { "httpProxy": {
"title": "Proxy HTTP (avanzado)", "title": "Proxy HTTP (avanzado)",
@ -117,5 +130,10 @@
"q": "Nebula es lento.", "q": "Nebula es lento.",
"a": "Es posible que estés conectado al servidor incorrecto. Verifica el servidor bare al que estás conectado y asegúrate de que sea el país más cercano a ti." "a": "Es posible que estés conectado al servidor incorrecto. Verifica el servidor bare al que estás conectado y asegúrate de que sea el país más cercano a ti."
} }
},
"credits": {
"devs": "Desarrolladores del sitio",
"jpTranslators": "Traductores de japonés",
"esTranslators": "Traductores de español"
} }
} }

View file

@ -24,7 +24,8 @@
"proxy": "プロキシ", "proxy": "プロキシ",
"tab": "タブ", "tab": "タブ",
"custom": "カスタマイズ", "custom": "カスタマイズ",
"misc": "その他" "misc": "その他",
"credits": "クレジット"
}, },
"proxy": { "proxy": {
"title": "プロキシ", "title": "プロキシ",
@ -56,9 +57,21 @@
"subtitle": "Bare サーバー URL を入力してください", "subtitle": "Bare サーバー URL を入力してください",
"select": "選択する" "select": "選択する"
}, },
"wisp": {
"title": "Wisp サーバ",
"subtitle": "Wisp サーバの URL を入力してください",
"select": "選択"
},
"transport": {
"title": "輸送",
"desc": "使用するトランスポートを選択します"
},
"theme": { "theme": {
"title": "テーマ", "title": "テーマ",
"subtitle": "目が嫌いにならないようにテーマを選んでください" "subtitle": "目が嫌いにならないようにテーマを選んでください",
"particles": "粒子",
"particlesDesc": "粒子の壁紙を選択してください",
"particlesNone": "なし"
}, },
"httpProxy": { "httpProxy": {
"title": "(高度な) HTTPプロキシ", "title": "(高度な) HTTPプロキシ",
@ -117,5 +130,10 @@
"q": "ネビュラが遅いです。", "q": "ネビュラが遅いです。",
"a": "間違ったサーバーに接続している可能性があります。接続しているベアサーバーを確認し、最も近い国であることを確認してください。" "a": "間違ったサーバーに接続している可能性があります。接続しているベアサーバーを確認し、最も近い国であることを確認してください。"
} }
},
"credits": {
"devs": "サイト開発者",
"jpTranslators": "日本語翻訳者",
"esTranslators": "スペイン語翻訳者"
} }
} }

View file

@ -0,0 +1,99 @@
import { motion } from "framer-motion";
import { tabContentVariant, settingsPageVariant } from "./Variants";
import Dropdown from "./Dropdown";
import { useTranslation } from "react-i18next";
import { PersonCard } from "./PersonCard";
export const Credits = ({ id, active }) => {
const { t } = useTranslation();
return (
<motion.div
role="tabpanel"
id={id}
className="tab-content"
variants={tabContentVariant}
animate={active ? "active" : "inactive"}
initial="inactive"
>
<motion.div
variants={settingsPageVariant}
className="content-card flex w-full flex-row flex-wrap justify-center gap-4"
>
<div className="w-full p-10 text-input-text">
<div className="py-3">
<p className="text-4xl">{t("credits.devs")}</p>
<div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
<PersonCard
name="Riftriot"
url="https://github.com/riftriot/"
profile="https://avatars.githubusercontent.com/u/117926989?v=4"
/>
<PersonCard
name="MotorTruck1221"
url="https://github.com/MotorTruck1221"
profile="https://avatars.githubusercontent.com/u/73721704?v=4"
/>
<PersonCard
name="Cohen"
url="https://github.com/cohenerickson"
profile="https://avatars.githubusercontent.com/u/72945444?v=4"
/>
<PersonCard
name="FireStreaker2"
url="https://github.com/FireStreaker2"
profile="https://avatars.githubusercontent.com/u/103970465?v=4"
/>
<PersonCard
name="wearr"
url="https://github.com/wearrrrr"
profile="https://avatars.githubusercontent.com/u/99224452?v=4"
/>
</div>
<p className="mt-12 text-4xl">{t("credits.jpTranslators")}</p>
<div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
<PersonCard
name="ProgrammerIn-wonderland"
url="https://github.com/ProgrammerIn-wonderland"
profile="https://avatars.githubusercontent.com/u/30693865?v=4"
/>
<PersonCard
name="wearr"
url="https://github.com/wearrrrr"
profile="https://avatars.githubusercontent.com/u/99224452?v=4"
/>
</div>
<p className="mt-12 text-4xl">{t("credits.esTranslators")}</p>
<div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
<PersonCard
name="Cohen"
url="https://github.com/cohenerickson"
profile="https://avatars.githubusercontent.com/u/72945444?v=4"
/>
<PersonCard
name="Notplayingallday383"
url="https://github.com/Notplayingallday383"
profile="https://avatars.githubusercontent.com/u/72810050?v=4"
/>
</div>
<a href="https://github.com/titaniumnetwork-dev/Ultraviolet">
<p className="mt-12 text-4xl underline">Ultraviolet</p>
</a>
<a href="https://github.com/binary-person/Rammerhead">
<p className="mt-12 text-4xl underline">Rammerhead</p>
</a>
<a href="https://github.com/nebulaservices/dynamic">
<p className="mt-12 text-4xl underline">Dynamic</p>
</a>
<a href="https://github.com/MercuryWorkshop/epoxy-tls">
<p className="mt-12 text-4xl underline">epoxy-tls</p>
</a>
<a href="https://github.com/MercuryWorkshop/libcurl.js">
<p className="mt-12 text-4xl underline">libcurl.js</p>
</a>
</div>
</div>
</motion.div>
</motion.div>
);
};

View file

@ -16,7 +16,7 @@ function Customization({ id, active }) {
]; ];
const particles = [ const particles = [
{ id: "none", label: "None" }, { id: "none", label: t("settings.theme.particlesNone") },
{ id: "/crismas.json", label: t("themes.crismas") } { id: "/crismas.json", label: t("themes.crismas") }
]; ];
@ -44,10 +44,10 @@ function Customization({ id, active }) {
</div> </div>
<div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center"> <div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center">
<div className="p-2 text-3xl font-bold text-input-text"> <div className="p-2 text-3xl font-bold text-input-text">
Particles {t("settings.theme.particles")}
</div> </div>
<div className="text-md p-4 font-bold text-input-text"> <div className="text-md p-4 font-bold text-input-text">
Choose a particles wallpaper. {t("settings.theme.particlesDesc")}
</div> </div>
<Dropdown storageKey="particles" options={particles} refresh={true} /> <Dropdown storageKey="particles" options={particles} refresh={true} />
</div> </div>

View file

@ -0,0 +1,18 @@
interface props {
name: string;
url: string;
profile: string;
}
export const PersonCard = (props) => {
return (
<div class="flex flex-row mr-8">
<p className="text-lg">
<a href={props.url} class="underline">
<img src={props.profile} className="h-12 w-12 rounded-md" />
{props.name}
</a>
</p>
</div>
);
};

View file

@ -123,20 +123,20 @@ const Proxy = ({ id, active }) => {
{transport !== "bare" && ( {transport !== "bare" && (
<div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center"> <div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center">
<div className="p-2 text-3xl font-bold text-input-text"> <div className="p-2 text-3xl font-bold text-input-text">
Wisp Server {t("settings.wisp.title")}
</div> </div>
<div className="text-md p-4 font-bold text-input-text"> <div className="text-md p-4 font-bold text-input-text">
Enter the url of a Wisp server {t("settings.wisp.subtitle")}
</div> </div>
<WispInput placeholder={wispUrl} /> <WispInput placeholder={wispUrl} />
</div> </div>
)} )}
<div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center"> <div className="flex h-64 w-80 flex-col flex-wrap content-center items-center rounded-lg border border-input-border-color bg-lighter p-2 text-center">
<div className="p-2 text-3xl font-bold text-input-text"> <div className="p-2 text-3xl font-bold text-input-text">
Transport {t("settings.transport.title")}
</div> </div>
<div className="text-md p-4 font-bold text-input-text"> <div className="text-md p-4 font-bold text-input-text">
Select the transport to use {t("settings.transport.desc")}
</div> </div>
<TransportDropdown <TransportDropdown
storageKey="transport" storageKey="transport"

View file

@ -56,7 +56,7 @@ function WispInput(props: WispInputProps) {
className="font-roboto mt-2 flex h-4 w-36 cursor-pointer flex-row items-center justify-center rounded-xl border border-input-border-color bg-input p-5 text-center text-lg text-input-text" className="font-roboto mt-2 flex h-4 w-36 cursor-pointer flex-row items-center justify-center rounded-xl border border-input-border-color bg-input p-5 text-center text-lg text-input-text"
onClick={handleChange} onClick={handleChange}
> >
Select {t("settings.wisp.select")}
</div> </div>
</div> </div>
</div> </div>

View file

@ -89,7 +89,7 @@ img {
padding: 16px; padding: 16px;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px; font-size: 14px;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
} }

View file

@ -7,6 +7,8 @@ import { GoBrowser } from "react-icons/go";
import { AiOutlineLaptop } from "react-icons/ai"; import { AiOutlineLaptop } from "react-icons/ai";
import { FaPalette } from "react-icons/fa"; import { FaPalette } from "react-icons/fa";
import { FaGear } from "react-icons/fa6"; import { FaGear } from "react-icons/fa6";
import { IoMdPerson } from "react-icons/io";
import { Credits } from "./Credits";
const tabs = [ const tabs = [
{ {
@ -36,6 +38,13 @@ const tabs = [
icon: <FaGear />, icon: <FaGear />,
color: "#f56868", color: "#f56868",
content: Misc content: Misc
},
{
title: "settings.tabs.credits",
id: "credits",
icon: <IoMdPerson />,
color: "#fefefe",
content: Credits
} }
]; ];