diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cf90eb91..acc497550 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - Devin: add daily and weekly quota tracking from the signed-in Chrome session or a manual Bearer token (#1264, fixes #800). Thanks @coygeek! - Menu bar: move the highlighted Overview provider with trackpad or mouse-wheel scrolling while preserving native submenu and keyboard behavior (#1436). Thanks @joshuavial! +- Localization: add Polish as a selectable app language (#1253). Thanks @Yuxin-Qiao! ### Fixed - Menu bar: anchor merged provider dropdowns to the status item's trailing edge without marking preserved in-flight refresh content fresh, preventing horizontal drift while keeping deferred updates visible (#1288). Thanks @Yuxin-Qiao! diff --git a/Sources/CodexBar/PreferencesGeneralPane.swift b/Sources/CodexBar/PreferencesGeneralPane.swift index ee10ab1fe..206666355 100644 --- a/Sources/CodexBar/PreferencesGeneralPane.swift +++ b/Sources/CodexBar/PreferencesGeneralPane.swift @@ -16,6 +16,7 @@ enum AppLanguage: String, CaseIterable, Identifiable { case ukrainian = "uk" case vietnamese = "vi" case japanese = "ja" + case polish = "pl" var id: String { self.rawValue @@ -36,6 +37,7 @@ enum AppLanguage: String, CaseIterable, Identifiable { case .ukrainian: L("language_ukrainian") case .vietnamese: L("language_vietnamese") case .japanese: L("language_japanese") + case .polish: L("language_polish") } } } diff --git a/Sources/CodexBar/Resources/ca.lproj/Localizable.strings b/Sources/CodexBar/Resources/ca.lproj/Localizable.strings index d079294da..800ee0eb4 100644 --- a/Sources/CodexBar/Resources/ca.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/ca.lproj/Localizable.strings @@ -404,6 +404,7 @@ "language_french" = "Francès"; "language_ukrainian" = "Ucraïnès"; "language_japanese" = "Japonès"; +"language_polish" = "Polski"; "start_at_login_title" = "Obrir en iniciar la sessió"; "start_at_login_subtitle" = "Obre el CodexBar automàticament en iniciar el Mac."; "show_cost_summary" = "Mostra el resum de cost"; diff --git a/Sources/CodexBar/Resources/en.lproj/Localizable.strings b/Sources/CodexBar/Resources/en.lproj/Localizable.strings index cdc0c56b2..b0dbabcae 100644 --- a/Sources/CodexBar/Resources/en.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/en.lproj/Localizable.strings @@ -406,6 +406,7 @@ "language_french" = "French"; "language_ukrainian" = "Українська"; "language_japanese" = "Japanese"; +"language_polish" = "Polski"; "start_at_login_title" = "Start at Login"; "start_at_login_subtitle" = "Automatically opens CodexBar when you start your Mac."; "show_cost_summary" = "Show cost summary"; diff --git a/Sources/CodexBar/Resources/es.lproj/Localizable.strings b/Sources/CodexBar/Resources/es.lproj/Localizable.strings index 994ffd80e..fbf2d2b8c 100644 --- a/Sources/CodexBar/Resources/es.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/es.lproj/Localizable.strings @@ -404,6 +404,7 @@ "language_french" = "Francés"; "language_ukrainian" = "Ucraniano"; "language_japanese" = "Japonés"; +"language_polish" = "Polski"; "start_at_login_title" = "Abrir al iniciar sesión"; "start_at_login_subtitle" = "Abre CodexBar automáticamente al iniciar tu Mac."; "show_cost_summary" = "Mostrar resumen de coste"; diff --git a/Sources/CodexBar/Resources/fr.lproj/Localizable.strings b/Sources/CodexBar/Resources/fr.lproj/Localizable.strings index aca685e72..f30346117 100644 --- a/Sources/CodexBar/Resources/fr.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/fr.lproj/Localizable.strings @@ -405,6 +405,7 @@ "language_ukrainian" = "Ukrainien"; "language_japanese" = "Japonais"; "language_vietnamese" = "Vietnamien"; +"language_polish" = "Polonais"; "start_at_login_title" = "Lancer à l'ouverture de session"; "start_at_login_subtitle" = "Ouvre automatiquement CodexBar au démarrage de votre Mac."; "show_cost_summary" = "Afficher le récapitulatif des coûts"; diff --git a/Sources/CodexBar/Resources/ja.lproj/Localizable.strings b/Sources/CodexBar/Resources/ja.lproj/Localizable.strings index 7f16a37b2..14bfa98b5 100644 --- a/Sources/CodexBar/Resources/ja.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/ja.lproj/Localizable.strings @@ -404,6 +404,7 @@ "language_french" = "フランス語"; "language_ukrainian" = "ウクライナ語"; "language_japanese" = "日本語"; +"language_polish" = "ポーランド語"; "start_at_login_title" = "ログイン時に起動"; "start_at_login_subtitle" = "Mac の起動時に CodexBar を自動的に開きます。"; "show_cost_summary" = "コスト概要を表示"; diff --git a/Sources/CodexBar/Resources/nl.lproj/Localizable.strings b/Sources/CodexBar/Resources/nl.lproj/Localizable.strings index 67cc5e473..fd12f1b18 100644 --- a/Sources/CodexBar/Resources/nl.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/nl.lproj/Localizable.strings @@ -405,6 +405,7 @@ "language_japanese" = "Japans"; "language_swedish" = "Zweeds"; "language_vietnamese" = "Vietnamees"; +"language_polish" = "Pools"; "start_at_login_title" = "Begin bij Inloggen"; "start_at_login_subtitle" = "Opent automatisch CodexBar wanneer u uw Mac start."; "show_cost_summary" = "Kostenoverzicht weergeven"; diff --git a/Sources/CodexBar/Resources/pl.lproj/Localizable.strings b/Sources/CodexBar/Resources/pl.lproj/Localizable.strings new file mode 100644 index 000000000..c902f0865 --- /dev/null +++ b/Sources/CodexBar/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,1073 @@ +/* English localization for CodexBar (base/fallback) */ + +" providers" = " providers"; +"(System)" = "(System)"; +"30d" = "30d"; +"A managed Codex login is already running. Wait for it to finish before adding " = "A managed Codex login is already running. Wait for it to finish before adding "; +"API key" = "API key"; +"API region" = "API region"; +"API token" = "API token"; +"API tokens" = "API tokens"; +"About" = "About"; +"Account" = "Konto"; +"Accounts" = "Accounts"; +"Accounts subtitle" = "Accounts subtitle"; +"Active" = "Active"; +"Add" = "Add"; +"Add Workspace" = "Add Workspace"; +"Advanced" = "Advanced"; +"All" = "All"; +"Always allow prompts" = "Always allow prompts"; +"Animation pattern" = "Animation pattern"; +"Antigravity login is managed in the app" = "Antigravity login is managed in the app"; +"Applies only to the Security.framework OAuth keychain reader." = "Applies only to the Security.framework OAuth keychain reader."; +"Auto falls back to the next source if the preferred one fails." = "Automatycznie przełącza na kolejne źródło, jeśli preferowane zawiedzie."; +"Auto uses API first, then falls back to CLI on auth failures." = "Auto uses API first, then falls back to CLI on auth failures."; +"Auto-detect" = "Auto-detect"; +"Auto-refresh is off; use the menu's Refresh command." = "Auto-refresh is off; use the menu's Refresh command."; +"Auto-refresh: hourly · Timeout: 10m" = "Auto-refresh: hourly · Timeout: 10m"; +"Automatic" = "Automatic"; +"Automatic imports browser cookies and WorkOS tokens." = "Automatic imports browser cookies and WorkOS tokens."; +"Automatic imports browser cookies and local storage tokens." = "Automatic imports browser cookies and local storage tokens."; +"Automatic imports browser cookies for dashboard extras." = "Automatic imports browser cookies for dashboard extras."; +"Automatic imports browser cookies for the web API." = "Automatic imports browser cookies for the web API."; +"Automatic imports browser cookies from Model Studio/Bailian." = "Automatic imports browser cookies from Model Studio/Bailian."; +"Automatic imports browser cookies from admin.mistral.ai." = "Automatic imports browser cookies from admin.mistral.ai."; +"Automatic imports browser cookies from opencode.ai." = "Automatic imports browser cookies from opencode.ai."; +"Automatic imports browser cookies or stored sessions." = "Automatic imports browser cookies or stored sessions."; +"Automatic imports browser cookies." = "Automatic imports browser cookies."; +"Automatically imports browser session cookie." = "Automatically imports browser session cookie."; +"Automatically opens CodexBar when you start your Mac." = "Automatically opens CodexBar when you start your Mac."; +"Automation" = "Automation"; +"Average (\\(label1) + \\(label2))" = "Average (\\(label1) + \\(label2))"; +"Average (\\(metadata.sessionLabel) + \\(metadata.weeklyLabel))" = "Average (\\(metadata.sessionLabel) + \\(metadata.weeklyLabel))"; +"Avoid Keychain prompts" = "Avoid Keychain prompts"; +"Balance" = "Balance"; +"Battery Saver" = "Battery Saver"; +"Bordered" = "Bordered"; +"Build" = "Build"; +"Built \\(buildTimestamp)" = "Built \\(buildTimestamp)"; +"Buy Credits..." = "Buy Credits..."; +"Buy Credits…" = "Buy Credits…"; +"CLI paths" = "CLI paths"; +"CLI sessions" = "CLI sessions"; +"Caches" = "Caches"; +"Cancel" = "Cancel"; +"Check for Updates…" = "Check for Updates…"; +"Check for updates automatically" = "Check for updates automatically"; +"Check if you like your agents having some fun up there." = "Check if you like your agents having some fun up there."; +"Check provider status" = "Check provider status"; +"Choose Codex workspace" = "Choose Codex workspace"; +"Choose the MiniMax host (global .io or China mainland .com)." = "Choose the MiniMax host (global .io or China mainland .com)."; +"Choose up to " = "Choose up to "; +"Choose up to \\(Self.maxOverviewProviders) providers" = "Choose up to \\(Self.maxOverviewProviders) providers"; +"Choose up to \\(count) providers" = "Choose up to \\(count) providers"; +"Choose what to show in the menu bar (Pace shows usage vs. expected)." = "Choose what to show in the menu bar (Pace shows usage vs. expected)."; +"Choose which Codex account CodexBar should follow." = "Choose which Codex account CodexBar should follow."; +"Choose which window drives the menu bar percent." = "Choose which window drives the menu bar percent."; +"Chrome" = "Chrome"; +"Claude CLI not found" = "Claude CLI not found"; +"Claude binary" = "Claude binary"; +"Claude cookies" = "Claude cookies"; +"Claude login failed" = "Claude login failed"; +"Claude login timed out" = "Claude login timed out"; +"Close" = "Close"; +"Code review" = "Code review"; +"Codex CLI not found" = "Codex CLI not found"; +"Codex account login already running" = "Codex account login already running"; +"Codex binary" = "Codex binary"; +"Codex login failed" = "Codex login failed"; +"Codex login timed out" = "Codex login timed out"; +"CodexBar Lifecycle Keepalive" = "CodexBar Lifecycle Keepalive"; +"CodexBar can't show its menu bar icon" = "CodexBar can't show its menu bar icon"; +"CodexBar could not read managed account storage. " = "CodexBar could not read managed account storage. "; +"Configure…" = "Configure…"; +"Connected" = "Connected"; +"Controls how much detail is logged." = "Controls how much detail is logged."; +"Cookie header" = "Cookie header"; +"Cookie source" = "Cookie source"; +"Cookie: ..." = "Cookie: ..."; +"Cookie: \\u{2026}\\\n\\\nor paste a cURL capture from the Abacus AI dashboard" = "Cookie: \\u{2026}\\\n\\\nor paste a cURL capture from the Abacus AI dashboard"; +"Cookie: \\u{2026}\\\n\\\nor paste the __Secure-next-auth.session-token value" = "Cookie: \\u{2026}\\\n\\\nor paste the __Secure-next-auth.session-token value"; +"Cookie: \\u{2026}\\\n\\\nor paste the kimi-auth token value" = "Cookie: \\u{2026}\\\n\\\nor paste the kimi-auth token value"; +"Cookie: …" = "Cookie: …"; +"CopilotDeviceFlow" = "CopilotDeviceFlow"; +"Cost" = "Koszt"; +"Could not add Codex account" = "Could not add Codex account"; +"Could not open Terminal for Gemini" = "Could not open Terminal for Gemini"; +"Could not start claude /login" = "Could not start claude /login"; +"Could not start codex login" = "Could not start codex login"; +"Could not switch system account" = "Could not switch system account"; +"Credits" = "Kredyty"; +"Credits history" = "Credits history"; +"Cursor login failed" = "Cursor login failed"; +"Custom" = "Custom"; +"Custom Path" = "Custom Path"; +"Daily Routines" = "Daily Routines"; +"Debug" = "Debug"; +"Default" = "Default"; +"Disable Keychain access" = "Disable Keychain access"; +"Disabled" = "Wyłączone"; +"Dismiss" = "Dismiss"; +"Disconnected" = "Disconnected"; +"Display" = "Display"; +"Display mode" = "Display mode"; +"Display reset times as absolute clock values instead of countdowns." = "Display reset times as absolute clock values instead of countdowns."; +"Done" = "Done"; +"Effective PATH" = "Effective PATH"; +"Email" = "Email"; +"Enable Merge Icons to configure Overview tab providers." = "Enable Merge Icons to configure Overview tab providers."; +"Enable file logging" = "Enable file logging"; +"Enabled" = "Włączone"; +"Error" = "Error"; +"Error simulation" = "Error simulation"; +"Expose troubleshooting tools in the Debug tab." = "Expose troubleshooting tools in the Debug tab."; +"Failed" = "Failed"; +"False" = "False"; +"Fetch strategy attempts" = "Fetch strategy attempts"; +"Fetching" = "Fetching"; +"Field" = "Field"; +"Field subtitle" = "Field subtitle"; +"Finish the current managed account change before switching the system account." = "Finish the current managed account change before switching the system account."; +"Force animation on next refresh" = "Force animation on next refresh"; +"Gateway region" = "Gateway region"; +"Gemini CLI not found" = "Gemini CLI not found"; +"Gemini/Antigravity, surfacing incidents in the icon and menu." = "Gemini/Antigravity, surfacing incidents in the icon and menu."; +"General" = "General"; +"GitHub" = "GitHub"; +"GitHub Copilot Login" = "GitHub Copilot Login"; +"GitHub Login" = "GitHub Login"; +"Hide details" = "Ukryj szczegóły"; +"Hide personal information" = "Hide personal information"; +"Historical tracking" = "Historical tracking"; +"How often CodexBar polls providers in the background." = "How often CodexBar polls providers in the background."; +"Inactive" = "Inactive"; +"Install CLI" = "Install CLI"; +"Install the Claude CLI (npm i -g @anthropic-ai/claude-code) and try again." = "Install the Claude CLI (npm i -g @anthropic-ai/claude-code) and try again."; +"Install the Codex CLI (npm i -g @openai/codex) and try again." = "Install the Codex CLI (npm i -g @openai/codex) and try again."; +"Install the Gemini CLI (npm i -g @google/gemini-cli) and try again." = "Install the Gemini CLI (npm i -g @google/gemini-cli) and try again."; +"JetBrains AI is ready" = "JetBrains AI is ready"; +"JetBrains IDE" = "JetBrains IDE"; +"Keep CLI sessions alive" = "Keep CLI sessions alive"; +"Keyboard shortcut" = "Keyboard shortcut"; +"Keychain access" = "Keychain access"; +"Keychain prompt policy" = "Keychain prompt policy"; +"Last \\(name) fetch failed:" = "Last \\(name) fetch failed:"; +"Last \\(self.store.metadata(for: self.provider).displayName) fetch failed:" = "Last \\(self.store.metadata(for: self.provider).displayName) fetch failed:"; +"Last attempt" = "Last attempt"; +"Link" = "Link"; +"Loading animations" = "Loading animations"; +"Loading…" = "Loading…"; +"Local" = "Local"; +"Logging" = "Logging"; +"Login failed" = "Login failed"; +"Login shell PATH (startup capture)" = "Login shell PATH (startup capture)"; +"Login timed out" = "Login timed out"; +"MCP details" = "MCP details"; +"Managed Codex accounts unavailable" = "Managed Codex accounts unavailable"; +"Managed account storage is unreadable. Live account access is still available, " = "Managed account storage is unreadable. Live account access is still available, "; +"Manual" = "Manual"; +"May your tokens never run out—keep agent limits in view." = "May your tokens never run out—keep agent limits in view."; +"Menu bar" = "Menu bar"; +"Menu bar auto-shows the provider closest to its rate limit." = "Menu bar auto-shows the provider closest to its rate limit."; +"Menu bar metric" = "Menu bar metric"; +"Menu bar shows percent" = "Menu bar shows percent"; +"Menu content" = "Menu content"; +"Merge Icons" = "Merge Icons"; +"Never prompt" = "Never prompt"; +"No" = "No"; +"No Codex accounts detected yet." = "No Codex accounts detected yet."; +"No JetBrains IDE detected" = "No JetBrains IDE detected"; +"No cost history data." = "No cost history data."; +"No data available" = "No data available"; +"No data yet" = "No data yet"; +"No enabled providers available for Overview." = "No enabled providers available for Overview."; +"No providers selected" = "No providers selected"; +"No token accounts yet." = "No token accounts yet."; +"No usage breakdown data." = "No usage breakdown data."; +"None" = "None"; +"Notifications" = "Notifications"; +"Notifies when the 5-hour session quota hits 0% and when it becomes " = "Notifies when the 5-hour session quota hits 0% and when it becomes "; +"OK" = "OK"; +"Obscure email addresses in the menu bar and menu UI." = "Obscure email addresses in the menu bar and menu UI."; +"Off" = "Off"; +"Offline" = "Offline"; +"On" = "On"; +"Online" = "Online"; +"Only on user action" = "Only on user action"; +"Open" = "Open"; +"Open API Keys" = "Open API Keys"; +"Open Amp Settings" = "Open Amp Settings"; +"Open Antigravity to sign in, then refresh CodexBar." = "Open Antigravity to sign in, then refresh CodexBar."; +"Open Browser" = "Open Browser"; +"Open Coding Plan" = "Open Coding Plan"; +"Open Console" = "Open Console"; +"Open Dashboard" = "Open Dashboard"; +"Open Mistral Admin" = "Open Mistral Admin"; +"Open Menu Bar Settings" = "Open Menu Bar Settings"; +"Open Ollama Settings" = "Open Ollama Settings"; +"Open Terminal" = "Open Terminal"; +"Open Usage Page" = "Open Usage Page"; +"Open Warp API Key Guide" = "Open Warp API Key Guide"; +"Open menu" = "Open menu"; +"Open token file" = "Open token file"; +"OpenAI cookies" = "OpenAI cookies"; +"OpenAI web extras" = "OpenAI web extras"; +"Option A" = "Option A"; +"Option B" = "Option B"; +"Optional override if workspace lookup fails." = "Optional override if workspace lookup fails."; +"Options" = "Options"; +"Override auto-detection with a custom IDE base path" = "Override auto-detection with a custom IDE base path"; +"Overview" = "Overview"; +"Overview rows always follow provider order." = "Overview rows always follow provider order."; +"Overview tab providers" = "Overview tab providers"; +"Paste API key…" = "Paste API key…"; +"Paste API token…" = "Paste API token…"; +"Paste key…" = "Paste key…"; +"Paste sessionKey or OAuth token…" = "Paste sessionKey or OAuth token…"; +"Paste the Cookie header from a request to admin.mistral.ai. " = "Paste the Cookie header from a request to admin.mistral.ai. "; +"Paste token…" = "Paste token…"; +"Personal" = "Personal"; +"Picker" = "Picker"; +"Picker subtitle" = "Picker subtitle"; +"Placeholder" = "Placeholder"; +"Plan" = "Plan"; +"Play full-screen confetti when weekly usage resets." = "Play full-screen confetti when weekly usage resets."; +"Polls OpenAI/Claude status pages and Google Workspace for " = "Polls OpenAI/Claude status pages and Google Workspace for "; +"Prevents any Keychain access while enabled." = "Prevents any Keychain access while enabled."; +"Primary (API key limit)" = "Primary (API key limit)"; +"Primary (\\(label))" = "Primary (\\(label))"; +"Primary (\\(metadata.sessionLabel))" = "Primary (\\(metadata.sessionLabel))"; +"Probe logs" = "Probe logs"; +"Progress bars fill as you consume quota (instead of showing remaining)." = "Progress bars fill as you consume quota (instead of showing remaining)."; +"Provider" = "Provider"; +"Providers" = "Providers"; +"Quit CodexBar" = "Quit CodexBar"; +"Random (default)" = "Random (default)"; +"Reads local usage logs. Shows today + last 30 days cost in the menu." = "Reads local usage logs. Shows today + the selected history window in the menu."; +"Refresh" = "Odśwież"; +"Refresh cadence" = "Refresh cadence"; +"Remote" = "Remote"; +"Remove" = "Remove"; +"Remove Codex account?" = "Remove Codex account?"; +"Remove \\(account.email) from CodexBar? Its managed Codex home will be deleted." = "Remove \\(account.email) from CodexBar? Its managed Codex home will be deleted."; +"Remove \\(email) from CodexBar? Its managed Codex home will be deleted." = "Remove \\(email) from CodexBar? Its managed Codex home will be deleted."; +"Remove selected account" = "Remove selected account"; +"Replace critter bars with provider branding icons and a percentage." = "Replace critter bars with provider branding icons and a percentage."; +"Replay selected animation" = "Replay selected animation"; +"Requires authentication via GitHub Device Flow." = "Requires authentication via GitHub Device Flow."; +"Resets: \\(reset)" = "Resets: \\(reset)"; +"Rolling five-hour limit" = "Rolling five-hour limit"; +"Search hourly" = "Search hourly"; +"Secondary (\\(label))" = "Secondary (\\(label))"; +"Secondary (\\(metadata.weeklyLabel))" = "Secondary (\\(metadata.weeklyLabel))"; +"Select a provider" = "Select a provider"; +"Select the IDE to monitor" = "Select the IDE to monitor"; +"Session quota notifications" = "Session quota notifications"; +"Session tokens" = "Session tokens"; +"Settings" = "Ustawienia"; +"Show Codex Credits and Claude Extra usage sections in the menu." = "Show Codex Credits and Claude Extra usage sections in the menu."; +"Show Debug Settings" = "Show Debug Settings"; +"Show all token accounts" = "Show all token accounts"; +"Show cost summary" = "Show cost summary"; +"Show credits + extra usage" = "Show credits + extra usage"; +"Show details" = "Pokaż szczegóły"; +"Show most-used provider" = "Show most-used provider"; +"Show provider icons in the switcher (otherwise show a weekly progress line)." = "Show provider icons in the switcher (otherwise show a weekly progress line)."; +"Show reset time as clock" = "Show reset time as clock"; +"Show usage as used" = "Show usage as used"; +"Sign in via button below" = "Sign in via button below"; +"Skip teardown between probes (debug-only)." = "Skip teardown between probes (debug-only)."; +"Stack token accounts in the menu (otherwise show an account switcher bar)." = "Stack token accounts in the menu (otherwise show an account switcher bar)."; +"Start at Login" = "Start at Login"; +"Status" = "Status"; +"Store Claude sessionKey cookies or OAuth access tokens." = "Store Claude sessionKey cookies or OAuth access tokens."; +"Store multiple Abacus AI Cookie headers." = "Store multiple Abacus AI Cookie headers."; +"Store multiple Augment Cookie headers." = "Store multiple Augment Cookie headers."; +"Store multiple Cursor Cookie headers." = "Store multiple Cursor Cookie headers."; +"Store multiple Factory Cookie headers." = "Store multiple Factory Cookie headers."; +"Store multiple MiniMax Cookie headers." = "Store multiple MiniMax Cookie headers."; +"Store multiple Mistral Cookie headers." = "Store multiple Mistral Cookie headers."; +"Store multiple Ollama Cookie headers." = "Store multiple Ollama Cookie headers."; +"Store multiple OpenCode Cookie headers." = "Store multiple OpenCode Cookie headers."; +"Store multiple OpenCode Go Cookie headers." = "Store multiple OpenCode Go Cookie headers."; +"Stored in the CodexBar config file." = "Stored in the CodexBar config file."; +"Stored in ~/.codexbar/config.json. " = "Stored in ~/.codexbar/config.json. "; +"Stored in ~/.codexbar/config.json. Generate one at kimi-k2.ai." = "Stored in ~/.codexbar/config.json. Generate one at kimi-k2.ai."; +"Stored in ~/.codexbar/config.json. Paste the key from the Synthetic dashboard." = "Stored in ~/.codexbar/config.json. Paste the key from the Synthetic dashboard."; +"Stored in ~/.codexbar/config.json. Paste your Coding Plan API key from Model Studio." = "Stored in ~/.codexbar/config.json. Paste your Coding Plan API key from Model Studio."; +"Stored in ~/.codexbar/config.json. Paste your MiniMax API key." = "Stored in ~/.codexbar/config.json. Paste your MiniMax API key."; +"Stored in ~/.codexbar/config.json. You can also provide KILO_API_KEY or " = "Stored in ~/.codexbar/config.json. You can also provide KILO_API_KEY or "; +"Stores local Codex usage history (8 weeks) to personalize Pace predictions." = "Stores local Codex usage history (8 weeks) to personalize Pace predictions."; +"Subscription Utilization" = "Wykorzystanie subskrypcji"; +"Surprise me" = "Surprise me"; +"Switcher shows icons" = "Switcher shows icons"; +"Symlink CodexBarCLI to /usr/local/bin and /opt/homebrew/bin as codexbar." = "Symlink CodexBarCLI to /usr/local/bin and /opt/homebrew/bin as codexbar."; +"System" = "System"; +"Temporarily shows the loading animation after the next refresh." = "Temporarily shows the loading animation after the next refresh."; +"terminal_app_subtitle" = "Terminal używany przez akcję Otwórz terminal"; +"terminal_app_title" = "Domyślny terminal"; +"Tertiary (\\(label))" = "Tertiary (\\(label))"; +"Tertiary (\\(tertiaryTitle))" = "Tertiary (\\(tertiaryTitle))"; +"The default Codex account on this Mac." = "The default Codex account on this Mac."; +"Toggle" = "Toggle"; +"Toggle subtitle" = "Toggle subtitle"; +"Token" = "Token"; +"Trigger the menu bar menu from anywhere." = "Trigger the menu bar menu from anywhere."; +"True" = "True"; +"Twitter" = "Twitter"; +"Unsupported" = "Unsupported"; +"Update Channel" = "Update Channel"; +"Updated" = "Zaktualizowano"; +"Updates unavailable in this build." = "Updates unavailable in this build."; +"Usage" = "Zużycie"; +"Usage breakdown" = "Usage breakdown"; +"Usage history (30 days)" = "Usage history"; +"Usage source" = "Źródło użycia"; +"Use BigModel for the China mainland endpoints (open.bigmodel.cn)." = "Use BigModel for the China mainland endpoints (open.bigmodel.cn)."; +"Use a single menu bar icon with a provider switcher." = "Use a single menu bar icon with a provider switcher."; +"Use international or China mainland console gateways for quota fetches." = "Use international or China mainland console gateways for quota fetches."; +"Version" = "Wersja"; +"Version \\(self.versionString)" = "Version \\(self.versionString)"; +"Version \\(version)" = "Version \\(version)"; +"Version \\(versionString)" = "Version \\(versionString)"; +"Vertex AI Login" = "Vertex AI Login"; +"Wait for the current managed Codex login to finish before adding another account." = "Wait for the current managed Codex login to finish before adding another account."; +"Waiting for Authentication..." = "Waiting for Authentication..."; +"Website" = "Website"; +"Weekly limit confetti" = "Weekly limit confetti"; +"Weekly token limit" = "Weekly token limit"; +"Weekly usage" = "Weekly usage"; +"Weekly usage unavailable for this account." = "Weekly usage unavailable for this account."; +"Window: \\(window)" = "Window: \\(window)"; +"Write logs to \\(self.fileLogPath) for debugging." = "Write logs to \\(self.fileLogPath) for debugging."; +"Yes" = "Yes"; +"\\(detail.modelCode): \\(usage)" = "\\(detail.modelCode): \\(usage)"; +"\\(name): \\(truncated)" = "\\(name): \\(truncated)"; +"\\(name): \\(updated) · 30d \\(cost)" = "\\(name): \\(updated) · 30d \\(cost)"; +"\\(name): fetching…\\(elapsed)" = "\\(name): fetching…\\(elapsed)"; +"\\(name): last attempt \\(when)" = "\\(name): last attempt \\(when)"; +"\\(name): no data yet" = "\\(name): no data yet"; +"\\(name): unsupported" = "\\(name): unsupported"; +"all browsers" = "all browsers"; +"available again." = "available again."; +"built_format" = "Built %@"; +"copilot_complete_in_browser" = "Complete sign in in your browser."; +"copilot_device_code" = "Device code copied to clipboard: %1$@\n\nVerify at: %2$@"; +"copilot_device_code_copied" = "Device code copied."; +"copilot_verify_at" = "Verify at %@"; +"copilot_waiting_text" = "Complete sign in in your browser.\nThis window closes automatically when sign-in completes."; +"copilot_window_closes_auto" = "This window closes automatically when sign-in completes."; +"cost_status_error" = "%1$@: %2$@"; +"cost_status_fetching" = "%1$@: fetching… %2$@"; +"cost_status_last_attempt" = "%1$@: last attempt %2$@"; +"cost_status_no_data" = "%@: no data yet"; +"cost_status_snapshot" = "%1$@: %2$@ · %3$@ %4$@"; +"cost_status_unsupported" = "%@: unsupported"; +"credits_remaining" = "Credits: %@"; +"cursor_on_demand" = "On-demand: %@"; +"cursor_on_demand_with_limit" = "On-demand: %1$@ / %2$@"; +"extra_usage_format" = "Extra usage: %1$@ / %2$@"; +"jetbrains_detected_generate" = "Detected: %@. Use the AI assistant once to generate quota data, then refresh CodexBar."; +"jetbrains_detected_select" = "Detected: %@. Select your preferred IDE in Settings, then refresh CodexBar."; +"last_fetch_failed_with_provider" = "Last %@ fetch failed:"; +"last_spend" = "Last spend: %@"; +"mcp_model_usage" = "%1$@: %2$@"; +"mcp_resets" = "Resets: %@"; +"mcp_window" = "Window: %@"; +"metric_average" = "Average (%1$@ + %2$@)"; +"metric_primary" = "Primary (%@)"; +"metric_secondary" = "Secondary (%@)"; +"metric_tertiary" = "Tertiary (%@)"; +"multiple_workspaces_found" = "CodexBar found multiple workspaces for %@. Please choose the workspace to add."; +"ory_session_…=…; csrftoken=…" = "ory_session_…=…; csrftoken=…"; +"overview_choose_providers" = "Choose up to %@ providers"; +"remove_account_message" = "Remove %@ from CodexBar? Its managed Codex home will be deleted."; +"version_format" = "Version %@"; +"vertex_ai_login_instructions" = "To track Vertex AI usage, authenticate with Google Cloud.\n\n1. Open Terminal\n2. Run: gcloud auth application-default login\n3. Follow the browser prompts to sign in\n4. Set your project: gcloud config set project PROJECT_ID\n\nOpen Terminal now?"; +"workspaceID is set but only opencode, opencodego, and deepgram support workspaceID." = "workspaceID is set but only opencode, opencodego, and deepgram support workspaceID."; +"© 2026 Peter Steinberger. MIT License." = "© 2026 Peter Steinberger. MIT License."; + +/* General Pane */ +"section_system" = "System"; +"section_usage" = "Zużycie"; +"section_automation" = "Automatyzacja"; +"language_title" = "Język"; +"language_subtitle" = "Zmień język interfejsu. Aby zmiana zaczęła w pełni obowiązywać, uruchom aplikację ponownie."; +"language_system" = "System"; +"language_english" = "English"; +"language_spanish" = "Español"; +"language_catalan" = "Català"; +"language_chinese_simplified" = "简体中文"; +"language_chinese_traditional" = "繁體中文"; +"language_portuguese_brazilian" = "Português (Brasil)"; +"language_swedish" = "Svenska"; +"language_french" = "Francuski"; +"language_dutch" = "Niderlandzki"; +"language_ukrainian" = "Ukraiński"; +"language_vietnamese" = "Wietnamski"; +"language_polish" = "Polski"; +"language_japanese" = "Japoński"; +"start_at_login_title" = "Uruchamiaj przy logowaniu"; +"start_at_login_subtitle" = "Automatycznie uruchamia CodexBar podczas startu Maca."; +"show_cost_summary" = "Pokaż podsumowanie kosztów"; +"show_cost_summary_subtitle" = "Odczytuje lokalne logi użycia. Pokazuje dziś + wybrany zakres historii w menu."; +"cost_history_days_title" = "Zakres historii: %d dni"; +"cost_auto_refresh_info" = "Auto-odświeżanie: co godzinę · Limit czasu: 10 min"; +"refresh_cadence_title" = "Częstotliwość odświeżania"; +"refresh_cadence_subtitle" = "Jak często CodexBar odpyta dostawców w tle."; +"manual_refresh_hint" = "Auto-odświeżanie jest wyłączone; użyj polecenia Odśwież w menu."; +"check_provider_status_title" = "Sprawdzaj status dostawców"; +"check_provider_status_subtitle" = "Sprawdza status OpenAI/Claude oraz Google Workspace dla Gemini/Antigravity i pokazuje incydenty na ikonie i w menu."; +"session_quota_notifications_title" = "Powiadomienia o limicie sesji"; +"session_quota_notifications_subtitle" = "Powiadamia, gdy limit 5-godzinnej sesji spadnie do 0% i gdy znów będzie dostępny."; +"quota_warning_notifications_title" = "Powiadomienia o ostrzeżeniach limitu"; +"quota_warning_notifications_subtitle" = "Ostrzega, gdy pozostały limit sesji lub tygodnia przekroczy skonfigurowane progi."; +"quota_warnings_title" = "Ostrzeżenia limitu"; +"quota_warning_session" = "sesja"; +"quota_warning_session_capitalized" = "Sesja"; +"quota_warning_weekly" = "tydzień"; +"quota_warning_weekly_capitalized" = "Tydzień"; +"quota_warning_notification_title" = "Niski limit %1$@ (%2$@)"; +"quota_warning_notification_body" = "Pozostało %1$@. Osiągnięto próg ostrzeżenia %2$d%% dla %3$@."; +"quota_warning_notification_body_with_account" = "Konto %1$@. Pozostało %2$@. Osiągnięto próg ostrzeżenia %3$d%% dla %4$@."; +"session_depleted_notification_title" = "Wyczerpano limit sesji (%@)"; +"session_depleted_notification_body" = "Pozostało 0%. Powiadomimy, gdy limit będzie ponownie dostępny."; +"session_restored_notification_title" = "Przywrócono limit sesji (%@)"; +"session_restored_notification_body" = "Limit sesji jest ponownie dostępny."; +"quota_warning_warn_at" = "Ostrzegaj przy"; +"quota_warning_global_threshold_subtitle" = "Procent pozostałego limitu dla okien sesji i tygodnia, chyba że dostawca ma nadpisanie."; +"quota_warning_sound" = "Odtwarzaj dźwięk powiadomienia"; +"quota_warning_provider_inherits" = "Używa globalnych ustawień ostrzeżeń limitu, chyba że to okno jest tutaj dostosowane."; +"quota_warning_customize_thresholds" = "Dostosuj progi dla %@"; +"quota_warning_enable_warnings" = "Włącz ostrzeżenia dla %@"; +"quota_warning_window_warn_at" = "%@ — ostrzegaj przy"; +"quota_warning_off" = "Wyłączone"; +"quota_warning_inherited" = "Dziedziczone: %@"; +"quota_warning_depleted_only" = "tylko wyczerpanie"; +"quota_warning_upper" = "Górny"; +"quota_warning_lower" = "Dolny"; +"apply" = "Zastosuj"; +"quit_app" = "Zakończ aplikację"; + +/* Tab titles */ +"tab_general" = "Ogólne"; +"tab_providers" = "Dostawcy"; +"tab_display" = "Wygląd"; +"tab_advanced" = "Zaawansowane"; +"tab_about" = "O aplikacji"; +"tab_debug" = "Debugowanie"; + +/* Providers Pane */ +"select_a_provider" = "Wybierz dostawcę"; +"cancel" = "Anuluj"; +"last_fetch_failed" = "ostatnie pobranie nieudane"; +"usage_not_fetched_yet" = "dane użycia nie zostały jeszcze pobrane"; +"managed_account_storage_unreadable" = "Managed account storage is unreadable. Live account access is still available, but managed add, re-auth, and remove actions are disabled until the store is recoverable."; +"remove_codex_account_title" = "Usunąć konto Codex?"; +"remove" = "Usuń"; +"managed_login_already_running" = "Trwa już zarządzane logowanie Codex. Poczekaj na zakończenie przed dodaniem lub ponowną autoryzacją kolejnego konta."; +"managed_login_failed" = "Managed Codex login did not complete. Verify that `codex --version` works in Terminal. If macOS blocked or moved `codex` to Trash, remove stale duplicate installs, run `npm install -g --include=optional @openai/codex@latest`, then try again."; +"codex_login_output" = "codex login output:"; +"managed_login_missing_email" = "Logowanie Codex zakończone, ale brak adresu e-mail konta. Spróbuj ponownie po potwierdzeniu pełnego zalogowania."; +"login_success_notification_title" = "%@ login successful"; +"login_success_notification_body" = "You can return to the app; authentication finished."; +"workspace_selection_cancelled" = "CodexBar wykrył wiele workspace, ale nie wybrano żadnego."; +"unsafe_managed_home" = "CodexBar refused to modify an unexpected managed home path: %@"; +"menu_bar_metric_title" = "Metryka paska menu"; +"menu_bar_metric_subtitle" = "Wybierz metrykę pokazywaną obok ikony na pasku menu."; +"menu_bar_metric_subtitle_deepseek" = "Shows the DeepSeek balance in the menu bar."; +"menu_bar_metric_subtitle_moonshot" = "Shows the Moonshot / Kimi API balance in the menu bar."; +"menu_bar_metric_subtitle_mistral" = "Shows current-month Mistral API spend in the menu bar."; +"menu_bar_metric_subtitle_kimik2" = "Shows Kimi K2 API-key credits in the menu bar."; +"automatic" = "Automatycznie"; +"primary_api_key_limit" = "Główny (limit klucza API)"; + +/* Display Pane */ +"section_menu_bar" = "Pasek menu"; +"merge_icons_title" = "Scal ikony"; +"merge_icons_subtitle" = "Używaj jednej ikony paska menu z przełącznikiem dostawcy."; +"switcher_shows_icons_title" = "Przełącznik pokazuje ikony"; +"switcher_shows_icons_subtitle" = "Pokazuj ikony dostawców w przełączniku (w przeciwnym razie linię postępu tygodniowego)."; +"show_most_used_provider_title" = "Pokaż najczęściej używanego dostawcę"; +"show_most_used_provider_subtitle" = "Pasek menu automatycznie pokazuje dostawcę najbliżej limitu."; +"menu_bar_shows_percent_title" = "Pokaż procent na pasku menu"; +"menu_bar_shows_percent_subtitle" = "Pokazuje procent zużycia/pozostałego limitu obok ikony."; +"display_mode_title" = "Tryb wyświetlania"; +"display_mode_subtitle" = "Wybierz, co pokazywać na pasku menu (Tempo pokazuje użycie względem oczekiwanego)."; +"section_menu_content" = "Zawartość menu"; +"show_usage_as_used_title" = "Pokazuj zużycie jako wykorzystane"; +"show_usage_as_used_subtitle" = "Zamiast pozostałego limitu pokazuje wartość już wykorzystaną."; +"show_quota_warning_markers_title" = "Pokaż znaczniki ostrzeżeń limitu"; +"show_quota_warning_markers_subtitle" = "Rysuje znaczniki progów na paskach użycia, gdy skonfigurowano ostrzeżenia limitu."; +"weekly_progress_work_days_title" = "Dni robocze postępu tygodniowego"; +"weekly_progress_work_days_subtitle" = "Rysuje znaczniki granic dni na tygodniowych paskach użycia."; +"show_reset_time_as_clock_title" = "Pokaż czas resetu jako godzinę"; +"show_reset_time_as_clock_subtitle" = "Pokazuje reset jako godzinę zegarową zamiast względnego czasu."; +"show_provider_changelog_links_title" = "Pokaż linki do changelogów dostawców"; +"show_provider_changelog_links_subtitle" = "Dodaje linki do informacji o wydaniach dla obsługiwanych dostawców CLI w menu."; +"show_credits_extra_usage_title" = "Pokaż kredyty + dodatkowe użycie"; +"show_credits_extra_usage_subtitle" = "Pokazuje sekcje Codex Credits i Claude Extra usage w menu."; +"show_all_token_accounts_title" = "Pokaż wszystkie konta tokenów"; +"show_all_token_accounts_subtitle" = "Układa konta tokenów w stos w menu (w przeciwnym razie pokazuje pasek przełączania kont)."; +"multi_account_layout_title" = "Układ wielu kont"; +"multi_account_layout_subtitle" = "Wybierz przełączanie segmentowe kont lub ułożone karty kont."; +"multi_account_layout_segmented" = "Segmentowy"; +"multi_account_layout_stacked" = "Ułożony"; +"overview_tab_providers_title" = "Dostawcy zakładki Przegląd"; +"configure" = "Skonfiguruj…"; +"overview_enable_merge_icons_hint" = "Włącz Scal ikony, aby skonfigurować dostawców zakładki Przegląd."; +"overview_no_providers_hint" = "Brak włączonych dostawców dla Przeglądu."; +"overview_rows_follow_order" = "Wiersze Przeglądu zawsze podążają za kolejnością dostawców."; +"overview_no_providers_selected" = "Nie wybrano dostawców"; + +/* Advanced Pane */ +"section_keyboard_shortcut" = "Skrót klawiaturowy"; +"open_menu_shortcut_title" = "Skrót otwierania menu"; +"open_menu_shortcut_subtitle" = "Skrót klawiaturowy do otwierania menu CodexBar."; +"install_cli" = "Zainstaluj CLI"; +"install_cli_subtitle" = "Utwórz dowiązanie symboliczne CodexBarCLI do /usr/local/bin i /opt/homebrew/bin jako codexbar."; +"cli_not_found" = "Nie znaleziono CodexBarCLI w pakiecie aplikacji."; +"no_writable_bin_dirs" = "Nie znaleziono zapisywalnych katalogów bin."; +"show_debug_settings_title" = "Pokaż ustawienia debugowania"; +"show_debug_settings_subtitle" = "Pokazuje dodatkowe ustawienia debugowania i diagnostyki."; +"surprise_me_title" = "Zaskocz mnie"; +"surprise_me_subtitle" = "Sprawdź, czy lubisz, gdy twoi agenci trochę się tam bawią."; +"weekly_limit_confetti_title" = "Konfetti limitu tygodniowego"; +"weekly_limit_confetti_subtitle" = "Odtwórz pełnoekranowe konfetti, gdy tygodniowe użycie się resetuje."; +"hide_personal_info_title" = "Ukryj dane osobowe"; +"hide_personal_info_subtitle" = "Ukrywa adresy e-mail na pasku menu i w interfejsie menu."; +"show_provider_storage_usage_title" = "Pokaż użycie dysku dostawców"; +"show_provider_storage_usage_subtitle" = "Pokazuje lokalne zużycie dysku w menu. Skanuje znane ścieżki dostawców w tle."; +"section_keychain_access" = "Dostęp do pęku kluczy"; +"keychain_access_caption" = "Disable all Keychain reads and writes. Use this if macOS keeps prompting for 'Chrome/Brave/Edge Safe Storage' even after clicking Always Allow. Browser cookie import is unavailable while enabled; paste Cookie headers manually in Providers. Claude/Codex OAuth via the CLI still works."; +"disable_keychain_access_title" = "Wyłącz dostęp do pęku kluczy"; +"disable_keychain_access_subtitle" = "Blokuje wszelki dostęp do pęku kluczy, gdy opcja jest włączona."; + +/* About Pane */ +"about_tagline" = "May your tokens never run out—keep agent limits in view."; +"link_github" = "GitHub"; +"link_website" = "Website"; +"link_twitter" = "Twitter"; +"link_email" = "Email"; +"check_updates_auto" = "Sprawdzaj aktualizacje automatycznie"; +"update_channel" = "Kanał aktualizacji"; +"check_for_updates" = "Sprawdź aktualizacje…"; +"updates_unavailable" = "Aktualizacje niedostępne w tej wersji."; +"copyright" = "© 2026 Peter Steinberger. MIT License."; + +/* Debug Pane */ +"section_logging" = "Logowanie"; +"enable_file_logging" = "Włącz logowanie do pliku"; +"enable_file_logging_subtitle" = "Write logs to %@ for debugging."; +"verbosity_title" = "Verbosity"; +"verbosity_subtitle" = "Controls how much detail is logged."; +"open_log_file" = "Otwórz plik logu"; +"force_animation_next_refresh" = "Force animation on next refresh"; +"force_animation_next_refresh_subtitle" = "Temporarily shows the loading animation after the next refresh."; +"section_loading_animations" = "Loading animations"; +"loading_animations_caption" = "Pick a pattern and replay it in the menu bar. \"Random\" keeps the existing behavior."; +"animation_random_default" = "Random (default)"; +"replay_selected_animation" = "Replay selected animation"; +"blink_now" = "Blink now"; +"section_probe_logs" = "Logi probe"; +"probe_logs_caption" = "Pobiera najnowszy wynik probe do debugowania; Kopiuj zachowuje pełną treść."; +"fetch_log" = "Fetch log"; +"copy" = "Kopiuj"; +"save_to_file" = "Zapisz do pliku"; +"load_parse_dump" = "Load parse dump"; +"rerun_provider_autodetect" = "Re-run provider autodetect"; +"loading" = "Loading…"; +"no_log_yet_fetch" = "Brak logu. Pobierz, aby wczytać."; +"section_fetch_strategy" = "Strategia pobierania"; +"fetch_strategy_caption" = "Ostatnie decyzje i błędy potoku pobierania dla dostawcy."; +"section_openai_cookies" = "Ciasteczka OpenAI"; +"openai_cookies_caption" = "Logi importu ciasteczek + zrzutu WebKit z ostatniej próby odczytu ciasteczek OpenAI."; +"no_log_yet" = "Brak logu. Zaktualizuj ciasteczka OpenAI w Dostawcy → Codex, aby uruchomić import."; +"section_caches" = "Caches"; +"caches_caption" = "Clear cached cost scan results or browser cookie caches."; +"clear_cookie_cache" = "Clear cookie cache"; +"clear_cost_cache" = "Clear cost cache"; +"section_notifications" = "Powiadomienia"; +"notifications_caption" = "Wyzwala testowe powiadomienia dla 5-godzinnego okna sesji (wyczerpanie/przywrócenie)."; +"post_depleted" = "Post depleted"; +"post_restored" = "Post restored"; +"section_cli_sessions" = "CLI sessions"; +"cli_sessions_caption" = "Keep Codex/Claude CLI sessions alive after a probe. Default exits once data is captured."; +"keep_cli_sessions_alive" = "Keep CLI sessions alive"; +"keep_cli_sessions_alive_subtitle" = "Skip teardown between probes (debug-only)."; +"reset_cli_sessions" = "Reset CLI sessions"; +"section_error_simulation" = "Symulacja błędów"; +"error_simulation_caption" = "Wstrzykuje fałszywy komunikat błędu do karty menu na potrzeby testów układu."; +"set_menu_error" = "Ustaw błąd menu"; +"clear_menu_error" = "Wyczyść błąd menu"; +"set_cost_error" = "Set cost error"; +"clear_cost_error" = "Clear cost error"; +"section_cli_paths" = "CLI paths"; +"cli_paths_caption" = "Resolved Codex binary and PATH layers; startup login PATH capture (short timeout)."; +"codex_binary" = "Codex binary"; +"claude_binary" = "Claude binary"; +"effective_path" = "Effective PATH"; +"unavailable" = "Unavailable"; +"login_shell_path" = "PATH powłoki logowania (przechwycony przy starcie)"; +"cleared" = "Cleared."; +"no_fetch_attempts" = "Brak prób pobrania."; +"macOS Tahoe can block menu bar apps in System Settings → Menu Bar → Allow in the Menu Bar. CodexBar is running, but macOS may be hiding its icon. Open Menu Bar settings and turn CodexBar on." = "macOS Tahoe can block menu bar apps in System Settings → Menu Bar → Allow in the Menu Bar. CodexBar is running, but macOS may be hiding its icon. Open Menu Bar settings and turn CodexBar on."; + +/* Metric preferences */ +"metric_pref_automatic" = "Automatic"; +"metric_pref_primary" = "Primary"; +"metric_pref_secondary" = "Secondary"; +"metric_pref_tertiary" = "Tertiary"; +"metric_pref_extra_usage" = "Extra usage"; +"metric_pref_average" = "Average"; + +/* Display modes */ +"display_mode_percent" = "Percent"; +"display_mode_pace" = "Pace"; +"display_mode_both" = "Both"; +"display_mode_percent_desc" = "Show remaining/used percentage (e.g. 45%)"; +"display_mode_pace_desc" = "Show pace indicator (e.g. +5%)"; +"display_mode_both_desc" = "Show both percentage and pace (e.g. 45% · +5%)"; + +/* Provider status */ +"status_operational" = "Operacyjne"; +"status_partial_outage" = "Częściowa awaria"; +"status_major_outage" = "Poważna awaria"; +"status_critical_issue" = "Krytyczny problem"; +"status_maintenance" = "Prace serwisowe"; +"status_unknown" = "Nieznany status"; + +/* Refresh frequency */ +"refresh_manual" = "Ręcznie"; +"refresh_1min" = "Co 1 min"; +"refresh_2min" = "Co 2 min"; +"refresh_5min" = "Co 5 min"; +"refresh_15min" = "Co 15 min"; +"refresh_30min" = "Co 30 min"; + +/* Additional keys */ +"not_found" = "Nie znaleziono"; + +/* Cost estimation */ +"cost_header_estimated" = "Cost (estimated)"; +"cost_estimate_hint" = "Estimated from local logs · may differ from your bill"; +"No JetBrains IDE with AI Assistant detected. Install a JetBrains IDE and enable AI Assistant." = "No JetBrains IDE with AI Assistant detected. Install a JetBrains IDE and enable AI Assistant."; +"OpenRouter API token not configured. Set OPENROUTER_API_KEY environment variable or configure in Settings." = "OpenRouter API token not configured. Set OPENROUTER_API_KEY environment variable or configure in Settings."; +"z.ai API token not found. Set apiKey in ~/.codexbar/config.json or Z_AI_API_KEY." = "z.ai API token not found. Set apiKey in ~/.codexbar/config.json or Z_AI_API_KEY."; +"Missing DeepSeek API key." = "Missing DeepSeek API key."; +"%@ is unavailable in the current environment." = "%@ is unavailable in the current environment."; +"All Systems Operational" = "Wszystkie systemy działają"; +"Last 30 days" = "Ostatnie 30 dni"; +"Last 30 days:" = "Ostatnie 30 dni:"; +"This month" = "This month"; +"Store multiple OpenAI API keys." = "Store multiple OpenAI API keys."; +"Admin API key" = "Admin API key"; +"Open billing" = "Open billing"; +"Google accounts" = "Google accounts"; +"Store multiple Antigravity Google OAuth accounts for quick switching." = "Store multiple Antigravity Google OAuth accounts for quick switching."; +"Add Google Account" = "Add Google Account"; +"Open Token Plan" = "Open Token Plan"; +"Text Generation" = "Text Generation"; +"Text to Speech" = "Text to Speech"; +"Music Generation" = "Music Generation"; +"Image Generation" = "Image Generation"; +"No local data found" = "No local data found"; +"Credits unavailable; keep Codex running to refresh." = "Credits unavailable; keep Codex running to refresh."; +"No available fetch strategy for minimax." = "No available fetch strategy for minimax."; +"No Cursor session found. Please log in to cursor.com in Safari, Chrome, Microsoft Edge, Brave, Arc, Dia, ChatGPT Atlas, Chromium, Helium, Vivaldi, Yandex Browser, Firefox, Zen, Colibri, Sidekick, Opera, Opera GX, or Edge Canary. If you use Safari, grant CodexBar Full Disk Access in System Settings ▸ Privacy & Security. You can also sign in to Cursor from the CodexBar menu (Add / switch account)." = "No Cursor session found. Please log in to cursor.com in Safari, Chrome, Microsoft Edge, Brave, Arc, Dia, ChatGPT Atlas, Chromium, Helium, Vivaldi, Yandex Browser, Firefox, Zen, Colibri, Sidekick, Opera, Opera GX, or Edge Canary. If you use Safari, grant CodexBar Full Disk Access in System Settings ▸ Privacy & Security. You can also sign in to Cursor from the CodexBar menu (Add / switch account)."; +"No OpenCode session cookies found in browsers." = "No OpenCode session cookies found in browsers."; +"No available fetch strategy for %@." = "No available fetch strategy for %@."; +"Today" = "Today"; +"Today tokens" = "Today tokens"; +"30d cost" = "30d cost"; +"30d tokens" = "30d tokens"; +"Latest tokens" = "Latest tokens"; +"Top model" = "Top model"; +"Storage" = "Storage"; +"Add Account..." = "Dodaj konto..."; +"Usage Dashboard" = "Panel użycia"; +"Status Page" = "Strona statusu"; +"Settings..." = "Ustawienia..."; +"About CodexBar" = "O CodexBar"; +"Quit" = "Zakończ"; +"Last %d day" = "Last %d day"; +"Last %d days" = "Last %d days"; +"%@ tokens" = "%@ tokens"; +"Latest billing day" = "Latest billing day"; +"Latest billing day (%@)" = "Latest billing day (%@)"; +"%@ left" = "%@ pozostało"; +"Resets %@" = "Resets %@"; +"Resets in %@" = "Reset za %@"; +"Resets now" = "Resets now"; +"Lasts until reset" = "Lasts until reset"; +"Updated %@" = "Zaktualizowano %@"; +"Updated %@h ago" = "Zaktualizowano %@ godz. temu"; +"Updated %@m ago" = "Zaktualizowano %@ min temu"; +"Updated just now" = "Zaktualizowano przed chwilą"; +"Projected empty in %@" = "Projected empty in %@"; +"Runs out in %@" = "Runs out in %@"; +"Pace: %@" = "Pace: %@"; +"Pace: %@ · %@" = "Pace: %@ · %@"; +"%@ · %@" = "%@ · %@"; +"≈ %d%% run-out risk" = "≈ %d%% run-out risk"; +"%d%% in deficit" = "%d%% in deficit"; +"%d%% in reserve" = "%d%% in reserve"; +"usage_percent_suffix_left" = "pozostało"; +"usage_percent_suffix_used" = "used"; +"Store multiple DeepSeek API keys." = "Store multiple DeepSeek API keys."; +"This week" = "This week"; +"Week" = "Week"; +"Month" = "Month"; +"Models" = "Models"; +"24h tokens" = "24h tokens"; +"Latest hour" = "Latest hour"; +"Peak hour" = "Peak hour"; +"Top method" = "Top method"; +"30d cash" = "30d cash"; +"30d billing history from MiniMax web session" = "30d billing history from MiniMax web session"; +"AWS Cost Explorer billing can lag." = "AWS Cost Explorer billing can lag."; +"Rate limit: %d / %@" = "Rate limit: %d / %@"; +"Key remaining" = "Key remaining"; +"No limit set for the API key" = "No limit set for the API key"; +"API key limit unavailable right now" = "API key limit unavailable right now"; +"This month: %@ tokens" = "This month: %@ tokens"; +"No utilization data yet." = "No utilization data yet."; +"No %@ utilization data yet." = "No %@ utilization data yet."; +"%@: %@%% used" = "%@: %@%% used"; +"%dd" = "%dd"; +"today" = "dzisiaj"; +"just now" = "just now"; +"On pace" = "On pace"; +"Runs out now" = "Runs out now"; +"Projected empty now" = "Projected empty now"; +"Switch Account..." = "Przełącz konto..."; +"Update ready, restart now?" = "Update ready, restart now?"; +"Daily" = "Daily"; +"Hourly Tokens" = "Hourly Tokens"; +"No data" = "No data"; +"No usage breakdown data available." = "No usage breakdown data available."; + +"Today: %@ · %@ tokens" = "Dziś: %@ · %@ tokenów"; +"Today: %@" = "Dziś: %@"; +"Today: %@ tokens" = "Dziś: %@ tokenów"; +"Last 30 days: %@ · %@ tokens" = "Ostatnie 30 dni: %@ · %@ tokenów"; +"Last 30 days: %@" = "Ostatnie 30 dni: %@"; +"Est. total (30d): %@" = "Est. total (30d): %@"; +"Est. total (%@): %@" = "Est. total (%@): %@"; +"Hover a bar for details" = "Najedź na słupek, aby zobaczyć szczegóły"; +"%@: %@ · %@ tokens" = "%@: %@ · %@ tokens"; +"No providers selected for Overview." = "No providers selected for Overview."; +"No overview data available." = "No overview data available."; +"Auto uses the local IDE API first, then Google OAuth when the IDE is closed." = "Auto uses the local IDE API first, then Google OAuth when the IDE is closed."; +"Login with Google" = "Login with Google"; + +/* Popup panels */ +"No usage configured." = "No usage configured."; +"Quota" = "Quota"; +"tokens" = "tokens"; +"requests" = "requests"; +"Latest" = "Latest"; +"Monthly" = "Monthly"; +"Sonnet" = "Sonnet"; +"Overages" = "Overages"; +"Activity" = "Activity"; +"Copied" = "Copied"; +"Copy error" = "Copy error"; +"Copy path" = "Copy path"; +"Extra usage spent" = "Extra usage spent"; +"Credits remaining" = "Pozostałe kredyty"; +"Using CLI fallback" = "Using CLI fallback"; +"Balance updates in near-real time (up to 5 min lag)" = "Balance updates in near-real time (up to 5 min lag)"; +"Daily billing data finalizes at 07:00 UTC" = "Daily billing data finalizes at 07:00 UTC"; +"%@ of %@ credits left" = "%@ z %@ kredytów pozostało"; +"%@ of %@ bonus credits left" = "%@ z %@ bonusowych kredytów pozostało"; +"%@ / %@ (%@ remaining)" = "%@ / %@ (%@ remaining)"; +"%@/%@ left" = "%@/%@ pozostało"; +"Gemini Flash" = "Gemini Flash"; +"Regenerates %@" = "Regenerates %@"; +"used after next regen" = "used after next regen"; +"after next regen" = "after next regen"; +"Near full" = "Near full"; +"Full in ~1 regen" = "Full in ~1 regen"; +"Full in ~%.0f regens" = "Full in ~%.0f regens"; +"Overage usage" = "Overage usage"; +"Overage cost" = "Overage cost"; +"credits" = "credits"; +"Zen balance" = "Zen balance"; +"API spend" = "API spend"; +"Extra usage" = "Extra usage"; +"Quota usage" = "Quota usage"; +"%.0f%% used" = "%.0f%% used"; +"Usage history (today)" = "Historia użycia (dzisiaj)"; +"Usage history (%d days)" = "Historia użycia (%d dni)"; +"%d percent remaining" = "%d percent remaining"; +"Unknown" = "Unknown"; +"stale data" = "stale data"; +"No credits history data." = "No credits history data."; +"No credits history data available." = "No credits history data available."; +"Credits history chart" = "Credits history chart"; +"%d days of credits data" = "%d days of credits data"; +"Usage breakdown chart" = "Usage breakdown chart"; +"%d days of usage data across %d services" = "%d days of usage data across %d services"; +"Cost history chart" = "Cost history chart"; +"%d days of cost data" = "%d days of cost data"; +"Plan utilization chart" = "Plan utilization chart"; +"%d utilization samples" = "%d utilization samples"; +"Hourly Usage" = "Hourly Usage"; +"Usage remaining" = "Usage remaining"; +"Usage used" = "Usage used"; +"API key verified. Ollama does not expose Cloud quota limits through the API." = "API key verified. Ollama does not expose Cloud quota limits through the API."; +"Last 30 days: %@ tokens" = "Ostatnie 30 dni: %@ tokenów"; +"7d spend" = "7d spend"; +"30d spend" = "30d spend"; +"Cache read" = "Cache read"; +"Claude Admin API 30 day spend trend" = "Claude Admin API 30 day spend trend"; +"OpenRouter API key spend trend" = "OpenRouter API key spend trend"; +"z.ai hourly token trend" = "z.ai hourly token trend"; +"MiniMax 30 day token usage trend" = "MiniMax 30 day token usage trend"; +"Today cash" = "Today cash"; +"DeepSeek 30 day token usage trend" = "DeepSeek 30 day token usage trend"; +"cache-hit input" = "cache-hit input"; +"cache-miss input" = "cache-miss input"; +"output" = "output"; +"Requests" = "Requests"; +"Reported by OpenAI Admin API organization usage." = "Reported by OpenAI Admin API organization usage."; +"Reported by Mistral billing usage." = "Reported by Mistral billing usage."; +"Google OAuth" = "Google OAuth"; +"Add accounts via GitHub OAuth Device Flow on the selected host." = "Add accounts via GitHub OAuth Device Flow on the selected host."; +"Stores each signed-in Google account for quick Antigravity switching. Uses Antigravity.app OAuth when available, or ANTIGRAVITY_OAUTH_CLIENT_ID and ANTIGRAVITY_OAUTH_CLIENT_SECRET as an override." = "Stores each signed-in Google account for quick Antigravity switching. Uses Antigravity.app OAuth when available, or ANTIGRAVITY_OAUTH_CLIENT_ID and ANTIGRAVITY_OAUTH_CLIENT_SECRET as an override."; +"Manual cleanup: past sessions" = "Manual cleanup: past sessions"; +"Clearing removes past resume, continue, and rewind history." = "Clearing removes past resume, continue, and rewind history."; +"Manual cleanup: file checkpoints" = "Manual cleanup: file checkpoints"; +"Clearing removes checkpoint restore data for previous edits." = "Clearing removes checkpoint restore data for previous edits."; +"Manual cleanup: saved plans" = "Manual cleanup: saved plans"; +"Clearing removes old plan-mode files." = "Clearing removes old plan-mode files."; +"Manual cleanup: debug logs" = "Manual cleanup: debug logs"; +"Clearing removes past debug logs." = "Clearing removes past debug logs."; +"Manual cleanup: attachment cache" = "Manual cleanup: attachment cache"; +"Clearing removes cached large pastes or attached images." = "Clearing removes cached large pastes or attached images."; +"Manual cleanup: session metadata" = "Manual cleanup: session metadata"; +"Clearing removes per-session environment metadata." = "Clearing removes per-session environment metadata."; +"Manual cleanup: shell snapshots" = "Manual cleanup: shell snapshots"; +"Clearing removes leftover runtime shell snapshot files." = "Clearing removes leftover runtime shell snapshot files."; +"Manual cleanup: legacy todos" = "Manual cleanup: legacy todos"; +"Clearing removes legacy per-session task lists." = "Clearing removes legacy per-session task lists."; +"Manual cleanup: sessions" = "Manual cleanup: sessions"; +"Clearing removes past Codex session history." = "Clearing removes past Codex session history."; +"Manual cleanup: archived sessions" = "Manual cleanup: archived sessions"; +"Clearing removes archived Codex session history." = "Clearing removes archived Codex session history."; +"Manual cleanup: cache" = "Manual cleanup: cache"; +"Clearing removes provider-owned cached data." = "Clearing removes provider-owned cached data."; +"Manual cleanup: logs" = "Manual cleanup: logs"; +"Clearing removes local diagnostic logs." = "Clearing removes local diagnostic logs."; +"Manual cleanup: file history" = "Manual cleanup: file history"; +"Clearing removes local edit checkpoint history." = "Clearing removes local edit checkpoint history."; +"Manual cleanup: temporary data" = "Manual cleanup: temporary data"; +"Clearing removes local temporary provider data." = "Clearing removes local temporary provider data."; +"Total: %@" = "Total: %@"; +"%d more items" = "%d more items"; +"Cleanup ideas" = "Cleanup ideas"; +"%d unreadable item(s) skipped" = "%d unreadable item(s) skipped"; + +"API key limit" = "API key limit"; +"Auth" = "Auth"; +"Auto" = "Automatycznie"; +"Disabled — no recent data" = "Disabled — no recent data"; +"Limits not available" = "Limits not available"; +"No usage yet" = "No usage yet"; +"Not fetched yet" = "Not fetched yet"; +"Refreshing" = "Odświeżanie"; +"Session" = "Sesja"; +"Source" = "Źródło"; +"State" = "Stan"; +"Unavailable" = "Unavailable"; +"Weekly" = "Tydzień"; +"not detected" = "not detected"; +"Estimated from local Codex logs for the selected account." = "Oszacowano na podstawie lokalnych logów Codex dla wybranego konta."; +"minimax_usage_amount_format" = "Usage: %@ / %@"; +"minimax_used_percent_format" = "Used %@"; +"minimax_service_text_generation" = "Text Generation"; +"minimax_service_text_to_speech" = "Text to Speech"; +"minimax_service_music_generation" = "Music Generation"; +"minimax_service_image_generation" = "Image Generation"; +"minimax_service_lyrics_generation" = "Lyrics generation"; +"minimax_service_coding_plan_vlm" = "Coding plan VLM"; +"minimax_service_coding_plan_search" = "Coding plan search"; + +/* Additional provider settings and alerts */ +"%@ is waiting for permission" = "%@ is waiting for permission"; +"%@ requests" = "%@ requests"; +"%@: %@ credits" = "%@: %@ credits"; +"30d requests" = "30d requests"; +"4 days" = "4 days"; +"5 days" = "5 days"; +"7 days" = "7 days"; +"API key verifies Ollama Cloud access; cookies still expose quota limits." = "API key verifies Ollama Cloud access; cookies still expose quota limits."; +"AWS access key ID. Can also be set with AWS_ACCESS_KEY_ID." = "AWS access key ID. Can also be set with AWS_ACCESS_KEY_ID."; +"AWS region. Can also be set with AWS_REGION." = "AWS region. Can also be set with AWS_REGION."; +"AWS secret access key. Can also be set with AWS_SECRET_ACCESS_KEY." = "AWS secret access key. Can also be set with AWS_SECRET_ACCESS_KEY."; +"Access key ID" = "Access key ID"; +"Add Account" = "Add Account"; +"Adding Account…" = "Adding Account…"; +"Antigravity login failed" = "Antigravity login failed"; +"Antigravity login timed out" = "Antigravity login timed out"; +"Auth source" = "Auth source"; +"Automatic imports browser cookies from Xiaomi MiMo." = "Automatycznie importuje pliki cookie przeglądarki z Xiaomi MiMo."; +"Automatic imports Windsurf session data from Chromium browser localStorage." = "Automatic imports Windsurf session data from Chromium browser localStorage."; +"Automatic imports browser cookies from Bailian." = "Automatic imports browser cookies from Bailian."; +"Automatically imports browser cookies." = "Automatically imports browser cookies."; +"Automatically imports browser session cookies." = "Automatically imports browser session cookies."; +"Azure OpenAI deployment name. AZURE_OPENAI_DEPLOYMENT_NAME is also supported." = "Azure OpenAI deployment name. AZURE_OPENAI_DEPLOYMENT_NAME is also supported."; +"Azure OpenAI key" = "Azure OpenAI key"; +"Azure OpenAI resource endpoint. AZURE_OPENAI_ENDPOINT is also supported." = "Azure OpenAI resource endpoint. AZURE_OPENAI_ENDPOINT is also supported."; +"Base URL" = "Base URL"; +"Base URL for the LLM-API-Key-Proxy instance." = "Base URL for the LLM-API-Key-Proxy instance."; +"Browser cookies" = "Browser cookies"; +"Cap end" = "Cap end"; +"Cap start" = "Cap start"; +"Capacity End" = "Capacity End"; +"Capacity Start" = "Capacity Start"; +"Changelog" = "Changelog"; +"Choose the Moonshot/Kimi API host for international or China mainland accounts." = "Choose the Moonshot/Kimi API host for international or China mainland accounts."; +"CodexBar can't replace a system account that is signed in with an API key only setup." = "CodexBar can't replace a system account that is signed in with an API key only setup."; +"CodexBar could not find saved auth for that account. Re-authenticate it and try again." = "CodexBar could not find saved auth for that account. Re-authenticate it and try again."; +"CodexBar could not read managed account storage. Recover the store before adding another account." = "CodexBar could not read managed account storage. Recover the store before adding another account."; +"CodexBar could not read saved auth for that account. Re-authenticate it and try again." = "CodexBar could not read saved auth for that account. Re-authenticate it and try again."; +"CodexBar could not read the current system account on this Mac." = "CodexBar could not read the current system account on this Mac."; +"CodexBar could not replace the live Codex auth on this Mac." = "CodexBar could not replace the live Codex auth on this Mac."; +"CodexBar could not safely preserve the current system account before switching." = "CodexBar could not safely preserve the current system account before switching."; +"CodexBar could not save the current system account before switching." = "CodexBar could not save the current system account before switching."; +"CodexBar could not update managed account storage." = "CodexBar could not update managed account storage."; +"CodexBar found another managed account that already uses the current system account. Resolve the duplicate account before switching." = "CodexBar found another managed account that already uses the current system account. Resolve the duplicate account before switching."; +"CodexBar will ask macOS Keychain for “%@” so it can decrypt browser cookies and authenticate your account. Click OK to continue." = "CodexBar will ask macOS Keychain for “%@” so it can decrypt browser cookies and authenticate your account. Click OK to continue."; +"CodexBar will ask macOS Keychain for the Claude Code OAuth token so it can fetch your Claude usage. Click OK to continue." = "CodexBar will ask macOS Keychain for the Claude Code OAuth token so it can fetch your Claude usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Amp cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Amp cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Augment cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Augment cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Claude cookie header so it can fetch Claude web usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Claude cookie header so it can fetch Claude web usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Cursor cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Cursor cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Factory cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Factory cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your GitHub Copilot token so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your GitHub Copilot token so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Kimi K2 API key so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Kimi K2 API key so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Kimi auth token so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Kimi auth token so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your MiniMax API token so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your MiniMax API token so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your MiniMax cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your MiniMax cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your OpenAI cookie header so it can fetch Codex dashboard extras. Click OK to continue." = "CodexBar will ask macOS Keychain for your OpenAI cookie header so it can fetch Codex dashboard extras. Click OK to continue."; +"CodexBar will ask macOS Keychain for your OpenCode cookie header so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your OpenCode cookie header so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your Synthetic API key so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your Synthetic API key so it can fetch usage. Click OK to continue."; +"CodexBar will ask macOS Keychain for your z.ai API token so it can fetch usage. Click OK to continue." = "CodexBar will ask macOS Keychain for your z.ai API token so it can fetch usage. Click OK to continue."; +"Could not open Cursor login in your browser." = "Could not open Cursor login in your browser."; +"Could not open browser for Antigravity" = "Could not open browser for Antigravity"; +"Credits used" = "Credits used"; +"Day" = "Day"; +"Deployment" = "Deployment"; +"Drag to reorder" = "Drag to reorder"; +"Endpoint" = "Endpoint"; +"Enterprise host" = "Enterprise host"; +"Extra usage balance: %@" = "Extra usage balance: %@"; +"Keychain Access Required" = "Keychain Access Required"; +"Kiro menu bar value" = "Kiro menu bar value"; +"Label" = "Label"; +"No organizations loaded. Click Refresh after setting your API key." = "No organizations loaded. Click Refresh after setting your API key."; +"No output captured." = "No output captured."; +"No system account" = "No system account"; +"Oasis-Token" = "Oasis-Token"; +"Open Augment (Log Out & Back In)" = "Open Augment (Log Out & Back In)"; +"Open Codebuff Dashboard" = "Open Codebuff Dashboard"; +"Open Command Code Settings" = "Open Command Code Settings"; +"Open Crof dashboard" = "Open Crof dashboard"; +"Open Manus" = "Open Manus"; +"Open MiMo Balance" = "Open MiMo Balance"; +"Open Moonshot Console" = "Open Moonshot Console"; +"Open Ollama API Keys" = "Open Ollama API Keys"; +"Open StepFun Platform" = "Open StepFun Platform"; +"Open T3 Chat Settings" = "Open T3 Chat Settings"; +"Open Volcengine Ark Console" = "Open Volcengine Ark Console"; +"Open legacy provider docs" = "Open legacy provider docs"; +"Open projects" = "Open projects"; +"Open this URL manually to continue login:\n\n%@" = "Open this URL manually to continue login:\n\n%@"; +"Optional organization ID for accounts linked to multiple Anthropic organizations." = "Optional organization ID for accounts linked to multiple Anthropic organizations."; +"Optional. Applies to the configured Admin API key; selected token accounts do not inherit OPENAI_PROJECT_ID." = "Optional. Applies to the configured Admin API key; selected token accounts do not inherit OPENAI_PROJECT_ID."; +"Optional. Enter your GitHub Enterprise host, for example octocorp.ghe.com. Leave blank for github.com." = "Optional. Enter your GitHub Enterprise host, for example octocorp.ghe.com. Leave blank for github.com."; +"Optional. Leave blank to discover and aggregate projects visible to the API key." = "Optional. Leave blank to discover and aggregate projects visible to the API key."; +"Org ID (optional)" = "Org ID (optional)"; +"Organizations" = "Organizations"; +"Password" = "Password"; +"%@ authentication is disabled." = "%@ authentication is disabled."; +"%@ cookies are disabled." = "%@ cookies are disabled."; +"%@ web API access is disabled." = "%@ web API access is disabled."; +"Disable %@ dashboard cookie usage." = "Disable %@ dashboard cookie usage."; +"Keychain access is disabled in Advanced, so browser cookie import is unavailable." = "Keychain access is disabled in Advanced, so browser cookie import is unavailable."; +"Manually paste an %@ from a browser session." = "Manually paste an %@ from a browser session."; +"Paste a Cookie header captured from %@." = "Paste a Cookie header captured from %@."; +"Paste a Cookie header from %@." = "Paste a Cookie header from %@."; +"Paste a Cookie header or cURL capture from %@." = "Paste a Cookie header or cURL capture from %@."; +"Paste a Cookie header or full cURL capture from %@." = "Paste a Cookie header or full cURL capture from %@."; +"Paste a Cookie or Authorization header from %@." = "Paste a Cookie or Authorization header from %@."; +"Paste a full cookie header or the %@ value." = "Paste a full cookie header or the %@ value."; +"Paste a Cookie header or full cURL capture from T3 Chat settings." = "Paste a Cookie header or full cURL capture from T3 Chat settings."; +"Paste the Cookie header from a request to admin.mistral.ai. Must contain an ory_session_* cookie." = "Paste the Cookie header from a request to admin.mistral.ai. Must contain an ory_session_* cookie."; +"Paste the Oasis-Token from a logged-in browser session on platform.stepfun.com." = "Paste the Oasis-Token from a logged-in browser session on platform.stepfun.com."; +"Paste the %@ JSON bundle from %@." = "Paste the %@ JSON bundle from %@."; +"Paste the %@ value or a full Cookie header." = "Paste the %@ value or a full Cookie header."; +"Personal account" = "Personal account"; +"Project ID" = "Project ID"; +"Re-auth" = "Re-auth"; +"Re-login at claude.ai" = "Zaloguj się ponownie na claude.ai"; +"Re-authenticating…" = "Re-authenticating…"; +"Refresh Session" = "Odśwież sesję"; +"Refresh organizations" = "Odśwież organizacje"; +"Region" = "Region"; +"Reload" = "Reload"; +"Reorder" = "Reorder"; +"Secret access key" = "Secret access key"; +"Series" = "Series"; +"Service" = "Service"; +"Show or hide Kiro credits, percent, or both next to the menu bar icon." = "Show or hide Kiro credits, percent, or both next to the menu bar icon."; +"Show usage for organizations you belong to. Personal account is always shown." = "Show usage for organizations you belong to. Personal account is always shown."; +"Sign in to cursor.com in your browser, then refresh Cursor in CodexBar." = "Sign in to cursor.com in your browser, then refresh Cursor in CodexBar."; +"Simulated error text" = "Simulated error text"; +"StepFun platform account (phone number or email)." = "StepFun platform account (phone number or email)."; +"Stored in ~/.codexbar/config.json." = "Stored in ~/.codexbar/config.json."; +"Stored in ~/.codexbar/config.json. AZURE_OPENAI_API_KEY is also supported." = "Stored in ~/.codexbar/config.json. AZURE_OPENAI_API_KEY is also supported."; +"Stored in ~/.codexbar/config.json. For the official Kimi API, use Moonshot / Kimi API." = "Stored in ~/.codexbar/config.json. For the official Kimi API, use Moonshot / Kimi API."; +"Stored in ~/.codexbar/config.json. Get your API key from the Volcengine Ark console." = "Stored in ~/.codexbar/config.json. Get your API key from the Volcengine Ark console."; +"Stored in ~/.codexbar/config.json. Get your key from Ollama settings." = "Stored in ~/.codexbar/config.json. Get your key from Ollama settings."; +"Stored in ~/.codexbar/config.json. Get your key from console.deepgram.com." = "Stored in ~/.codexbar/config.json. Get your key from console.deepgram.com."; +"Stored in ~/.codexbar/config.json. Get your key from elevenlabs.io/app/settings/api-keys." = "Stored in ~/.codexbar/config.json. Get your key from elevenlabs.io/app/settings/api-keys."; +"Stored in ~/.codexbar/config.json. Get your key from openrouter.ai/settings/keys and set a key spending limit there to enable API key quota tracking." = "Stored in ~/.codexbar/config.json. Get your key from openrouter.ai/settings/keys and set a key spending limit there to enable API key quota tracking."; +"Stored in ~/.codexbar/config.json. In Warp, open Settings > Platform > API Keys, then create one." = "Stored in ~/.codexbar/config.json. In Warp, open Settings > Platform > API Keys, then create one."; +"Stored in ~/.codexbar/config.json. Metrics require Groq Enterprise Prometheus access." = "Stored in ~/.codexbar/config.json. Metrics require Groq Enterprise Prometheus access."; +"Stored in ~/.codexbar/config.json. OPENAI_ADMIN_KEY is preferred; OPENAI_API_KEY still works." = "Stored in ~/.codexbar/config.json. OPENAI_ADMIN_KEY is preferred; OPENAI_API_KEY still works."; +"Stored in ~/.codexbar/config.json. Requires an Anthropic Admin API key." = "Stored in ~/.codexbar/config.json. Requires an Anthropic Admin API key."; +"Stored in ~/.codexbar/config.json. Used for /v1/quota-stats." = "Stored in ~/.codexbar/config.json. Used for /v1/quota-stats."; +"Stored in ~/.codexbar/config.json. You can also provide CODEBUFF_API_KEY or let CodexBar read ~/.config/manicode/credentials.json (created by `codebuff login`)." = "Stored in ~/.codexbar/config.json. You can also provide CODEBUFF_API_KEY or let CodexBar read ~/.config/manicode/credentials.json (created by `codebuff login`)."; +"Stored in ~/.codexbar/config.json. You can also provide CROF_API_KEY." = "Stored in ~/.codexbar/config.json. You can also provide CROF_API_KEY."; +"Stored in ~/.codexbar/config.json. You can also provide KILO_API_KEY or ~/.local/share/kilo/auth.json (kilo.access)." = "Stored in ~/.codexbar/config.json. You can also provide KILO_API_KEY or ~/.local/share/kilo/auth.json (kilo.access)."; +"T3 Chat cookie" = "T3 Chat cookie"; +"That account is no longer available in CodexBar. Refresh the account list and try again." = "That account is no longer available in CodexBar. Refresh the account list and try again."; +"The browser login did not complete in time. Try Antigravity login again." = "The browser login did not complete in time. Try Antigravity login again."; +"Timed out waiting for Cursor login. %@" = "Timed out waiting for Cursor login. %@"; +"Timed out waiting for Cursor login. %@ Last error: %@" = "Timed out waiting for Cursor login. %@ Last error: %@"; +"Today requests" = "Today requests"; +"Total (30d): %@ credits" = "Total (30d): %@ credits"; +"Username" = "Username"; +"Uses username + password to login and obtain an Oasis-Token automatically." = "Uses username + password to login and obtain an Oasis-Token automatically."; +"Uses username + password to login and obtain an %@ automatically." = "Uses username + password to login and obtain an %@ automatically."; +"Utilization End" = "Utilization End"; +"Utilization Start" = "Utilization Start"; +"Verbosity" = "Verbosity"; +"Windsurf session JSON bundle" = "Windsurf session JSON bundle"; +"Workspace ID" = "Workspace ID"; +"Your StepFun platform password. Used to login and obtain a session token." = "Your StepFun platform password. Used to login and obtain a session token."; +"claude /login exited with status %d." = "claude /login exited with status %d."; +"codex login exited with status %d." = "codex login exited with status %d."; +"Cookie: …\n\nor paste a cURL capture from the Abacus AI dashboard" = "Cookie: …\n\nor paste a cURL capture from the Abacus AI dashboard"; +"Cookie: …\n\nor paste the __Secure-next-auth.session-token value" = "Cookie: …\n\nor paste the __Secure-next-auth.session-token value"; +"Cookie: …\n\nor paste the kimi-auth token value" = "Cookie: …\n\nor paste the kimi-auth token value"; +"session_id=...\n\nor paste just the session_id value" = "session_id=...\n\nor paste just the session_id value"; +"Clear" = "Clear"; +"No matching providers" = "No matching providers"; +"Search providers" = "Szukaj dostawców"; + +"Request quota: %@ / %@" = "Limit żądań: %@ / %@"; diff --git a/Sources/CodexBar/Resources/pt-BR.lproj/Localizable.strings b/Sources/CodexBar/Resources/pt-BR.lproj/Localizable.strings index 98a98f57b..45e4ddd3b 100644 --- a/Sources/CodexBar/Resources/pt-BR.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/pt-BR.lproj/Localizable.strings @@ -404,6 +404,7 @@ "language_french" = "Francês"; "language_ukrainian" = "Ucraniano"; "language_japanese" = "Japonês"; +"language_polish" = "Polski"; "start_at_login_title" = "Iniciar ao fazer login"; "start_at_login_subtitle" = "Abre o CodexBar automaticamente ao iniciar o Mac."; "show_cost_summary" = "Mostrar resumo de custos"; diff --git a/Sources/CodexBar/Resources/sv.lproj/Localizable.strings b/Sources/CodexBar/Resources/sv.lproj/Localizable.strings index ad74f19f3..dd844091c 100644 --- a/Sources/CodexBar/Resources/sv.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/sv.lproj/Localizable.strings @@ -405,6 +405,7 @@ "language_french" = "Franska"; "language_ukrainian" = "Ukrainska"; "language_japanese" = "Japanska"; +"language_polish" = "Polski"; "start_at_login_title" = "Starta vid inloggning"; "start_at_login_subtitle" = "Öppnar CodexBar automatiskt när du startar din Mac."; "show_cost_summary" = "Visa kostnadssammanfattning"; diff --git a/Sources/CodexBar/Resources/uk.lproj/Localizable.strings b/Sources/CodexBar/Resources/uk.lproj/Localizable.strings index 37212d56d..57a6b71dd 100644 --- a/Sources/CodexBar/Resources/uk.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/uk.lproj/Localizable.strings @@ -405,6 +405,7 @@ "language_ukrainian" = "Українська"; "language_japanese" = "Японська"; "language_vietnamese" = "В'єтнамська"; +"language_polish" = "Польська"; "start_at_login_title" = "Почніть із входу"; "start_at_login_subtitle" = "Автоматично відкриває CodexBar під час запуску Mac."; "show_cost_summary" = "Показати підсумок витрат"; diff --git a/Sources/CodexBar/Resources/vi.lproj/Localizable.strings b/Sources/CodexBar/Resources/vi.lproj/Localizable.strings index a737b0edc..582cd3b2f 100644 --- a/Sources/CodexBar/Resources/vi.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/vi.lproj/Localizable.strings @@ -1067,3 +1067,4 @@ "Search providers" = "Tìm kiếm nhà cung cấp"; "language_vietnamese" = "Tiếng Việt"; +"language_polish" = "Tiếng Ba Lan"; diff --git a/Sources/CodexBar/Resources/zh-Hans.lproj/Localizable.strings b/Sources/CodexBar/Resources/zh-Hans.lproj/Localizable.strings index 661ad9786..a5511ae82 100644 --- a/Sources/CodexBar/Resources/zh-Hans.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/zh-Hans.lproj/Localizable.strings @@ -411,6 +411,7 @@ "language_french" = "法语"; "language_ukrainian" = "乌克兰语"; "language_japanese" = "日语"; +"language_polish" = "Polski"; "start_at_login_title" = "开机启动"; "start_at_login_subtitle" = "启动 Mac 时自动打开 CodexBar。"; "show_cost_summary" = "显示费用摘要"; diff --git a/Sources/CodexBar/Resources/zh-Hant.lproj/Localizable.strings b/Sources/CodexBar/Resources/zh-Hant.lproj/Localizable.strings index 769076f22..d9cd8ddb7 100644 --- a/Sources/CodexBar/Resources/zh-Hant.lproj/Localizable.strings +++ b/Sources/CodexBar/Resources/zh-Hant.lproj/Localizable.strings @@ -411,6 +411,7 @@ "language_french" = "法語"; "language_ukrainian" = "烏克蘭語"; "language_japanese" = "日語"; +"language_polish" = "Polski"; "start_at_login_title" = "登入時啟動"; "start_at_login_subtitle" = "登入 Mac 時自動開啟 CodexBar。"; "show_cost_summary" = "顯示費用摘要"; diff --git a/Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift b/Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift index a2ffe874e..41096efed 100644 --- a/Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift +++ b/Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift @@ -17,6 +17,7 @@ struct LocalizationLanguageCatalogTests { "language_ukrainian", "language_vietnamese", "language_japanese", + "language_polish", ] @Test