Add per-language thinking verbs; close major i18n translation gap

- ThinkingVerbs now picks from a hand-written verb list per active
  display language (en/nb/sv/da/de/fr) instead of always English,
  fixed to be nonisolated at the type level (this project defaults
  to MainActor isolation, which was breaking the static verb arrays).
- SyncStatusIndicator.tooltipText was typed String instead of
  LocalizedStringKey, silently bypassing localization for .help() —
  fixed.
- Translated ~150 strings (750 individual translations) into
  nb/sv/da/de/fr that had never been localized: the entire slash-
  command dropdown, sync status labels, reasoning-effort
  descriptions, model sort options, and settings rows added across
  recent features (Git Sync conflict recovery, crash recovery,
  notes, backup, external MCP servers). Most were invisible to
  xcodebuild -exportLocalizations because they're LocalizedStringKey-
  typed properties/helpers rather than literal Text() calls, per the
  same gap documented from the original Phase 7 audit.
- AI-translated per the README's existing disclosure; verified live
  in nb and fr builds, and diffed the catalog to confirm zero
  pre-existing translations were altered, only additions.
This commit is contained in:
2026-08-05 12:57:49 +02:00
parent 8875ae9aa9
commit c21fe49f4f
5 changed files with 5424 additions and 147 deletions
+1 -49
View File
@@ -3,7 +3,7 @@
"strings" : {
"CFBundleName" : {
"comment" : "Bundle name",
"extractionState" : "extracted_with_value",
"extractionState" : "stale",
"localizations" : {
"da" : {
"stringUnit" : {
@@ -36,54 +36,6 @@
}
}
}
},
"NSCalendarsFullAccessUsageDescription" : {
"comment" : "Privacy - Calendars Full Access Usage Description",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Confab can read and create calendar events when you ask it to, if you enable Calendar access in Settings."
}
}
}
},
"NSContactsUsageDescription" : {
"comment" : "Privacy - Contacts Usage Description",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Confab can search your contacts when you ask it to, if you enable Contacts access in Settings."
}
}
}
},
"NSLocationWhenInUseUsageDescription" : {
"comment" : "Privacy - Location When In Use Usage Description",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Confab can use your current location to answer questions, if you enable Location & Maps access in Settings."
}
}
}
},
"NSRemindersFullAccessUsageDescription" : {
"comment" : "Privacy - Reminders Full Access Usage Description",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Confab can read and create reminders when you ask it to, if you enable Reminders access in Settings."
}
}
}
}
},
"version" : "1.1"