/* AppBrand.name ("Meetings") is intentionally omitted — the app name stays fixed in code. */

/* MARK: - Common */
"OK" = "OK";
"Cancel" = "Cancel";
"Continue" = "Continue";
"Apply" = "Apply";
"Reset" = "Reset";
"Save" = "Save";
"Copy" = "Copy";
"Copied" = "Copied";
"Close" = "Close";
"Join" = "Join";
"None" = "None";
"Link" = "Link";
"Stop" = "Stop";
"Address" = "Address";
"Title" = "Title";
"Notes" = "Notes";
"Start" = "Start";
"Premium" = "Premium";
"Popular" = "Popular";
"Browser" = "Browser";
"Meeting" = "Meeting";
"Error" = "Error";
"Success" = "Success";

/* MARK: - Status bar */
"Meetings status menu" = "Meetings status menu";
"Open App" = "Open App";
"Join Meetings" = "Join Meetings";
"Schedule" = "Schedule";
"Calendar" = "Calendar";
"Widgets" = "Widgets";
"AI Companion" = "AI Companion";
"Settings" = "Settings";
"Top meetings" = "Top meetings";
"No upcoming meetings" = "No upcoming meetings";
"Sign Out" = "Sign Out";
"Sign In" = "Sign In";
"Quit" = "Quit";

/* MARK: - Launch splash */
"Preparing your meetings workspace" = "Preparing your meetings workspace";
"CONNECTING SERVICES" = "CONNECTING SERVICES";
"READY" = "READY";
"Plan smart, achieve more" = "Plan smart, achieve more";

/* MARK: - Widgets */
"Add Widget to Desktop" = "Add Widget to Desktop";
"Choose a size and add your Google Meet widget." = "Choose a size and add your Google Meet widget.";
"Tip: Right-click a desktop widget to remove it." = "Tip: Right-click a desktop widget to remove it.";
"Removed %@ widget from desktop." = "Removed %@ widget from desktop.";
"Added %@ widget from desktop." = "Added %@ widget from desktop.";
"Widgets are Premium only. Upgrade to add widgets." = "Widgets are Premium only. Upgrade to add widgets.";
"Remove Widget" = "Remove Widget";
"Small" = "Small";
"Medium" = "Medium";
"Quick actions" = "Quick actions";
"Open Meet" = "Open Meet";
"Upcoming meetings" = "Upcoming meetings";
"Sign in to see upcoming meetings" = "Sign in to see upcoming meetings";
"Sign in with Google" = "Sign in with Google";
"Google Meet" = "Google Meet";
"Open and join quickly" = "Open and join quickly";
"Refresh" = "Refresh";

/* MARK: - Sidebar & navigation */
"Planning" = "Planning";
"Additional" = "Additional";
"Get Premium" = "Get Premium";
"Manage Subscription" = "Manage Subscription";
"App for Google Meet" = "App for Google Meet";

/* MARK: - Join meetings */
"New Instant Meet" = "New Instant Meet";
"Start instant Meet in more section with\nGoogle Meet meet." = "Start instant Meet in more section with\nGoogle Meet meet.";
"Join with Link" = "Join with Link";
"Code or meet.google.com/…" = "Code or meet.google.com/…";
"Join with ID" = "Join with ID";
"Join with URL" = "Join with URL";
"Meeting URL" = "Meeting URL";
"Enter meeting URL..." = "Enter meeting URL...";
"Quick Join Meeting" = "Quick Join Meeting";
"Invalid Meet link" = "Invalid Meet link";
"Enter a valid Google Meet link or meeting code (for example nkd-grps-duv, meet.google.com/nkd-grps-duv, or https://meet.google.com/nkd-grps-duv)." = "Enter a valid Google Meet link or meeting code (for example nkd-grps-duv, meet.google.com/nkd-grps-duv, or https://meet.google.com/nkd-grps-duv).";
"Instant Meeting" = "Instant Meeting";
"Connect Google to start Instant Meeting" = "Connect Google to start Instant Meeting";
"To auto-stop recording when the meeting ends, connect your Google account first." = "To auto-stop recording when the meeting ends, connect your Google account first.";
"Could not create Instant Meeting" = "Could not create Instant Meeting";
"Free trial used. Upgrade to continue." = "Free trial used. Upgrade to continue.";

