Files
pleno-vue/src/i18n/source/sv/phrases/compat/configuration/index.json
T
Jeppe B 8d9f1e6fde fix(pleno-vue): persist MiniMax API key across refresh + render fix (#281)
Fixes the operator-reported MiniMax configuration bug: the API key appeared to be 'not saved' on every refresh.

The api backend is correct — direct repro against api-v2.truckwash.io (2026-08-10 07:58) showed 200 on POST and `isSet: true` on subsequent GET for both `{variable, value}` and raw-key payload shapes. The bugs were all on the frontend.

## What was actually broken

1. **Read response shape mismatch (root cause).** `ConfigurationXLVask.refreshMiniMaxStatus` parsed the GET response as an object, but the endpoint returns `[{module, variable, type, value, isSecret, isSet}]`. `typeof array === 'string'` is false → `minimaxApiKeyIsSet` was reset to `false` after every reload.
2. **Inline edit-save flow never notified the parent.** `ConfigurationSecretKey` had no event out, so the inline edit-and-save on the api_key field always left `isSet=false` (and the warning visible) until the user fully reloaded the page.
3. **MiniMax 'Enable' toggle was bound to a function reference.** `:value="SessionUser.superUser.modules.minimax.config.enabled.get ? true : false"` evaluates as `function ? true : false` = `true` (every function is truthy), so the switch always rendered as on.
4. **Hardcoded English warning text** in `ConfigurationSecretKey.vue` — i18n-v2 violation.
5. **Missing key registration in `xlvask/Config.vue.keys`.** PR #269 added a switch for `minimax_integration_enabled` on `xlvask.config.keys`, but never registered the key — accessing `.set` on `undefined.set` throws `TypeError` and aborts the Vue render mid-tree. Production build #c353bfa only renders 3 of 4 categories because of this.

## Changes

- `ConfigurationSecretKey.vue` — emits `saved` after a successful `onSave`; stays in edit mode + surfaces error on failure. Warning title/body come from `useI18n` (`configuration.secret_key_not_set` + `common.warning`) with optional prop overrides.
- `ConfigurationXLVask.vue` — `extractConfigEntry` helper unwraps the array response and trusts the explicit `isSet` flag. The MiniMax enable toggle reads `minimaxEnabled` (real boolean) and re-fetches via `onMiniMaxEnabledSwitch` (optimistic rollback on failure). After re-authenticate/remove/inline-save the parent re-fetches status so the UI matches persistence.
- `xlvask/Config.vue.keys` — registers the missing `minimax_integration_enabled` key.
- New i18n key `configuration.secret_key_not_set` + global shared alias; added to da/de/en/no/sv.
- New `tests/unit/configuration-secret-key.spec.js` (4 tests).

## Verification (local)

- `npm run i18n:v2:check` 
- `npm run lint` 
- `npm run format:tests:check` 
- `npm run test:unit:fast`  — 223 files / 1352 tests
- `npm run build` 

Companion api PR: #358 ("test(api): lock MiniMax config redaction + isSet contract") — already merged.
2026-08-10 09:04:35 +02:00

406 lines
47 KiB
JSON

{
"compat": {
"configuration": {
"secret_key_not_set": "The secret key is not set, please set it before enabling the integration.",
"backups": {
"active_jobs": "Active jobs",
"actions": "Actions",
"app_data_enabled": "Include app data",
"app_data_enabled_desc": "Back up app-owned object buckets together with the database.",
"backup": "Backup",
"backup_created": "@.capitalize:{'terms.glossary.backup'} oprettet",
"backup_created_success": "Säkerhetskopian @:{'terms.glossary.skapades'}.",
"backup_error": "@.capitalize:{'terms.glossary.der'} opstod @:{'terms.replication.host_definite_suffix'} @:{'terms.glossary.fejl'} @:{'terms.glossary.under'} oprettelse @:{'terms.glossary.af'} @:{'terms.glossary.backup'}.",
"backup_queued": "Backup queued",
"backup_queued_success": "The backup job has been queued.",
"backup_schedule": "Säkerhetskopieringsschema",
"backups": "Backups",
"completed_at": "Completed",
"create_backup": "@:{'terms.glossary.opret'} @:{'terms.glossary.backup'}",
"create_backup_confirm": "@.capitalize:{'terms.glossary.ar'} @:{'terms.glossary.du'} @:{'terms.glossary.saker'} @:{'terms.glossary.pa'} @:{'terms.glossary.att'} @:{'terms.glossary.du'} @:{'terms.glossary.vill'} @:{'terms.glossary.skapa'} @:{'terms.replication.host_definite_suffix'} @:{'terms.glossary.sakerhetskopia'}?",
"delete_backup": "@.capitalize:{'terms.glossary.radera'} @:{'terms.glossary.sakerhetskopia'}",
"disabled": "Disabled",
"download_backup": "@.capitalize:{'terms.glossary.ladda'} @:{'terms.glossary.ner'} @:{'terms.glossary.sakerhetskopia'}",
"enable_system": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.backup'} @:{'terms.glossary.system'}",
"enable_system_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.backup'} @:{'terms.glossary.systemet'}.",
"enabled": "Enabled",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.generelle'} @:{'terms.glossary.indstillinger'} @:{'terms.glossary.for_2'} @:{'terms.glossary.backup'} @:{'terms.glossary.systemet'}.",
"last_backup": "@.capitalize:{'terms.glossary.senaste'} @:{'terms.glossary.sakerhetskopia'}",
"latest_backup": "Latest backup",
"latest_verified": "Latest verified backup",
"legacy_backups": "Legacy backups",
"name": "Name",
"no_backups": "No backups found.",
"no_restore_audit": "No restore audit entries found.",
"not_available": "Not available",
"objects": "Objects",
"refresh": "Refresh",
"restore_audit": "Restore audit",
"restore_backup": "@:{'terms.glossary.aterstall'} @:{'terms.glossary.sakerhetskopia'}",
"restore_confirm_intro": "Restoring a backup will replace the production database and app data. Review the checks and type the exact confirmation phrase before continuing.",
"restore_confirmation": "Confirmation phrase",
"restore_enabled": "Allow production restore",
"restore_enabled_desc": "Allow superusers to queue production restores after preview and typed confirmation.",
"restore_error": "Could not queue the restore job.",
"restore_queued": "Restore queued",
"restore_queued_success": "The restore job has been queued.",
"restore_reason": "Restore reason",
"restore_state": "Restore",
"restore_state_desc": "Production restore requires this setting plus preview confirmation.",
"restore_validation_error": "Enter a reason and the exact confirmation phrase.",
"retention": "Retention",
"retention_daily_days": "Daily retention days",
"retention_daily_days_desc": "Keep one verified backup per day for this many days.",
"retention_monthly_months": "Monthly retention months",
"retention_monthly_months_desc": "Keep one verified backup per month for this many months.",
"retention_recent_hours": "Recent retention hours",
"retention_recent_hours_desc": "Keep all verified backups from this recent hourly window.",
"retention_weekly_weeks": "Weekly retention weeks",
"retention_weekly_weeks_desc": "Keep one verified backup per week for this many weeks.",
"size": "Size",
"started_at": "Started",
"status": "Status",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.backup'} @:{'terms.glossary.systemet'}.",
"title": "@.capitalize:{'terms.glossary.backup'} @:{'terms.glossary.konfiguration'}",
"verification_required": "Require verification",
"verification_required_desc": "Mark backups as available only after verification succeeds.",
"verified_at": "Verified",
"verify": "Verify"
},
"economic": {
"admin_fee_desc": "@.capitalize:{'terms.glossary.installningar'} @:{'terms.glossary.for'} @:{'terms.glossary.administrations'}- @:{'terms.glossary.och'} @:{'terms.glossary.miljoavgift'} @:{'terms.glossary.for'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'}-@:{'terms.glossary.integrationen'}.",
"admin_fee_monthly": "@:{'terms.glossary.administrationsgebyr'} (månedligt)",
"admin_fee_monthly_desc": "@.capitalize:{'terms.glossary.ange'} @:{'terms.glossary.administrations'}- @:{'terms.glossary.och'} @:{'terms.glossary.miljoavgiften'} @:{'terms.glossary.som'} @:{'terms.glossary.debiteras'} @:{'terms.glossary.manadsvis'}.",
"admin_fee_order": "@:{'terms.glossary.administrationsgebyr'} (@:{'terms.glossary.per'} @:{'terms.glossary.ordre'})",
"admin_fee_order_desc": "@.capitalize:{'terms.glossary.ange'} @:{'terms.glossary.administrations'}- @:{'terms.glossary.och'} miljäavgiften @:{'terms.glossary.som'} @:{'terms.glossary.debiteras'} @:{'terms.glossary.manadsvis'} @:{'terms.glossary.nar'} @:{'terms.glossary.fakturering'} sker @:{'terms.glossary.per'} @:{'terms.glossary.order'}.",
"admin_fee_title": "@.capitalize:{'terms.glossary.administrations'}- @:{'terms.glossary.och'} @:{'terms.glossary.miljoavgift'}",
"agreement_grant_token": "Avtalets @:{'terms.glossary.grant'}-@:{'terms.glossary.token'}",
"agreement_grant_token_desc": "@.capitalize:{'terms.glossary.din'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} @:{'terms.glossary.grant'}-@:{'terms.glossary.token'} @:{'terms.glossary.for'} avtal",
"app_secret_token": "@.capitalize:{'terms.glossary.app'} @.capitalize:{'terms.glossary.secret'} @.capitalize:{'terms.glossary.token'}",
"app_secret_token_desc": "@.capitalize:{'terms.glossary.din'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} @:{'terms.glossary.app'} @:{'terms.glossary.secret'} @:{'terms.glossary.token'}",
"default_distribution_department_id": "@:{'terms.glossary.standard'} @:{'terms.glossary.fallback'}-@:{'terms.glossary.avdelning'}",
"default_distribution_department_id_desc": "@.capitalize:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.fordelning'} @:{'terms.glossary.av'} tvättavtal @:{'terms.glossary.och'} fastpris @:{'terms.glossary.nar'} @:{'terms.glossary.kunden'} @:{'terms.glossary.saknar'} @:{'terms.glossary.standardavdelning'}.",
"env_fee_product_id": "@.capitalize:{'terms.glossary.miljoavgift'} @:{'terms.glossary.produkt'}-@.upper:{'terms.glossary.id'}",
"env_fee_product_id_desc": "@.capitalize:{'terms.glossary.ange'} @:{'terms.glossary.produkt'}-@.upper:{'terms.glossary.id'} @:{'terms.glossary.som'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.miljoavgiften'}.",
"invoice_settings": "@.capitalize:{'terms.glossary.faktura'} @:{'terms.glossary.indstillinger'}",
"invoice_settings_desc": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'}-@:{'terms.glossary.konfigurationen'} låter @:{'terms.glossary.dig'} @:{'terms.glossary.konfigurera'} @:{'terms.glossary.integrationen'} @:{'terms.glossary.med'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} bokföringssystem.",
"invoice_template": "@.capitalize:{'terms.glossary.faktura'} skabelon",
"invoice_template_desc": "@.capitalize:{'terms.glossary.valj'} fakturamallen @:{'terms.glossary.for'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'}-@:{'terms.glossary.integrationen'}.",
"show_payment_terms": "@:{'terms.glossary.vis'} betalingsbetingelser",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} @:{'terms.glossary.integrationen'}",
"title": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} @:{'terms.glossary.konfiguration'}",
"transaction_draft_customer_number": "@.capitalize:{'terms.glossary.kundnummer'} @:{'terms.glossary.for'} @:{'terms.glossary.transaktionsutkast'}",
"transaction_draft_customer_number_desc": "@.capitalize:{'terms.glossary.ange'} kundnumret @:{'terms.glossary.som'} markerar @:{'terms.glossary.order'} @:{'terms.glossary.och'} fakturasamlingar @:{'terms.glossary.som'} @:{'terms.glossary.utkast'}. Lämna @:{'terms.glossary.tomt'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.inaktivera'} @:{'terms.glossary.funktionen'}.",
"transaction_draft_desc": "@.capitalize:{'terms.glossary.anvand'} @:{'terms.replication.host_definite_suffix'} dedikerad @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'}-@:{'terms.glossary.kund'} @:{'terms.glossary.for'} @:{'terms.glossary.transaktioner'} @:{'terms.glossary.som'} @:{'terms.glossary.ska'} förbli @:{'terms.glossary.utkast'} @:{'terms.glossary.och'} aldrig @:{'terms.glossary.exporteras'} @:{'terms.glossary.automatiskt'}.",
"transaction_draft_title": "@.capitalize:{'terms.glossary.transaktionsutkast'}-@:{'terms.glossary.kund'}"
},
"email": {
"enable_mailersend": "@:{'terms.glossary.enable'} @:{'terms.glossary.mailersend'}",
"enable_mailersend_desc": "@:{'terms.glossary.enable'} @:{'terms.glossary.or'} @:{'terms.glossary.disable'} @:{'terms.glossary.the'} @:{'terms.glossary.mailersend'} @:{'terms.glossary.integration'}",
"enable_system": "@:{'terms.glossary.enable'} @.capitalize:{'terms.glossary.email'} @.capitalize:{'terms.glossary.system'}",
"enable_system_desc": "@.capitalize:{'terms.glossary.aktivera'} @:{'terms.glossary.eller'} @:{'terms.glossary.inaktivera'} @:{'terms.glossary.e'}-postsystemet",
"from_address": "Avsändaradress",
"from_email": "@.capitalize:{'terms.glossary.from'} @.capitalize:{'terms.glossary.email'}",
"from_email_desc": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.postadressen'} @:{'terms.glossary.som'} @:{'terms.glossary.e'}-postmeddelanden @:{'terms.glossary.skickas'} @:{'terms.glossary.fran'}",
"from_name": "@.capitalize:{'terms.glossary.from'} @.capitalize:{'terms.glossary.name'}",
"from_name_desc": "@:{'terms.glossary.namnet'} @:{'terms.glossary.som'} @:{'terms.glossary.visas'} @:{'terms.glossary.som'} avsändare",
"general_settings": "@:{'terms.glossary.general'} @.capitalize:{'terms.glossary.settings'}",
"general_settings_desc": "@:{'terms.glossary.general'} @:{'terms.glossary.email'} @:{'terms.glossary.settings'}",
"mailersend_api_key": "@:{'terms.glossary.mailersend'} @:{'terms.glossary.api'} @.capitalize:{'terms.glossary.key'}",
"mailersend_api_key_desc": "@:{'phrases.compat.configuration.mailersend.api_key_desc'}",
"mailersend_integration": "@:{'terms.glossary.mailersend'} @.capitalize:{'terms.glossary.integration'}",
"mailersend_integration_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.mailersend'} @:{'terms.glossary.integration'} @:{'terms.glossary.settings'}",
"reply_to_email": "@:{'terms.glossary.reply'}-@.capitalize:{'terms.glossary.to'} @.capitalize:{'terms.glossary.email'}",
"reply_to_email_desc": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.postadressen'} @:{'terms.glossary.som'} @:{'terms.glossary.svar'} @:{'terms.glossary.skickas'} @:{'terms.glossary.till'}",
"reply_to_name": "@:{'terms.glossary.reply'}-@.capitalize:{'terms.glossary.to'} @.capitalize:{'terms.glossary.name'}",
"reply_to_name_desc": "@:{'terms.glossary.namnet'} @:{'terms.glossary.som'} @:{'terms.glossary.visas'} @:{'terms.glossary.for'} @:{'terms.glossary.svar'}",
"sender_identity_desc": "@.capitalize:{'terms.glossary.konfigurera'} @:{'terms.glossary.avsandaridentitet'} @:{'terms.glossary.for'} @:{'terms.glossary.utgaende'} @:{'terms.glossary.e'}-@:{'terms.glossary.post'}",
"smtp_encryption": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.encryption'}",
"smtp_encryption_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.encryption'} method @:{'terms.glossary.for_2'} @:{'terms.glossary.smtp'}",
"smtp_host": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.host'}",
"smtp_host_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.smtp'} @:{'terms.glossary.server'} hostname",
"smtp_password": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.password'}",
"smtp_password_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.smtp'} @:{'terms.glossary.authentication'} @:{'terms.glossary.password'}",
"smtp_port": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.port'}",
"smtp_port_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.smtp'} @:{'terms.glossary.server'} @:{'terms.glossary.port'}",
"smtp_settings": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.settings'}",
"smtp_settings_desc": "@.capitalize:{'terms.glossary.configure'} @:{'terms.glossary.smtp'} @:{'terms.glossary.server'} @:{'terms.glossary.settings'}",
"smtp_user": "@:{'terms.glossary.smtp'}-@:{'terms.glossary.anvandare'}",
"smtp_username": "@:{'terms.glossary.smtp'} @.capitalize:{'terms.glossary.username'}",
"smtp_username_desc": "@.capitalize:{'terms.glossary.anvandarnamn'} @:{'terms.glossary.for'} @:{'terms.glossary.smtp'}-autentisering",
"subtitle": "@.capitalize:{'terms.glossary.configure'} @:{'terms.glossary.email'} @:{'terms.glossary.settings'}",
"test_email_error": "@.capitalize:{'terms.glossary.ett'} @:{'terms.glossary.fel'} @:{'terms.glossary.uppstod'} @:{'terms.glossary.nar'} @:{'terms.glossary.testmejlet'} @:{'terms.glossary.skickades'}",
"test_email_sent": "@.capitalize:{'terms.glossary.test'} @.capitalize:{'terms.glossary.email'} @.capitalize:{'terms.glossary.sent'}",
"test_email_sent_success": "@.capitalize:{'terms.glossary.testmejlet'} @:{'terms.glossary.skickades'}",
"title": "@.capitalize:{'terms.glossary.email'} @.capitalize:{'terms.glossary.configuration'}"
},
"fxrates": {
"api_key_desc": "@.capitalize:{'terms.glossary.valutakurser'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.hamta'} @:{'terms.glossary.valutakurser'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'}.",
"conversion_rates": "@.capitalize:{'terms.glossary.valutakurser'}",
"daily_limit": "@:{'terms.glossary.daglig'} @:{'terms.glossary.begaransgrans'}",
"daily_limit_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.dagliga'} @:{'terms.glossary.begaransgransen'} @:{'terms.glossary.for'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'}-@:{'terms.glossary.integrationen'}.",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'} @:{'terms.glossary.integrationen'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.allmanna'} @:{'terms.glossary.installningarna'} @:{'terms.glossary.for'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'}-@:{'terms.glossary.integrationen'}.",
"get_rates": "@:{'terms.glossary.hent'} @:{'terms.glossary.valutakurser'}",
"getting_rates": "Henter @:{'terms.glossary.valutakurser'} fra @:{'terms.glossary.dkk'}",
"getting_rates_desc": "@.capitalize:{'terms.glossary.vanta'} @:{'terms.glossary.medan'} @:{'terms.glossary.vi'} @:{'terms.glossary.hamtar'} @:{'terms.glossary.valutakurser'} @:{'terms.glossary.fran'} @:{'terms.glossary.dkk'} @:{'terms.glossary.till'} andra valutor.",
"rates_fetched": "@.capitalize:{'terms.glossary.valutakurser'} @:{'terms.glossary.hamtade'}",
"rates_fetched_desc": "Valutakurserna @:{'terms.glossary.har'} hämtats.",
"show_rates": "@:{'terms.glossary.vis'} @:{'terms.glossary.valutakurser'}",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'} @:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.fx'} @.capitalize:{'terms.glossary.rates'} @:{'terms.glossary.api'} @:{'terms.glossary.konfiguration'}",
"update_rates": "@:{'terms.glossary.opdater'} @:{'terms.glossary.valutakurser'}"
},
"general": {
"currency": "@:{'phrases.compat.user_admin.currency'}",
"language": "@:{'phrases.compat.common.language'}",
"timezone": "Tidssone",
"title": "Generelt",
"title_desc": "De allmänna inställningarna @:{'terms.glossary.for'} FX Rates @:{'terms.glossary.api'}-integrationen."
},
"integrations": {
"subtitle": "@:{'terms.glossary.administrer'} @:{'terms.glossary.integrasjoner'}"
},
"limble": {
"api_key": "@:{'terms.glossary.api'}-@:{'terms.glossary.nyckel'}",
"api_key_desc": "@:{'terms.glossary.limble'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.limble'}-@:{'terms.glossary.integrationen'}",
"api_settings": "@:{'terms.glossary.api'}-@:{'terms.glossary.anslutningsinstallningar'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.limble'} @:{'terms.glossary.api'}.",
"client_id": "@:{'terms.glossary.client'} @.upper:{'terms.glossary.id'}",
"client_id_desc": "@:{'terms.glossary.client'} @.upper:{'terms.glossary.id'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"client_secret": "@:{'terms.glossary.client'} @.capitalize:{'terms.glossary.secret'}",
"client_secret_desc": "@:{'terms.glossary.client'} @:{'terms.glossary.secret'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"connection_failed_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.limble'} @:{'terms.glossary.api'} @:{'terms.glossary.misslyckades'}!",
"connection_success": "@.capitalize:{'terms.glossary.anslutning'} @:{'terms.glossary.lyckades'}",
"connection_success_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.limble'} @:{'terms.glossary.api'} @:{'terms.glossary.lyckades'}!",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.limble'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.limble'} @:{'terms.glossary.integrationen'}.",
"enable_webhooks": "@.capitalize:{'terms.glossary.aktivera'} @:{'terms.glossary.webhooks'} @:{'terms.glossary.for'} @:{'terms.glossary.omedelbar'} @:{'terms.glossary.synkronisering'}",
"enable_webhooks_desc": "@.capitalize:{'terms.glossary.aktivera'} @:{'terms.glossary.eller'} @:{'terms.glossary.inaktivera'} @:{'terms.glossary.limble'}-@:{'terms.glossary.webhooks'} @:{'terms.glossary.for'} @:{'terms.glossary.omedelbar'} @:{'terms.glossary.synkronisering'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.generelle'} @:{'terms.glossary.indstillinger'} @:{'terms.glossary.for_2'} @:{'terms.glossary.limble'} @:{'terms.glossary.integrationen'}.",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.limble'} @:{'terms.glossary.integrationen'}",
"test_connection": "@.capitalize:{'terms.glossary.test'} forbindelse",
"title": "@:{'terms.glossary.limble'} @:{'terms.glossary.konfiguration'}"
},
"mailersend": {
"api_key_desc": "@:{'terms.glossary.mailersend'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.mailersend'}-@:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.mailersend'}-@:{'terms.glossary.konfiguration'}"
},
"motor_api": {
"api_key_desc": "@:{'terms.glossary.motor'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.motor'} @:{'terms.glossary.api'}-@:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.motor'} @:{'terms.glossary.api'}-@:{'terms.glossary.konfiguration'}"
},
"motorapi": {
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.motorapi'} @:{'terms.glossary.api'}.",
"daily_limit_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.dagliga'} @:{'terms.glossary.begaransgransen'} @:{'terms.glossary.for'} @:{'terms.glossary.motorapi'}-@:{'terms.glossary.integrationen'}.",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.motorapi'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.motorapi'} @:{'terms.glossary.integrationen'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.allmanna'} @:{'terms.glossary.installningarna'} @:{'terms.glossary.for'} @:{'terms.glossary.motorapi'}-@:{'terms.glossary.integrationen'}.",
"get_license_plate": "@:{'terms.glossary.hent'} @:{'terms.glossary.nummerplade'}",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.motorapi'} @:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.motorapi'} @:{'terms.glossary.konfiguration'}"
},
"products": {
"add": "@:{'terms.glossary.legg'} @:{'terms.glossary.til'} @:{'terms.glossary.produkt'}",
"delete_confirm": "@.capitalize:{'terms.glossary.ar'} @:{'terms.glossary.du'} @:{'terms.glossary.saker'} @:{'terms.glossary.pa'} @:{'terms.glossary.att'} @:{'terms.glossary.du'} @:{'terms.glossary.vill'} @:{'terms.glossary.ta'} @:{'terms.glossary.bort'} @:{'terms.glossary.denna'} @:{'terms.glossary.produkt'}?",
"edit": "@:{'phrases.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL för kundregistreringar",
"customer_registration_webhook_url_desc": "Slack-webhook som får ett meddelande när en ny kundregistrering lyckas. Lämna tomt för att inaktivera.",
"internal_department_goal_progress_save_error": "Det gick inte att spara Slack-inställningar för interna avdelningar.",
"internal_department_goal_progress_saved": "Slack-inställningar för interna avdelningar sparades",
"internal_department_goal_progress_webhook_url": "Webhook-URL för måluppföljning för interna avdelningar",
"internal_department_goal_progress_webhook_url_desc": "Slack-webhook som får den sammanlagda måluppföljningen för interna avdelningar. Lämna tomt för att inaktivera den sammanlagda aviseringen.",
"internal_departments": "Interna avdelningar",
"internal_departments_desc": "Avdelningar som väljs här ingår i den interna Slack-översikten för måluppföljning.",
"internal_departments_empty": "Inga avdelningar hittades.",
"notification_settings": "Aviseringsinställningar",
"notification_settings_desc": "Slack-webhooks för systemhändelser.",
"save_internal_departments": "Spara interna avdelningar",
"send_test_webhook": "Skicka test-webhook",
"subtitle": "Konfiguration av Slack-aviseringar",
"test_customer_registration_webhook": "Testa webhook för kundregistreringar",
"test_internal_department_goal_progress_webhook": "Testa webhook för måluppföljning för interna avdelningar",
"test_internal_department_goal_progress_webhook_not_configured": "Spara en webhook-URL för måluppföljning för interna avdelningar innan du skickar ett test.",
"test_internal_department_goal_progress_webhook_sent_success": "Slack-testmeddelandet för måluppföljning för interna avdelningar skickades.",
"test_webhook_error": "Det gick inte att skicka Slack-testwebhooken.",
"test_webhook_not_configured": "Spara en webhook-URL för kundregistreringar innan du skickar ett test.",
"test_webhook_sent": "Slack-test skickat",
"test_webhook_sent_success": "Slack-testmeddelandet för kundregistrering skickades.",
"title": "Slack-konfiguration",
"unavailable": "Slack-konfigurationen är inte tillgänglig i den här API-versionen."
},
"shelly": {
"api_key_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.shelly'}-@:{'terms.glossary.integrationen'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'}.",
"connection_failed_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'} @:{'terms.glossary.misslyckades'}!",
"connection_success_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'} @:{'terms.glossary.lyckades'}!",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.shelly'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.shelly'} @:{'terms.glossary.integrationen'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.allmanna'} @:{'terms.glossary.installningarna'} @:{'terms.glossary.for'} @:{'terms.glossary.shelly'}-@:{'terms.glossary.integrationen'}.",
"secret_key": "Hemlig @:{'terms.glossary.nyckel'} (@:{'terms.glossary.api'}-@:{'terms.glossary.nyckel'})",
"secret_key_desc": "@.capitalize:{'terms.replication.article.host_mention'} hemliga @:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"server_url": "@.capitalize:{'terms.glossary.server'} @:{'terms.glossary.url'}",
"server_url_desc": "@:{'terms.glossary.url'}'@:{'terms.replication.host_definite_suffix'} @:{'terms.glossary.til'} @:{'terms.glossary.shelly'} serveren.",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.shelly'} @:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.shelly'} @:{'terms.glossary.konfiguration'}"
},
"stripe": {
"api_key_desc": "@.capitalize:{'terms.glossary.din'} @:{'terms.glossary.stripe'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckel'} @:{'terms.glossary.for'} betalningsbearbetning",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.stripe'} @:{'terms.glossary.api'}.",
"customers": "@:{'terms.glossary.stripe'} @:{'terms.glossary.kunder'}",
"economic_customer": "@:{'terms.glossary.economic'} @:{'terms.glossary.kundenummer'}",
"economic_customer_desc": "@.capitalize:{'terms.glossary.kunden'} @:{'terms.glossary.der'} bruges @:{'terms.glossary.til'} @:{'terms.glossary.at'} gemme @:{'terms.glossary.stripe'} betalinger @:{'terms.glossary.i'} @:{'terms.glossary.economic'} @:{'terms.glossary.systemet'}.",
"economic_settings": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'} integrationsinställningar",
"economic_settings_desc": "@.capitalize:{'terms.glossary.installningar'} @:{'terms.glossary.for'} @:{'terms.glossary.integrationen'} @:{'terms.glossary.med'} @.upper:{'terms.glossary.e'}-@:{'terms.glossary.conomic'}-@:{'terms.glossary.systemet'}.",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.stripe'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.stripe'} @:{'terms.glossary.integrationen'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.generelle'} @:{'terms.glossary.indstillinger'} @:{'terms.glossary.for_2'} @:{'terms.glossary.stripe'} @:{'terms.glossary.integrationen'}.",
"get_prices": "@:{'terms.glossary.hent'} @:{'terms.glossary.priser'}",
"get_products": "@:{'terms.glossary.hent'} @:{'terms.glossary.produkter'}",
"prices": "@:{'terms.glossary.stripe'} @:{'terms.glossary.priser'}",
"products": "@:{'terms.glossary.stripe'} @:{'terms.glossary.produkter'}",
"publishable_key": "Publik @:{'terms.glossary.nyckel'}",
"publishable_key_desc": "@.capitalize:{'terms.replication.article.host_mention'} publika @:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.stripe'} @:{'terms.glossary.integrationen'}",
"test_mode": "@.capitalize:{'terms.glossary.testlage'}",
"test_mode_desc": "@.capitalize:{'terms.glossary.aktivera'} @:{'terms.glossary.testlage'} @:{'terms.glossary.for'} @:{'terms.glossary.stripe'}-@:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.stripe'} @:{'terms.glossary.konfiguration'}",
"webhook_secret": "@.capitalize:{'terms.glossary.webhook'}-@:{'terms.glossary.hemlighet'}",
"webhook_secret_desc": "@.capitalize:{'terms.glossary.din'} @:{'terms.glossary.stripe'} @:{'terms.glossary.webhook'}-@:{'terms.glossary.hemlighet'} @:{'terms.glossary.for'} händelsehantering"
},
"subtitle": "@:{'terms.glossary.administrer'} systemkonfigurasjon",
"users": {
"subtitle": "@:{'terms.glossary.administrer'} brukere"
},
"virkdata": {
"api_key_desc": "@:{'terms.glossary.virk'} @.capitalize:{'terms.glossary.data'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.virk'} @.capitalize:{'terms.glossary.data'}-@:{'terms.glossary.integrationen'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.virkdata'} @:{'terms.glossary.api'}.",
"company_selected": "@.capitalize:{'terms.glossary.foretag'} @:{'terms.glossary.valt'}",
"company_selected_desc": "@.capitalize:{'terms.glossary.du'} @:{'terms.glossary.har'} @:{'terms.glossary.valgt'} {name} ({cvr})",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.virkdata'}",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.virkdata'} @:{'terms.glossary.integrationen'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.allmanna'} @:{'terms.glossary.installningarna'} @:{'terms.glossary.for'} @:{'terms.glossary.virkdata'}-@:{'terms.glossary.integrationen'}.",
"monthly_limit": "Månatlig @:{'terms.glossary.begaransgrans'}",
"monthly_limit_desc": "@.capitalize:{'terms.replication.article.host_mention'} månatliga @:{'terms.glossary.begaransgransen'} @:{'terms.glossary.for'} @:{'terms.glossary.virkdata'}-@:{'terms.glossary.integrationen'}.",
"no_results": "@.capitalize:{'terms.glossary.ingen'} @:{'terms.glossary.resultater'}",
"no_results_desc": "@.capitalize:{'terms.glossary.inga'} @:{'terms.glossary.foretag'} @:{'terms.glossary.hittades'} @:{'terms.glossary.som'} @:{'terms.glossary.matchar'} @:{'terms.glossary.din'} @:{'terms.glossary.sokning'}.",
"search_company": "@:{'terms.glossary.sok'} @:{'terms.glossary.efter'} @:{'terms.glossary.foretag'}",
"search_error": "@.capitalize:{'terms.glossary.ett'} @:{'terms.glossary.fel'} @:{'terms.glossary.uppstod'} @:{'terms.glossary.vid'} @:{'terms.glossary.sokning'} @:{'terms.glossary.efter'} @:{'terms.glossary.foretag'}.",
"select_company": "@.capitalize:{'terms.glossary.valj'} @:{'terms.glossary.ett'} @:{'terms.glossary.foretag'}",
"select_company_required": "@.capitalize:{'terms.glossary.du'} @:{'terms.glossary.maste'} @:{'terms.glossary.valja'} @:{'terms.glossary.ett'} @:{'terms.glossary.foretag'}",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.virkdata'} @:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.virkdata'} @:{'terms.glossary.konfiguration'}"
},
"workfeed": {
"api_key": "@:{'terms.glossary.api'} @:{'terms.glossary.key'}",
"api_key_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.api'} @:{'terms.glossary.key'} @:{'terms.glossary.used'} @:{'terms.glossary.to'} authenticate @:{'terms.glossary.requests'} @:{'terms.glossary.to'} @:{'terms.glossary.workfeed'}.",
"api_settings": "@:{'terms.glossary.api'} @:{'terms.glossary.connection'} @:{'terms.glossary.settings'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.api'} @:{'terms.glossary.connection'} @:{'terms.glossary.settings'} @:{'terms.glossary.used'} @:{'terms.glossary.for_2'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.requests'}.",
"api_url": "@:{'terms.glossary.api'} @:{'terms.glossary.url'}",
"api_url_desc": "@.capitalize:{'terms.glossary.the'} base @:{'terms.glossary.url'} @:{'terms.glossary.for_2'} @:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.api'}.",
"close": "@:{'terms.glossary.close'}",
"company_id": "@.capitalize:{'terms.glossary.company'} @.upper:{'terms.glossary.id'}",
"company_id_desc": "@.capitalize:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.company'} identifier @:{'terms.glossary.used'} @:{'terms.glossary.for_2'} @:{'terms.glossary.api'} synchronization.",
"diagnostics": {
"description": "@.capitalize:{'terms.glossary.run'} @:{'terms.glossary.test'} @:{'terms.glossary.lookups'} against @:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.integration'} endpoints.",
"get_employee": "@:{'terms.glossary.get'} @:{'terms.glossary.employee'} @:{'terms.glossary.by'} @.upper:{'terms.glossary.id'}",
"get_shift": "@:{'terms.glossary.get'} @:{'terms.glossary.shift'} @:{'terms.glossary.by'} @.upper:{'terms.glossary.id'}",
"list_departments": "@.capitalize:{'terms.glossary.list'} @:{'terms.glossary.departments'}",
"list_employees": "@.capitalize:{'terms.glossary.list'} @:{'terms.glossary.employees'}",
"list_shifts": "@.capitalize:{'terms.glossary.list'} shifts",
"no_params_required": "@.capitalize:{'terms.glossary.no'} query parameters @:{'terms.glossary.are'} @:{'terms.glossary.required'} @:{'terms.glossary.for_2'} @:{'terms.glossary.this'} @:{'terms.glossary.lookup'}.",
"placeholder_employee_id": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P",
"placeholder_released": "@:{'terms.glossary.true'} @:{'terms.glossary.or'} @:{'terms.glossary.false'}",
"placeholder_search": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. north facility",
"placeholder_shift_id": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q",
"placeholder_start_from": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. 2026-03-24T00:00:@:{'terms.glossary.word_00z'}",
"placeholder_start_to": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. 2026-03-25T00:00:@:{'terms.glossary.word_00z'}",
"placeholder_status": "@:{'terms.glossary.e'}.@:{'terms.glossary.g'}. published",
"prompt_employee_id": "@.capitalize:{'terms.glossary.employee'} @.upper:{'terms.glossary.id'}",
"prompt_employee_id_optional": "@.capitalize:{'terms.glossary.optional'} @:{'terms.glossary.employee'} @.upper:{'terms.glossary.id'}",
"prompt_released_optional": "@.capitalize:{'terms.glossary.optional'} @:{'terms.glossary.released'} @:{'terms.glossary.filter'} (@:{'terms.glossary.true'}/@:{'terms.glossary.false'})",
"prompt_search_optional": "@.capitalize:{'terms.glossary.optional'} @:{'terms.glossary.search'} @:{'terms.glossary.text'}",
"prompt_shift_id": "@.capitalize:{'terms.glossary.shift'} @.upper:{'terms.glossary.id'}",
"prompt_start_from": "@.capitalize:{'terms.glossary.shift'} @:{'terms.glossary.start'} @:{'terms.glossary.from'} (@:{'terms.glossary.iso'} 8601)",
"prompt_start_to": "@.capitalize:{'terms.glossary.shift'} @:{'terms.glossary.start'} @:{'terms.glossary.to'} (@:{'terms.glossary.iso'} 8601)",
"prompt_status_optional": "@.capitalize:{'terms.glossary.optional'} @:{'terms.glossary.shift'} @:{'terms.glossary.status'}",
"result_departments": "@.capitalize:{'terms.glossary.department'} @:{'terms.glossary.lookup'} @:{'terms.glossary.result'}",
"result_employee": "@.capitalize:{'terms.glossary.employee'} @:{'terms.glossary.result'}",
"result_employees": "@.capitalize:{'terms.glossary.employee'} @:{'terms.glossary.lookup'} @:{'terms.glossary.result'}",
"result_shift": "@.capitalize:{'terms.glossary.shift'} @:{'terms.glossary.result'}",
"result_shifts": "@.capitalize:{'terms.glossary.shift'} @:{'terms.glossary.lookup'} @:{'terms.glossary.result'}",
"select_employee_all": "@.capitalize:{'terms.glossary.all'} @:{'terms.glossary.employees'}",
"select_released_all": "@.capitalize:{'terms.glossary.all'} release states",
"select_released_false": "@.capitalize:{'terms.glossary.not'} @:{'terms.glossary.released'} @:{'terms.glossary.only'}",
"select_released_true": "@.capitalize:{'terms.glossary.released'} @:{'terms.glossary.only'}",
"title": "Diagnostics",
"validation_datetime_invalid": "@.capitalize:{'terms.glossary.invalid'} @:{'terms.glossary.date'}-@:{'terms.glossary.time'} @:{'terms.glossary.value'}.",
"validation_released_boolean": "@.capitalize:{'terms.glossary.released'} @:{'terms.glossary.must'} @:{'terms.glossary.be'} either @:{'terms.glossary.true'} @:{'terms.glossary.or'} @:{'terms.glossary.false'}.",
"validation_shift_range_required": "startFrom @:{'terms.glossary.and'} startTo @:{'terms.glossary.are'} @:{'terms.glossary.required'}."
},
"enable": "@:{'terms.glossary.enable'} @:{'terms.glossary.workfeed'}",
"enable_desc": "@:{'terms.glossary.enable'} @:{'terms.glossary.or'} @:{'terms.glossary.disable'} @:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.integration'}.",
"general_settings_desc": "@:{'terms.glossary.general'} @:{'terms.glossary.settings'} @:{'terms.glossary.for_2'} @:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.integration'}.",
"lookup": "@.capitalize:{'terms.glossary.lookup'}",
"subtitle": "@.capitalize:{'terms.glossary.configuration'} @:{'terms.glossary.of'} @:{'terms.glossary.the'} @:{'terms.glossary.workfeed'} @:{'terms.glossary.integration'}",
"title": "@:{'terms.glossary.workfeed'} @:{'terms.glossary.configuration'}",
"validation_required": "@.capitalize:{'terms.glossary.this'} @:{'terms.glossary.field'} @:{'terms.glossary.is'} @:{'terms.glossary.required'}."
},
"xlvask": {
"api_key_desc": "@:{'terms.glossary.xl'} @.capitalize:{'terms.glossary.vask'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.xl'} @.capitalize:{'terms.glossary.vask'}-@:{'terms.glossary.integrationen'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'}.",
"automation_settings": "Automatisering",
"automation_settings_desc": "Styr @:{'terms.glossary.automatisk'} @:{'terms.glossary.orderkoppling'} @:{'terms.glossary.och'} @:{'terms.glossary.orderskapande'} @:{'terms.glossary.fran'} @.capitalize:{'terms.glossary.selvvask'}.",
"connection_failed": "@.capitalize:{'terms.glossary.anslutning'} @:{'terms.glossary.misslyckades'}",
"connection_failed_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.misslyckades'}.",
"connection_success_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.lyckades'}.",
"enable": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.xlvask'}",
"enable_automatic_attachment": "@.capitalize:{'terms.glossary.automatisk'} @:{'terms.glossary.orderkoppling'}",
"enable_automatic_attachment_desc": "@.capitalize:{'terms.glossary.koppla'} @:{'terms.glossary.sakra'} @.capitalize:{'terms.glossary.selvvask'}-träffar @:{'terms.glossary.automatiskt'} @:{'terms.glossary.till'} befintliga @:{'terms.glossary.ordrar'}.",
"enable_automatic_creation": "@.capitalize:{'terms.glossary.automatiskt'} @:{'terms.glossary.orderskapande'}",
"enable_automatic_creation_desc": "@.capitalize:{'terms.glossary.skapa'} @:{'terms.glossary.sakra'} @.capitalize:{'terms.glossary.selvvask'}-@:{'terms.glossary.ordrar'} @:{'terms.glossary.automatiskt'} @:{'terms.glossary.nar'} @:{'terms.glossary.tvatten'} @:{'terms.glossary.ar'} @:{'terms.glossary.aldre'} @:{'terms.glossary.an_2'} 6 @:{'terms.glossary.timmar'}.",
"enable_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integrationen'}.",
"enable_openai_integration": "@:{'terms.glossary.openai'}-förslag",
"enable_openai_integration_desc": "@.capitalize:{'terms.glossary.anvand'} @:{'terms.glossary.openai'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} föreslå @:{'terms.glossary.koppling'} @:{'terms.glossary.eller'} @:{'terms.glossary.skapande'} @:{'terms.glossary.nar'} fasta @:{'terms.glossary.regler'} @:{'terms.glossary.inte'} @:{'terms.glossary.ar'} @:{'terms.glossary.sakra'} nog.",
"enable_sync": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.automatisk'} @:{'terms.glossary.synkronisering'}",
"enable_sync_desc": "@:{'terms.glossary.aktiver'} @:{'terms.glossary.eller'} @:{'terms.glossary.deaktiver'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.automatisk'} @:{'terms.glossary.synkronisering'}.",
"general_settings_desc": "@.capitalize:{'terms.glossary.de'} @:{'terms.glossary.generelle'} @:{'terms.glossary.indstillinger'} @:{'terms.glossary.for_2'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integrationen'}.",
"password_desc": "@.capitalize:{'terms.glossary.losenordet'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integrationen'}",
"title": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.konfiguration'}",
"username_desc": "Användarnamnet @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}.",
"minimax_settings": "MiniMax M3 (AI planner)",
"minimax_settings_desc": "Configure the MiniMax M3 integration that powers the XL Vask autopilot planner.",
"enable_minimax_integration": "Use MiniMax M3 for autopilot suggestions",
"enable_minimax_integration_desc": "Force the XL Vask autopilot to use MiniMax M3 (replaces OpenAI for AI suggestions).",
"minimax_enable": "Enable MiniMax",
"minimax_enable_desc": "Activate the MiniMax integration used by the XL Vask autopilot and other AI features.",
"minimax_api_key": "MiniMax API key",
"minimax_api_key_desc": "The secret key for MiniMax. Obtain it from the MiniMax Portal; rotate or remove it from this page.",
"minimax_api_key_placeholder": "Paste your MiniMax API key",
"minimax_api_key_required": "An API key is required.",
"minimax_reauthenticate": "Re-authenticate",
"minimax_reauth_title": "Re-authenticate MiniMax",
"minimax_reauth_desc": "Paste a new MiniMax API key. This replaces the stored key.",
"minimax_reauth_confirm": "Save key",
"minimax_reauth_in_progress": "Saving…",
"minimax_reauth_success": "MiniMax key saved",
"minimax_reauth_success_desc": "The XL Vask autopilot will use the new key on its next call.",
"minimax_reauth_failed": "Could not save MiniMax key",
"minimax_remove": "Remove",
"minimax_remove_title": "Remove MiniMax key",
"minimax_remove_desc": "Clear the stored MiniMax API key. The autopilot will stop using MiniMax until a new key is provided.",
"minimax_remove_confirm": "Yes, remove",
"minimax_remove_in_progress": "Removing…",
"minimax_remove_success": "MiniMax key removed",
"minimax_remove_success_desc": "The autopilot is now forced off until a new key is configured.",
"minimax_remove_failed": "Could not remove MiniMax key"
}
}
}
}