Translate agent role badges and issue status to Hebrew
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 31s
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 31s
Role labels: ceo→מנהל, researcher→חוקר, engineer→מהנדס, qa→בודק איכות Issue status: in_progress→בביצוע, done→הושלם, todo→לביצוע, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,24 @@ const ROLE_DOT: Record<string, string> = {
|
|||||||
qa: "bg-amber-500",
|
qa: "bg-amber-500",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ROLE_LABELS: Record<string, string> = {
|
||||||
|
ceo: "מנהל",
|
||||||
|
researcher: "חוקר",
|
||||||
|
engineer: "מהנדס",
|
||||||
|
qa: "בודק איכות",
|
||||||
|
general: "כללי",
|
||||||
|
};
|
||||||
|
|
||||||
|
const ISSUE_STATUS_LABELS: Record<string, string> = {
|
||||||
|
backlog: "ממתין",
|
||||||
|
todo: "לביצוע",
|
||||||
|
in_progress: "בביצוע",
|
||||||
|
in_review: "בבדיקה",
|
||||||
|
done: "הושלם",
|
||||||
|
cancelled: "בוטל",
|
||||||
|
blocked: "חסום",
|
||||||
|
};
|
||||||
|
|
||||||
function roleColor(role: string | null) {
|
function roleColor(role: string | null) {
|
||||||
return ROLE_COLORS[role ?? ""] ?? "bg-gray-100 text-gray-700 border-gray-200";
|
return ROLE_COLORS[role ?? ""] ?? "bg-gray-100 text-gray-700 border-gray-200";
|
||||||
}
|
}
|
||||||
@@ -41,6 +59,14 @@ function roleDot(role: string | null) {
|
|||||||
return ROLE_DOT[role ?? ""] ?? "bg-gray-400";
|
return ROLE_DOT[role ?? ""] ?? "bg-gray-400";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function roleLabel(role: string | null) {
|
||||||
|
return ROLE_LABELS[role ?? ""] ?? role ?? "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function issueStatusLabel(status: string) {
|
||||||
|
return ISSUE_STATUS_LABELS[status] ?? status;
|
||||||
|
}
|
||||||
|
|
||||||
/* ── Time formatting ─────────────────────────────────────────── */
|
/* ── Time formatting ─────────────────────────────────────────── */
|
||||||
|
|
||||||
function timeAgo(iso: string | null): string {
|
function timeAgo(iso: string | null): string {
|
||||||
@@ -104,7 +130,7 @@ function CommentCard({
|
|||||||
className={`inline-flex items-center gap-1 text-[11px] px-1.5 py-0.5 rounded-full border ${roleColor(comment.agent_role)}`}
|
className={`inline-flex items-center gap-1 text-[11px] px-1.5 py-0.5 rounded-full border ${roleColor(comment.agent_role)}`}
|
||||||
>
|
>
|
||||||
<span className={`w-1.5 h-1.5 rounded-full ${roleDot(comment.agent_role)}`} />
|
<span className={`w-1.5 h-1.5 rounded-full ${roleDot(comment.agent_role)}`} />
|
||||||
{comment.agent_role}
|
{roleLabel(comment.agent_role)}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
{identifier && (
|
{identifier && (
|
||||||
@@ -209,7 +235,7 @@ export function AgentActivityFeed({
|
|||||||
variant={iss.status === "done" ? "secondary" : "default"}
|
variant={iss.status === "done" ? "secondary" : "default"}
|
||||||
className="text-[11px] font-mono"
|
className="text-[11px] font-mono"
|
||||||
>
|
>
|
||||||
{iss.identifier} — {iss.status}
|
{iss.identifier} — {issueStatusLabel(iss.status)}
|
||||||
</Badge>
|
</Badge>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user