/* MARK: - Browse web */
"Browse the web" = "Browse the web";
"Enter a web address (for example meet.google.com)." = "Enter a web address (for example meet.google.com).";
"Invalid address" = "Invalid address";
"Enter a valid http or https URL." = "Enter a valid http or https URL.";
"Browse" = "Browse";
"Quick links" = "Quick links";
"Zoom help" = "Zoom help";
"https://example.com or example.com" = "https://example.com or example.com";
"Enter a valid web address, for example https://example.com" = "Enter a valid web address, for example https://example.com";
"Address not allowed" = "Address not allowed";
"This URL is not permitted with the current in-app browser policy (whitelist)." = "This URL is not permitted with the current in-app browser policy (whitelist).";
"Unable to load page" = "Unable to load page";
"Could not load this page in the in-app browser.\n\n%@" = "Could not load this page in the in-app browser.\n\n%@";
"Page stopped loading" = "Page stopped loading";
"Unable to open browser" = "Unable to open browser";
"Unable to Open Safari" = "Unable to Open Safari";

/* MARK: - Schedule & calendar */
"All" = "All";
"Today" = "Today";
"This week" = "This week";
"This month" = "This month";
"Previous week" = "Previous week";
"Previous month" = "Previous month";
"Custom range" = "Custom range";
"No meetings match the selected filters." = "No meetings match the selected filters.";
"Adjust the date range and tap Apply." = "Adjust the date range and tap Apply.";
"Premium required. Get Premium now to unlock Calendar." = "Premium required. Get Premium now to unlock Calendar.";
"Premium required. Click to open paywall." = "Premium required. Click to open paywall.";
"Get Premium to see events" = "Get Premium to see events";
"Connect Google" = "Connect Google";
"Sign in with Google first to schedule a meeting from Calendar." = "Sign in with Google first to schedule a meeting from Calendar.";
"Select date" = "Select date";
"Choose a date to schedule your meeting." = "Choose a date to schedule your meeting.";
"Google schedule" = "Google schedule";
"To show scheduled meetings, connect your Google account. You’ll need a Google OAuth client ID (Desktop) and a redirect URI matching the app’s callback scheme." = "To show scheduled meetings, connect your Google account. You’ll need a Google OAuth client ID (Desktop) and a redirect URI matching the app’s callback scheme.";
"Actions" = "Actions";
"Schedule meeting" = "Schedule meeting";
"Team sync" = "Team sync";
"Duration (min)" = "Duration (min)";
"Refresh saved meetings" = "Refresh saved meetings";

/* MARK: - Settings */
"Manage appearance, account, and app options." = "Manage appearance, account, and app options.";
"Appearance" = "Appearance";
"Account" = "Account";
"App" = "App";
"Notifications" = "Notifications";
"Help & Legal" = "Help & Legal";
"Dark Mode" = "Dark Mode";
"Rate Us" = "Rate Us";
"Share App" = "Share App";
"Upgrade" = "Upgrade";
"Privacy Policy" = "Privacy Policy";
"Support" = "Support";
"Terms of Services" = "Terms of Services";
"AI Language 1" = "AI Language 1";
"AI Language 2" = "AI Language 2";
"Google account connected" = "Google account connected";
"Google account not connected" = "Google account not connected";
"Signed in" = "Signed in";
"Sign in to sync your meetings and calendar." = "Sign in to sync your meetings and calendar.";
"Log out" = "Log out";
"Check out %@ for managing and joining meetings." = "Check out %@ for managing and joining meetings.";
"Meetings App" = "Meetings App";

