From fe007405cf7935b5f0afd5a9b640879b09c8ffce Mon Sep 17 00:00:00 2001 From: korzi <106588537+notkorzi@users.noreply.github.com> Date: Sun, 15 Feb 2026 19:28:50 +0500 Subject: [PATCH] fix(TranslatePlus): improve layout and structure (#775) * fix(TranslatePlus): improve layout and structure * Update translator.ts --------- Co-authored-by: thororen1234 <78185467+thororen1234@users.noreply.github.com> --- src/equicordplugins/translatePlus/style.css | 2 ++ .../translatePlus/utils/accessory.tsx | 4 ++-- .../translatePlus/utils/translator.ts | 18 +++++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/equicordplugins/translatePlus/style.css b/src/equicordplugins/translatePlus/style.css index e81dad641..85bdfc2b2 100644 --- a/src/equicordplugins/translatePlus/style.css +++ b/src/equicordplugins/translatePlus/style.css @@ -3,6 +3,8 @@ margin-top: 0.5em; font-style: italic; font-weight: 400; + display: block; + white-space: pre-wrap; } .eq-trans-accessory svg { diff --git a/src/equicordplugins/translatePlus/utils/accessory.tsx b/src/equicordplugins/translatePlus/utils/accessory.tsx index c8b8a62f2..7ad167d73 100644 --- a/src/equicordplugins/translatePlus/utils/accessory.tsx +++ b/src/equicordplugins/translatePlus/utils/accessory.tsx @@ -28,12 +28,12 @@ export function Accessory({ message }: { message: Message; }) { if (!translation) return null; return ( - +
{Parser.parse(translation.text)} {" "} (translated from {languages[translation.src] ?? translation.src} - ) - +
); } diff --git a/src/equicordplugins/translatePlus/utils/translator.ts b/src/equicordplugins/translatePlus/utils/translator.ts index 7ab5828b2..6b002d769 100644 --- a/src/equicordplugins/translatePlus/utils/translator.ts +++ b/src/equicordplugins/translatePlus/utils/translator.ts @@ -84,12 +84,20 @@ async function translateSitelen(message: string) { } async function google(target: string, text: string) { - const translate = await (await fetch(`https://translate.googleapis.com/translate_a/single?${new URLSearchParams({ client: "gtx", sl: "auto", tl: target, dt: "t", dj: "1", source: "input", q: text })}`)).json(); + if (!text) return { src: "", text: "" }; + try { + const res = await fetch(`https://translate.googleapis.com/translate_a/single?${new URLSearchParams({ client: "gtx", sl: "auto", tl: target, dt: "t", dj: "1", source: "input", q: text })}`); + if (!res.ok) throw new Error(`Request failed with status ${res.status}`); + const translate = await res.json(); - return { - src: translate.src, - text: translate.sentences.map(s => s.trans).filter(Boolean).join("") - }; + return { + src: translate.src, + text: translate.sentences?.map(s => s.trans).filter(Boolean).join("\n") + }; + } catch (error) { + console.error("[TranslatePlus] Google Translate request failed:", error); + return { src: "en", text: "Translation failed due to an error." }; + } } export async function translate(text: string): Promise {