{"NAV_DOCS":"Docs","DOCS_SEARCH_HINT":"Type at least two characters to search the docs.","DOCS_SEARCH":"Search docs…","DOCS_CHANGELOG":"Changelog","DOCS_NAVIGATION":"Documentation navigation","DOCS_SKIP":"Skip to content","DOCS_MENU":"Menu","DOCS_CLOSE":"Close navigation","DOCS_ENGLISH":"Documentation is in English.","DOCS_BREADCRUMBS":"Breadcrumbs","DOCS_COPIED":"Copied","DOCS_COPY_ERROR":"Copy failed. Open Markdown to copy the text.","DOCS_COPY":"Copy page","DOCS_MARKDOWN":"Markdown","DOCS_OLDER":"Earlier releases","DOCS_EDIT":"Edit on GitHub","DOCS_PAGINATION":"Documentation pages","DOCS_PREVIOUS":"Previous","DOCS_NEXT":"Next","DOCS_ON_THIS_PAGE":"On this page","NAV_ASSISTANT":"Assistant","ASSISTANT_LOAD_MORE":"More conversations","ASSISTANT_DESCRIPTION":"Work with your organization’s todos, files and people.","ASSISTANT_NEW":"New conversation","ASSISTANT_NEW_TITLE":"New conversation","ASSISTANT_CONVERSATION":"Assistant conversation","ASSISTANT_THREADS":"Conversations","ASSISTANT_LOADING":"Loading conversation…","ASSISTANT_DELETE":"Delete conversation","ASSISTANT_DELETE_TITLE":"Delete this conversation?","ASSISTANT_DELETE_DESCRIPTION":"This removes its messages and pending approvals. Completed actions are kept.","ASSISTANT_CANCEL":"Cancel","ASSISTANT_RETRY":"Try again","ASSISTANT_THREAD_ERROR":"The conversation could not be loaded or saved. Please try again.","ASSISTANT_EMPTY_TITLE":"What would you like to work on?","ASSISTANT_EMPTY_DESCRIPTION":"Find information, organize your todos and plan your next steps. Changes need your approval.","ASSISTANT_SUGGEST_TODOS":"Show my open todos","ASSISTANT_SUGGEST_WEEK":"Help me plan my week","ASSISTANT_SUGGEST_FILES":"List organization files","ASSISTANT_PRIVACY":"Conversation content is sent to the configured AI provider. Review answers and proposed changes.","ASSISTANT_MESSAGE_LABEL":"Message","ASSISTANT_MESSAGE_PLACEHOLDER":"Ask about your organization…","ASSISTANT_COMPOSER_HELP":"Your changes need approval.","ASSISTANT_STOP":"Stop","ASSISTANT_SEND":"Send","ASSISTANT_YOU":"You","ASSISTANT_TOOL_FAILED":"Failed","ASSISTANT_TOOL_DONE":"Completed","ASSISTANT_TOOL_APPROVAL":"Approval needed","ASSISTANT_TOOL_RUNNING":"Running…","ASSISTANT_TOOL_PAUSED":"Paused","ASSISTANT_TOOL_INPUT":"Input","ASSISTANT_TOOL_OUTPUT":"Result","ASSISTANT_APPROVAL_TITLE":"Review this action","ASSISTANT_APPROVAL_DESCRIPTION":"Allow {{tool}} to make this change in your organization?","ASSISTANT_APPROVE":"Approve","ASSISTANT_DENY":"Decline","ASSISTANT_SKIP":"Skip","ASSISTANT_ANSWER":"Continue","ASSISTANT_INTERRUPT_UNAVAILABLE":"This request cannot be answered here. Reload the conversation to check its status.","ASSISTANT_INTERRUPT_ERROR":"Your response could not be applied. Reload to check its status before trying again.","ASSISTANT_STREAMING":"Assistant is responding…","ASSISTANT_ERROR":"The response was interrupted. Reload to see the saved conversation.","ASSISTANT_RELOAD":"Reload conversation","ASSISTANT_SCROLL_END":"Scroll to latest message","ASSISTANT_AGENT_APPROVALS":"Agent actions awaiting approval","ASSISTANT_APPROVALS_LOADING":"Loading agent approvals…","ASSISTANT_APPROVALS_ERROR":"Agent approvals could not be loaded. Refresh this page to try again.","IMPORT_ACTION":"Import","IMPORT_TITLE":"Import todos","IMPORT_DESCRIPTION":"Upload a JSON file to add todos to this organization. Imports continue in the background.","IMPORT_FILE_LABEL":"JSON file","IMPORT_FILE_HELP":"Up to 1 MiB and 200 todos. Each todo needs a text field.","IMPORT_SAMPLE":"Download sample JSON","IMPORT_FILE_INVALID":"Choose a non-empty .json file up to 1 MiB.","IMPORT_START_FAILED":"The import could not start. Try again with the same file.","IMPORT_STARTING":"Uploading and starting…","IMPORT_START":"Start import","IMPORT_RETRY":"Try again","IMPORT_RECENT":"Recent imports","IMPORT_LOADING":"Loading imports…","IMPORT_STATUS_RETRY":"Could not load imports. Try again","IMPORT_EMPTY":"No imports yet.","IMPORT_CLOSE":"Close","IMPORT_PENDING":"Pending","IMPORT_SUCCEEDED":"Succeeded","IMPORT_FAILED":"Failed","IMPORT_WAITING":"Waiting for background processing. This usually starts within a minute.","IMPORT_COUNTS":"{{inserted}} of {{total}} todos imported.","IMPORT_FAILURE_MEMBERSHIP":"Your membership was removed before the import finished. No todos were added.","IMPORT_FAILURE_CHANGED":"The uploaded file changed. Upload a new file and try again.","IMPORT_FAILURE_MISSING":"The uploaded file is no longer available. Upload it again.","IMPORT_FAILURE_INVALID":"The JSON is invalid or contains invalid todos. Check the sample and upload a corrected file.","IMPORT_FAILURE_SIZE":"The file exceeds 1 MiB. Split it into smaller files.","IMPORT_FAILURE_ATTEMPTS":"The import could not finish after 3 attempts. Upload the file again to start a new import.","NAV_HOME":"Home","NAV_DASHBOARD":"Dashboard","NAV_TODOS":"Todos","NAV_FILES":"Files","NAV_SETTINGS":"Settings","NAV_BILLING":"Billing","NAV_GROUP_PLATFORM":"Platform","NAV_GROUP_GENERAL":"General","NAV_GROUP_ADMIN":"Admin","NAV_ADMIN_USERS":"Users","NAV_ADMIN_FLAGS":"Flags","NAV_ADMIN_AUDIT":"Audit log","APP_BRAND_NAME":"Acme Inc.","APP_BRAND_TAGLINE":"Starter Kit","APP_SEARCH_PLACEHOLDER":"Search…","USER_MENU_SIGN_IN":"Sign In","USER_MENU_MY_ACCOUNT":"My Account","USER_MENU_SIGN_OUT":"Sign Out","USER_MENU_SETTINGS":"Settings","USER_MENU_UPGRADE":"Upgrade to Pro","THEME_APPEARANCE":"Appearance","THEME_LIGHT":"Light","THEME_DARK":"Dark","THEME_SYSTEM":"System","THEME_TOGGLE_LABEL":"Toggle theme","ERROR_404_TITLE":"Page not found","ERROR_404_DESC":"The page you're looking for doesn't exist or may have moved.","ERROR_404_BACK":"Back to dashboard","ERROR_TITLE":"Something went wrong","ERROR_DESC":"An unexpected error occurred. You can try again.","ERROR_RETRY":"Try again","ERROR_HOME":"Go home","ERROR_CODE_BAD_REQUEST":"That request was rejected. Please review it and try again.","ERROR_CODE_UNAUTHORIZED":"Please sign in to continue.","ERROR_CODE_FORBIDDEN":"You don't have access to this.","ERROR_CODE_NOT_FOUND":"We couldn't find what you're looking for.","ERROR_CODE_CONFLICT":"That conflicts with existing data.","ERROR_CODE_INPUT_VALIDATION":"Please check the highlighted fields.","ERROR_CODE_TOO_MANY_REQUESTS":"Too many attempts. Please try again in a moment.","ERROR_CODE_INTERNAL_SERVER_ERROR":"Something went wrong on our end.","ERROR_CODE_UNKNOWN":"Something went wrong. Please try again.","AUTH_ERROR_INVALID_EMAIL_OR_PASSWORD":"Incorrect email or password.","AUTH_ERROR_INVALID_PASSWORD":"That password is incorrect.","AUTH_ERROR_INVALID_EMAIL":"Please enter a valid email address.","AUTH_ERROR_USER_ALREADY_EXISTS":"An account with this email already exists.","AUTH_ERROR_USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL":"An account with this email already exists. Use another email.","AUTH_ERROR_PASSWORD_TOO_SHORT":"That password is too short.","AUTH_ERROR_PASSWORD_TOO_LONG":"That password is too long.","AUTH_ERROR_EMAIL_NOT_VERIFIED":"Please verify your email address first.","AUTH_ERROR_BANNED_USER":"This account has been suspended.","AUTH_ERROR_SESSION_EXPIRED":"Your session has expired. Please sign in again.","AUTH_ERROR_SESSION_NOT_FRESH":"For your security, please sign in again to do this.","AUTH_ERROR_INVALID_TOKEN":"This link is invalid or has already been used.","AUTH_ERROR_TOKEN_EXPIRED":"This link has expired.","AUTH_ERROR_INVALID_CODE":"That code is incorrect.","AUTH_ERROR_INVALID_BACKUP_CODE":"That backup code is incorrect.","AUTH_ERROR_INVALID_TWO_FACTOR_COOKIE":"Your verification window expired. Please sign in again.","AUTH_ERROR_TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE":"Too many attempts. Please sign in again.","AUTH_ERROR_ACCOUNT_TEMPORARILY_LOCKED":"Too many attempts. Your account is temporarily locked.","AUTH_ERROR_PASSKEY_NOT_FOUND":"That passkey isn't registered for this account.","AUTH_ERROR_AUTHENTICATION_FAILED":"Passkey sign-in failed. Please try again.","AUTH_ERROR_AUTH_CANCELLED":"Passkey sign-in was cancelled.","AUTH_ERROR_REGISTRATION_CANCELLED":"Passkey setup was cancelled.","AUTH_ERROR_PREVIOUSLY_REGISTERED":"This passkey is already registered.","AUTH_ERROR_ORGANIZATION_SLUG_ALREADY_TAKEN":"An organization with this name already exists.","AUTH_ERROR_USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION":"This person is already a member.","AUTH_ERROR_USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION":"This person has already been invited.","AUTH_ERROR_INVITATION_NOT_FOUND":"This invitation is invalid or has expired.","AUTH_ERROR_YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION":"This invitation was sent to a different email address.","AUTH_ERROR_YOU_CANNOT_IMPERSONATE_ADMINS":"Admins can't be impersonated.","HOME_API_STATUS":"API Status","HOME_STATUS_CHECKING":"Checking...","HOME_STATUS_CONNECTED":"Connected","HOME_STATUS_DISCONNECTED":"Disconnected","HOME_NAV_DOCS":"Docs","HOME_NAV_CHANGELOG":"Changelog","HOME_SKIP_CONTENT":"Skip to content","HOME_READ_DOCS":"Read the docs","HOME_SHOWCASE_TITLE":"Already running.","HOME_SHOWCASE_BODY":"Todos, files, security and agent connections. Actual screens from the template with example data.","HOME_IMAGE_CREDIT":"Interface captures and anatomy illustrations by this project. Captures show the local demo with example data.","HOME_PICTURE_TODOS":"The todo app with five example tasks, priorities and workflow states.","HOME_PICTURE_FILES":"The R2 file manager with uploads, a library and trash.","HOME_PICTURE_SETTINGS":"Account security settings for passwords, passkeys and two-factor authentication.","HOME_PICTURE_INTEGRATIONS":"The integrations page for connected agents, webhooks and agent activity.","HOME_FEATURE_JOBS":"Scheduled jobs","HOME_FEATURE_JOBS_BODY":"Effect at the edges: cron jobs and outbound delivery, with Postgres leases for queued work.","HOME_AGENTS_PAGES_BODY":"Public Markdown at /index.md and a /llms.txt directory for agents to read before connecting.","HOME_NAV_LABEL":"Sections","HOME_NAV_FEATURES":"Features","HOME_NAV_ARCHITECTURE":"Architecture","HOME_NAV_DEPLOY":"Deploy","HOME_NAV_GET_STARTED":"Get started","HOME_NAV_FAQ":"FAQ","HOME_AGENT_PROMPT":"Read AGENTS.md and CONTEXT.md. Follow the setup-envs skill to configure this project, preserving existing credentials. Then run pnpm install, pnpm setup and pnpm run dev. Verify the app with the agent-browser skill.","HOME_AGENT_PROMPT_LABEL":"Give your coding agent a starting point","HOME_START_REQUIREMENTS":"Node.js 22+ and pnpm. Setup asks for your project and service configuration.","HOME_COPY":"Copy to clipboard","HOME_COPIED":"Copied","HOME_COPY_FAILED":"Copy failed. Select the text to copy it.","HOME_CODE_LABEL":"Code examples","HOME_CODE_WEB_NOTE":"Excerpt from the landing route. The generated client keeps the query typed.","HOME_CODE_MOBILE_NOTE":"The Expo home screen calls the same health-check procedure.","HOME_CODE_API_NOTE":"One public health check. Protected procedures additionally require a session.","HOME_REQUEST_NOTE":"The instrument above illustrates a protected request. The code below is the public health check used by both apps.","HOME_ARCH_SESSION":"Session first","HOME_ARCH_SESSION_BODY":"Protected procedures reject missing sessions with 401 before reaching your data.","HOME_ARCH_TYPES":"Types across the boundary","HOME_ARCH_TYPES_BODY":"Clients import the router type and leaf contracts. Server implementations stay in the Worker.","HOME_DEPLOY_OPEN":"Open a pull request","HOME_DEPLOY_PREVIEW":"Worker + Neon branch","HOME_DEPLOY_CLOSE":"Close and clean up","HOME_DEPLOY_FILE":".github/workflows/pr-preview.yml","HOME_FOOTER_BODY":"TanStack Start + Expo. One Cloudflare Worker. Your product next.","HOME_FOOTER_EXPLORE":"Explore","HOME_FOOTER_BUILD":"Build","HOME_FOOTER_LEGAL":"Legal","HOME_FIG_WORKER":"The request machine","HOME_FIG_BOUNDARY":"The three-check lock","HOME_FIG_WORKER_CAPTION":"Two input trays, one travelling carriage. Web and mobile use the same session check, router and database path. Illustrative sequence, not live traffic.","HOME_FIG_BOUNDARY_CAPTION":"Three latches represent lint, explicit exports and the bundle scan. The bolt advances after all checks. This illustrates ADR-0002, not a runtime security gate.","HOME_FIG_CONTROLS":"Interactive instrument. Use the arrow keys, Home or End to inspect a stage.","HOME_FIG_HINT":"Select a stage to inspect","HOME_FIG_REQUEST":"Request","HOME_FIG_SESSION":"Session","HOME_FIG_QUERY":"Query","HOME_FIG_RETURN":"Response","HOME_FIG_SEALED":"Sealed","HOME_FIG_EXPORTS":"Exports","HOME_FIG_BUNDLE":"Bundle","HOME_FIG_CHECKS":"3 independent checks","HOME_FIG_RESET":"Reset instrument","HOME_FIG_PAUSE":"Pause automatic tour","HOME_FIG_PLAY":"Play automatic tour","HOME_FIG_TOUR":"Automatic illustration. Select a stage to pause and inspect.","HOME_HERO_TITLE":"One Worker. Every client.","HOME_HERO_SUBTITLE":"A full-stack starter for web and mobile. TanStack Start, Expo and one typed API, running on Cloudflare.","HOME_CTA_DEMO":"Open the demo","HOME_CTA_DASHBOARD":"Open dashboard","HOME_CTA_ARCHITECTURE":"Explore the architecture","HOME_STATUS_READY":"Ready","HOME_STATUS_OFF":"Off by default","HOME_STATUS_PROGRESS":"In progress","HOME_FEATURES_TITLE":"The working parts.","HOME_FEATURES_BODY":"Keep what your product needs. Every integration below is included; optional services stay off until you configure them.","HOME_FEATURES_GROUP_PRODUCT":"Product","HOME_FEATURES_GROUP_PLATFORM":"Platform","HOME_FEATURES_GROUP_MOBILE":"Mobile","HOME_FEATURE_AUTH":"Authentication","HOME_FEATURE_AUTH_BODY":"Email and password, passkeys, two-factor codes, email verification and session management.","HOME_FEATURE_ORGS":"Organizations","HOME_FEATURE_ORGS_BODY":"Members, invitations and roles. Todos and files belong to the active organization.","HOME_FEATURE_FILES":"Files","HOME_FEATURE_FILES_BODY":"Multipart uploads to R2, previews, share links and a trash.","HOME_FEATURE_ADMIN":"Admin","HOME_FEATURE_ADMIN_BODY":"User management, impersonation, feature flags and an audit log.","HOME_FEATURE_TODOS":"Todo example","HOME_FEATURE_TODOS_BODY":"Grid, board and calendar views, with leased import queues and drafts proposed by AI agents.","HOME_FEATURE_PAYMENTS":"Payments","HOME_FEATURE_PAYMENTS_BODY":"Stripe and Polar on the web, RevenueCat on mobile. Off until providers and billing flags are configured.","HOME_FEATURE_API":"Typed API","HOME_FEATURE_API_BODY":"oRPC routers with Zod contracts, shared by web and mobile.","HOME_FEATURE_DATABASE":"Database","HOME_FEATURE_DATABASE_BODY":"Drizzle on Neon Postgres, reached through Hyperdrive.","HOME_FEATURE_EMAIL":"Email","HOME_FEATURE_EMAIL_BODY":"Transactional email through Cloudflare Email, printed to the console in development.","HOME_FEATURE_I18N":"i18n and SEO","HOME_FEATURE_I18N_BODY":"English, German and French, hreflang, a sitemap and OG images generated with Takumi.","HOME_FEATURE_MCP":"MCP server","HOME_FEATURE_MCP_BODY":"OAuth 2.1 at /api/mcp for Claude, ChatGPT and other MCP clients.","HOME_FEATURE_ASSISTANT":"In-app assistant","HOME_FEATURE_ASSISTANT_BODY":"Streaming chat with TanStack AI and shared MCP tools. Off until a provider is configured and the assistant flag is enabled.","HOME_FAQ_ASSISTANT_Q":"Does the template include an AI assistant?","HOME_FAQ_ASSISTANT_A":"Yes. The assistant and MCP share one tool catalog, scoped to your organization. Writes require approval. Configure Anthropic, OpenAI or Gemini and enable the assistant flag to show the chat. It is off by default.","HOME_FEATURE_PREVIEWS":"Preview deploys","HOME_FEATURE_PREVIEWS_BODY":"A Worker and a Neon branch for every pull request.","HOME_FEATURE_CONSENT":"Cookie consent","HOME_FEATURE_CONSENT_BODY":"A consent banner that holds back analytics and marketing scripts.","HOME_FEATURE_EXPO":"Expo app","HOME_FEATURE_EXPO_BODY":"iOS and Android with the same API client, session and passkeys.","HOME_FEATURE_PUSH":"Push notifications","HOME_FEATURE_PUSH_BODY":"Expo push registration and a delivery queue. Off until credentials are set.","HOME_FEATURE_WIDGETS":"Home-screen widgets","HOME_FEATURE_WIDGETS_BODY":"Todo widgets for iOS and Android behind a native build option.","HOME_FEATURE_ADS":"Ads","HOME_FEATURE_ADS_BODY":"AdMob helpers kept as a standalone library, not imported by the app.","HOME_ARCHITECTURE_TITLE":"One shared contract.","HOME_ARCHITECTURE_BODY":"The browser and Expo call the same oRPC router. The Worker checks the session before accessing Postgres or R2.","HOME_BOUNDARY_TITLE":"Server stays server.","HOME_BOUNDARY_BODY":"Share contracts with your clients. Keep database connections, secrets and server code behind three independent checks.","HOME_BOUNDARY_CHECK_LINT":"oxlint","HOME_BOUNDARY_CHECK_LINT_BODY":"Value imports of server modules fail lint in apps/web, apps/mobile and packages/ui. Type imports are allowed.","HOME_BOUNDARY_CHECK_EXPORTS":"Explicit exports","HOME_BOUNDARY_CHECK_EXPORTS_BODY":"Each package lists its public entry points. No wildcards, so a new cross-package import is a deliberate change.","HOME_BOUNDARY_CHECK_BUNDLE":"Client bundle scan","HOME_BOUNDARY_CHECK_BUNDLE_BODY":"The web build reads the client assets and fails on strings that only exist in server code.","HOME_DEPLOY_TITLE":"A preview for every PR.","HOME_DEPLOY_BODY":"Each pull request gets a preview Worker and a Neon branch. Review the real URL, then merge when it is ready.","HOME_DEPLOY_FACT_PROD":"Merging ships production","HOME_DEPLOY_FACT_PROD_BODY":"A push to main runs the separate production workflow with production secrets and database.","HOME_DEPLOY_FACT_CLEANUP":"Cleanup is exact","HOME_DEPLOY_FACT_CLEANUP_BODY":"It checks the project, the pull request and the parent branch, deletes the Worker first and accepts resources that are already gone.","HOME_AGENTS_TITLE":"One tool catalog.","HOME_AGENTS_BODY":"TanStack AI and the MCP server use the same authorized tools. Coding agents get the repo instructions and architecture decisions.","HOME_AGENTS_RULES_BODY":"Rules every coding agent reads first: the client and server boundary, Effect on the server, i18n.","HOME_AGENTS_ADRS_BODY":"Architecture decisions with their context, so an agent does not undo them.","HOME_AGENTS_SKILLS_BODY":"Setup, startup, deploy and browser checks as step-by-step skills.","HOME_AGENTS_MCP_BODY":"Agents read your data and propose drafts over OAuth. Drafts wait until you apply them.","HOME_AGENTS_COMMAND_LABEL":"Connect Claude Code","HOME_AGENTS_COMMAND_NOTE":"In ChatGPT or claude.ai, add the same /api/mcp URL as a custom connector.","HOME_AGENTS_TREE_TITLE":"What the agent reads first","HOME_AGENTS_TRANSCRIPT_TITLE":"Tool calls over MCP","HOME_UI_RESULTS":"5 results","HOME_UI_AWAITING":"Waits for your approval","HOME_UI_NEW_TODO":"1 new todo","HOME_UI_TODO_A":"Ship the preview","HOME_UI_TODO_B":"Rotate the R2 keys","HOME_UI_TODO_C":"Write the changelog","HOME_STACK_WORKER":"Runs in one Worker","HOME_STACK_NODE_WEB":"Web app","HOME_STACK_NODE_MOBILE":"Mobile app","HOME_STACK_NODE_WORKER":"One Worker","HOME_STACK_NODE_POOL":"Hyperdrive","HOME_STACK_NODE_NEON":"Neon Postgres","HOME_STACK_NODE_R2":"R2 files","HOME_STACK_NODE_TOOLING":"Delivery","HOME_STACK_ZONE_CLIENTS":"Clients","HOME_STACK_ZONE_CLOUDFLARE":"Cloudflare","HOME_STACK_ZONE_DATA":"Data","HOME_STACK_LEGEND_FOCAL":"The one Worker","HOME_STACK_LEGEND_INPUT":"Clients","HOME_STACK_LEGEND_STORE":"Managed services","HOME_STACK_LEGEND_OPTIONAL":"Tooling, not at runtime","HOME_STACK_DIAGRAM_TITLE":"One Worker between the clients and the data","HOME_STACK_DIAGRAM_DESC":"Architecture diagram: the web and mobile apps call one Cloudflare Worker that serves TanStack Start, oRPC, Better Auth and Effect jobs, reaches Neon Postgres through Hyperdrive and stores files in R2; GitHub Actions, Turborepo and pnpm deploy it.","HOME_STACK_DIAGRAM_CAPTION":"Every request from either client takes the same path. The Worker is the only piece that talks to the database and the bucket.","HOME_STACK_TITLE":"The stack","HOME_STACK_BODY":"One TypeScript monorepo. Each package has one job and an enumerated public surface.","HOME_STACK_GROUP_WEB":"Web","HOME_STACK_GROUP_MOBILE":"Mobile","HOME_STACK_GROUP_API":"API","HOME_STACK_GROUP_AUTH":"Auth","HOME_STACK_GROUP_DATA":"Data and files","HOME_STACK_GROUP_PLATFORM":"Platform and tooling","HOME_START_TITLE":"Make it yours.","HOME_START_BODY":"Clone your copy of the repository. Install, configure, and run web and mobile together.","HOME_START_CLONE":"Clone","HOME_START_CLONE_BODY":"Start from your copy of the template repository.","HOME_START_INSTALL":"Install","HOME_START_INSTALL_BODY":"Installs every workspace in the monorepo.","HOME_START_SETUP":"Configure","HOME_START_SETUP_BODY":"Names the project and writes env files, Wrangler, database, email and storage settings.","HOME_START_RUN":"Run","HOME_START_RUN_BODY":"Web on localhost:3005, plus the Expo dev server for mobile.","HOME_FAQ_TITLE":"Before you clone.","HOME_FAQ_DEMO_Q":"What can I try in the demo?","HOME_FAQ_DEMO_A":"Create an account and use the real app: todos, files, organizations, passkeys, two-factor and settings. It runs on the same Worker as this page.","HOME_FAQ_WORKERS_Q":"Why Cloudflare Workers?","HOME_FAQ_WORKERS_A":"One deploy serves pages, the API, auth and scheduled jobs. Every pull request gets its own Worker, so review happens on a real URL.","HOME_FAQ_NEON_Q":"Why Neon Postgres instead of D1?","HOME_FAQ_NEON_A":"Auth, organizations and the job queues rely on Postgres transactions and locks. Hyperdrive pools the connection, and each pull request gets its own Neon branch.","HOME_FAQ_REMOVE_Q":"Can I remove mobile, payments or ads?","HOME_FAQ_REMOVE_A":"Yes. optional-features.json lists each optional package and its entry points, and docs/optional-features.md explains how to remove them.","HOME_FAQ_REBRAND_Q":"How do I rebrand it?","HOME_FAQ_REBRAND_A":"Colors, radius and fonts live in one token file. Names and copy live in the locale files. Screens only use tokens, so a palette swap changes every page.","HOME_FAQ_EFFECT_Q":"Do I need to know Effect?","HOME_FAQ_EFFECT_A":"Only to change server jobs. Effect coordinates execution in the Worker; contracts use Zod, requests use oRPC, auth uses Better Auth and queries use Drizzle.","HOME_FAQ_AGENTS_Q":"How do I connect an AI agent?","HOME_FAQ_AGENTS_A":"Point any MCP client at /api/mcp. You approve access over OAuth, read and write are separate scopes, and writes only create drafts you confirm in the app.","ARCH_TITLE":"Every package has one job","ARCH_SUBTITLE":"Select a folder or package in the tree to see what it owns.","ARCH_BODY_ROOT":"One Worker is the backend. Web and mobile share oRPC and Better Auth. Packages stay explicit so a client never imports a server module.","ARCH_BODY_APPS":"Two clients. TanStack Start on Cloudflare for web. Expo for mobile. Both call the same Worker.","ARCH_BODY_WEB":"TanStack Start, shadcn, i18n, SEO. File routes. The landing and the legal pages are public. Dashboard routes sit behind auth.","ARCH_BODY_MOBILE":"Expo Router, NativeTabs, the same oRPC client type. Passkeys and 2FA share the Worker session story.","ARCH_BODY_PACKAGES":"Server-capable packages export no barrels. A client imports a leaf: enums, zod schemas, or api/client types.","ARCH_BODY_API":"oRPC routers and zod contracts. MCP tools and webhooks live here. The client type is import type only.","ARCH_BODY_AUTH":"Better Auth with Drizzle, passkeys, 2FA, admin impersonation. Session cookies hit the Worker, not a second auth host.","ARCH_BODY_DB":"Drizzle schema on Neon. The schema barrel is the one sanctioned aggregate, and only server code can reach it.","ARCH_BODY_STORAGE":"R2 through files-sdk. Files belong to the active organization. The Worker checks current membership before issuing URLs or proxying bytes.","ARCH_BODY_EMAIL":"One sendEmail seam. Templates are pure. Production uses Cloudflare Email or Resend. Dev prints to the console.","ARCH_BODY_ENV":"env/server is Worker-only. env/web is the public subset. Native has its own leaf for Expo.","ARCH_BODY_ERRORS":"Shared error codes and i18n keys. Clients map codes to strings. They never import the server error factory.","ARCH_BODY_FLAGS":"Flag registry is a leaf. The DB repo is a separate subpath so a client import cannot pull Drizzle.","ARCH_BODY_INTL":"i18next plus a React provider. Server language is resolved from cookie and query.","ARCH_BODY_UI":"shadcn and ReUI primitives. Tokens in globals.css. This is the visual authority for web.","ARCH_BODY_WIDGETS":"iOS and Android home-screen todo widgets. Gated by a feature flag and native rebuild.","ARCH_BODY_APP_UPDATE":"Compares the running app version to admin config and tells the client whether to prompt.","ARCH_BODY_CONFIG":"Shared tsconfig and the oxlint client-boundary rules. No runtime.","ARCH_BODY_SETUP":"pnpm setup. Rename, env files, Neon, GitHub and Worker secrets.","ARCH_BODY_PLUGINS":"Agent plugin packaging. MCP tools the host can install.","ARCH_BODY_MCP_PLUGIN":"agent-plugin. Agent Plugins 1.0 package: MCP over OAuth, draft-only writes, and skills. Lives in plugins/agent-plugin.","FOOTER_COPYRIGHT":"© {{year}} Acme Inc.","FOOTER_NAV_LABEL":"Legal","LEGAL_PRIVACY_LINK":"Privacy","LEGAL_TERMS_LINK":"Terms","LEGAL_LAST_UPDATED":"Last updated {{date}}","LEGAL_TEMPLATE_NOTICE_TITLE":"Template text","LEGAL_TEMPLATE_NOTICE_BODY":"This page ships with the template. Replace the bracketed placeholders, adapt it to what your app really does and have it reviewed before launch. It is not legal advice.","PRIVACY_TITLE":"Privacy Policy","PRIVACY_INTRO":"This policy explains what {{company}} collects when you use this app, why we collect it and the choices you have.","PRIVACY_CONTROLLER_TITLE":"Who is responsible","PRIVACY_CONTROLLER_BODY":"{{company}}, {{address}}, is responsible for your personal data. Contact us at {{email}}.","PRIVACY_DATA_TITLE":"What we collect","PRIVACY_DATA_BODY":"Account data such as your name, email address, password hash, passkeys and two-factor settings. Content you create, such as organizations, todos and uploaded files. Technical data such as IP address, browser, sessions and security events in the audit log.","PRIVACY_USE_TITLE":"Why we use it","PRIVACY_USE_BODY":"To provide and secure the service, to send account emails such as verification, password reset and invitations, to prevent abuse and to meet legal obligations. We do not sell personal data.","PRIVACY_COOKIES_TITLE":"Cookies and local storage","PRIVACY_COOKIES_BODY":"Essential cookies keep you signed in and remember your language. Your theme and cookie choices are stored in your browser. Analytics or marketing tools, if enabled, load only after you consent in the cookie banner, and you can change that choice at any time.","PRIVACY_PROCESSORS_TITLE":"Service providers","PRIVACY_PROCESSORS_BODY":"We use processors that act on our instructions: Cloudflare for hosting, email and file storage, Neon for the database, and any payment or notification provider we enable.","PRIVACY_AGENTS_TITLE":"AI agents you connect","PRIVACY_AGENTS_BODY":"If you connect an AI agent over MCP, it can read your data and propose drafts only within the scopes you approve. You can revoke its access at any time under Integrations.","PRIVACY_RETENTION_TITLE":"How long we keep data","PRIVACY_RETENTION_BODY":"We keep account data while your account exists. When you delete your account in Settings, we delete your personal data within [30] days unless the law requires us to keep it. Security logs are kept for [90] days.","PRIVACY_RIGHTS_TITLE":"Your rights","PRIVACY_RIGHTS_BODY":"Depending on where you live, you can access, correct, export or delete your data, object to its processing and complain to a data protection authority. Write to {{email}} and we will answer within one month.","PRIVACY_CHANGES_TITLE":"Changes to this policy","PRIVACY_CHANGES_BODY":"We post changes on this page and update the date at the top. For material changes we also notify you by email or in the app.","TERMS_TITLE":"Terms of Service","TERMS_INTRO":"These terms govern your use of the app operated by {{company}}. By creating an account you agree to them.","TERMS_ACCOUNT_TITLE":"Your account","TERMS_ACCOUNT_BODY":"Give accurate information, keep your password and passkeys safe, and tell us at {{email}} if you think your account was compromised. You are responsible for activity under your account.","TERMS_USE_TITLE":"Acceptable use","TERMS_USE_BODY":"Do not break the law, infringe the rights of others, upload malware, probe or overload the service, or try to access data you are not allowed to see.","TERMS_CONTENT_TITLE":"Your content","TERMS_CONTENT_BODY":"You keep ownership of what you upload. You give us the permission we need to store, process and display it in order to provide the service. Organization admins can manage content shared in their organization.","TERMS_PAID_TITLE":"Paid features","TERMS_PAID_BODY":"If paid plans are offered, prices, billing periods and cancellation terms are shown before you buy and become part of these terms.","TERMS_AVAILABILITY_TITLE":"Availability and changes","TERMS_AVAILABILITY_BODY":"We work to keep the service available but cannot guarantee it will be uninterrupted. We may change or discontinue features and will give notice of material changes.","TERMS_TERMINATION_TITLE":"Ending your use","TERMS_TERMINATION_BODY":"You can delete your account at any time in Settings. We may suspend or close accounts that break these terms.","TERMS_LIABILITY_TITLE":"Liability","TERMS_LIABILITY_BODY":"The service is provided as is. To the extent the law allows, {{company}} is not liable for indirect or consequential damages. Nothing in these terms limits liability that the law does not allow us to limit.","TERMS_LAW_TITLE":"Governing law","TERMS_LAW_BODY":"These terms are governed by the laws of {{jurisdiction}}.","TERMS_CONTACT_TITLE":"Contact","TERMS_CONTACT_BODY":"Questions about these terms go to {{email}}.","AUTH_SIGN_IN_SUBTITLE":"Sign in to your account to continue.","AUTH_SIGN_UP_SUBTITLE":"Create an account to get started.","AUTH_ENGINE_TITLE":"The working parts","AUTH_ENGINE_DESCRIPTION":"An isometric rocket engine suspended in a test stand, with turbopumps, cooling pipes and a bell nozzle.","AUTH_ENGINE_CAPTION":"One Worker. Every client.","AUTH_ENGINE_DETAIL":"Authentication, data and storage. The foundations are in place.","AUTH_ENGINE_PAUSE":"Pause engine animation","AUTH_ENGINE_PLAY":"Play engine animation","TODO_TITLE":"Todo List","TODO_DESCRIPTION":"Manage your tasks efficiently","TODO_ADD_PLACEHOLDER":"Add a new task...","TODO_ADD_BUTTON":"Add","TODO_EMPTY":"No todos yet. Add one above!","TODO_DELETE_LABEL":"Delete todo","TODO_SEARCH_PLACEHOLDER":"Search tasks…","TODO_COL_TEXT":"Task","TODO_COL_PRIORITY":"Priority","TODO_COL_COMPLETED":"Done","TODO_COL_STATUS":"Status","TODO_COL_CREATED_AT":"Created","TODO_PRIORITY_LOW":"Low","TODO_PRIORITY_MEDIUM":"Medium","TODO_PRIORITY_HIGH":"High","TODO_COMPLETED_YES":"Done","TODO_COMPLETED_NO":"Open","TODO_STATUS_BACKLOG":"Backlog","TODO_STATUS_TODO":"To do","TODO_STATUS_IN_PROGRESS":"In progress","TODO_STATUS_DONE":"Done","TODO_VIEW_GRID":"Grid","TODO_VIEW_BOARD":"Board","TODO_VIEW_CALENDAR":"Calendar","TODO_VIEW_LABEL":"View","TODO_BOARD_EMPTY_LANE":"Nothing here","TODO_BOARD_LANE_COUNT":"{{shown}} of {{total}}","TODO_BOARD_EMPTY":"No todos match these filters.","TODO_BOARD_DROP_HINT":"Drop to move here","TODO_MOVE_TO":"Move to","TODO_MOVED_TOAST":"Moved to {{status}}","TODO_ROW_ACTIONS":"Todo actions","TODO_MOVE_ERROR":"Could not move that todo.","TODO_COL_DUE_DATE":"Due","TODO_CALENDAR_MONTH":"Month","TODO_CALENDAR_AGENDA":"Agenda","TODO_CALENDAR_MODE":"Calendar layout","TODO_CALENDAR_PREV":"Previous month","TODO_CALENDAR_NEXT":"Next month","TODO_CALENDAR_EMPTY":"Nothing scheduled in this range.","TODO_CALENDAR_ERROR":"The calendar could not be loaded.","TODO_CALENDAR_OVERDUE":"Overdue","TODO_CALENDAR_MORE":"+{{count}} more","TODO_CALENDAR_UNSCHEDULED":"{{count}} unscheduled","TODO_CALENDAR_TRUNCATED":"Showing the first {{count}} todos of this range","TODO_DUE_NONE":"No due date","PALETTE_TITLE":"Command palette","PALETTE_DESCRIPTION":"Jump to a page or view, or find a todo by name.","PALETTE_PLACEHOLDER":"Search pages, views and todos…","PALETTE_GROUP_PAGES":"Pages","PALETTE_GROUP_VIEWS":"Views","PALETTE_GROUP_TODOS":"Todos","PALETTE_NO_RESULTS":"Nothing matches that.","PALETTE_SEARCHING":"Searching todos…","PALETTE_ERROR":"Todo search is unavailable right now.","TABLE_SORT_ASC":"Ascending","TABLE_SORT_DESC":"Descending","TABLE_HIDE":"Hide","TABLE_VIEW":"View","TABLE_RESET":"Reset","TABLE_NO_RESULTS":"No results.","TABLE_SELECT_ALL":"Select all","TABLE_SELECT_ROW":"Select row","TABLE_ROWS_PER_PAGE":"Rows per page","TABLE_PAGE":"Page","TABLE_OF":"of","TABLE_SELECTED_COUNT":"{{selected}} of {{total}} row(s) selected.","DASHBOARD_TITLE":"Dashboard","DASHBOARD_WELCOME":"Welcome {{name}}","DASHBOARD_API":"API: {{message}}","DASHBOARD_SUBTITLE":"Todo counts, storage, and recent activity for this account.","DASHBOARD_RANGE_7D":"7 days","DASHBOARD_RANGE_30D":"30 days","DASHBOARD_RANGE_90D":"90 days","DASHBOARD_KPI_OPEN":"Open todos","DASHBOARD_KPI_DONE":"Done todos","DASHBOARD_KPI_FILES":"Files stored","DASHBOARD_KPI_EVENTS":"Recent events","DASHBOARD_STORAGE_TITLE":"Storage","DASHBOARD_STORAGE_DESC":"Files in this account","DASHBOARD_STORAGE_UNAVAILABLE":"Storage is unavailable right now","DASHBOARD_ACTIVITY_TITLE":"Recent activity","DASHBOARD_ACTIVITY_DESC":"Latest events for this account","DASHBOARD_ACTIVITY_EMPTY":"No activity in this period.","SETTINGS_SUBTITLE":"Manage your account, preferences and workspace.","SETTINGS_TAB_PROFILE":"Profile","SETTINGS_TAB_ORGANIZATION":"Organization","SETTINGS_TAB_SECURITY":"Security","SETTINGS_TAB_APPEARANCE":"Appearance","SETTINGS_ORG_TITLE":"Organizations","SETTINGS_ORG_DESC":"Switch the Active Organization or create another one.","SETTINGS_ORG_ACTIVE":"Active","SETTINGS_ORG_SWITCH":"Switch","SETTINGS_ORG_CREATE":"Create","SETTINGS_ORG_NAME_PLACEHOLDER":"Organization name","SETTINGS_ORG_INVITE":"Invite","SETTINGS_ORG_INVITE_PLACEHOLDER":"member@example.com","SETTINGS_ORG_INVITE_MISSING":"This invitation link is missing an id.","SETTINGS_ORG_INVITE_SIGN_IN":"Sign in to accept this invitation, then open the link again.","SETTINGS_ORG_INVITE_WORKING":"Accepting invitation…","SETTINGS_ORG_INVITE_ERROR":"Could not accept this invitation.","SETTINGS_ORG_INVITE_ACCEPT":"Accept invitation","SETTINGS_ORG_MEMBERS_TITLE":"Members","SETTINGS_ORG_MEMBERS_DESC":"People who can see the todos and files in this organization.","SETTINGS_ORG_MEMBERS_EMPTY":"No members in this organization yet.","SETTINGS_ORG_INVITE_MEMBER":"Invite Member","SETTINGS_ORG_INVITE_DIALOG_TITLE":"Invite people to your workspace","SETTINGS_ORG_INVITE_DIALOG_DESC":"They will join the Active Organization after accepting the email.","SETTINGS_ORG_INVITE_EMAIL":"Email","SETTINGS_ORG_INVITE_ROLE":"Select role","SETTINGS_ORG_INVITE_CANCEL":"Cancel","SETTINGS_ORG_INVITE_ADD":"Add user","SETTINGS_ORG_COL_NAME":"Name","SETTINGS_ORG_COL_EMAIL":"Email","SETTINGS_ORG_COL_ROLE":"Role","SETTINGS_ORG_COL_ACTIONS":"Actions","SETTINGS_ORG_ROLE_OWNER":"Owner","SETTINGS_ORG_ROLE_ADMIN":"Admin","SETTINGS_ORG_ROLE_MEMBER":"Member","SETTINGS_ORG_PENDING_TITLE":"Pending invitations","SETTINGS_ORG_PENDING":"Pending","SETTINGS_ORG_REMOVE":"Remove","SETTINGS_ORG_REMOVE_TITLE":"Remove this member?","SETTINGS_ORG_REMOVE_DESC":"{{name}} will lose access to this organization's todos and files.","SETTINGS_PROFILE_TITLE":"Profile","SETTINGS_PROFILE_DESC":"How you appear across the workspace.","SETTINGS_JOINED":"Joined {{date}}","SETTINGS_ACTIVITY_TITLE":"Activity","SETTINGS_ACTIVITY_DESC":"Your recent account activity.","SETTINGS_ACTIVITY_TABLE_TITLE":"Activity log","SETTINGS_ACTIVITY_TABLE_DESC":"The same events as a table, with IP and client.","SETTINGS_NAME":"Name","SETTINGS_EMAIL":"Email","SETTINGS_EMAIL_HINT":"Your email is used to sign in and cannot be changed here.","SETTINGS_SAVE":"Save changes","SETTINGS_SAVED":"Profile updated","SETTINGS_AVATAR_CHANGE":"Change avatar","SETTINGS_AVATAR_COMING_SOON":"Avatar upload is coming soon.","SETTINGS_APPEARANCE_TITLE":"Appearance","SETTINGS_APPEARANCE_DESC":"Customize how the app looks on this device.","SETTINGS_THEME_LABEL":"Theme","SETTINGS_LANGUAGE_LABEL":"Language","SETTINGS_DANGER_TITLE":"Danger zone","SETTINGS_DANGER_DESC":"Irreversible actions for your account.","SETTINGS_DELETE_ACCOUNT":"Delete account","SETTINGS_DELETE_CONFIRM_TITLE":"Delete your account?","SETTINGS_DELETE_CONFIRM_DESC":"This permanently deletes your account and signs you out on every device. Shared tasks remain available to other organization members. This cannot be undone.","SETTINGS_DELETE_CONFIRM_LABEL":"Type {{email}} to confirm","SETTINGS_DELETE_SESSION_EXPIRED":"For your security, deleting your account needs a recent sign-in. Sign out, sign back in, then try again.","SETTINGS_CANCEL":"Cancel","SETTINGS_DELETED":"Your account has been deleted","SETTINGS_PASSWORD_TITLE":"Password","SETTINGS_PASSWORD_DESC":"Change the password you use to sign in.","SETTINGS_PASSWORD_CURRENT":"Current password","SETTINGS_PASSWORD_CURRENT_REQUIRED":"Enter your current password","SETTINGS_PASSWORD_NEW":"New password","SETTINGS_PASSWORD_CONFIRM":"Confirm new password","SETTINGS_PASSWORD_SUBMIT":"Change password","SETTINGS_PASSWORD_REVOKE_HINT":"Changing your password signs you out on every other device.","SETTINGS_PASSWORD_CHANGED":"Password changed. Other devices have been signed out.","SETTINGS_PASSWORD_WRONG_CURRENT":"Your current password is incorrect.","PASSKEY_CARD_TITLE":"Passkeys","PASSKEY_CARD_DESC":"Use Face ID, Touch ID, Windows Hello, or a security key to sign in.","PASSKEY_COUNT":"{{count}} saved","PASSKEY_EMPTY":"No passkeys yet. Add one from this device to enable passwordless sign-in.","PASSKEY_NAME_LABEL":"Passkey name","PASSKEY_NAME_PLACEHOLDER":"MacBook, iPhone, security key…","PASSKEY_DEFAULT_NAME":"Passkey","PASSKEY_ADD":"Add passkey","PASSKEY_ADDED":"Passkey added","PASSKEY_DELETE":"Delete passkey","PASSKEY_DELETED":"Passkey deleted","PASSKEY_LIST_ERROR":"Couldn't load your passkeys. Please try again.","PASSKEY_BACKED_UP":"Synced","PASSKEY_CREATED":"Added {{time}}","PASSKEY_NO_DETAILS":"No device details","SETTINGS_SESSIONS_TITLE":"Active sessions","SETTINGS_SESSIONS_DESC":"Devices currently signed in to your account.","SETTINGS_SESSIONS_CURRENT":"This device","SETTINGS_SESSIONS_UNKNOWN_DEVICE":"Unknown device","SETTINGS_SESSIONS_LAST_ACTIVE":"Last active {{time}}","SETTINGS_SESSIONS_REVOKE":"Sign out","SETTINGS_SESSIONS_REVOKED":"Session signed out","SETTINGS_SESSIONS_REVOKE_OTHERS":"Sign out all other sessions","SETTINGS_SESSIONS_OTHERS_REVOKED":"All other sessions signed out","SETTINGS_SESSIONS_ERROR":"Couldn't load your sessions. Please try again.","SETTINGS_SESSIONS_NOT_FRESH":"For your security, sign in again to manage your sessions.","AUTH_SIGN_IN_TITLE":"Welcome Back","AUTH_SIGN_UP_TITLE":"Create Account","AUTH_FIELD_NAME":"Name","AUTH_FIELD_EMAIL":"Email","AUTH_FIELD_PASSWORD":"Password","AUTH_SUBMITTING":"Submitting...","AUTH_SIGN_IN_SUBMIT":"Sign In","AUTH_OR_CONTINUE_WITH":"or continue with","AUTH_SIGN_IN_PASSKEY":"Sign in with passkey","AUTH_PASSKEY_SIGN_IN_ERROR":"Could not sign in with that passkey.","AUTH_SIGN_UP_SUBMIT":"Sign Up","AUTH_SWITCH_TO_SIGN_UP":"Need an account? Sign Up","AUTH_SWITCH_TO_SIGN_IN":"Already have an account? Sign In","AUTH_SIGN_IN_SUCCESS":"Sign in successful","AUTH_SIGN_UP_SUCCESS":"Sign up successful","AUTH_VALIDATION_NAME_MIN":"Name must be at least 2 characters","AUTH_VALIDATION_EMAIL_INVALID":"Invalid email address","AUTH_VALIDATION_PASSWORD_MIN":"Password must be at least 8 characters","AUTH_VALIDATION_PASSWORDS_MISMATCH":"Passwords don't match","AUTH_FIELD_NEW_PASSWORD":"New password","AUTH_FIELD_CONFIRM_PASSWORD":"Confirm password","AUTH_FORGOT_PASSWORD_LINK":"Forgot password?","AUTH_BACK_TO_LOGIN":"Back to sign in","AUTH_EMAIL_NOT_VERIFIED_TITLE":"Email not verified","AUTH_EMAIL_NOT_VERIFIED_DESC":"Verify your email address before signing in. Check your inbox for the link, or request a new one.","AUTH_RESEND_VERIFICATION":"Resend verification email","AUTH_VERIFICATION_EMAIL_SENT":"Verification email sent. Check your inbox.","AUTH_CHECK_INBOX_TITLE":"Check your inbox","AUTH_CHECK_INBOX_DESC":"We sent a verification link to {{email}}. Click it to activate your account.","AUTH_FORGOT_TITLE":"Forgot your password?","AUTH_FORGOT_SUBTITLE":"Enter your email and we'll send you a reset link.","AUTH_FORGOT_SUBMIT":"Send reset link","AUTH_FORGOT_SUCCESS_TITLE":"Check your inbox","AUTH_FORGOT_SUCCESS_DESC":"If an account exists for {{email}}, a password reset link is on its way.","AUTH_RESET_TITLE":"Reset your password","AUTH_RESET_SUBTITLE":"Choose a new password for your account.","AUTH_RESET_SUBMIT":"Reset password","AUTH_RESET_SUCCESS_TITLE":"Password updated","AUTH_RESET_SUCCESS_DESC":"Your password has been reset. Sign in with your new password.","AUTH_RESET_SUCCESS_CTA":"Go to sign in","AUTH_RESET_INVALID_TITLE":"Link invalid or expired","AUTH_RESET_INVALID_DESC":"This password reset link is invalid or has already been used. Request a new one below.","AUTH_RESET_REQUEST_NEW":"Request a new link","AUTH_VERIFY_TITLE":"Verify your email","AUTH_VERIFY_VERIFYING":"Verifying your email…","AUTH_VERIFY_SUCCESS_TITLE":"Email verified","AUTH_VERIFY_SUCCESS_DESC":"Your email address is verified and you're signed in.","AUTH_VERIFY_SUCCESS_CTA":"Go to dashboard","AUTH_VERIFY_INVALID_TITLE":"Verification link invalid","AUTH_VERIFY_INVALID_DESC":"The verification link is invalid or has expired. Enter your email to receive a new one.","AUTH_BANNED":"Your account has been banned. Contact support if you believe this is a mistake.","ADMIN_USERS_TITLE":"Users","ADMIN_USERS_SUBTITLE":"Manage accounts, roles, bans and sessions.","ADMIN_USERS_EMPTY":"No users match the current filters.","ADMIN_SEARCH_PLACEHOLDER":"Search users…","ADMIN_SEARCH_FIELD_LABEL":"Search by","ADMIN_SEARCH_FIELD_EMAIL":"Email","ADMIN_SEARCH_FIELD_NAME":"Name","ADMIN_COL_NAME":"Name","ADMIN_COL_EMAIL":"Email","ADMIN_COL_ROLE":"Role","ADMIN_COL_2FA":"2FA","ADMIN_COL_STATUS":"Status","ADMIN_COL_CREATED":"Created","ADMIN_ROLE_ADMIN":"Admin","ADMIN_ROLE_USER":"User","ADMIN_2FA_ON":"On","ADMIN_2FA_OFF":"Off","ADMIN_STATUS_ACTIVE":"Active","ADMIN_STATUS_BANNED":"Banned","ADMIN_FILTER_ROLE":"Role","ADMIN_FILTER_STATUS":"Status","ADMIN_CREATE_USER":"Create user","ADMIN_CREATE_USER_DESC":"Create an account directly. The user can sign in with this password right away.","ADMIN_CREATE_SUBMIT":"Create user","ADMIN_USER_CREATED_TOAST":"User created","ADMIN_FIELD_ROLE":"Role","ADMIN_ROLE_UPDATED_TOAST":"Role updated","ADMIN_BAN_USER":"Ban user","ADMIN_UNBAN_USER":"Unban","ADMIN_BAN_DESC":"The user is signed out everywhere and cannot sign in while banned.","ADMIN_BAN_REASON_LABEL":"Reason","ADMIN_BAN_REASON_PLACEHOLDER":"e.g. Terms of service violation","ADMIN_BAN_EXPIRES_LABEL":"Duration","ADMIN_BAN_EXPIRES_NEVER":"Until unbanned","ADMIN_BAN_EXPIRES_1H":"1 hour","ADMIN_BAN_EXPIRES_1D":"24 hours","ADMIN_BAN_EXPIRES_7D":"7 days","ADMIN_BAN_EXPIRES_30D":"30 days","ADMIN_BAN_EXPIRES_HINT":"Ban expires {{date}}","ADMIN_BAN_SUBMIT":"Ban user","ADMIN_BANNED_TOAST":"User banned","ADMIN_UNBANNED_TOAST":"User unbanned","ADMIN_SESSIONS_TITLE":"Sessions","ADMIN_SESSIONS_EMPTY":"No active sessions.","ADMIN_SESSIONS_REVOKE":"Revoke","ADMIN_SESSIONS_REVOKE_ALL":"Revoke all","ADMIN_SESSION_REVOKED_TOAST":"Session revoked","ADMIN_SESSIONS_REVOKED_TOAST":"All sessions revoked","ADMIN_SET_PASSWORD":"Set password","ADMIN_SET_PASSWORD_DESC":"Set a new password for this account.","ADMIN_PASSWORD_SET_TOAST":"Password updated","ADMIN_IMPERSONATE":"Impersonate","ADMIN_IMPERSONATING":"Impersonating {{name}}","ADMIN_IMPERSONATING_STOP":"Stop","ADMIN_REMOVE_USER":"Remove user","ADMIN_REMOVE_TITLE":"Remove this user?","ADMIN_REMOVE_DESC":"This permanently deletes the account and signs the user out on every device. Shared tasks remain available to other organization members. Type {{email}} to confirm.","ADMIN_REMOVE_CONFIRM_PLACEHOLDER":"Type the email to confirm","ADMIN_REMOVE_SUBMIT":"Remove user","ADMIN_REMOVED_TOAST":"User removed","ADMIN_USER_TAB_DETAILS":"Details","ADMIN_USER_TAB_TIMELINE":"Timeline","AUDIT_TITLE":"Audit log","AUDIT_SUBTITLE":"Review authentication, administration and workspace events.","AUDIT_EMPTY":"No activity matches the current filters.","AUDIT_COL_ACTION":"Action","AUDIT_COL_ACTOR":"Actor","AUDIT_COL_TARGET":"Target","AUDIT_COL_CREATED":"Created","AUDIT_ACTION_FILTER":"Action family","AUDIT_ACTOR_PLACEHOLDER":"Filter by actor ID…","AUDIT_DATE_FROM":"From date","AUDIT_DATE_TO":"To date","AUDIT_FAMILY_ALL":"All activity","AUDIT_FAMILY_AUTH":"Authentication","AUDIT_FAMILY_ADMIN":"Administration","AUDIT_FAMILY_TODO":"Todos","AUDIT_FAMILY_USER":"Users","AUDIT_EXPAND":"Show event details","AUDIT_IP":"IP address","AUDIT_USER_AGENT":"User agent","AUDIT_COL_CLIENT":"Client","AUDIT_LOAD_MORE":"Load more","AUDIT_RECENT_SECURITY_TITLE":"Recent security activity","AUDIT_RECENT_SECURITY_DESC":"Sign-ins and account changes affecting you.","AUDIT_ACTION_AUTH_SIGN_IN":"Signed in","AUDIT_ACTION_AUTH_SIGN_OUT":"Signed out","AUDIT_ACTION_AUTH_PASSWORD_RESET":"Reset password","AUDIT_ACTION_AUTH_EMAIL_VERIFIED":"Verified email","AUDIT_ACTION_AUTH_2FA_ENABLED":"Enabled two-factor authentication","AUDIT_ACTION_AUTH_2FA_DISABLED":"Disabled two-factor authentication","AUDIT_ACTION_AUTH_PASSKEY_REGISTERED":"Added passkey","AUDIT_ACTION_AUTH_PASSKEY_UPDATED":"Updated passkey","AUDIT_ACTION_AUTH_PASSKEY_DELETED":"Deleted passkey","AUDIT_ACTION_USER_CREATED":"Created user","AUDIT_ACTION_USER_DELETED":"Deleted user","AUDIT_ACTION_ORG_CREATED":"Created organization","AUDIT_ACTION_ORG_MEMBER_INVITED":"Invited organization member","AUDIT_ACTION_ORG_INVITATION_ACCEPTED":"Accepted organization invitation","AUDIT_ACTION_ORG_MEMBER_ROLE_CHANGED":"Changed organization member role","AUDIT_ACTION_ORG_MEMBER_REMOVED":"Removed organization member","AUDIT_ACTION_TODO_CREATED":"Created todo","AUDIT_ACTION_TODO_TOGGLED":"Updated todo","AUDIT_ACTION_TODO_DELETED":"Deleted todo","AUDIT_ACTION_ADMIN_USER_CREATED":"Created user","AUDIT_ACTION_ADMIN_ROLE_CHANGED":"Changed role","AUDIT_ACTION_ADMIN_USER_BANNED":"Banned user","AUDIT_ACTION_ADMIN_USER_UNBANNED":"Unbanned user","AUDIT_ACTION_ADMIN_IMPERSONATION_STARTED":"Started impersonation","AUDIT_ACTION_ADMIN_IMPERSONATION_STOPPED":"Stopped impersonation","AUDIT_ACTION_ADMIN_SESSION_REVOKED":"Revoked session","AUDIT_ACTION_ADMIN_SESSIONS_REVOKED":"Revoked sessions","AUDIT_ACTION_ADMIN_USER_REMOVED":"Removed user","AUDIT_ACTION_ADMIN_PASSWORD_SET":"Set password","AUDIT_ACTION_BILLING_SUBSCRIPTION_CHANGED":"Subscription updated","FLAGS_TITLE":"Feature flags","FLAGS_SUBTITLE":"Toggle behavior per platform and gate app updates — every change is audited.","FLAGS_SECTION_TITLE":"Flags","FLAGS_SAVED_TOAST":"Flag saved","FLAGS_DELETED_TOAST":"Flag override deleted","FLAGS_COL_FLAG":"Flag","FLAGS_COL_VALUE":"Value","FLAGS_COL_OVERRIDES":"Overrides","FLAGS_COL_ENABLED":"Enabled","FLAGS_COL_UPDATED":"Updated","FLAGS_BADGE_CODE_DEFAULT":"code default","FLAGS_BADGE_OVERRIDE":"override","FLAGS_BADGE_UNKNOWN":"unknown","FLAGS_SAVE":"Save","FLAGS_EDIT_JSON":"Edit JSON","FLAGS_JSON_HINT":"Enter valid JSON, or leave blank to use the code default.","FLAGS_JSON_INVALID":"Invalid JSON","FLAGS_VALUE_INVALID":"Invalid value for this flag kind","FLAGS_OVERRIDES":"Per-platform","FLAGS_OVERRIDES_TITLE":"Per-platform overrides","FLAGS_OVERRIDES_DESC":"Override the value for specific platforms; leave a platform to inherit the base value.","FLAGS_OVERRIDES_SAVE_COUNT":"Save {{count}} override(s)","FLAGS_OVERRIDE_INHERIT":"Inherit","FLAGS_OVERRIDE_INVALID":"Invalid override value for {{platform}}","FLAGS_ON":"On","FLAGS_OFF":"Off","FLAGS_DELETE":"Delete","FLAGS_DELETE_TITLE":"Delete this flag override?","FLAGS_DELETE_DESC":"The DB override for “{{key}}” is removed and the flag reverts to its code default.","FLAGS_NEW":"New flag","FLAGS_NEW_TITLE":"Create a flag","FLAGS_NEW_DESC":"Add a DB-backed flag. Keys not in the code registry appear as removable rows.","FLAGS_NEW_KEY_LABEL":"Key","FLAGS_NEW_KEY_HINT":"Lowercase words joined by dots or hyphens, e.g. checkout.new-flow.","FLAGS_NEW_KEY_INVALID":"Enter a valid key: lowercase words joined by “.” or “-”.","FLAGS_NEW_DESCRIPTION_LABEL":"Description","FLAGS_NEW_KIND_LABEL":"Kind","FLAGS_NEW_VALUE_LABEL":"Initial value","FLAGS_NEW_ENABLED_LABEL":"Enabled","FLAGS_NEW_CREATE":"Create flag","FLAGS_KIND_BOOLEAN":"Boolean","FLAGS_KIND_STRING":"String","FLAGS_KIND_NUMBER":"Number","FLAGS_KIND_JSON":"JSON","APP_UPDATE_TITLE":"App update gate","APP_UPDATE_DESC":"Force or recommend a minimum app version per platform. Ships disabled.","APP_UPDATE_SAVED_TOAST":"App update config saved","APP_UPDATE_ENABLED_LABEL":"Enable update gate","APP_UPDATE_ENABLED_HINT":"While off, apps behave as if no update is required.","APP_UPDATE_INTERVAL_LABEL":"Check interval (minutes)","APP_UPDATE_INTERVAL_HINT":"How often clients re-check for a required update (1–1440).","APP_UPDATE_INTERVAL_INVALID":"Interval must be a whole number between 1 and 1440","APP_UPDATE_IOS":"iOS","APP_UPDATE_ANDROID":"Android","APP_UPDATE_MIN_VERSION":"Minimum version","APP_UPDATE_RECOMMENDED_VERSION":"Recommended version","APP_UPDATE_STORE_URL":"Store URL","APP_UPDATE_SAVE":"Save config","APP_UPDATE_SAVING":"Saving…","TWO_FACTOR_TITLE":"Two-factor authentication","TWO_FACTOR_SUBTITLE_TOTP":"Enter the six-digit code from your authenticator app.","TWO_FACTOR_SUBTITLE_BACKUP":"Enter one of your backup codes. Each code works only once.","TWO_FACTOR_CODE_LABEL":"Authentication code","TWO_FACTOR_BACKUP_CODE_LABEL":"Backup code","TWO_FACTOR_BACKUP_CODE_PLACEHOLDER":"e.g. abcde-12345","TWO_FACTOR_VERIFY":"Verify","TWO_FACTOR_TRUST_DEVICE":"Trust this device for 30 days","TWO_FACTOR_USE_BACKUP_CODE":"Use a backup code instead","TWO_FACTOR_USE_TOTP":"Use your authenticator app instead","TWO_FACTOR_INVALID_CODE":"That code is invalid. Check your authenticator app and try again.","TWO_FACTOR_INVALID_BACKUP_CODE":"That backup code is invalid or has already been used.","TWO_FACTOR_LOCKED":"Too many failed attempts. Your account is temporarily locked — try again later.","TWO_FACTOR_CHALLENGE_EXPIRED":"Your two-factor sign-in expired. Please sign in again.","TWO_FACTOR_TOO_MANY_ATTEMPTS":"Too many attempts. Please sign in again.","TWO_FACTOR_CARD_TITLE":"Two-factor authentication","TWO_FACTOR_CARD_DESC":"Add a second step to sign-in with an authenticator app.","TWO_FACTOR_STATUS_ON":"Enabled","TWO_FACTOR_STATUS_OFF":"Disabled","TWO_FACTOR_ENABLED_HINT":"Signing in requires a code from your authenticator app. Keep your backup codes somewhere safe.","TWO_FACTOR_DISABLED_HINT":"Protect your account with time-based one-time codes (TOTP) and backup codes.","TWO_FACTOR_ENABLE":"Enable two-factor","TWO_FACTOR_DISABLE":"Disable two-factor","TWO_FACTOR_REGENERATE_CODES":"New backup codes","TWO_FACTOR_ENABLE_TITLE":"Enable two-factor authentication","TWO_FACTOR_ENABLE_PASSWORD_DESC":"Confirm your password to get started.","TWO_FACTOR_ENABLE_REVEAL_DESC":"Scan the QR code with your authenticator app, or enter the secret manually. Save your backup codes now.","TWO_FACTOR_ENABLE_VERIFY_DESC":"Enter the six-digit code from your authenticator app to finish setup.","TWO_FACTOR_CONTINUE":"Continue","TWO_FACTOR_SECRET_LABEL":"Setup key","TWO_FACTOR_COPY_SECRET":"Copy setup key","TWO_FACTOR_SECRET_COPIED":"Setup key copied","TWO_FACTOR_DISABLE_TITLE":"Disable two-factor authentication","TWO_FACTOR_DISABLE_DESC":"Your account will no longer require a second step at sign-in. Confirm your password to continue.","TWO_FACTOR_REGENERATE_TITLE":"Generate new backup codes","TWO_FACTOR_REGENERATE_DESC":"This replaces all existing backup codes. Confirm your password to continue.","TWO_FACTOR_DONE":"Done","TWO_FACTOR_WRONG_PASSWORD":"Incorrect password. Please try again.","TWO_FACTOR_ENABLED_TOAST":"Two-factor authentication enabled","TWO_FACTOR_DISABLED_TOAST":"Two-factor authentication disabled","TWO_FACTOR_CODES_REGENERATED_TOAST":"New backup codes generated","TWO_FACTOR_CODES_WARNING_TITLE":"Save these backup codes","TWO_FACTOR_CODES_WARNING_DESC":"They are shown only once. Each code signs you in one time if you lose access to your authenticator app.","TWO_FACTOR_COPY_CODES":"Copy codes","TWO_FACTOR_DOWNLOAD_CODES":"Download .txt","TWO_FACTOR_CODES_COPIED":"Backup codes copied","BILLING_SUBTITLE":"Your plan, how it's billed and where to manage it.","BILLING_CURRENT_PLAN":"Current plan","BILLING_NO_PLAN":"Free","BILLING_NO_PLAN_DESC":"You don't have an active subscription.","BILLING_VIA_PROVIDER":"Billed through {{provider}}","BILLING_STATUS_ACTIVE":"Active","BILLING_STATUS_ENDING":"Ending","BILLING_RENEWS_ON":"Renews on {{date}}","BILLING_ENDS_ON":"Access ends on {{date}}","BILLING_NO_END_DATE":"No end date","BILLING_MOBILE_MANAGED":"Bought in the mobile app. Manage it in your App Store or Google Play subscriptions.","BILLING_MANAGE":"Manage subscription","BILLING_PLANS_TITLE":"Plans","BILLING_PLANS_DESC":"Checkout shows the final price, including tax.","BILLING_PER_MONTH":"/ month","BILLING_PER_YEAR":"/ year","BILLING_CHOOSE_PLAN":"Choose plan","BILLING_CURRENT_BADGE":"Current plan","BILLING_INCLUDED":"Included in your plan","BILLING_PLAN_PRO_NAME":"Pro","BILLING_PLAN_PRO_DESC":"Paid access for your account on web and mobile.","BILLING_PROVIDER_STRIPE":"Stripe","BILLING_PROVIDER_POLAR":"Polar","BILLING_PROVIDER_REVENUECAT":"the App Store or Google Play","BILLING_DISABLED_TITLE":"Billing isn't set up","BILLING_DISABLED_DESC":"No payment provider is enabled on this server yet.","BILLING_EMPTY_TITLE":"No plans available","BILLING_EMPTY_DESC":"Plans appear here once a price is configured for the checkout provider.","BILLING_ERROR_TITLE":"Couldn't load billing","BILLING_ERROR_DESC":"Check your connection and try again.","BILLING_RETRY":"Try again","BILLING_CHECKOUT_SUCCESS_TITLE":"Payment received","BILLING_CHECKOUT_SUCCESS_DESC":"Confirming your subscription with the payment provider. This usually takes a few seconds.","BILLING_CHECKOUT_CONFIRMED":"Your subscription is active.","BILLING_CHECKOUT_CANCELED":"Checkout canceled. You haven't been charged.","LANGUAGE_SWITCHER_LABEL":"Language","LANGUAGE_ENGLISH":"English","LANGUAGE_GERMAN":"German","LANGUAGE_FRENCH":"French","COOKIE_CONSENT_TITLE":"Cookie settings","COOKIE_CONSENT_DESCRIPTION":"We use essential cookies to make our app work. With your consent, we also use optional cookies to improve your experience.","COOKIE_CONSENT_LEGAL_NOTE":"Read our","COOKIE_CONSENT_COOKIE_POLICY":"Cookie Policy","COOKIE_CONSENT_AND":"and","COOKIE_CONSENT_PRIVACY_POLICY":"Privacy Policy","COOKIE_CONSENT_PREF_ESSENTIAL":"Essential","COOKIE_CONSENT_PREF_ESSENTIAL_DESC":"Required for the app to function. Always on.","COOKIE_CONSENT_PREF_ANALYTICS":"Analytics","COOKIE_CONSENT_PREF_ANALYTICS_DESC":"Helps us measure product usage so we can improve it.","COOKIE_CONSENT_PREF_MARKETING":"Marketing","COOKIE_CONSENT_PREF_MARKETING_DESC":"Used to deliver more relevant content and offers.","COOKIE_CONSENT_PREF_REPLAY":"Session replay","COOKIE_CONSENT_PREF_REPLAY_DESC":"Records anonymized sessions to help us debug issues.","COOKIE_CONSENT_REJECT_ALL":"Reject all","COOKIE_CONSENT_ACCEPT_ALL":"Accept all","COOKIE_CONSENT_SAVE_PREFERENCES":"Save preferences","COOKIE_CONSENT_MANAGE_PREFERENCES":"Manage preferences","FILES_PAGE_TITLE":"Files","FILES_PAGE_SUBTITLE":"Upload and explore files shared with your organization.","FILES_TAB_BROWSE":"Browse","FILES_TAB_SEARCH":"Search","FILES_TAB_TRASH":"Trash","FILES_DETAILS_TITLE":"File details","FILES_COMPOSER_PLACEHOLDER":"Drop files here, or add a note about them…","FILES_COMPOSER_HINT":"Drag & drop, paste, or","FILES_COMPOSER_ADD":"add files","FILES_COMPOSER_UPLOAD":"Upload","FILES_COMPOSER_UPLOADING":"Uploading…","FILES_COMPOSER_CLEAR":"Clear","FILES_COMPOSER_LIMIT":"Up to {{count}} files · images {{imageSize}}, documents {{documentSize}}, ZIP {{archiveSize}}","FILES_REMOVE":"Remove","FILES_RETRY":"Retry","FILES_TAB_LIBRARY":"Library","FILES_STORAGE_LABEL":"Storage","FILES_STORAGE_USAGE":"{{used}} stored","FILES_STORAGE_COUNT":"{{count}} files","FILES_EMPTY_TITLE":"No files yet","FILES_EMPTY_DESC":"Upload your first file with the composer above.","FILES_OPEN":"Open","FILES_ACTIONS":"Actions","FILES_DOWNLOAD":"Download","FILES_COPY":"Copy","FILES_RENAME":"Rename","FILES_MOVE":"Move","FILES_DELETE":"Delete","FILES_COPY_TITLE":"Copy to","FILES_RENAME_TITLE":"Rename file","FILES_MOVE_TITLE":"Move to","FILES_DELETE_TITLE":"Delete file","FILES_NEW_NAME":"New name","FILES_DESTINATION":"Destination key","FILES_CANCEL":"Cancel","FILES_CONFIRM":"Confirm","FILES_SHARE":"Share","FILES_UPLOAD_LINK":"Upload link","FILES_SHARE_LINK":"Share link","FILES_EXPIRES_AFTER":"Expires after","FILES_EXPIRY_5_MIN":"5 minutes","FILES_EXPIRY_1_HOUR":"1 hour","FILES_EXPIRY_1_DAY":"1 day","FILES_EXPIRY_7_DAYS":"7 days","FILES_OPEN_AS":"Open as","FILES_INLINE":"Preview","FILES_PUBLIC_LINK_HINT":"This provider returns a permanent public link without an expiry.","FILES_COPIED":"Copied","FILES_GENERATE_LINK":"Generate link","FILES_LINK_LABEL":"File link","FILES_SEARCH_KEYS":"Search file names…","FILES_SEARCH_SUBSTRING":"Contains","FILES_SEARCH_GLOB":"Wildcard pattern","FILES_SEARCH_REGEX":"Regular expression","FILES_SEARCH_EXACT":"Exact name","FILES_CASE_INSENSITIVE":"Ignore letter case","FILES_MATCH_COUNT":"Matches: {{count}}","FILES_UNKNOWN_TYPE":"Unknown type","FILES_TRASH_COUNT":"Files in trash: {{count}}","FILES_EMPTY_TRASH":"Empty trash","FILES_LOADING":"Loading…","FILES_TRASH_EMPTY":"Trash is empty.","FILES_RESTORE":"Restore","FILES_DELETE_FOREVER":"Delete forever","FILES_PURGE_TITLE":"Delete forever?","FILES_EMPTY_TRASH_TITLE":"Empty the trash?","FILES_PURGE_DESCRIPTION":"The file {{key}} will be permanently deleted. This cannot be undone.","FILES_EMPTY_TRASH_DESCRIPTION":"Every file in the trash will be permanently deleted. This cannot be undone.","FILES_PDF_PREVIEW":"PDF preview","FILES_IMAGE_PREVIEW":"Image preview","FILES_NO_PREVIEW":"No inline preview available","FILES_PREVIEW_ERROR":"Could not load the file. Close the preview and try again.","FILES_ACTION_ERROR":"Could not complete this file action. Try again.","FILES_SHARE_ERROR":"Could not generate the link. Try again.","FILES_CLIPBOARD_ERROR":"Could not copy the link. Select the link and copy it manually.","FILES_SEARCH_ERROR":"Could not search files. Check your search pattern and try again.","FILES_TRASH_LOAD_ERROR":"Could not load the trash. Try again.","FILES_TRASH_ACTION_ERROR":"Could not change the trash. Try again.","SEO_DEFAULT_TITLE":"Acme Inc. · Full-stack Cloudflare starter","SEO_DEFAULT_DESC":"A production-ready TanStack Start template on Cloudflare Workers: auth, storage, i18n, and more.","SEO_HOME_TITLE":"Acme Inc. · One Cloudflare Worker for web and mobile","SEO_HOME_DESC":"A full-stack starter with TanStack Start and Expo on one Cloudflare Worker. Auth, R2 files, Postgres, payments, AI and MCP tools, and a preview per PR.","SEO_LOGIN_TITLE":"Sign in · Acme Inc.","SEO_LOGIN_DESC":"Sign in to your Acme Inc. account.","SEO_SIGNUP_TITLE":"Create account · Acme Inc.","SEO_SIGNUP_DESC":"Create your Acme Inc. account.","SEO_FORGOT_PASSWORD_TITLE":"Forgot password · Acme Inc.","SEO_FORGOT_PASSWORD_DESC":"Request a password reset link for your Acme Inc. account.","SEO_RESET_PASSWORD_TITLE":"Reset password · Acme Inc.","SEO_RESET_PASSWORD_DESC":"Choose a new password for your Acme Inc. account.","SEO_VERIFY_EMAIL_TITLE":"Verify email · Acme Inc.","SEO_VERIFY_EMAIL_DESC":"Verify the email address for your Acme Inc. account.","SEO_TWO_FACTOR_TITLE":"Two-factor authentication · Acme Inc.","SEO_TWO_FACTOR_DESC":"Confirm your identity with a two-factor authentication code.","SEO_PRIVACY_TITLE":"Privacy Policy · Acme Inc.","SEO_PRIVACY_DESC":"How Acme Inc. collects, uses and protects personal data.","SEO_TERMS_TITLE":"Terms of Service · Acme Inc.","SEO_TERMS_DESC":"The terms for using the Acme Inc. app.","OAUTH_CONSENT_TITLE":"Connect an AI agent","OAUTH_CONSENT_SUBTITLE":"{{client}} is requesting access to your account. Review what it can do before you approve.","OAUTH_CONSENT_CLIENT_FALLBACK":"This application","OAUTH_CONSENT_MISSING_TITLE":"No authorization request","OAUTH_CONSENT_MISSING_DESC":"Open this page from the application that asked for access. There is nothing to approve right now.","OAUTH_CONSENT_ERROR_TITLE":"Something went wrong","OAUTH_CONSENT_ERROR_DESC":"The consent could not be completed. Go back and try connecting again.","OAUTH_CONSENT_SCOPES_LABEL":"What the agent will be able to do:","OAUTH_CONSENT_SCOPE_UNKNOWN_DESC":"Unrecognized permission requested by this client.","OAUTH_CONSENT_SCOPE_DATA_READ_TITLE":"Read your data","OAUTH_CONSENT_SCOPE_DATA_READ_DESC":"View your todos and files through the API. Read-only — nothing can be created or changed.","OAUTH_CONSENT_SCOPE_DATA_WRITE_TITLE":"Create draft items","OAUTH_CONSENT_SCOPE_DATA_WRITE_DESC":"Propose new todos and plans as drafts. Drafts stay paused until you review and confirm them in the app — the agent never changes live data silently.","OAUTH_CONSENT_SCOPE_OPENID_TITLE":"Sign-in identity","OAUTH_CONSENT_SCOPE_OPENID_DESC":"Verify who you are when signing in to the agent connection.","OAUTH_CONSENT_SCOPE_PROFILE_TITLE":"Basic profile","OAUTH_CONSENT_SCOPE_PROFILE_DESC":"See your name and email address.","OAUTH_CONSENT_SCOPE_OFFLINE_ACCESS_TITLE":"Stay connected","OAUTH_CONSENT_SCOPE_OFFLINE_ACCESS_DESC":"Refresh access while you are away so you do not have to reconnect every time.","OAUTH_CONSENT_ACCEPT":"Allow access","OAUTH_CONSENT_DENY":"Deny","OAUTH_CONSENT_SUBMITTING":"Working…","NAV_INTEGRATIONS":"Integrations","INTEGRATIONS_SUBTITLE":"Connect AI agents, webhooks, and see what they did.","INTEGRATIONS_TAB_CONNECTIONS":"Connected agents","INTEGRATIONS_TAB_WEBHOOK":"Webhook","INTEGRATIONS_TAB_ACTIVITY":"Agent activity","PROPOSAL_BANNERS_TITLE":"Agent proposals","PROPOSAL_PENDING_FROM":"Proposed by {{clientId}}","PROPOSAL_APPLY":"Apply","PROPOSAL_DISMISS":"Dismiss","PROPOSAL_RESOLVED_TOAST":"Proposal resolved","CONNECTIONS_EMPTY_TITLE":"No agents connected yet","CONNECTIONS_EMPTY_DESC":"Run the claude mcp add command from your terminal to connect Claude Code, or add the MCP URL in ChatGPT developer mode.","CONNECTIONS_ACCESS_READ":"Read-only","CONNECTIONS_ACCESS_READ_WRITE":"Read + write (drafts)","CONNECTIONS_STATUS_ACTIVE":"Active","CONNECTIONS_STATUS_DISABLED":"Disabled","CONNECTIONS_LAST_USED":"Last used {{when}}","CONNECTIONS_REVOKE":"Revoke","INTEGRATIONS_CONNECTION_REVOKED_TOAST":"Connection revoked","WEBHOOK_NONE_TITLE":"No webhook registered","WEBHOOK_NONE_DESC":"Register your agent bot's HTTPS endpoint to get signed wake-up events.","WEBHOOK_URL_LABEL":"Endpoint URL (HTTPS)","WEBHOOK_EVENTS_LABEL":"Events","WEBHOOK_REGISTER":"Register","WEBHOOK_SAVE":"Save changes","WEBHOOK_SECRET_ONCE_TITLE":"Copy your signing secret now","WEBHOOK_SECRET_ONCE_DESC":"This is shown only once. Your bot needs it to verify signatures (sha256=HMAC).","WEBHOOK_ROTATE":"Rotate secret","WEBHOOK_TEST":"Send test event","WEBHOOK_DELETE":"Remove webhook","WEBHOOK_ACTIVE_LABEL":"Active","WEBHOOK_FAILURES":"Consecutive failures: {{count}}","WEBHOOK_DELIVERIES_TITLE":"Recent deliveries","WEBHOOK_DELIVERY_SENT":"Sent","WEBHOOK_DELIVERY_FAILED":"Failed","ACTIVITY_EMPTY":"No agent activity recorded yet.","FILES_FILE_NAME":"File name","FILES_UPLOAD_DONE":"Uploaded","FILES_UPLOAD_CANCELLED":"Cancelled","FILES_UPLOAD_RETRY":"Interrupted. Upload again to resume.","FILES_UPLOAD_TOO_LARGE":"This file exceeds the storage limit.","DOCUMENT_TEXT":"Document text","DOCUMENT_PENDING":"Preparing text","DOCUMENT_PENDING_BROWSER":"Text not prepared yet","DOCUMENT_CONVERT":"Prepare document text","DOCUMENT_CONVERTING":"Preparing text on this device…","DOCUMENT_BROWSER_GUIDANCE":"Prepare the text on this device for search and the assistant. Keep this tab open. You can return here to finish later.","DOCUMENT_CONVERSION_RETRY":"Text preparation was interrupted. Try again; the original file is already stored.","DOCUMENT_READY":"Text ready","DOCUMENT_NEEDS_OCR":"Scanned PDF. Text recognition is needed.","DOCUMENT_ENCRYPTED":"Password-protected document","DOCUMENT_UNSUPPORTED":"Text conversion is unavailable for this format.","DOCUMENT_MALFORMED":"The document could not be read.","DOCUMENT_RESOURCE_LIMIT":"The document is too complex to convert.","DOCUMENT_TEXT_TOO_LARGE_BEFORE_UPLOAD":"This document's text is larger than {{limit}}. It will be stored but not indexed.","DOCUMENT_TEXT_TOO_LARGE":"This document's text is larger than {{limit}}. The original is stored and downloadable, but its text will not be indexed.","DOCUMENT_TOO_LARGE":"Stored. Too large for text conversion.","DOCUMENT_SOURCE_MISSING":"The original file is unavailable.","DOCUMENT_SOURCE_CHANGED":"The original file has changed.","DOCUMENT_UNAVAILABLE":"Document text is unavailable.","DOCUMENT_LOADING":"Loading document text…","DOCUMENT_PAGES":"Document pages","DOCUMENT_PREVIOUS":"Previous","DOCUMENT_NEXT":"Next","DOCUMENT_CHUNKS":"Sections {{start}}–{{end}} of {{total}}","DOCUMENT_ORIGINAL_AVAILABLE":"You can still download the original file.","DOCUMENT_ASK_ASSISTANT":"Ask the assistant about this file","DOCUMENT_ASSISTANT_PROMPT":"Read document {{fileId}} ({{name}}) using document_read. Summarize the document and ask what I want to do next. If I request a plan, use draft_task_plan and leave it for my approval and Apply.","FILES_PREVIEW_BOUNDED":"Preview shows the first 64 KB. Download to read the whole file."}