/* MARK: - Recording consent */
"Record this meeting locally?" = "Record this meeting locally?";
"With your consent, the app will record meeting audio on this Mac and show it in AI Companion after the meeting." = "With your consent, the app will record meeting audio on this Mac and show it in AI Companion after the meeting.";
"Allow and Continue" = "Allow and Continue";
"Continue Without Recording" = "Continue Without Recording";
"Transcription Languages" = "Transcription Languages";
"Preferred Language 1" = "Preferred Language 1";
"Preferred Language 2" = "Preferred Language 2";
"Microphone permission denied" = "Microphone permission denied";
"Microphone permission required" = "Microphone permission required";
"Enable microphone access in System Settings to record meetings locally." = "Enable microphone access in System Settings to record meetings locally.";
"Could not start recording" = "Could not start recording";
"Recording will start when the meeting starts" = "Recording will start when the meeting starts";
"Meeting recording started (meeting + microphone)" = "Meeting recording started (meeting + microphone)";
"System audio unavailable. Recording microphone only." = "System audio unavailable. Recording microphone only.";
"Meeting recording started (microphone only)" = "Meeting recording started (microphone only)";
"Meeting recording saved" = "Meeting recording saved";

/* MARK: - AI Companion */
"Get notes from your previous meetings" = "Get notes from your previous meetings";
"Connect your Google account to see your AI Companion meeting history." = "Connect your Google account to see your AI Companion meeting history.";
"No previous meetings yet for %@. End a meeting to save it here and generate notes." = "No previous meetings yet for %@. End a meeting to save it here and generate notes.";
"this account" = "this account";
"Previous meetings" = "Previous meetings";
"Recording in progress: %@" = "Recording in progress: %@";
"Started: %@" = "Started: %@";
"Stop Recording" = "Stop Recording";
"Date: %@" = "Date: %@";
"Saved time: %@" = "Saved time: %@";
"Get Notes" = "Get Notes";
"Premium required. Click to unlock AI Companion notes." = "Premium required. Click to unlock AI Companion notes.";
"Play Audio" = "Play Audio";
"Pause Audio" = "Pause Audio";
"Stopped" = "Stopped";
"Speaking..." = "Speaking...";
"Paused" = "Paused";
"Playing..." = "Playing...";
"Not playing" = "Not playing";
"Checking audio..." = "Checking audio...";
"Audio file missing" = "Audio file missing";
"Could not play recording" = "Could not play recording";
"Failed: %@" = "Failed: %@";
"Failed to play audio" = "Failed to play audio";
"decode error" = "decode error";
"Loading..." = "Loading...";
"Buffering..." = "Buffering...";
"Finished" = "Finished";
"Transcript not requested" = "Transcript not requested";
"Transcript processing..." = "Transcript processing...";
"Transcript ready" = "Transcript ready";
"Transcript unavailable (tap to retry)" = "Transcript unavailable (tap to retry)";
"Notes not requested" = "Notes not requested";
"Preparing notes, please wait..." = "Preparing notes, please wait...";
"Notes ready" = "Notes ready";
"Notes unavailable (tap to retry)" = "Notes unavailable (tap to retry)";
"Transcript unavailable" = "Transcript unavailable";
"Notes unavailable" = "Notes unavailable";
"Could not find recording details for this meeting." = "Could not find recording details for this meeting.";
"Transcript - %@" = "Transcript - %@";
"Notes - %@" = "Notes - %@";
"Meeting Notes" = "Meeting Notes";
"Transcript processing..." = "Transcript processing...";

