@jjlmoya/utils-science 1.50.0 → 1.52.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 (338) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/es.ts +3 -4
  3. package/src/category/i18n/fr.ts +2 -2
  4. package/src/category/i18n/it.ts +2 -2
  5. package/src/category/i18n/pt.ts +2 -2
  6. package/src/category/index.ts +25 -25
  7. package/src/components/PreviewNavSidebar.astro +1 -1
  8. package/src/components/PreviewToolbar.astro +1 -1
  9. package/src/data.ts +1 -1
  10. package/src/env.d.ts +1 -1
  11. package/src/layouts/PreviewLayout.astro +1 -1
  12. package/src/pages/index.astro +1 -1
  13. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  14. package/src/tests/category_seo_quality.test.ts +76 -0
  15. package/src/tests/faq_count.test.ts +19 -19
  16. package/src/tests/i18n_coverage.test.ts +36 -36
  17. package/src/tests/mocks/astro_mock.js +1 -1
  18. package/src/tests/no_h1_in_components.test.ts +1 -1
  19. package/src/tests/script_density.test.ts +94 -94
  20. package/src/tests/seo_length.test.ts +24 -24
  21. package/src/tests/seo_parity.test.ts +5 -5
  22. package/src/tests/seo_translation_completeness.test.ts +76 -0
  23. package/src/tests/seo_wellformed_export.test.ts +65 -0
  24. package/src/tests/spanish_leakage.test.ts +175 -153
  25. package/src/tool/asteroid-impact/component.astro +251 -251
  26. package/src/tool/asteroid-impact/helpers.ts +17 -17
  27. package/src/tool/asteroid-impact/i18n/de.ts +2 -2
  28. package/src/tool/asteroid-impact/i18n/en.ts +2 -2
  29. package/src/tool/asteroid-impact/i18n/es.ts +2 -2
  30. package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
  31. package/src/tool/asteroid-impact/i18n/id.ts +2 -2
  32. package/src/tool/asteroid-impact/i18n/it.ts +2 -2
  33. package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
  34. package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
  35. package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
  36. package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
  37. package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
  38. package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
  39. package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
  40. package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
  41. package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
  42. package/src/tool/asteroid-impact/script.ts +262 -262
  43. package/src/tool/asteroid-impact/seo.astro +15 -15
  44. package/src/tool/asteroid-impact/ui.ts +69 -69
  45. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
  46. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
  47. package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
  48. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
  49. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
  50. package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
  51. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
  52. package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
  53. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
  54. package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
  55. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
  56. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
  57. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
  58. package/src/tool/cellular-renewal/component.astro +126 -126
  59. package/src/tool/cellular-renewal/i18n/de.ts +1 -1
  60. package/src/tool/cellular-renewal/i18n/en.ts +1 -1
  61. package/src/tool/cellular-renewal/i18n/es.ts +1 -1
  62. package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
  63. package/src/tool/cellular-renewal/i18n/id.ts +1 -1
  64. package/src/tool/cellular-renewal/i18n/it.ts +1 -1
  65. package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
  66. package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
  67. package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
  68. package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
  69. package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
  70. package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
  71. package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
  72. package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
  73. package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
  74. package/src/tool/cellular-renewal/seo.astro +15 -15
  75. package/src/tool/colony-counter/i18n/de.ts +1 -1
  76. package/src/tool/colony-counter/i18n/en.ts +1 -1
  77. package/src/tool/colony-counter/i18n/es.ts +1 -1
  78. package/src/tool/colony-counter/i18n/fr.ts +1 -1
  79. package/src/tool/colony-counter/i18n/id.ts +1 -1
  80. package/src/tool/colony-counter/i18n/it.ts +1 -1
  81. package/src/tool/colony-counter/i18n/ja.ts +1 -1
  82. package/src/tool/colony-counter/i18n/ko.ts +1 -1
  83. package/src/tool/colony-counter/i18n/nl.ts +1 -1
  84. package/src/tool/colony-counter/i18n/pl.ts +1 -1
  85. package/src/tool/colony-counter/i18n/pt.ts +1 -1
  86. package/src/tool/colony-counter/i18n/ru.ts +1 -1
  87. package/src/tool/colony-counter/i18n/sv.ts +1 -1
  88. package/src/tool/colony-counter/i18n/tr.ts +1 -1
  89. package/src/tool/colony-counter/i18n/zh.ts +1 -1
  90. package/src/tool/colony-counter/seo.astro +15 -15
  91. package/src/tool/conway-life-rule-lab/component.astro +1 -1
  92. package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
  93. package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
  94. package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
  95. package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
  96. package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
  97. package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
  98. package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
  99. package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
  100. package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
  101. package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
  102. package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
  103. package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
  104. package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
  105. package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
  106. package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
  107. package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
  108. package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
  109. package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
  110. package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
  111. package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
  112. package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
  113. package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
  114. package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
  115. package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
  116. package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
  117. package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
  118. package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
  119. package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
  120. package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
  121. package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
  122. package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
  123. package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
  124. package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
  125. package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
  126. package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
  127. package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
  128. package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
  129. package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
  130. package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
  131. package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
  132. package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
  133. package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
  134. package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
  135. package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
  136. package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
  137. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
  138. package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
  139. package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
  140. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
  141. package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
  142. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
  143. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
  144. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
  145. package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
  146. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
  147. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
  148. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
  149. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
  150. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
  151. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
  152. package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
  153. package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
  154. package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
  155. package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
  156. package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
  157. package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
  158. package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
  159. package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
  160. package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
  161. package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
  162. package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
  163. package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
  164. package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
  165. package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
  166. package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
  167. package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
  168. package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
  169. package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
  170. package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
  171. package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
  172. package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
  173. package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
  174. package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
  175. package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
  176. package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
  177. package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
  178. package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
  179. package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
  180. package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
  181. package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
  182. package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
  183. package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
  184. package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
  185. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
  186. package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
  187. package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
  188. package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
  189. package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
  190. package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
  191. package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
  192. package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
  193. package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
  194. package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
  195. package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
  196. package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
  197. package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
  198. package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
  199. package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
  200. package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
  201. package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
  202. package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
  203. package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
  204. package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
  205. package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
  206. package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
  207. package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
  208. package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
  209. package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
  210. package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
  211. package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
  212. package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
  213. package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
  214. package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
  215. package/src/tool/microwave-detector/component.astro +238 -238
  216. package/src/tool/microwave-detector/i18n/de.ts +1 -1
  217. package/src/tool/microwave-detector/i18n/en.ts +1 -1
  218. package/src/tool/microwave-detector/i18n/es.ts +1 -1
  219. package/src/tool/microwave-detector/i18n/fr.ts +1 -1
  220. package/src/tool/microwave-detector/i18n/id.ts +1 -1
  221. package/src/tool/microwave-detector/i18n/it.ts +1 -1
  222. package/src/tool/microwave-detector/i18n/ja.ts +1 -1
  223. package/src/tool/microwave-detector/i18n/ko.ts +1 -1
  224. package/src/tool/microwave-detector/i18n/nl.ts +1 -1
  225. package/src/tool/microwave-detector/i18n/pl.ts +1 -1
  226. package/src/tool/microwave-detector/i18n/pt.ts +1 -1
  227. package/src/tool/microwave-detector/i18n/ru.ts +1 -1
  228. package/src/tool/microwave-detector/i18n/sv.ts +1 -1
  229. package/src/tool/microwave-detector/i18n/tr.ts +1 -1
  230. package/src/tool/microwave-detector/i18n/zh.ts +1 -1
  231. package/src/tool/microwave-detector/seo.astro +15 -15
  232. package/src/tool/natural-selection-drift/component.astro +135 -135
  233. package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
  234. package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
  235. package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
  236. package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
  237. package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
  238. package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
  239. package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
  240. package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
  241. package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
  242. package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
  243. package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
  244. package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
  245. package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
  246. package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
  247. package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
  248. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
  249. package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
  250. package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
  251. package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
  252. package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
  253. package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
  254. package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
  255. package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
  256. package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
  257. package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
  258. package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
  259. package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
  260. package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
  261. package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
  262. package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
  263. package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
  264. package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
  265. package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
  266. package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
  267. package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
  268. package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
  269. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
  270. package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
  271. package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
  272. package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
  273. package/src/tool/radioactive-decay/i18n/de.ts +168 -164
  274. package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
  275. package/src/tool/radioactive-decay/i18n/id.ts +169 -165
  276. package/src/tool/radioactive-decay/i18n/it.ts +76 -74
  277. package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
  278. package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
  279. package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
  280. package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
  281. package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
  282. package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
  283. package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
  284. package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
  285. package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
  286. package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
  287. package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
  288. package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
  289. package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
  290. package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
  291. package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
  292. package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
  293. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
  294. package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
  295. package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
  296. package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
  297. package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
  298. package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
  299. package/src/tool/simulation-probability/component.astro +138 -138
  300. package/src/tool/simulation-probability/i18n/de.ts +1 -1
  301. package/src/tool/simulation-probability/i18n/en.ts +1 -1
  302. package/src/tool/simulation-probability/i18n/es.ts +1 -1
  303. package/src/tool/simulation-probability/i18n/fr.ts +1 -1
  304. package/src/tool/simulation-probability/i18n/id.ts +1 -1
  305. package/src/tool/simulation-probability/i18n/it.ts +1 -1
  306. package/src/tool/simulation-probability/i18n/ja.ts +1 -1
  307. package/src/tool/simulation-probability/i18n/ko.ts +1 -1
  308. package/src/tool/simulation-probability/i18n/nl.ts +1 -1
  309. package/src/tool/simulation-probability/i18n/pl.ts +1 -1
  310. package/src/tool/simulation-probability/i18n/pt.ts +1 -1
  311. package/src/tool/simulation-probability/i18n/ru.ts +1 -1
  312. package/src/tool/simulation-probability/i18n/sv.ts +1 -1
  313. package/src/tool/simulation-probability/i18n/tr.ts +1 -1
  314. package/src/tool/simulation-probability/i18n/zh.ts +1 -1
  315. package/src/tool/simulation-probability/seo.astro +15 -15
  316. package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
  317. package/src/tool/temperature-timeline/i18n/de.ts +2 -1
  318. package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
  319. package/src/tool/temperature-timeline/i18n/it.ts +142 -141
  320. package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
  321. package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
  322. package/src/tool/three-body-problem/app.ts +4 -4
  323. package/src/tool/three-body-problem/component.astro +6 -6
  324. package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
  325. package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
  326. package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
  327. package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
  328. package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
  329. package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
  330. package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
  331. package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
  332. package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
  333. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
  334. package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
  335. package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
  336. package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
  337. package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
  338. package/src/types.ts +1 -1
