{
  "common": {
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "create": "Create",
    "loading": "Loading...",
    "submit": "Submit",
    "confirm": "Confirm",
    "back": "Back",
    "next": "Next",
    "yes": "Yes",
    "no": "No",
    "english": "English",
    "chinese": "中文",
    "language": "Language",
    "theme": "Theme",
    "light": "Light",
    "dark": "Dark",
    "system": "System",
    "toggleTheme": "Toggle theme",
    "saving": "Saving…",
    "roles": {
      "owner": "Owner",
      "admin": "Admin",
      "member": "Member"
    }
  },
  "topBar": {
    "accountHome": "Account home",
    "brand": "ObjectOS Account",
    "breadcrumb": {
      "account": "Account",
      "profile": "Profile",
      "security": "Security",
      "sessions": "Sessions",
      "twoFactor": "Two-Factor",
      "organizations": "Organizations",
      "oauthApps": "OAuth Apps",
      "new": "New",
      "general": "General",
      "members": "Members",
      "settings": "Settings",
      "acceptInvitation": "Accept invitation",
      "deviceAuthorization": "Device authorization"
    }
  },
  "sidebar": {
    "groups": {
      "account": "Account",
      "organization": "Organization",
      "developer": "Developer"
    },
    "items": {
      "home": "Home",
      "profile": "Profile",
      "security": "Security",
      "sessions": "Sessions",
      "twoFactor": "Two-Factor",
      "overview": "Overview",
      "general": "General",
      "members": "Members",
      "oauthApps": "OAuth Apps",
      "invitations": "Invitations",
      "linkedAccounts": "Linked Accounts",
      "teams": "Teams"
    },
    "expand": "Expand sidebar",
    "collapse": "Collapse sidebar"
  },
  "organizationSwitcher": {
    "select": "Select organization",
    "new": "New organization…",
    "manage": "Manage organizations"
  },
  "userMenu": {
    "user": "User",
    "signIn": "Sign in",
    "account": "Account",
    "organizations": "Organizations",
    "signOut": "Sign out"
  },
  "home": {
    "welcome": "Welcome back",
    "verified": "Verified",
    "quickAccess": "Quick access",
    "stats": {
      "score": "Security score",
      "orgs": "Organizations",
      "twoFactor": "Two-factor auth",
      "enabled": "Enabled",
      "disabled": "Disabled",
      "manage": "Manage",
      "review": "Review",
      "enable": "Enable now"
    },
    "tiles": {
      "profile": {
        "title": "Profile",
        "description": "Display name, avatar and contact info."
      },
      "security": {
        "title": "Security",
        "description": "Change your password and review activity."
      },
      "twoFactor": {
        "title": "Two-factor auth",
        "description": "Add an authenticator app for stronger sign-in."
      },
      "sessions": {
        "title": "Active sessions",
        "description": "See and revoke devices that are signed in."
      },
      "linked": {
        "title": "Linked accounts",
        "description": "Manage your social and SSO providers."
      },
      "oauth": {
        "title": "OAuth applications",
        "description": "Apps you have authorised to access your account."
      }
    }
  },
  "profile": {
    "title": "Profile",
    "description": "Update your display name.",
    "email": "Email",
    "name": "Name",
    "namePlaceholder": "Your name",
    "save": "Save changes",
    "updated": "Profile updated",
    "updateFailed": "Failed to update profile",
    "changeAvatar": "Change avatar",
    "avatarUploading": "Uploading…",
    "avatarHint": "JPG, PNG or GIF. Max 2 MB.",
    "avatarUpdated": "Avatar updated",
    "avatarUploadFailed": "Failed to upload avatar",
    "avatarStorageUnavailable": "Storage service unavailable"
  },
  "security": {
    "title": "Change password",
    "description": "Update your account password.",
    "currentPassword": "Current password",
    "newPassword": "New password",
    "confirmPassword": "Confirm new password",
    "submit": "Change password",
    "passwordsMismatch": "Passwords do not match",
    "changed": "Password changed",
    "changeFailed": "Failed to change password",
    "revokeOtherSessions": "Also revoke all other sessions",
    "email": {
      "title": "Change email",
      "description": "Update the email address associated with your account.",
      "current": "Current email",
      "new": "New email address",
      "placeholder": "new@example.com",
      "submit": "Change email",
      "requested": "Verification email sent to your new address",
      "requestFailed": "Failed to change email"
    },
    "delete": {
      "title": "Delete account",
      "description": "Permanently delete your account and all associated data. This action cannot be undone.",
      "dialogTitle": "Are you absolutely sure?",
      "confirm": "Type your email to confirm: {{email}}",
      "confirmationMismatch": "Email does not match",
      "password": "Enter your password to confirm",
      "cta": "Delete my account",
      "success": "Account deleted",
      "failed": "Failed to delete account"
    }
  },
  "sessions": {
    "title": "Active sessions",
    "description": "Manage devices that are signed in to your account.",
    "revokeOthers": "Revoke all others",
    "revokingOthers": "Revoking…",
    "loading": "Loading sessions…",
    "empty": "No active sessions found.",
    "unknownDevice": "Unknown device",
    "expires": "Expires {{date}}",
    "loadFailed": "Failed to load sessions",
    "revoked": "Session revoked",
    "revokeFailed": "Failed to revoke session",
    "othersRevoked": "Other sessions revoked",
    "revokeOthersFailed": "Failed to revoke sessions",
    "current": "Current session"
  },
  "twoFactor": {
    "title": "Two-factor authentication",
    "loadingStatus": "Loading status…",
    "setupTitle": "Set up two-factor authentication",
    "setupDescription": "Scan the QR code with your authenticator app, then enter the verification code.",
    "qrAlt": "TOTP QR code",
    "uriHint": "Copy this URI into your authenticator app if you cannot scan the QR code.",
    "verificationCode": "Verification code",
    "verify": "Verify and enable",
    "verifying": "Verifying…",
    "cancel": "Cancel",
    "enabled": "Enabled",
    "notEnabled": "Not enabled",
    "enabledDescription": "Your account is protected with 2FA. Enter your password to disable it.",
    "notEnabledDescription": "Add an extra layer of security to your account using a TOTP authenticator app.",
    "password": "Password",
    "passwordPlaceholder": "Confirm with your account password",
    "enable": "Enable 2FA",
    "loading": "Loading…",
    "disable": "Disable 2FA",
    "disabling": "Disabling…",
    "enableSuccess": "Two-factor authentication enabled",
    "disableSuccess": "Two-factor authentication disabled",
    "enableFailed": "Failed to enable 2FA",
    "disableFailed": "Failed to disable 2FA",
    "invalidCode": "Invalid code",
    "trustDevice": "Trust this device",
    "backupCodes": {
      "title": "Backup codes",
      "description": "Use backup codes to sign in if you lose access to your authenticator app.",
      "savedTitle": "Save these backup codes",
      "savedHint": "Store these codes in a safe place. Each code can only be used once.",
      "newTitle": "New backup codes generated",
      "regenerate": "Regenerate backup codes",
      "regenerated": "Backup codes regenerated",
      "regenerateFailed": "Failed to regenerate backup codes",
      "copy": "Copy",
      "copied": "Backup codes copied to clipboard",
      "copyFailed": "Failed to copy to clipboard"
    }
  },
  "auth": {
    "emailLabel": "Email",
    "passwordLabel": "Password",
    "nameLabel": "Name",
    "emailPlaceholder": "m@example.com",
    "social": {
      "continueWith": "Continue with",
      "signUpWith": "Sign up with",
      "orContinueEmail": "or continue with email",
      "redirectingTo": "Redirecting to {{provider}}…"
    },
    "login": {
      "title": "Welcome back",
      "description": "Sign in to your account.",
      "forgotPassword": "Forgot your password?",
      "submit": "Login",
      "submitting": "Signing in…",
      "noAccount": "Don't have an account?",
      "signUp": "Sign up",
      "welcomeToast": "Welcome back",
      "failed": "Sign in failed",
      "signingIn": "Signing you in…",
      "ssoHandoff": "Continue to {{target}}",
      "brandHeadline": "The AI-native backend for business software.",
      "brandSubline": "One identity, every workspace. Sign in to manage your account, organizations and connected apps."
    },
    "register": {
      "title": "Create an account",
      "description": "Create your account.",
      "submit": "Create account",
      "submitting": "Creating…",
      "haveAccount": "Already have an account?",
      "signIn": "Sign in",
      "successToast": "Account created",
      "failed": "Sign up failed"
    },
    "forgotPassword": {
      "checkEmailTitle": "Check your email",
      "checkEmailDescription": "If an account exists for {{email}}, you'll receive a password reset link shortly.",
      "backToSignIn": "Back to sign in",
      "title": "Forgot password",
      "description": "Enter your email and we'll send you a reset link.",
      "submit": "Send reset link",
      "submitting": "Sending…",
      "rememberPassword": "Remember your password?",
      "signIn": "Sign in",
      "failed": "Failed to send reset email"
    },
    "resetPassword": {
      "title": "Reset password",
      "description": "Choose a new password for your account.",
      "newPassword": "New password",
      "confirmPassword": "Confirm password",
      "submit": "Reset password",
      "submitting": "Resetting…",
      "passwordsMismatch": "Passwords do not match",
      "missingToken": "Missing reset token",
      "invalidToken": "Invalid or missing reset token.",
      "requestNewLink": "Request a new link",
      "success": "Password reset successfully",
      "failed": "Failed to reset password"
    },
    "verifyEmail": {
      "missingToken": "Missing verification token.",
      "verificationFailed": "Verification failed ({{status}})",
      "verifyingTitle": "Verifying email…",
      "verifyingDescription": "Please wait while we verify your email address.",
      "successTitle": "Email verified",
      "successDescription": "Your email has been verified successfully.",
      "signInLink": "Sign in to your account",
      "errorTitle": "Verification failed",
      "errorDescription": "The verification link is invalid or has expired.",
      "backToSignIn": "Back to sign in"
    },
    "setup": {
      "welcomeTitle": "Set up your workspace",
      "successDescription": "Your owner account has been created.",
      "failed": "Setup failed",
      "description": "Create the first owner account.",
      "yourName": "Your name",
      "passwordHint": "At least 8 characters",
      "orgName": "Organization name",
      "orgNamePlaceholder": "Acme Corp",
      "orgNameHint": "You can rename or add more organizations later.",
      "submit": "Create account",
      "submitting": "Creating owner account…",
      "footerNote": "This screen only appears on first launch. After setup, all users sign in normally.",
      "orgSlug": "Organization slug",
      "orgSlugHint": "URL-friendly identifier (auto-generated from name).",
      "inviteTeammates": "Invite teammates",
      "inviteTeammatesHint": "Optional. You can always invite people later.",
      "addInvite": "Add",
      "inviteEmpty": "No invitations yet — add teammates above.",
      "invitePartialFailure": "Some invitations failed",
      "invitePartialFailureDescription": "{{failed}} of {{total}} invitations could not be sent.",
      "invitesSent": "{{count}} invitation(s) sent"
    },
    "device": {
      "invalidTitle": "Invalid Request",
      "invalidDescription": "No user code provided. Please use the link from the CLI.",
      "loading": "Loading…",
      "approvedTitle": "CLI Authorized",
      "approvedDescription": "You can close this tab.",
      "deniedTitle": "Request Denied",
      "deniedDescription": "The CLI login request has been denied.",
      "approveSuccess": "CLI login approved",
      "approveSuccessDescription": "The CLI has been authenticated.",
      "approveFailed": "Approval failed",
      "denyFailed": "Deny failed",
      "title": "CLI Login Request",
      "subtitle": "Approve CLI access for {{email}}",
      "userCodeLabel": "User Code",
      "loggedInAs": "Logged in as {{email}}",
      "approve": "Approve CLI Access",
      "approving": "Approving…",
      "deny": "Deny",
      "denying": "Denying…",
      "cancel": "Cancel"
    },
    "shell": {
      "tenantHostHint": "You are signing in to this workspace"
    },
    "userMenu": {
      "signingOut": "Signing you out…"
    }
  },
  "acceptInvitation": {
    "title": "Organization invitation",
    "description": "You have been invited to join an organization. Accept or decline below.",
    "accept": "Accept invitation",
    "accepting": "Accepting…",
    "decline": "Decline",
    "declining": "Declining…",
    "accepted": "Invitation accepted",
    "acceptFailed": "Failed to accept invitation",
    "declined": "Invitation declined",
    "declineFailed": "Failed to decline invitation"
  },
  "oauth": {
    "consent": {
      "title": "Authorize {{appName}}",
      "request": "{{appName}} is requesting access to your account{{suffix}}.",
      "willAllow": "This will allow it to:",
      "deny": "Deny",
      "authorize": "Authorize",
      "submitting": "Submitting…",
      "granted": "Consent granted",
      "denied": "Consent denied",
      "noRedirect": "No redirect URL returned by the server.",
      "failed": "Failed to submit consent",
      "unknownApp": "an application",
      "footer": "You can revoke access any time from your account settings.",
      "scope": {
        "openid": "Verify your identity",
        "profile": "Access your basic profile information",
        "email": "Access your email address",
        "offlineAccess": "Maintain access while you are offline"
      }
    },
    "applications": {
      "title": "OAuth Applications",
      "description": "Register applications to authenticate users through this server's OpenID Connect identity provider.",
      "new": "New application",
      "register": "Register application",
      "registering": "Registering…",
      "registered": "Application registered",
      "registeredTitle": "Application registered",
      "registeredDescription": "Copy the client secret now — it cannot be displayed again.",
      "registerFailed": "Failed to register application",
      "deleted": "OAuth application deleted",
      "deleteFailed": "Failed to delete application",
      "deleteDialogTitle": "Delete OAuth application?",
      "deleteDialogDescription": "This will permanently delete {{name}}. All access tokens and consents associated with this client will also be revoked. This action cannot be undone.",
      "deleting": "Deleting…",
      "disabled": "Disabled",
      "emptyTitle": "No OAuth applications yet",
      "emptyDescription": "Register an application to start integrating SSO.",
      "credentials": "Credentials",
      "credentialsDescription": "Use these values to configure the OAuth/OIDC client in your application.",
      "credentialsDescriptionDetail": "The client secret was shown only once at registration. To rotate it, delete this application and register a new one.",
      "clientId": "Client ID",
      "clientSecret": "Client Secret",
      "clientSecretWarning": "Save this secret now — it cannot be retrieved later.",
      "copied": "{{label}} copied to clipboard",
      "copyFailed": "Failed to copy {{label}}",
      "backToList": "Back to list",
      "viewApplication": "View application",
      "notFoundTitle": "Application not found",
      "notFoundDescription": "We couldn't find an OAuth application with that client ID.",
      "redirectUris": "Redirect URIs",
      "noRedirectUris": "None configured.",
      "dangerTitle": "Danger zone",
      "dangerDescription": "Deleting this application revokes all access tokens issued to it and removes any recorded user consents.",
      "delete": "Delete application",
      "form": {
        "title": "Register OAuth application",
        "description": "Create credentials so an external app can authenticate users via this server.",
        "details": "Application details",
        "name": "Application name",
        "namePlaceholder": "My Awesome App",
        "nameRequired": "Name is required",
        "redirectUris": "Redirect URIs",
        "redirectPlaceholder": "https://app.example.com/callback",
        "redirectHint": "One per line, or comma-separated. Must exactly match the URI the client uses during the authorization flow.",
        "redirectRequired": "At least one redirect URI is required",
        "authMethod": "Token endpoint auth method",
        "authMethodBasic": "client_secret_basic (recommended)",
        "authMethodPost": "client_secret_post",
        "authMethodNone": "none (public client / PKCE only)",
        "clientUri": "Application URL (optional)",
        "clientUriPlaceholder": "https://app.example.com",
        "logoUri": "Logo URL (optional)",
        "logoUriPlaceholder": "https://app.example.com/logo.png",
        "logoHint": "Shown to users on the consent screen.",
        "registering": "Registering…"
      }
    }
  },
  "organizations": {
    "title": "Organizations",
    "description": "Select an organization to work with, or create a new one.",
    "newOrganization": "New organization",
    "loading": "Loading…",
    "emptyTitle": "No organizations yet",
    "emptyDescription": "Create your first organization to start collaborating with your team.",
    "createOrganization": "Create organization",
    "active": "Active",
    "switchFailed": "Failed to switch organization",
    "new": {
      "title": "New organization",
      "description": "Organizations group projects, metadata, members, and resources together.",
      "name": "Name",
      "namePlaceholder": "Acme Corp",
      "slug": "Slug",
      "slugPlaceholder": "acme-corp",
      "slugHint": "Lowercase, dashes only. Used in URLs and APIs.",
      "cancel": "Cancel",
      "submit": "Create organization",
      "submitting": "Creating…",
      "successToast": "Organization created",
      "failed": "Failed to create organization"
    },
    "general": {
      "switched": "Organization switched",
      "switchFailed": "Failed to switch organization",
      "nameRequired": "Name is required",
      "updated": "Organization updated",
      "updateFailed": "Failed to update organization",
      "confirmationMismatch": "Confirmation does not match",
      "confirmationHint": "Type \"{{name}}\" to confirm deletion.",
      "deleted": "Organization deleted",
      "deletedWithWarnings": "Removed {{deletedProjects}} project(s). Warning: {{warning}}",
      "deletedDescription": "{{name}} and {{deletedProjects}} project(s) (with their databases) have been removed.",
      "deleteFailed": "Failed to delete organization",
      "setActive": "Set as active",
      "detailsTitle": "Details",
      "detailsDescription": "Update your organization's display name, URL slug, and logo.",
      "detailsReadOnly": "Only owners and admins can edit these details.",
      "namePlaceholder": "Acme Inc.",
      "slugPlaceholder": "acme",
      "slugHint": "Lowercase, dash-separated. Used in URLs and invitations.",
      "logo": "Logo URL",
      "logoPlaceholder": "https://…",
      "organizationId": "Organization ID",
      "reset": "Reset",
      "save": "Save changes",
      "overviewTitle": "At a glance",
      "members": "Members",
      "pendingInvitations": "Pending invitations",
      "dangerTitle": "Danger zone",
      "dangerDescription": "Permanently delete this organization, all of its projects, and every project's underlying database. This action cannot be undone.",
      "delete": "Delete organization",
      "deleteDialogTitle": "Delete organization",
      "deleteDialogDescription": "This will permanently delete {{name}}, all of its projects, and every project's underlying database. Members and pending invitations will be removed. This action cannot be undone.",
      "deleteDialogLabel": "Type {{name}} to confirm",
      "deleting": "Deleting…"
    },
    "members": {
      "title": "Members ({{count}})",
      "description": "People with access to this organization",
      "invite": "Invite",
      "loadingMembers": "Loading members...",
      "empty": "No members yet. Invite someone to get started.",
      "inviteMember": "Invite member",
      "removeMember": "Remove member",
      "pendingTitle": "Pending invitations ({{count}})",
      "pendingDescription": "Invitations sent to join this organization",
      "sendInvitation": "Send invitation",
      "loadingInvitations": "Loading invitations...",
      "noPending": "No pending invitations",
      "pendingHint": "Invitations will appear here once sent",
      "expires": "Expires {{date}}",
      "inviteDialogTitle": "Invite member",
      "inviteDialogDescription": "Send an invitation to join {{organization}}",
      "email": "Email address",
      "emailPlaceholder": "colleague@example.com",
      "role": "Role",
      "roleHints": {
        "owner": "Full access to manage the organization",
        "admin": "Can manage members and settings, but cannot delete the organization",
        "member": "Can view and use organization resources"
      },
      "emailRequired": "Email required",
      "emailRequiredDescription": "Please enter an email address",
      "invitationSent": "Invitation sent successfully",
      "inviteFailed": "Failed to send invitation",
      "removeConfirm": "Are you sure you want to remove {{name}} from this organization?",
      "memberRemoved": "Member removed successfully",
      "removeFailed": "Failed to remove member",
      "cancelConfirm": "Cancel invitation for {{email}}?",
      "invitationCanceled": "Invitation canceled",
      "cancelFailed": "Failed to cancel invitation",
      "sending": "Sending...",
      "you": "You",
      "leave": "Leave",
      "leaveConfirm": "Leave \"{{org}}\"? You will lose access to this organization.",
      "leftOrg": "You have left the organization",
      "leaveFailed": "Failed to leave organization",
      "roleUpdated": "Role updated",
      "roleUpdateFailed": "Failed to update role",
      "singleInvite": "Single",
      "bulkInvite": "Bulk",
      "bulkEmails": "Email addresses",
      "bulkEmailsPlaceholder": "one@example.com\ntwo@example.com",
      "bulkEmailsHint": "One email per line, or separated by commas.",
      "invitationResent": "Invitation resent",
      "resend": "Resend",
      "resendFailed": "Failed to resend invitation",
      "copyLink": "Copy invite link",
      "linkCopied": "Invite link copied",
      "linkCopyFailed": "Failed to copy link",
      "cancel": "Cancel invitation",
      "invitePartialSuccess": "{{sent}} sent, {{failed}} failed"
    }
  },
  "legal": {
    "agreementPrefix": "By clicking continue, you agree to our",
    "termsOfService": "Terms of Service",
    "and": "and",
    "privacyPolicy": "Privacy Policy"
  },
  "invitations": {
    "title": "Invitations",
    "description": "Pending organization invitations sent to you.",
    "empty": "No pending invitations.",
    "accept": "Accept",
    "accepted": "Invitation accepted",
    "acceptFailed": "Failed to accept invitation",
    "reject": "Reject",
    "rejected": "Invitation rejected",
    "rejectFailed": "Failed to reject invitation",
    "expires": "Expires {{date}}"
  },
  "linkedAccounts": {
    "title": "Linked accounts",
    "description": "Social and OAuth accounts connected to your profile.",
    "empty": "No linked accounts.",
    "unlink": "Unlink",
    "unlinkConfirm": "Unlink {{provider}}?",
    "unlinked": "Account unlinked",
    "unlinkFailed": "Failed to unlink account",
    "linkedOn": "Linked on {{date}}",
    "addTitle": "Link a new account",
    "addDescription": "Connect additional providers for quick sign-in.",
    "linkFailed": "Failed to initiate linking"
  },
  "teams": {
    "title": "Teams ({{count}})",
    "description": "Organize members into teams within this organization.",
    "empty": "No teams yet.",
    "create": "Create team",
    "createTitle": "Create a new team",
    "createDescription": "Teams let you group members for easier management.",
    "created": "Team created",
    "createFailed": "Failed to create team",
    "nameLabel": "Team name",
    "namePlaceholder": "e.g. Engineering",
    "delete": "Delete team",
    "deleteConfirm": "Delete team \"{{name}}\"? This cannot be undone.",
    "deleted": "Team deleted",
    "deleteFailed": "Failed to delete team",
    "members": "Members ({{count}})",
    "noMembers": "No members in this team.",
    "addMember": "Add member",
    "addMemberTitle": "Add member to team",
    "addMemberDescription": "Select an organization member to add to this team.",
    "selectMember": "Member",
    "selectMemberPlaceholder": "Select a member…",
    "memberAdded": "Member added to team",
    "addMemberFailed": "Failed to add member",
    "memberRemoved": "Member removed from team",
    "removeMemberFailed": "Failed to remove member"
  }
}
