// Labels shared by the early demos. Language is passed from MDX so SSR and
// hydration agree; numerical Debug keys remain stable for copying into code.
const spanish: Record<string, string> = {
	"Typical human": "Humana típica",
	"Prolate: steep center, flatter edges. Reduces spherical aberration relative to a sphere.":
		"Prolata: centro más curvo, periferia más plana. Reduce la aberración esférica frente a una esfera.",
	"Spherical cornea": "Córnea esférica",
	"Constant curvature. Edge rays focus closer than central rays: positive spherical aberration.":
		"Curvatura constante. Los rayos periféricos enfocan antes: aberración esférica positiva.",
	"Oblate example": "Ejemplo oblato",
	"Post-myopic-LASIK example (Q = +0.6). Postoperative Q varies.":
		"Ejemplo tras LASIK miópico (Q = +0,6). El Q posoperatorio varía.",
	"Asphericity (Q)": "Asfericidad (Q)",
	"Conic constant Q": "Constante cónica Q",
	"sphere reference": "referencia esférica",
	"Toric Cornea": "Córnea tórica",
	"X axis: flat meridian (Rx = 7.8 mm)": "Eje X: meridiano plano (Rx = 7,8 mm)",
	"Y axis: steep meridian (Ry = 6.0 mm)":
		"Eje Y: meridiano curvo (Ry = 6,0 mm)",
	"Z axis: surface height": "Eje Z: altura de la superficie",
	Curvature: "Curvatura",
	Steep: "Más curva",
	Flat: "Más plana",
	Keratoconus: "Queratocono",
	"A thinned cornea bulging forward into a cone, low and off-center. Drag to rotate and see the profile.":
		"Una córnea adelgazada que forma un cono inferior y descentrado. Arrastra para ver su perfil.",
	"↓ Inferior (cone forms here)": "↓ Inferior (posición del cono)",
	"1. Epithelium": "1. Epitelio",
	"Renewing outer cells; smooth support for tears.":
		"Células externas que se renuevan; soporte liso para las lágrimas.",
	"2. Bowman's Layer": "2. Capa de Bowman",
	"Acellular collagen layer beneath the epithelium; does not regenerate like the epithelium.":
		"Colágeno acelular bajo el epitelio; no se regenera como este.",
	"3. Stroma": "3. Estroma",
	"Most of the thickness. Interwoven collagen lamellae; orientations are schematic here.":
		"La mayor parte del espesor. Láminas de colágeno entrelazadas; orientaciones esquemáticas.",
	"4. Pre-Descemet (proposed)": "4. Pre-Descemet (propuesta)",
	"Proposed pre-Descemet layer; classification is debated.":
		"Capa pre-Descemet propuesta; su clasificación se debate.",
	"5. Descemet's Membrane": "5. Membrana de Descemet",
	"Elastic basement membrane the endothelium sits on.":
		"Membrana basal elástica que sostiene el endotelio.",
	"6. Endothelium": "6. Endotelio",
	"Single sheet of hexagonal cells pumping water out to keep the cornea clear.":
		"Capa de células hexagonales que regula el agua y mantiene la transparencia.",
	"Corneal layers (model)": "Capas corneales (modelo)",
	"Collapse layers": "Juntar capas",
	"Explode layers": "Separar capas",
	"Illustrative blur": "Desenfoque ilustrativo",
	Hide: "Ocultar",
	Controls: "Controles",
	"D: keratometric power (index 1.3375).":
		"D: potencia queratométrica (índice 1,3375).",
	"Radius X": "Radio X",
	"Radius Y": "Radio Y",
	Thickness: "Espesor",
	Topography: "Topografía",
	"Steeper = redder": "Más curva = más roja",
	"The rings approximate curvature changes. Red marks steeper regions in this demo’s color key; no reflected rays are traced.":
		"Los anillos aproximan cambios de curvatura. El rojo indica zonas más curvas en esta demo; no se trazan rayos reflejados.",
	"Placido approximation": "Aproximación de Plácido",
	"Hyperrealistic Cornea": "Acabado de la córnea",
	"Built to average anatomy: R": "Dimensiones típicas elegidas: R",
	"6.5 mm, Q −0.26, thickness 0.55 mm. Glassy transmission with dispersion, a drifting tear-film sheen, and reflections. Drag to orbit.":
		"6,5 mm, Q −0,26, espesor 0,55 mm. Transmisión, dispersión y reflejos ilustrativos. Arrastra para girar.",
	"Tear Film: Thin Film Interference": "Película lagrimal: interferencia",
	"A wafer-thin oil layer floating on the watery tears. As its thickness drifts, different colors cancel and reinforce, giving the faint oil-slick sheen.":
		"Una fina capa lipídica sobre las lágrimas acuosas. Al variar su espesor, los colores se refuerzan o se cancelan y aparece un brillo irisado.",
	"Pupil area (A)": "Área pupilar (A)",
	"SCE-weighted illuminance": "Iluminancia ponderada por SCE",
	"Retinal illuminance": "Iluminancia retiniana",
	"SCE-weighted area / area": "Área ponderada por SCE / área",
	Pupil: "Pupila",
	"Pupil diameter": "Diámetro pupilar",
	Light: "Luz",
	"Scene luminance": "Luminancia de la escena",
	"Scene luminance (L)": "Luminancia de la escena (L)",
	on: "sí",
	off: "no",
	"Iris pigment": "Pigmentación del iris",
	Brown: "Marrón",
	Hazel: "Avellana",
	Blue: "Azul",
	Albino: "Albino",
	"Optic Chiasm": "Quiasma óptico",
	"Pretectal Nucleus": "Núcleo pretectal",
	"Olivary Pretectal Nucleus": "Núcleo olivar pretectal",
	"Edinger-Westphal Nucleus": "Núcleo de Edinger-Westphal",
	"Ciliary Ganglion": "Ganglio ciliar",
	"Sensory (Optic Nerve)": "Sensitiva (nervio óptico)",
	Interneurons: "Interneuronas",
	"Motor (CN III → ganglion → short ciliary nerves)":
		"Motora (III par → ganglio → nervios ciliares cortos)",
	"Pathway labels": "Estructuras de la vía",
	"2. Optic Chiasm": "2. Quiasma óptico",
	"3. Pretectal Nucleus": "3. Núcleo pretectal",
	"3. Olivary Pretectal Nucleus": "3. Núcleo olivar pretectal",
	"4. Edinger-Westphal Nucleus": "4. Núcleo de Edinger-Westphal",
	"5. Ciliary Ganglion": "5. Ganglio ciliar",
	"Pupil stream stopped. Reconnect to try again.":
		"Se detuvo el flujo pupilar. Vuelve a conectar.",
	"No pupil stream received. Check the device and enable Compute Eye State.":
		"No se reciben datos pupilares. Revisa el dispositivo y activa Compute Eye State.",
	"Could not connect to Neon.": "No se pudo conectar con Neon.",
	"Live Neon pupil data": "Datos pupilares de Neon en directo",
	"Neon device address": "Dirección del dispositivo Neon",
	Disconnect: "Desconectar",
	"Cancel connection": "Cancelar conexión",
	Connect: "Conectar",
	"LAST 1000 SAMPLES": "ÚLTIMAS 1000 MUESTRAS",
	Left: "Izquierda",
	Right: "Derecha",
	disconnected: "desconectado",
	connecting: "conectando",
	streaming: "recibiendo datos",
	error: "error",
	"Target:": "Objetivo:",
	"Retinal light": "Luz retiniana",
	"Geometric E = L·A": "Geométrica E = L·A",
	"Reflex state": "Estado del reflejo",
	"Model delay 220 ms": "Retraso del modelo: 220 ms",
	starlight: "estrellas",
	moonlight: "luna",
	indoor: "interior",
	sunlight: "sol",
	"Flashing...": "Destello...",
	"Penlight flash": "Destello de linterna",
	"Baseline offset": "Ajuste basal",
	"Baseline pupil offset": "Ajuste del diámetro basal",
	"Stiles-Crawford effect": "Efecto Stiles-Crawford",
	"Steady state": "Estable",
	"Flash (fast close)": "Destello (cierre rápido)",
	Constricting: "Contrayéndose",
	Dilating: "Dilatándose",
	"Iris Anatomy": "Anatomía del iris",
	"Two muscles set the pupil size: a circular":
		"Dos músculos regulan la pupila: un",
	sphincter: "esfínter",
	"that closes it and radial": "circular que la cierra y fibras radiales del",
	dilator: "dilatador",
	"fibers that open it.": "que la abren.",
	"Muscles on": "Músculos visibles",
	"Muscles off": "Músculos ocultos",
	"3D pupil": "Pupila 3D",
	"Reflex over time": "Evolución del reflejo",
	"- - target": "- - objetivo",
	"— actual": "— respuesta",
	"4s ago": "hace 4 s",
	now: "ahora",
	"Light:": "Luz:",
	Dark: "Oscura",
	Bright: "Intensa",
	"220 ms delay: on": "Retraso 220 ms: sí",
	"220 ms delay: off": "Retraso 220 ms: no",
};

export function eyeText(lang: "en" | "es") {
	return (message: string) =>
		lang === "es" ? (spanish[message] ?? message) : message;
}