i18n: fix wrong and awkward DE/FR strings

German: drop the stray word in delete_msg, "Eigentlich" -> "Benutzerdefiniert"
for custom, "oben" -> "Wurzel" for the picker root crumb, "Teil-Link" ->
"Freigabelink", fix the Ordnername case, replace the "kein solcher Ordner"
calque, and make err_root_forbidden say access is denied rather than that the
folder is gone. modified_after now quotes the button label it refers to.
Share vocabulary was split between "Link" and "Freigabe"; the object is now
"Freigabe" and the URL stays "Link". meta_expires/expires_at took a formatted
date after "am", so they now use a colon.

French: replace the "aucun tel dossier" calque, list the archive formats
without "l'un de", match load_latest to the label quoted in modified_after,
reword no_folders_msg and the right-click hints, "de plus" -> "autres",
restore "shares" in delete_all_title, dismiss -> "Ignorer", "périmètre" ->
"portée".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
AuthorKonata <konata@posteo.jp>
Date
Commitd85a6133fa24e4c9e361e6b9327e028de81b76f9
Parentc25efcb
1 file changed, 55 insertions(+), 46 deletions(-)
▾Mweb/src/i18n.rs
@@ -853,13 +853,13 @@ const DE: &[(&str, &str)] = &[
"folder_gone_msg",
"Dieser Ordner ist nicht mehr verfügbar. Wählen Sie links einen anderen aus.",
),
("loading", "Lade…"),
("loading", "Wird geladen…"),
("loading_share", "Freigabe wird geladen…"),
("retry", "Erneut versuchen"),
("empty_folder", "Dieser Ordner ist leer."),
("refresh", "Aktualisieren"),
("grid_view", "Kachelansicht"),
("list_view", "Liste"),
("list_view", "Listenansicht"),
("open", "Öffnen"),
("open_in_new_tab", "In neuem Tab öffnen"),
("download", "Herunterladen"),
@@ -888,7 +888,7 @@ const DE: &[(&str, &str)] = &[
),
(
"delete_msg",
"Lose „{}“ löschen?\nDas kann nicht rückgängig gemacht werden.",
"„{}“ löschen?\nDas kann nicht rückgängig gemacht werden.",
),
("cancel", "Abbrechen"),
(
@@ -903,10 +903,10 @@ const DE: &[(&str, &str)] = &[
),
("move_to", "„{}“ verschieben nach…"),
("copy_to", "„{}“ kopieren nach…"),
("read_only_root", "{} (nur lesen)"),
("read_only_root", "{} (schreibgeschützt)"),
("move_here", "Hierher verschieben"),
("copy_here", "Hierher kopieren"),
("top", "oben"),
("top", "Wurzel"),
("download_title", "„{}“ herunterladen"),
(
"download_formats_msg",
@@ -944,7 +944,7 @@ const DE: &[(&str, &str)] = &[
("log_out", "Abmelden"),
("files", "Dateien"),
("manage", "Verwalten"),
("shares", "Teilen"),
("shares", "Freigaben"),
("users", "Benutzer"),
("no_users", "Keine Benutzer."),
("settings", "Einstellungen"),
@@ -994,7 +994,7 @@ const DE: &[(&str, &str)] = &[
"Wenn aktiv, öffnet ein einfacher Klick einen Eintrag und Strg+Klick wählt ihn aus. Wenn inaktiv, wählt ein einfacher Klick aus und ein Doppelklick öffnet.",
),
("save_profile", "Profil speichern"),
("allow_rw_shares", "Schreibbare Links erlauben"),
("allow_rw_shares", "Schreibbare Freigaben erlauben"),
(
"allow_rw_shares_desc",
"Benutzern erlauben, schreibbare Freigabelinks zu erstellen. Standardmäßig aus.",
@@ -1056,20 +1056,26 @@ const DE: &[(&str, &str)] = &[
("expiry_1d", "1 Tag"),
("expiry_1w", "1 Woche"),
("expiry_1mo", "1 Monat"),
("meta_expires", "läuft ab am {}"),
("meta_created", "erstellt am {}"),
("meta_expires", "läuft ab: {}"),
("meta_created", "erstellt: {}"),
("mode_ro", "nur lesen"),
("share_not_found", "Link nicht gefunden"),
("share_not_found", "Freigabe nicht gefunden"),
(
"share_not_found_msg",
"Dieser Link ist ungültig oder die Freigabe wurde entfernt.",
),
("share_expired", "Link abgelaufen"),
("share_expired_msg", "Dieser Link ist nicht mehr aktiv."),
("share_expired", "Freigabe abgelaufen"),
(
"share_expired_msg",
"Dieser Freigabelink ist nicht mehr aktiv.",
),
("copy_manual", "Link manuell kopieren"),
("link_copied", "Link in die Zwischenablage kopiert"),
("share_create_err", "Link konnte nicht erstellt werden: {}"),
("share_link", "Teil-Link"),
(
"share_create_err",
"Freigabe konnte nicht erstellt werden: {}",
),
("share_link", "Freigabelink"),
(
"share_perm_rw",
"Jeder mit diesem Link kann „{}“ lesen und schreiben.",
@@ -1082,12 +1088,12 @@ const DE: &[(&str, &str)] = &[
),
("expires", "Läuft ab"),
("never", "Nie"),
("custom", "Eigentlich…"),
("custom", "Benutzerdefiniert…"),
("until", "Bis"),
("expires_at", "Läuft {} ab"),
("expires_at", "Läuft ab: {}"),
(
"delete_partial",
"{} von {} Links konnten nicht gelöscht werden",
"{} von {} Freigaben konnten nicht gelöscht werden",
),
("never_expires", "Läuft nie ab"),
("allow_editing", "Bearbeitung erlauben (lesen/schreiben)"),
@@ -1101,11 +1107,14 @@ const DE: &[(&str, &str)] = &[
),
("creating", "Wird erstellt…"),
("create_link", "Link erstellen"),
("your_shares", "Ihre Links"),
("deleted_n_shares", "{} Link(s) gelöscht"),
("shares_delete_err", "Links konnten nicht gelöscht werden"),
("your_shares", "Ihre Freigaben"),
("deleted_n_shares", "{} Freigabe(n) gelöscht"),
(
"shares_delete_err",
"Freigaben konnten nicht gelöscht werden",
),
("delete_all", "Alle löschen"),
("no_shares", "Noch keine Links"),
("no_shares", "Noch keine Freigaben"),
(
"shares_view_hint",
"Von Ihnen erstellte Links. Klicken Sie mit der rechten Maustaste auf eine Datei oder einen Ordner und wählen Sie „Teilen“, um einen hinzuzufügen.",
@@ -1115,10 +1124,10 @@ const DE: &[(&str, &str)] = &[
"Klicken Sie mit der rechten Maustaste auf eine Datei oder einen Ordner und wählen Sie „Teilen“, um einen Link zu erstellen.",
),
("copy_link", "Link kopieren"),
("delete_share", "Link löschen"),
("share_deleted", "Link gelöscht"),
("share_delete_err", "Link konnte nicht gelöscht werden"),
("delete_all_title", "Alle Links löschen?"),
("delete_share", "Freigabe löschen"),
("share_deleted", "Freigabe gelöscht"),
("share_delete_err", "Freigabe konnte nicht gelöscht werden"),
("delete_all_title", "Alle Freigaben löschen?"),
(
"delete_all_msg",
"Alle {} Freigabelinks löschen? Jeder, der sie besitzt, verliert den Zugriff. Das kann nicht rückgängig gemacht werden.",
@@ -1140,12 +1149,12 @@ const DE: &[(&str, &str)] = &[
("close_esc", "Schließen (Esc)"),
("no_preview", "Keine Vorschau verfügbar"),
("no_preview_msg", "Die App kann „{}“ hier nicht anzeigen."),
("dismiss", "Schließen"),
("dismiss_error", "Fehler schließen"),
("dismiss", "Ausblenden"),
("dismiss_error", "Fehler ausblenden"),
("file_changed", "Datei auf der Festplatte geändert"),
(
"modified_after",
"Diese Datei wurde nach dem Öffnen geändert. „Neueste laden“ verwirft Ihre ungespeicherten Änderungen; „Überschreiben“ behält Ihre Version bei.",
"Diese Datei wurde nach dem Öffnen geändert. „Neueste Version laden“ verwirft Ihre ungespeicherten Änderungen; „Überschreiben“ behält Ihre Version bei.",
),
("load_latest", "Neueste Version laden"),
("keep_editing", "Weiter bearbeiten"),
@@ -1163,8 +1172,8 @@ const DE: &[(&str, &str)] = &[
),
(k::ERR_INVALID_CREDENTIALS, "Name oder Passwort ungültig"),
(k::ERR_ALREADY_SET_UP, "Server ist bereits eingerichtet"),
(k::ERR_SHARE_NOT_FOUND, "Link nicht gefunden"),
(k::ERR_SHARE_EXPIRED, "dieser Link ist abgelaufen"),
(k::ERR_SHARE_NOT_FOUND, "Freigabe nicht gefunden"),
(k::ERR_SHARE_EXPIRED, "diese Freigabe ist abgelaufen"),
(
k::ERR_SHARE_TOKEN_FORBIDDEN,
"ein Freigabetoken kann hier nicht verwendet werden; bitte anmelden",
@@ -1216,7 +1225,7 @@ const DE: &[(&str, &str)] = &[
),
(
k::ERR_FOLDER_NAME_REQUIRED,
"ein Ordnernamen ist erforderlich",
"ein Ordnername ist erforderlich",
),
(k::ERR_FILE_NAME_REQUIRED, "ein Dateiname ist erforderlich"),
(k::ERR_NEW_NAME_REQUIRED, "new_name ist erforderlich"),
@@ -1243,7 +1252,7 @@ const DE: &[(&str, &str)] = &[
(k::ERR_NO_FILES_UPLOADED, "keine Dateien hochgeladen"),
(k::ERR_FILES_EXIST, "einige Dateien existieren bereits"),
(k::ERR_BAD_UPLOAD_PATH, "ungültiger Dateipfad im Upload"),
(k::ERR_NO_SUCH_FOLDER, "kein solcher Ordner"),
(k::ERR_NO_SUCH_FOLDER, "dieser Ordner existiert nicht"),
(k::ERR_READ_ONLY_FOLDER, "schreibgeschützter Ordner"),
(
k::ERR_RW_SHARES_DISABLED,
@@ -1269,7 +1278,7 @@ const DE: &[(&str, &str)] = &[
k::ERR_SEARCH_BAD_SCOPE,
"Bereich muss name, content oder both sein",
),
(k::ERR_ROOT_FORBIDDEN, "Ordner nicht verfügbar"),
(k::ERR_ROOT_FORBIDDEN, "kein Zugriff auf diesen Ordner"),
];
/// French translations.
@@ -1277,7 +1286,7 @@ const FR: &[(&str, &str)] = &[
("no_folders_title", "Aucun dossier disponible"),
(
"no_folders_msg",
"Un administrateur ne vous a pas encore affecté de dossiers.",
"Aucun administrateur ne vous a encore attribué de dossier.",
),
("select_folder_title", "Choisir un dossier"),
(
@@ -1332,7 +1341,7 @@ const FR: &[(&str, &str)] = &[
"Les fichiers suivants existent déjà. Les écraser ?",
),
("overwrite", "Écraser"),
("and_more", "…et {} de plus"),
("and_more", "…et {} autres"),
(
"no_subfolders",
"Aucun sous-dossier – le fichier sera placé dans le dossier actuel.",
@@ -1403,7 +1412,7 @@ const FR: &[(&str, &str)] = &[
("search_took", "{} ms"),
("search_stopped", "arrêté · {} résultats"),
("search_scanned", "{} fichiers parcourus"),
("search_skipped", "{} ignorés (plus de 10 Mio.)"),
("search_skipped", "{} ignorés (plus de 10 Mio)"),
("search_n_matches", "{} correspondances"),
("search_in_n_files", "dans {} fichiers"),
("search_collapse_all", "Tout replier"),
@@ -1550,17 +1559,17 @@ const FR: &[(&str, &str)] = &[
("no_shares", "Aucun partage pour l'instant"),
(
"shares_view_hint",
"Liens que vous avez créés. Cliquez du bouton droit sur un fichier ou un dossier et choisissez « Partager » pour en ajouter un.",
"Liens que vous avez créés. Faites un clic droit sur un fichier ou un dossier, puis choisissez « Partager » pour en ajouter un.",
),
(
"shares_empty_hint",
"Cliquez du bouton droit sur un fichier ou un dossier et choisissez « Partager » pour créer un lien.",
"Faites un clic droit sur un fichier ou un dossier, puis choisissez « Partager » pour créer un lien.",
),
("copy_link", "Copier le lien"),
("delete_share", "Supprimer le partage"),
("share_deleted", "Partage supprimé"),
("share_delete_err", "Impossible de supprimer le partage"),
("delete_all_title", "Tout supprimer ?"),
("delete_all_title", "Supprimer tous les partages ?"),
(
"delete_all_msg",
"Supprimer les {} liens de partage ? Toute personne les possédant perdra l'accès. Cette action est irréversible.",
@@ -1589,16 +1598,16 @@ const FR: &[(&str, &str)] = &[
("no_preview", "Aperçu non disponible"),
(
"no_preview_msg",
"L’application ne peut pas afficher « {} » ici.",
"L'application ne peut pas afficher « {} » ici.",
),
("dismiss", "Fermer"),
("dismiss_error", "Fermer l'erreur"),
("dismiss", "Ignorer"),
("dismiss_error", "Ignorer l'erreur"),
("file_changed", "Fichier modifié sur disque"),
(
"modified_after",
"Ce fichier a été modifié après son ouverture. « Charger la version la plus récente » abandonne vos modifications non enregistrées ; « Écraser » conserve votre version.",
),
("load_latest", "Charger la version récente"),
("load_latest", "Charger la version la plus récente"),
("keep_editing", "Continuer à modifier"),
("discard", "Abandonner"),
("unsaved_changes", "Modifications non enregistrées"),
@@ -1650,7 +1659,7 @@ const FR: &[(&str, &str)] = &[
),
(
k::ERR_BAD_FORMAT,
"le format doit être l'un de : zip, tar, tar.gz, tar.zst",
"le format doit être zip, tar, tar.gz ou tar.zst",
),
(k::ERR_NOT_A_FILE, "ce n'est pas un fichier"),
(
@@ -1688,7 +1697,7 @@ const FR: &[(&str, &str)] = &[
k::ERR_BAD_UPLOAD_PATH,
"chemin de fichier invalide dans le téléversement",
),
(k::ERR_NO_SUCH_FOLDER, "aucun tel dossier"),
(k::ERR_NO_SUCH_FOLDER, "ce dossier n'existe pas"),
(k::ERR_READ_ONLY_FOLDER, "dossier en lecture seule"),
(
k::ERR_RW_SHARES_DISABLED,
@@ -1709,7 +1718,7 @@ const FR: &[(&str, &str)] = &[
),
(
k::ERR_SEARCH_BAD_SCOPE,
"le périmètre doit être name, content ou both",
"la portée doit être name, content ou both",
),
(k::ERR_ROOT_FORBIDDEN, "dossier inaccessible"),
];