Files
City10/lang/en.json
T
marcocosta10000 b8c31e7be4 feat(city): add east shore beach leisure activity
Characters can now relax on the beach sand to recover energy and
health. The server clamps position to the shoreline, exposes beach
geometry in the city payload, and the client renders animated waves,
sand, stalls, chairs, and ambient NPCs.

Includes Beach support class, new beach action endpoint, localization
strings, and feature tests.
2026-10-31 20:35:22 -03:00

257 lines
13 KiB
JSON
Executable File

{
"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 · Get close to someone to talk",
"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.talk_ratelimited": "Too many messages — wait a moment and try again.",
"city.chat_send": "Send",
"city.chat_with": "Chatting with",
"city.clock": "Time",
"city.weather": "Weather",
"city.weather_clear": "Sunny",
"city.weather_cloudy": "Cloudy",
"city.weather_rain": "Rain",
"city.weather_storm": "Storm",
"city.vehicles_count": "vehicles",
"city.pedestrians_count": "pedestrians",
"auth.pending": "Your account is awaiting administrator approval.",
"auth.pending_title": "Awaiting approval",
"auth.pending_body": "Your registration was received. An administrator must approve your account before you can enter the city. You can close this page and try again later.",
"admin.citizens.title": "Citizens",
"admin.citizens.hint": "Approve pending accounts to create their city character.",
"admin.citizens.name": "Name",
"admin.citizens.status": "Status",
"admin.citizens.character": "Character",
"admin.citizens.actions": "Actions",
"admin.citizens.approve": "Approve",
"admin.citizens.approved": "Citizen approved and character created.",
"admin.citizens.ban": "Ban",
"admin.citizens.banned": "Citizen banned.",
"admin.citizens.cannot_ban_self": "You cannot ban your own account.",
"admin.cities.title": "Cities and territory",
"admin.cities.hint": "Create new cities or expand existing territory (+40 per block).",
"admin.cities.name": "City name",
"admin.cities.create": "Create city",
"admin.cities.created": "City created.",
"admin.cities.bounds": "Bounds",
"admin.cities.expansions": "Expansions",
"admin.cities.expand": "Expand",
"admin.cities.expanded": "Territory expanded.",
"admin.cities.max_expansions": "Expansion limit reached.",
"nav.citizens": "Citizens",
"nav.cities": "Cities",
"city.action_unknown": "Unknown action.",
"city.action_ok": "Action completed.",
"city.no_food": "You have no food in inventory.",
"city.no_water": "You have no water in inventory.",
"city.no_house": "You need a completed house to sleep.",
"city.no_job": "You are unemployed. Apply for a job.",
"city.no_school": "No school available in this city.",
"city.job_other_city": "That job belongs to another city.",
"city.job_education": "Not enough education for this job.",
"city.no_money": "Not enough money.",
"city.no_inventory": "Not enough inventory quantity.",
"city.out_of_bounds": "Position outside city bounds.",
"city.no_materials": "You need 50 materials to build.",
"city.site_taken": "This lot is already occupied.",
"city.build_started": "Construction started. The ticker finishes the house.",
"city.social_unknown": "Unknown social action.",
"city.social_self": "You cannot do that to yourself.",
"city.social_exists": "Relationship already exists or is pending.",
"city.social_friend_sent": "Friend request sent.",
"city.social_friend_ok": "Friendship accepted.",
"city.social_need_friend": "You must be accepted friends first.",
"city.social_married": "You are already married.",
"city.social_married_ok": "Marriage completed.",
"city.social_need_spouse": "You must be married to have a child.",
"city.social_child_ok": "A child was born in the city!",
"city.chat_sent": "Message sent.",
"city.hud_hunger": "Hunger",
"city.hud_thirst": "Thirst",
"city.hud_energy": "Energy",
"city.hud_money": "Money",
"city.hud_state": "State",
"city.hud_education": "Education",
"city.hud_inventory": "Inventory",
"city.hud_jobs": "Jobs",
"city.hud_actions": "Actions",
"city.hud_social": "Social",
"city.act_eat": "Eat",
"city.act_drink": "Drink",
"city.act_sleep": "Sleep",
"city.act_wake": "Wake up",
"city.act_work": "Work",
"city.act_stop": "Stop",
"city.act_study": "Study",
"city.act_buy": "Buy kit",
"city.act_sell_v": "Sell product",
"city.act_build": "Build house (50 mat.)",
"city.act_apply": "Apply",
"city.act_friend": "Friend",
"city.act_marry": "Marry",
"city.act_child": "Child",
"city.me": "My character",
"city.citizens_near": "Citizens",
"city.apply_job": "Apply for",
"city.buy_hint": "Buys 1 food + 1 water + 10 materials",
"city.hospital_hit": "You were hit by a vehicle! Hospitalized for 1 hour.",
"city.hospital_already": "You are already in the hospital.",
"city.hospital_blocked": "You are hospitalized and cannot do that right now.",
"city.hospital_bed": "Hospitalized",
"city.hospital_released": "Hospital discharge: you are free to go.",
"city.hospital_title": "Hospitalized",
"city.hospital_left": "Discharge in",
"city.audio": "Audio",
"city.vol_master": "Master",
"city.vol_music": "Music",
"city.vol_sfx": "Effects",
"city.mute": "Mute",
"city.audio_hint": "Volume saved on this device.",
"city.hud_health": "Health",
"city.hud_exercise": "Workouts",
"city.exercise_use": "Press E to exercise",
"city.exercise_active": "Exercising",
"city.exercise_stopHint": "to stop",
"city.exercise_ok": "Nice! +2 health.",
"city.beach_need": "To relax, head to the beach.",
"city.beach_ok": "You relaxed at the beach and recovered energy!",
"city.beach_full": "Energy and health are already at max.",
"city.beach_busy": "Finish your current exercise first.",
"city.beach_start": "Resting on the sand…",
"city.beach_prompt": "Relax at the beach",
"city.beach_active": "Relaxing at the beach",
"city.exercise_need_equipment": "Get closer to plaza gym equipment.",
"city.exercise_need_awake": "You must be awake to exercise.",
"city.exercise_tired": "You are too tired to exercise.",
"city.exercise_max_health": "Health is already at maximum!",
"city.exerciseStart": "Starting exercise…",
"city.exerciseStop": "Exercise stopped.",
"city.ped_red": "Red pedestrian light — wait for the walk signal.",
"nav.world": "World",
"admin.world.title": "World dashboard",
"admin.world.hint": "Live platform metrics for the persistent world.",
"admin.world.users": "Users",
"admin.world.characters": "Characters",
"admin.world.economy": "Economy",
"admin.world.trade_volume": "Trade volume",
"admin.world.world": "Finished houses",
"admin.world.market": "Market",
"admin.world.missions": "Missions",
"admin.world.health": "Avg health",
"admin.world.education": "Avg education",
"city.customize_saved": "Appearance updated.",
"city.market_listed": "Listing published on the market.",
"city.market_bought": "Purchase complete!",
"city.market_unavailable": "Listing unavailable.",
"city.ride_need_stop": "Get near a road (bus) or the rails (train).",
"city.ride_bus_ok": "You boarded the bus!",
"city.ride_train_ok": "You boarded the train!",
"city.missions_done": "Mission complete",
"city.act_market": "Market",
"city.act_customize": "Appearance",
"city.act_ride_bus": "Bus",
"city.act_ride_train": "Train",
"city.hud_minimap": "Map",
"city.online_now": "online",
"city.marketBuy": "Buy"
}