mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-24 10:12:44 +00:00
fix(app): correct the French translation (#6004)
The French locale was machine-translated word by word, without context:
"Back" became "Dos" (the body part), CI "Checks" became "Chèques" (bank
cheques), "Starting" became "Départ", "Connecting" became "De liaison",
and many interpolation placeholders were glued to neighboring words
("{{label}}copié", "Daemonindisponible").
Review every client-owned French string against its English source and
call site, apply one glossary across the file, and use French
typography (’, …, non-breaking space before high punctuation).
Add regression tests for the reported labels and for placeholders glued
to French words.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
950e1f8f41
commit
b6e8ca8974
@@ -183,6 +183,23 @@ describe("translation resources", () => {
|
||||
expect(ko.desktop.daemon.status.notRunning).toBe("실행 중이 아님");
|
||||
});
|
||||
|
||||
it("uses the French navigation and Git meanings for reported labels", () => {
|
||||
expect(fr.common.back).toBe("Retour");
|
||||
expect(fr.common.actions.back).toBe("Retour");
|
||||
expect(fr.common.actions.copy).toBe("Copier");
|
||||
expect(fr.common.states.starting).toBe("Démarrage…");
|
||||
expect(fr.common.connectionStatus.connecting).toBe("Connexion…");
|
||||
expect(fr.workspace.git.pr.sections.checks).toBe("Vérifications");
|
||||
expect(fr.sidebar.display.show.checks).toBe("Vérifications");
|
||||
});
|
||||
|
||||
it("separates French interpolation placeholders from neighboring words", () => {
|
||||
const glued = Object.entries(flattenStrings(fr)).filter(([, value]) =>
|
||||
/\p{L}\{\{|\}\}\p{L}{2,}/u.test(value),
|
||||
);
|
||||
expect(glued).toEqual([]);
|
||||
});
|
||||
|
||||
it("labels the immediate add-to-chat action without an ellipsis", () => {
|
||||
expect(en.workspace.fileActions.addToChat).toBe("Add to chat");
|
||||
});
|
||||
|
||||
+1144
-1147
File diff suppressed because it is too large
Load Diff
@@ -163,7 +163,7 @@ export const pluginSettings = {
|
||||
globalEnabled: "Plugins activés",
|
||||
globalDisabled: "Plugins désactivés",
|
||||
},
|
||||
removeConfirmTitle: "Supprimer {{id}} ?",
|
||||
removeConfirmTitle: "Supprimer {{id}} ?",
|
||||
removeConfirmMessage: "La configuration sera supprimée. Le dossier source ne sera pas effacé.",
|
||||
states: {
|
||||
offlineTitle: "L’hôte des plugins est hors ligne",
|
||||
|
||||
Reference in New Issue
Block a user