/* MARK: - Paywall & StoreKit */
"Meetings Pro" = "Meetings Pro";
"PREMIUM EXPERIENCE" = "PREMIUM EXPERIENCE";
"Elevate your meetings workflow" = "Elevate your meetings workflow";
"Unlock automation, premium meeting tools, and priority support for every session." = "Unlock automation, premium meeting tools, and priority support for every session.";
"Manage meetings" = "Manage meetings";
"Smart scheduling" = "Smart scheduling";
"Faster workflow" = "Faster workflow";
"Reminder notifications" = "Reminder notifications";
"Monthly" = "Monthly";
"Bi Yearly" = "Bi Yearly";
"Yearly" = "Yearly";
"Most Popular" = "Most Popular";
"%@ • Most Popular" = "%@ • Most Popular";
"3 days free trial" = "3 days free trial";
"Cancel anytime" = "Cancel anytime";
"No lock-in" = "No lock-in";
"Instant access" = "Instant access";
"Unlock all tools" = "Unlock all tools";
"Secure billing" = "Secure billing";
"Handled by Apple" = "Handled by Apple";
"Secured by Apple. Cancel anytime." = "Secured by Apple. Cancel anytime.";
"Restore Purchase" = "Restore Purchase";
"Continue with free plan" = "Continue with free plan";
"Already Premium" = "Already Premium";
"You are already premium. Do you want to continue with this purchase?" = "You are already premium. Do you want to continue with this purchase?";
"Current plan: %@. Choose a different package to switch." = "Current plan: %@. Choose a different package to switch.";
"Premium is active on this Apple ID." = "Premium is active on this Apple ID.";
"Free for %@, then %@" = "Free for %@, then %@";
"Billed via App Store" = "Billed via App Store";
"%@  •  %@" = "%@  •  %@";
"Save 0%" = "Save 0%";
"Save %@%%" = "Save %@%%";
"month" = "month";
"year" = "year";
"%@ free trial" = "%@ free trial";
"Processing..." = "Processing...";
"Premium Active" = "Premium Active";
"Continue with 3 day trail" = "Continue with 3 day trail";
"Please Wait" = "Please Wait";
"A purchase is already being processed." = "A purchase is already being processed.";
"This Apple ID already has premium access." = "This Apple ID already has premium access.";
"Purchase Complete" = "Purchase Complete";
"Premium has been unlocked successfully." = "Premium has been unlocked successfully.";
"Purchase Pending" = "Purchase Pending";
"Your purchase is pending approval. You can continue once it completes." = "Your purchase is pending approval. You can continue once it completes.";
"Product Not Available" = "Product Not Available";
"Unable to load this product. Check your StoreKit configuration and product IDs." = "Unable to load this product. Check your StoreKit configuration and product IDs.";
"Already Purchased" = "Already Purchased";
"This plan is already active on your Apple ID." = "This plan is already active on your Apple ID.";
"Purchase Failed" = "Purchase Failed";
"Restore Purchases" = "Restore Purchases";
"Purchases restored successfully." = "Purchases restored successfully.";
"No previous premium purchase was found for this Apple ID." = "No previous premium purchase was found for this Apple ID.";
"Restore failed: %@" = "Restore failed: %@";
"Unable to Open Subscriptions" = "Unable to Open Subscriptions";
"The subscriptions URL is invalid." = "The subscriptions URL is invalid.";
"%@ tapped." = "%@ tapped.";

/* MARK: - Auth */
"Google Sign-In" = "Google Sign-In";

/* MARK: - Speech / transcript errors */
"Speech recognition permission denied. Enable it in System Settings and try again." = "Speech recognition permission denied. Enable it in System Settings and try again.";
"Speech recognition is restricted on this Mac." = "Speech recognition is restricted on this Mac.";
"Speech recognition authorization is unavailable." = "Speech recognition authorization is unavailable.";
"Speech recognizer is unavailable for the current locale." = "Speech recognizer is unavailable for the current locale.";
"Speech recognizer is unavailable for %@." = "Speech recognizer is unavailable for %@.";
"No audio was available to transcribe." = "No audio was available to transcribe.";

/* MARK: - StoreKit transaction errors */
"Unable to load products: %@" = "Unable to load products: %@";
"Product ID not found in StoreKit response. Requested: %@. Loaded IDs: %@" = "Product ID not found in StoreKit response. Requested: %@. Loaded IDs: %@";
"Purchase verification failed." = "Purchase verification failed.";
"Unknown purchase state." = "Unknown purchase state.";
"none" = "none";

