feat(i18n): translate login and app chrome (HU/EN/DE)

Login screen (with a language picker), header, account menu, sync status, About and
Release Notes dialogs, and the version banner are now fully translated in Hungarian,
English and German.
This commit is contained in:
npeter83 2026-06-15 00:30:34 +02:00
parent 7aa068061d
commit 941fb7d756
18 changed files with 279 additions and 57 deletions

View file

@ -1,3 +1,4 @@
import { useTranslation } from "react-i18next";
import { Bug, Sparkles } from "lucide-react";
import { RELEASE_NOTES } from "../lib/releaseNotes";
import Modal from "./Modal";
@ -18,8 +19,9 @@ export default function ReleaseNotes({
onClose: () => void;
highlight?: string;
}) {
const { t } = useTranslation();
return (
<Modal title="Release notes" onClose={onClose} maxWidth="max-w-2xl">
<Modal title={t("about.releaseNotes")} onClose={onClose} maxWidth="max-w-2xl">
<div className="flex flex-col gap-6">
{RELEASE_NOTES.map((r) => (
<section
@ -40,7 +42,7 @@ export default function ReleaseNotes({
{r.features?.length ? (
<div className="mt-3">
<div className="flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-accent">
<Sparkles className="w-3.5 h-3.5" /> New
<Sparkles className="w-3.5 h-3.5" /> {t("about.new")}
</div>
<ul className="mt-1.5 space-y-1.5 text-sm">
{r.features.map((f, i) => (
@ -56,7 +58,7 @@ export default function ReleaseNotes({
{r.fixes?.length ? (
<div className="mt-3">
<div className="flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted">
<Bug className="w-3.5 h-3.5" /> Fixes
<Bug className="w-3.5 h-3.5" /> {t("about.fixes")}
</div>
<ul className="mt-1.5 space-y-1.5 text-sm">
{r.fixes.map((f, i) => (