Skip to content

Commit 7f2c596

Browse files
authored
Merge pull request #2249 from steipete/codex/issue-2072-ollama-cookie-hints
Ollama: surface browser cookie access errors
2 parents 547b278 + 067f461 commit 7f2c596

29 files changed

Lines changed: 374 additions & 29 deletions
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import CodexBarCore
2+
import Foundation
3+
4+
struct OllamaUIErrorMapper {
5+
static func userFacingMessage(
6+
_ raw: String?,
7+
localize: (String) -> String = L) -> String?
8+
{
9+
guard let raw else { return nil }
10+
let trimmed = raw.trimmingCharacters(in: .whitespacesAndNewlines)
11+
guard !trimmed.isEmpty else { return nil }
12+
13+
if trimmed == OllamaUsageError.safariCookieAccessDenied.localizedDescription {
14+
return localize("ollama_safari_cookie_access_hint")
15+
}
16+
if let browserName = self.browserName(
17+
in: trimmed,
18+
suffix: " cookie decryption was declined in Keychain; retry with a manual refresh.")
19+
{
20+
return String(format: localize("ollama_browser_cookie_decryption_denied"), browserName)
21+
}
22+
if let browserName = self.browserName(
23+
in: trimmed,
24+
suffix: " cookie decryption is disabled in CodexBar; enable Keychain access and refresh.")
25+
{
26+
return String(format: localize("ollama_browser_cookie_decryption_disabled"), browserName)
27+
}
28+
return trimmed
29+
}
30+
31+
private static func browserName(in message: String, suffix: String) -> String? {
32+
guard message.hasSuffix(suffix) else { return nil }
33+
let name = String(message.dropLast(suffix.count)).trimmingCharacters(in: .whitespacesAndNewlines)
34+
return name.isEmpty ? nil : name
35+
}
36+
}

Sources/CodexBar/Resources/ar.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Arabic localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "تحتاج ملفات تعريف ارتباط Safari إلى وصول كامل إلى القرص لتطبيق CodexBar (إعدادات النظام > الخصوصية والأمان).";
4+
"ollama_browser_cookie_decryption_denied" = "تم رفض فك تشفير ملفات تعريف ارتباط %@ في سلسلة المفاتيح؛ أعد المحاولة بتحديث يدوي.";
5+
"ollama_browser_cookie_decryption_disabled" = "فك تشفير ملفات تعريف ارتباط %@ معطل في CodexBar؛ فعّل الوصول إلى سلسلة المفاتيح ثم حدّث.";
6+
37
" providers" = " providers";
48
"(System)" = "(النظام)";
59
"30d" = "30 يومًا";

Sources/CodexBar/Resources/ca.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Catalan localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "Les galetes de Safari necessiten accés complet al disc per a CodexBar (Configuració del Sistema > Privadesa i seguretat).";
4+
"ollama_browser_cookie_decryption_denied" = "S'ha denegat el desxifratge de les galetes de %@ al Clauer; torneu-ho a provar amb una actualització manual.";
5+
"ollama_browser_cookie_decryption_disabled" = "El desxifratge de les galetes de %@ està desactivat a CodexBar; activeu l'accés al Clauer i actualitzeu.";
6+
37
" providers" = " proveïdors";
48
"(System)" = "(Sistema)";
59
"30d" = "30 d";

Sources/CodexBar/Resources/de.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* English localization for CodexBar (base/fallback) */
22

3+
"ollama_safari_cookie_access_hint" = "Safari-Cookies benötigen vollen Festplattenzugriff für CodexBar (Systemeinstellungen > Datenschutz & Sicherheit).";
4+
"ollama_browser_cookie_decryption_denied" = "Die Entschlüsselung der %@-Cookies wurde im Schlüsselbund abgelehnt; versuchen Sie es mit einer manuellen Aktualisierung erneut.";
5+
"ollama_browser_cookie_decryption_disabled" = "Die Entschlüsselung der %@-Cookies ist in CodexBar deaktiviert; aktivieren Sie den Schlüsselbundzugriff und aktualisieren Sie.";
6+
37
" providers" = "Anbieter";
48
"(System)" = "(System)";
59
"30d" = "30d";

Sources/CodexBar/Resources/en.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* English localization for CodexBar (base/fallback) */
22

