fix(frontend): align Settings desktop labels on French (#78)
UX decision (carnet #78): the human UI of IdeA is French by default, uniform per surface — proper nouns and technical acronyms (URL, LAN, IP/CIDR, HTTPS, API, CLI…) stay as-is. Settings mixed English (AI Profiles, Deployment) with French (Appareils, frozen by UX for #77). Renames the Settings menu/nav, the Profils IA and Déploiement panels (titles, actions, states, help text) to French, per the carnet's exhaustive list. Updates the affected tests accordingly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@ -401,9 +401,10 @@ export function ProjectsView() {
|
||||
},
|
||||
{
|
||||
id: "settings",
|
||||
label: "Settings",
|
||||
label: "Paramètres",
|
||||
// One entry per section (#68). The entries name sections and mark the open
|
||||
// one; closing lives in the view ("Close Settings"), so no label alternates.
|
||||
// one; closing lives in the view ("Fermer les paramètres"), so no label
|
||||
// alternates.
|
||||
items: SETTINGS_SECTIONS.map((section) => ({
|
||||
id: section,
|
||||
label: SETTINGS_SECTION_LABEL[section],
|
||||
|
||||
@ -208,13 +208,13 @@ describe("ProjectsView (with MockProjectGateway)", () => {
|
||||
expect(screen.queryByLabelText("ai profiles settings")).toBeNull();
|
||||
|
||||
// Settings → AI Profiles swaps the main area to the profiles settings.
|
||||
openMenuItem("Settings", "AI Profiles");
|
||||
openMenuItem("Paramètres", "Profils IA");
|
||||
expect(await screen.findByLabelText("ai profiles settings")).toBeTruthy();
|
||||
expect(screen.queryByLabelText("project name")).toBeNull();
|
||||
|
||||
// #68: closing is an explicit action in the view, not an alternating menu
|
||||
// label — the label never scaled past one section.
|
||||
fireEvent.click(screen.getByRole("button", { name: "Close Settings" }));
|
||||
fireEvent.click(screen.getByRole("button", { name: "Fermer les paramètres" }));
|
||||
await waitFor(() =>
|
||||
expect(screen.getByLabelText("project name")).toBeTruthy(),
|
||||
);
|
||||
@ -226,13 +226,13 @@ describe("ProjectsView (with MockProjectGateway)", () => {
|
||||
await waitForIdle();
|
||||
|
||||
// The Settings menu now names sections; Deployment opens directly.
|
||||
openMenuItem("Settings", "Deployment");
|
||||
openMenuItem("Paramètres", "Déploiement");
|
||||
expect(await screen.findByLabelText("deployment settings")).toBeTruthy();
|
||||
expect(screen.queryByLabelText("ai profiles settings")).toBeNull();
|
||||
|
||||
// The internal nav column switches sections without leaving Settings.
|
||||
const nav = screen.getByRole("navigation", { name: "settings sections" });
|
||||
fireEvent.click(within(nav).getByRole("button", { name: "AI Profiles" }));
|
||||
fireEvent.click(within(nav).getByRole("button", { name: "Profils IA" }));
|
||||
expect(await screen.findByLabelText("ai profiles settings")).toBeTruthy();
|
||||
expect(screen.queryByLabelText("deployment settings")).toBeNull();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user