/* MARK: - Paywall pricing copy */
"%@ one-time purchase" = "%@ one-time purchase";
"%@/month" = "%@/month";
"%@/6 months" = "%@/6 months";
"%@/year (3 days free trial)" = "%@/year (3 days free trial)";
"day" = "day";
"week" = "week";
"period" = "period";
"1 %@" = "1 %@";
"%d %@s" = "%d %@s";

/* MARK: - Toasts & quick feedback */
"Meeting added successfully." = "Meeting added successfully.";
"An issue occurred. Please try again." = "An issue occurred. Please try again.";
"Failed to load transcript." = "Failed to load transcript.";
"Failed to generate notes." = "Failed to generate notes.";

/* MARK: - Browser alerts */
"Try Again" = "Try Again";
"The in-app browser closed this page unexpectedly. You can try loading it again in this same window." = "The in-app browser closed this page unexpectedly. You can try loading it again in this same window.";

/* MARK: - Schedule & calendar errors */
"Couldn't load schedule." = "Couldn't load schedule.";
"Couldn't refresh schedule." = "Couldn't refresh schedule.";
"Couldn't connect Google account." = "Couldn't connect Google account.";
"Couldn't logout Google account." = "Couldn't logout Google account.";
"Couldn't load schedule" = "Couldn't load schedule";
"Couldn't determine Meet meeting code from URL." = "Couldn't determine Meet meeting code from URL.";
"Refreshing…" = "Refreshing…";
"Connect Google to see meetings" = "Connect Google to see meetings";
"Connect to load schedule" = "Connect to load schedule";
"Loading…" = "Loading…";
"Loading schedule…" = "Loading schedule…";
"Start date must be on or before end date." = "Start date must be on or before end date.";
"Invalid custom date range" = "Invalid custom date range";
"No meetings" = "No meetings";
"No meetings for selected filters" = "No meetings for selected filters";
"No meetings on %@" = "No meetings on %@";
"1 meeting on %@" = "1 meeting on %@";
"%d meetings on %@" = "%d meetings on %@";
"All day" = "All day";
"Duration: all day" = "Duration: all day";
"Duration: %dh %dm" = "Duration: %dh %dm";
"Duration: %dh" = "Duration: %dh";
"Duration: %dm" = "Duration: %dm";
"%@ - %@" = "%@ - %@";
"Scheduled Meeting" = "Scheduled Meeting";

/* MARK: - Create meeting popover */
"Please enter a title." = "Please enter a title.";
"Duration must be a positive number of minutes." = "Duration must be a positive number of minutes.";
"Invalid start time." = "Invalid start time.";

/* MARK: - Reminders & notifications */
"Reminders" = "Reminders";
"1 Day Before" = "1 Day Before";
"12 Hours Before" = "12 Hours Before";
"1 Hour Before" = "1 Hour Before";
"Starts in 1 day" = "Starts in 1 day";
"Starts in 12 hours" = "Starts in 12 hours";
"Starts in 1 hour" = "Starts in 1 hour";

/* MARK: - Google OAuth errors */
"Missing Google OAuth Client ID." = "Missing Google OAuth Client ID.";
"Missing Google OAuth Client Secret." = "Missing Google OAuth Client Secret.";
"Invalid OAuth callback URL." = "Invalid OAuth callback URL.";
"Google did not return an authorization code." = "Google did not return an authorization code.";
"Token exchange failed: %@" = "Token exchange failed: %@";
"Could not open browser for Google sign-in." = "Could not open browser for Google sign-in.";
"Google sign-in timed out." = "Google sign-in timed out.";
"No stored Google tokens found." = "No stored Google tokens found.";

/* MARK: - AI Companion / transcript errors */
"Recording not found." = "Recording not found.";
"Local meeting audio is missing." = "Local meeting audio is missing.";
"Generated transcript was empty." = "Generated transcript was empty.";
"(No transcript entries found.)" = "(No transcript entries found.)";
"No conference record found for this meeting." = "No conference record found for this meeting.";
"No transcript found for this meeting." = "No transcript found for this meeting.";
"Unable to create audio composition tracks." = "Unable to create audio composition tracks.";
"Unable to create audio export session." = "Unable to create audio export session.";
"Audio mix export failed." = "Audio mix export failed.";
"No display available for system audio capture." = "No display available for system audio capture.";
"Cannot add audio writer input." = "Cannot add audio writer input.";

