From 99cd9812ab3675d86acedb36aca76cf8a2bfd4db Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Wed, 4 Mar 2026 12:02:12 -0500 Subject: [PATCH] Translate Badge Modal --- src/components/settings/DonateButton.tsx | 19 ++++++++++ src/components/settings/SpecialCard.css | 22 +++++++++++ src/plugins/_api/badges/index.tsx | 4 +- src/plugins/_api/badges/modals.tsx | 47 +++++++++++++++++++++++- src/utils/constants.ts | 10 ++++- 5 files changed, 97 insertions(+), 5 deletions(-) diff --git a/src/components/settings/DonateButton.tsx b/src/components/settings/DonateButton.tsx index 87e69669b..0465d3a26 100644 --- a/src/components/settings/DonateButton.tsx +++ b/src/components/settings/DonateButton.tsx @@ -67,3 +67,22 @@ export function InviteButton({ ); } + +export function TranslateButton({ + className, + ...props +}: Partial) { + const link = "https://weblate.equicord.org/projects/equicord/"; + return ( + + ); +} diff --git a/src/components/settings/SpecialCard.css b/src/components/settings/SpecialCard.css index f037aadbd..97a9b5030 100644 --- a/src/components/settings/SpecialCard.css +++ b/src/components/settings/SpecialCard.css @@ -26,6 +26,18 @@ background-color: color-mix(in srgb, #c3a3ce 50%, rgb(240 178 240)); } +.vc-translate-button { + overflow: visible !important; + color: black; + background-color: color-mix(in srgb, #575757 50%, rgb(255, 255, 255)); +} + +.vc-translate-button:hover { + overflow: visible !important; + color: black; + background-color: color-mix(in srgb, #575757 50%, rgb(201, 201, 201)); +} + .vc-invite-link { width: 16px; height: 16px; @@ -142,4 +154,14 @@ .vc-special-image { width: 65%; +} + +.vc-translate-modal-icon { + margin: auto; + width: 60px; +} + +.vc-translate-modal-paragraph { + padding: 12px; + text-align: center; } \ No newline at end of file diff --git a/src/plugins/_api/badges/index.tsx b/src/plugins/_api/badges/index.tsx index 6125e7667..cd366010c 100644 --- a/src/plugins/_api/badges/index.tsx +++ b/src/plugins/_api/badges/index.tsx @@ -30,7 +30,7 @@ import { ContextMenuApi, Menu, Toasts, UserStore } from "@webpack/common"; import Plugins, { PluginMeta } from "~plugins"; -import { EquicordDonorModal, VencordDonorModal } from "./modals"; +import { EquicordDonorModal, EquicordTranslatorModal, VencordDonorModal } from "./modals"; const CONTRIBUTOR_BADGE = "https://cdn.discordapp.com/emojis/1092089799109775453.png?size=64"; const EQUICORD_CONTRIBUTOR_BADGE = "https://equicord.org/assets/favicon.png"; @@ -253,7 +253,7 @@ export default definePlugin({ ContextMenuApi.openContextMenu(event, () => ); }, onClick() { - return EquicordDonorModal(); + return badge.tooltip === "Equicord Translator" ? EquicordTranslatorModal() : EquicordDonorModal(); }, } satisfies ProfileBadge)); } diff --git a/src/plugins/_api/badges/modals.tsx b/src/plugins/_api/badges/modals.tsx index 275023666..f66ffe060 100644 --- a/src/plugins/_api/badges/modals.tsx +++ b/src/plugins/_api/badges/modals.tsx @@ -9,7 +9,7 @@ import { Flex } from "@components/Flex"; import { HeadingPrimary } from "@components/Heading"; import { Heart } from "@components/Heart"; import { Paragraph } from "@components/Paragraph"; -import { DonateButton } from "@components/settings"; +import { DonateButton, TranslateButton } from "@components/settings"; import { Margins } from "@utils/margins"; import { closeModal, ModalContent, ModalFooter, ModalHeader, ModalRoot, openModal } from "@utils/modal"; @@ -72,7 +72,6 @@ export function EquicordDonorModal() { const modalKey = openModal(props => ( { closeModal(modalKey); - // Will get my own in the future VencordNative.native.openExternal("https://github.com/sponsors/thororen1234"); }}> @@ -123,3 +122,47 @@ export function EquicordDonorModal() { )); } + +export function EquicordTranslatorModal() { + const modalKey = openModal(props => ( + { + closeModal(modalKey); + }}> + + + + + Equicord Translator + + + + + + + +
+ + Awarded to contributors who expand Equicord’s language support by translating content for the community. + +
+
+ + + + + +
+
+ )); +} diff --git a/src/utils/constants.ts b/src/utils/constants.ts index e0fef9853..34f87b66b 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1263,7 +1263,15 @@ export const EquicordDevs = Object.freeze({ Leon135: { name: "Leon135", id: 309275452231385088n, - } + }, + bbpltergiest: { + name: "bbpltergiest", + id: 279448683672502274n, + }, + mshl: { + name: "m.shl", + id: 1025245410224263258n, + }, } satisfies Record); // iife so #__PURE__ works correctly