Files
orion/static/locales/en.json
Samir Boulahtit 0455e63a2e feat(tenancy): add merchant team CRUD with multi-store hub view
The merchant team page was read-only. Now merchant owners can invite,
edit roles, and remove team members across all their stores from a
single hub view.

Architecture: No new models — delegates to existing store_team_service.
Members are deduplicated across stores with per-store role badges.

New:
- 5 API endpoints: GET team (member-centric), GET store roles, POST
  invite (multi-store), PUT update role, DELETE remove member
- merchant-team.js Alpine component with invite/edit/remove modals
- Full CRUD template with stats cards, store filter, member table
- 7 Pydantic schemas for merchant team request/response
- 2 service methods: validate_store_ownership, get_merchant_team_members
- 25 new i18n keys across 4 tenancy locales + 1 core common key

Tests: 434 tenancy tests passing, arch-check green.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:57:45 +01:00

235 lines
7.0 KiB
JSON

{
"common": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"edit": "Edit",
"create": "Create",
"update": "Update",
"add": "Add",
"remove": "Remove",
"close": "Close",
"back": "Back",
"next": "Next",
"previous": "Previous",
"submit": "Submit",
"confirm": "Confirm",
"yes": "Yes",
"no": "No",
"ok": "OK",
"done": "Done",
"loading": "Loading...",
"saving": "Saving...",
"processing": "Processing...",
"searching": "Searching...",
"sending": "Sending",
"refresh": "Refresh",
"retry": "Retry",
"view": "View",
"view_details": "View Details",
"view_all": "View All",
"show_more": "Show More",
"show_less": "Show Less",
"search": "Search",
"filter": "Filter",
"sort": "Sort",
"export": "Export",
"import": "Import",
"download": "Download",
"upload": "Upload",
"select": "Select",
"select_all": "Select All",
"deselect_all": "Deselect All",
"actions": "Actions",
"status": "Status",
"date": "Date",
"time": "Time",
"name": "Name",
"email": "Email",
"phone": "Phone",
"address": "Address",
"description": "Description",
"notes": "Notes",
"total": "Total",
"amount": "Amount",
"quantity": "Quantity",
"price": "Price",
"items": "Items",
"id": "ID",
"type": "Type",
"category": "Category",
"tags": "Tags",
"active": "Active",
"inactive": "Inactive",
"enabled": "Enabled",
"disabled": "Disabled",
"pending": "Pending",
"completed": "Completed",
"failed": "Failed",
"success": "Success",
"error": "Error",
"warning": "Warning",
"info": "Info",
"all": "All",
"none": "None",
"other": "Other",
"unknown": "Unknown",
"not_available": "N/A",
"required": "Required",
"optional": "Optional",
"language": "Language",
"settings": "Settings",
"help": "Help",
"support": "Support",
"contact": "Contact",
"about": "About",
"privacy": "Privacy",
"terms": "Terms",
"copyright": "Copyright"
},
"auth": {
"sign_in": "Sign In",
"sign_out": "Sign Out",
"sign_up": "Sign Up",
"login": "Login",
"logout": "Logout",
"register": "Register",
"forgot_password": "Forgot Password?",
"reset_password": "Reset Password",
"change_password": "Change Password",
"username": "Username",
"password": "Password",
"confirm_password": "Confirm Password",
"current_password": "Current Password",
"new_password": "New Password",
"remember_me": "Remember Me",
"email_placeholder": "Enter your email",
"username_placeholder": "Enter your username",
"password_placeholder": "Enter your password",
"login_success": "Login successful",
"login_failed": "Login failed",
"logout_success": "You have been logged out",
"invalid_credentials": "Invalid username or password",
"session_expired": "Your session has expired. Please login again.",
"account_locked": "Your account has been locked",
"account_inactive": "Your account is inactive",
"signing_in": "Signing in...",
"sending": "Sending...",
"send_reset_link": "Send Reset Link",
"reset_password_desc": "Enter your email address and we'll send you a link to reset your password.",
"back_to_login": "Back to Login",
"back_to_platform": "Back to Platform",
"no_account": "Don't have an account?",
"visit_platform": "Visit our platform",
"already_have_account": "Already have an account?",
"create_account": "Create an account",
"continue_shopping": "Continue shopping",
"admin_login": "Admin Login",
"merchant_login": "Merchant Login",
"store_login": "Store Portal Login",
"customer_login": "Customer Login",
"create_account_title": "Create Account",
"creating_account": "Creating account...",
"sign_in_instead": "Sign in instead",
"first_name": "First Name",
"last_name": "Last Name",
"phone_number": "Phone Number",
"marketing_consent": "I'd like to receive news and special offers",
"password_requirements": "Must contain at least 8 characters, one letter, and one number",
"check_email": "Check Your Email",
"reset_link_sent": "We've sent a password reset link to your email. Please check your inbox and click the link to reset your password.",
"didnt_receive_email": "Didn't receive the email? Check your spam folder or",
"try_again": "try again",
"remember_password": "Remember your password?"
},
"nav": {
"dashboard": "Dashboard",
"products": "Products",
"orders": "Orders",
"customers": "Customers",
"inventory": "Inventory",
"analytics": "Analytics",
"reports": "Reports",
"settings": "Settings",
"profile": "Profile",
"team": "Team",
"marketplace": "Marketplace",
"integrations": "Integrations",
"notifications": "Notifications",
"help": "Help",
"home": "Home",
"shop": "Shop",
"cart": "Cart",
"checkout": "Checkout",
"account": "Account",
"wishlist": "Wishlist"
},
"errors": {
"generic": "An error occurred",
"not_found": "Not Found",
"unauthorized": "Unauthorized",
"forbidden": "Forbidden",
"bad_request": "Bad Request",
"server_error": "Server Error",
"network_error": "Network Error",
"timeout": "Request Timeout",
"validation_error": "Validation Error",
"field_required": "This field is required",
"invalid_email": "Invalid email address",
"invalid_phone": "Invalid phone number",
"password_mismatch": "Passwords do not match",
"password_too_short": "Password is too short",
"try_again": "Please try again",
"contact_support": "Please contact support if the problem persists"
},
"confirmations": {
"delete_title": "Confirm Delete",
"delete_message": "Are you sure you want to delete this item?",
"delete_warning": "This action cannot be undone.",
"cancel_title": "Confirm Cancel",
"cancel_message": "Are you sure you want to cancel?",
"unsaved_changes": "You have unsaved changes. Are you sure you want to leave?",
"logout_title": "Confirm Logout",
"logout_message": "Are you sure you want to log out?"
},
"footer": {
"all_rights_reserved": "All rights reserved",
"powered_by": "Powered by"
},
"time": {
"now": "Now",
"today": "Today",
"yesterday": "Yesterday",
"tomorrow": "Tomorrow",
"this_week": "This Week",
"last_week": "Last Week",
"this_month": "This Month",
"last_month": "Last Month",
"this_year": "This Year",
"ago": "ago",
"seconds": "seconds",
"minutes": "minutes",
"hours": "hours",
"days": "days",
"weeks": "weeks",
"months": "months",
"years": "years"
},
"formats": {
"date": "MM/DD/YYYY",
"time": "HH:mm",
"datetime": "MM/DD/YYYY HH:mm",
"currency": "{symbol}{amount}"
},
"clipboard": {
"copied": "Copied to clipboard",
"failed": "Failed to copy"
},
"onboarding": {
"banner": {
"title": "Get Started",
"dismiss": "Dismiss"
}
}
}