2.5.2 #12

Merged
rune merged 23 commits from 2.5.2 into main 2026-08-17 08:37:04 +02:00
2 changed files with 90 additions and 11 deletions
Showing only changes of commit 4d65ab7703 - Show all commits
+68
View File
@@ -1,6 +1,74 @@
{
"sourceLanguage" : "en",
"strings" : {
"Used for Google web search (if selected above) and for Google embeddings in Settings → Advanced → Semantic Search." : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "Bruges til Google-websøgning (hvis valgt ovenfor) og til Google-indlejringer i Indstillinger → Avanceret → Semantisk søgning."
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Wird für die Google-Websuche (falls oben ausgewählt) und für Google-Embeddings unter Einstellungen → Erweitert → Semantische Suche verwendet."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Utilisée pour la recherche web Google (si sélectionnée ci-dessus) et pour les embeddings Google dans Réglages → Avancé → Recherche sémantique."
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "Brukes til Google-websøk (hvis valgt ovenfor) og til Google-innbygginger i Innstillinger → Avansert → Semantisk søk."
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "Används för Google-webbsökning (om vald ovan) och för Google-embeddings i Inställningar → Avancerat → Semantisk sökning."
}
}
}
},
"⚠️ No embedding providers available. Configure an API key for OpenAI, OpenRouter, or Google (under General → Web Search) in the General tab." : {
"localizations" : {
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "⚠️ Ingen indlejringsudbydere tilgængelige. Konfigurer en API-nøgle til OpenAI, OpenRouter eller Google (under Generelt → Websøgning) på fanen Generelt."
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "⚠️ Keine Embedding-Anbieter verfügbar. Konfiguriere einen API-Schlüssel für OpenAI, OpenRouter oder Google (unter Allgemein → Websuche) auf der Registerkarte „Allgemein“."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "⚠️ Aucun fournisseur d'embeddings disponible. Configure une clé API pour OpenAI, OpenRouter ou Google (sous Général → Recherche web) dans l'onglet Général."
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "⚠️ Ingen innbyggingsleverandører tilgjengelig. Konfigurer en API-nøkkel for OpenAI, OpenRouter eller Google (under Generelt → Websøk) i fanen Generelt."
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "⚠️ Inga embedding-leverantörer tillgängliga. Konfigurera en API-nyckel för OpenAI, OpenRouter eller Google (under Allmänt → Webbsökning) på fliken Allmänt."
}
}
}
},
"Remote (HTTP)" : {
"localizations" : {
"da" : {
+22 -11
View File
@@ -485,17 +485,28 @@ It's better to admit "I need more information" or "I cannot do that" than to fak
.labelsHidden()
.fixedSize()
}
// Always visible (not gated behind Search Provider == .google): this key is also
// used for Google embeddings in Semantic Search (Advanced tab), which has nothing
// to do with which web search provider is selected. Search Engine ID is web-search
// specific, so that one stays conditional.
rowDivider()
row("Google API Key") {
SecureField("", text: $googleKey)
.textFieldStyle(.roundedBorder)
.frame(width: 300)
.onAppear { googleKey = settingsService.googleAPIKey ?? "" }
.onChange(of: googleKey) {
settingsService.googleAPIKey = googleKey.isEmpty ? nil : googleKey
}
}
VStack(alignment: .leading, spacing: 2) {
Text("Used for Google web search (if selected above) and for Google embeddings in Settings → Advanced → Semantic Search.")
.font(.caption)
.foregroundStyle(.secondary)
}
.padding(.horizontal, 12)
.padding(.bottom, 4)
if settingsService.searchProvider == .google {
rowDivider()
row("Google API Key") {
SecureField("", text: $googleKey)
.textFieldStyle(.roundedBorder)
.frame(width: 300)
.onAppear { googleKey = settingsService.googleAPIKey ?? "" }
.onChange(of: googleKey) {
settingsService.googleAPIKey = googleKey.isEmpty ? nil : googleKey
}
}
rowDivider()
row("Search Engine ID") {
TextField("", text: $googleEngineID)
@@ -1794,7 +1805,7 @@ It's better to admit "I need more information" or "I cannot do that" than to fak
.fixedSize(horizontal: false, vertical: true)
.padding(.horizontal, 4)
} else {
Text("⚠️ No embedding providers available. Configure an API key for OpenAI, OpenRouter, or Google in the General tab.")
Text("⚠️ No embedding providers available. Configure an API key for OpenAI, OpenRouter, or Google (under General → Web Search) in the General tab.")
.font(.system(size: 13))
.foregroundStyle(.orange)
.fixedSize(horizontal: false, vertical: true)