i18n: integrate translations into components

- StatusBadge, TaskForm, tasks page use i18n hook
- All 4 language files complete (cs, he, ru, ua)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude CLI Agent
2026-03-29 13:13:34 +00:00
parent fea4d38ce8
commit 235bcab97f
4 changed files with 56 additions and 52 deletions

View File

@@ -2,6 +2,7 @@
import { useEffect, useState, useCallback } from "react";
import { Group, Task } from "@/lib/api";
import { useTranslation } from "@/lib/i18n";
import TaskForm from "@/components/TaskForm";
interface TaskModalProps {
@@ -12,6 +13,7 @@ interface TaskModalProps {
export default function TaskModal({ groups, onSubmit, onClose }: TaskModalProps) {
const [visible, setVisible] = useState(false);
const { t } = useTranslation();
const handleClose = useCallback(() => {
setVisible(false);
@@ -41,7 +43,7 @@ export default function TaskModal({ groups, onSubmit, onClose }: TaskModalProps)
className="fixed inset-0 z-50 flex items-end sm:items-center justify-center"
role="dialog"
aria-modal="true"
aria-label="Nový úkol"
aria-label={t("tasks.newTask")}
>
{/* Backdrop */}
<div
@@ -65,11 +67,11 @@ export default function TaskModal({ groups, onSubmit, onClose }: TaskModalProps)
</div>
<div className="flex items-center justify-between mb-5">
<h2 className="text-lg font-semibold">Nový úkol</h2>
<h2 className="text-lg font-semibold">{t("tasks.newTask")}</h2>
<button
onClick={handleClose}
className="p-2 rounded-lg text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors min-w-[44px] min-h-[44px] flex items-center justify-center"
aria-label="Zavřít"
aria-label={t("tasks.close")}
>
<svg
xmlns="http://www.w3.org/2000/svg"
@@ -90,7 +92,6 @@ export default function TaskModal({ groups, onSubmit, onClose }: TaskModalProps)
groups={groups}
onSubmit={onSubmit}
onCancel={handleClose}
submitLabel="Vytvořit"
/>
</div>
</div>