3+
"ollama_safari_cookie_access_hint" = "Safari cookies need Full Disk Access for CodexBar (System Settings > Privacy & Security).";
4+
"ollama_browser_cookie_decryption_denied" = "%@ cookie decryption was declined in Keychain; retry with a manual refresh.";
5+
"ollama_browser_cookie_decryption_disabled" = "%@ cookie decryption is disabled in CodexBar; enable Keychain access and refresh.";
6+
37
" providers" = " providers";
48
"(System)" = "(System)";
59
"30d" = "30d";

Sources/CodexBar/Resources/es.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Spanish localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "Las cookies de Safari necesitan acceso total al disco para CodexBar (Ajustes del Sistema > Privacidad y seguridad).";
4+
"ollama_browser_cookie_decryption_denied" = "Se rechazó en el Llavero el descifrado de las cookies de %@; vuelve a intentarlo con una actualización manual.";
5+
"ollama_browser_cookie_decryption_disabled" = "El descifrado de las cookies de %@ está desactivado en CodexBar; activa el acceso al Llavero y actualiza.";
6+
37
" providers" = " proveedores";
48
"(System)" = "(Sistema)";
59
"30d" = "30 d";

Sources/CodexBar/Resources/fa.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Persian localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "کوکی‌های Safari برای CodexBar به دسترسی کامل دیسک نیاز دارند (تنظیمات سیستم > حریم خصوصی و امنیت).";
4+
"ollama_browser_cookie_decryption_denied" = "رمزگشایی کوکی‌های %@ در Keychain رد شد؛ با یک تازه‌سازی دستی دوباره تلاش کنید.";
5+
"ollama_browser_cookie_decryption_disabled" = "رمزگشایی کوکی‌های %@ در CodexBar غیرفعال است؛ دسترسی Keychain را فعال و تازه‌سازی کنید.";
6+
37
" providers" = " providers";
48
"(System)" = "(سیستم)";
59
"30d" = "30 روز";

Sources/CodexBar/Resources/fr.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* English localization for CodexBar (base/fallback) */
22

3+
"ollama_safari_cookie_access_hint" = "Les cookies Safari nécessitent l’accès complet au disque pour CodexBar (Réglages Système > Confidentialité et sécurité).";
4+
"ollama_browser_cookie_decryption_denied" = "Le déchiffrement des cookies %@ a été refusé dans le Trousseau ; réessayez avec une actualisation manuelle.";
5+
"ollama_browser_cookie_decryption_disabled" = "Le déchiffrement des cookies %@ est désactivé dans CodexBar ; activez l’accès au Trousseau et actualisez.";
6+
37
" providers" = " fournisseurs";
48
"(System)" = "(System)";
59
"30d" = "30d";

Sources/CodexBar/Resources/gl.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Galician localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "As cookies de Safari precisan acceso total ao disco para CodexBar (Axustes do Sistema > Privacidade e seguridade).";
4+
"ollama_browser_cookie_decryption_denied" = "Rexeitouse no Chaveiro o descifrado das cookies de %@; téntao de novo cunha actualización manual.";
5+
"ollama_browser_cookie_decryption_disabled" = "O descifrado das cookies de %@ está desactivado en CodexBar; activa o acceso ao Chaveiro e actualiza.";
6+
37
" providers" = " provedores";
48
"(System)" = "(Sistema)";
59
"30d" = "30d";

Sources/CodexBar/Resources/id.lproj/Localizable.strings

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/* Indonesian localization for CodexBar */
22

3+
"ollama_safari_cookie_access_hint" = "Cookie Safari memerlukan Akses Disk Penuh untuk CodexBar (Pengaturan Sistem > Privasi & Keamanan).";
4+
"ollama_browser_cookie_decryption_denied" = "Dekripsi cookie %@ ditolak di Rantai Kunci; coba lagi dengan penyegaran manual.";
5+
"ollama_browser_cookie_decryption_disabled" = "Dekripsi cookie %@ dinonaktifkan di CodexBar; aktifkan akses Rantai Kunci lalu segarkan.";
6+
37
" providers" = " penyedia";
48
"(System)" = "(Sistem)";
59
"30d" = "30 hari";

0 commit comments

Comments
 (0)