diff --git a/frontend/editor/public/locales/de-DE/translation.toml b/frontend/editor/public/locales/de-DE/translation.toml
index 6a2d03a1c8..3cdf512236 100644
--- a/frontend/editor/public/locales/de-DE/translation.toml
+++ b/frontend/editor/public/locales/de-DE/translation.toml
@@ -4084,10 +4084,15 @@ issues = "GitHub"
[formFill]
allSaved = "Alles gespeichert"
+analyzingFields = "Analysiere Formularfelder..."
extractCsvError = "CSV konnte nicht extrahiert werden"
extractXlsxError = "XLSX konnte nicht extrahiert werden"
+filled = "ausgefüllt"
flattenAfterFilling = "Nach dem Ausfüllen ebnen"
-requiredAbbreviation = "erf."
+noFields = "Keine ausfüllbaren Formularfelder gefunden."
+placeholderEnter = "Eingabe:"
+placeholderSelect = "Auswahl:"
+requiredAbbreviation = "erf"
requiredFieldsError = "Bitte füllen Sie alle Pflichtfelder aus"
rescanFields = "Felder erneut scannen"
rescanFormFields = "Formularfelder erneut scannen"
@@ -4416,8 +4421,8 @@ tags = "vereinfachen,entfernen,interaktiv"
title = "Abflachen"
[home.formFill]
-desc = "Fill PDF form fields interactively with a visual editor"
-title = "Fill Form"
+desc = "PDF-Formularfelder interaktiv mit visuellem Editor ausfüllen"
+title = "Formular ausfüllen"
[home.getPdfInfo]
desc = "Erfasst alle möglichen Informationen in einer PDF"
@@ -10292,13 +10297,13 @@ viewComment = "Kommentar anzeigen"
noFileProvided = "Fehler: Dem Viewer wurde keine Datei übergeben"
[viewer.formBar]
-apply = "Apply Changes"
-dismiss = "Dismiss"
-download = "Download PDF"
-hasFieldsDesc = "This PDF contains fillable fields"
-title = "Form Fields"
-unsavedBadge = "Unsaved"
-unsavedDesc = "You have unsaved changes"
+apply = "Änderungen anwenden"
+dismiss = "Verwerfen"
+download = "PDF herunterladen"
+hasFieldsDesc = "Dieses PDF enthält ausfüllbare Felder"
+title = "Formularfelder"
+unsavedBadge = "Ungespeichert"
+unsavedDesc = "Sie haben ungespeicherte Änderungen"
[viewer.layers]
closeSidebar = "Seitenleiste für Ebenen schließen"
diff --git a/frontend/editor/public/locales/en-US/translation.toml b/frontend/editor/public/locales/en-US/translation.toml
index 4e4abe1ab7..17beb2c557 100644
--- a/frontend/editor/public/locales/en-US/translation.toml
+++ b/frontend/editor/public/locales/en-US/translation.toml
@@ -4241,9 +4241,14 @@ issues = "GitHub"
[formFill]
allSaved = "All saved"
+analyzingFields = "Analysing form fields..."
extractCsvError = "Failed to extract CSV"
extractXlsxError = "Failed to extract XLSX"
+filled = "filled"
flattenAfterFilling = "Flatten after filling"
+noFields = "No fillable form fields found in this PDF."
+placeholderEnter = "Enter"
+placeholderSelect = "Select"
requiredAbbreviation = "req"
requiredFieldsError = "Please fill in all required fields"
rescanFields = "Re-scan fields"
diff --git a/frontend/editor/src/core/tools/formFill/FieldInput.tsx b/frontend/editor/src/core/tools/formFill/FieldInput.tsx
index dfe6b7b23c..9662298dc4 100644
--- a/frontend/editor/src/core/tools/formFill/FieldInput.tsx
+++ b/frontend/editor/src/core/tools/formFill/FieldInput.tsx
@@ -15,6 +15,7 @@ import {
MultiSelect,
Stack,
} from "@mantine/core";
+import { useTranslation } from "react-i18next";
import { useFieldValue } from "@app/tools/formFill/FormFillContext";
import type { FormField } from "@app/tools/formFill/types";
@@ -31,7 +32,7 @@ function FieldInputInner({
(v: string) => onValueChange(field.name, v),
[onValueChange, field.name],
);
-
+ const { t } = useTranslation();
switch (field.type) {
case "text":
if (field.multiline) {
@@ -40,7 +41,10 @@ function FieldInputInner({
size="xs"
value={value}
onChange={(e) => onChange(e.currentTarget.value)}
- placeholder={field.tooltip || `Enter ${field.label}`}
+ placeholder={
+ field.tooltip ||
+ `${t("formFill.placeholderEnter", "Enter")} ${field.label}`
+ }
disabled={field.readOnly}
autosize
minRows={2}
@@ -54,7 +58,10 @@ function FieldInputInner({
size="xs"
value={value}
onChange={(e) => onChange(e.currentTarget.value)}
- placeholder={field.tooltip || `Enter ${field.label}`}
+ placeholder={
+ field.tooltip ||
+ `${t("formFill.placeholderEnter", "Enter")} ${field.label}`
+ }
disabled={field.readOnly}
styles={{ input: { fontSize: "0.8125rem" } }}
/>
@@ -85,7 +92,7 @@ function FieldInputInner({
data={comboData}
value={value || null}
onChange={(v) => onChange(v || "")}
- placeholder={`Select ${field.label}`}
+ placeholder={`${t("formFill.placeholderSelect", "Select")} ${field.label}`}
clearable
searchable
disabled={field.readOnly}
@@ -109,7 +116,7 @@ function FieldInputInner({
data={listData}
value={selectedValues}
onChange={(vals) => onChange(vals.join(","))}
- placeholder={`Select ${field.label}`}
+ placeholder={`${t("formFill.placeholderSelect", "Select")} ${field.label}`}
searchable
disabled={field.readOnly}
aria-label={field.label || field.name}
@@ -124,7 +131,7 @@ function FieldInputInner({
data={listData}
value={value || null}
onChange={(v) => onChange(v || "")}
- placeholder={`Select ${field.label}`}
+ placeholder={`${t("formFill.placeholderSelect", "Select")} ${field.label}`}
clearable
searchable
disabled={field.readOnly}
diff --git a/frontend/editor/src/core/tools/formFill/FormFill.tsx b/frontend/editor/src/core/tools/formFill/FormFill.tsx
index bf1a8f5fe6..599d586319 100644
--- a/frontend/editor/src/core/tools/formFill/FormFill.tsx
+++ b/frontend/editor/src/core/tools/formFill/FormFill.tsx
@@ -436,7 +436,7 @@ const FormFill = (_props: BaseToolProps) => {
>