@@ -1,347 +1,347 @@
1
- import { bibliography } from '../bibliography';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- const slug = 'epidemi-sir-simulator';
5
- const title = 'Epidemi SIR simulator';
6
- const description = 'Utforska smittspridning med en interaktiv SIR-modell som justerar R0, dödlighet, vaccination, smittsam period, toppbelastning och transmissionskurvor i realtid.';
7
-
8
- const howTo = [
9
- {
10
- name: 'Stall in reproduktionstalet',
11
- text: 'Flytta R0-reglaget för att visa hur manga sekundara infektioner en smittsam person skulle orsaka i en helt mottaglig population.',
12
- },
13
- {
14
- name: 'Lagg till vaccination och vaccinverkningsgrad',
15
- text: 'Oka vaccinationstackningen eller verkningsgraden för att ta bort skyddade personer från den mottagliga poolen och sanka det effektiva reproduktionstalet.',
16
- },
17
- {
18
- name: 'Justera dödlighet och smittsam period',
19
- text: 'Andra dodlighetsprocenten och antalet smittsamma dagar för att se hur allvarliga utfall och kurvans tidsforlopp paverkas.',
20
- },
21
- {
22
- name: 'Las av SIR-kurvorna',
23
- text: 'Anvand diagrammet och daginspektoren för att jamfora kurvor för mottagliga, smittade, aterhamtade och beraknade dödsfall under det simulerade utbrottet.',
24
- },
25
- ];
26
-
27
- const faq = [
28
- {
29
- question: 'Vad visar en SIR-modell?',
30
- answer: 'En SIR-modell delar upp en population i mottagliga, smittade och aterhamtade grupper. Den uppskattar hur manniskor forflyttar sig mellan dessa grupper över tid nar smittspridning och aterhamtning sker.',
31
- },
32
- {
33
- question: 'Hur forandrar vaccination kurvan?',
34
- answer: 'Vaccination minskar den mottagliga populationen nar den forhindrar infektion. I denna simulator sanker effektiv vaccination det effektiva reproduktionstalet och kan minska eller fordroja smitt-toppen.',
35
- },
36
- {
37
- question: 'Ar R0 samma sak som Re?',
38
- answer: 'Nej. R0 beskriver smittspridning i en helt mottaglig population. Re ar det effektiva reproduktionstalet efter att immunitet, vaccination eller beteendeforandringar har minskat antalet personer som kan smittas.',
39
- },
40
- {
41
- question: 'Varfor nar den smittade kurvan en topp och faller sedan?',
42
- answer: 'Den smittade kurvan faller nar varje smittsam person genererar farre nya infektioner an antalet personer som lamnar den smittade gruppen genom aterhamtning eller död. Minskad mottaglighet ar den framsta drivkraften i en grundläggande SIR-modell.',
43
- },
44
- {
45
- question: 'Kan detta forutsaga ett verkligt epidemiforlopp?',
46
- answer: 'Det ar ett utbildnings- och scenariosverktyg, inte en prognos. Verkliga utbrott kraver åldersstruktur, kontaktnatverk, geografi, rapporteringsforseningar, forandrat beteende, varianter, avtagande immunitet och kalibrerade data.',
47
- },
48
- {
49
- question: 'Vad ar skillnaden mellan attackrate och topp smittade?',
50
- answer: 'Attackrate mater den totala andelen av befolkningen som nagonsin smittas under utbrottet. Topp smittade mater det maximala antalet samtidigt smittsamma personer vid en given tidpunkt. En lag topp garanterar inte en lag attackrate och vice versa.',
51
- },
52
- {
53
- question: 'Vad innebar Re under 1 visuellt?',
54
- answer: 'Nar Re faller under 1 genererar varje smittsam person i genomsnitt farre an en ny infektion. I diagrammet stiger den smittade kurvan aldrig brant och kan minska omedelbart från startfrot, vilket betyder att utbrottet inte kan upprathalla sig sjalvt.',
55
- },
56
- {
57
- question: 'Hur paverkar den smittsamma perioden utbrottet?',
58
- answer: 'En längre smittsam period forlanger tiden under vilken varje smittad person kan överföra patogenen. Detta stracker utbrottets tidslinje, fordrojer toppen och kan för samma R0 ge en bredare kurva med lagre topphojd.',
59
- },
60
- {
61
- question: 'Varfor paverkar inte dödligheten den smittade kurvan?',
62
- answer: 'I denna SIR-modell paverkar dödlighet endast dodsantalet som forgrenas från den aterhamtade gruppen. Det aterkopplas inte till smittspridning eftersom dodsfal och aterhamtning båda tar bort personer från den smittsamma poolen i samma takt.',
63
- },
64
- {
65
- question: 'Vad ar troskeln för flockimmunitet?',
66
- answer: 'Troskeln för flockimmunitet ar den andel av befolkningen som maste vara immun för att Re ska falla under 1. Den approximeras som 1 - 1/R0. För massling med R0 runt 12 ar troskeln över 91%. För sasongsinfluensa med R0 runt 1,3 ar troskeln nara 23%.',
67
- },
68
- ];
69
-
70
- export const content: ToolLocaleContent = {
71
- slug,
72
- title,
73
- description,
74
- ui: {
75
- liveScenario: 'Live epidemiscenario',
76
- curveChart: 'SIR-transmissionskurvor',
77
- inspectDay: 'Inspektera simuleringsdag',
78
- legend: 'Kurvforklaring',
79
- susceptible: 'Mottagliga',
80
- infected: 'Smittade',
81
- recovered: 'Aterhamtade eller immuna',
82
- deaths: 'Dodsfal',
83
- controls: 'Epidemikontroller',
84
- modelName: 'Fackmodell',
85
- peakInfected: 'Topp smittade',
86
- peakDay: 'Toppdag',
87
- attackRate: 'Attackrate',
88
- estimatedDeaths: 'Beraknade dodsfal',
89
- r0: 'Grundlaggande reproduktionstal R0',
90
- lethality: 'Dodlighet',
91
- vaccination: 'Vaccinationstackning',
92
- vaccineEffectiveness: 'Vaccinverkningsgrad',
93
- infectiousDays: 'Smittsam period',
94
- initialInfected: 'Initialt smittade',
95
- dayLabel: 'Dag',
96
- daysUnit: 'dagar',
97
- infectiousLabel: 'smittsamma',
98
- reLabel: 'Re',
99
- },
100
- seo: [
101
- {
102
- type: 'title',
103
- text: 'Epidemi SIR-simulator för R0, vaccination, dödlighet och transmissionskurvor',
104
- level: 2,
105
- },
106
- {
107
- type: 'paragraph',
108
- html: 'Denna epidemi SIR-simulator later dig utforska hur en patogen sprids genom en population nar mottagliga personer smittas och sedan lamnar den smittsamma gruppen genom aterhamtning eller död. Den ar utformad för studenter, vetenskapskommunikatorer, folkhalsointresserade och alla som vill ha en snabb visuell forklaring till varfor sma förändringar i smittspridning eller immunitet kan omforma ett utbrott.',
109
- },
110
- {
111
- type: 'paragraph',
112
- html: 'De interaktiva reglagen fokuserar pa de variabler man oftast vill testa: <strong>R0</strong>, dödlighet, vaccinationstackning, vaccinverkningsgrad, smittsam period och initial andel smittade. Diagrammet uppdateras omedelbart sa att kurvorna för mottagliga, smittade, aterhamtade, immuna och dodsfal kan jamforas som ett sammanhangande epidemisystem.',
113
- },
114
- {
115
- type: 'title',
116
- text: 'Hur SIR-modellen fungerar',
117
- level: 3,
118
- },
119
- {
120
- type: 'paragraph',
121
- html: 'En grundläggande SIR-modell delar upp populationen i tre huvudfack. <strong>S</strong> ar mottagliga personer som fortfarande kan smittas. <strong>I</strong> ar för narvarande smittsamma personer som kan överföra patogenen. <strong>R</strong> ar personer som inte längre ar smittsamma eftersom de har aterhamtat sig, fatt immunitet eller annars lamnat transmissionskedjan. Denna simulator sparar aven beraknade dodsfal som en allvarlig utfallsgren från den grupp som lamnar infektion.',
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'Transmissionshastigheten ar kopplad till R0 och den smittsamma perioden. Om R0 ar hogt eller personer forblir smittsamma under längre tid genereras fler nya infektioner innan den smittade gruppen krymper. Om vaccination tar bort tillrackligt manga personer från den mottagliga poolen sjunker det effektiva reproduktionstalet och utbrottstoppen kan bli mycket mindre.',
126
- },
127
- {
128
- type: 'table',
129
- headers: ['Reglage', 'Vad det andra', 'Typisk kurveffekt'],
130
- rows: [
131
- ['R0', 'Transmissionspotential innan immunitet beaktas', 'Hogre R0 far den smittade kurvan att stiga snabbare och na en högre topp.'],
132
- ['Vaccinationstackning', 'Andel personer som flyttas ur den mottagliga poolen nar de skyddas', 'Hogre tackning sanker Re och kan plana ut utbrottet.'],
133
- ['Vaccinverkningsgrad', 'Hur mycket vaccination forhindrar infektion i denna forenklade modell', 'Hogre verkningsgrad gör samma tackning mer skyddande.'],
134
- ['Smittsam period', 'Genomsnittlig tid som personer forblir smittsamma', 'Langre infektion ändrar tidsforloppet och kan förlänga utbrottet.'],
135
- ['Dodlighet', 'Andel personer som lamnar infektion och raknas som dodsfal', 'Hogre dödlighet hojjer dodskurvan utan att direkt öka smittspridningen.'],
136
- ],
137
- },
138
- {
139
- type: 'title',
140
- text: 'R0, Re och intuition för flockimmunitet',
141
- level: 3,
142
- },
143
- {
144
- type: 'paragraph',
145
- html: 'R0 ar det genomsnittliga antalet sekundara fall som orsakas av en smittsam person i en helt mottaglig population. Re, det effektiva reproduktionstalet, ar lagre nar vissa personer redan ar immuna, vaccinerade, isolerade eller pa annat satt inte tillgangliga för infektion. I denna simulator minskar effektiv vaccination direkt mottagligheten, sa det visade Re sjunker nar det skyddade andelen o kar.',
146
- },
147
- {
148
- type: 'paragraph',
149
- html: 'En vanlig approximation för flockimmunitet ar <strong>1 - 1 / R0</strong>. För ett R0 pa 3 ar troskeln cirka 66,7% effektiv immunitet. Simulatorn hjälper till att göra denna troskel konkret: nar effektiv vaccination ligger under troskeln kan utbrott fortfarande vaxa; nar den ar över troskeln har smittspridning svarigt att upprathalla sig sjalv.',
150
- },
151
- {
152
- type: 'title',
153
- text: 'Vad toppen för smittade innebar',
154
- level: 3,
155
- },
156
- {
157
- type: 'paragraph',
158
- html: 'Topp smittade ar det maximala antalet personer som ar samtidigt smittsamma i den simulerade populationen. Det ar ofta viktigare ur operativ synpunkt an totala infektioner eftersom sjukhus, laboratorier, isoleringsprogram och smittspaningsteam upplever tryck från samtidiga aktiva fall. Att sanka toppen kan vara avgörande aven om den slutliga attackrate inte reduceras till noll.',
159
- },
160
- {
161
- type: 'paragraph',
162
- html: 'Attackrate uppskattar andelen av hela befolkningen som smittas under hela forloppet. En hög attackrate innebar att patogenen nadde manga manniskor innan mottagligheten var uttommad eller kontrollerad. En lag attackrate innebar att immunitet, vaccination eller svag smittspridning forhindrade omfattande spridning.',
163
- },
164
- {
165
- type: 'title',
166
- text: 'Verkliga R0-varden och vad de innebar för flockimmunitet',
167
- level: 3,
168
- },
169
- {
170
- type: 'paragraph',
171
- html: 'Det grundläggande reproduktionstalet R0 ar inte en fast biologisk konstant för en patogen. Det beror pa kontaktmonster, befolkningstathet, kulturella vanor och miljofaktorer. Samma virus kan ha olika R0-varden i en tat stad jamfort med ett landsbygdsomrade, eller under en arstid med mer inomhuskontakt. Vardena nedan ar illustrativa referensintervall från publicerade studier.',
172
- },
173
- {
174
- type: 'table',
175
- headers: ['Patogen', 'Typiskt R0-intervall', 'Flockimmunitetstrskel (1 - 1/R0)', 'Viktigaste overforingsegenskap'],
176
- rows: [
177
- ['Sasongsinfluensa', '1,2 - 1,4', '17% - 29%', 'Kort smittsam period, sasongsvariation'],
178
- ['SARS-CoV-2 (urfaderlig)', '2,0 - 3,0', '50% - 67%', 'Presymptomatisk smittspridning, aerosolvagar'],
179
- ['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Okad virusmangd, snabbare spridning'],
180
- ['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immunundandragande, ovre luftvagstropism'],
181
- ['Polio', '5,0 - 7,0', '80% - 86%', 'Fekal-oral vag, lång asymtomatisk utsondring'],
182
- ['Smittkoppor', '5,0 - 7,0', '80% - 86%', 'Uttotad genom global vaccinationskampanj'],
183
- ['Massling', '12,0 - 18,0', '92% - 94%', 'Extremt smittsam, luftburen, lång smittsam period'],
184
- ['Kikhosta', '12,0 - 17,0', '92% - 94%', 'Avtagande immunitet mojliggor aterkommande infektioner'],
185
- ],
186
- },
187
- {
188
- type: 'paragraph',
189
- html: 'En hög flockimmunitetstrskel innebar inte automatiskt att vaccination ar meningslost nar tackningen ligger under troskeln. Aven partiell immunitet saktar ner smittspridningen, sanker toppen, minskar allvarliga utfall och koper tid för halso- och sjukvarden. Simulatorn visar denna effekt nar du flyttar vaccinationsreglaget genom mellanliggande varden.',
190
- },
191
- {
192
- type: 'title',
193
- text: 'Hur det effektiva reproduktionstalet Re förändras under ett utbrott',
194
- level: 3,
195
- },
196
- {
197
- type: 'paragraph',
198
- html: 'Re ar det effektiva reproduktionstalet vid en given tidpunkt under utbrottet. Till skillnad från R0, som forutsatter en helt mottaglig population, tar Re hansyn till immunitet, vaccination och andra faktorer som minskar mottagligheten. I denna simulator beräknas Re som <strong>R0 x (1 - skyddad andel)</strong>, dar den skyddade andelen ar den del av befolkningen som ar effektivt immun genom vaccination.',
199
- },
200
- {
201
- type: 'paragraph',
202
- html: 'Re-vardet som visas i simulatorns rubrik uppdateras nar du flyttar reglagen. Nar Re ligger över 1 vaxer utbrottet. Nar det faller under 1 genererar varje smittad person i genomsnitt farre an en ny infektion, och epidemin kan inte upprathalla sig sjalv. Detta ar karninsikten bakom epidemikontroll: att fa och hålla Re under 1 genom immunitet, beteende eller interventioner.',
203
- },
204
- {
205
- type: 'title',
206
- text: 'Attackrate, toppbelastning och vad de avslojar om utbrottets allvarlighetsgrad',
207
- level: 3,
208
- },
209
- {
210
- type: 'paragraph',
211
- html: 'Attackrate ar andelen av den totala befolkningen som smittas under hela det simulerade utbrottet. Det ar det mest citerade sammanfattande mattet efter en epidemivag. En hög attackrate innebar att patogenen smittade de flesta mottagliga personer innan uttunning eller kontroll stoppade smittspridningen. En lag attackrate innebar att immunitet, vaccination eller i sig svag smittspridning forhindrade omfattande infektion.',
212
- },
213
- {
214
- type: 'paragraph',
215
- html: 'Topp smittade - det maximala antalet samtidigt smittsamma personer - ar viktigare för kortvarigt tryck pa halso- och sjukvarden. En vag med en moderat attackrate men en mycket hög, skarp topp kan överbelasta sjukhus aven om totala antalet fall inte ar extremt. Omvant kan en långsam, utplanad kurva ha en liknande attackrate utspridd över manga veckor, vilket ger halso- och sjukvarden tid att hantera fallen. Detta ar varfor folkhalsoansvariga betonar att <strong>plan ut kurvan</strong> ar ett operativt mal skilt från att forhindra alla infektioner.',
216
- },
217
- {
218
- type: 'title',
219
- text: 'Att plana ut kurvan och halso- och sjukvardens kapacitet i SIR-modellen',
220
- level: 3,
221
- },
222
- {
223
- type: 'paragraph',
224
- html: 'Den smittade kurvan i en SIR-modell kan tolkas som antalet personer som samtidigt behover vard. I ett verkligt utbrott drar varje person som behover en sjukhussang, syrgasstod eller intensivvard pa en andlig mangd resurser. Nar den smittade kurvan stiger högre an den tillgangliga kapaciteten ökar dödligheten från alla orsaker eftersom systemet inte kan ge adekvat vard.',
225
- },
226
- {
227
- type: 'paragraph',
228
- html: 'Vaccination planar i denna modell ut kurvan genom att ta bort personer från den mottagliga poolen innan de kan smittas. Att minska R0 genom andra åtgärder - munskydd, ventilation, distansering, testning, isolering - skulle ocksa sanka toppen i en mer komplett modell. Simuleringen gör mekanismen synlig: nar effektiv vaccinationstackning o kar krymper toppen, flyttas senare eller forsvinner helt.',
229
- },
230
- {
231
- type: 'title',
232
- text: 'Matematiken bakom SIR-modellen visualiserad',
233
- level: 3,
234
- },
235
- {
236
- type: 'paragraph',
237
- html: 'I SIR-modellen beror antalet nya infektioner per tidssteg pa tre storheter: transmissionshastigheten <strong>beta</strong>, det aktuella antalet smittsamma personer <strong>I</strong> och andelen av den effektiva populationen som fortfarande ar mottaglig <strong>S/N</strong>. Produkten <strong>beta x I x S/N</strong> kallas infektionskraften. Varje dag avgör denna kraft hur manga mottagliga personer som flyttas in i facket för smittade.',
238
- },
239
- {
240
- type: 'paragraph',
241
- html: 'Personer lamnar facket för smittade med aterhamtningshastigheten <strong>gamma = 1 / smittsam period</strong>. Balansen mellan infektionskraften och aterhamtningshastigheten avgör om epidemin vaxer eller krymper. Nar beta x S/N overstiger gamma, overgar nya infektioner aterhamtningarna och utbrottet expanderar. Nar den mottagliga andelen S/N har sjunkit tillrackligt mycket dominerar gamma och utbrottet drar ihop sig.',
242
- },
243
- {
244
- type: 'paragraph',
245
- html: 'Parametern <strong>beta</strong> syns inte direkt i granssnittet. Istallet harleds den från R0 och den smittsamma perioden genom sambandet <strong>beta = R0 x gamma</strong>. Detta ar varfor andringar av R0 eller den smittsamma perioden ger liknande men inte identiska kurvformer. Bada parametrarna paverkar infektionskraften, men den smittsamma perioden stracker ocksa utbrottets tidsaxel.',
246
- },
247
- {
248
- type: 'title',
249
- text: 'Hur du anvander simulatorn för larande och undervisning',
250
- level: 3,
251
- },
252
- {
253
- type: 'list',
254
- items: [
255
- '<strong>Jamfor hög- och lag-R0-scenarier:</strong> stall R0 till 1,5 (sasongsinfluensaniva) och sedan till 6,0 (fore-vaccinationspolioniva). Lag marke till hur topphojd, topptidpunkt och attackrate förändras aven nar alla andra reglage ar identiska.',
256
- '<strong>Utforska troskeln för flockimmunitet:</strong> börja med R0 pa 3,0 och ingen vaccination. Notera attackrate. Lagg sedan till vaccinationstackning tills Re faller under 1. Jamfor toppen och attackrate vid tackning strax under och strax över troskeln.',
257
- '<strong>Testa effekten av långsam vs. snabb respons:</strong> stall in vaccinationstackning pa olika nivåer och observera nar toppen intraffar. Hogre tackning minskar inte bara topphojden utan forsar ofta ocksa toppen, vilket koper tid för halso- och sjukvardsforberedelser.',
258
- '<strong>Separera dödlighet från smittspridning:</strong> stall dödligheten till 0% och observera den smittade kurvan. Stall sedan dödligheten till 10% utan att andra ovriga installningar. Den smittade kurvan förändras inte, men dödstalet stiger. Detta visar varfor case fatality rate och transmissionshastighet ar separata epidemiologiska dimensioner.',
259
- '<strong>Undersok effekten av smittsam period:</strong> jamfor en smittsam period pa 4 dagar med en pa 18 dagar vid samma R0. Den längre perioden stracker kurvan, forsenar toppen och ger en längre men lagre vag.',
260
- '<strong>Klassrumsovning - hitta troskeln:</strong> be studenterna hitta den minimivaccinationstackning som far Re under 1 för ett givet R0, och jamfor sedan resultatet med formeln 1 - 1/R0.',
261
- ],
262
- },
263
- {
264
- type: 'title',
265
- text: 'Nar och varfor du ska anvanda denna simulator',
266
- level: 3,
267
- },
268
- {
269
- type: 'list',
270
- items: [
271
- '<strong>Epidemiologistudenter:</strong> koppla det matematiska SIR-ramverket till interaktiva kurvformer innan ni arbetar med differentialekvationer eller programmerar egna modeller.',
272
- '<strong>Vetenskapskommunikatorer och journalister:</strong> generera plotter, skarmdumpar eller live-forklaringar som visar varfor R0, vaccination och smittsam period spelar roll för utbrottets förlopp.',
273
- '<strong>Folkhalsointresserade:</strong> testa hur olika interventionskombinationer flyttar epidemitoppen och attackrate för att utveckla intuition om avvagningarna vid utbrottsrespons.',
274
- '<strong>Alla som ar nyfikna pa epidemimatematik:</strong> utforska SIR-modellen utan att behova skriva kod eller installera programvara. Varje reglage uppdaterar diagrammet i realtid.',
275
- ],
276
- },
277
- {
278
- type: 'title',
279
- text: 'Modellutokningar: SEIR, SIRS och vidare',
280
- level: 3,
281
- },
282
- {
283
- type: 'paragraph',
284
- html: 'Denna simulator anvander en grundläggande SIR-struktur. Flera vanliga utokningar ökar realismen. En <strong>SEIR-modell</strong> lagger till ett exponerat (E) fack för personer som ar smittade men annu inte smittsamma, vilket representerar inkubationstiden. Den exponerade gruppen forsenar epidemitoppen utat jamfort med SIR-modellen eftersom infektioner tillbringar tid i latentfasen innan de bidrar till smittspridning.',
285
- },
286
- {
287
- type: 'paragraph',
288
- html: 'En <strong>SIRS-modell</strong> tillater aterhamtade individer att forlora immunitet över tid och atervanda till det mottagliga facket. Detta modellerar patogener som kikhosta eller SARS-CoV-2 med avtagande immunitet och ger ihallande eller aterkommande utbrottsvagor. En <strong>aldersstrukturerad modell</strong> delar upp populationen i åldersgrupper med olika kontaktmatriser och allvarlighetsprofiler, vilket ar nodvandigt för sjukdar dar barn och äldre har mycket olika utfall.',
289
- },
290
- {
291
- type: 'paragraph',
292
- html: 'Andra utokningar lagger till geografisk spridning (metapopulationsmodeller), beteendeförändring (adaptiva kontaktfrekvenser), stokastiskt brus (för sma populationer dar slumpmassig utdodning spelar roll) och interventionstidpunkt (skolnedstangningar, nedstangningar, reserestriktioner som slas pa och av). Varje utokning tillfor komplexitet som ar nodvandig för prognoser men kan dölja de centrala transmissionsdynamiker som den grundläggande SIR-modellen illustrerar pa ett rent satt.',
293
- },
294
- {
295
- type: 'title',
296
- text: 'Begransningar hos denna epidemisimulator',
297
- level: 3,
298
- },
299
- {
300
- type: 'paragraph',
301
- html: 'Detta ar en kompakt deterministisk SIR-modell. Den innehaller inte åldersgrupper, hushallsstruktur, skolor, resor, superspridning, inkubationsperioder, asymtomatisk smittspridning, sasongsvariation, varianter, avtagande immunitet, beteendeforandringar, testningsforseningar eller halso- och sjukvardsinterventioner som slas pa och av över tid. Dessa detaljer ar nodvandiga för verkliga prognoser.',
302
- },
303
- {
304
- type: 'paragraph',
305
- html: 'Modellen forutsatter en valblandad population dar varje mottaglig person har lika stor sannolikhet att fa kontakt med varje smittsam person. Verkliga populationer har kontaknatverk med stark klustring, aldersassortativitet, geografisk struktur och individuell variation i smittsamhet. Dessa egenskaper kan skapa långsammare initial tillvaxt, superspridningshandelser och heterogena utbrottsmonster som en homogen modell inte fangar.',
306
- },
307
- {
308
- type: 'paragraph',
309
- html: 'Anvand simulatorn för att första mekanismer och jamfora scenarier, inte för att fatta medicinska, politiska eller krissbeslut. Verklig epidemibedomning kraver overvakningsdata, lokal kontext, osakerhetsanalys och specialistmodellering inom epidemiologi.',
310
- },
311
- ],
312
- faq,
313
- bibliography,
314
- howTo,
315
- schemas: [
316
- {
317
- '@context': 'https://schema.org',
318
- '@type': 'SoftwareApplication',
319
- name: title,
320
- description,
321
- applicationCategory: 'ScientificApplication',
322
- operatingSystem: 'Any',
323
- },
324
- {
325
- '@context': 'https://schema.org',
326
- '@type': 'FAQPage',
327
- mainEntity: faq.map((item) => ({
328
- '@type': 'Question',
329
- name: item.question,
330
- acceptedAnswer: {
331
- '@type': 'Answer',
332
- text: item.answer,
333
- },
334
- })),
335
- },
336
- {
337
- '@context': 'https://schema.org',
338
- '@type': 'HowTo',
339
- name: title,
340
- step: howTo.map((step) => ({
341
- '@type': 'HowToStep',
342
- name: step.name,
343
- text: step.text,
344
- })),
345
- },
346
- ],
347
- };
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'epidemi-sir-simulator';
5
+ const title = 'Epidemi SIR simulator';
6
+ const description = 'Utforska smittspridning med en interaktiv SIR-modell som justerar R0, dödlighet, vaccination, smittsam period, toppbelastning och transmissionskurvor i realtid.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Stall in reproduktionstalet',
11
+ text: 'Flytta R0-reglaget för att visa hur manga sekundara infektioner en smittsam person skulle orsaka i en helt mottaglig population.',
12
+ },
13
+ {
14
+ name: 'Lagg till vaccination och vaccinverkningsgrad',
15
+ text: 'Oka vaccinationstackningen eller verkningsgraden för att ta bort skyddade personer från den mottagliga poolen och sanka det effektiva reproduktionstalet.',
16
+ },
17
+ {
18
+ name: 'Justera dödlighet och smittsam period',
19
+ text: 'Andra dodlighetsprocenten och antalet smittsamma dagar för att se hur allvarliga utfall och kurvans tidsforlopp paverkas.',
20
+ },
21
+ {
22
+ name: 'Las av SIR-kurvorna',
23
+ text: 'Anvand diagrammet och daginspektoren för att jamfora kurvor för mottagliga, smittade, aterhamtade och beraknade dödsfall under det simulerade utbrottet.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Vad visar en SIR-modell?',
30
+ answer: 'En SIR-modell delar upp en population i mottagliga, smittade och aterhamtade grupper. Den uppskattar hur manniskor forflyttar sig mellan dessa grupper över tid nar smittspridning och aterhamtning sker.',
31
+ },
32
+ {
33
+ question: 'Hur forandrar vaccination kurvan?',
34
+ answer: 'Vaccination minskar den mottagliga populationen nar den forhindrar infektion. I denna simulator sanker effektiv vaccination det effektiva reproduktionstalet och kan minska eller fordroja smitt-toppen.',
35
+ },
36
+ {
37
+ question: 'Ar R0 samma sak som Re?',
38
+ answer: 'Nej. R0 beskriver smittspridning i en helt mottaglig population. Re ar det effektiva reproduktionstalet efter att immunitet, vaccination eller beteendeforandringar har minskat antalet personer som kan smittas.',
39
+ },
40
+ {
41
+ question: 'Varfor nar den smittade kurvan en topp och faller sedan?',
42
+ answer: 'Den smittade kurvan faller nar varje smittsam person genererar farre nya infektioner an antalet personer som lamnar den smittade gruppen genom aterhamtning eller död. Minskad mottaglighet ar den framsta drivkraften i en grundläggande SIR-modell.',
43
+ },
44
+ {
45
+ question: 'Kan detta forutsaga ett verkligt epidemiforlopp?',
46
+ answer: 'Det ar ett utbildnings- och scenariosverktyg, inte en prognos. Verkliga utbrott kraver åldersstruktur, kontaktnatverk, geografi, rapporteringsforseningar, forandrat beteende, varianter, avtagande immunitet och kalibrerade data.',
47
+ },
48
+ {
49
+ question: 'Vad ar skillnaden mellan attackrate och topp smittade?',
50
+ answer: 'Attackrate mater den totala andelen av befolkningen som nagonsin smittas under utbrottet. Topp smittade mater det maximala antalet samtidigt smittsamma personer vid en given tidpunkt. En lag topp garanterar inte en lag attackrate och vice versa.',
51
+ },
52
+ {
53
+ question: 'Vad innebar Re under 1 visuellt?',
54
+ answer: 'Nar Re faller under 1 genererar varje smittsam person i genomsnitt farre an en ny infektion. I diagrammet stiger den smittade kurvan aldrig brant och kan minska omedelbart från startfrot, vilket betyder att utbrottet inte kan upprathalla sig sjalvt.',
55
+ },
56
+ {
57
+ question: 'Hur paverkar den smittsamma perioden utbrottet?',
58
+ answer: 'En längre smittsam period forlanger tiden under vilken varje smittad person kan överföra patogenen. Detta stracker utbrottets tidslinje, fordrojer toppen och kan för samma R0 ge en bredare kurva med lagre topphojd.',
59
+ },
60
+ {
61
+ question: 'Varfor paverkar inte dödligheten den smittade kurvan?',
62
+ answer: 'I denna SIR-modell paverkar dödlighet endast dodsantalet som forgrenas från den aterhamtade gruppen. Det aterkopplas inte till smittspridning eftersom dodsfal och aterhamtning båda tar bort personer från den smittsamma poolen i samma takt.',
63
+ },
64
+ {
65
+ question: 'Vad ar troskeln för flockimmunitet?',
66
+ answer: 'Troskeln för flockimmunitet ar den andel av befolkningen som maste vara immun för att Re ska falla under 1. Den approximeras som 1 - 1/R0. För massling med R0 runt 12 ar troskeln över 91%. För sasongsinfluensa med R0 runt 1,3 ar troskeln nara 23%.',
67
+ },
68
+ ];
69
+
70
+ export const content: ToolLocaleContent = {
71
+ slug,
72
+ title,
73
+ description,
74
+ ui: {
75
+ liveScenario: 'Live epidemiscenario',
76
+ curveChart: 'SIR-transmissionskurvor',
77
+ inspectDay: 'Inspektera simuleringsdag',
78
+ legend: 'Kurvforklaring',
79
+ susceptible: 'Mottagliga',
80
+ infected: 'Smittade',
81
+ recovered: 'Aterhamtade eller immuna',
82
+ deaths: 'Dodsfal',
83
+ controls: 'Epidemikontroller',
84
+ modelName: 'Fackmodell',
85
+ peakInfected: 'Topp smittade',
86
+ peakDay: 'Toppdag',
87
+ attackRate: 'Attackrate',
88
+ estimatedDeaths: 'Beraknade dodsfal',
89
+ r0: 'Grundlaggande reproduktionstal R0',
90
+ lethality: 'Dodlighet',
91
+ vaccination: 'Vaccinationstackning',
92
+ vaccineEffectiveness: 'Vaccinverkningsgrad',
93
+ infectiousDays: 'Smittsam period',
94
+ initialInfected: 'Initialt smittade',
95
+ dayLabel: 'Dag',
96
+ daysUnit: 'dagar',
97
+ infectiousLabel: 'smittsamma',
98
+ reLabel: 'Re',
99
+ },
100
+ seo: [
101
+ {
102
+ type: 'title',
103
+ text: 'Epidemi SIR-simulator för R0, vaccination, dödlighet och transmissionskurvor',
104
+ level: 2,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Denna epidemi SIR-simulator later dig utforska hur en patogen sprids genom en population nar mottagliga personer smittas och sedan lamnar den smittsamma gruppen genom aterhamtning eller död. Den ar utformad för studenter, vetenskapskommunikatorer, folkhalsointresserade och alla som vill ha en snabb visuell forklaring till varfor sma förändringar i smittspridning eller immunitet kan omforma ett utbrott.',
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'De interaktiva reglagen fokuserar pa de variabler man oftast vill testa: <strong>R0</strong>, dödlighet, vaccinationstackning, vaccinverkningsgrad, smittsam period och initial andel smittade. Diagrammet uppdateras omedelbart sa att kurvorna för mottagliga, smittade, aterhamtade, immuna och dodsfal kan jamforas som ett sammanhangande epidemisystem.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Hur SIR-modellen fungerar',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'En grundläggande SIR-modell delar upp populationen i tre huvudfack. <strong>S</strong> ar mottagliga personer som fortfarande kan smittas. <strong>I</strong> ar för narvarande smittsamma personer som kan överföra patogenen. <strong>R</strong> ar personer som inte längre ar smittsamma eftersom de har aterhamtat sig, fatt immunitet eller annars lamnat transmissionskedjan. Denna simulator sparar aven beraknade dodsfal som en allvarlig utfallsgren från den grupp som lamnar infektion.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Transmissionshastigheten ar kopplad till R0 och den smittsamma perioden. Om R0 ar hogt eller personer forblir smittsamma under längre tid genereras fler nya infektioner innan den smittade gruppen krymper. Om vaccination tar bort tillrackligt manga personer från den mottagliga poolen sjunker det effektiva reproduktionstalet och utbrottstoppen kan bli mycket mindre.',
126
+ },
127
+ {
128
+ type: 'table',
129
+ headers: ['Reglage', 'Vad det andra', 'Typisk kurveffekt'],
130
+ rows: [
131
+ ['R0', 'Transmissionspotential innan immunitet beaktas', 'Hogre R0 far den smittade kurvan att stiga snabbare och na en högre topp.'],
132
+ ['Vaccinationstackning', 'Andel personer som flyttas ur den mottagliga poolen nar de skyddas', 'Hogre tackning sanker Re och kan plana ut utbrottet.'],
133
+ ['Vaccinverkningsgrad', 'Hur mycket vaccination forhindrar infektion i denna forenklade modell', 'Hogre verkningsgrad gör samma tackning mer skyddande.'],
134
+ ['Smittsam period', 'Genomsnittlig tid som personer forblir smittsamma', 'Langre infektion ändrar tidsforloppet och kan förlänga utbrottet.'],
135
+ ['Dodlighet', 'Andel personer som lamnar infektion och raknas som dodsfal', 'Hogre dödlighet hojjer dodskurvan utan att direkt öka smittspridningen.'],
136
+ ],
137
+ },
138
+ {
139
+ type: 'title',
140
+ text: 'R0, Re och intuition för flockimmunitet',
141
+ level: 3,
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'R0 ar det genomsnittliga antalet sekundara fall som orsakas av en smittsam person i en helt mottaglig population. Re, det effektiva reproduktionstalet, ar lagre nar vissa personer redan ar immuna, vaccinerade, isolerade eller pa annat satt inte tillgangliga för infektion. I denna simulator minskar effektiv vaccination direkt mottagligheten, sa det visade Re sjunker nar det skyddade andelen o kar.',
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'En vanlig approximation för flockimmunitet ar <strong>1 - 1 / R0</strong>. För ett R0 pa 3 ar troskeln cirka 66,7% effektiv immunitet. Simulatorn hjälper till att göra denna troskel konkret: nar effektiv vaccination ligger under troskeln kan utbrott fortfarande vaxa; nar den ar över troskeln har smittspridning svarigt att upprathalla sig sjalv.',
150
+ },
151
+ {
152
+ type: 'title',
153
+ text: 'Vad toppen för smittade innebar',
154
+ level: 3,
155
+ },
156
+ {
157
+ type: 'paragraph',
158
+ html: 'Topp smittade ar det maximala antalet personer som ar samtidigt smittsamma i den simulerade populationen. Det ar ofta viktigare ur operativ synpunkt an totala infektioner eftersom sjukhus, laboratorier, isoleringsprogram och smittspaningsteam upplever tryck från samtidiga aktiva fall. Att sanka toppen kan vara avgörande aven om den slutliga attackrate inte reduceras till noll.',
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Attackrate uppskattar andelen av hela befolkningen som smittas under hela forloppet. En hög attackrate innebar att patogenen nadde manga manniskor innan mottagligheten var uttommad eller kontrollerad. En lag attackrate innebar att immunitet, vaccination eller svag smittspridning forhindrade omfattande spridning.',
163
+ },
164
+ {
165
+ type: 'title',
166
+ text: 'Verkliga R0-varden och vad de innebar för flockimmunitet',
167
+ level: 3,
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'Det grundläggande reproduktionstalet R0 ar inte en fast biologisk konstant för en patogen. Det beror pa kontaktmonster, befolkningstathet, kulturella vanor och miljofaktorer. Samma virus kan ha olika R0-varden i en tat stad jamfort med ett landsbygdsomrade, eller under en arstid med mer inomhuskontakt. Vardena nedan ar illustrativa referensintervall från publicerade studier.',
172
+ },
173
+ {
174
+ type: 'table',
175
+ headers: ['Patogen', 'Typiskt R0-intervall', 'Flockimmunitetstrskel (1 - 1/R0)', 'Viktigaste overforingsegenskap'],
176
+ rows: [
177
+ ['Sasongsinfluensa', '1,2 - 1,4', '17% - 29%', 'Kort smittsam period, sasongsvariation'],
178
+ ['SARS-CoV-2 (urfaderlig)', '2,0 - 3,0', '50% - 67%', 'Presymptomatisk smittspridning, aerosolvagar'],
179
+ ['SARS-CoV-2 (Delta)', '5,0 - 8,0', '80% - 87%', 'Okad virusmangd, snabbare spridning'],
180
+ ['SARS-CoV-2 (Omicron)', '8,0 - 12,0', '87% - 92%', 'Immunundandragande, ovre luftvagstropism'],
181
+ ['Polio', '5,0 - 7,0', '80% - 86%', 'Fekal-oral vag, lång asymtomatisk utsondring'],
182
+ ['Smittkoppor', '5,0 - 7,0', '80% - 86%', 'Uttotad genom global vaccinationskampanj'],
183
+ ['Massling', '12,0 - 18,0', '92% - 94%', 'Extremt smittsam, luftburen, lång smittsam period'],
184
+ ['Kikhosta', '12,0 - 17,0', '92% - 94%', 'Avtagande immunitet mojliggor aterkommande infektioner'],
185
+ ],
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: 'En hög flockimmunitetstrskel innebar inte automatiskt att vaccination ar meningslost nar tackningen ligger under troskeln. Aven partiell immunitet saktar ner smittspridningen, sanker toppen, minskar allvarliga utfall och koper tid för halso- och sjukvarden. Simulatorn visar denna effekt nar du flyttar vaccinationsreglaget genom mellanliggande varden.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Hur det effektiva reproduktionstalet Re förändras under ett utbrott',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Re ar det effektiva reproduktionstalet vid en given tidpunkt under utbrottet. Till skillnad från R0, som forutsatter en helt mottaglig population, tar Re hansyn till immunitet, vaccination och andra faktorer som minskar mottagligheten. I denna simulator beräknas Re som <strong>R0 x (1 - skyddad andel)</strong>, dar den skyddade andelen ar den del av befolkningen som ar effektivt immun genom vaccination.',
199
+ },
200
+ {
201
+ type: 'paragraph',
202
+ html: 'Re-vardet som visas i simulatorns rubrik uppdateras nar du flyttar reglagen. Nar Re ligger över 1 vaxer utbrottet. Nar det faller under 1 genererar varje smittad person i genomsnitt farre an en ny infektion, och epidemin kan inte upprathalla sig sjalv. Detta ar karninsikten bakom epidemikontroll: att fa och hålla Re under 1 genom immunitet, beteende eller interventioner.',
203
+ },
204
+ {
205
+ type: 'title',
206
+ text: 'Attackrate, toppbelastning och vad de avslojar om utbrottets allvarlighetsgrad',
207
+ level: 3,
208
+ },
209
+ {
210
+ type: 'paragraph',
211
+ html: 'Attackrate ar andelen av den totala befolkningen som smittas under hela det simulerade utbrottet. Det ar det mest citerade sammanfattande mattet efter en epidemivag. En hög attackrate innebar att patogenen smittade de flesta mottagliga personer innan uttunning eller kontroll stoppade smittspridningen. En lag attackrate innebar att immunitet, vaccination eller i sig svag smittspridning forhindrade omfattande infektion.',
212
+ },
213
+ {
214
+ type: 'paragraph',
215
+ html: 'Topp smittade - det maximala antalet samtidigt smittsamma personer - ar viktigare för kortvarigt tryck pa halso- och sjukvarden. En vag med en moderat attackrate men en mycket hög, skarp topp kan överbelasta sjukhus aven om totala antalet fall inte ar extremt. Omvant kan en långsam, utplanad kurva ha en liknande attackrate utspridd över manga veckor, vilket ger halso- och sjukvarden tid att hantera fallen. Detta ar varfor folkhalsoansvariga betonar att <strong>plan ut kurvan</strong> ar ett operativt mal skilt från att forhindra alla infektioner.',
216
+ },
217
+ {
218
+ type: 'title',
219
+ text: 'Att plana ut kurvan och halso- och sjukvardens kapacitet i SIR-modellen',
220
+ level: 3,
221
+ },
222
+ {
223
+ type: 'paragraph',
224
+ html: 'Den smittade kurvan i en SIR-modell kan tolkas som antalet personer som samtidigt behover vard. I ett verkligt utbrott drar varje person som behover en sjukhussang, syrgasstod eller intensivvard pa en andlig mangd resurser. Nar den smittade kurvan stiger högre an den tillgangliga kapaciteten ökar dödligheten från alla orsaker eftersom systemet inte kan ge adekvat vard.',
225
+ },
226
+ {
227
+ type: 'paragraph',
228
+ html: 'Vaccination planar i denna modell ut kurvan genom att ta bort personer från den mottagliga poolen innan de kan smittas. Att minska R0 genom andra åtgärder - munskydd, ventilation, distansering, testning, isolering - skulle ocksa sanka toppen i en mer komplett modell. Simuleringen gör mekanismen synlig: nar effektiv vaccinationstackning o kar krymper toppen, flyttas senare eller forsvinner helt.',
229
+ },
230
+ {
231
+ type: 'title',
232
+ text: 'Matematiken bakom SIR-modellen visualiserad',
233
+ level: 3,
234
+ },
235
+ {
236
+ type: 'paragraph',
237
+ html: 'I SIR-modellen beror antalet nya infektioner per tidssteg pa tre storheter: transmissionshastigheten <strong>beta</strong>, det aktuella antalet smittsamma personer <strong>I</strong> och andelen av den effektiva populationen som fortfarande ar mottaglig <strong>S/N</strong>. Produkten <strong>beta x I x S/N</strong> kallas infektionskraften. Varje dag avgör denna kraft hur manga mottagliga personer som flyttas in i facket för smittade.',
238
+ },
239
+ {
240
+ type: 'paragraph',
241
+ html: 'Personer lamnar facket för smittade med aterhamtningshastigheten <strong>gamma = 1 / smittsam period</strong>. Balansen mellan infektionskraften och aterhamtningshastigheten avgör om epidemin vaxer eller krymper. Nar beta x S/N overstiger gamma, overgar nya infektioner aterhamtningarna och utbrottet expanderar. Nar den mottagliga andelen S/N har sjunkit tillrackligt mycket dominerar gamma och utbrottet drar ihop sig.',
242
+ },
243
+ {
244
+ type: 'paragraph',
245
+ html: 'Parametern <strong>beta</strong> syns inte direkt i granssnittet. Istallet harleds den från R0 och den smittsamma perioden genom sambandet <strong>beta = R0 x gamma</strong>. Detta ar varfor andringar av R0 eller den smittsamma perioden ger liknande men inte identiska kurvformer. Bada parametrarna paverkar infektionskraften, men den smittsamma perioden stracker ocksa utbrottets tidsaxel.',
246
+ },
247
+ {
248
+ type: 'title',
249
+ text: 'Hur du anvander simulatorn för larande och undervisning',
250
+ level: 3,
251
+ },
252
+ {
253
+ type: 'list',
254
+ items: [
255
+ '<strong>Jamfor hög- och lag-R0-scenarier:</strong> stall R0 till 1,5 (sasongsinfluensaniva) och sedan till 6,0 (fore-vaccinationspolioniva). Lag marke till hur topphojd, topptidpunkt och attackrate förändras aven nar alla andra reglage ar identiska.',
256
+ '<strong>Utforska troskeln för flockimmunitet:</strong> börja med R0 pa 3,0 och ingen vaccination. Notera attackrate. Lagg sedan till vaccinationstackning tills Re faller under 1. Jamfor toppen och attackrate vid tackning strax under och strax över troskeln.',
257
+ '<strong>Testa effekten av långsam vs. snabb respons:</strong> stall in vaccinationstackning pa olika nivåer och observera nar toppen intraffar. Hogre tackning minskar inte bara topphojden utan forsar ofta ocksa toppen, vilket koper tid för halso- och sjukvardsforberedelser.',
258
+ '<strong>Separera dödlighet från smittspridning:</strong> stall dödligheten till 0% och observera den smittade kurvan. Stall sedan dödligheten till 10% utan att andra ovriga installningar. Den smittade kurvan förändras inte, men dödstalet stiger. Detta visar varfor case fatality rate och transmissionshastighet ar separata epidemiologiska dimensioner.',
259
+ '<strong>Undersok effekten av smittsam period:</strong> jamfor en smittsam period pa 4 dagar med en pa 18 dagar vid samma R0. Den längre perioden stracker kurvan, forsenar toppen och ger en längre men lagre vag.',
260
+ '<strong>Klassrumsovning - hitta troskeln:</strong> be studenterna hitta den minimivaccinationstackning som far Re under 1 för ett givet R0, och jamfor sedan resultatet med formeln 1 - 1/R0.',
261
+ ],
262
+ },
263
+ {
264
+ type: 'title',
265
+ text: 'Nar och varfor du ska anvanda denna simulator',
266
+ level: 3,
267
+ },
268
+ {
269
+ type: 'list',
270
+ items: [
271
+ '<strong>Epidemiologistudenter:</strong> koppla det matematiska SIR-ramverket till interaktiva kurvformer innan ni arbetar med differentialekvationer eller programmerar egna modeller.',
272
+ '<strong>Vetenskapskommunikatorer och journalister:</strong> generera plotter, skarmdumpar eller live-forklaringar som visar varfor R0, vaccination och smittsam period spelar roll för utbrottets förlopp.',
273
+ '<strong>Folkhalsointresserade:</strong> testa hur olika interventionskombinationer flyttar epidemitoppen och attackrate för att utveckla intuition om avvagningarna vid utbrottsrespons.',
274
+ '<strong>Alla som ar nyfikna pa epidemimatematik:</strong> utforska SIR-modellen utan att behova skriva kod eller installera programvara. Varje reglage uppdaterar diagrammet i realtid.',
275
+ ],
276
+ },
277
+ {
278
+ type: 'title',
279
+ text: 'Modellutokningar: SEIR, SIRS och vidare',
280
+ level: 3,
281
+ },
282
+ {
283
+ type: 'paragraph',
284
+ html: 'Denna simulator anvander en grundläggande SIR-struktur. Flera vanliga utokningar ökar realismen. En <strong>SEIR-modell</strong> lagger till ett exponerat (E) fack för personer som ar smittade men annu inte smittsamma, vilket representerar inkubationstiden. Den exponerade gruppen forsenar epidemitoppen utat jamfort med SIR-modellen eftersom infektioner tillbringar tid i latentfasen innan de bidrar till smittspridning.',
285
+ },
286
+ {
287
+ type: 'paragraph',
288
+ html: 'En <strong>SIRS-modell</strong> tillater aterhamtade individer att forlora immunitet över tid och atervanda till det mottagliga facket. Detta modellerar patogener som kikhosta eller SARS-CoV-2 med avtagande immunitet och ger ihallande eller aterkommande utbrottsvagor. En <strong>aldersstrukturerad modell</strong> delar upp populationen i åldersgrupper med olika kontaktmatriser och allvarlighetsprofiler, vilket ar nodvandigt för sjukdar dar barn och äldre har mycket olika utfall.',
289
+ },
290
+ {
291
+ type: 'paragraph',
292
+ html: 'Andra utokningar lagger till geografisk spridning (metapopulationsmodeller), beteendeförändring (adaptiva kontaktfrekvenser), stokastiskt brus (för sma populationer dar slumpmassig utdodning spelar roll) och interventionstidpunkt (skolnedstangningar, nedstangningar, reserestriktioner som slas pa och av). Varje utokning tillfor komplexitet som ar nodvandig för prognoser men kan dölja de centrala transmissionsdynamiker som den grundläggande SIR-modellen illustrerar pa ett rent satt.',
293
+ },
294
+ {
295
+ type: 'title',
296
+ text: 'Begransningar hos denna epidemisimulator',
297
+ level: 3,
298
+ },
299
+ {
300
+ type: 'paragraph',
301
+ html: 'Detta ar en kompakt deterministisk SIR-modell. Den innehaller inte åldersgrupper, hushallsstruktur, skolor, resor, superspridning, inkubationsperioder, asymtomatisk smittspridning, sasongsvariation, varianter, avtagande immunitet, beteendeforandringar, testningsforseningar eller halso- och sjukvardsinterventioner som slas pa och av över tid. Dessa detaljer ar nodvandiga för verkliga prognoser.',
302
+ },
303
+ {
304
+ type: 'paragraph',
305
+ html: 'Modellen forutsatter en valblandad population dar varje mottaglig person har lika stor sannolikhet att fa kontakt med varje smittsam person. Verkliga populationer har kontaknatverk med stark klustring, aldersassortativitet, geografisk struktur och individuell variation i smittsamhet. Dessa egenskaper kan skapa långsammare initial tillvaxt, superspridningshandelser och heterogena utbrottsmonster som en homogen modell inte fangar.',
306
+ },
307
+ {
308
+ type: 'paragraph',
309
+ html: 'Anvand simulatorn för att första mekanismer och jamfora scenarier, inte för att fatta medicinska, politiska eller krissbeslut. Verklig epidemibedomning kraver overvakningsdata, lokal kontext, osakerhetsanalys och specialistmodellering inom epidemiologi.',
310
+ },
311
+ ],
312
+ faq,
313
+ bibliography,
314
+ howTo,
315
+ schemas: [
316
+ {
317
+ '@context': 'https://schema.org',
318
+ '@type': 'SoftwareApplication',
319
+ name: title,
320
+ description,
321
+ applicationCategory: 'ScientificApplication',
322
+ operatingSystem: 'Any',
323
+ },
324
+ {
325
+ '@context': 'https://schema.org',
326
+ '@type': 'FAQPage',
327
+ mainEntity: faq.map((item) => ({
328
+ '@type': 'Question',
329
+ name: item.question,
330
+ acceptedAnswer: {
331
+ '@type': 'Answer',
332
+ text: item.answer,
333
+ },
334
+ })),
335
+ },
336
+ {
337
+ '@context': 'https://schema.org',
338
+ '@type': 'HowTo',
339
+ name: title,
340
+ step: howTo.map((step) => ({
341
+ '@type': 'HowToStep',
342
+ name: step.name,
343
+ text: step.text,
344
+ })),
345
+ },
346
+ ],
347
+ };