@the-inclusionist/engine 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/README.md +32 -1
  2. package/app/css/style.css +216 -42
  3. package/app/public/vendor/fonts-licences/NOTICE.txt +166 -0
  4. package/app/public/vendor/fonts-licences/OFL-1.1.txt +86 -0
  5. package/app/public/vendor/fonts.css +11 -1175
  6. package/dist-pkg/boot/create-game.d.ts +84 -33
  7. package/dist-pkg/boot/create-game.js +708 -307
  8. package/dist-pkg/core/a11y-sr.d.ts +1 -1
  9. package/dist-pkg/core/a11y-sr.js +3 -5
  10. package/dist-pkg/core/accommodations.d.ts +26 -8
  11. package/dist-pkg/core/accommodations.js +27 -10
  12. package/dist-pkg/core/actions.d.ts +39 -10
  13. package/dist-pkg/core/actions.js +28 -6
  14. package/dist-pkg/core/contract.d.ts +0 -2
  15. package/dist-pkg/core/contract.js +0 -2
  16. package/dist-pkg/core/i18n.d.ts +36 -71
  17. package/dist-pkg/core/i18n.js +131 -198
  18. package/dist-pkg/core/session-clock.d.ts +23 -0
  19. package/dist-pkg/core/session-clock.js +37 -0
  20. package/dist-pkg/i18n/en.js +44 -49
  21. package/dist-pkg/i18n/es.js +44 -49
  22. package/dist-pkg/i18n/pt.js +49 -54
  23. package/dist-pkg/input/gamepad.d.ts +42 -11
  24. package/dist-pkg/input/gamepad.js +50 -15
  25. package/dist-pkg/input/key-default.d.ts +30 -0
  26. package/dist-pkg/input/key-default.js +60 -0
  27. package/dist-pkg/input/keyboard-runtime.d.ts +0 -4
  28. package/dist-pkg/input/keyboard.d.ts +0 -1
  29. package/dist-pkg/input/keydown.d.ts +5 -11
  30. package/dist-pkg/input/keydown.js +3 -3
  31. package/dist-pkg/input/latch-edge.d.ts +10 -2
  32. package/dist-pkg/input/latch-edge.js +4 -3
  33. package/dist-pkg/input/latch-scope.d.ts +27 -22
  34. package/dist-pkg/input/latch-scope.js +25 -37
  35. package/dist-pkg/input/latch-store.d.ts +9 -12
  36. package/dist-pkg/input/latch-store.js +13 -18
  37. package/dist-pkg/input/latch-sync.d.ts +5 -4
  38. package/dist-pkg/input/latch-sync.js +5 -5
  39. package/dist-pkg/input/pad-reading.js +7 -2
  40. package/dist-pkg/input/pad-wizard.d.ts +4 -1
  41. package/dist-pkg/input/pad-wizard.js +60 -9
  42. package/dist-pkg/input/switch-scan.d.ts +29 -12
  43. package/dist-pkg/input/switch-scan.js +15 -2
  44. package/dist-pkg/input/touch-bindings.d.ts +3 -6
  45. package/dist-pkg/input/touch.d.ts +17 -2
  46. package/dist-pkg/input/touch.js +55 -17
  47. package/dist-pkg/input/transport-in-use.d.ts +5 -5
  48. package/dist-pkg/input/transport-in-use.js +5 -5
  49. package/dist-pkg/input/transports.d.ts +0 -9
  50. package/dist-pkg/input/transports.js +1 -1
  51. package/dist-pkg/input/virtual-controller.d.ts +39 -3
  52. package/dist-pkg/input/virtual-controller.js +32 -4
  53. package/dist-pkg/input/voice-map.d.ts +27 -11
  54. package/dist-pkg/input/voice-map.js +41 -43
  55. package/dist-pkg/platform/audio-ambient.d.ts +0 -1
  56. package/dist-pkg/platform/audio-ambient.js +3 -1
  57. package/dist-pkg/platform/audio-mixer.js +4 -9
  58. package/dist-pkg/platform/audio-sonar.d.ts +8 -94
  59. package/dist-pkg/platform/audio-sonar.js +22 -207
  60. package/dist-pkg/platform/audio.d.ts +10 -1
  61. package/dist-pkg/platform/audio.js +35 -2
  62. package/dist-pkg/platform/choose-by-voice.d.ts +70 -0
  63. package/dist-pkg/platform/choose-by-voice.js +157 -0
  64. package/dist-pkg/platform/font-library.d.ts +77 -0
  65. package/dist-pkg/platform/font-library.js +98 -0
  66. package/dist-pkg/platform/font-library.json +721 -0
  67. package/dist-pkg/platform/heavy-catalogue.d.ts +46 -0
  68. package/dist-pkg/platform/heavy-catalogue.js +47 -14
  69. package/dist-pkg/platform/heavy-mirror.d.ts +3 -9
  70. package/dist-pkg/platform/heavy-mirror.js +14 -17
  71. package/dist-pkg/platform/heavy.d.ts +40 -8
  72. package/dist-pkg/platform/heavy.js +177 -22
  73. package/dist-pkg/platform/interruptible-speech.d.ts +15 -8
  74. package/dist-pkg/platform/interruptible-speech.js +37 -13
  75. package/dist-pkg/platform/listener-scope.js +22 -13
  76. package/dist-pkg/platform/locale-host.d.ts +7 -3
  77. package/dist-pkg/platform/locale-host.js +13 -2
  78. package/dist-pkg/platform/reading-in-worker.d.ts +24 -0
  79. package/dist-pkg/platform/reading-in-worker.js +38 -0
  80. package/dist-pkg/platform/reading-model.d.ts +21 -0
  81. package/dist-pkg/platform/reading-model.js +25 -0
  82. package/dist-pkg/platform/reading-runtime.js +13 -8
  83. package/dist-pkg/platform/reading.d.ts +12 -1
  84. package/dist-pkg/platform/reading.js +9 -1
  85. package/dist-pkg/platform/speech-recognition.d.ts +10 -1
  86. package/dist-pkg/platform/speech-recognition.js +29 -9
  87. package/dist-pkg/platform/speech.d.ts +10 -1
  88. package/dist-pkg/platform/speech.js +24 -13
  89. package/dist-pkg/platform/tts.d.ts +37 -4
  90. package/dist-pkg/platform/tts.js +279 -57
  91. package/dist-pkg/platform/voice-listener.d.ts +6 -2
  92. package/dist-pkg/platform/voice-listener.js +1 -1
  93. package/dist-pkg/platform/voice-plan.d.ts +13 -0
  94. package/dist-pkg/platform/voice-plan.js +57 -2
  95. package/dist-pkg/platform/vosk-runtime.d.ts +25 -0
  96. package/dist-pkg/platform/vosk-runtime.js +59 -1
  97. package/dist-pkg/platform/vosk-vocabulary.d.ts +6 -0
  98. package/dist-pkg/platform/vosk-vocabulary.js +178 -0
  99. package/dist-pkg/render/crt.d.ts +11 -9
  100. package/dist-pkg/render/crt.js +6 -10
  101. package/dist-pkg/render/cvd-matrices.d.ts +5 -1
  102. package/dist-pkg/render/cvd-matrices.js +5 -1
  103. package/dist-pkg/render/high-contrast.d.ts +1 -2
  104. package/dist-pkg/render/high-contrast.js +5 -1
  105. package/dist-pkg/render/viz-axes.d.ts +9 -0
  106. package/dist-pkg/render/viz-axes.js +15 -2
  107. package/dist-pkg/ui/aac-sets.d.ts +29 -24
  108. package/dist-pkg/ui/aac-sets.js +22 -30
  109. package/dist-pkg/ui/audio-choices.d.ts +10 -5
  110. package/dist-pkg/ui/audio-choices.js +14 -10
  111. package/dist-pkg/ui/camera-control.d.ts +47 -0
  112. package/dist-pkg/ui/camera-control.js +35 -1
  113. package/dist-pkg/ui/declared-words.d.ts +21 -0
  114. package/dist-pkg/ui/declared-words.js +66 -0
  115. package/dist-pkg/ui/drawing-problems.js +4 -3
  116. package/dist-pkg/ui/eye-control.js +17 -17
  117. package/dist-pkg/ui/face-control.js +15 -15
  118. package/dist-pkg/ui/fonts.d.ts +42 -8
  119. package/dist-pkg/ui/fonts.js +58 -24
  120. package/dist-pkg/ui/footer-scroll-driver.d.ts +14 -0
  121. package/dist-pkg/ui/footer-scroll-driver.js +201 -0
  122. package/dist-pkg/ui/footer-scroll.d.ts +38 -0
  123. package/dist-pkg/ui/footer-scroll.js +55 -0
  124. package/dist-pkg/ui/game-options.d.ts +14 -9
  125. package/dist-pkg/ui/game-options.js +41 -21
  126. package/dist-pkg/ui/hand-control.js +15 -15
  127. package/dist-pkg/ui/help-panel.d.ts +19 -8
  128. package/dist-pkg/ui/help-panel.js +15 -5
  129. package/dist-pkg/ui/hud-bands.d.ts +29 -12
  130. package/dist-pkg/ui/hud-bands.js +63 -25
  131. package/dist-pkg/ui/hud-row.d.ts +34 -0
  132. package/dist-pkg/ui/hud-row.js +80 -0
  133. package/dist-pkg/ui/hud.d.ts +0 -3
  134. package/dist-pkg/ui/layout.js +5 -2
  135. package/dist-pkg/ui/libras-avatar-clip.d.ts +30 -0
  136. package/dist-pkg/ui/libras-avatar-clip.js +86 -0
  137. package/dist-pkg/ui/libras-avatar-load.d.ts +52 -0
  138. package/dist-pkg/ui/libras-avatar-load.js +134 -0
  139. package/dist-pkg/ui/libras-avatar-plan.d.ts +102 -0
  140. package/dist-pkg/ui/libras-avatar-plan.js +211 -0
  141. package/dist-pkg/ui/libras-avatar-player.d.ts +28 -0
  142. package/dist-pkg/ui/libras-avatar-player.js +226 -0
  143. package/dist-pkg/ui/libras-avatar-stage.d.ts +37 -0
  144. package/dist-pkg/ui/libras-avatar-stage.js +208 -0
  145. package/dist-pkg/ui/libras-glosses.d.ts +28 -0
  146. package/dist-pkg/ui/libras-glosses.js +161 -0
  147. package/dist-pkg/ui/menu-intent.d.ts +29 -0
  148. package/dist-pkg/ui/menu-intent.js +35 -1
  149. package/dist-pkg/ui/menu-items.d.ts +10 -0
  150. package/dist-pkg/ui/menu-items.js +29 -0
  151. package/dist-pkg/ui/menu-nav.d.ts +40 -4
  152. package/dist-pkg/ui/menu-nav.js +132 -47
  153. package/dist-pkg/ui/panel-widgets.d.ts +34 -0
  154. package/dist-pkg/ui/panel-widgets.js +86 -0
  155. package/dist-pkg/ui/pause-icons.d.ts +30 -14
  156. package/dist-pkg/ui/pause-icons.js +106 -45
  157. package/dist-pkg/ui/scan-overlay.d.ts +3 -3
  158. package/dist-pkg/ui/scan-overlay.js +11 -3
  159. package/dist-pkg/ui/screen-text.d.ts +25 -0
  160. package/dist-pkg/ui/screen-text.js +152 -0
  161. package/dist-pkg/ui/session-clock.d.ts +32 -0
  162. package/dist-pkg/ui/session-clock.js +67 -0
  163. package/dist-pkg/ui/settings-aac.d.ts +3 -1
  164. package/dist-pkg/ui/settings-aac.js +32 -13
  165. package/dist-pkg/ui/settings-audio.d.ts +10 -5
  166. package/dist-pkg/ui/settings-audio.js +101 -35
  167. package/dist-pkg/ui/settings-controls.d.ts +0 -4
  168. package/dist-pkg/ui/settings-mobility.d.ts +3 -6
  169. package/dist-pkg/ui/settings-mobility.js +4 -46
  170. package/dist-pkg/ui/settings-motion.js +2 -2
  171. package/dist-pkg/ui/settings-panel.d.ts +10 -0
  172. package/dist-pkg/ui/settings-panel.js +25 -1
  173. package/dist-pkg/ui/settings-typo.d.ts +5 -6
  174. package/dist-pkg/ui/settings-typo.js +20 -11
  175. package/dist-pkg/ui/settings-visual.js +2 -2
  176. package/dist-pkg/ui/shell.d.ts +1 -3
  177. package/dist-pkg/ui/shell.js +8 -4
  178. package/dist-pkg/ui/title.d.ts +2 -11
  179. package/dist-pkg/ui/title.js +39 -6
  180. package/dist-pkg/ui/top-band.d.ts +5 -3
  181. package/dist-pkg/ui/top-band.js +21 -25
  182. package/dist-pkg/ui/typo-choices.d.ts +3 -3
  183. package/dist-pkg/ui/typo-choices.js +9 -8
  184. package/dist-pkg/ui/vlibras.d.ts +71 -27
  185. package/dist-pkg/ui/vlibras.js +116 -44
  186. package/dist-pkg/ui/voice-control.d.ts +23 -1
  187. package/dist-pkg/ui/voice-control.js +149 -16
  188. package/dist-pkg/ui/voice-settings.d.ts +2 -3
  189. package/dist-pkg/ui/voice-settings.js +53 -3
  190. package/dist-pkg/ui/where-the-child-is.js +2 -2
  191. package/docs/CREDITS.md +122 -10
  192. package/docs/LICENSES.md +36 -7
  193. package/package.json +34 -9
  194. package/scripts/check-cartridge.mjs +78 -0
  195. package/scripts/game-build.d.mts +25 -0
  196. package/scripts/game-build.mjs +144 -0
  197. package/scripts/heavy-into-the-delivery.mjs +284 -40
  198. package/scripts/libras-avatar.json +680 -0
  199. package/scripts/libras-avatar.mjs +246 -0
  200. package/scripts/libras-glosses/gloss.py +95 -0
  201. package/scripts/libras-glosses/pyproject.toml +32 -0
  202. package/scripts/libras-glosses/uv.lock +781 -0
  203. package/scripts/libras-glosses.mjs +351 -0
  204. package/scripts/licences/OFL-1.1.txt +86 -0
  205. package/scripts/licences/UFL-1.0.txt +96 -0
  206. package/scripts/licences/fonts.mjs +389 -0
  207. package/scripts/licences/third-party.mjs +35 -21
  208. package/app/public/vendor/fonts/bitter-var-ext.woff2 +0 -0
  209. package/app/public/vendor/fonts/bitter-var.woff2 +0 -0
  210. package/app/public/vendor/fonts/bodonimoda-var-ext.woff2 +0 -0
  211. package/app/public/vendor/fonts/bodonimoda-var.woff2 +0 -0
  212. package/app/public/vendor/fonts/cat-abril_fatface-400-ext.woff2 +0 -0
  213. package/app/public/vendor/fonts/cat-abril_fatface-400.woff2 +0 -0
  214. package/app/public/vendor/fonts/cat-adlam_display-400-ext.woff2 +0 -0
  215. package/app/public/vendor/fonts/cat-adlam_display-400.woff2 +0 -0
  216. package/app/public/vendor/fonts/cat-agu_display-400-ext.woff2 +0 -0
  217. package/app/public/vendor/fonts/cat-agu_display-400.woff2 +0 -0
  218. package/app/public/vendor/fonts/cat-alfa_slab_one-400-ext.woff2 +0 -0
  219. package/app/public/vendor/fonts/cat-alfa_slab_one-400.woff2 +0 -0
  220. package/app/public/vendor/fonts/cat-are_you_serious-400-ext.woff2 +0 -0
  221. package/app/public/vendor/fonts/cat-are_you_serious-400.woff2 +0 -0
  222. package/app/public/vendor/fonts/cat-asimovian-400-ext.woff2 +0 -0
  223. package/app/public/vendor/fonts/cat-asimovian-400.woff2 +0 -0
  224. package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400-ext.woff2 +0 -0
  225. package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400.woff2 +0 -0
  226. package/app/public/vendor/fonts/cat-bakbak_one-400-ext.woff2 +0 -0
  227. package/app/public/vendor/fonts/cat-bakbak_one-400.woff2 +0 -0
  228. package/app/public/vendor/fonts/cat-bangers-400-ext.woff2 +0 -0
  229. package/app/public/vendor/fonts/cat-bangers-400.woff2 +0 -0
  230. package/app/public/vendor/fonts/cat-barriecito-400-ext.woff2 +0 -0
  231. package/app/public/vendor/fonts/cat-barriecito-400.woff2 +0 -0
  232. package/app/public/vendor/fonts/cat-berkshire_swash-400-ext.woff2 +0 -0
  233. package/app/public/vendor/fonts/cat-berkshire_swash-400.woff2 +0 -0
  234. package/app/public/vendor/fonts/cat-bevan-400-ext.woff2 +0 -0
  235. package/app/public/vendor/fonts/cat-bevan-400.woff2 +0 -0
  236. package/app/public/vendor/fonts/cat-bitcount-400-ext.woff2 +0 -0
  237. package/app/public/vendor/fonts/cat-bitcount-400.woff2 +0 -0
  238. package/app/public/vendor/fonts/cat-bowlby_one_sc-400-ext.woff2 +0 -0
  239. package/app/public/vendor/fonts/cat-bowlby_one_sc-400.woff2 +0 -0
  240. package/app/public/vendor/fonts/cat-bungee_shade-400-ext.woff2 +0 -0
  241. package/app/public/vendor/fonts/cat-bungee_shade-400.woff2 +0 -0
  242. package/app/public/vendor/fonts/cat-charm-400-ext.woff2 +0 -0
  243. package/app/public/vendor/fonts/cat-charm-400.woff2 +0 -0
  244. package/app/public/vendor/fonts/cat-charm-700-ext.woff2 +0 -0
  245. package/app/public/vendor/fonts/cat-charm-700.woff2 +0 -0
  246. package/app/public/vendor/fonts/cat-cherry_bomb_one-400-ext.woff2 +0 -0
  247. package/app/public/vendor/fonts/cat-cherry_bomb_one-400.woff2 +0 -0
  248. package/app/public/vendor/fonts/cat-chokokutai-400-ext.woff2 +0 -0
  249. package/app/public/vendor/fonts/cat-chokokutai-400.woff2 +0 -0
  250. package/app/public/vendor/fonts/cat-chonburi-400-ext.woff2 +0 -0
  251. package/app/public/vendor/fonts/cat-chonburi-400.woff2 +0 -0
  252. package/app/public/vendor/fonts/cat-climate_crisis-400-ext.woff2 +0 -0
  253. package/app/public/vendor/fonts/cat-climate_crisis-400.woff2 +0 -0
  254. package/app/public/vendor/fonts/cat-cookie-400.woff2 +0 -0
  255. package/app/public/vendor/fonts/cat-dela_gothic_one-400-ext.woff2 +0 -0
  256. package/app/public/vendor/fonts/cat-dela_gothic_one-400.woff2 +0 -0
  257. package/app/public/vendor/fonts/cat-fascinate_inline-400-ext.woff2 +0 -0
  258. package/app/public/vendor/fonts/cat-fascinate_inline-400.woff2 +0 -0
  259. package/app/public/vendor/fonts/cat-ga_maamli-400-ext.woff2 +0 -0
  260. package/app/public/vendor/fonts/cat-ga_maamli-400.woff2 +0 -0
  261. package/app/public/vendor/fonts/cat-itim-400-ext.woff2 +0 -0
  262. package/app/public/vendor/fonts/cat-itim-400.woff2 +0 -0
  263. package/app/public/vendor/fonts/cat-jacquard_24-400-ext.woff2 +0 -0
  264. package/app/public/vendor/fonts/cat-jacquard_24-400.woff2 +0 -0
  265. package/app/public/vendor/fonts/cat-kablammo-400-ext.woff2 +0 -0
  266. package/app/public/vendor/fonts/cat-kablammo-400.woff2 +0 -0
  267. package/app/public/vendor/fonts/cat-kalam-400-ext.woff2 +0 -0
  268. package/app/public/vendor/fonts/cat-kalam-400.woff2 +0 -0
  269. package/app/public/vendor/fonts/cat-kalam-700-ext.woff2 +0 -0
  270. package/app/public/vendor/fonts/cat-kalam-700.woff2 +0 -0
  271. package/app/public/vendor/fonts/cat-katibeh-400-ext.woff2 +0 -0
  272. package/app/public/vendor/fonts/cat-katibeh-400.woff2 +0 -0
  273. package/app/public/vendor/fonts/cat-lemonada-400-ext.woff2 +0 -0
  274. package/app/public/vendor/fonts/cat-lemonada-400.woff2 +0 -0
  275. package/app/public/vendor/fonts/cat-lilita_one-400-ext.woff2 +0 -0
  276. package/app/public/vendor/fonts/cat-lilita_one-400.woff2 +0 -0
  277. package/app/public/vendor/fonts/cat-lobster-400-ext.woff2 +0 -0
  278. package/app/public/vendor/fonts/cat-lobster-400.woff2 +0 -0
  279. package/app/public/vendor/fonts/cat-luckiest_guy-400-ext.woff2 +0 -0
  280. package/app/public/vendor/fonts/cat-luckiest_guy-400.woff2 +0 -0
  281. package/app/public/vendor/fonts/cat-marhey-400-ext.woff2 +0 -0
  282. package/app/public/vendor/fonts/cat-marhey-400.woff2 +0 -0
  283. package/app/public/vendor/fonts/cat-modak-400-ext.woff2 +0 -0
  284. package/app/public/vendor/fonts/cat-modak-400.woff2 +0 -0
  285. package/app/public/vendor/fonts/cat-momo_signature-400-ext.woff2 +0 -0
  286. package/app/public/vendor/fonts/cat-momo_signature-400.woff2 +0 -0
  287. package/app/public/vendor/fonts/cat-monofett-400-ext.woff2 +0 -0
  288. package/app/public/vendor/fonts/cat-monofett-400.woff2 +0 -0
  289. package/app/public/vendor/fonts/cat-monomakh-400-ext.woff2 +0 -0
  290. package/app/public/vendor/fonts/cat-monomakh-400.woff2 +0 -0
  291. package/app/public/vendor/fonts/cat-monoton-400-ext.woff2 +0 -0
  292. package/app/public/vendor/fonts/cat-monoton-400.woff2 +0 -0
  293. package/app/public/vendor/fonts/cat-nerko_one-400-ext.woff2 +0 -0
  294. package/app/public/vendor/fonts/cat-nerko_one-400.woff2 +0 -0
  295. package/app/public/vendor/fonts/cat-noto_sans_adlam-400-ext.woff2 +0 -0
  296. package/app/public/vendor/fonts/cat-noto_sans_adlam-400.woff2 +0 -0
  297. package/app/public/vendor/fonts/cat-noto_sans_arabic-400-ext.woff2 +0 -0
  298. package/app/public/vendor/fonts/cat-noto_sans_arabic-400.woff2 +0 -0
  299. package/app/public/vendor/fonts/cat-noto_sans_devanagari-400-ext.woff2 +0 -0
  300. package/app/public/vendor/fonts/cat-noto_sans_devanagari-400.woff2 +0 -0
  301. package/app/public/vendor/fonts/cat-noto_sans_hebrew-400-ext.woff2 +0 -0
  302. package/app/public/vendor/fonts/cat-noto_sans_hebrew-400.woff2 +0 -0
  303. package/app/public/vendor/fonts/cat-noto_sans_jp-400-ext.woff2 +0 -0
  304. package/app/public/vendor/fonts/cat-noto_sans_jp-400.woff2 +0 -0
  305. package/app/public/vendor/fonts/cat-noto_sans_khmer-400-ext.woff2 +0 -0
  306. package/app/public/vendor/fonts/cat-noto_sans_khmer-400.woff2 +0 -0
  307. package/app/public/vendor/fonts/cat-noto_sans_kr-400-ext.woff2 +0 -0
  308. package/app/public/vendor/fonts/cat-noto_sans_kr-400.woff2 +0 -0
  309. package/app/public/vendor/fonts/cat-noto_sans_sc-400-ext.woff2 +0 -0
  310. package/app/public/vendor/fonts/cat-noto_sans_sc-400.woff2 +0 -0
  311. package/app/public/vendor/fonts/cat-noto_sans_thai-400-ext.woff2 +0 -0
  312. package/app/public/vendor/fonts/cat-noto_sans_thai-400.woff2 +0 -0
  313. package/app/public/vendor/fonts/cat-ole-400-ext.woff2 +0 -0
  314. package/app/public/vendor/fonts/cat-ole-400.woff2 +0 -0
  315. package/app/public/vendor/fonts/cat-pacifico-400-ext.woff2 +0 -0
  316. package/app/public/vendor/fonts/cat-pacifico-400.woff2 +0 -0
  317. package/app/public/vendor/fonts/cat-patrick_hand-400-ext.woff2 +0 -0
  318. package/app/public/vendor/fonts/cat-patrick_hand-400.woff2 +0 -0
  319. package/app/public/vendor/fonts/cat-petit_formal_script-400-ext.woff2 +0 -0
  320. package/app/public/vendor/fonts/cat-petit_formal_script-400.woff2 +0 -0
  321. package/app/public/vendor/fonts/cat-pixelify_sans-400-ext.woff2 +0 -0
  322. package/app/public/vendor/fonts/cat-pixelify_sans-400.woff2 +0 -0
  323. package/app/public/vendor/fonts/cat-plaster-400-ext.woff2 +0 -0
  324. package/app/public/vendor/fonts/cat-plaster-400.woff2 +0 -0
  325. package/app/public/vendor/fonts/cat-playwrite_ar_guides-400-0.woff2 +0 -0
  326. package/app/public/vendor/fonts/cat-playwrite_at-400-0.woff2 +0 -0
  327. package/app/public/vendor/fonts/cat-playwrite_at_guides-400-0.woff2 +0 -0
  328. package/app/public/vendor/fonts/cat-playwrite_au_nsw-400-0.woff2 +0 -0
  329. package/app/public/vendor/fonts/cat-playwrite_au_nsw_guides-400-0.woff2 +0 -0
  330. package/app/public/vendor/fonts/cat-playwrite_au_qld-400-0.woff2 +0 -0
  331. package/app/public/vendor/fonts/cat-playwrite_au_qld_guides-400-0.woff2 +0 -0
  332. package/app/public/vendor/fonts/cat-playwrite_au_sa-400-0.woff2 +0 -0
  333. package/app/public/vendor/fonts/cat-playwrite_au_sa_guides-400-0.woff2 +0 -0
  334. package/app/public/vendor/fonts/cat-playwrite_au_tas-400-0.woff2 +0 -0
  335. package/app/public/vendor/fonts/cat-playwrite_au_tas_guides-400-0.woff2 +0 -0
  336. package/app/public/vendor/fonts/cat-playwrite_au_vic-400-0.woff2 +0 -0
  337. package/app/public/vendor/fonts/cat-playwrite_au_vic_guides-400-0.woff2 +0 -0
  338. package/app/public/vendor/fonts/cat-playwrite_be_vlg-400-0.woff2 +0 -0
  339. package/app/public/vendor/fonts/cat-playwrite_be_vlg_guides-400-0.woff2 +0 -0
  340. package/app/public/vendor/fonts/cat-playwrite_be_wal-400-0.woff2 +0 -0
  341. package/app/public/vendor/fonts/cat-playwrite_be_wal_guides-400-0.woff2 +0 -0
  342. package/app/public/vendor/fonts/cat-playwrite_br_guides-400-0.woff2 +0 -0
  343. package/app/public/vendor/fonts/cat-playwrite_ca_guides-400-0.woff2 +0 -0
  344. package/app/public/vendor/fonts/cat-playwrite_cl_guides-400-0.woff2 +0 -0
  345. package/app/public/vendor/fonts/cat-playwrite_co_guides-400-0.woff2 +0 -0
  346. package/app/public/vendor/fonts/cat-playwrite_cu_guides-400-0.woff2 +0 -0
  347. package/app/public/vendor/fonts/cat-playwrite_cz-400-0.woff2 +0 -0
  348. package/app/public/vendor/fonts/cat-playwrite_cz_guides-400-0.woff2 +0 -0
  349. package/app/public/vendor/fonts/cat-playwrite_de_grund-400-0.woff2 +0 -0
  350. package/app/public/vendor/fonts/cat-playwrite_de_grund_guides-400-0.woff2 +0 -0
  351. package/app/public/vendor/fonts/cat-playwrite_de_la-400-0.woff2 +0 -0
  352. package/app/public/vendor/fonts/cat-playwrite_de_la_guides-400-0.woff2 +0 -0
  353. package/app/public/vendor/fonts/cat-playwrite_de_sas-400-0.woff2 +0 -0
  354. package/app/public/vendor/fonts/cat-playwrite_de_sas_guides-400-0.woff2 +0 -0
  355. package/app/public/vendor/fonts/cat-playwrite_de_va-400-0.woff2 +0 -0
  356. package/app/public/vendor/fonts/cat-playwrite_de_va_guides-400-0.woff2 +0 -0
  357. package/app/public/vendor/fonts/cat-playwrite_dk_loopet-400-0.woff2 +0 -0
  358. package/app/public/vendor/fonts/cat-playwrite_dk_loopet_guides-400-0.woff2 +0 -0
  359. package/app/public/vendor/fonts/cat-playwrite_dk_uloopet-400-0.woff2 +0 -0
  360. package/app/public/vendor/fonts/cat-playwrite_dk_uloopet_guides-400-0.woff2 +0 -0
  361. package/app/public/vendor/fonts/cat-playwrite_es_deco_guides-400-0.woff2 +0 -0
  362. package/app/public/vendor/fonts/cat-playwrite_es_guides-400-0.woff2 +0 -0
  363. package/app/public/vendor/fonts/cat-playwrite_fr_moderne-400-0.woff2 +0 -0
  364. package/app/public/vendor/fonts/cat-playwrite_fr_moderne_guides-400-0.woff2 +0 -0
  365. package/app/public/vendor/fonts/cat-playwrite_fr_trad-400-0.woff2 +0 -0
  366. package/app/public/vendor/fonts/cat-playwrite_fr_trad_guides-400-0.woff2 +0 -0
  367. package/app/public/vendor/fonts/cat-playwrite_gb_j_guides-400-0.woff2 +0 -0
  368. package/app/public/vendor/fonts/cat-playwrite_gb_s_guides-400-0.woff2 +0 -0
  369. package/app/public/vendor/fonts/cat-playwrite_hr-400-0.woff2 +0 -0
  370. package/app/public/vendor/fonts/cat-playwrite_hr_guides-400-0.woff2 +0 -0
  371. package/app/public/vendor/fonts/cat-playwrite_hr_lijeva-400-0.woff2 +0 -0
  372. package/app/public/vendor/fonts/cat-playwrite_hr_lijeva_guides-400-0.woff2 +0 -0
  373. package/app/public/vendor/fonts/cat-playwrite_hu-400-0.woff2 +0 -0
  374. package/app/public/vendor/fonts/cat-playwrite_hu_guides-400-0.woff2 +0 -0
  375. package/app/public/vendor/fonts/cat-playwrite_id-400-0.woff2 +0 -0
  376. package/app/public/vendor/fonts/cat-playwrite_id_guides-400-0.woff2 +0 -0
  377. package/app/public/vendor/fonts/cat-playwrite_ie-400-0.woff2 +0 -0
  378. package/app/public/vendor/fonts/cat-playwrite_ie_guides-400-0.woff2 +0 -0
  379. package/app/public/vendor/fonts/cat-playwrite_in-400-0.woff2 +0 -0
  380. package/app/public/vendor/fonts/cat-playwrite_in_guides-400-0.woff2 +0 -0
  381. package/app/public/vendor/fonts/cat-playwrite_is-400-0.woff2 +0 -0
  382. package/app/public/vendor/fonts/cat-playwrite_is_guides-400-0.woff2 +0 -0
  383. package/app/public/vendor/fonts/cat-playwrite_it_moderna-400-0.woff2 +0 -0
  384. package/app/public/vendor/fonts/cat-playwrite_it_moderna_guides-400-0.woff2 +0 -0
  385. package/app/public/vendor/fonts/cat-playwrite_it_trad-400-0.woff2 +0 -0
  386. package/app/public/vendor/fonts/cat-playwrite_it_trad_guides-400-0.woff2 +0 -0
  387. package/app/public/vendor/fonts/cat-playwrite_mx_guides-400-0.woff2 +0 -0
  388. package/app/public/vendor/fonts/cat-playwrite_ng_modern-400-0.woff2 +0 -0
  389. package/app/public/vendor/fonts/cat-playwrite_ng_modern_guides-400-0.woff2 +0 -0
  390. package/app/public/vendor/fonts/cat-playwrite_nl-400-0.woff2 +0 -0
  391. package/app/public/vendor/fonts/cat-playwrite_nl_guides-400-0.woff2 +0 -0
  392. package/app/public/vendor/fonts/cat-playwrite_no-400-0.woff2 +0 -0
  393. package/app/public/vendor/fonts/cat-playwrite_no_guides-400-0.woff2 +0 -0
  394. package/app/public/vendor/fonts/cat-playwrite_nz-400-0.woff2 +0 -0
  395. package/app/public/vendor/fonts/cat-playwrite_nz_basic-400-0.woff2 +0 -0
  396. package/app/public/vendor/fonts/cat-playwrite_nz_basic_guides-400-0.woff2 +0 -0
  397. package/app/public/vendor/fonts/cat-playwrite_nz_guides-400-0.woff2 +0 -0
  398. package/app/public/vendor/fonts/cat-playwrite_pe_guides-400-0.woff2 +0 -0
  399. package/app/public/vendor/fonts/cat-playwrite_pl-400-0.woff2 +0 -0
  400. package/app/public/vendor/fonts/cat-playwrite_pl_guides-400-0.woff2 +0 -0
  401. package/app/public/vendor/fonts/cat-playwrite_pt_guides-400-0.woff2 +0 -0
  402. package/app/public/vendor/fonts/cat-playwrite_ro-400-0.woff2 +0 -0
  403. package/app/public/vendor/fonts/cat-playwrite_ro_guides-400-0.woff2 +0 -0
  404. package/app/public/vendor/fonts/cat-playwrite_sk-400-0.woff2 +0 -0
  405. package/app/public/vendor/fonts/cat-playwrite_sk_guides-400-0.woff2 +0 -0
  406. package/app/public/vendor/fonts/cat-playwrite_tz-400-0.woff2 +0 -0
  407. package/app/public/vendor/fonts/cat-playwrite_tz_guides-400-0.woff2 +0 -0
  408. package/app/public/vendor/fonts/cat-playwrite_us_modern_guides-400-0.woff2 +0 -0
  409. package/app/public/vendor/fonts/cat-playwrite_us_trad_guides-400-0.woff2 +0 -0
  410. package/app/public/vendor/fonts/cat-playwrite_vn-400-0.woff2 +0 -0
  411. package/app/public/vendor/fonts/cat-playwrite_vn_guides-400-0.woff2 +0 -0
  412. package/app/public/vendor/fonts/cat-playwrite_za-400-0.woff2 +0 -0
  413. package/app/public/vendor/fonts/cat-playwrite_za_guides-400-0.woff2 +0 -0
  414. package/app/public/vendor/fonts/cat-potta_one-400-ext.woff2 +0 -0
  415. package/app/public/vendor/fonts/cat-potta_one-400.woff2 +0 -0
  416. package/app/public/vendor/fonts/cat-ranchers-400-ext.woff2 +0 -0
  417. package/app/public/vendor/fonts/cat-ranchers-400.woff2 +0 -0
  418. package/app/public/vendor/fonts/cat-ranga-400-ext.woff2 +0 -0
  419. package/app/public/vendor/fonts/cat-ranga-400.woff2 +0 -0
  420. package/app/public/vendor/fonts/cat-ranga-700-ext.woff2 +0 -0
  421. package/app/public/vendor/fonts/cat-ranga-700.woff2 +0 -0
  422. package/app/public/vendor/fonts/cat-risque-400-ext.woff2 +0 -0
  423. package/app/public/vendor/fonts/cat-risque-400.woff2 +0 -0
  424. package/app/public/vendor/fonts/cat-rowdies-400-ext.woff2 +0 -0
  425. package/app/public/vendor/fonts/cat-rowdies-400.woff2 +0 -0
  426. package/app/public/vendor/fonts/cat-rowdies-700-ext.woff2 +0 -0
  427. package/app/public/vendor/fonts/cat-rowdies-700.woff2 +0 -0
  428. package/app/public/vendor/fonts/cat-ruge_boogie-400-ext.woff2 +0 -0
  429. package/app/public/vendor/fonts/cat-ruge_boogie-400.woff2 +0 -0
  430. package/app/public/vendor/fonts/cat-ruslan_display-400-ext.woff2 +0 -0
  431. package/app/public/vendor/fonts/cat-ruslan_display-400.woff2 +0 -0
  432. package/app/public/vendor/fonts/cat-sacramento-400-ext.woff2 +0 -0
  433. package/app/public/vendor/fonts/cat-sacramento-400.woff2 +0 -0
  434. package/app/public/vendor/fonts/cat-sancreek-400-ext.woff2 +0 -0
  435. package/app/public/vendor/fonts/cat-sancreek-400.woff2 +0 -0
  436. package/app/public/vendor/fonts/cat-sankofa_display-400-ext.woff2 +0 -0
  437. package/app/public/vendor/fonts/cat-sankofa_display-400.woff2 +0 -0
  438. package/app/public/vendor/fonts/cat-sedgwick_ave_display-400-ext.woff2 +0 -0
  439. package/app/public/vendor/fonts/cat-sedgwick_ave_display-400.woff2 +0 -0
  440. package/app/public/vendor/fonts/cat-shantell_sans-400-ext.woff2 +0 -0
  441. package/app/public/vendor/fonts/cat-shantell_sans-400.woff2 +0 -0
  442. package/app/public/vendor/fonts/cat-smokum-400-ext.woff2 +0 -0
  443. package/app/public/vendor/fonts/cat-smokum-400.woff2 +0 -0
  444. package/app/public/vendor/fonts/cat-solitreo-400-ext.woff2 +0 -0
  445. package/app/public/vendor/fonts/cat-solitreo-400.woff2 +0 -0
  446. package/app/public/vendor/fonts/cat-spicy_rice-400-ext.woff2 +0 -0
  447. package/app/public/vendor/fonts/cat-spicy_rice-400.woff2 +0 -0
  448. package/app/public/vendor/fonts/cat-sriracha-400-ext.woff2 +0 -0
  449. package/app/public/vendor/fonts/cat-sriracha-400.woff2 +0 -0
  450. package/app/public/vendor/fonts/cat-srisakdi-400-ext.woff2 +0 -0
  451. package/app/public/vendor/fonts/cat-srisakdi-400.woff2 +0 -0
  452. package/app/public/vendor/fonts/cat-srisakdi-700-ext.woff2 +0 -0
  453. package/app/public/vendor/fonts/cat-srisakdi-700.woff2 +0 -0
  454. package/app/public/vendor/fonts/cat-stix_two_math-400-0.woff2 +0 -0
  455. package/app/public/vendor/fonts/cat-tillana-400-ext.woff2 +0 -0
  456. package/app/public/vendor/fonts/cat-tillana-400.woff2 +0 -0
  457. package/app/public/vendor/fonts/cat-tillana-700-ext.woff2 +0 -0
  458. package/app/public/vendor/fonts/cat-tillana-700.woff2 +0 -0
  459. package/app/public/vendor/fonts/cat-titan_one-400-ext.woff2 +0 -0
  460. package/app/public/vendor/fonts/cat-titan_one-400.woff2 +0 -0
  461. package/app/public/vendor/fonts/cat-yatra_one-400-ext.woff2 +0 -0
  462. package/app/public/vendor/fonts/cat-yatra_one-400.woff2 +0 -0
  463. package/app/public/vendor/fonts/cat-yomogi-400-ext.woff2 +0 -0
  464. package/app/public/vendor/fonts/cat-yomogi-400.woff2 +0 -0
  465. package/app/public/vendor/fonts/dmserifdisplay-400-ext.woff2 +0 -0
  466. package/app/public/vendor/fonts/dmserifdisplay-400.woff2 +0 -0
  467. package/app/public/vendor/fonts/domine-var-ext.woff2 +0 -0
  468. package/app/public/vendor/fonts/domine-var.woff2 +0 -0
  469. package/app/public/vendor/fonts/fondamento-400-ext.woff2 +0 -0
  470. package/app/public/vendor/fonts/fondamento-400.woff2 +0 -0
  471. package/app/public/vendor/fonts/fraunces-var-ext.woff2 +0 -0
  472. package/app/public/vendor/fonts/fraunces-var.woff2 +0 -0
  473. package/app/public/vendor/fonts/fredoka-var-ext.woff2 +0 -0
  474. package/app/public/vendor/fonts/fredoka-var.woff2 +0 -0
  475. package/app/public/vendor/fonts/inter-400.woff2 +0 -0
  476. package/app/public/vendor/fonts/inter-700.woff2 +0 -0
  477. package/app/public/vendor/fonts/jakarta-var-ext.woff2 +0 -0
  478. package/app/public/vendor/fonts/jakarta-var.woff2 +0 -0
  479. package/app/public/vendor/fonts/lato-400.woff2 +0 -0
  480. package/app/public/vendor/fonts/lato-700.woff2 +0 -0
  481. package/app/public/vendor/fonts/literata-400.woff2 +0 -0
  482. package/app/public/vendor/fonts/literata-700.woff2 +0 -0
  483. package/app/public/vendor/fonts/lora-var-ext.woff2 +0 -0
  484. package/app/public/vendor/fonts/lora-var.woff2 +0 -0
  485. package/app/public/vendor/fonts/merriweather-var-ext.woff2 +0 -0
  486. package/app/public/vendor/fonts/merriweather-var.woff2 +0 -0
  487. package/app/public/vendor/fonts/newsreader-400.woff2 +0 -0
  488. package/app/public/vendor/fonts/newsreader-700.woff2 +0 -0
  489. package/app/public/vendor/fonts/notosans-var-ext.woff2 +0 -0
  490. package/app/public/vendor/fonts/notosans-var.woff2 +0 -0
  491. package/app/public/vendor/fonts/nunito-var-ext.woff2 +0 -0
  492. package/app/public/vendor/fonts/nunito-var.woff2 +0 -0
  493. package/app/public/vendor/fonts/opendyslexic-400.woff2 +0 -0
  494. package/app/public/vendor/fonts/opensans-400.woff2 +0 -0
  495. package/app/public/vendor/fonts/opensans-700.woff2 +0 -0
  496. package/app/public/vendor/fonts/pinyon-400.woff2 +0 -0
  497. package/app/public/vendor/fonts/playfair-var-ext.woff2 +0 -0
  498. package/app/public/vendor/fonts/playfair-var.woff2 +0 -0
  499. package/app/public/vendor/fonts/pressstart-400.woff2 +0 -0
  500. package/app/public/vendor/fonts/quattro-400.woff2 +0 -0
  501. package/app/public/vendor/fonts/quattro-700.woff2 +0 -0
  502. package/app/public/vendor/fonts/quicksand-var-ext.woff2 +0 -0
  503. package/app/public/vendor/fonts/quicksand-var.woff2 +0 -0
  504. package/app/public/vendor/fonts/robotoflex-var-ext.woff2 +0 -0
  505. package/app/public/vendor/fonts/robotoflex-var.woff2 +0 -0
  506. package/app/public/vendor/fonts/sora-var-ext.woff2 +0 -0
  507. package/app/public/vendor/fonts/sora-var.woff2 +0 -0
  508. package/app/public/vendor/fonts/sourcesans-400.woff2 +0 -0
  509. package/app/public/vendor/fonts/sourcesans-700.woff2 +0 -0
  510. package/app/public/vendor/fonts/sourceserif-400.woff2 +0 -0
  511. package/app/public/vendor/fonts/sourceserif-700.woff2 +0 -0
  512. package/app/public/vendor/fonts/spacegrotesk-var-ext.woff2 +0 -0
  513. package/app/public/vendor/fonts/spacegrotesk-var.woff2 +0 -0
  514. package/app/public/vendor/fonts/spectral-400-ext.woff2 +0 -0
  515. package/app/public/vendor/fonts/spectral-400.woff2 +0 -0
  516. package/app/public/vendor/fonts/spectral-700-ext.woff2 +0 -0
  517. package/app/public/vendor/fonts/spectral-700.woff2 +0 -0
  518. package/app/public/vendor/fonts/teachers-var-ext.woff2 +0 -0
  519. package/app/public/vendor/fonts/teachers-var.woff2 +0 -0
  520. package/app/public/vendor/fonts/ubuntu-400-ext.woff2 +0 -0
  521. package/app/public/vendor/fonts/ubuntu-400.woff2 +0 -0
  522. package/app/public/vendor/fonts/ubuntu-700-ext.woff2 +0 -0
  523. package/app/public/vendor/fonts/ubuntu-700.woff2 +0 -0
  524. package/app/public/vendor/fonts/ufmag-400.woff2 +0 -0
  525. package/dist-pkg/platform/guide-intensity.d.ts +0 -39
  526. package/dist-pkg/platform/guide-intensity.js +0 -71
  527. package/dist-pkg/ui/latch-refusal.d.ts +0 -33
  528. package/dist-pkg/ui/latch-refusal.js +0 -60
