DUNGEONS-34: implement Webka local streaming app

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-09-06 16:23:09 +05:00
parent 5540b9a1f4
commit 7c737c1011
36 changed files with 21596 additions and 0 deletions

View File

@@ -0,0 +1,177 @@
{
"nav": {
"main": "Main navigation",
"host": "Host studio",
"watch": "Watch",
"accounts": "Accounts",
"settings": "Settings"
},
"common": {
"close": "Close",
"logout": "Sign out",
"skip": "Skip to content",
"working": "Working…",
"loading": "Loading…",
"cancel": "Cancel",
"save": "Save changes",
"refresh": "Refresh"
},
"login": {
"local": "Your network. Your space.",
"headline": "A little closer.",
"headlineAccent": "Wherever you are.",
"description": "Turn a device into a live window. Share your camera or screen, privately on your local network.",
"privacy": "No cloud. Just a connection.",
"title": "Welcome back",
"subtitle": "Sign in to this host to join the stream.",
"setupTitle": "Make yourself at home",
"setupDescription": "Create the administrator account for this host.",
"usernamePlaceholder": "Your username",
"passwordPlaceholder": "Your password",
"setupToken": "Setup token",
"tokenHint": "Use the token in the setup-token file created by the local server.",
"create": "Create host account",
"signin": "Sign in",
"hostAccounts": "Accounts belong to this host only",
"localUtility": "A local streaming utility"
},
"host": {
"eyebrow": "Your local workspace",
"title": "Host studio",
"subtitle": "A live window into your world. You’re in control.",
"start": "Go live",
"stop": "Stop hosting",
"previewTitle": "Your view starts here",
"previewHint": "Choose a source below, then go live when you’re ready.",
"enableCamera": "Enable preview",
"private": "Private stream",
"broadcasting": "Broadcasting to your network",
"previewOnly": "Only you can see this preview",
"audioOff": "Video only · No audio",
"videoSource": "Video source",
"switchAnytime": "Switch anytime",
"rearHint": "Enable the camera first to discover available lenses.",
"uptime": "Time live",
"viewers": "Viewers",
"quality": "Send quality",
"connectDevice": "Connect a device",
"scanHint": "Scan to open the stream on another device.",
"qrAlt": "QR code for the local watch address",
"localAddress": "Local address",
"copy": "Copy address",
"copied": "Address copied",
"sameNetwork": "Connect to the same Wi-Fi",
"connected": "Connected viewers",
"noViewers": "A quiet room, for now",
"inviteHint": "Share the link to invite your first viewer.",
"kick": "Disconnect",
"manageAccess": "Manage access",
"footer": "Local by design. Your stream stays on your network."
},
"sources": {
"front": "Front camera",
"back": "Back camera",
"screen": "Screen"
},
"stream": {
"offline": "Offline",
"connecting": "Connecting",
"reconnecting": "Reconnecting",
"waiting": "Waiting for host",
"live": "Live"
},
"quality": {
"auto": "Adaptive",
"high": "High · 4 Mbps",
"low": "Low · 600 Kbps"
},
"watch": {
"fullscreen": "Toggle fullscreen",
"disconnect": "Disconnect",
"reconnect": "Reconnect",
"waitingTitle": "Ready when they are",
"waitingHint": "The host isn’t live yet. The stream will appear here automatically.",
"connectingTitle": "Bringing you closer",
"connectingHint": "Connecting to the host on your local network."
},
"accounts": {
"eyebrow": "Who’s welcome",
"title": "Accounts & security",
"subtitle": "A private space, with access on your terms.",
"add": "Add viewer",
"protected": "Every connection starts with permission",
"protectedHint": "Sign-in is required. Passwords are hashed. Access can be revoked anytime.",
"localAccounts": "Local accounts",
"account": "Account",
"role": "Role",
"lastLogin": "Last sign-in",
"sessions": "Sessions",
"actions": "Actions",
"you": "You",
"admin": "Host / Admin",
"viewer": "Viewer",
"username": "Username",
"password": "Password",
"usernameHint": "3–40 characters: Latin letters, numbers, dots, underscores or hyphens.",
"passwordHint": "At least 12 characters, including a letter and a number.",
"never": "Not yet",
"reset": "Reset password",
"delete": "Delete account",
"saved": "Access settings updated.",
"activeSessions": "Active sessions",
"sessionHint": "Sessions expire after 30 minutes of inactivity or 12 hours.",
"current": "This session",
"lastActive": "Last active",
"revoke": "Revoke",
"resetHint": "All sessions for {name} will be signed out immediately.",
"deleteHint": "Delete {name}? This removes the account and immediately disconnects all its sessions."
},
"general": {
"eyebrow": "Make it yours",
"title": "Settings",
"subtitle": "Small details. Your kind of space.",
"appearance": "Appearance",
"dark": "Dark glass",
"light": "Light glass",
"accent": "Accent color",
"accentHint": "A little personality for your controls.",
"language": "Language",
"displayLanguage": "Display language",
"languageHint": "Used throughout Webka on this browser.",
"privacy": "Privacy & connection",
"loginRequired": "Require sign-in",
"loginHint": "Only accounts created on this host can watch.",
"alwaysOn": "Always on",
"localOnly": "Local network only",
"localHint": "No cloud relay, analytics, or external media services.",
"savedLocally": "Your preferences are saved in this browser."
},
"colors": {
"lime": "Lime",
"blue": "Blue",
"violet": "Violet",
"peach": "Peach"
},
"errors": {
"server": "Couldn’t complete the request. Check that the local server is running and try again.",
"unauthorized": "Your credentials are incorrect or your session has expired. Please sign in again.",
"forbidden": "This action requires a host account.",
"origin": "This address does not match the server’s configured address. Open the configured local URL.",
"setupToken": "The setup token is incorrect.",
"alreadySetup": "This host already has an administrator. Sign in instead.",
"username": "Use 3–40 Latin letters, numbers, dots, underscores or hyphens.",
"password": "Use at least 12 characters, with a letter and a number.",
"rateLimited": "Too many attempts. Wait a minute and try again.",
"duplicate": "That username is already taken.",
"protectedAccount": "The host account cannot be deleted.",
"notFound": "This account no longer exists.",
"hostBusy": "This session is already connected or another host is live. Close the other tab and try again.",
"secureContext": "Camera and screen access need HTTPS, or localhost on the server device. Open the secure host address.",
"NotAllowedError": "Access was cancelled or denied. Allow camera or screen access in your browser and try again.",
"NotFoundError": "No matching camera was found on this device.",
"NotReadableError": "The camera is busy. Close other apps using it and try again.",
"OverconstrainedError": "This camera source is unavailable. Try the front camera.",
"clipboard": "Couldn’t copy automatically. Select and copy the address above.",
"fullscreen": "Fullscreen isn’t available in this browser."
}
}