🌐 Sync Translations + Update README Progress Table (#5473)

### Description of Changes

This Pull Request was automatically generated to synchronize updates to
translation files and documentation. Below are the details of the
changes made:

#### **1. Synchronization of Translation Files**
- Updated translation files
(`frontend/public/locales/*/translation.toml`) to reflect changes in the
reference file `en-GB/translation.toml`.
- Ensured consistency and synchronization across all supported language
files.
- Highlighted any missing or incomplete translations.
- **Format**: TOML

#### **2. Update README.md**
- Generated the translation progress table in `README.md` using
`counter_translation_v3.py`.
- Added a summary of the current translation status for all supported
languages.
- Included up-to-date statistics on translation coverage.

#### **Why these changes are necessary**
- Keeps translation files aligned with the latest reference updates.
- Ensures the documentation reflects the current translation progress.

---

Auto-generated by [create-pull-request][1].

[1]: https://github.com/peter-evans/create-pull-request

---------

Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
This commit is contained in:
stirlingbot[bot]
2026-01-14 12:12:43 +00:00
committed by GitHub
parent a7945da3b4
commit 84e23abddc
38 changed files with 183 additions and 287 deletions
+142 -150
View File
@@ -469,8 +469,6 @@ confirm = "Neues Passwort bestätigen"
confirmPlaceholder = "Neues Passwort erneut eingeben"
update = "Passwort aktualisieren"
[settings.hotkeys]
title = "Tastenkürzel"
description = "Tastenkürzel für schnellen Tool-Zugriff anpassen. Klicken Sie auf \"Shortcut ändern\" und drücken Sie eine neue Tastenkombination. Drücken Sie Esc, um abzubrechen."
@@ -1311,17 +1309,16 @@ optimizeForEbookPdf = "Für E-Book-Reader optimieren"
optimizeForEbookPdfDesc = "PDF für das Lesen auf E-Book-Readern optimieren (kleinere Dateigröße, bessere Darstellung auf E-Ink-Geräten)"
[convert.epubOptions]
detectChapters = "Detect chapters"
detectChaptersDesc = "Detect headings that look like chapters and insert EPUB page breaks"
epubOptions = "PDF to eBook Options"
epubOptionsDesc = "Options for converting PDF to EPUB/AZW3"
kindleEink = "Kindle e-Ink (text optimized)"
detectChapters = "Detect chapters"
detectChaptersDesc = "Detect headings that look like chapters and insert EPUB page breaks"
targetDevice = "Target device"
targetDeviceDesc = "Choose an output profile optimized for the reader device"
outputFormat = "Output format"
outputFormatDesc = "Choose the output format for the ebook"
tabletPhone = "Tablet/Phone (with images)"
targetDevice = "Target device"
targetDeviceDesc = "Choose an output profile optimized for the reader device"
kindleEink = "Kindle e-Ink (text optimized)"
[imageToPdf]
tags = "konvertierung,img,jpg,bild,foto"
@@ -4140,12 +4137,12 @@ rotateRight = "Nach rechts drehen"
toggleSidebar = "Seitenleiste umschalten"
toggleBookmarks = "Lesezeichen ein-/ausblenden"
print = "PDF drucken"
downloadAll = "Alle herunterladen"
saveAll = "Alle speichern"
draw = "Draw"
redact = "Redact"
exitRedaction = "Exit Redaction Mode"
save = "Save"
downloadAll = "Alle herunterladen"
saveAll = "Alle speichern"
[textAlign]
left = "Links"
@@ -4219,8 +4216,6 @@ redo = "Wiederholen"
applyChanges = "Änderungen anwenden"
saveChanges = "Save Changes"
[search]
title = "PDF durchsuchen"
placeholder = "Suchbegriff eingeben..."
@@ -4671,6 +4666,102 @@ pageFormatLetter = "Letter (8.5×11in)"
mobileScannerStretchToFit = "Stretch to Fit"
mobileScannerStretchToFitDesc = "Stretch images to fill the entire page. If disabled, images are centered with preserved aspect ratio."
[admin.settings.telegram]
title = "Telegram Bot"
description = "Configure Telegram bot connectivity, access controls, and feedback behavior."
[admin.settings.telegram.enabled]
label = "Enable Telegram Bot"
description = "Allow users to interact with Stirling PDF through your configured Telegram bot."
[admin.settings.telegram.botUsername]
label = "Bot Username"
description = "The public username of your Telegram bot."
[admin.settings.telegram.botToken]
label = "Bot Token"
description = "API token provided by BotFather for your Telegram bot."
[admin.settings.telegram.pipelineInboxFolder]
label = "Inbox Folder"
description = "Folder under the pipeline directory where incoming Telegram files are stored."
[admin.settings.telegram.customFolderSuffix]
label = "Use Custom Folder Suffix"
description = "Append the chat ID to incoming file folders to isolate uploads per chat."
[admin.settings.telegram.accessControl]
title = "Access Control"
description = "Restrict which users or channels can interact with the bot."
[admin.settings.telegram.enableAllowUserIDs]
label = "Allow Specific User IDs"
description = "When enabled, only listed user IDs can use the bot."
[admin.settings.telegram.allowUserIDs]
label = "Allowed User IDs"
description = "Enter Telegram user IDs allowed to interact with the bot."
placeholder = "Add user ID and press enter"
[admin.settings.telegram.enableAllowChannelIDs]
label = "Allow Specific Channel IDs"
description = "When enabled, only listed channel IDs can use the bot."
[admin.settings.telegram.allowChannelIDs]
label = "Allowed Channel IDs"
description = "Enter Telegram channel IDs allowed to interact with the bot."
placeholder = "Add channel ID and press enter"
[admin.settings.telegram.processing]
title = "Processing"
description = "Control polling intervals and processing timeouts for Telegram uploads."
[admin.settings.telegram.processingTimeoutSeconds]
label = "Processing Timeout (seconds)"
description = "Maximum time to wait for a processing job before reporting an error."
[admin.settings.telegram.pollingIntervalMillis]
label = "Polling Interval (ms)"
description = "Interval between checks for new Telegram updates."
[admin.settings.telegram.feedback]
title = "Feedback Messages"
description = "Choose when the bot should send feedback to users and channels."
[admin.settings.telegram.feedback.general.enabled]
label = "Enable Feedback"
description = "Control whether the bot sends feedback messages at all."
[admin.settings.telegram.feedback.channel]
title = "Channel Feedback Rules"
[admin.settings.telegram.feedback.channel.noValidDocument]
label = "Show \"No valid document\" (Channel)"
description = "Suppress the no valid document response for channel uploads."
[admin.settings.telegram.feedback.channel.errorProcessing]
label = "Show processing errors (Channel)"
description = "Send processing error messages to channels."
[admin.settings.telegram.feedback.channel.errorMessage]
label = "Show error messages (Channel)"
description = "Show detailed error messages for channels."
[admin.settings.telegram.feedback.user]
title = "User Feedback Rules"
[admin.settings.telegram.feedback.user.noValidDocument]
label = "Show \"No valid document\" (User)"
description = "Suppress the no valid document response for user uploads."
[admin.settings.telegram.feedback.user.errorProcessing]
label = "Show processing errors (User)"
description = "Send processing error messages to users."
[admin.settings.telegram.feedback.user.errorMessage]
label = "Show error messages (User)"
description = "Show detailed error messages for users."
[admin.settings.database]
title = "Datenbank"
description = "Benutzerdefinierte Datenbankverbindungseinstellungen für Enterprise-Bereitstellungen konfigurieren."
@@ -4971,103 +5062,6 @@ description = "Einzelne zu deaktivierende Endpunkte auswählen"
label = "Deaktivierte Endpunktgruppen"
description = "Zu deaktivierende Endpunktgruppen auswählen"
[admin.settings.telegram]
description = "Configure Telegram bot connectivity, access controls, and feedback behavior."
title = "Telegram Bot"
[admin.settings.telegram.accessControl]
description = "Restrict which users or channels can interact with the bot."
title = "Access Control"
[admin.settings.telegram.allowChannelIDs]
description = "Enter Telegram channel IDs allowed to interact with the bot."
label = "Allowed Channel IDs"
placeholder = "Add channel ID and press enter"
[admin.settings.telegram.allowUserIDs]
description = "Enter Telegram user IDs allowed to interact with the bot."
label = "Allowed User IDs"
placeholder = "Add user ID and press enter"
[admin.settings.telegram.botToken]
description = "API token provided by BotFather for your Telegram bot."
label = "Bot Token"
[admin.settings.telegram.botUsername]
description = "The public username of your Telegram bot."
label = "Bot Username"
[admin.settings.telegram.customFolderSuffix]
description = "Append the chat ID to incoming file folders to isolate uploads per chat."
label = "Use Custom Folder Suffix"
[admin.settings.telegram.enableAllowChannelIDs]
description = "When enabled, only listed channel IDs can use the bot."
label = "Allow Specific Channel IDs"
[admin.settings.telegram.enableAllowUserIDs]
description = "When enabled, only listed user IDs can use the bot."
label = "Allow Specific User IDs"
[admin.settings.telegram.enabled]
description = "Allow users to interact with Stirling PDF through your configured Telegram bot."
label = "Enable Telegram Bot"
[admin.settings.telegram.feedback]
description = "Choose when the bot should send feedback to users and channels."
title = "Feedback Messages"
[admin.settings.telegram.feedback.channel]
title = "Channel Feedback Rules"
[admin.settings.telegram.feedback.channel.errorMessage]
description = "Show detailed error messages for channels."
label = "Show error messages (Channel)"
[admin.settings.telegram.feedback.channel.errorProcessing]
description = "Send processing error messages to channels."
label = "Show processing errors (Channel)"
[admin.settings.telegram.feedback.channel.noValidDocument]
description = "Suppress the no valid document response for channel uploads."
label = "Show \"No valid document\" (Channel)"
[admin.settings.telegram.feedback.general.enabled]
description = "Control whether the bot sends feedback messages at all."
label = "Enable Feedback"
[admin.settings.telegram.feedback.user]
title = "User Feedback Rules"
[admin.settings.telegram.feedback.user.errorMessage]
description = "Show detailed error messages for users."
label = "Show error messages (User)"
[admin.settings.telegram.feedback.user.errorProcessing]
description = "Send processing error messages to users."
label = "Show processing errors (User)"
[admin.settings.telegram.feedback.user.noValidDocument]
description = "Suppress the no valid document response for user uploads."
label = "Show \"No valid document\" (User)"
[admin.settings.telegram.pipelineInboxFolder]
description = "Folder under the pipeline directory where incoming Telegram files are stored."
label = "Inbox Folder"
[admin.settings.telegram.pollingIntervalMillis]
description = "Interval between checks for new Telegram updates."
label = "Polling Interval (ms)"
[admin.settings.telegram.processing]
description = "Control polling intervals and processing timeouts for Telegram uploads."
title = "Processing"
[admin.settings.telegram.processingTimeoutSeconds]
description = "Maximum time to wait for a processing job before reporting an error."
label = "Processing Timeout (seconds)"
[fileUpload]
selectFile = "Datei auswählen"
selectFiles = "Dateien auswählen"
@@ -6001,7 +5995,6 @@ successMessage = "Ihre Lizenz wurde erfolgreich aktiviert. Sie können dieses Fe
title = "E-Mail-Verifizierung erforderlich"
message = "Sie müssen Ihre E-Mail-Adresse im Stripe-Abrechnungsportal verifizieren. Prüfen Sie Ihre E-Mails auf einen Login-Link."
[plan.period]
month = "Monat"
perUserPerMonth = "/Benutzer/Monat"
@@ -6622,46 +6615,6 @@ title = "Ergebnisse: Text hinzufügen"
[addText.error]
failed = "Beim Hinzufügen von Text zum PDF ist ein Fehler aufgetreten."
[mobileScanner]
addToBatch = "Add to Batch"
back = "Back"
batchImages = "Batch"
camera = "Camera"
cameraAccessDenied = "Camera access denied. Please enable camera access."
cameraDescription = "Scan documents using your device camera with automatic edge detection"
capture = "Capture Photo"
chooseMethod = "Choose Upload Method"
chooseMethodDescription = "Select how you want to scan and upload documents"
clearBatch = "Clear"
connected = "Connected"
connecting = "Connecting..."
edgeDetection = "Edge Detection"
fileDescription = "Upload existing photos or documents from your device"
fileUpload = "File Upload"
flash = "Flash"
flashlight = "Flashlight"
httpsRequired = "Camera access requires HTTPS or localhost. Please use HTTPS or access via localhost."
noSession = "Invalid Session"
noSessionMessage = "Please scan a valid QR code to access this page."
preview = "Preview"
processing = "Processing..."
retake = "Retake"
selectFilesPrompt = "Select files to upload"
selectImage = "Select Image"
sessionExpired = "This session has expired. Please refresh and try again."
sessionInvalid = "Session Error"
sessionNotFound = "Session not found. Please refresh and try again."
sessionValidationError = "Unable to verify session. Please try again."
settings = "Settings"
title = "Mobile Scanner"
upload = "Upload"
uploadAll = "Upload All"
uploadFailed = "Upload failed. Please try again."
uploadSuccess = "Upload Successful!"
uploadSuccessMessage = "Your images have been transferred."
uploading = "Uploading..."
validating = "Validating session..."
[mobileUpload]
title = "Upload from Mobile"
description = "Scan to upload photos. Images auto-convert to PDF."
@@ -6677,3 +6630,42 @@ connected = "Mobile device connected"
instructions = "Scan with your phone camera. Images convert to PDF automatically."
instructionsNoConvert = "Scan with your phone camera to upload files."
[mobileScanner]
title = "Mobile Scanner"
noSession = "Invalid Session"
noSessionMessage = "Please scan a valid QR code to access this page."
validating = "Validating session..."
sessionInvalid = "Session Error"
sessionExpired = "This session has expired. Please refresh and try again."
sessionNotFound = "Session not found. Please refresh and try again."
sessionValidationError = "Unable to verify session. Please try again."
uploadSuccess = "Upload Successful!"
uploadSuccessMessage = "Your images have been transferred."
httpsRequired = "Camera access requires HTTPS or localhost. Please use HTTPS or access via localhost."
uploadFailed = "Upload failed. Please try again."
uploading = "Uploading..."
connected = "Connected"
connecting = "Connecting..."
chooseMethod = "Choose Upload Method"
chooseMethodDescription = "Select how you want to scan and upload documents"
camera = "Camera"
cameraDescription = "Scan documents using your device camera with automatic edge detection"
fileUpload = "File Upload"
fileDescription = "Upload existing photos or documents from your device"
cameraAccessDenied = "Camera access denied. Please enable camera access."
back = "Back"
settings = "Settings"
edgeDetection = "Edge Detection"
flashlight = "Flashlight"
flash = "Flash"
processing = "Processing..."
capture = "Capture Photo"
selectFilesPrompt = "Select files to upload"
selectImage = "Select Image"
preview = "Preview"
retake = "Retake"
addToBatch = "Add to Batch"
upload = "Upload"
batchImages = "Batch"
clearBatch = "Clear"
uploadAll = "Upload All"