Files
City10/lang/en.json
T
marcocosta10000 79d12fa2f4 feat: add City10 platform with Laravel 13, AI agents, 3D viewer, and LGPD compliance
Initial commit of the complete City10 virtual city simulation platform.

Backend (Laravel 13):
- REST API with Sanctum tokens and session-based web authentication
- Role-based access control (admin/user) with middleware protection
- AI agent CRUD with OpenRouter.ai integration restricted to free models
- Store management with 3D coordinates and AI shopkeeper assignment
- Versioned legal documents (Terms, Privacy, Cookies) with LGPD audit trail
- Math CAPTCHA on public forms and multi-language support (pt_BR, en, es)

Frontend:
- Responsive Blade templates with Tailwind CSS v4
- Three.js 3D city viewer with SSE chat streaming to AI agents
- Admin panel for store and user administration

Infrastructure:
- MariaDB/MySQL database with comprehensive migrations
- Database seeders for demo content and test accounts
- PHPUnit test suite and Laravel Pint code styling
- Vite build configuration with hot reload
2026-10-17 20:46:15 -03:00

108 lines
5.6 KiB
JSON

{
"Login": "Log in",
"Logout": "Log out",
"Register": "Register",
"Dashboard": "Dashboard",
"Email": "Email",
"Password": "Password",
"Password Confirmation": "Confirm Password",
"Remember Me": "Remember me",
"Name": "Name",
"Save": "Save",
"Cancel": "Cancel",
"Delete": "Delete",
"Edit": "Edit",
"Create": "Create",
"Search": "Search",
"Back": "Back",
"Welcome": "Welcome to City10",
"auth.failed": "These credentials do not match our records.",
"auth.disabled": "This account has been disabled. Please contact an administrator.",
"auth.forbidden": "You do not have permission to access this resource.",
"auth.logged_out": "You have been logged out successfully.",
"auth.throttle": "Too many attempts. Please try again in :seconds seconds.",
"legal.accept_required": "You must accept the Terms of Use and Privacy Policy before continuing.",
"legal.accepted": "Terms accepted successfully.",
"legal.must_accept_terms": "You must accept the Terms of Use.",
"legal.must_accept_privacy": "You must accept the Privacy Policy.",
"legal.must_accept_cookies": "You must accept the Cookie Policy.",
"validation.captcha_required": "Please solve the math verification.",
"validation.captcha_failed": "The math verification answer is incorrect.",
"validation.model_not_allowed": "The selected AI model is not in the allowed list.",
"users.cannot_deactivate_self": "You cannot deactivate your own account.",
"users.deactivated": "Account deactivated successfully.",
"stores.deleted": "Store deleted successfully.",
"agents.deleted": "Agent deleted successfully.",
"welcome.tagline": "A living 3D city in your browser, with autonomous AI agents — Mayor, pedestrians, shopkeepers and vehicles — deciding in real time through OpenRouter.ai.",
"welcome.card1.title": "🌐 Real-Time 3D City",
"welcome.card1.desc": "Explore streets, avenues, bridges, rivers, squares and buildings rendered with Three.js right in your browser.",
"welcome.card2.title": "🤖 AI Agents",
"welcome.card2.desc": "The mayor, pedestrians and shopkeepers make strategic decisions using free OpenRouter.ai models.",
"welcome.card3.title": "🔒 Secure & LGPD",
"welcome.card3.desc": "Differentiated authentication (Admin/User), math CAPTCHA and auditable terms consent compliant with Brazilian law.",
"welcome.city.title": "🗺️ City Elements (Phase 1)",
"welcome.city.desc": "The database already models houses, buildings, schools, parks, squares, traffic lights, streets, avenues, bridges, airports, rivers, industries, stores and shopkeepers — all with 3D coordinates (X, Y, Z) ready for the rendering engine.",
"welcome.no_account": "Don't have an account?",
"welcome.has_account": "Already have an account?",
"nav.city": "3D City",
"nav.admin": "Admin",
"dashboard.open_viewer": "Open 3D viewer",
"dashboard.viewer_desc": "Explore the city ground, stores and agents with a controllable camera.",
"dashboard.stores_title": "Stores",
"dashboard.stores_desc": "Stores registered in the 3D city.",
"dashboard.legal_title": "Consents",
"dashboard.consent_history": "View acceptance history",
"legal.terms_label": "Terms",
"legal.privacy_label": "Privacy",
"legal.cookies_label": "Cookies",
"admin.stores.title": "Manage Stores",
"admin.stores.manage": "Manage stores",
"admin.stores.admin_desc": "Create stores and define their 3D position in the city.",
"admin.stores.new": "New store",
"admin.stores.created": "Store created successfully.",
"admin.stores.updated": "Store updated successfully.",
"admin.stores.edit_title": "Edit store",
"admin.stores.create_title": "New store",
"admin.stores.empty": "No stores registered yet.",
"admin.stores.position": "3D position in the city",
"admin.stores.position_hint": "Click the ground to set X/Z, or type the coordinates. Use controls to rotate/zoom.",
"admin.stores.pos_x": "Position X",
"admin.stores.pos_y": "Height Y (ground = 0)",
"admin.stores.pos_z": "Position Z",
"admin.stores.dimensions": "Building dimensions",
"admin.stores.width": "Width",
"admin.stores.height": "Height",
"admin.stores.depth": "Depth",
"admin.stores.type": "Store type",
"admin.stores.description": "Description",
"admin.stores.owner": "Owner (user)",
"admin.stores.agent": "AI agent (shopkeeper)",
"admin.stores.is_open": "Store open",
"admin.stores.no_owner": "No owner",
"admin.stores.no_agent": "No agent",
"admin.stores.actions": "Actions",
"admin.stores.coords": "Coordinates",
"admin.stores.confirm_delete": "Delete this store from the city?",
"city.title": "3D City Viewer",
"city.loading": "Loading city…",
"city.error": "Failed to load city data.",
"city.stores_count": "stores",
"city.agents_count": "agents",
"city.hint": "Click the scene to control · WASD to walk · Mouse to look · Esc to exit",
"city.refresh": "Reload",
"city.selected": "Selected",
"city.open": "Open",
"city.closed": "Closed",
"city.hint_fps": "WASD to walk · Mouse to look · Esc to exit · Click an NPC to chat",
"city.position": "POSITION",
"city.on_ground": "on ground",
"city.triangles": "collision tris",
"city.chat_placeholder": "Type your message…",
"city.chat_thinking": "thinking…",
"city.chat_responding": "responding…",
"city.chat_accepted": "Message sent to agent.",
"city.chat_error": "Sorry, I can't reply right now. Please try again.",
"city.chat_send": "Send",
"city.chat_with": "Chatting with"
}