@@ -31,8 +31,10 @@ const en = {
31
31
  'help.noKey': 'no key',
32
32
  'help.slide.tecla': 'Key {k}',
33
33
  'sr.libras.loading': 'The sign-language interpreter is still loading — try again in a moment.',
34
- 'sr.libras.on': 'Hello! The sign-language interpreter is on.',
34
+ 'sr.deaf.noSigning': 'No sign-language interpreter right now: the captions and the text stay on screen.',
35
+ 'sr.deaf.interpreter': 'Libras sign-language interpreter',
35
36
  'sr.eyes.needsInternet': 'Eye control has not reached this device yet: it downloads the first time the game opens with internet.',
37
+ 'sr.eyes.failed': 'Eye control could not start on this device.',
36
38
  // the eye control's words over the game (ADR-0213 §6): a region tells a preparing look which way to go, the opposite of itself
37
39
  'gaze.lookHere': 'Look here',
38
40
  'gaze.loading': 'Loading...',
@@ -44,6 +46,7 @@ const en = {
44
46
  'sr.face.ready': 'Ready: you can play with your face.',
45
47
  'sr.face.noCamera': 'Face control needs the camera, and it did not open. Allow the camera for this page.',
46
48
  'sr.face.needsInternet': 'Face control has not reached this device yet: it comes down the first time the game opens online.',
49
+ 'sr.face.failed': 'Face control could not start on this device.',
47
50
  'sr.face.stopped': 'Face control stopped getting pictures from the camera.',
48
51
  'sr.face.slow': 'Face control is slow on this device and may not answer.',
49
52
  'sr.eyes.lookMiddle': 'Look at the middle of the screen and keep your eyes still until I say ready.',
@@ -63,6 +66,13 @@ const en = {
63
66
  'hud.barra': '{nome}: {azuis} right first time, {verdes} with help, {vermelhos} not right',
64
67
  'hud.barra.sobe': 'the level goes up',
65
68
  'hud.barra.desce': 'the level goes down',
69
+ // The score in the HUD row is drawn as five digits (ADR-0238, ADR-0239); a listener hears the number itself, not the zeros.
70
+ 'hud.points': '{count} {name}',
71
+ // The session clock's accessible name (ADR-0236): the time left in words, never «0:45». Rewritten each whole minute.
72
+ 'clock.left': 'Play time: {minutes} minutes left',
73
+ 'clock.left.one': 'Play time: 1 minute left',
74
+ 'clock.over': 'Play time: over',
75
+ 'clock.label': 'TIME', // the small word over the clock's digits (ADR-0239)
66
76
  'pause.nivel': '📚 Level {n} · {nome}',
67
77
  'skip.toGame': 'Skip to the game',
68
78
  // Touch controls — the 9 slot labels, the 9 mappable actions (#touchcfg panel) and the announcements.
@@ -155,6 +165,17 @@ const en = {
155
165
  'input.standard': 'standard',
156
166
  'input.sticky': 'no holding needed',
157
167
  'scan.nothing': 'cancel',
168
+ // One-button scanning inside a menu: that menu's own steps (ADR-0218 erratum of 2026-09-26, interface log).
169
+ 'scan.menu.next': 'next',
170
+ 'scan.menu.confirm': 'confirm',
171
+ 'scan.menu.back': 'back',
172
+ 'scan.menu.previous': 'previous',
173
+ // ...and, on a control with a value, the sideways step (the interface log's entry on the sideways step).
174
+ 'scan.menu.increase': 'increase',
175
+ 'scan.menu.decrease': 'decrease',
176
+ // ...and the engine's two doors, offered in play after the game's own words (ADR-0218 §3).
177
+ 'scan.door.menus': 'menu',
178
+ 'scan.door.pause': 'pause',
158
179
  'input.scan': 'one button only',
159
180
  'icon.contrast': 'High contrast',
160
181
  'icon.cvd': 'Colour-blindness correction',
@@ -164,7 +185,7 @@ const en = {
164
185
  'icon.velocidade.valor': '{pct}%',
165
186
  'icon.blind.dica': 'Play by sound: audio navigation tells what the screen shows.',
166
187
  'icon.tts.dica': 'The game reads out loud what is written on the screen.',
167
- 'icon.libras.dica': 'A sign language interpreter shows in signs what the game says.',
188
+ 'icon.libras.dica': 'Sounds get captions, and the sonar calls a sign-language interpreter to sign what is on screen.',
168
189
  'icon.tea.dica': 'Makes the game calmer or silent, for those overloaded by stimuli.',
169
190
  'icon.altmove.dica': 'How your presses are read: the standard way; or one tap to turn on and another to turn off, with no holding; or with one button only, where the game shows one thing at a time and you press on the one you want.',
170
191
  'sr.icon.inputMode': 'How you press: {v}.',
@@ -183,9 +204,11 @@ const en = {
183
204
  'sr.voice.noMicrophone': 'Voice control needs the microphone, and it did not open. Allow the microphone for this page.',
184
205
  'sr.voice.failed': 'Voice control could not start on this device.',
185
206
  'sr.voice.needsInternet': 'Voice control has not reached this device yet: it comes down the first time the game opens online.',
207
+ 'sr.reading.failed': 'Reading aloud could not start in this language on this device.',
186
208
  'sr.hands.ready': 'Ready: you can play with hand gestures.',
187
209
  'sr.hands.noCamera': 'Gesture control needs the camera, and it did not open. Allow the camera for this page.',
188
210
  'sr.hands.needsInternet': 'Gesture control has not reached this device yet: it comes down the first time the game opens online.',
211
+ 'sr.hands.failed': 'Gesture control could not start on this device.',
189
212
  'sr.hands.stopped': 'Gesture control stopped getting pictures from the camera.',
190
213
  'sr.hands.slow': 'Gesture control is slow on this device and may not answer.',
191
214
  'icon.menu': 'Menu',
@@ -267,6 +290,8 @@ const en = {
267
290
  'pad.glyph.square': 'square',
268
291
  'pad.glyph.triangle': 'triangle',
269
292
  'pad.wiz.step': '{n} of {total} — press: {acao}',
293
+ 'pad.wiz.stepStart': '{n} of {total} — press the button you want as START (it pauses the game)',
294
+ 'pad.wiz.stepSelect': '{n} of {total} — press the button you want as SELECT (it opens the menus)',
270
295
  'pad.wiz.mapped': 'Mapped: {lista}',
271
296
  'pad.wiz.pressAny': 'Press ANY button on the controller you want to map.',
272
297
  'pad.wiz.detected': 'New controller detected: {id}. The game paused so you can set it up. RELEASE everything to start.',
@@ -312,6 +337,7 @@ const en = {
312
337
  'audio.noSystemVoices': '(no system voices)',
313
338
  'sr.tts.engineNoLanguage': 'This engine does not speak this language yet — for now, use the browser voice.',
314
339
  'sr.tts.noNeuralForLanguage': 'There is no neural voice for this language yet — carrying on with the browser voice, which speaks it.',
340
+ 'sr.tts.noVoiceForLanguage': 'This device has no voice in {language}: that part is not read aloud, but it stays on the screen.',
315
341
  'sr.tts.neuralNotBundled': 'This build of the game ships no neural voice — carrying on with the browser voice.',
316
342
  'sr.tts.downloading': 'Downloading the neural voice (needs the internet on the first use only)…',
317
343
  'sr.tts.ready': 'Neural voice ready, in {s} seconds.',
@@ -389,12 +415,12 @@ const en = {
389
415
  'audio.cat.earcons': 'Earcons',
390
416
  'audio.cat.tts': 'Narration',
391
417
  'audio.cat.sonar': 'Sonar',
392
- 'audio.cat.guard': 'Edge guard',
393
- 'audio.cat.guide': 'Audio cue / guide',
394
418
  'audio.cat.volumeDe': '{c} volume',
395
419
  'audio.navsound.grupo': 'Navigation sounds',
396
420
  'audio.cane': 'Cane tap spacing',
397
421
  'audio.cane.dica': 'How much ground between cane taps. One per block is calmer; every half block gives more detail.',
422
+ 'audio.cane.block': 'one per block',
423
+ 'audio.cane.halfBlock': 'every half block',
398
424
  'audio.menuindex': 'Spoken menu index',
399
425
  'audio.menuindex.dica': 'The screen reader says "3 of 7" as you move through a menu, so you know where you are without counting.',
400
426
  'audio.tts.dica': 'The game reads out loud what is written on the screen.',
@@ -422,6 +448,7 @@ const en = {
422
448
  'audio.voz': 'Voice',
423
449
  'audio.voz.nenhuma': 'No voice',
424
450
  'audio.semVoz': 'No voice speaks this language.',
451
+ 'audio.comVoz': 'A voice now speaks this language.',
425
452
  'sr.audio.voz': 'Voice: {nome}.',
426
453
  'audio.ttsTest': 'Test the voice',
427
454
  'audio.ttsTest.dica': 'Speaks a sample sentence with the voice chosen right now.',
@@ -442,58 +469,29 @@ const en = {
442
469
  'aac.letras': 'Capital letters',
443
470
  'aac.letras.dica': 'On: the whole game in capitals, the way early literacy usually starts. '
444
471
  + 'Off: capitals and lower case, everyday writing.',
445
- 'aac.emPreparo': 'in preparation',
446
- 'aac.aguardandoNegociacao': 'awaiting negotiation',
472
+ 'aac.noLicence': 'no licence',
447
473
  'aac.secao.agora': 'Available now',
448
474
  'aac.secao.agoraTag': 'works with no network',
449
- 'aac.secao.preparo': 'In preparation',
450
- 'aac.secao.preparoTag': 'licence settled; the work is ours',
451
- 'aac.secao.negociacao': 'Awaiting negotiation',
452
- 'aac.secao.negociacaoTag': 'the permission is not ours to give',
475
+ 'aac.section.pictograms': 'Pictograms',
476
+ 'aac.section.pictogramsTag': 'each one only with a licence',
453
477
  'sr.aac.escolha': 'Communication: {v}.',
454
478
  'sr.aac.reset': 'Communication restored to its default: uppercase letters, where literacy usually starts.',
455
479
  'pause.caa': 'Communication',
456
480
  'sr.aac.caixaAltaOn': 'Uppercase letters on: the whole game in capitals.',
457
481
  'sr.aac.caixaAltaOff': 'Uppercase letters off: capitals and lowercase.',
458
- 'sr.quiz.bemVindo': 'Quiz. Use the arrow keys to choose and Enter to answer.',
482
+ 'sr.quiz.bemVindo': 'Quiz. Use {mover} to choose and {responder} to answer.',
483
+ 'sr.quiz.bemVindo.soEscolher': 'Quiz. Use {mover} to choose.',
484
+ 'sr.quiz.bemVindo.soResponder': 'Quiz. Use {responder} to answer.',
485
+ 'sr.quiz.bemVindo.semTeclas': 'Quiz. Tap an answer to give it.',
486
+ 'sr.quiz.teclas.duas': '{a} and {b}',
459
487
  // The quiz's questions — keys, not sentences, so that changing the flag reaches the ACTIVITY and not only the
460
488
  // engine's frame (ADR-0225). A quiz is not a language subject, so nothing here is exempt from translating.
461
489
  'quiz.pageTitle': 'The Inclusionist — demo quiz',
462
- 'quiz.p1': 'Which animal lays eggs and has a beak?',
463
- 'quiz.p1.a': 'Cat',
464
- 'quiz.p1.b': 'Hen',
465
- 'quiz.p1.c': 'Horse',
466
- 'quiz.p1.d': 'Fish',
467
- 'quiz.p2': 'How many sides does a triangle have?',
468
- 'quiz.p2.a': 'Three',
469
- 'quiz.p2.b': 'Four',
470
- 'quiz.p2.c': 'Five',
471
- 'quiz.p2.d': 'Two',
472
- 'quiz.p3': 'Which of these is a fruit?',
473
- 'quiz.p3.a': 'Lettuce',
474
- 'quiz.p3.b': 'Carrot',
475
- 'quiz.p3.c': 'Banana',
476
- 'quiz.p3.d': 'Potato',
477
- 'quiz.pos.up': 'Up',
478
- 'quiz.pos.down': 'Down',
479
- 'quiz.pos.confirm': 'Confirm',
480
- 'quiz.comoJogar.ler': 'Read the question at the top of the screen.',
481
- 'quiz.comoJogar.escolher': 'Choose the answer with the arrows and confirm.',
482
- 'quiz.pos.back': 'Back',
483
- 'quiz.pos.sonar': 'Sonar',
484
- 'quiz.pos.falar': 'Say the answer',
490
+ 'quiz.carregando': 'Loading…',
485
491
  'quiz.ouvindo': 'I am listening. Say the answer.',
486
- 'quiz.naoEntendi': 'I heard «{texto}», which is none of the options. Say it again or choose with the arrows.',
487
492
  'quiz.ouviNada': 'I heard nothing. Say it again or choose with the arrows.',
488
493
  'quiz.semLeitura': 'This device cannot listen right now. Choose with the arrows.',
489
- 'quiz.resposta.certa': 'Right! {certa}.',
490
- 'quiz.resposta.errada': 'Not yet. The right answer is {certa}.',
491
- 'quiz.fim': 'Done! {n} out of {m}.',
492
494
  'quiz.alternativas': 'Options',
493
- 'quiz.acom.hints': 'Hints',
494
- 'quiz.acom.textPace': 'Text pace',
495
- 'quiz.acom.lexicalDifficulty': 'Word difficulty',
496
- 'quiz.acom.wordHighlight': 'Word highlight',
497
495
  'sr.nav.sonarFound': 'Sonar: {alvo} {lado}, {dist}.',
498
496
  'sr.nav.coin': 'coin',
499
497
  'sr.nav.target': 'target',
@@ -560,10 +558,6 @@ const en = {
560
558
  'sr.motor.easyOff': 'Easy Mode off.',
561
559
  'sr.motor.toggleMoveOn': 'No holding needed, on: one tap turns it on and another turns it off.',
562
560
  'sr.motor.toggleMoveOff': 'No holding needed, off.',
563
- 'alt.exigida.olhos': 'Gaze control needs tap-to-move to work.',
564
- 'alt.exigida.rosto': 'Face control needs tap-to-move to work.',
565
- 'alt.exigida.gestos': 'Gesture control needs tap-to-move to work.',
566
- 'alt.exigida.fala': 'Voice command needs tap-to-move to work.',
567
561
  'sr.motor.toggleRunOn': 'Run toggle on.',
568
562
  'sr.motor.toggleRunOff': 'Run toggle off.',
569
563
  // ===================== HELP (pause menu) + level label =====================
@@ -659,6 +653,7 @@ const en = {
659
653
  'pause.motivo.ajuda': 'This game has not said yet what each button does.',
660
654
  'pause.motivo.addplayer': 'The game decides how many players can play.',
661
655
  'pause.motivo.opcoesdojogo': 'This game has no options of its own.',
656
+ 'pause.motivo.caa': 'Menu disabled',
662
657
  // ===================== ARIA-LABELS FROM index.html =====================
663
658
  'a11y.communication': 'Communication: letters and symbols',
664
659
  'a11y.pauseMenu': 'Pause menu',
@@ -683,7 +678,6 @@ const en = {
683
678
  'font.group.arcade': 'Arcade',
684
679
  'font.desc.atkinson': 'made by the Braille Institute for people with low vision (the game default)',
685
680
  'font.desc.lexend': 'made to reduce visual stress and serve dyslexic readers (turns on the extra spacing)',
686
- 'font.desc.quattro': 'built to ease the eye strain of long hours on a screen',
687
681
  'font.desc.andika': 'based on Sassoon; the fruit of research into how children read and write',
688
682
  'font.desc.opendyslexic': 'Letters weighted at the bottom, so they do not flip upside down as you read.',
689
683
  'font.desc.fondamento': 'Pen calligraphy, for the handwriting activities.',
@@ -696,8 +690,9 @@ const en = {
696
690
  'font.desc.pw.cl': 'School cursive taught in Chile.',
697
691
  'font.desc.pw.co': 'School cursive taught in Colombia.',
698
692
  'font.desc.ronde': 'French ronde, the joined handwriting taught at school.',
699
- 'font.off.ronde': 'Install one of these three on the device: Ronde Script, OPTIFrench-Script or Merveille. '
700
- + 'They are free for personal use, which is why they cannot ship inside the game.',
693
+ 'font.notice.ronde': 'Install one of these three on the device: Ronde Script, OPTIFrench-Script or Merveille. '
694
+ + 'They are free for personal use, which is why they cannot ship inside the game. '
695
+ + 'Without them, the game shows Cookie: a similar joined hand, but not the ronde taught at school.',
701
696
  'font.desc.greatvibes': 'English calligraphy',
702
697
  'font.desc.pinyon': 'English calligraphy',
703
698
  'font.desc.ufcook': 'German blackletter',
@@ -32,8 +32,10 @@ const es = {
32
32
  'help.noKey': 'sin tecla',
33
33
  'help.slide.tecla': 'Tecla {k}',
34
34
  'sr.libras.loading': 'El intérprete de lengua de señas todavía está cargando — inténtalo de nuevo en un momento.',
35
- 'sr.libras.on': '¡Hola! El intérprete de lengua de señas está activado.',
35
+ 'sr.deaf.noSigning': 'Sin intérprete de lengua de señas ahora: los subtítulos y el texto siguen en la pantalla.',
36
+ 'sr.deaf.interpreter': 'Intérprete de Libras (lengua de señas brasileña)',
36
37
  'sr.eyes.needsInternet': 'El control con la mirada todavía no llegó a este aparato: se descarga la primera vez que el juego se abre con internet.',
38
+ 'sr.eyes.failed': 'El control con la mirada no pudo empezar en este aparato.',
37
39
  // the eye control's words over the game (ADR-0213 §6): a region tells a preparing look which way to go, the opposite of itself
38
40
  'gaze.lookHere': 'Mira aquí',
39
41
  'gaze.loading': 'Cargando...',
@@ -45,6 +47,7 @@ const es = {
45
47
  'sr.face.ready': 'Listo: ya puedes jugar con la cara.',
46
48
  'sr.face.noCamera': 'El control con la cara necesita la cámara, y no se abrió. Permite la cámara para esta página.',
47
49
  'sr.face.needsInternet': 'El control con la cara todavía no llegó a este dispositivo: baja la primera vez que el juego se abre con internet.',
50
+ 'sr.face.failed': 'El control con la cara no pudo empezar en este aparato.',
48
51
  'sr.face.stopped': 'El control con la cara dejó de recibir imágenes de la cámara.',
49
52
  'sr.face.slow': 'El control con la cara va lento en este dispositivo y puede no responder.',
50
53
  'sr.eyes.lookMiddle': 'Mira al centro de la pantalla y no muevas los ojos hasta que diga listo.',
@@ -64,6 +67,13 @@ const es = {
64
67
  'hud.barra': '{nome}: {azuis} a la primera, {verdes} con ayuda, {vermelhos} sin acertar',
65
68
  'hud.barra.sobe': 'el nivel sube',
66
69
  'hud.barra.desce': 'el nivel baja',
70
+ // The score in the HUD row is drawn as five digits (ADR-0238, ADR-0239); a listener hears the number itself, not the zeros.
71
+ 'hud.points': '{count} {name}',
72
+ // The session clock's accessible name (ADR-0236): the time left in words, never «0:45». Rewritten each whole minute.
73
+ 'clock.left': 'Tiempo de juego: quedan {minutes} minutos',
74
+ 'clock.left.one': 'Tiempo de juego: queda 1 minuto',
75
+ 'clock.over': 'Tiempo de juego: se acabó',
76
+ 'clock.label': 'TIEMPO', // the small word over the clock's digits (ADR-0239)
67
77
  'pause.nivel': '📚 Nivel {n} · {nome}',
68
78
  'skip.toGame': 'Saltar al juego',
69
79
  // Controles táctiles — las 9 posiciones, las 9 acciones asignables (panel #touchcfg) y los anuncios.
@@ -156,6 +166,17 @@ const es = {
156
166
  'input.standard': 'estándar',
157
167
  'input.sticky': 'no hace falta mantener',
158
168
  'scan.nothing': 'cancelar',
169
+ // One-button scanning inside a menu: that menu's own steps (ADR-0218 erratum of 2026-09-26, interface log).
170
+ 'scan.menu.next': 'siguiente',
171
+ 'scan.menu.confirm': 'confirmar',
172
+ 'scan.menu.back': 'volver',
173
+ 'scan.menu.previous': 'anterior',
174
+ // ...and, on a control with a value, the sideways step (the interface log's entry on the sideways step).
175
+ 'scan.menu.increase': 'aumentar',
176
+ 'scan.menu.decrease': 'disminuir',
177
+ // ...and the engine's two doors, offered in play after the game's own words (ADR-0218 §3).
178
+ 'scan.door.menus': 'menú',
179
+ 'scan.door.pause': 'pausar',
159
180
  'input.scan': 'un botón solo',
160
181
  'icon.contrast': 'Alto contraste',
161
182
  'icon.cvd': 'Corrección de daltonismo',
@@ -165,7 +186,7 @@ const es = {
165
186
  'icon.velocidade.valor': '{pct} %',
166
187
  'icon.blind.dica': 'Se juega por el sonido: la navegación sonora dice lo que muestra la pantalla.',
167
188
  'icon.tts.dica': 'El juego lee en voz alta lo que está escrito en la pantalla.',
168
- 'icon.libras.dica': 'Un intérprete de lengua de señas muestra en señas lo que dice el juego.',
189
+ 'icon.libras.dica': 'Los sonidos tienen subtítulos, y el sonar llama a un intérprete de lengua de señas para lo que está en la pantalla.',
169
190
  'icon.tea.dica': 'Deja el juego más tranquilo o en silencio, para quien se sobrecarga con estímulos.',
170
191
  'icon.altmove.dica': 'Cómo se leen tus pulsaciones: del modo estándar; o con un toque que activa y otro que desactiva, sin mantener; o con un botón solo, donde el juego muestra una cosa por vez y tú pulsas en la que quieres.',
171
192
  'sr.icon.inputMode': 'Cómo pulsar: {v}.',
@@ -184,9 +205,11 @@ const es = {
184
205
  'sr.voice.noMicrophone': 'El control por voz necesita el micrófono, y no se abrió. Permite el micrófono para esta página.',
185
206
  'sr.voice.failed': 'El comando de voz no pudo empezar en este aparato.',
186
207
  'sr.voice.needsInternet': 'El control por voz todavía no llegó a este aparato: baja la primera vez que el juego se abre con internet.',
208
+ 'sr.reading.failed': 'La lectura en voz alta no pudo empezar en este idioma en este aparato.',
187
209
  'sr.hands.ready': 'Listo: ya puedes jugar con gestos de las manos.',
188
210
  'sr.hands.noCamera': 'El control con gestos necesita la cámara, y no se abrió. Permite la cámara para esta página.',
189
211
  'sr.hands.needsInternet': 'El control con gestos todavía no llegó a este dispositivo: baja la primera vez que el juego se abre con internet.',
212
+ 'sr.hands.failed': 'El control con gestos no pudo empezar en este aparato.',
190
213
  'sr.hands.stopped': 'El control con gestos dejó de recibir imágenes de la cámara.',
191
214
  'sr.hands.slow': 'El control con gestos va lento en este dispositivo y puede no responder.',
192
215
  'icon.menu': 'Menú',
@@ -268,6 +291,8 @@ const es = {
268
291
  'pad.glyph.square': 'cuadrado',
269
292
  'pad.glyph.triangle': 'triángulo',
270
293
  'pad.wiz.step': '{n} de {total} — pulsa: {acao}',
294
+ 'pad.wiz.stepStart': '{n} de {total} — pulsa el botón que quieras como START (pausa el juego)',
295
+ 'pad.wiz.stepSelect': '{n} de {total} — pulsa el botón que quieras como SELECT (abre los menús)',
271
296
  'pad.wiz.mapped': 'Asignados: {lista}',
272
297
  'pad.wiz.pressAny': 'Pulsa CUALQUIER botón del mando que quieras configurar.',
273
298
  'pad.wiz.detected': 'Mando nuevo detectado: {id}. El juego se pausó para que puedas configurarlo. SUELTA todo para empezar.',
@@ -312,6 +337,7 @@ const es = {
312
337
  'audio.noSystemVoices': '(sin voces del sistema)',
313
338
  'sr.tts.engineNoLanguage': 'Este motor todavía no habla este idioma — por ahora, usa la voz del navegador.',
314
339
  'sr.tts.noNeuralForLanguage': 'Todavía no hay voz neuronal para este idioma — seguimos con la voz del navegador, que sí lo habla.',
340
+ 'sr.tts.noVoiceForLanguage': 'Este dispositivo no tiene voz en {language}: esa parte no se lee en voz alta, pero sigue en la pantalla.',
315
341
  'sr.tts.neuralNotBundled': 'Esta versión del juego no trae voz neuronal — seguimos con la voz del navegador.',
316
342
  'sr.tts.downloading': 'Descargando la voz neuronal (necesita internet solo en el 1.er uso)…',
317
343
  'sr.tts.ready': 'Voz neuronal lista, en {s} segundos.',
@@ -388,12 +414,12 @@ const es = {
388
414
  'audio.cat.earcons': 'Earcons',
389
415
  'audio.cat.tts': 'Narración',
390
416
  'audio.cat.sonar': 'Sonar',
391
- 'audio.cat.guard': 'Guarda de borde',
392
- 'audio.cat.guide': 'Pista / guía auditiva',
393
417
  'audio.cat.volumeDe': 'Volumen de {c}',
394
418
  'audio.navsound.grupo': 'Sonidos de navegación',
395
419
  'audio.cane': 'Golpe del bastón',
396
420
  'audio.cane.dica': 'Cada cuánto suelo golpea el bastón. Uno por bloque es más calmo; cada medio bloque da más detalle.',
421
+ 'audio.cane.block': 'uno por bloque',
422
+ 'audio.cane.halfBlock': 'cada medio bloque',
397
423
  'audio.menuindex': 'Índice hablado de los menús',
398
424
  'audio.menuindex.dica': 'El lector de pantalla dice "3 de 7" al recorrer un menú, para saber dónde se está sin contar.',
399
425
  'audio.tts.dica': 'El juego lee en voz alta lo que está escrito en la pantalla.',
@@ -421,6 +447,7 @@ const es = {
421
447
  'audio.voz': 'Voz de narración',
422
448
  'audio.voz.nenhuma': 'Ninguna voz',
423
449
  'audio.semVoz': 'No hay ninguna voz que hable este idioma.',
450
+ 'audio.comVoz': 'Ahora hay una voz que habla este idioma.',
424
451
  'sr.audio.voz': 'Voz de narración: {nome}.',
425
452
  'audio.ttsTest': 'Probar la voz',
426
453
  'audio.ttsTest.dica': 'Dice una frase de ejemplo con la voz elegida ahora.',
@@ -441,58 +468,29 @@ const es = {
441
468
  'aac.letras': 'Letras mayúsculas',
442
469
  'aac.letras.dica': 'Encendido: todo el juego en mayúsculas, como suele empezar la alfabetización. '
443
470
  + 'Apagado: mayúsculas y minúsculas, la escritura de cada día.',
444
- 'aac.emPreparo': 'en preparación',
445
- 'aac.aguardandoNegociacao': 'esperando negociación',
471
+ 'aac.noLicence': 'sin licencia',
446
472
  'aac.secao.agora': 'Disponible ahora',
447
473
  'aac.secao.agoraTag': 'funciona sin red',
448
- 'aac.secao.preparo': 'En preparación',
449
- 'aac.secao.preparoTag': 'licencia resuelta; falta el trabajo',
450
- 'aac.secao.negociacao': 'Esperando negociación',
451
- 'aac.secao.negociacaoTag': 'el permiso no es nuestro',
474
+ 'aac.section.pictograms': 'Pictogramas',
475
+ 'aac.section.pictogramsTag': 'cada uno solo con licencia',
452
476
  'sr.aac.escolha': 'Comunicación: {v}.',
453
477
  'sr.aac.reset': 'Comunicación restaurada a su valor predeterminado: letras mayúsculas, donde suele comenzar la alfabetización.',
454
478
  'pause.caa': 'Comunicación',
455
479
  'sr.aac.caixaAltaOn': 'Letras mayúsculas activadas: todo el juego en mayúsculas.',
456
480
  'sr.aac.caixaAltaOff': 'Letras mayúsculas desactivadas: mayúsculas y minúsculas.',
457
- 'sr.quiz.bemVindo': 'Cuestionario. Use las flechas para elegir y Enter para responder.',
481
+ 'sr.quiz.bemVindo': 'Cuestionario. Use {mover} para elegir y {responder} para responder.',
482
+ 'sr.quiz.bemVindo.soEscolher': 'Cuestionario. Use {mover} para elegir.',
483
+ 'sr.quiz.bemVindo.soResponder': 'Cuestionario. Use {responder} para responder.',
484
+ 'sr.quiz.bemVindo.semTeclas': 'Cuestionario. Toca una respuesta para darla.',
485
+ 'sr.quiz.teclas.duas': '{a} y {b}',
458
486
  // Las preguntas del quiz — claves, no frases, para que cambiar la bandera alcance la ACTIVIDAD y no sólo el
459
487
  // marco del motor (ADR-0225). Un quiz no es una materia de idioma: nada de esto queda sin traducir.
460
488
  'quiz.pageTitle': 'The Inclusionist — cuestionario de demostración',
461
- 'quiz.p1': '¿Qué animal pone huevos y tiene pico?',
462
- 'quiz.p1.a': 'Gato',
463
- 'quiz.p1.b': 'Gallina',
464
- 'quiz.p1.c': 'Caballo',
465
- 'quiz.p1.d': 'Pez',
466
- 'quiz.p2': '¿Cuántos lados tiene un triángulo?',
467
- 'quiz.p2.a': 'Tres',
468
- 'quiz.p2.b': 'Cuatro',
469
- 'quiz.p2.c': 'Cinco',
470
- 'quiz.p2.d': 'Dos',
471
- 'quiz.p3': '¿Cuál de estas es una fruta?',
472
- 'quiz.p3.a': 'Lechuga',
473
- 'quiz.p3.b': 'Zanahoria',
474
- 'quiz.p3.c': 'Banana',
475
- 'quiz.p3.d': 'Papa',
476
- 'quiz.pos.up': 'Arriba',
477
- 'quiz.pos.down': 'Abajo',
478
- 'quiz.pos.confirm': 'Confirmar',
479
- 'quiz.comoJogar.ler': 'Lee la pregunta arriba de la pantalla.',
480
- 'quiz.comoJogar.escolher': 'Elige la respuesta con las flechas y confirma.',
481
- 'quiz.pos.back': 'Volver',
482
- 'quiz.pos.sonar': 'Sonar',
483
- 'quiz.pos.falar': 'Decir la respuesta',
489
+ 'quiz.carregando': 'Cargando…',
484
490
  'quiz.ouvindo': 'Estoy escuchando. Di la respuesta.',
485
- 'quiz.naoEntendi': 'Escuché «{texto}», que no es ninguna de las alternativas. Dilo otra vez o elige con las flechas.',
486
491
  'quiz.ouviNada': 'No escuché nada. Dilo otra vez o elige con las flechas.',
487
492
  'quiz.semLeitura': 'Este aparato no puede escuchar ahora. Elige con las flechas.',
488
- 'quiz.resposta.certa': '¡Correcto! {certa}.',
489
- 'quiz.resposta.errada': 'Todavía no. La respuesta correcta es {certa}.',
490
- 'quiz.fim': '¡Fin! {n} de {m}.',
491
493
  'quiz.alternativas': 'Alternativas',
492
- 'quiz.acom.hints': 'Pistas',
493
- 'quiz.acom.textPace': 'Ritmo del texto',
494
- 'quiz.acom.lexicalDifficulty': 'Dificultad de las palabras',
495
- 'quiz.acom.wordHighlight': 'Resaltado de palabras',
496
494
  'sr.nav.sonarFound': 'Sonar: {alvo} {lado}, {dist}.',
497
495
  'sr.nav.coin': 'moneda',
498
496
  'sr.nav.target': 'objetivo',
@@ -559,10 +557,6 @@ const es = {
559
557
  'sr.motor.easyOff': 'Modo Fácil desactivado.',
560
558
  'sr.motor.toggleMoveOn': 'No hace falta mantener, activado: un toque lo activa y otro lo desactiva.',
561
559
  'sr.motor.toggleMoveOff': 'No hace falta mantener, desactivado.',
562
- 'alt.exigida.olhos': 'El control por mirada necesita el movimiento por alternancia para funcionar.',
563
- 'alt.exigida.rosto': 'El control por rostro necesita el movimiento por alternancia para funcionar.',
564
- 'alt.exigida.gestos': 'Los gestos necesitan el movimiento por alternancia para funcionar.',
565
- 'alt.exigida.fala': 'El comando de voz necesita el movimiento por alternancia para funcionar.',
566
560
  'sr.motor.toggleRunOn': 'Alternancia de correr activada.',
567
561
  'sr.motor.toggleRunOff': 'Alternancia de correr desactivada.',
568
562
  // ===================== AYUDA (menú de pausa) + etiqueta de nivel =====================
@@ -656,6 +650,7 @@ const es = {
656
650
  'pause.motivo.ajuda': 'Este juego todavía no dijo qué hace cada botón.',
657
651
  'pause.motivo.addplayer': 'Es el juego quien decide cuántos jugadores pueden jugar.',
658
652
  'pause.motivo.opcoesdojogo': 'Este juego no tiene opciones propias.',
653
+ 'pause.motivo.caa': 'Menú deshabilitado',
659
654
  // ===================== ARIA-LABEL DEL index.html =====================
660
655
  'a11y.communication': 'Comunicación: letras y símbolos',
661
656
  'a11y.pauseMenu': 'Menú de pausa',
@@ -680,7 +675,6 @@ const es = {
680
675
  'font.group.arcade': 'Arcade',
681
676
  'font.desc.atkinson': 'hecha por el Braille Institute para personas con baja visión (la predeterminada del juego)',
682
677
  'font.desc.lexend': 'hecha para reducir el estrés visual y atender a personas disléxicas (activa el espaciado extra)',
683
- 'font.desc.quattro': 'creada para reducir la fatiga visual de quien pasa mucho tiempo ante la pantalla',
684
678
  'font.desc.andika': 'basada en la Sassoon; fruto de la investigación sobre cómo leen y escriben los niños',
685
679
  'font.desc.opendyslexic': 'Letras con la base más pesada, para que no se den vuelta al leer.',
686
680
  'font.desc.fondamento': 'Caligráfica de pluma, para las actividades de escritura a mano.',
@@ -693,8 +687,9 @@ const es = {
693
687
  'font.desc.pw.cl': 'Cursiva escolar de Chile.',
694
688
  'font.desc.pw.co': 'Cursiva escolar de Colombia.',
695
689
  'font.desc.ronde': 'Ronde francesa, la letra ligada que se enseña en la escuela.',
696
- 'font.off.ronde': 'Instale en el dispositivo una de estas tres: Ronde Script, OPTIFrench-Script o Merveille. '
697
- + 'Son gratuitas para uso personal, y por eso no pueden venir dentro del juego.',
690
+ 'font.notice.ronde': 'Instale en el dispositivo una de estas tres: Ronde Script, OPTIFrench-Script o Merveille. '
691
+ + 'Son gratuitas para uso personal, y por eso no pueden venir dentro del juego. '
692
+ + 'Sin ellas, el juego muestra Cookie: una letra ligada parecida, pero que no es la ronde de la escuela.',
698
693
  'font.desc.greatvibes': 'caligráfica inglesa',
699
694
  'font.desc.pinyon': 'caligráfica inglesa',
700
695
  'font.desc.ufcook': 'blackletter alemana',