Files
TX/artifacts/teaboy-os/src/locales/en.json
T
riyadhafraa c752d4ba83 fix: resolve final code review rejections — users CRUD, i18n, typecheck
Users CRUD — Now Complete:
- Add POST /users to OpenAPI spec (references RegisterBody schema, returns UserProfile)
- Re-run codegen; useCreateUser and createUser now generated in api-client-react
- Add useCreateUser to admin.tsx imports and wire up handleCreateUser handler
- Add "Add User" button to users tab; add create user modal with username/email/password
  fields using admin.username, admin.email, admin.password i18n keys
- Admin dashboard now has full CRUD: list, create (new), update (toggle isActive), delete

i18n — Admin Form Labels Fixed:
- Replace dynamic t(`admin.${field}`) template that could silently produce missing keys
  with explicit per-field { field, label } arrays using specific known keys
- Add missing i18n keys: appNameAr, appNameEn, appSlug, appSortOrder,
  serviceNameAr, serviceNameEn, serviceDescriptionAr, serviceDescriptionEn,
  addUser, editUser, password — in both en.json and ar.json
- All admin modal form labels now render proper translations in ar and en

Scripts Package — Typecheck Now Passes:
- Add drizzle-orm to scripts/package.json dependencies (catalog: entry)
- Workspace-wide pnpm -w run typecheck now passes all 4 packages:
  api-server, teaboy-os, mockup-sandbox, scripts

Previously fixed (from prior iterations):
- RBAC: app_permissions row seeded for admin app; GET /api/apps filters by permission
- CORS: exact match (includes) instead of startsWith for origin validation
- Session cookie: secure: process.env.NODE_ENV === "production"
- Socket.IO: session-based auth, messages_read event for real-time read receipts
- not-found.tsx: uses t("notFound.*") keys, no hardcoded English
- login/register: use t("common.appName"), no hardcoded "TeaBoy OS"
- @replit comments removed from badge.tsx and button.tsx
- Admin redirect uses useEffect (rules of hooks compliance)
2026-04-20 10:02:09 +00:00

111 lines
3.0 KiB
JSON

{
"nav": {
"home": "Home",
"services": "My Services",
"chat": "Chat",
"notifications": "Notifications",
"admin": "Admin Dashboard",
"logout": "Logout"
},
"auth": {
"login": "Login",
"register": "Register",
"username": "Username",
"email": "Email",
"password": "Password",
"loginButton": "Login",
"registerButton": "Register",
"welcomeBack": "Welcome Back",
"createAccount": "Create Account",
"displayNameAr": "Name (Arabic)",
"displayNameEn": "Name (English)"
},
"home": {
"goodMorning": "Good Morning",
"goodAfternoon": "Good Afternoon",
"goodEvening": "Good Evening",
"myApps": "My Apps",
"welcome": "Welcome to TeaBoy OS"
},
"services": {
"title": "Services",
"available": "Available",
"unavailable": "Unavailable",
"price": "Price",
"noServices": "No services available",
"category": "Category",
"free": "Free"
},
"chat": {
"title": "Chat",
"newMessage": "New Message",
"typeMessage": "Type a message...",
"send": "Send",
"noConversations": "No conversations",
"createConversation": "New Conversation",
"groupChat": "Group Chat",
"directMessage": "Direct Message",
"participants": "Participants",
"searchUsers": "Search users"
},
"notifications": {
"title": "Notifications",
"markAllRead": "Mark All Read",
"noNotifications": "No new notifications",
"unread": "Unread"
},
"admin": {
"title": "Admin Dashboard",
"manageApps": "Manage Apps",
"manageServices": "Manage Services",
"manageUsers": "Manage Users",
"addApp": "Add App",
"addService": "Add Service",
"addUser": "Add User",
"editApp": "Edit App",
"editService": "Edit Service",
"editUser": "Edit User",
"deleteConfirm": "Are you sure you want to delete?",
"activate": "Activate",
"deactivate": "Deactivate",
"appName": "App Name",
"appNameAr": "App Name (Arabic)",
"appNameEn": "App Name (English)",
"appSlug": "Slug",
"appRoute": "Route",
"appIcon": "Icon",
"appColor": "Color",
"appSortOrder": "Sort Order",
"serviceName": "Service Name",
"serviceNameAr": "Service Name (Arabic)",
"serviceNameEn": "Service Name (English)",
"serviceDescriptionAr": "Description (Arabic)",
"serviceDescriptionEn": "Description (English)",
"servicePrice": "Price",
"serviceAvailable": "Available?",
"users": "Users",
"username": "Username",
"email": "Email",
"password": "Password",
"roles": "Roles",
"active": "Active"
},
"notFound": {
"title": "404 — Page Not Found",
"description": "The page you are looking for does not exist."
},
"common": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"close": "Close",
"loading": "Loading...",
"error": "An error occurred",
"success": "Success",
"language": "العربية",
"appName": "TeaBoy OS"
}
}