Polish settings and admin system pages

This commit is contained in:
2026-03-28 15:30:21 +01:00
parent 4103f84f85
commit 0694cba722
10 changed files with 604 additions and 217 deletions
+26 -11
View File
@@ -145,15 +145,18 @@ export const translations = {
settingsColumnDateApplied: "Date applied",
settingsColumnDays: "Days",
settingsColumnJobUrl: "Job URL",
settingsFollowUpsTitle: "Follow-up rules",
settingsFollowUpsBody: "Set when applied, offer, and feedback stages should surface follow-up work or be treated as ghosted. These rules drive the reminder inbox and the job table flags.",
settingsFollowUpsTitle: "Follow-up rules by scenario",
settingsFollowUpsBody: "Set when applied, offer, and feedback scenarios should surface follow-up work or be treated as ghosted.",
settingsOpenReminderInbox: "Open reminders",
settingsReviewJobs: "Review jobs",
settingsNotificationsTitle: "Email notifications",
settingsNotificationsBody: "Notifications are sent via SMTP. Configure the API with `Email:*` settings or env vars like `EMAIL_SMTP_HOST`, then Jobbjakt can deliver password reset and reminder emails.",
settingsNotificationsDelivery: "Use the system status page to confirm SMTP is configured before testing outbound email.",
settingsNotificationsWhatYouGetTitle: "What gets sent",
settingsNotificationsWhatYouGetBody: "Right now the app sends password reset mail and can surface reminder-driven follow-up workflows. Gmail OAuth stays separate from SMTP delivery.",
settingsNotificationsTitle: "Notification settings",
settingsNotificationsBody: "Choose which reminders should show up in your workflow. SMTP delivery can be checked from the system page.",
settingsNotificationsDelivery: "SMTP delivery and test mail live under Admin → System → Settings.",
settingsNotificationsFollowUpReminders: "Email reminders for follow-ups",
settingsNotificationsGhostedJobs: "Email alerts for ghosted jobs",
settingsNotificationsInAppReminders: "Highlight reminders in the app",
settingsAccentHelp: "Drag in the color picker, then save when it looks right.",
settingsAccentInvalid: "Use a full hex color like #15803D.",
settingsCheckSystemStatus: "Check system status",
profileTitle: "Profile",
profileHeadlinePlaceholder: "Add a short headline to personalize your account view.",
@@ -527,6 +530,8 @@ export const translations = {
adminAuditActions: "Actions",
adminAuditNoEvents: "No events.",
adminSystemEnvironment: "Environment",
adminSystemStatusTab: "Status",
adminSystemSettingsTab: "Settings",
adminSystemDatabase: "Database",
adminSystemConnected: "Connected",
adminSystemOffline: "Offline",
@@ -539,6 +544,16 @@ export const translations = {
adminSystemDatabaseStorage: "Database and storage",
adminSystemRuntimeAuth: "Runtime and auth",
adminSystemEmailConfig: "Email configuration",
adminSystemEmailSettingsTitle: "SMTP settings",
adminSystemEmailSettingsBody: "Update the effective SMTP settings used for password resets, reminders, and admin test email delivery.",
adminSystemUsername: "SMTP username",
adminSystemPassword: "SMTP password",
adminSystemPasswordStored: "A password is already stored. Leave this blank to keep it.",
adminSystemPasswordMissing: "No SMTP password stored yet.",
adminSystemTimeoutMs: "Timeout (ms)",
adminSystemClearStoredPassword: "Clear stored password",
adminSystemSaveSettings: "Save settings",
adminSystemSaving: "Saving...",
adminSystemSummarizerRuntime: "AI runtime",
adminSystemSmtpTest: "SMTP test email",
adminSystemSmtpTestBody: "Send a quick delivery check using the configured SMTP settings. Leave the recipient blank to use your admin email.",
@@ -585,7 +600,7 @@ export const translations = {
signedInAs: "Signed in as {name}.",
unlinkGoogle: "Unlink Google",
backupTitle: "Data safety",
backupBody: "One-click encrypted backup (Windows DPAPI).",
backupBody: "One-click encrypted backup of your current data.",
backupPreparing: "Preparing...",
backupDownload: "Download encrypted backup",
backupDownloaded: "Backup downloaded.",
@@ -863,7 +878,7 @@ export const translations = {
jobDetailsNoReadiness: "No readiness analysis available yet.",
jobDetailsNoHistory: "No history yet.",
jobDetailsNothingHighlighted: "Nothing highlighted yet.",
rulesTitle: "Follow-up + Ghosting Rules",
rulesTitle: "Follow-up rules by scenario",
rulesBody: "Set how long to wait before a follow-up is due and when a thread should be treated as ghosted.",
rulesLoading: "Loading your follow-up settings…",
rulesLoadFailed: "Could not load your follow-up settings.",
@@ -1420,7 +1435,7 @@ export const translations = {
signedInAs: "Logget inn som {name}.",
unlinkGoogle: "Koble fra Google",
backupTitle: "Datasikkerhet",
backupBody: "Kryptert sikkerhetskopi med ett klikk (Windows DPAPI).",
backupBody: "Kryptert sikkerhetskopi av gjeldende data med ett klikk.",
backupPreparing: "Forbereder...",
backupDownload: "Last ned kryptert sikkerhetskopi",
backupDownloaded: "Sikkerhetskopi lastet ned.",
@@ -1698,7 +1713,7 @@ export const translations = {
jobDetailsNoReadiness: "Ingen beredskapsanalyse tilgjengelig ennå.",
jobDetailsNoHistory: "Ingen historikk ennå.",
jobDetailsNothingHighlighted: "Ingenting fremhevet ennå.",
rulesTitle: "Regler for oppfølging og ghosting",
rulesTitle: "Oppfølgingsregler per scenario",
rulesBody: "Velg hvor lenge du vil vente før oppfølging forfaller, og når en tråd skal regnes som ghostet.",
rulesLoading: "Laster inn oppfølgingsinnstillingene dine…",
rulesLoadFailed: "Kunne ikke laste oppfølgingsinnstillingene dine.",