diff --git a/frontend/public/locales/en-GB/translation.json b/frontend/public/locales/en-GB/translation.json
index d5fdab103..546d23124 100644
--- a/frontend/public/locales/en-GB/translation.json
+++ b/frontend/public/locales/en-GB/translation.json
@@ -3504,7 +3504,7 @@
"saved": "Settings saved successfully",
"saveSuccess": "Settings saved successfully",
"save": "Save Changes",
- "restartRequired": "Settings changes require a server restart to take effect.",
+ "restartRequired": "Restart Required",
"restart": {
"title": "Restart Required",
"message": "Settings have been saved successfully. A server restart is required for the changes to take effect.",
diff --git a/frontend/src/components/shared/config/configSections/AdminAdvancedSection.tsx b/frontend/src/components/shared/config/configSections/AdminAdvancedSection.tsx
index 50e0dd1a6..c1382afc2 100644
--- a/frontend/src/components/shared/config/configSections/AdminAdvancedSection.tsx
+++ b/frontend/src/components/shared/config/configSections/AdminAdvancedSection.tsx
@@ -259,32 +259,34 @@ export default function AdminAdvancedSection() {
{t('admin.settings.advanced.processing', 'Processing')}
-
- setSettings({ ...settings, maxDPI: Number(value) })}
- min={0}
- max={3000}
- style={{ flex: 1 }}
- />
-
-
+
+ {t('admin.settings.advanced.maxDPI', 'Maximum DPI')}
+
+
+ }
+ description={t('admin.settings.advanced.maxDPI.description', 'Maximum DPI for image processing (0 = unlimited)')}
+ value={settings.maxDPI || 0}
+ onChange={(value) => setSettings({ ...settings, maxDPI: Number(value) })}
+ min={0}
+ max={3000}
+ />
-
- setSettings({ ...settings, tessdataDir: e.target.value })}
- placeholder="/usr/share/tessdata"
- style={{ flex: 1 }}
- />
-
-
+
+ {t('admin.settings.advanced.tessdataDir', 'Tessdata Directory')}
+
+
+ }
+ description={t('admin.settings.advanced.tessdataDir.description', 'Path to the directory containing Tessdata files for OCR')}
+ value={settings.tessdataDir || ''}
+ onChange={(e) => setSettings({ ...settings, tessdataDir: e.target.value })}
+ placeholder="/usr/share/tessdata"
+ />
diff --git a/frontend/src/components/shared/config/configSections/AdminDatabaseSection.tsx b/frontend/src/components/shared/config/configSections/AdminDatabaseSection.tsx
index bb4afc0be..b724bbb03 100644
--- a/frontend/src/components/shared/config/configSections/AdminDatabaseSection.tsx
+++ b/frontend/src/components/shared/config/configSections/AdminDatabaseSection.tsx
@@ -128,17 +128,25 @@ export default function AdminDatabaseSection() {
{t('admin.settings.database.enableCustom.description', 'Use your own custom database configuration instead of the default embedded database')}
- setSettings({ ...settings, enableCustomDatabase: e.target.checked })}
- />
+
+ setSettings({ ...settings, enableCustomDatabase: e.target.checked })}
+ />
+
+
{settings.enableCustomDatabase && (
<>
+ {t('admin.settings.database.customUrl', 'Custom Database URL')}
+
+
+ }
description={t('admin.settings.database.customUrl.description', 'Full JDBC connection string (e.g., jdbc:postgresql://localhost:5432/postgres). If provided, individual connection settings below are not used.')}
value={settings.customDatabaseUrl || ''}
onChange={(e) => setSettings({ ...settings, customDatabaseUrl: e.target.value })}
@@ -148,7 +156,12 @@ export default function AdminDatabaseSection() {