{"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_DASHBOARD":"Dashboard","NAV_TODOS":"Todos","NAV_SETTINGS":"Settings","NAV_BILLING":"Billing","NAV_GROUP_GENERAL":"General","NAV_GROUP_ADMIN":"Admin","NAV_ADMIN_USERS":"Users","NAV_ADMIN_FLAGS":"Flags","NAV_ADMIN_AUDIT":"Audit log","APP_BRAND_NAME":"BJJ Travel","APP_BRAND_TAGLINE":"Seminar tours","APP_SEARCH_PLACEHOLDER":"Search…","USER_MENU_MY_ACCOUNT":"My Account","USER_MENU_SIGN_OUT":"Sign Out","USER_MENU_SETTINGS":"Settings","USER_MENU_UPGRADE":"Upgrade to Pro","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","HOME_SKIP_CONTENT":"Skip to content","HOME_NAV_LABEL":"Sections","HOME_FOOTER_BODY":"ZieTec UG (haftungsbeschränkt), Berlin · prototype · fictional people and academies","HOME_HERO_TITLE":"Your next seminar tour, on the map.","HOME_HERO_SUBTITLE":"Every city where you teach comes out of the fog. Every coach who introduces you opens the next one. The AI orders the stops and estimates what’s left after the train.","HOME_CTA_DEMO":"Start as an instructor","HOME_CTA_DASHBOARD":"Open the app","HOME_FAQ_TITLE":"Questions from people who already teach on the road.","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}} BJJ Travel","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_STATUS":"Status","TODO_COL_CREATED_AT":"Created","TODO_PRIORITY_LOW":"Low","TODO_PRIORITY_MEDIUM":"Medium","TODO_PRIORITY_HIGH":"High","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_ROW_ACTIONS":"Todo actions","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_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_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_INVITE_VERIFY_FIRST":"Verify your email address before inviting people. Invitations are sent in your name.","SETTINGS_ORG_INVITE_SEND_VERIFICATION":"Send verification email","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_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_PORTUGUESE":"Portuguese","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_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_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…","SKELETON_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":"BJJ Travel · Full-stack Cloudflare starter","SEO_DEFAULT_DESC":"A production-ready TanStack Start template on Cloudflare Workers: auth, storage, i18n, and more.","SEO_HOME_TITLE":"BJJ Travel · Your next seminar tour, on the map","SEO_HOME_DESC":"For black belts who teach seminars on the road: a fog map, an AI route, messages, tickets and academy alerts. Free for academies.","SEO_LOGIN_TITLE":"Sign in · BJJ Travel","SEO_LOGIN_DESC":"Sign in to your BJJ Travel account.","SEO_SIGNUP_TITLE":"Create account · BJJ Travel","SEO_SIGNUP_DESC":"Create your BJJ Travel account.","SEO_FORGOT_PASSWORD_TITLE":"Forgot password · BJJ Travel","SEO_FORGOT_PASSWORD_DESC":"Request a password reset link for your BJJ Travel account.","SEO_RESET_PASSWORD_TITLE":"Reset password · BJJ Travel","SEO_RESET_PASSWORD_DESC":"Choose a new password for your BJJ Travel account.","SEO_VERIFY_EMAIL_TITLE":"Verify email · BJJ Travel","SEO_VERIFY_EMAIL_DESC":"Verify the email address for your BJJ Travel account.","SEO_TWO_FACTOR_TITLE":"Two-factor authentication · BJJ Travel","SEO_TWO_FACTOR_DESC":"Confirm your identity with a two-factor authentication code.","SEO_PRIVACY_TITLE":"Privacy Policy · BJJ Travel","SEO_PRIVACY_DESC":"How BJJ Travel collects, uses and protects personal data.","SEO_TERMS_TITLE":"Terms of Service · BJJ Travel","SEO_TERMS_DESC":"The terms for using the BJJ Travel 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_EMAIL_TITLE":"Email address","OAUTH_CONSENT_SCOPE_EMAIL_DESC":"See your email address and whether it is verified.","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_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_REVOKE":"Revoke","INTEGRATIONS_CONNECTION_REVOKED_TOAST":"Connection revoked","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_ROTATE":"Rotate secret","WEBHOOK_TEST":"Send test event","WEBHOOK_DELETE":"Remove webhook","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.","HOME_SIGN_IN":"Sign in","HOME_NAV_HOW":"How it works","HOME_NAV_ACADEMIES":"For academies","HOME_NAV_PRICING":"Pricing","HOME_HERO_LEAD":"For black belts who teach seminars on the road","HOME_CTA_ACADEMY":"Register an academy","HOME_HERO_NOTE":"Free for academies · no live GPS · data in the EU","HOME_HERO_MAP_TITLE":"Sample map: a fictional 7-stop tour from Berlin to Munich","HOME_HERO_MAP_DESC":"Cities the instructor taught in leave the fog; network cities are in half-light; dashed lines are introductions.","HOME_HERO_NET_VALUE":"€7,502","HOME_HERO_NET_LABEL":"estimated net (€6,496–9,038) · 7 stops · 18 days · fictional example","HOME_HERO_ALERT_TITLE":"Academy alert","HOME_HERO_ALERT_BODY":"Black belt in Berlin 12–14 Mar, 255 km from you","HOME_COMPETITOR_LEAD":"The real competitor","HOME_COMPETITOR_TITLE":"Today the tour lives in 40 loose chats.","HOME_COMPETITOR_TODAY":"Today","HOME_COMPETITOR_TODAY_BODY":"Instagram DMs, WhatsApp with each coach, a spreadsheet of dates and the luck of someone remembering you are in town.","HOME_COMPETITOR_GYM":"Gym software","HOME_COMPETITOR_GYM_BODY":"They manage the event once it exists. They don’t help build the route or find who will host you.","HOME_COMPETITOR_US":"With BJJ Travel","HOME_COMPETITOR_US_BODY":"Network, route, message, ticket and academy alerts on one map.","HOME_STEPS_LEAD":"How it works","HOME_STEPS_TITLE":"From map to ticket sold, in three steps.","HOME_STEP_MAP":"1. Open the map","HOME_STEP_MAP_BODY":"Mark where you’ve taught. Whoever introduced you becomes a line; their contacts go to half-light.","HOME_STEP_ROUTE":"2. Ask for the route","HOME_STEP_ROUTE_BODY":"Window, base and must-visit cities. The AI returns ordered stops, likely turnout and estimated net.","HOME_STEP_SELL":"3. Close it and sell","HOME_STEP_SELL_BODY":"Message in DE, EN or PT, deposit, seminar page, 70/30 split and offline check-in.","HOME_ACADEMIES_LEAD":"For academies","HOME_ACADEMIES_TITLE":"Know who’s passing nearby before Instagram does.","HOME_ACADEMIES_BODY":"Register your academy, pick a radius and formats. When a black belt publishes a window nearby, you get the alert and request a seminar in one click.","HOME_ACADEMIES_CTA":"See the academy dashboard","HOME_ACADEMIES_NO_TEAM":"no affiliation","HOME_ACADEMIES_SAMPLE":"Example with fictional people.","HOME_PRICING_LEAD":"Pricing","HOME_PRICING_TITLE":"Academies use it free. Instructors pay when the tour gets serious.","HOME_PRICING_PERIOD":"Billing period","HOME_PRICING_MONTHLY":"Monthly","HOME_PRICING_YEARLY":"Yearly","HOME_PRICING_NOTE":"Prices are hypotheses, VAT incl., to validate in the beta.","HOME_PLAN_INSTRUCTOR":"Instructor","HOME_PLAN_INSTRUCTOR_PRICE_MONTH":"€12","HOME_PLAN_INSTRUCTOR_PRICE_YEAR":"€96","HOME_PLAN_INSTRUCTOR_UNIT_MONTH":"per month · 14 days free","HOME_PLAN_INSTRUCTOR_UNIT_YEAR":"per year · = €8/month · 14 days free","HOME_PLAN_INSTRUCTOR_BODY":"AI route, unlimited messages, tickets, check-in and report. Free: 1 active tour, 5 messages a month, unlimited map and network.","HOME_PLAN_ACADEMY":"Academy","HOME_PLAN_ACADEMY_PRICE":"€0","HOME_PLAN_ACADEMY_UNIT":"forever","HOME_PLAN_ACADEMY_BODY":"Profile, alerts and requests. Plus at €19/month: who’s-travelling map and unlimited requests.","HOME_PLAN_TICKETS":"Tickets","HOME_PLAN_TICKETS_PRICE":"4%","HOME_PLAN_TICKETS_UNIT":"paid by buyers","HOME_PLAN_TICKETS_BODY":"Automatic instructor/academy split at payout. Stripe fees: [TBD].","HOME_PRIVACY_LEAD":"Privacy","HOME_PRIVACY_TITLE":"No live GPS. Just city and window.","HOME_PRIVACY_AUDIENCE":"The instructor chooses who sees: registered academies, network only, or nobody.","HOME_PRIVACY_WINDOW":"No hotel, flight or times. The window leaves the map the day after it ends.","HOME_PRIVACY_PUBLIC_DATA":"Unregistered academies appear only with data they publish themselves, and can ask for removal.","HOME_PRIVACY_NO_COLD_EMAIL":"No cold email: contact only with registered academies or through an introduction.","HOME_FAQ_LEAD":"FAQ","HOME_FAQ_TEAMS_Q":"Does it work with academies from other teams?","HOME_FAQ_TEAMS_A":"Yes. Affiliation shows on the card, but nobody is hidden by it.","HOME_FAQ_ESTIMATE_Q":"Is the earnings estimate guaranteed?","HOME_FAQ_ESTIMATE_A":"No. It’s likely turnout × price × split − travel, with a low and high range. The minimum guarantee is what’s in the agreement.","HOME_FAQ_WHATSAPP_Q":"What if I already arrange everything on WhatsApp?","HOME_FAQ_WHATSAPP_A":"Keep doing it. Record what you agreed here and use the map, route and tickets.","HOME_FAQ_LISTED_Q":"Does my academy appear without signing up?","HOME_FAQ_LISTED_A":"Only the name, city and website you publish, marked as public data. One click requests removal.","HOME_CLOSE_TITLE":"March is 4 months away. The fog won’t lift by itself.","HOME_CLOSE_CTA":"Open my map","NAV_GROUP_ACADEMY":"Academy","NAV_GROUP_INSTRUCTOR":"Instructor","NAV_GROUP_START":"Get started","NAV_ACADEMY_TRAVELLING":"Who’s travelling","NAV_INSTRUCTOR_PLANNER":"Planner","NAV_WELCOME":"Choose your role","NAV_SOON":"soon","TRAVEL_ROLE_TITLE":"Who’s on the other side of the map?","TRAVEL_ROLE_SUBTITLE":"Two minutes. Only this choice is fixed; everything else can change later.","TRAVEL_ROLE_INSTRUCTOR":"I’m an instructor","TRAVEL_ROLE_INSTRUCTOR_BODY":"Black belt, I teach seminars when I travel","TRAVEL_ROLE_ACADEMY":"I represent an academy","TRAVEL_ROLE_ACADEMY_BODY":"I want to host black belts passing nearby","TRAVEL_ROLE_ACADEMY_NOTE":"Academies use the dashboard on a computer. On the phone they just get alerts.","TRAVEL_ROLE_CONTINUE":"Continue","TRAVEL_ROLE_OPEN_ACADEMY":"Open the academy dashboard","NAV_ACADEMY_ALERTS":"Alerts","NAV_PRIVACY_DATA":"Privacy and data","ACADEMY_TITLE":"Who’s passing nearby","ACADEMY_DASHBOARD_SUBTITLE":"{{academy}} · {{city}} · alerts for black belts with a published window","ACADEMY_SEE_MAP":"See on the map","ACADEMY_SUMMARY_PASSING":"black belts within your alert","ACADEMY_SUMMARY_SENT":"requests sent","ACADEMY_SUMMARY_ACCEPTED":"seminars accepted","ACADEMY_PRIVACY_NOTE":"Instructors only appear if they chose “registered academies”. City and window, never live location.","ACADEMY_EMPTY_TITLE":"Nobody is passing within your alert yet","ACADEMY_EMPTY_BODY":"When a black belt publishes a window within your radius, formats and months, they appear here with dates and city.","ACADEMY_NO_ALERT_TITLE":"Save your first alert","ACADEMY_NO_ALERT_BODY":"Choose radius, formats and months on the right, then save. Black belts passing by appear here.","ACADEMY_ALERTS_ERROR":"Alerts couldn’t load. Try again in a moment.","ACADEMY_LIST_LABEL":"Black belts passing nearby","ACADEMY_REQUEST_SEMINAR":"Request a seminar","ACADEMY_REQUESTED":"Requested","ACADEMY_ALERTS_TITLE":"Your alerts","ACADEMY_RADIUS":"Radius","ACADEMY_DISTANCE":"{{km}} km","ACADEMY_FORMATS":"Formats","ACADEMY_MONTHS":"Months","ACADEMY_ALERTS_INCOMPLETE":"Pick at least one format and one month.","ACADEMY_COUNTING":"Counting…","ACADEMY_MATCH_COUNT":"Black belts within this alert right now: {{count}}","ACADEMY_ALERTS_SAVE":"Save alerts","ACADEMY_ALERTS_UP_TO_DATE":"Alerts saved","ACADEMY_ALERTS_SAVED":"Alerts saved. The list follows the new settings.","ACADEMY_BELT_BLACK":"Black belt {{degree}}°","ACADEMY_BELT_CORAL":"Coral belt {{degree}}°","ACADEMY_NO_TEAM":"no affiliation","ACADEMY_IN_TOWN":"in town","ACADEMY_REGISTER_TITLE":"Register your academy","ACADEMY_REGISTER_SUBTITLE":"Under three minutes. Black belts with a window near you show up as soon as you’re in.","ACADEMY_REGISTER_NAME":"Academy name","ACADEMY_REGISTER_NAME_PLACEHOLDER":"Hafen BJJ…","ACADEMY_REGISTER_CITY":"City","ACADEMY_REGISTER_CITY_PLACEHOLDER":"Choose a city…","ACADEMY_REGISTER_MAT_AREA":"Mat area (m²)","ACADEMY_REGISTER_CAPACITY":"Students on the mat","ACADEMY_REGISTER_OPTIONAL":"Mat area and capacity are optional; they make the turnout estimates better.","ACADEMY_REGISTER_CONSENT":"Instructors may contact my academy","ACADEMY_REGISTER_CONSENT_BODY":"Only black belts on BJJ Travel, about seminars. You can withdraw this at any time.","ACADEMY_REGISTER_SUBMIT":"Register academy","ACADEMY_REQUEST_TO":"Request a seminar from {{name}}","ACADEMY_REQUEST_DATE":"Date","ACADEMY_REQUEST_FORMAT":"Format","ACADEMY_REQUEST_OFFER":"Offer per student (€)","ACADEMY_REQUEST_GUARANTEE":"Minimum guarantee (€, optional)","ACADEMY_REQUEST_MESSAGE":"Message (optional)","ACADEMY_REQUEST_EMAIL_HIDDEN":"{{name}} gets the request in the app. Your email stays hidden until the request is accepted.","ACADEMY_REQUEST_SEND":"Send request","ACADEMY_REQUEST_SENT":"Request sent to {{name}}","ACADEMY_REQUEST_SHORT":"Request","ACADEMY_TRAVELERS_TITLE":"Who’s travelling","ACADEMY_TRAVELERS_SUBTITLE":"Opt-in map of black belts · next 6 months","ACADEMY_TRAVELERS_FILTER":"Filter by format","ACADEMY_TRAVELERS_ALL":"All","ACADEMY_TRAVELERS_ERROR":"The map couldn’t load. Try again in a moment.","ACADEMY_TRAVELERS_EMPTY_TITLE":"Nobody in this filter","ACADEMY_TRAVELERS_EMPTY_BODY":"No black belt has a public window for this format in the next months.","ACADEMY_TRAVELERS_LIST":"Instructors with a public window","ACADEMY_TRAVELERS_COUNT":"Instructors in this filter: {{count}}","ACADEMY_TRAVELERS_NOTE":"Each instructor chose to appear here and can vanish at any time. We show city and window; no hotel, flight or GPS.","ACADEMY_MAP_TITLE":"Map of cities with a published window","ACADEMY_MAP_DESCRIPTION":"Lit cities have at least one black belt with a public window; the rest stays in fog.","ACADEMY_MAP_COUNT":"instructors with a public window","ACADEMY_MAP_LEGEND_WINDOW":"published window","ACADEMY_MAP_LEGEND_NONE":"no instructor","DATA_PRIVACY_TITLE":"Privacy and data","DATA_PRIVACY_SUBTITLE":"GDPR · data stored in the EU · no live GPS","DATA_PRIVACY_VISIBILITY_TITLE":"Itinerary visibility","DATA_PRIVACY_VISIBILITY_SAVED":"Visibility updated","DATA_PRIVACY_AUDIENCE_ACADEMIES":"Registered academies","DATA_PRIVACY_AUDIENCE_ACADEMIES_BODY":"city + window, only for academies with an alert in the area","DATA_PRIVACY_AUDIENCE_NETWORK":"Only my network","DATA_PRIVACY_AUDIENCE_NETWORK_BODY":"coaches you know, never the academy map","DATA_PRIVACY_AUDIENCE_NOBODY":"Nobody","DATA_PRIVACY_AUDIENCE_NOBODY_BODY":"invisible mode","DATA_PRIVACY_FUZZ_DATES":"Blur dates by a day","DATA_PRIVACY_FUZZ_DATES_BODY":"Academies see the window ±1 day; your real dates stay with you.","DATA_PRIVACY_ACADEMY_TITLE":"Your academy’s data","DATA_PRIVACY_ACADEMY_BODY":"Instructors see your academy’s name, city and formats. Your email reaches an instructor only after you send a request and it is accepted.","DATA_PRIVACY_ACADEMY_CONSENT":"Contact consent given on {{date}}","DATA_PRIVACY_YOUR_DATA_TITLE":"Your data","DATA_PRIVACY_EXPORT":"Export everything (JSON + PDF)","DATA_PRIVACY_EXPORT_SOON":"Self-service export is coming soon. Until then, the privacy contact in the privacy policy sends it within one month.","DATA_PRIVACY_DELETE_ACCOUNT":"Delete account","DATA_PRIVACY_DELETE_ACCOUNT_BODY":"Account deletion is in Settings, behind a confirmation. It removes your profile, windows and requests.","DATA_PRIVACY_EU_TITLE":"Where the data lives","DATA_PRIVACY_EU_DATABASE":"Database in Frankfurt (Neon, aws-eu-central-1); backups stay in the same region.","DATA_PRIVACY_EU_FILES":"Files in Cloudflare R2 with EU jurisdiction.","DATA_PRIVACY_EU_COMPUTE":"Requests run on Cloudflare’s network, close to the database; a request from outside Europe may be processed in transit before it is stored in Germany.","DATA_PRIVACY_EU_NO_GPS":"No live GPS: only a city and a window, removed from the map the day after the trip ends.","DATA_PRIVACY_PUBLIC_TITLE":"Academies with public data","DATA_PRIVACY_PUBLIC_WHAT":"Academies that never signed up appear only with the name, city and website they publish themselves, with the source and the date we read it.","DATA_PRIVACY_PUBLIC_BASIS":"Basis: legitimate interest (GDPR Art. 6(1)(f)), with an Art. 14 notice. No email address is stored and no cold email is sent.","DATA_PRIVACY_PUBLIC_OBJECTION":"One-click objection on the academy’s public page; the record is removed within 24 hours and not read again.","DATA_PRIVACY_PUBLIC_CLAIM":"The academy can also claim the profile with proof of ownership (a DNS record or the email on its website).","DATA_PRIVACY_SUBPROCESSORS_TITLE":"Subprocessors","DATA_PRIVACY_TBD":"to be decided","DATA_PRIVACY_SUB_CLOUDFLARE":"compute (Workers) and files (R2, EU jurisdiction)","DATA_PRIVACY_SUB_NEON":"database, Frankfurt, Germany","DATA_PRIVACY_SUB_STRIPE":"tickets, deposits and payouts, Ireland","DATA_PRIVACY_SUB_AI":"AI model (route, message, translation) with EU processing","DATA_PRIVACY_SUB_EMAIL":"transactional email, EU","DATA_PRIVACY_SUB_PUSH":"push notifications","PROSPECT_PUBLIC_RECORD_ART14_NOTICE":"Notice under Art. 14 GDPR: BJJ Travel shows instructors the name, city and website that this academy publishes itself, with the source and the date we read it. We store no email address and send no unsolicited email; contact happens only through an introduction by someone the academy knows. Legal basis: legitimate interest (Art. 6(1)(f) GDPR) in helping travelling instructors find academies. You can object at any time with one click, without an account: the record is removed within 24 hours and not read again. You can also claim the profile.","PUBLIC_RECORD_TITLE":"Your academy on BJJ Travel","PUBLIC_RECORD_SEO_TITLE":"Public academy record · BJJ Travel","PUBLIC_RECORD_SEO_DESC":"What BJJ Travel holds about an academy, how to remove it and how to claim the profile.","PUBLIC_RECORD_HELD_TITLE":"What we hold","PUBLIC_RECORD_HELD_NOTE":"Nothing else: no email, no phone, no people’s names.","PUBLIC_RECORD_FIELD_NAME":"Name","PUBLIC_RECORD_FIELD_NAME_BODY":"The academy’s name as published on its site or listing.","PUBLIC_RECORD_FIELD_CITY":"City","PUBLIC_RECORD_FIELD_CITY_BODY":"The city only, never a street address.","PUBLIC_RECORD_FIELD_WEBSITE":"Website","PUBLIC_RECORD_FIELD_WEBSITE_BODY":"The public website, when there is one.","PUBLIC_RECORD_FIELD_SOURCE":"Source","PUBLIC_RECORD_FIELD_SOURCE_BODY":"Where we read it, shown next to the record.","PUBLIC_RECORD_FIELD_READ_ON":"Read on","PUBLIC_RECORD_FIELD_READ_ON_BODY":"The date we read it.","PUBLIC_RECORD_PROBLEM_TITLE":"That didn’t work","PUBLIC_RECORD_PROBLEM_GONE":"This record is no longer shown: it was removed, objected to or claimed.","PUBLIC_RECORD_PROBLEM_REMOVAL_REQUESTED":"Removal was already requested for this academy, so it can’t be claimed.","PUBLIC_RECORD_PROBLEM_ALREADY_CLAIMED":"This profile has already been claimed.","PUBLIC_RECORD_OBJECT_TITLE":"Remove my academy","PUBLIC_RECORD_OBJECT_BODY":"One click, no account. The record disappears within 24 hours and your site is not read again.","PUBLIC_RECORD_OBJECT_REASON":"Reason (optional)","PUBLIC_RECORD_OBJECT_REASON_HINT":"You don’t need to give one.","PUBLIC_RECORD_OBJECT_SUBMIT":"Remove my academy","PUBLIC_RECORD_OBJECT_DONE":"Removal requested. The academy is gone from BJJ Travel by {{date}}.","PUBLIC_RECORD_CLAIM_TITLE":"Claim this profile","PUBLIC_RECORD_CLAIM_BODY":"Run this academy? Prove it and the profile becomes yours: you choose what instructors see and get seminar requests.","PUBLIC_RECORD_CLAIM_PROOF":"Proof of ownership","PUBLIC_RECORD_PROOF_DOMAIN":"DNS record","PUBLIC_RECORD_PROOF_DOMAIN_BODY":"Add a TXT record to the website’s domain.","PUBLIC_RECORD_PROOF_EMAIL":"Email on the website","PUBLIC_RECORD_PROOF_EMAIL_BODY":"We write to the address published on the website itself.","PUBLIC_RECORD_CLAIM_SUBMIT":"Claim this profile","PUBLIC_RECORD_CLAIM_PENDING":"Claim received. It is waiting for proof of ownership.","PUBLIC_RECORD_DNS_STEP_OPEN":"Open the DNS settings of your website’s domain.","PUBLIC_RECORD_DNS_STEP_ADD":"Add a TXT record on the domain itself with exactly this value:","PUBLIC_RECORD_DNS_STEP_WAIT":"Keep it until the claim is verified; DNS changes can take a few hours.","PUBLIC_RECORD_EMAIL_NEXT":"We will write to the address published on your website with a link to confirm.","INSTRUCTOR_TITLE":"Your tour lives on your phone","INSTRUCTOR_BODY":"The fog map, windows, route, messages and offline check-in live in the BJJ Travel app for iOS and Android. Sign in with this same account.","INSTRUCTOR_STORES":"Where to get the app","INSTRUCTOR_APP_STORE":"App Store · coming soon","INSTRUCTOR_PLAY_STORE":"Google Play · coming soon","INSTRUCTOR_EXPO":"Expo beta · coming soon","INSTRUCTOR_STORES_NOTE":"Store links appear here once the app is published.","INSTRUCTOR_PLANNER_LATER":"Finish your profile in the app and the tour planner opens here, with the big map.","INSTRUCTOR_MAP_TITLE":"Sample map of a fictional instructor","INSTRUCTOR_MAP_CAPTION":"Example: this is how the app opens, with your cities.","PLANNER_TITLE":"Plan your tour","PLANNER_SUBTITLE":"Pick a window and let the AI suggest the order. Every number is an estimate.","PLANNER_SUGGESTED_TITLE":"Suggested route","PLANNER_TOUR_TITLE":"{{month}} tour","PLANNER_STOP_COUNT":"{{stops}} stops","PLANNER_TOUR_PROGRESS":"{{confirmed}} of {{total}} confirmed","PLANNER_TOUR_DEPOSITS":"Deposits paid: {{deposits}}","PLANNER_TOUR_PENDING":"Needs you","PLANNER_TOUR_NOTHING_PENDING":"Nothing is waiting on you right now.","PLANNER_PENDING_SEND_PROPOSAL":"Send the proposal to {{city}}","PLANNER_PENDING_AWAITING_REPLY":"{{city}}: no reply yet ({{days}} d)","PLANNER_PENDING_NEEDS_INTRODUCTION":"{{city}} is in half-light: ask for an introduction first","PLANNER_CONFLICT_SAME_DAY":"{{city}}: two seminars on the same day","PLANNER_CONFLICT_TOO_CLOSE":"{{city}}: too close to the previous stop for travel and rest","PLANNER_CONFLICT_UNAVAILABLE_DAY":"{{city}}: falls on a day you marked unavailable","PLANNER_CONFLICT_OUTSIDE_WINDOW":"{{city}}: outside the travel window","PLANNER_CONFLICT_OVER_LIMIT":"{{city}}: over your seminar limit","PLANNER_PROBLEM_EMPTY":"The AI found no stop that fits these inputs.","PLANNER_PROBLEM_NOT_A_CANDIDATE":"{{city}} can’t be part of this route.","PLANNER_PROBLEM_DUPLICATE":"{{city}} appeared twice.","PLANNER_PROBLEM_MISSING_MUST_VISIT":"{{city}} is a must-visit but was left out.","PLANNER_PROBLEM_NO_ROOM":"{{city}} doesn’t fit in the window with these free days.","PLANNER_PROBLEM_OVER_LIMIT":"More stops than your seminar limit.","PLANNER_PROBLEM_OTHER":"The route breaks one of the planning rules.","PLANNER_FAILED_TITLE":"No route this time","PLANNER_MODEL_UNAVAILABLE":"The AI didn’t answer within {{seconds}} s and there is no saved route yet. Try again in a moment.","PLANNER_STALE_TITLE":"Showing your last saved route","PLANNER_STALE_BODY":"The AI took too long or failed, so this is the last route saved for this window. Plan again to try for a new one.","PLANNER_FORM_TITLE":"Plan a route","PLANNER_WINDOW":"Window","PLANNER_NO_WINDOW":"No travel window yet. Add one in the app first.","PLANNER_BASE":"Starts and ends in","PLANNER_MUST_VISIT":"I want to stop in","PLANNER_ADD_CITY":"Add a city…","PLANNER_SEMINAR_LIMIT":"Seminars, at most","PLANNER_REST_DAYS":"Free days between them","PLANNER_REST_DAYS_HINT":"at least","PLANNER_DECREASE":"Fewer: {{label}}","PLANNER_INCREASE":"More: {{label}}","PLANNER_PRIORITY":"Priority","PLANNER_PRIORITY_EARNINGS":"Earnings","PLANNER_PRIORITY_EARNINGS_BODY":"Favours academies with more students and a guarantee, even with more train time.","PLANNER_PRIORITY_REST":"Less travel","PLANNER_PRIORITY_REST_BODY":"Groups neighbouring cities and cuts the longest leg.","PLANNER_PRIORITY_NETWORK":"New cities","PLANNER_PRIORITY_NETWORK_BODY":"Includes half-light cities to open the map, even if you earn less.","PLANNER_AI_NOTE":"The AI only uses what is in the app: your network, academy alerts, your prices and sample trains and flights. Everything comes out as an estimate.","PLANNER_PLAN":"Plan with AI","PLANNER_PLANNING":"Planning…","PLANNER_PLANNING_BUDGET":"The AI answers within {{seconds}} s; otherwise you see your last saved route.","PLANNER_ACCEPT":"Accept route","PLANNER_ACCEPTED":"Route accepted: your tour is ready.","PLANNER_ROUTE_A":"Route A · {{stops}}","PLANNER_ROUTE_B":"Route B · {{stops}}","PLANNER_ROUTE_A_SHORT":"Route A","PLANNER_COMPARE_TITLE":"A or B?","PLANNER_COMPARE_WITHOUT":"Route B: the same route without","PLANNER_COMPARE_PLAN_B":"Plan B","PLANNER_COMPARE_HINT":"Leave one city out to see what it adds.","PLANNER_COMPARING":"Comparing…","PLANNER_COMPARE_METRIC":"Metric","PLANNER_COMPARE_TRAVEL":"Train and flight","PLANNER_COMPARE_TRAVEL_DAYS":"Travel days","PLANNER_COMPARE_FREE_DAYS":"Free days","PLANNER_COMPARE_SUMMARY":"{{cities}}: {{net}} (estimate) and {{days}} travel days compared with route B.","PLANNER_NET":"Estimated net","PLANNER_ESTIMATE":"estimate","PLANNER_NET_DETAIL":"{{students}} likely students · {{travel}} travel · range {{low}}–{{high}}","PLANNER_DAYS_DETAIL":"{{days}} days · {{stops}} stops · {{travelDays}} travel days · {{freeDays}} free","PLANNER_HOW_WE_CALCULATE":"How we calculate","PLANNER_FORMULA_INTRO":"Likely turnout per academy (history and mat size). Range with low and high turnout: {{low}}–{{high}}.","PLANNER_FORMULA_EXPRESSION":"net = Σ max(likely students × price × {{percent}}%, guarantee) − travel","PLANNER_FORMULA_TICKETS":"Tickets ({{students}} × price)","PLANNER_FORMULA_SHARE":"Your share ({{percent}}%, or the guarantee)","PLANNER_FORMULA_TRAVEL":"Trains and flights in Europe","PLANNER_FORMULA_HYPOTHESES":"The {{share}}/{{rest}} split, the {{guarantee}} guarantee and travel costs are hypotheses. The {{fee}}% fee is paid by buyers. Transatlantic flight not included.","PLANNER_CLOSE":"Close","PLANNER_STOPS":"Stops","PLANNER_STOP_NUMBER":"Stop {{position}}","PLANNER_STOP_TURNOUT":"≈ {{students}} students","PLANNER_STOP_HALF_LIGHT":"half-light: needs an introduction","PLANNER_STOP_GUARANTEE":"agreed guarantee applies","PLANNER_WARNING_PREFERRED_DAY":"{{city}} didn’t get its preferred weekday.","PLANNER_FORMAT_GI":"Gi","PLANNER_FORMAT_NOGI":"No-Gi","PLANNER_FORMAT_COMPETITION":"Competition","PLANNER_FORMAT_WOMEN":"Women","PLANNER_FORMAT_KIDS":"Kids","PLANNER_FORMAT_PRIVATE":"Private","PLANNER_STAGE_IDEA":"Idea","PLANNER_STAGE_CONTACTED":"Contacted","PLANNER_STAGE_CONFIRMED":"Confirmed","PLANNER_STAGE_DEPOSIT":"Deposit paid","PLANNER_STAGE_DONE":"Done","PLANNER_MAP_OPEN":"open","PLANNER_MAP_KNOWN":"half-light","PLANNER_MAP_FOG":"fog","PLANNER_MAP_COUNTS":"open · in half-light","PLANNER_MAP_TITLE":"Your fog map","PLANNER_MAP_TITLE_ROUTE":"Map of the route with numbered stops","PLANNER_EMPTY_TITLE":"No route yet","PLANNER_EMPTY_BODY":"Choose the window and limits on the left, then Plan with AI.","PLANNER_APP_TITLE":"The BJJ Travel app","PLANNER_APP_BODY":"Proposals, messages and offline check-in live on your phone. Sign in with this same account.","NAV_ACADEMY_INBOX":"Inbox","NAV_INSTRUCTOR_PAYOUTS":"Payouts","SEMINAR_SEO_TITLE":"{{title}} · {{instructor}} in {{city}}","SEMINAR_SEO_DESC":"Seminar with {{instructor}} on {{day}} at {{academy}}, {{city}}. Ticket {{price}} plus a 4% service fee.","SEMINAR_CHECKOUT_SEO_TITLE":"Checkout · BJJ Travel","SEMINAR_CHECKOUT_SEO_DESC":"Buy a seminar ticket. The service fee is shown before you pay.","SEMINAR_TICKET_SEO_TITLE":"Your ticket · BJJ Travel","SEMINAR_TICKET_SEO_DESC":"Your seminar ticket with its QR code, and what you can still change.","SEMINAR_SPOTS_LEFT_OF":"spots left of {{capacity}}","SEMINAR_ABOUT_TITLE":"About the seminar","SEMINAR_ABOUT_ADDRESS":"At {{academy}} in {{city}}. The exact address comes by email 48 h before.","SEMINAR_TICKETS_TITLE":"Tickets","SEMINAR_SPOTS_BAR":"Spots sold","SEMINAR_SPOTS_LEFT":"{{spots}} spots left","SEMINAR_SOLD_OUT":"Sold out","SEMINAR_QUOTE_TICKET":"Ticket","SEMINAR_QUOTE_FEE":"Service fee ({{percent}}%)","SEMINAR_QUOTE_TOTAL":"Total","SEMINAR_BUY":"Buy ticket · {{total}}","SEMINAR_REFUND_RULE":"Full refund up to 7 days before. After that you can pass the ticket to someone else or release it to the waitlist.","SEMINAR_CANCELLED_TITLE":"This seminar was cancelled","SEMINAR_CANCELLED_BODY":"Every ticket was refunded in full.","SEMINAR_CLOSED_TITLE":"Ticket sales are closed","SEMINAR_CLOSED_BODY":"No tickets are available for this seminar any more.","SEMINAR_WAITLIST_BODY":"Sold out. Join the waitlist: if a spot frees up, the first in line gets it for {{hours}} h by email.","SEMINAR_WAITLIST_JOIN":"Join the waitlist","SEMINAR_WAITLIST_JOINED":"You are number {{position}} on the waitlist","SEMINAR_WAITLIST_NEXT":"When a spot frees up and it is your turn, you get an email and {{hours}} h to buy it.","SEMINAR_FORM_NAME":"Name on the ticket","SEMINAR_FORM_NAME_HINT":"Checked at the door.","SEMINAR_FORM_EMAIL":"Email","SEMINAR_FORM_EMAIL_HINT":"For the ticket, the address and changes. No newsletter.","SEMINAR_FORM_TEAM":"Team (optional)","SEMINAR_BACK_TO_PAGE":"Seminar page","SEMINAR_CHECKOUT_TITLE":"Buy a ticket","SEMINAR_CHECKOUT_WHO":"Who is training?","SEMINAR_CHECKOUT_OFFER":"A spot is held for you from the waitlist. Buy it before the hold runs out.","SEMINAR_PAY":"Pay {{total}}","SEMINAR_CHECKOUT_SECURE":"Payment by Stripe. Your card details go to Stripe only, never to BJJ Travel or the instructor.","SEMINAR_CHECKOUT_UNAVAILABLE":"There is no spot to buy right now. Go back to the seminar page to join the waitlist.","SEMINAR_PROBLEM_TITLE":"That didn’t work","SEMINAR_PROBLEM_NOT_FOUND":"This seminar or ticket no longer exists.","SEMINAR_PROBLEM_SOLD_OUT":"The last spot was just taken. You can join the waitlist on the seminar page.","SEMINAR_PROBLEM_OFFER_INVALID":"This waitlist offer has expired or was already used.","SEMINAR_PROBLEM_NOT_OPEN":"This seminar is no longer open for changes.","SEMINAR_PROBLEM_WAITLIST_CLOSED":"The waitlist is closed for this seminar.","SEMINAR_PROBLEM_NO_WAITLIST":"Nobody is on the waitlist right now, so the ticket can’t be released. You can still change the name on it.","SEMINAR_PROBLEM_REFUND_CLOSED":"Refunds end 7 days before the seminar. You can still change the name or release the ticket to the waitlist.","SEMINAR_PROBLEM_PAYMENT_FAILED":"The payment didn’t go through. Nothing was charged; please try again.","SEMINAR_TICKET_TITLE":"Your ticket","SEMINAR_TICKET_KEEP_LINK":"Keep this page: its link is how you manage the ticket. We also sent it by email.","SEMINAR_TICKET_VALID":"Valid","SEMINAR_TICKET_INVALID":"No longer valid","SEMINAR_TICKET_WHEN":"When and where","SEMINAR_TICKET_WHERE":"Academy","SEMINAR_TICKET_NAME":"Name","SEMINAR_TICKET_NUMBER":"Ticket","SEMINAR_TICKET_QR_ALT":"QR code of the ticket","SEMINAR_TICKET_QR_HINT":"Show this at the door. It works offline.","SEMINAR_TICKET_MISSING_TITLE":"Ticket not found","SEMINAR_TICKET_MISSING_BODY":"This link doesn’t match a ticket. Use the link from your confirmation email.","SEMINAR_TICKET_REFUNDED":"Cancelled. {{amount}} goes back to your card within a few days.","SEMINAR_TICKET_CANCELLED_REFUNDED":"This ticket was cancelled and refunded.","SEMINAR_TICKET_CANCELLED_RENAMED":"This ticket was replaced by one with a new name. Use the newer link.","SEMINAR_TICKET_CANCELLED_RESOLD":"Someone from the waitlist took this spot. The ticket price was refunded; the service fee is not.","SEMINAR_TICKET_CANCELLED_INSTRUCTOR":"The instructor cancelled the seminar. The ticket was refunded in full.","SEMINAR_MANAGE_TITLE":"Change of plans?","SEMINAR_MANAGE_REFUNDABLE":"Until 7 days before the seminar you can cancel for a full refund, service fee included. Days left to cancel: {{days}}.","SEMINAR_MANAGE_NOT_REFUNDABLE":"Refunds ended {{days}} days before the seminar. You keep two options: give the ticket to someone else, or release it to the waitlist.","SEMINAR_CANCEL_TITLE":"Cancel and get a refund","SEMINAR_CANCEL_BODY":"The full amount goes back to your card, service fee included. The spot goes to the waitlist.","SEMINAR_CANCEL_ACTION":"Cancel ticket","SEMINAR_CANCEL_CONFIRM_TITLE":"Cancel this ticket?","SEMINAR_CANCEL_CONFIRM_BODY":"You get a full refund. The spot is offered to the waitlist and can’t be taken back.","SEMINAR_KEEP_TICKET":"Keep ticket","SEMINAR_RENAME_TITLE":"Give it to someone else","SEMINAR_RENAME_BODY":"A new ticket with the new name replaces this one. This link stops working; you get the new one here.","SEMINAR_RENAME_LABEL":"New name","SEMINAR_RENAME_ACTION":"Change name","SEMINAR_RELEASE_TITLE":"Release to the waitlist","SEMINAR_RELEASE_BODY":"The first in line gets your spot for {{hours}} h. Your ticket stays valid until someone buys it; then you get the ticket price back (the service fee is not refunded).","SEMINAR_RELEASE_ACTION":"Release my spot","SEMINAR_RELEASE_DONE":"Offered to the first in line for {{hours}} h. Your ticket stays valid until they buy it.","PAYOUTS_TITLE":"Payouts","PAYOUTS_SUBTITLE":"{{month}} tour · confirmed seminars · estimated until the day","PAYOUTS_SUBTITLE_EMPTY":"Your share of each seminar, and when it reaches your account.","PAYOUTS_PRINT":"Print report","PAYOUTS_EXPORT_CSV":"Export CSV","PAYOUTS_ERROR":"Payouts couldn’t be loaded. Try again in a moment.","PAYOUTS_STAT_SHARE":"your share (seminars: {{seminars}})","PAYOUTS_STAT_DEPOSITS":"deposits received","PAYOUTS_STAT_SPLIT":"default split","PAYOUTS_STAT_DELAY":"payout after check-in closes (hypothesis)","PAYOUTS_ACCOUNT_TITLE":"Payout account (Stripe Connect)","PAYOUTS_ACCOUNT_NONE_BODY":"Open your payout account so the money from your seminars can reach you. It takes about 5 minutes on Stripe.","PAYOUTS_ACCOUNT_PENDING_BODY":"One ID document is missing. Funds are held until Stripe verifies it.","PAYOUTS_ACCOUNT_PENDING_HELD":"One ID document is missing. {{amount}} is held safely until Stripe verifies it.","PAYOUTS_ACCOUNT_VERIFIED_BODY":"Verified. Payouts go out automatically after each seminar.","PAYOUTS_ACCOUNT_OPEN":"Open payout account","PAYOUTS_ACCOUNT_FINISH":"Finish verification","PAYOUTS_ACCOUNT_PENDING_TOAST":"Stripe still needs your ID. Funds stay held until then.","PAYOUTS_ACCOUNT_VERIFIED_TOAST":"Payout account verified","PAYOUTS_COL_DATE":"Date","PAYOUTS_COL_ACADEMY":"Academy","PAYOUTS_COL_STUDENTS":"Students","PAYOUTS_COL_TICKETS":"Tickets","PAYOUTS_COL_ACADEMY_SHARE":"Academy","PAYOUTS_COL_YOU":"You","PAYOUTS_COL_STATUS":"Status","PAYOUTS_ESTIMATED_MARK":"so far","PAYOUTS_ESTIMATED_HINT":"Tickets sold so far; final after check-in closes.","PAYOUTS_STATUS_AWAITING_VERIFICATION":"awaiting verification","PAYOUTS_STATUS_SCHEDULED":"scheduled","PAYOUTS_STATUS_SCHEDULED_ON":"scheduled {{date}}","PAYOUTS_STATUS_AFTER_SEMINAR":"after the seminar","PAYOUTS_STATUS_PAID":"paid","PAYOUTS_STATUS_PAID_ON":"paid {{date}}","PAYOUTS_STATUS_FAILED":"failed, retrying","PAYOUTS_EMPTY_TITLE":"No seminars yet","PAYOUTS_EMPTY_BODY":"Once a seminar page is published, its split and payout show up here.","PAYOUTS_NOTE_GUARANTEE":"In {{city}} the {{guarantee}} minimum guarantee applies: the academy keeps the rest ({{rest}}).","PAYOUTS_NOTE_FEES":"Stripe fees per payout: [TBD]. Taxes in Brazil and the EU: ask an accountant.","PAYOUTS_REPORT_TITLE":"Tour report: real against estimated","PAYOUTS_REPORT_SUBTITLE":"{{start}}–{{end}} · {{reported}} of {{total}} stops reported","PAYOUTS_REPORT_REAL_NET":"real net, after travel","PAYOUTS_REPORT_ESTIMATED_NET":"estimated net ({{low}}–{{high}})","PAYOUTS_REPORT_DELTA":"difference · travel {{travel}} · {{students}} students","PAYOUTS_REPORT_COL_STOP":"Stop","PAYOUTS_REPORT_COL_ESTIMATED":"Estimated","PAYOUTS_REPORT_COL_REAL":"Real","PAYOUTS_REPORT_COL_DELTA":"Students ±","PAYOUTS_REPORT_STUDENTS":"{{students}} students","PAYOUTS_REPORT_RANGE":"estimated {{low}}–{{high}}","PAYOUTS_REPORT_NOT_REPORTED":"not reported yet","PAYOUTS_REPORT_ERROR":"The tour report couldn’t be loaded.","ACADEMY_INBOX_TITLE":"Inbox","ACADEMY_INBOX_SUBTITLE":"Proposals from instructors, deposits and seminars at your mats.","ACADEMY_INBOX_ERROR":"The inbox couldn’t be loaded. Try again in a moment.","ACADEMY_INBOX_EMPTY_TITLE":"No proposals yet","ACADEMY_INBOX_EMPTY_BODY":"When an instructor proposes a seminar at your academy, it shows up here with date, price and split.","ACADEMY_INBOX_LIST_LABEL":"Conversations","ACADEMY_INBOX_NEEDS_ANSWER":"Proposal waiting for you","ACADEMY_INBOX_NEEDS_DEPOSIT":"Deposit of {{amount}} to pay","ACADEMY_INBOX_STAGE_IDEA":"idea","ACADEMY_INBOX_STAGE_CONTACTED":"contacted","ACADEMY_INBOX_STAGE_CONFIRMED":"confirmed","ACADEMY_INBOX_STAGE_DEPOSIT":"deposit","ACADEMY_INBOX_STAGE_DONE":"done","ACADEMY_INBOX_THREAD_LOADING":"Loading the conversation…","ACADEMY_INBOX_THREAD_ERROR":"The conversation couldn’t be loaded.","ACADEMY_INBOX_INTRODUCED_BY":"introduced by {{name}}","ACADEMY_INBOX_PROPOSAL":"Proposal · version {{version}}","ACADEMY_INBOX_PROPOSAL_WAITING":"waiting for you","ACADEMY_INBOX_PROPOSAL_ACCEPTED":"confirmed","ACADEMY_INBOX_PROPOSAL_DECLINED":"declined","ACADEMY_INBOX_PROPOSAL_SENT":"sent","ACADEMY_INBOX_GUARANTEE":"guarantee {{amount}}","ACADEMY_INBOX_ACCEPT":"Confirm {{day}}","ACADEMY_INBOX_ACCEPTED":"Proposal confirmed","ACADEMY_INBOX_DEPOSIT_DUE":"Deposit requested: {{amount}}","ACADEMY_INBOX_DEPOSIT_BODY":"25% of the agreed guarantee. It opens ticket sales and is refunded in full if the instructor cancels.","ACADEMY_INBOX_DEPOSIT_PAY":"Pay {{amount}}","ACADEMY_INBOX_DEPOSIT_PAID":"Deposit paid","ACADEMY_INBOX_DEPOSIT_PAID_ON":"Deposit of {{amount}} paid","ACADEMY_INBOX_DEPOSIT_REFUNDED":"Deposit of {{amount}} refunded","ACADEMY_INBOX_DEPOSIT_UPCOMING":"Once confirmed, the instructor asks for a deposit of {{amount}} (25% of the guarantee).","ACADEMY_INBOX_MESSAGES":"Messages","ACADEMY_INBOX_REPLY_LABEL":"Reply","ACADEMY_INBOX_REPLY_HINT":"Write in your language; the instructor reads a translation with your original one tap away.","ACADEMY_INBOX_REPLY_SEND":"Send","ACADEMY_INBOX_SEMINARS_TITLE":"Seminars at your academy","ACADEMY_INBOX_SOLD":"{{sold}} of {{capacity}} sold","ACADEMY_INBOX_APPROVE":"Approve page","ACADEMY_INBOX_APPROVED":"Approved. The seminar page is public.","ACADEMY_INBOX_APPROVED_BADGE":"approved","ACADEMY_INBOX_OPEN_PAGE":"Open page","ACADEMY_THREAD_SHOW_ORIGINAL":"Show original","ACADEMY_THREAD_SHOW_TRANSLATION":"Show translation","ACADEMY_THREAD_TRANSLATED_FROM_DE":"translated from German","ACADEMY_THREAD_TRANSLATED_FROM_EN":"translated from English","ACADEMY_THREAD_TRANSLATED_FROM_PT":"translated from Portuguese","PUBLIC_RECORD_VALUE_NONE":"none","PUBLIC_RECORD_REMOVAL_PENDING_TITLE":"Removal requested","PUBLIC_RECORD_REMOVAL_PENDING_BODY":"This academy objected. Instructors no longer see it, and the record is deleted within 24 hours.","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_EMAIL_VERIFICATION_REQUIRED_FOR_INVITATION":"Confirm your email with the link we sent, then accept the invitation.","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.","AUTH_ERROR_INVITER_EMAIL_NOT_VERIFIED":"Verify your email address before inviting people.","AUTH_ERROR_INVITATION_DAILY_LIMIT_REACHED":"You have sent today's maximum number of invitations. Try again tomorrow.","AUTH_ERROR_ORGANIZATION_INVITATION_DAILY_LIMIT_REACHED":"This organization has sent today's maximum number of invitations. Try again tomorrow.","AUTH_ERROR_INVITATION_LIMIT_REACHED":"This organization has too many pending invitations. Cancel some before inviting more.","AUTH_ERROR_YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION":"Only owners and admins can invite people to this organization."}