/* MARK: - Google API errors */
"Google Meet returned an invalid response." = "Google Meet returned an invalid response.";
"Google Meet API error (%d): %@" = "Google Meet API error (%d): %@";
"Failed to parse Google Meet response: %@" = "Failed to parse Google Meet response: %@";
"Google Calendar returned an invalid response." = "Google Calendar returned an invalid response.";
"Google Calendar API error (%d): %@" = "Google Calendar API error (%d): %@";
"Failed to parse Google Calendar events: %@" = "Failed to parse Google Calendar events: %@";

/* MARK: - OpenAI errors */
"OpenAI API key is missing. Set OPENAI_API_KEY in the environment or app key vault." = "OpenAI API key is missing. Set OPENAI_API_KEY in the environment or app key vault.";
"Notes generation returned an invalid response." = "Notes generation returned an invalid response.";
"Notes generation failed (%d): %@" = "Notes generation failed (%d): %@";
"Notes generation returned empty text." = "Notes generation returned empty text.";
"OpenAI transcription returned an invalid response." = "OpenAI transcription returned an invalid response.";
"OpenAI transcription failed (%d): %@" = "OpenAI transcription failed (%d): %@";
"OpenAI transcription returned no text." = "OpenAI transcription returned no text.";

/* MARK: - Browse & in-app browser */
"Open sites in the in-app browser (back, forward, reload, address bar). OAuth and “Continue in browser” flows stay inside the app." = "Open sites in the in-app browser (back, forward, reload, address bar). OAuth and “Continue in browser” flows stay inside the app.";
"Open in app browser" = "Open in app browser";
"Meet help" = "Meet help";
"Go" = "Go";
"Back" = "Back";
"Forward" = "Forward";
"Reload" = "Reload";

/* MARK: - Schedule & calendar labels */
"Google Calendar" = "Google Calendar";
"Untitled meeting" = "Untitled meeting";
"Created event missing start/end." = "Created event missing start/end.";
"Created event missing Meet/HTML link." = "Created event missing Meet/HTML link.";

/* MARK: - Google account */
"Google account" = "Google account";
"%@, Google account" = "%@, Google account";

/* MARK: - Zoom join (unused section) */
"Meeting ID" = "Meeting ID";
"Enter meeting ID..." = "Enter meeting ID...";
"Meeting Passcode" = "Meeting Passcode";
"Enter meeting passcode..." = "Enter meeting passcode...";

/* MARK: - Paywall (alternate benefits) */
"Virtual backgrounds" = "Virtual backgrounds";
"Tools for productivity" = "Tools for productivity";
"24/7 support" = "24/7 support";

/* MARK: - Transcription speakers */
"You" = "You";

/* MARK: - Keychain errors */
"Failed to read OAuth tokens from Keychain." = "Failed to read OAuth tokens from Keychain.";
"Keychain returned an invalid token payload." = "Keychain returned an invalid token payload.";
"Failed to update OAuth tokens in Keychain." = "Failed to update OAuth tokens in Keychain.";
"Failed to save OAuth tokens to Keychain." = "Failed to save OAuth tokens to Keychain.";
"Failed to delete OAuth tokens from Keychain." = "Failed to delete OAuth tokens from Keychain.";
"Unable to allocate audio buffer." = "Unable to allocate audio buffer.";
"Invalid revoke response." = "Invalid revoke response.";
"Token revoke failed with status %d." = "Token revoke failed with status %d.";

/* MARK: - Error alert diagnostics */
"Keychain: %d (%@)" = "Keychain: %d (%@)";
"OSStatus: %d" = "OSStatus: %d";
"Item: service=%@, account=%@" = "Item: service=%@, account=%@";
