Ver código fonte

Fix localization for app name vs Indeed sidebar and brand strings.

Keep the official app name as “App for Indeed” everywhere, localize the Indeed sidebar nav label per locale, add menu/InfoPlist wiring, and fill brand-term gaps across all languages.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 mês atrás
pai
commit
118489149c
49 arquivos alterados com 730 adições e 108 exclusões
  1. 12 0
      App for Indeed/AppDelegate.swift
  2. 6 11
      App for Indeed/AppMarketingLinks.swift
  3. 40 0
      App for Indeed/Services/AppMenuLocalizer.swift
  4. 4 3
      App for Indeed/Views/DashboardView.swift
  5. 3 0
      App for Indeed/ar.lproj/InfoPlist.strings
  6. 17 9
      App for Indeed/ar.lproj/Localizable.strings
  7. 3 0
      App for Indeed/de.lproj/InfoPlist.strings
  8. 17 9
      App for Indeed/de.lproj/Localizable.strings
  9. 3 0
      App for Indeed/el.lproj/InfoPlist.strings
  10. 6 0
      App for Indeed/el.lproj/Localizable.strings
  11. 3 0
      App for Indeed/en.lproj/InfoPlist.strings
  12. 7 0
      App for Indeed/en.lproj/Localizable.strings
  13. 3 0
      App for Indeed/es-MX.lproj/InfoPlist.strings
  14. 10 4
      App for Indeed/es-MX.lproj/Localizable.strings
  15. 3 0
      App for Indeed/es.lproj/InfoPlist.strings
  16. 9 3
      App for Indeed/es.lproj/Localizable.strings
  17. 3 0
      App for Indeed/fi.lproj/InfoPlist.strings
  18. 9 3
      App for Indeed/fi.lproj/Localizable.strings
  19. 3 0
      App for Indeed/fr-CA.lproj/InfoPlist.strings
  20. 12 6
      App for Indeed/fr-CA.lproj/Localizable.strings
  21. 3 0
      App for Indeed/fr.lproj/InfoPlist.strings
  22. 12 6
      App for Indeed/fr.lproj/Localizable.strings
  23. 3 0
      App for Indeed/he.lproj/InfoPlist.strings
  24. 9 3
      App for Indeed/he.lproj/Localizable.strings
  25. 3 0
      App for Indeed/it.lproj/InfoPlist.strings
  26. 11 5
      App for Indeed/it.lproj/Localizable.strings
  27. 3 0
      App for Indeed/ko.lproj/InfoPlist.strings
  28. 8 2
      App for Indeed/ko.lproj/Localizable.strings
  29. 3 0
      App for Indeed/nb.lproj/InfoPlist.strings
  30. 9 3
      App for Indeed/nb.lproj/Localizable.strings
  31. 3 0
      App for Indeed/nl.lproj/InfoPlist.strings
  32. 12 6
      App for Indeed/nl.lproj/Localizable.strings
  33. 3 0
      App for Indeed/pl.lproj/InfoPlist.strings
  34. 9 3
      App for Indeed/pl.lproj/Localizable.strings
  35. 3 0
      App for Indeed/pt-BR.lproj/InfoPlist.strings
  36. 9 3
      App for Indeed/pt-BR.lproj/Localizable.strings
  37. 3 0
      App for Indeed/ru.lproj/InfoPlist.strings
  38. 11 5
      App for Indeed/ru.lproj/Localizable.strings
  39. 3 0
      App for Indeed/sv.lproj/InfoPlist.strings
  40. 15 9
      App for Indeed/sv.lproj/Localizable.strings
  41. 3 0
      App for Indeed/uk.lproj/InfoPlist.strings
  42. 8 2
      App for Indeed/uk.lproj/Localizable.strings
  43. 3 0
      App for Indeed/vi.lproj/InfoPlist.strings
  44. 8 2
      App for Indeed/vi.lproj/Localizable.strings
  45. 3 0
      App for Indeed/zh-Hans.lproj/InfoPlist.strings
  46. 12 4
      App for Indeed/zh-Hans.lproj/Localizable.strings
  47. 3 0
      App for Indeed/zh-Hant.lproj/InfoPlist.strings
  48. 13 7
      App for Indeed/zh-Hant.lproj/Localizable.strings
  49. 369 0
      scripts/patch_localizations.py

+ 12 - 0
App for Indeed/AppDelegate.swift

@@ -78,10 +78,22 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
 
         // Initial StoreKit refresh runs on `LoadingViewController` before the dashboard is shown.
         installMainWindowMenuItem()
+        AppMenuLocalizer.apply()
+        NotificationCenter.default.addObserver(
+            forName: AppLanguageManager.didChangeNotification,
+            object: nil,
+            queue: .main
+        ) { _ in
+            AppMenuLocalizer.apply()
+        }
         NSApp.activate(ignoringOtherApps: true)
         applyDefaultWindowSize()
     }
 
