From e01225ea822aba67847877eab916dfe209ec8d7f Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 10 Aug 2026 05:16:43 +0200 Subject: [PATCH] feat: invite community translators --- lang/de-DE/landing.json | 9 ++++++++- lang/en-US/landing.json | 9 ++++++++- lang/nl-NL/landing.json | 9 ++++++++- lang/zh-CN/landing.json | 9 ++++++++- src/components/landing/Footer.tsx | 24 +++++++++++++++++++----- src/components/landing/HomePage.tsx | 29 +++++++++++++++++++++++++++++ 6 files changed, 80 insertions(+), 9 deletions(-) diff --git a/lang/de-DE/landing.json b/lang/de-DE/landing.json index 56359569..83ccaffc 100644 --- a/lang/de-DE/landing.json +++ b/lang/de-DE/landing.json @@ -214,16 +214,23 @@ "communityTitle": "Community", "github": "GitHub", "dutchDroneSquad": "Dutch Drone Squad", + "translate": "Beim Übersetzen helfen", "facebook": "Facebook", "instagram": "Instagram", "reportIssue": "Problem melden", "supportTitle": "Support", "githubSponsors": "GitHub Sponsors", "kofi": "Ko-fi", - "copyright": "© {year} Dutch Drone Squad. Open-Source-Projekt.", + "copyright": "© {year} Dutch Drone Squad. Open-Source-Projekt.", "madeWithPre": "Gemacht mit", "madeWithPost": "für die FPV-Community" }, + "translationCta": { + "eyebrow": "Übersetzungen aus der Community", + "title": "Hilf mit, TrackDraw in weiteren Sprachen anzubieten", + "description": "Du sprichst eine weitere Sprache? Mach bei Crowdin mit und hilf mehr FPV-Clubs und Rennorganisatoren, TrackDraw zu nutzen.", + "action": "Auf Crowdin übersetzen" + }, "gallery": { "pageTitle": "FPV Drone Race Track Galerie", "metaTitle": "TrackDraw | FPV Drone Race Track Galerie", diff --git a/lang/en-US/landing.json b/lang/en-US/landing.json index eba72aff..94d87e2d 100644 --- a/lang/en-US/landing.json +++ b/lang/en-US/landing.json @@ -214,16 +214,23 @@ "communityTitle": "Community", "github": "GitHub", "dutchDroneSquad": "Dutch Drone Squad", + "translate": "Help translate", "facebook": "Facebook", "instagram": "Instagram", "reportIssue": "Report an issue", "supportTitle": "Support", "githubSponsors": "GitHub Sponsors", "kofi": "Ko-fi", - "copyright": "© {year} Dutch Drone Squad. Open source project.", + "copyright": "© {year} Dutch Drone Squad. Open source project.", "madeWithPre": "Made with", "madeWithPost": "for the FPV community" }, + "translationCta": { + "eyebrow": "Community translations", + "title": "Help make TrackDraw available in more languages", + "description": "Know another language? Join the translation project on Crowdin and help more FPV clubs and race organizers use TrackDraw.", + "action": "Translate on Crowdin" + }, "gallery": { "pageTitle": "FPV Drone Race Track Gallery", "metaTitle": "TrackDraw | FPV Drone Race Track Gallery", diff --git a/lang/nl-NL/landing.json b/lang/nl-NL/landing.json index b2651b10..06e426e4 100644 --- a/lang/nl-NL/landing.json +++ b/lang/nl-NL/landing.json @@ -214,16 +214,23 @@ "communityTitle": "Community", "github": "GitHub", "dutchDroneSquad": "Dutch Drone Squad", + "translate": "Help met vertalen", "facebook": "Facebook", "instagram": "Instagram", "reportIssue": "Probleem melden", "supportTitle": "Ondersteuning", "githubSponsors": "GitHub Sponsors", "kofi": "Ko-fi", - "copyright": "© {year} Dutch Drone Squad. Open source project.", + "copyright": "© {year} Dutch Drone Squad. Open source project.", "madeWithPre": "Gemaakt met", "madeWithPost": "voor de FPV-community" }, + "translationCta": { + "eyebrow": "Vertalen met de community", + "title": "Help TrackDraw beschikbaar te maken in meer talen", + "description": "Spreek je een andere taal? Doe mee via Crowdin en help meer FPV-clubs en raceorganisatoren TrackDraw te gebruiken.", + "action": "Vertalen via Crowdin" + }, "gallery": { "pageTitle": "FPV Drone Race Track Galerij", "metaTitle": "TrackDraw | FPV Drone Race Track Galerij", diff --git a/lang/zh-CN/landing.json b/lang/zh-CN/landing.json index de6dc6cc..ecb6cfab 100644 --- a/lang/zh-CN/landing.json +++ b/lang/zh-CN/landing.json @@ -214,16 +214,23 @@ "communityTitle": "社区", "github": "GitHub", "dutchDroneSquad": "Dutch Drone Squad", + "translate": "协助翻译", "facebook": "Facebook", "instagram": "Instagram", "reportIssue": "反馈问题", "supportTitle": "支持项目", "githubSponsors": "GitHub Sponsors", "kofi": "Ko-fi", - "copyright": "© {year} Dutch Drone Squad。开源项目。", + "copyright": "© {year} Dutch Drone Squad。开源项目。", "madeWithPre": "用", "madeWithPost": "为 FPV 社区打造" }, + "translationCta": { + "eyebrow": "社区翻译", + "title": "帮助 TrackDraw 支持更多语言", + "description": "你熟悉其他语言吗?欢迎加入 Crowdin 翻译项目,帮助更多 FPV 俱乐部和赛事组织者使用 TrackDraw。", + "action": "前往 Crowdin 翻译" + }, "gallery": { "pageTitle": "FPV 穿越机竞速赛道图库", "metaTitle": "TrackDraw | FPV 赛道图库", diff --git a/src/components/landing/Footer.tsx b/src/components/landing/Footer.tsx index 06db5801..3120e61a 100644 --- a/src/components/landing/Footer.tsx +++ b/src/components/landing/Footer.tsx @@ -6,8 +6,8 @@ import { Bug, Coffee, FileText, - Flag, Heart, + Languages, Pencil, ScrollText, ShieldCheck, @@ -173,13 +173,13 @@ export function Footer() {
  • - - {t("footer.dutchDroneSquad")} + + {t("footer.translate")}
  • @@ -241,7 +241,21 @@ export function Footer() { {/* Bottom bar */}
    -

    {t("footer.copyright", { year: new Date().getFullYear() })}

    +

    + {t.rich("footer.copyright", { + year: new Date().getFullYear(), + organization: (chunks) => ( + + {chunks} + + ), + })} +

    {t("footer.madeWithPre")}{" "} {" "} diff --git a/src/components/landing/HomePage.tsx b/src/components/landing/HomePage.tsx index 26ea7ace..69f4338c 100644 --- a/src/components/landing/HomePage.tsx +++ b/src/components/landing/HomePage.tsx @@ -27,6 +27,7 @@ import { Route, Share2, FileText, + Languages, } from "lucide-react"; import { Screenshot } from "@/components/landing/Screenshot"; import { FaqAccordion } from "@/components/landing/FaqAccordion"; @@ -557,6 +558,34 @@ export default function Home() {

    + +
    +
    + +
    + + {t("translationCta.eyebrow")} +
    +

    + {t("translationCta.title")} +

    +

    + {t("translationCta.description")} +

    +
    + + + {t("translationCta.action")} + + + +
    +