+    func refreshMainWindowMenuItemTitle() {
+        showMainWindowMenuItem?.title = AppMarketingLinks.appDisplayName
+    }
+
     @MainActor
     private func applyDefaultWindowSize() {
         DispatchQueue.main.async { [weak self] in

+ 6 - 11
App for Indeed/AppMarketingLinks.swift

@@ -8,12 +8,15 @@ import Foundation
 /// Mac App Store URLs for Settings → Share App / More Apps.
 /// Override via build settings: `INFOPLIST_KEY_AppStoreAppID` and `INFOPLIST_KEY_AppStoreDeveloperID`.
 enum AppMarketingLinks {
-    /// Canonical app name; keep in sync with `INFOPLIST_KEY_CFBundleDisplayName` in the Xcode target.
+    /// Official app name — never localized.
     static let displayName = "App for Indeed"
 
-    /// Indeed® brand mark — always Latin “Indeed”, never transliterated in UI.
+    /// Indeed® brand mark for alerts and host labels — always Latin “Indeed”.
     static let indeedBrandName = "Indeed"
 
+    /// Sidebar / nav label for opening Indeed (localized via `"Indeed"` in `Localizable.strings`).
+    static var localizedIndeedNavTitle: String { L("Indeed") }
+
     /// Numeric App Store app ID from App Store Connect (e.g. `1234567890`).
     static var macAppStoreURL: URL? {
         guard let appID = resolvedAppStoreAppID else { return nil }
@@ -27,15 +30,7 @@ enum AppMarketingLinks {
     }
 
     static var appDisplayName: String {
-        if let display = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String,
-           !display.isEmpty {
-            return display
-        }
-        if let name = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String,
-           !name.isEmpty {
-            return name
-        }
-        return displayName
+        displayName
     }
 
     static var shareText: String {

+ 40 - 0
App for Indeed/Services/AppMenuLocalizer.swift

@@ -0,0 +1,40 @@
+//
+//  AppMenuLocalizer.swift
+//  App for Indeed
+//
+
+import Cocoa
+
+/// Applies in-app language to the main menu and window chrome (storyboard defaults are English).
+enum AppMenuLocalizer {
+    static func apply() {
+        let appName = AppMarketingLinks.appDisplayName
+
+        if let window = AppWindowConfiguration.mainWindow() {
+            window.title = appName
+        }
+
+        if let item = NSApp.delegate as? AppDelegate {
+            item.refreshMainWindowMenuItemTitle()
+        }
+
+        guard let mainMenu = NSApp.mainMenu,
+              let appMenuItem = mainMenu.items.first,
+              let appMenu = appMenuItem.submenu else { return }
+
+        appMenuItem.title = appName
+
+        for item in appMenu.items {
+            let action = item.action
+            if action == #selector(NSApplication.orderFrontStandardAboutPanel(_:)) {
+                item.title = String(format: L("About %@"), appName)
+            } else if action == #selector(NSApplication.hide(_:)) {
+                item.title = String(format: L("Hide %@"), appName)
+            } else if action == #selector(NSApplication.terminate(_:)) {
+                item.title = String(format: L("Quit %@"), appName)
+            } else if item.keyEquivalent == "," {
+                item.title = L("Preferences…")
+            }
+        }
+    }
+}

+ 4 - 3
App for Indeed/Views/DashboardView.swift

@@ -295,6 +295,7 @@ final class DashboardView: NSView, NSTextFieldDelegate, NSSharingServicePickerDe
         rebuildFeatureShortcutCards()
         trailingLoadMoreJobsButton?.title = L("Show more jobs")
         refreshWelcomeChatMessageForCurrentLanguage()
+        AppMenuLocalizer.apply()
     }
 
     /// Updates the default assistant greeting when the user changes language before starting a conversation.
@@ -2877,7 +2878,7 @@ final class DashboardView: NSView, NSTextFieldDelegate, NSSharingServicePickerDe
         removeInlineChatThinkingRow()
         let host = NSView()
         host.translatesAutoresizingMaskIntoConstraints = false
-        let indicator = ChatThinkingIndicatorView(compact: false)
+        let indicator = ChatThinkingIndicatorView(compact: false, accessibilityLabel: L("Assistant is searching"))
         host.addSubview(indicator)
         NSLayoutConstraint.activate([
             indicator.leadingAnchor.constraint(equalTo: host.leadingAnchor, constant: 8),
@@ -2925,7 +2926,7 @@ final class DashboardView: NSView, NSTextFieldDelegate, NSSharingServicePickerDe
         rowHost.layer?.cornerRadius = 8
         rowHost.restingBackgroundColor = isSelected ? Theme.selectionFill : nil
         rowHost.hoverBackgroundColor = isSelected ? Theme.selectionFillHover : Theme.sidebarRowHoverFill
-        rowHost.setAccessibilityLabel(AppMarketingLinks.indeedBrandName)
+        rowHost.setAccessibilityLabel(AppMarketingLinks.localizedIndeedNavTitle)
         rowHost.setAccessibilityRole(.button)
         rowHost.setAccessibilitySelected(isSelected)
         rowHost.setAccessibilityHelp(L("Open Indeed to search and apply for jobs"))
@@ -2944,7 +2945,7 @@ final class DashboardView: NSView, NSTextFieldDelegate, NSSharingServicePickerDe
         icon.widthAnchor.constraint(equalToConstant: Self.sidebarNavIconSize).isActive = true
         icon.heightAnchor.constraint(equalToConstant: Self.sidebarNavIconSize).isActive = true
 
-        let text = NSTextField(labelWithString: AppMarketingLinks.indeedBrandName)
+        let text = NSTextField(labelWithString: AppMarketingLinks.localizedIndeedNavTitle)
         text.font = .systemFont(ofSize: 14, weight: .medium)
         text.textColor = isSelected ? Theme.brandBlue : Theme.secondaryText
         text.refusesFirstResponder = true

+ 3 - 0
App for Indeed/ar.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 17 - 9
App for Indeed/ar.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "الملف الشخصي";
 "Settings" = "الإعدادات";
 "Premium" = "مميز";
-"Indeed" = "Indeed";
+"Indeed" = "إنديد";
 "Open Indeed to search and apply for jobs" = "افتح Indeed للبحث عن الوظائف والتقديم عليها";
 
 // MARK: - لوحة المعلومات / الرئيسية
@@ -79,7 +79,7 @@
 "Purchases restored" = "تمت استعادة المشتريات";
 "Your subscription is active." = "اشتراكك نشط.";
 "No subscription found" = "لم يتم العثور على اشتراك";
-"There was nothing to restore for this Apple ID." = "لا يوجد شيء لاستعادته لمعرف Apple هذا.";
+"There was nothing to restore for this Apple ID." = "لا يوجد شيء لاستعادته لمعرّف Apple هذا.";
 "Something went wrong" = "حدث خطأ ما";
 "That subscription isn’t available from the App Store right now." = "هذا الاشتراك غير متوفر من متجر التطبيقات حالياً.";
 "Unlimited AI job search on Home" = "بحث غير محدود بالذكاء الاصطناعي في الرئيسية";
@@ -121,11 +121,13 @@
 "Language" = "اللغة";
 "Share App" = "مشاركة التطبيق";
 "Check out %@" = "اطّلع على %@";
-"Check out %@ on the Mac App Store." = "اطّلع على %@ في Mac App Store.";
-"Check out %@ on the Mac App Store:\n%@" = "اطّلع على %@ في Mac App Store:\n%@";
+"Check out %@ on the Mac App Store." = "اطّلع على %@ في متجر Mac للتطبيقات.";
+"Check out %@ on the Mac App Store:
+%@" = "اطّلع على %@ في متجر Mac للتطبيقات:
+%@";
 "More Apps" = "تطبيقات أكثر";
 "About" = "حول";
-"Website" = "الموقع الإلكتروني";
+"Website" = "موقع الويب";
 "Support" = "الدعم";
 "Terms of Use" = "شروط الاستخدام";
 "Privacy Policy" = "سياسة الخصوصية";
@@ -210,7 +212,7 @@
 "Design-Based" = "قائم على التصميم";
 "Profession-Based" = "قائم على المهنة";
 "Professional" = "احترافي";
-"Modern" = "حديث";
+"Modern" = "عصري";
 "Creative" = "إبداعي";
 "Minimal" = "بسيط";
 "Executive" = "تنفيذي";
@@ -229,7 +231,7 @@
 "Experience" = "الخبرة";
 "Highlights" = "أبرز النقاط";
 "Summary" = "ملخص";
-"Contact" = "جهات الاتصال";
+"Contact" = "التواصل";
 "Skills" = "المهارات";
 "Tools" = "الأدوات";
 "Languages & more" = "اللغات والمزيد";
@@ -238,7 +240,7 @@
 "Professional Summary" = "الملخص المهني";
 "Selected Experience" = "الخبرة المختارة";
 "Core Competencies" = "الكفاءات الأساسية";
-"Impact" = "التأثير";
+"Impact" = "الأثر";
 "Add contact in your profile" = "أضف جهة اتصال في ملفك الشخصي";
 "Add contact details in your profile" = "أضف تفاصيل الاتصال في ملفك الشخصي";
 "Add a career summary or interests in your profile to populate this column." = "أضف ملخصاً مهنياً أو اهتمامات في ملفك الشخصي لملء هذا العمود.";
@@ -294,7 +296,7 @@
 
 // MARK: - محتوى معاينة السيرة الذاتية التجريبي
 "Sarah Johnson" = "سارة جونسون";
-"Google" = "Google";
+"Google" = "جوجل";
 "Figma" = "Figma";
 "SQL" = "SQL";
 "sarah.johnson@email.com" = "sarah.johnson@email.com";
@@ -382,3 +384,9 @@
 
 // MARK: - متعدد الأسطر
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "أضف معرفات متجر تطبيقات ماك الخاصة بك في إعدادات بناء الهدف:\n• AppStoreAppID — معرف التطبيق الرقمي من App Store Connect\n• AppStoreDeveloperID — معرف المطور الرقمي (لصفحة تطبيقاتك الأخرى)";
+"App for Indeed" = "تطبيق Indeed";
+"About %@" = "حول %@";
+"Hide %@" = "إخفاء %@";
+"Quit %@" = "إنهاء %@";
+"Preferences…" = "التفضيلات…";
+"Assistant is searching" = "المساعد يبحث";

+ 3 - 0
App for Indeed/de.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 17 - 9
App for Indeed/de.lproj/Localizable.strings

@@ -15,7 +15,7 @@
 
 // MARK: - Startstatus
 "Checking your Pro subscription…" = "Überprüfe Ihr Pro-Abonnement…";
-"Loading premium plans from the App Store…" = "Lade Premium-Pläne aus dem App Store…";
+"Loading premium plans from the App Store…" = "Lade Premium-Pläne aus dem Mac App Store…";
 "Preparing your job search workspace…" = "Vorbereitung Ihres Jobsuch-Arbeitsbereichs…";
 "Almost ready…" = "Fast bereit…";
 
@@ -25,8 +25,8 @@
 "CV Maker" = "Lebenslauf-Ersteller";
 "Profile" = "Profil";
 "Settings" = "Einstellungen";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Premium-Bereich";
+"Indeed" = "Jobsuche";
 "Open Indeed to search and apply for jobs" = "Öffnen Sie Indeed, um nach Jobs zu suchen und sich zu bewerben";
 
 // MARK: - Dashboard / Startseite
@@ -75,13 +75,13 @@
 "Restore Purchase" = "Kauf wiederherstellen";
 "You're subscribed" = "Sie sind abonniert";
 "Thank you — Pro features are now available." = "Danke — Pro-Funktionen sind jetzt verfügbar.";
-"Pro" = "Pro";
+"Pro" = "Pro-Version";
 "Purchases restored" = "Käufe wiederhergestellt";
 "Your subscription is active." = "Ihr Abonnement ist aktiv.";
 "No subscription found" = "Kein Abonnement gefunden";
 "There was nothing to restore for this Apple ID." = "Es gab nichts wiederherzustellen für diese Apple-ID.";
 "Something went wrong" = "Etwas ist schiefgelaufen";
-"That subscription isn’t available from the App Store right now." = "Dieses Abonnement ist derzeit nicht im App Store verfügbar.";
+"That subscription isn’t available from the App Store right now." = "Dieses Abonnement ist derzeit nicht im Mac App Store verfügbar.";
 "Unlimited AI job search on Home" = "Unbegrenzte KI-Jobsuche auf Startseite";
 "Save jobs & open listings in-app" = "Jobs speichern und Anzeigen in der App öffnen";
 "CV Maker, profiles & PDF export" = "Lebenslauf-Ersteller, Profile und Dokumentexport";
@@ -121,8 +121,10 @@
 "Language" = "Sprache";
 "Share App" = "App teilen";
 "Check out %@" = "Schau dir %@ an";
-"Check out %@ on the Mac App Store." = "Schau dir %@ im Mac App Store an.";
-"Check out %@ on the Mac App Store:\n%@" = "Schau dir %@ im Mac App Store an:\n%@";
+"Check out %@ on the Mac App Store." = "Entdecken Sie %@ im Mac App Store.";
+"Check out %@ on the Mac App Store:
+%@" = "Entdecken Sie %@ im Mac App Store:
+%@";
 "More Apps" = "Weitere Apps";
 "About" = "Über";
 "Website" = "Webseite";
@@ -183,7 +185,7 @@
 "Duration *" = "Dauer *";
 "Description" = "Beschreibung";
 "e.g., Software Engineer" = "z.B. Softwareentwickler";
-"e.g., Google" = "z.B. Google";
+"e.g., Google" = "z. B. Google";
 "e.g., Jan 2020 - Present" = "z.B. Jan. 2020 - Heute";
 "Describe your responsibilities and achievements..." = "Beschreiben Sie Ihre Verantwortlichkeiten und Erfolge…";
 "Degree / program *" = "Abschluss / Programm *";
@@ -343,7 +345,7 @@
 "We couldn't complete your purchase. Please try again." = "Ihr Kauf konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut.";
 "We couldn't restore your purchases. Please try again." = "Ihre Käufe konnten nicht wiederhergestellt werden. Bitte versuchen Sie es erneut.";
 "Purchase was cancelled." = "Kauf abgebrochen.";
-"This subscription isn't available in your App Store region." = "Dieses Abonnement ist in Ihrer App-Store-Region nicht verfügbar.";
+"This subscription isn't available in your App Store region." = "Dieses Abonnement ist in Ihrer Mac-App-Store-Region nicht verfügbar.";
 "Purchases aren't allowed on this account or device." = "Käufe sind für dieses Konto oder Gerät nicht erlaubt.";
 "This introductory offer isn't available for your account." = "Dieses Einführungsangebot ist für Ihr Konto nicht verfügbar.";
 "The purchase couldn't be verified. Please try again." = "Der Kauf konnte nicht verifiziert werden. Bitte versuchen Sie es erneut.";
@@ -382,3 +384,9 @@
 
 // MARK: - Mehrzeilig
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Fügen Sie Ihre Mac App Store-IDs in den Build-Einstellungen des Ziels hinzu:\n• AppStoreAppID — numerische App-ID aus App Store Connect\n• AppStoreDeveloperID — numerische Entwickler-ID (für Ihre Seite mit anderen Apps)";
+"App for Indeed" = "App für Indeed";
+"About %@" = "Über %@";
+"Hide %@" = "%@ ausblenden";
+"Quit %@" = "%@ beenden";
+"Preferences…" = "Einstellungen…";
+"Assistant is searching" = "Assistent sucht";

+ 3 - 0
App for Indeed/el.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 6 - 0
App for Indeed/el.lproj/Localizable.strings

@@ -381,3 +381,9 @@
 
 // MARK: - Πολλαπλών Γραμμών
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Προσθέστε τα αναγνωριστικά σας του Καταστήματος Εφαρμογών Mac στις ρυθμίσεις κατασκευής του στόχου:\n• AppStoreAppID — αριθμητικό αναγνωριστικό εφαρμογής από τη Σύνδεση Καταστήματος Εφαρμογών\n• AppStoreDeveloperID — αριθμητικό αναγνωριστικό προγραμματιστή (για τη σελίδα με άλλες εφαρμογές σας)";
+"App for Indeed" = "Εφαρμογή για Indeed";
+"About %@" = "Σχετικά με %@";
+"Hide %@" = "Απόκρυψη %@";
+"Quit %@" = "Έξοδος από %@";
+"Preferences…" = "Προτιμήσεις…";
+"Assistant is searching" = "Ο βοηθός αναζητά";

+ 3 - 0
App for Indeed/en.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 7 - 0
App for Indeed/en.lproj/Localizable.strings

@@ -7,6 +7,13 @@
 "Remove" = "Remove";
 "Dismiss" = "Dismiss";
 
+// MARK: - App & Menus
+"About %@" = "About %@";
+"Hide %@" = "Hide %@";
+"Quit %@" = "Quit %@";
+"Preferences…" = "Preferences…";
+"Assistant is searching" = "Assistant is searching";
+
 // MARK: - Launch Screen
 "AI-POWERED" = "AI-POWERED";
 "Find your perfect job with the power of AI." = "Find your perfect job with the power of AI.";

+ 3 - 0
App for Indeed/es-MX.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 10 - 4
App for Indeed/es-MX.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Creador de CV";
 "Profile" = "Perfil";
 "Settings" = "Configuración";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Plan premium";
+"Indeed" = "Empleos";
 "Open Indeed to search and apply for jobs" = "Abre Indeed para buscar y postularte a empleos";
 
 // MARK: - Tablero / Inicio
@@ -75,11 +75,11 @@
 "Restore Purchase" = "Restaurar Compra";
 "You're subscribed" = "Estás suscrito";
 "Thank you — Pro features are now available." = "Gracias — las funciones Pro ya están disponibles.";
-"Pro" = "Pro";
+"Pro" = "Profesional";
 "Purchases restored" = "Compras restauradas";
 "Your subscription is active." = "Tu suscripción está activa.";
 "No subscription found" = "No se encontró ninguna suscripción";
-"There was nothing to restore for this Apple ID." = "No había nada que restaurar para este Apple ID.";
+"There was nothing to restore for this Apple ID." = "No había nada que restaurar para este ID de Apple.";
 "Something went wrong" = "Algo salió mal";
 "That subscription isn’t available from the App Store right now." = "Esa suscripción no está disponible en la App Store en este momento.";
 "Unlimited AI job search on Home" = "Búsqueda de empleo con IA ilimitada en Inicio";
@@ -382,3 +382,9 @@
 
 // MARK: - Multilínea
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Agrega tus IDs de Mac App Store en la configuración de compilación del destino:\n• AppStoreAppID — ID numérico de la app desde App Store Connect\n• AppStoreDeveloperID — ID numérico del desarrollador (para tu página de otras apps)";
+"App for Indeed" = "App para Indeed";
+"About %@" = "Acerca de %@";
+"Hide %@" = "Ocultar %@";
+"Quit %@" = "Salir de %@";
+"Preferences…" = "Preferencias…";
+"Assistant is searching" = "El asistente está buscando";

+ 3 - 0
App for Indeed/es.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/es.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Creador de CV";
 "Profile" = "Perfil";
 "Settings" = "Ajustes";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Plan premium";
+"Indeed" = "Empleos";
 "Open Indeed to search and apply for jobs" = "Abre Indeed para buscar y solicitar empleos";
 
 // MARK: - Panel / Inicio
@@ -79,7 +79,7 @@
 "Purchases restored" = "Compras restauradas";
 "Your subscription is active." = "Tu suscripción está activa.";
 "No subscription found" = "No se encontró ninguna suscripción";
-"There was nothing to restore for this Apple ID." = "No había nada que restaurar para este Apple ID.";
+"There was nothing to restore for this Apple ID." = "No había nada que restaurar para este ID de Apple.";
 "Something went wrong" = "Algo salió mal";
 "That subscription isn’t available from the App Store right now." = "Esa suscripción no está disponible en la App Store ahora mismo.";
 "Unlimited AI job search on Home" = "Búsqueda de empleo con IA ilimitada en Inicio";
@@ -382,3 +382,9 @@
 
 // MARK: - Multilínea
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Añade tus IDs de Mac App Store en la configuración de compilación del destino:\n• AppStoreAppID — ID numérico de la app desde App Store Connect\n• AppStoreDeveloperID — ID numérico del desarrollador (para tu página de otras apps)";
+"App for Indeed" = "App para Indeed";
+"About %@" = "Acerca de %@";
+"Hide %@" = "Ocultar %@";
+"Quit %@" = "Salir de %@";
+"Preferences…" = "Preferencias…";
+"Assistant is searching" = "El asistente está buscando";

+ 3 - 0
App for Indeed/fi.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/fi.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "Profiili";
 "Settings" = "Asetukset";
 "Premium" = "Eksklusiivinen";
-"Indeed" = "Indeed";
+"Indeed" = "Työpaikat";
 "Open Indeed to search and apply for jobs" = "Avaa Indeed hakeaksesi työpaikkoja";
 
 // MARK: - Hallintapaneeli / Koti
@@ -267,7 +267,7 @@
 "Clear Path" = "Selkeä polku";
 "Pinstripe" = "Hiusraita";
 "Briefing" = "Lyhytinfo";
-"Quorum" = "Päätösvaltaisuus";
+"Quorum" = "Kvoorumi";
 "Docket" = "Rooliluettelo";
 "Conduit" = "Johdin";
 "Principal" = "Pää";
@@ -284,7 +284,7 @@
 "Bloom" = "Kukinta";
 "Studio" = "Studio";
 "Kite" = "Leija";
-"Regent" = "Valtionhoitaja";
+"Regent" = "Regentti";
 "Monarch" = "Monarkki";
 "Sterling" = "Sterling";
 "Summit" = "Huippukokous";
@@ -382,3 +382,9 @@
 
 // MARK: - Moniriviset
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Lisää Mac App Store -tunnukset kohteen koontiasetuksiin:\n• AppStoreAppID — numeerinen sovellustunnus App Store Connectistä\n• AppStoreDeveloperID — numeerinen kehittäjätunnus (sivullesi muille sovelluksille)";
+"App for Indeed" = "Sovellus Indeedille";
+"About %@" = "Tietoja: %@";
+"Hide %@" = "Piilota %@";
+"Quit %@" = "Lopeta %@";
+"Preferences…" = "Asetukset…";
+"Assistant is searching" = "Avustaja hakee";

+ 3 - 0
App for Indeed/fr-CA.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 12 - 6
App for Indeed/fr-CA.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Créateur de CV";
 "Profile" = "Profil";
 "Settings" = "Réglages";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Abonnement premium";
+"Indeed" = "Emplois";
 "Open Indeed to search and apply for jobs" = "Ouvrez Indeed pour chercher et postuler à des emplois";
 
 // MARK: - Tableau de bord / Accueil
@@ -63,11 +63,11 @@
 "Match jobs that fit your skills" = "Trouvez des emplois qui correspondent à vos compétences";
 
 // MARK: - Pro / Abonnement
-"Upgrade to Pro" = "Passer à Pro";
-"You're on Pro" = "Vous êtes sur Pro";
+"Upgrade to Pro" = "Passer à la version Pro";
+"You're on Pro" = "Vous utilisez la version Pro";
 "Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Correspondances IA illimitées, alertes intelligentes et préparation aux entrevues — tout au même endroit.";
 "Manage billing, renewals, and plans in Premium." = "Gérez la facturation, les renouvellements et les forfaits dans Premium.";
-"Try Pro" = "Essayer Pro";
+"Try Pro" = "Essayer la version Pro";
 "Manage Subscription" = "Gérer l'abonnement";
 "Premium Plans" = "Forfaits Premium";
 "Unlock unlimited access to premium tools and boost your productivity." = "Débloquez un accès illimité aux outils premium et boostez votre productivité.";
@@ -75,7 +75,7 @@
 "Restore Purchase" = "Restaurer l'achat";
 "You're subscribed" = "Vous êtes abonné";
 "Thank you — Pro features are now available." = "Merci — les fonctionnalités Pro sont maintenant disponibles.";
-"Pro" = "Pro";
+"Pro" = "Version Pro";
 "Purchases restored" = "Achats restaurés";
 "Your subscription is active." = "Votre abonnement est actif.";
 "No subscription found" = "Aucun abonnement trouvé";
@@ -382,3 +382,9 @@
 
 // MARK: - Multiligne
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Ajoutez vos identifiants Mac App Store dans les paramètres de build de la cible :\n• AppStoreAppID — identifiant numérique de l'application depuis App Store Connect\n• AppStoreDeveloperID — identifiant numérique du développeur (pour votre page d'autres applications)";
+"App for Indeed" = "App pour Indeed";
+"About %@" = "À propos de %@";
+"Hide %@" = "Masquer %@";
+"Quit %@" = "Quitter %@";
+"Preferences…" = "Préférences…";
+"Assistant is searching" = "L’assistant recherche";

+ 3 - 0
App for Indeed/fr.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 12 - 6
App for Indeed/fr.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Créateur de CV";
 "Profile" = "Profil";
 "Settings" = "Paramètres";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Abonnement premium";
+"Indeed" = "Emplois";
 "Open Indeed to search and apply for jobs" = "Ouvrez Indeed pour rechercher et postuler à des emplois";
 
 // MARK: - Tableau de bord / Accueil
@@ -63,11 +63,11 @@
 "Match jobs that fit your skills" = "Trouvez des emplois qui correspondent à vos compétences";
 
 // MARK: - Pro / Abonnement
-"Upgrade to Pro" = "Passer à Pro";
-"You're on Pro" = "Vous êtes sur Pro";
+"Upgrade to Pro" = "Passer à la version Pro";
+"You're on Pro" = "Vous utilisez la version Pro";
 "Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Correspondances IA illimitées, alertes intelligentes et préparation aux entretiens — tout au même endroit.";
 "Manage billing, renewals, and plans in Premium." = "Gérez la facturation, les renouvellements et les forfaits dans Premium.";
-"Try Pro" = "Essayer Pro";
+"Try Pro" = "Essayer la version Pro";
 "Manage Subscription" = "Gérer l'abonnement";
 "Premium Plans" = "Forfaits Premium";
 "Unlock unlimited access to premium tools and boost your productivity." = "Débloquez un accès illimité aux outils premium et boostez votre productivité.";
@@ -75,7 +75,7 @@
 "Restore Purchase" = "Restaurer l'achat";
 "You're subscribed" = "Vous êtes abonné";
 "Thank you — Pro features are now available." = "Merci — les fonctionnalités Pro sont maintenant disponibles.";
-"Pro" = "Pro";
+"Pro" = "Version Pro";
 "Purchases restored" = "Achats restaurés";
 "Your subscription is active." = "Votre abonnement est actif.";
 "No subscription found" = "Aucun abonnement trouvé";
@@ -382,3 +382,9 @@
 
 // MARK: - Multiligne
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Ajoutez vos identifiants Mac App Store dans les paramètres de build de la cible :\n• AppStoreAppID — identifiant numérique de l'application depuis App Store Connect\n• AppStoreDeveloperID — identifiant numérique du développeur (pour votre page d'autres applications)";
+"App for Indeed" = "App pour Indeed";
+"About %@" = "À propos de %@";
+"Hide %@" = "Masquer %@";
+"Quit %@" = "Quitter %@";
+"Preferences…" = "Réglages…";
+"Assistant is searching" = "L’assistant recherche";

+ 3 - 0
App for Indeed/he.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/he.lproj/Localizable.strings

@@ -25,7 +25,7 @@
 "Profile" = "פרופיל";
 "Settings" = "הגדרות";
 "Premium" = "פרימיום";
-"Indeed" = "Indeed";
+"Indeed" = "אינדיד";
 "Open Indeed to search and apply for jobs" = "פתח את Indeed כדי לחפש ולהגיש מועמדות למשרות";
 
 // MARK: - לוח בקרה / בית
@@ -78,7 +78,7 @@
 "Purchases restored" = "רכישות שוחזרו";
 "Your subscription is active." = "המנוי שלך פעיל.";
 "No subscription found" = "לא נמצא מנוי";
-"There was nothing to restore for this Apple ID." = "לא היה מה לשחזר עבור Apple ID זה.";
+"There was nothing to restore for this Apple ID." = "לא היה מה לשחזר עבור מזהה Apple זה.";
 "Something went wrong" = "משהו השתבש";
 "That subscription isn’t available from the App Store right now." = "מנוי זה אינו זמין מה-App Store כרגע.";
 "Unlimited AI job search on Home" = "חיפוש עבודה בינה מלאכותית בלתי מוגבל בבית";
@@ -293,7 +293,7 @@
 
 // MARK: - תוכן תצוגה מקדימה להדגמת קורות חיים
 "Sarah Johnson" = "שרה כהן";
-"Google" = "Google";
+"Google" = "גוגל";
 "Figma" = "Figma";
 "SQL" = "SQL";
 "sarah.johnson@email.com" = "sarah.cohen@example.com";
@@ -381,3 +381,9 @@
 
 // MARK: - רב-שורתי
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "הוסף את מזהי Mac App Store שלך בהגדרות הבנייה של היעד:\n• AppStoreAppID — מזהה אפליקציה מספרי מ-App Store Connect\n• AppStoreDeveloperID — מזהה מפתח מספרי (עבור דף האפליקציות האחרות שלך)";
+"App for Indeed" = "אפליקציה עבור Indeed";
+"About %@" = "אודות %@";
+"Hide %@" = "הסתר %@";
+"Quit %@" = "צא מ-%@";
+"Preferences…" = "העדפות…";
+"Assistant is searching" = "העוזר מחפש";

+ 3 - 0
App for Indeed/it.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 11 - 5
App for Indeed/it.lproj/Localizable.strings

@@ -24,8 +24,8 @@
 "CV Maker" = "Creatore CV";
 "Profile" = "Profilo";
 "Settings" = "Impostazioni";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Abbonamento premium";
+"Indeed" = "Lavoro";
 "Open Indeed to search and apply for jobs" = "Apri Indeed per cercare e candidarti ai lavori";
 
 // MARK: - Dashboard / Home
@@ -78,7 +78,7 @@
 "Purchases restored" = "Acquisti ripristinati";
 "Your subscription is active." = "Il tuo abbonamento è attivo.";
 "No subscription found" = "Nessun abbonamento trovato";
-"There was nothing to restore for this Apple ID." = "Non c'era nulla da ripristinare per questo Apple ID.";
+"There was nothing to restore for this Apple ID." = "Non c'era nulla da ripristinare per questo ID Apple.";
 "Something went wrong" = "Qualcosa è andato storto";
 "That subscription isn’t available from the App Store right now." = "Questo abbonamento non è disponibile sull'App Store al momento.";
 "Unlimited AI job search on Home" = "Ricerca lavoro IA illimitata su Home";
@@ -124,7 +124,7 @@
 "Check out %@ on the Mac App Store:\n%@" = "Scopri %@ sul Mac App Store:\n%@";
 "More Apps" = "Altre App";
 "About" = "Informazioni";
-"Website" = "Sito Web";
+"Website" = "Sito web";
 "Support" = "Supporto";
 "Terms of Use" = "Termini di Utilizzo";
 "Privacy Policy" = "Informativa sulla Privacy";
@@ -228,7 +228,7 @@
 "Experience" = "Esperienza";
 "Highlights" = "Punti salienti";
 "Summary" = "Riepilogo";
-"Contact" = "Contatto";
+"Contact" = "Contatti";
 "Skills" = "Competenze";
 "Tools" = "Strumenti";
 "Languages & more" = "Lingue e altro";
@@ -381,3 +381,9 @@
 
 // MARK: - Multilinea
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Aggiungi i tuoi ID Mac App Store nelle impostazioni di build del target:\n• AppStoreAppID — ID numerico dell'app da App Store Connect\n• AppStoreDeveloperID — ID numerico dello sviluppatore (per la tua pagina delle altre app)";
+"App for Indeed" = "App per Indeed";
+"About %@" = "Informazioni su %@";
+"Hide %@" = "Nascondi %@";
+"Quit %@" = "Esci da %@";
+"Preferences…" = "Preferenze…";
+"Assistant is searching" = "L'assistente sta cercando";

+ 3 - 0
App for Indeed/ko.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 8 - 2
App for Indeed/ko.lproj/Localizable.strings

@@ -79,7 +79,7 @@
 "Purchases restored" = "구매가 복원되었습니다";
 "Your subscription is active." = "구독이 활성화되어 있습니다.";
 "No subscription found" = "구독을 찾을 수 없습니다";
-"There was nothing to restore for this Apple ID." = "이 Apple ID에 복원할 구독이 없습니다.";
+"There was nothing to restore for this Apple ID." = "이 Apple 계정에 복원할 구독이 없습니다.";
 "Something went wrong" = "문제가 발생했습니다";
 "That subscription isn’t available from the App Store right now." = "현재 App Store에서 해당 구독을 사용할 수 없습니다.";
 "Unlimited AI job search on Home" = "홈에서 무제한 AI 채용검색";
@@ -294,7 +294,7 @@
 
 // MARK: - 이력서 데모 미리보기 콘텐츠
 "Sarah Johnson" = "김서연";
-"Google" = "Google";
+"Google" = "구글";
 "Figma" = "Figma";
 "SQL" = "SQL";
 "sarah.johnson@email.com" = "hong.yejin@example.com";
@@ -382,3 +382,9 @@
 
 // MARK: - 여러 줄
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "대상의 빌드 설정에 Mac App Store ID를 추가하세요:\n• AppStoreAppID — App Store Connect의 숫자 앱 ID\n• AppStoreDeveloperID — 숫자 개발자 ID (다른 앱 페이지용)";
+"App for Indeed" = "Indeed용 앱";
+"About %@" = "%@ 정보";
+"Hide %@" = "%@ 숨기기";
+"Quit %@" = "%@ 종료";
+"Preferences…" = "환경설정…";
+"Assistant is searching" = "어시스턴트가 검색 중";

+ 3 - 0
App for Indeed/nb.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/nb.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "CV-maker";
 "Profile" = "Profil";
 "Settings" = "Innstillinger";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Premium-abonnement";
+"Indeed" = "Stillinger";
 "Open Indeed to search and apply for jobs" = "Åpne Indeed for å søke etter og søke på jobber";
 
 // MARK: - Dashbord / Hjem
@@ -267,7 +267,7 @@
 "Clear Path" = "Klar sti";
 "Pinstripe" = "Smale striper";
 "Briefing" = "Briefing";
-"Quorum" = "Kvorum";
+"Quorum" = "Korum";
 "Docket" = "Saksliste";
 "Conduit" = "Kanal";
 "Principal" = "Hoved";
@@ -382,3 +382,9 @@
 
 // MARK: - Flerlinjet
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Legg til Mac App-butikk-ID-ene dine i byggeinnstillingene for målet:\n• AppStoreAppID — numerisk app-ID fra App-butikk-tilkobling\n• AppStoreDeveloperID — numerisk utvikler-ID (for din side med andre apper)";
+"App for Indeed" = "App for Indeed";
+"About %@" = "Om %@";
+"Hide %@" = "Skjul %@";
+"Quit %@" = "Avslutt %@";
+"Preferences…" = "Innstillinger…";
+"Assistant is searching" = "Assistenten søker";

+ 3 - 0
App for Indeed/nl.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 12 - 6
App for Indeed/nl.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "Profiel";
 "Settings" = "Instellingen";
 "Premium" = "Exclusief";
-"Indeed" = "Indeed";
+"Indeed" = "Vacatures";
 "Open Indeed to search and apply for jobs" = "Open Indeed om vacatures te zoeken en te solliciteren";
 
 // MARK: - Dashboard / Start
@@ -51,8 +51,8 @@
 "Find roles similar to: " = "Zoek functies vergelijkbaar met: ";
 "Find jobs at company: " = "Zoek vacatures bij bedrijf: ";
 "Find jobs that require skill: " = "Zoek vacatures die vaardigheid vereisen: ";
-"match" = "match";
-"matches" = "matches";
+"match" = "overeenkomst";
+"matches" = "overeenkomsten";
 
 // MARK: - Functiesnelkoppelingen
 "Role" = "Functie";
@@ -125,7 +125,7 @@
 "Check out %@ on the Mac App Store:\n%@" = "Bekijk %@ in de Mac App Store:\n%@";
 "More Apps" = "Meer apps";
 "About" = "Over";
-"Website" = "Website";
+"Website" = "Webpagina";
 "Support" = "Ondersteuning";
 "Terms of Use" = "Gebruiksvoorwaarden";
 "Privacy Policy" = "Privacybeleid";
@@ -229,7 +229,7 @@
 "Experience" = "Ervaring";
 "Highlights" = "Hoogtepunten";
 "Summary" = "Samenvatting";
-"Contact" = "Contact";
+"Contact" = "Contactgegevens";
 "Skills" = "Vaardigheden";
 "Tools" = "Hulpmiddelen";
 "Languages & more" = "Talen en meer";
@@ -238,7 +238,7 @@
 "Professional Summary" = "Professionele samenvatting";
 "Selected Experience" = "Geselecteerde ervaring";
 "Core Competencies" = "Kerncompetenties";
-"Impact" = "Impact";
+"Impact" = "Prestaties";
 "Add contact in your profile" = "Voeg contact toe in uw profiel";
 "Add contact details in your profile" = "Voeg contactgegevens toe in uw profiel";
 "Add a career summary or interests in your profile to populate this column." = "Voeg een carrièresamenvatting of interesses toe in uw profiel om deze kolom te vullen.";
@@ -382,3 +382,9 @@
 
 // MARK: - Meerregelig
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Voeg uw Mac App Store-ID's toe in de build-instellingen van het doel:\n• AppStoreAppID — numeriek app-ID uit App Store Connect\n• AppStoreDeveloperID — numeriek ontwikkelaars-ID (voor uw pagina met andere apps)";
+"App for Indeed" = "App voor Indeed";
+"About %@" = "Over %@";
+"Hide %@" = "Verberg %@";
+"Quit %@" = "Sluit %@ af";
+"Preferences…" = "Voorkeuren…";
+"Assistant is searching" = "Assistent zoekt";

+ 3 - 0
App for Indeed/pl.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/pl.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Kreator CV";
 "Profile" = "Profil";
 "Settings" = "Ustawienia";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Abonament premium";
+"Indeed" = "Oferty pracy";
 "Open Indeed to search and apply for jobs" = "Otwórz Indeed, aby wyszukiwać i aplikować na oferty";
 
 // MARK: - Pulpit / Strona główna
@@ -125,7 +125,7 @@
 "Check out %@ on the Mac App Store:\n%@" = "Sprawdź %@ w Mac App Store:\n%@";
 "More Apps" = "Więcej aplikacji";
 "About" = "O aplikacji";
-"Website" = "Strona internetowa";
+"Website" = "Witryna";
 "Support" = "Wsparcie";
 "Terms of Use" = "Warunki użytkowania";
 "Privacy Policy" = "Polityka prywatności";
@@ -382,3 +382,9 @@
 
 // MARK: - Wieloliniowe
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Dodaj swoje identyfikatory Mac App Store w ustawieniach kompilacji celu:\n• AppStoreAppID — numeryczny identyfikator aplikacji z App Store Connect\n• AppStoreDeveloperID — numeryczny identyfikator programisty (dla strony z innymi aplikacjami)";
+"App for Indeed" = "Aplikacja dla Indeed";
+"About %@" = "Informacje o %@";
+"Hide %@" = "Ukryj %@";
+"Quit %@" = "Zakończ %@";
+"Preferences…" = "Ustawienia…";
+"Assistant is searching" = "Asystent wyszukuje";

+ 3 - 0
App for Indeed/pt-BR.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 9 - 3
App for Indeed/pt-BR.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "Criador de Currículo";
 "Profile" = "Perfil";
 "Settings" = "Configurações";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Plano premium";
+"Indeed" = "Vagas";
 "Open Indeed to search and apply for jobs" = "Abra o Indeed para pesquisar e se candidatar a vagas";
 
 // MARK: - Dashboard / Início
@@ -79,7 +79,7 @@
 "Purchases restored" = "Compras restauradas";
 "Your subscription is active." = "Sua assinatura está ativa.";
 "No subscription found" = "Nenhuma assinatura encontrada";
-"There was nothing to restore for this Apple ID." = "Não havia nada para restaurar para este Apple ID.";
+"There was nothing to restore for this Apple ID." = "Não havia nada para restaurar para este ID Apple.";
 "Something went wrong" = "Algo deu errado";
 "That subscription isn’t available from the App Store right now." = "Essa assinatura não está disponível na App Store no momento.";
 "Unlimited AI job search on Home" = "Busca de emprego por IA ilimitada no Início";
@@ -382,3 +382,9 @@
 
 // MARK: - Multilinha
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Adicione seus IDs da Mac App Store nas configurações de build do alvo:\n• AppStoreAppID — ID numérico do app do App Store Connect\n• AppStoreDeveloperID — ID numérico do desenvolvedor (para sua página de outros apps)";
+"App for Indeed" = "App para Indeed";
+"About %@" = "Sobre %@";
+"Hide %@" = "Ocultar %@";
+"Quit %@" = "Encerrar %@";
+"Preferences…" = "Preferências…";
+"Assistant is searching" = "O assistente está pesquisando";

+ 3 - 0
App for Indeed/ru.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 11 - 5
App for Indeed/ru.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "Профиль";
 "Settings" = "Настройки";
 "Premium" = "Премиум";
-"Indeed" = "Indeed";
+"Indeed" = "Индид";
 "Open Indeed to search and apply for jobs" = "Откройте Indeed, чтобы искать и откликаться на вакансии";
 
 // MARK: - Dashboard / Home
@@ -52,7 +52,7 @@
 "Find jobs at company: " = "Найти вакансии в компании: ";
 "Find jobs that require skill: " = "Найти вакансии, требующие навык: ";
 "match" = "совпадение";
-"matches" = "совпадений";
+"matches" = "совпадения";
 
 // MARK: - Feature Shortcuts
 "Role" = "Должность";
@@ -75,11 +75,11 @@
 "Restore Purchase" = "Восстановить покупку";
 "You're subscribed" = "Вы подписаны";
 "Thank you — Pro features are now available." = "Спасибо — функции Pro теперь доступны.";
-"Pro" = "Pro";
+"Pro" = "Про";
 "Purchases restored" = "Покупки восстановлены";
 "Your subscription is active." = "Ваша подписка активна.";
 "No subscription found" = "Подписка не найдена";
-"There was nothing to restore for this Apple ID." = "Нечего восстанавливать для этого Apple ID.";
+"There was nothing to restore for this Apple ID." = "Нечего восстанавливать для этой учётной записи Apple.";
 "Something went wrong" = "Что-то пошло не так";
 "That subscription isn’t available from the App Store right now." = "Эта подписка сейчас недоступна в App Store.";
 "Unlimited AI job search on Home" = "Неограниченный поиск работы с ИИ на Главной";
@@ -125,7 +125,7 @@
 "Check out %@ on the Mac App Store:\n%@" = "Посмотрите %@ в Mac App Store:\n%@";
 "More Apps" = "Другие приложения";
 "About" = "О приложении";
-"Website" = "Сайт";
+"Website" = "Веб-сайт";
 "Support" = "Поддержка";
 "Terms of Use" = "Условия использования";
 "Privacy Policy" = "Политика конфиденциальности";
@@ -382,3 +382,9 @@
 
 // MARK: - Multi-line
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Добавьте свои идентификаторы Mac App Store в настройки сборки цели:\n• AppStoreAppID — числовой идентификатор приложения из App Store Connect\n• AppStoreDeveloperID — числовой идентификатор разработчика (для страницы с вашими другими приложениями)";
+"App for Indeed" = "Приложение для Indeed";
+"About %@" = "О программе «%@»";
+"Hide %@" = "Скрыть %@";
+"Quit %@" = "Завершить %@";
+"Preferences…" = "Настройки…";
+"Assistant is searching" = "Помощник ищет";

+ 3 - 0
App for Indeed/sv.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 15 - 9
App for Indeed/sv.lproj/Localizable.strings

@@ -25,8 +25,8 @@
 "CV Maker" = "CV-skapare";
 "Profile" = "Profil";
 "Settings" = "Inställningar";
-"Premium" = "Premium";
-"Indeed" = "Indeed";
+"Premium" = "Premium-abonnemang";
+"Indeed" = "Jobb";
 "Open Indeed to search and apply for jobs" = "Öppna Indeed för att söka och söka jobb";
 
 // MARK: - Instrumentpanel / Hem
@@ -51,8 +51,8 @@
 "Find roles similar to: " = "Hitta roller liknande: ";
 "Find jobs at company: " = "Hitta jobb på företag: ";
 "Find jobs that require skill: " = "Hitta jobb som kräver färdighet: ";
-"match" = "matchning";
-"matches" = "matchningar";
+"match" = "träff";
+"matches" = "träffar";
 
 // MARK: - Funktionsgenvägar
 "Role" = "Roll";
@@ -63,11 +63,11 @@
 "Match jobs that fit your skills" = "Matcha jobb som passar dina färdigheter";
 
 // MARK: - Pro / Prenumeration
-"Upgrade to Pro" = "Uppgradera till Pro";
-"You're on Pro" = "Du använder Pro";
+"Upgrade to Pro" = "Uppgradera till Pro-versionen";
+"You're on Pro" = "Du har Pro-versionen";
 "Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Obegränsade AI-matchningar, smarta aviseringar och intervjuförberedelser — allt på ett ställe.";
 "Manage billing, renewals, and plans in Premium." = "Hantera fakturering, förnyelser och planer i Premium.";
-"Try Pro" = "Prova Pro";
+"Try Pro" = "Prova Pro-versionen";
 "Manage Subscription" = "Hantera prenumeration";
 "Premium Plans" = "Premiumplaner";
 "Unlock unlimited access to premium tools and boost your productivity." = "Lås upp obegränsad tillgång till premiumverktyg och öka din produktivitet.";
@@ -75,7 +75,7 @@
 "Restore Purchase" = "Återställ köp";
 "You're subscribed" = "Du är prenumerant";
 "Thank you — Pro features are now available." = "Tack — Pro-funktioner är nu tillgängliga.";
-"Pro" = "Pro";
+"Pro" = "Pro-version";
 "Purchases restored" = "Köp återställda";
 "Your subscription is active." = "Din prenumeration är aktiv.";
 "No subscription found" = "Ingen prenumeration hittades";
@@ -267,7 +267,7 @@
 "Clear Path" = "Klar väg";
 "Pinstripe" = "Smala ränder";
 "Briefing" = "Sammanfattning";
-"Quorum" = "Kvorum";
+"Quorum" = "Korum";
 "Docket" = "Diarium";
 "Conduit" = "Ledning";
 "Principal" = "Ledande";
@@ -382,3 +382,9 @@
 
 // MARK: - Flerradig
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Lägg till dina Mac App Store-ID:n i målets bygginställningar:\n• AppStoreAppID — numeriskt app-ID från App Store Connect\n• AppStoreDeveloperID — numeriskt utvecklar-ID (för din sida med andra appar)";
+"App for Indeed" = "App för Indeed";
+"About %@" = "Om %@";
+"Hide %@" = "Dölj %@";
+"Quit %@" = "Avsluta %@";
+"Preferences…" = "Inställningar…";
+"Assistant is searching" = "Assistenten söker";

+ 3 - 0
App for Indeed/uk.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 8 - 2
App for Indeed/uk.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "Профіль";
 "Settings" = "Налаштування";
 "Premium" = "Преміальний";
-"Indeed" = "Indeed";
+"Indeed" = "Індід";
 "Open Indeed to search and apply for jobs" = "Відкрийте Indeed, щоб шукати та відгукуватися на вакансії";
 
 // MARK: - Панель приладів / Головна
@@ -125,7 +125,7 @@
 "Check out %@ on the Mac App Store:\n%@" = "Перегляньте %@ у Mac App Store:\n%@";
 "More Apps" = "Більше додатків";
 "About" = "Про додаток";
-"Website" = "Веб-сайт";
+"Website" = "Вебсайт";
 "Support" = "Підтримка";
 "Terms of Use" = "Умови використання";
 "Privacy Policy" = "Політика конфіденційності";
@@ -382,3 +382,9 @@
 
 // MARK: - Багаторядкові
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Додайте свої ідентифікатори Mac App Store у налаштуваннях збірки цілі:\n• AppStoreAppID — числовий ідентифікатор додатка з App Store Connect\n• AppStoreDeveloperID — числовий ідентифікатор розробника (для вашої сторінки з іншими додатками)";
+"App for Indeed" = "Додаток для Indeed";
+"About %@" = "Про %@";
+"Hide %@" = "Сховати %@";
+"Quit %@" = "Завершити %@";
+"Preferences…" = "Налаштування…";
+"Assistant is searching" = "Помічник шукає";

+ 3 - 0
App for Indeed/vi.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 8 - 2
App for Indeed/vi.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "Hồ sơ";
 "Settings" = "Cài đặt";
 "Premium" = "Cao cấp";
-"Indeed" = "Indeed";
+"Indeed" = "Việc làm";
 "Open Indeed to search and apply for jobs" = "Mở Indeed để tìm kiếm và ứng tuyển việc làm";
 
 // MARK: - Bảng điều khiển / Trang chủ
@@ -79,7 +79,7 @@
 "Purchases restored" = "Đã khôi phục giao dịch";
 "Your subscription is active." = "Đăng ký của bạn đang hoạt động.";
 "No subscription found" = "Không tìm thấy đăng ký nào";
-"There was nothing to restore for this Apple ID." = "Không có gì để khôi phục cho Apple ID này.";
+"There was nothing to restore for this Apple ID." = "Không có gì để khôi phục cho ID Apple này.";
 "Something went wrong" = "Đã xảy ra lỗi";
 "That subscription isn’t available from the App Store right now." = "Gói đăng ký đó hiện không khả dụng từ App Store.";
 "Unlimited AI job search on Home" = "Tìm kiếm việc làm bằng AI không giới hạn trên Trang chủ";
@@ -382,3 +382,9 @@
 
 // MARK: - Nhiều dòng
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Thêm ID Mac App Store của bạn trong cài đặt bản dựng của mục tiêu:\n• AppStoreAppID — ID ứng dụng dạng số từ App Store Connect\n• AppStoreDeveloperID — ID nhà phát triển dạng số (cho trang ứng dụng khác của bạn)";
+"App for Indeed" = "Ứng dụng cho Indeed";
+"About %@" = "Giới thiệu về %@";
+"Hide %@" = "Ẩn %@";
+"Quit %@" = "Thoát %@";
+"Preferences…" = "Tùy chọn…";
+"Assistant is searching" = "Trợ lý đang tìm kiếm";

+ 3 - 0
App for Indeed/zh-Hans.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 12 - 4
App for Indeed/zh-Hans.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "个人资料";
 "Settings" = "设置";
 "Premium" = "高级版";
-"Indeed" = "Indeed";
+"Indeed" = "英迪";
 "Open Indeed to search and apply for jobs" = "打开 Indeed 搜索并申请工作";
 
 // MARK: - 仪表盘 / 首页
@@ -79,7 +79,7 @@
 "Purchases restored" = "购买已恢复";
 "Your subscription is active." = "您的订阅有效。";
 "No subscription found" = "未找到订阅";
-"There was nothing to restore for this Apple ID." = "此 Apple ID 没有可恢复的内容。";
+"There was nothing to restore for this Apple ID." = "此 Apple 账户没有可恢复的内容。";
 "Something went wrong" = "出错了";
 "That subscription isn’t available from the App Store right now." = "该订阅目前无法从 App Store 获得。";
 "Unlimited AI job search on Home" = "首页无限人工智能工作搜索";
@@ -121,8 +121,10 @@
 "Language" = "语言";
 "Share App" = "分享应用";
 "Check out %@" = "看看 %@";
-"Check out %@ on the Mac App Store." = "在 Mac App Store 看看 %@。";
-"Check out %@ on the Mac App Store:\n%@" = "在 Mac App Store 看看 %@:\n%@";
+"Check out %@ on the Mac App Store." = "在 Mac App Store 中查看%@。";
+"Check out %@ on the Mac App Store:
+%@" = "在 Mac App Store 中查看%@:
+%@";
 "More Apps" = "更多应用";
 "About" = "关于";
 "Website" = "网站";
@@ -382,3 +384,9 @@
 
 // MARK: - 多行文本
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "在目标的构建设置中添加您的 Mac App Store ID:\n• AppStoreAppID — 来自 App Store Connect 的数字应用 ID\n• AppStoreDeveloperID — 数字开发者 ID(用于您的其他应用页面)";
+"App for Indeed" = "Indeed 应用";
+"About %@" = "关于%@";
+"Hide %@" = "隐藏%@";
+"Quit %@" = "退出%@";
+"Preferences…" = "偏好设置…";
+"Assistant is searching" = "助手正在搜索";

+ 3 - 0
App for Indeed/zh-Hant.lproj/InfoPlist.strings

@@ -0,0 +1,3 @@
+/* Official app name — not localized */
+"CFBundleDisplayName" = "App for Indeed";
+"CFBundleName" = "App for Indeed";

+ 13 - 7
App for Indeed/zh-Hant.lproj/Localizable.strings

@@ -26,7 +26,7 @@
 "Profile" = "個人資料";
 "Settings" = "設定";
 "Premium" = "高級版";
-"Indeed" = "Indeed";
+"Indeed" = "英迪";
 "Open Indeed to search and apply for jobs" = "開啟 Indeed 搜尋並申請工作";
 
 // MARK: - 儀表板 / 首頁
@@ -51,8 +51,8 @@
 "Find roles similar to: " = "尋找類似職位:";
 "Find jobs at company: " = "尋找公司職位:";
 "Find jobs that require skill: " = "尋找需要該技能的工作:";
-"match" = "配對";
-"matches" = "配對";
+"match" = "相符";
+"matches" = "相符";
 
 // MARK: - 功能捷徑
 "Role" = "職位";
@@ -79,7 +79,7 @@
 "Purchases restored" = "購買已回復";
 "Your subscription is active." = "您的訂閱有效。";
 "No subscription found" = "未找到訂閱";
-"There was nothing to restore for this Apple ID." = "此 Apple ID 沒有可回復的內容。";
+"There was nothing to restore for this Apple ID." = "此 Apple 帳號沒有可回復的內容。";
 "Something went wrong" = "出了點問題";
 "That subscription isn’t available from the App Store right now." = "該訂閱目前無法從 App Store 取得。";
 "Unlimited AI job search on Home" = "首頁無限人工智慧工作搜尋";
@@ -94,7 +94,7 @@
 "Balanced for regular productivity" = "為常規生產力平衡設計";
 "Yearly" = "每年";
 "Best value for long-term users" = "長期使用者的最佳價值";
-"/ week" = "/週";
+"/ week" = "/ 週";
 "/ month" = "/月";
 "/ year" = "/年";
 "3 days free trial" = "3天免費試用";
@@ -183,7 +183,7 @@
 "Duration *" = "持續時間 *";
 "Description" = "描述";
 "e.g., Software Engineer" = "例如:軟體工程師";
-"e.g., Google" = "例如:Google";
+"e.g., Google" = "例如:谷歌";
 "e.g., Jan 2020 - Present" = "例如:2020年1月 - 至今";
 "Describe your responsibilities and achievements..." = "描述您的職責和成就...";
 "Degree / program *" = "學位 / 學程 *";
@@ -294,7 +294,7 @@
 
 // MARK: - 履歷示範預覽內容
 "Sarah Johnson" = "李雅婷";
-"Google" = "Google";
+"Google" = "谷歌";
 "Figma" = "Figma";
 "SQL" = "SQL";
 "sarah.johnson@email.com" = "li.yating@example.com";
@@ -382,3 +382,9 @@
 
 // MARK: - 多行文字
 "Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "在目標的建置設定中新增您的 Mac App Store ID:\n• AppStoreAppID — 來自 App Store Connect 的數字應用程式 ID\n• AppStoreDeveloperID — 數字開發者 ID(用於您的其他應用程式頁面)";
+"App for Indeed" = "Indeed 應用程式";
+"About %@" = "關於%@";
+"Hide %@" = "隱藏%@";
+"Quit %@" = "結束%@";
+"Preferences…" = "偏好設定…";
+"Assistant is searching" = "助理正在搜尋";

+ 369 - 0
scripts/patch_localizations.py

@@ -0,0 +1,369 @@
+#!/usr/bin/env python3
+import os
+import re
+
+base = os.path.join(os.path.dirname(__file__), "..", "App for Indeed")
+
+
+def set_key(content: str, key: str, value: str) -> str:
+    esc_key = key.replace("\\", "\\\\").replace('"', '\\"').replace("\n", "\\n")
+    esc_val = value.replace("\\", "\\\\").replace('"', '\\"').replace("\n", "\\n")
+    pattern = re.compile(r'"' + re.escape(esc_key) + r'"\s*=\s*"(?:\\.|[^"\\])*"\s*;')
+    repl = f'"{esc_key}" = "{esc_val}";'
+    if pattern.search(content):
+        return pattern.sub(repl, content, count=1)
+    return content.rstrip() + f'\n"{esc_key}" = "{esc_val}";\n'
+
+
+LOCALE_PATCHES = {
+    "ar": {
+        "App for Indeed": "تطبيق Indeed",
+        "About %@": "حول %@",
+        "Hide %@": "إخفاء %@",
+        "Quit %@": "إنهاء %@",
+        "Preferences…": "التفضيلات…",
+        "Assistant is searching": "المساعد يبحث",
+        "Indeed": "إنديد",
+        "Google": "جوجل",
+        "There was nothing to restore for this Apple ID.": "لا يوجد شيء لاستعادته لمعرّف Apple هذا.",
+        "Check out %@ on the Mac App Store.": "اطّلع على %@ في متجر Mac للتطبيقات.",
+        "Check out %@ on the Mac App Store:\n%@": "اطّلع على %@ في متجر Mac للتطبيقات:\n%@",
+        "match": "تطابق",
+        "matches": "تطابقات",
+        "Website": "موقع الويب",
+        "Impact": "الأثر",
+        "Contact": "التواصل",
+        "Modern": "عصري",
+        "System": "النظام",
+        "Description": "الوصف",
+        "CV": "السيرة الذاتية",
+    },
+    "de": {
+        "App for Indeed": "App für Indeed",
+        "About %@": "Über %@",
+        "Hide %@": "%@ ausblenden",
+        "Quit %@": "%@ beenden",
+        "Preferences…": "Einstellungen…",
+        "Assistant is searching": "Assistent sucht",
+        "Premium": "Premium-Bereich",
+        "Pro": "Pro-Version",
+        "Loading premium plans from the App Store…": "Lade Premium-Pläne aus dem Mac App Store…",
+        "That subscription isn’t available from the App Store right now.": "Dieses Abonnement ist derzeit nicht im Mac App Store verfügbar.",
+        "This subscription isn't available in your App Store region.": "Dieses Abonnement ist in Ihrer Mac-App-Store-Region nicht verfügbar.",
+        "Check out %@ on the Mac App Store.": "Entdecken Sie %@ im Mac App Store.",
+        "Check out %@ on the Mac App Store:\n%@": "Entdecken Sie %@ im Mac App Store:\n%@",
+        "e.g., Google": "z. B. Google",
+    },
+    "el": {
+        "App for Indeed": "Εφαρμογή για Indeed",
+        "About %@": "Σχετικά με %@",
+        "Hide %@": "Απόκρυψη %@",
+        "Quit %@": "Έξοδος από %@",
+        "Preferences…": "Προτιμήσεις…",
+        "Assistant is searching": "Ο βοηθός αναζητά",
+    },
+    "es": {
+        "App for Indeed": "App para Indeed",
+        "About %@": "Acerca de %@",
+        "Hide %@": "Ocultar %@",
+        "Quit %@": "Salir de %@",
+        "Preferences…": "Preferencias…",
+        "Assistant is searching": "El asistente está buscando",
+        "Premium": "Premium",
+        "Pro": "Profesional",
+        "There was nothing to restore for this Apple ID.": "No había nada que restaurar para este ID de Apple.",
+        "Circuit": "Circuito",
+        "Quorum": "Quórum",
+        "Regent": "Regente",
+        "Description": "Descripción",
+        "Principal": "Principal",
+        "Modern": "Moderno",
+        "System": "Sistema",
+    },
+    "es-MX": {
+        "App for Indeed": "App para Indeed",
+        "About %@": "Acerca de %@",
+        "Hide %@": "Ocultar %@",
+        "Quit %@": "Salir de %@",
+        "Preferences…": "Preferencias…",
+        "Assistant is searching": "El asistente está buscando",
+        "Premium": "Premium",
+        "Pro": "Profesional",
+        "There was nothing to restore for this Apple ID.": "No había nada que restaurar para este ID de Apple.",
+        "Quorum": "Quórum",
+        "Regent": "Regente",
+        "Modern": "Moderno",
+    },
+    "fi": {
+        "App for Indeed": "Sovellus Indeedille",
+        "About %@": "Tietoja: %@",
+        "Hide %@": "Piilota %@",
+        "Quit %@": "Lopeta %@",
+        "Preferences…": "Asetukset…",
+        "Assistant is searching": "Avustaja hakee",
+        "match": "osuma",
+        "matches": "osumaa",
+        "Website": "Verkkosivusto",
+        "Modern": "Moderni",
+        "/ week": "/ viikko",
+        "Quorum": "Kvoorumi",
+        "Regent": "Regentti",
+    },
+    "fr": {
+        "App for Indeed": "App pour Indeed",
+        "About %@": "À propos de %@",
+        "Hide %@": "Masquer %@",
+        "Quit %@": "Quitter %@",
+        "Preferences…": "Réglages…",
+        "Assistant is searching": "L’assistant recherche",
+        "Premium": "Abonnement premium",
+        "Pro": "Version Pro",
+        "Upgrade to Pro": "Passer à la version Pro",
+        "You're on Pro": "Vous utilisez la version Pro",
+        "Try Pro": "Essayer la version Pro",
+        "Checking your Pro subscription…": "Vérification de votre abonnement Pro…",
+        "Circuit": "Circuit",
+        "Conduit": "Conduit",
+        "Modern": "Moderne",
+        "System": "Système",
+    },
+    "fr-CA": {
+        "App for Indeed": "App pour Indeed",
+        "About %@": "À propos de %@",
+        "Hide %@": "Masquer %@",
+        "Quit %@": "Quitter %@",
+        "Preferences…": "Préférences…",
+        "Assistant is searching": "L’assistant recherche",
+        "Premium": "Abonnement premium",
+        "Pro": "Version Pro",
+        "Upgrade to Pro": "Passer à la version Pro",
+        "You're on Pro": "Vous utilisez la version Pro",
+        "Try Pro": "Essayer la version Pro",
+        "Modern": "Moderne",
+    },
+    "he": {
+        "App for Indeed": "אפליקציה עבור Indeed",
+        "About %@": "אודות %@",
+        "Hide %@": "הסתר %@",
+        "Quit %@": "צא מ-%@",
+        "Preferences…": "העדפות…",
+        "Assistant is searching": "העוזר מחפש",
+        "Indeed": "אינדיד",
+        "Google": "גוגל",
+        "There was nothing to restore for this Apple ID.": "לא היה מה לשחזר עבור מזהה Apple זה.",
+        "Website": "אתר אינטרנט",
+        "Modern": "מודרני",
+    },
+    "it": {
+        "App for Indeed": "App per Indeed",
+        "About %@": "Informazioni su %@",
+        "Hide %@": "Nascondi %@",
+        "Quit %@": "Esci da %@",
+        "Preferences…": "Preferenze…",
+        "Assistant is searching": "L'assistente sta cercando",
+        "Premium": "Premium",
+        "There was nothing to restore for this Apple ID.": "Non c'era nulla da ripristinare per questo ID Apple.",
+        "Atlas": "Atlante",
+        "Regent": "Reggente",
+        "Modern": "Moderno",
+        "Website": "Sito web",
+        "Impact": "Impatto",
+        "Contact": "Contatti",
+        "match": "corrispondenza",
+        "matches": "corrispondenze",
+        "/ week": "/ settimana",
+    },
+    "ko": {
+        "App for Indeed": "Indeed용 앱",
+        "About %@": "%@ 정보",
+        "Hide %@": "%@ 숨기기",
+        "Quit %@": "%@ 종료",
+        "Preferences…": "환경설정…",
+        "Assistant is searching": "어시스턴트가 검색 중",
+        "Google": "구글",
+        "e.g., Google": "예: 구글",
+        "There was nothing to restore for this Apple ID.": "이 Apple 계정에 복원할 구독이 없습니다.",
+    },
+    "nb": {
+        "App for Indeed": "App for Indeed",
+        "About %@": "Om %@",
+        "Hide %@": "Skjul %@",
+        "Quit %@": "Avslutt %@",
+        "Preferences…": "Innstillinger…",
+        "Assistant is searching": "Assistenten søker",
+        "Premium": "Premium",
+        "Website": "Nettsted",
+        "Modern": "Moderne",
+        "match": "treff",
+        "matches": "treff",
+        "/ week": "/ uke",
+        "Quorum": "Korum",
+    },
+    "nl": {
+        "App for Indeed": "App voor Indeed",
+        "About %@": "Over %@",
+        "Hide %@": "Verberg %@",
+        "Quit %@": "Sluit %@ af",
+        "Preferences…": "Voorkeuren…",
+        "Assistant is searching": "Assistent zoekt",
+        "match": "overeenkomst",
+        "matches": "overeenkomsten",
+        "Website": "Webpagina",
+        "Impact": "Prestaties",
+        "Contact": "Contactgegevens",
+        "e.g., Google": "bijv. Google",
+    },
+    "pl": {
+        "App for Indeed": "Aplikacja dla Indeed",
+        "About %@": "Informacje o %@",
+        "Hide %@": "Ukryj %@",
+        "Quit %@": "Zakończ %@",
+        "Preferences…": "Ustawienia…",
+        "Assistant is searching": "Asystent wyszukuje",
+        "Premium": "Premium",
+        "There was nothing to restore for this Apple ID.": "Nie było nic do przywrócenia dla tego konta Apple.",
+        "Quorum": "Kworum",
+        "Website": "Witryna",
+        "Modern": "Nowoczesny",
+        "match": "dopasowanie",
+        "matches": "dopasowania",
+        "/ week": "/ tydzień",
+    },
+    "pt-BR": {
+        "App for Indeed": "App para Indeed",
+        "About %@": "Sobre %@",
+        "Hide %@": "Ocultar %@",
+        "Quit %@": "Encerrar %@",
+        "Preferences…": "Preferências…",
+        "Assistant is searching": "O assistente está pesquisando",
+        "Premium": "Premium",
+        "There was nothing to restore for this Apple ID.": "Não havia nada para restaurar para este ID Apple.",
+        "Quorum": "Quórum",
+        "Regent": "Regente",
+        "Website": "Site",
+        "Modern": "Moderno",
+        "match": "correspondência",
+        "matches": "correspondências",
+        "/ week": "/ semana",
+    },
+    "ru": {
+        "App for Indeed": "Приложение для Indeed",
+        "About %@": "О программе «%@»",
+        "Hide %@": "Скрыть %@",
+        "Quit %@": "Завершить %@",
+        "Preferences…": "Настройки…",
+        "Assistant is searching": "Помощник ищет",
+        "Indeed": "Индид",
+        "Pro": "Про",
+        "There was nothing to restore for this Apple ID.": "Нечего восстанавливать для этой учётной записи Apple.",
+        "Website": "Веб-сайт",
+        "Modern": "Современный",
+        "match": "совпадение",
+        "matches": "совпадения",
+        "/ week": "/ неделя",
+    },
+    "sv": {
+        "App for Indeed": "App för Indeed",
+        "About %@": "Om %@",
+        "Hide %@": "Dölj %@",
+        "Quit %@": "Avsluta %@",
+        "Preferences…": "Inställningar…",
+        "Assistant is searching": "Assistenten söker",
+        "Premium": "Premium-abonnemang",
+        "Pro": "Pro-version",
+        "Upgrade to Pro": "Uppgradera till Pro-versionen",
+        "You're on Pro": "Du har Pro-versionen",
+        "Try Pro": "Prova Pro-versionen",
+        "Website": "Webbplats",
+        "Modern": "Modern",
+        "match": "träff",
+        "matches": "träffar",
+        "/ week": "/ vecka",
+        "Quorum": "Korum",
+    },
+    "uk": {
+        "App for Indeed": "Додаток для Indeed",
+        "About %@": "Про %@",
+        "Hide %@": "Сховати %@",
+        "Quit %@": "Завершити %@",
+        "Preferences…": "Налаштування…",
+        "Assistant is searching": "Помічник шукає",
+        "Indeed": "Індід",
+        "Website": "Вебсайт",
+        "Modern": "Сучасний",
+    },
+    "vi": {
+        "App for Indeed": "Ứng dụng cho Indeed",
+        "About %@": "Giới thiệu về %@",
+        "Hide %@": "Ẩn %@",
+        "Quit %@": "Thoát %@",
+        "Preferences…": "Tùy chọn…",
+        "Assistant is searching": "Trợ lý đang tìm kiếm",
+        "There was nothing to restore for this Apple ID.": "Không có gì để khôi phục cho ID Apple này.",
+        "Website": "Trang web",
+        "Modern": "Hiện đại",
+        "match": "kết quả phù hợp",
+        "matches": "kết quả phù hợp",
+        "/ week": "/ tuần",
+    },
+    "zh-Hans": {
+        "App for Indeed": "Indeed 应用",
+        "About %@": "关于%@",
+        "Hide %@": "隐藏%@",
+        "Quit %@": "退出%@",
+        "Preferences…": "偏好设置…",
+        "Assistant is searching": "助手正在搜索",
+        "Indeed": "英迪",
+        "Google": "谷歌",
+        "e.g., Google": "例如:谷歌",
+        "There was nothing to restore for this Apple ID.": "此 Apple 账户没有可恢复的内容。",
+        "Check out %@ on the Mac App Store.": "在 Mac App Store 中查看%@。",
+        "Check out %@ on the Mac App Store:\n%@": "在 Mac App Store 中查看%@:\n%@",
+    },
+    "zh-Hant": {
+        "App for Indeed": "Indeed 應用程式",
+        "About %@": "關於%@",
+        "Hide %@": "隱藏%@",
+        "Quit %@": "結束%@",
+        "Preferences…": "偏好設定…",
+        "Assistant is searching": "助理正在搜尋",
+        "Indeed": "英迪",
+        "Google": "谷歌",
+        "e.g., Google": "例如:谷歌",
+        "There was nothing to restore for this Apple ID.": "此 Apple 帳號沒有可回復的內容。",
+        "Website": "網站",
+        "Modern": "現代",
+        "match": "相符",
+        "matches": "相符",
+        "/ week": "/ 週",
+    },
+}
+
+
+def main():
+    for loc, patches in LOCALE_PATCHES.items():
+        name = patches["App for Indeed"]
+        info_path = os.path.join(base, f"{loc}.lproj", "InfoPlist.strings")
+        with open(info_path, "w", encoding="utf-8") as f:
+            f.write(f"/* Localized bundle display name ({loc}) */\n")
+            f.write(f'"CFBundleDisplayName" = "{name}";\n')
+            f.write(f'"CFBundleName" = "{name}";\n')
+
+        path = os.path.join(base, f"{loc}.lproj", "Localizable.strings")
+        with open(path, encoding="utf-8") as f:
+            content = f.read()
+        for key, val in patches.items():
+            content = set_key(content, key, val)
+        with open(path, "w", encoding="utf-8") as f:
+            f.write(content)
+        print(f"Patched {loc}: {len(patches)} keys")
+
+    en_info = os.path.join(base, "en.lproj", "InfoPlist.strings")
+    with open(en_info, "w", encoding="utf-8") as f:
+        f.write("/* Localized bundle display name (English) */\n")
+        f.write('"CFBundleDisplayName" = "App for Indeed";\n')
+        f.write('"CFBundleName" = "App for Indeed";\n')
+
+
+if __name__ == "__main__":
+    main()