@jjlmoya/utils-science 1.51.0 → 1.53.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 (339) hide show
  1. package/package.json +2 -2
  2. package/scripts/crystal-lattice-catalog-translations.mjs +1 -0
  3. package/src/category/i18n/es.ts +3 -4
  4. package/src/category/i18n/fr.ts +2 -2
  5. package/src/category/i18n/it.ts +2 -2
  6. package/src/category/i18n/pt.ts +2 -2
  7. package/src/category/index.ts +25 -25
  8. package/src/components/PreviewNavSidebar.astro +1 -1
  9. package/src/components/PreviewToolbar.astro +1 -1
  10. package/src/data.ts +1 -1
  11. package/src/env.d.ts +1 -1
  12. package/src/layouts/PreviewLayout.astro +1 -1
  13. package/src/pages/index.astro +1 -1
  14. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  15. package/src/tests/category_seo_quality.test.ts +76 -0
  16. package/src/tests/faq_count.test.ts +19 -19
  17. package/src/tests/i18n_coverage.test.ts +36 -36
  18. package/src/tests/mocks/astro_mock.js +1 -1
  19. package/src/tests/no_h1_in_components.test.ts +1 -1
  20. package/src/tests/script_density.test.ts +94 -94
  21. package/src/tests/seo_length.test.ts +24 -24
  22. package/src/tests/seo_parity.test.ts +5 -5
  23. package/src/tests/seo_translation_completeness.test.ts +76 -0
  24. package/src/tests/seo_wellformed_export.test.ts +65 -0
  25. package/src/tests/spanish_leakage.test.ts +175 -175
  26. package/src/tool/asteroid-impact/component.astro +251 -251
  27. package/src/tool/asteroid-impact/helpers.ts +17 -17
  28. package/src/tool/asteroid-impact/i18n/de.ts +2 -2
  29. package/src/tool/asteroid-impact/i18n/en.ts +2 -2
  30. package/src/tool/asteroid-impact/i18n/es.ts +2 -2
  31. package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
  32. package/src/tool/asteroid-impact/i18n/id.ts +2 -2
  33. package/src/tool/asteroid-impact/i18n/it.ts +2 -2
  34. package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
  35. package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
  36. package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
  37. package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
  38. package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
  39. package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
  40. package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
  41. package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
  42. package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
  43. package/src/tool/asteroid-impact/script.ts +262 -262
  44. package/src/tool/asteroid-impact/seo.astro +15 -15
  45. package/src/tool/asteroid-impact/ui.ts +69 -69
  46. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
  47. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
  48. package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
  49. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
  50. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
  51. package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
  52. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
  53. package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
  54. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
  55. package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
  56. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
  57. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
  58. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
  59. package/src/tool/cellular-renewal/component.astro +126 -126
  60. package/src/tool/cellular-renewal/i18n/de.ts +1 -1
  61. package/src/tool/cellular-renewal/i18n/en.ts +1 -1
  62. package/src/tool/cellular-renewal/i18n/es.ts +1 -1
  63. package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
  64. package/src/tool/cellular-renewal/i18n/id.ts +1 -1
  65. package/src/tool/cellular-renewal/i18n/it.ts +1 -1
  66. package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
  67. package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
  68. package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
  69. package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
  70. package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
  71. package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
  72. package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
  73. package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
  74. package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
  75. package/src/tool/cellular-renewal/seo.astro +15 -15
  76. package/src/tool/colony-counter/i18n/de.ts +1 -1
  77. package/src/tool/colony-counter/i18n/en.ts +1 -1
  78. package/src/tool/colony-counter/i18n/es.ts +1 -1
  79. package/src/tool/colony-counter/i18n/fr.ts +1 -1
  80. package/src/tool/colony-counter/i18n/id.ts +1 -1
  81. package/src/tool/colony-counter/i18n/it.ts +1 -1
  82. package/src/tool/colony-counter/i18n/ja.ts +1 -1
  83. package/src/tool/colony-counter/i18n/ko.ts +1 -1
  84. package/src/tool/colony-counter/i18n/nl.ts +1 -1
  85. package/src/tool/colony-counter/i18n/pl.ts +1 -1
  86. package/src/tool/colony-counter/i18n/pt.ts +1 -1
  87. package/src/tool/colony-counter/i18n/ru.ts +1 -1
  88. package/src/tool/colony-counter/i18n/sv.ts +1 -1
  89. package/src/tool/colony-counter/i18n/tr.ts +1 -1
  90. package/src/tool/colony-counter/i18n/zh.ts +1 -1
  91. package/src/tool/colony-counter/seo.astro +15 -15
  92. package/src/tool/conway-life-rule-lab/component.astro +1 -1
  93. package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
  94. package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
  95. package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
  96. package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
  97. package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
  98. package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
  99. package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
  100. package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
  101. package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
  102. package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
  103. package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
  104. package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
  105. package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
  106. package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
  107. package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
  108. package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
  109. package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
  110. package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
  111. package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
  112. package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
  113. package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
  114. package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
  115. package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
  116. package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
  117. package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
  118. package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
  119. package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
  120. package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
  121. package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
  122. package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
  123. package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
  124. package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
  125. package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
  126. package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
  127. package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
  128. package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
  129. package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
  130. package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
  131. package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
  132. package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
  133. package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
  134. package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
  135. package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
  136. package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
  137. package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
  138. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
  139. package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
  140. package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
  141. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
  142. package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
  143. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
  144. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
  145. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
  146. package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
  147. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
  148. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
  149. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
  150. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
  151. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
  152. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
  153. package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
  154. package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
  155. package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
  156. package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
  157. package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
  158. package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
  159. package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
  160. package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
  161. package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
  162. package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
  163. package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
  164. package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
  165. package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
  166. package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
  167. package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
  168. package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
  169. package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
  170. package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
  171. package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
  172. package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
  173. package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
  174. package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
  175. package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
  176. package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
  177. package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
  178. package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
  179. package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
  180. package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
  181. package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
  182. package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
  183. package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
  184. package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
  185. package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
  186. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
  187. package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
  188. package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
  189. package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
  190. package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
  191. package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
  192. package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
  193. package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
  194. package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
  195. package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
  196. package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
  197. package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
  198. package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
  199. package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
  200. package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
  201. package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
  202. package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
  203. package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
  204. package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
  205. package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
  206. package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
  207. package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
  208. package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
  209. package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
  210. package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
  211. package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
  212. package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
  213. package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
  214. package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
  215. package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
  216. package/src/tool/microwave-detector/component.astro +238 -238
  217. package/src/tool/microwave-detector/i18n/de.ts +1 -1
  218. package/src/tool/microwave-detector/i18n/en.ts +1 -1
  219. package/src/tool/microwave-detector/i18n/es.ts +1 -1
  220. package/src/tool/microwave-detector/i18n/fr.ts +1 -1
  221. package/src/tool/microwave-detector/i18n/id.ts +1 -1
  222. package/src/tool/microwave-detector/i18n/it.ts +1 -1
  223. package/src/tool/microwave-detector/i18n/ja.ts +1 -1
  224. package/src/tool/microwave-detector/i18n/ko.ts +1 -1
  225. package/src/tool/microwave-detector/i18n/nl.ts +1 -1
  226. package/src/tool/microwave-detector/i18n/pl.ts +1 -1
  227. package/src/tool/microwave-detector/i18n/pt.ts +1 -1
  228. package/src/tool/microwave-detector/i18n/ru.ts +1 -1
  229. package/src/tool/microwave-detector/i18n/sv.ts +1 -1
  230. package/src/tool/microwave-detector/i18n/tr.ts +1 -1
  231. package/src/tool/microwave-detector/i18n/zh.ts +1 -1
  232. package/src/tool/microwave-detector/seo.astro +15 -15
  233. package/src/tool/natural-selection-drift/component.astro +135 -135
  234. package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
  235. package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
  236. package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
  237. package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
  238. package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
  239. package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
  240. package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
  241. package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
  242. package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
  243. package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
  244. package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
  245. package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
  246. package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
  247. package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
  248. package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
  249. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
  250. package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
  251. package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
  252. package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
  253. package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
  254. package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
  255. package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
  256. package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
  257. package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
  258. package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
  259. package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
  260. package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
  261. package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
  262. package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
  263. package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
  264. package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
  265. package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
  266. package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
  267. package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
  268. package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
  269. package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
  270. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
  271. package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
  272. package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
  273. package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
  274. package/src/tool/radioactive-decay/i18n/de.ts +168 -164
  275. package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
  276. package/src/tool/radioactive-decay/i18n/id.ts +169 -165
  277. package/src/tool/radioactive-decay/i18n/it.ts +76 -74
  278. package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
  279. package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
  280. package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
  281. package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
  282. package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
  283. package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
  284. package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
  285. package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
  286. package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
  287. package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
  288. package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
  289. package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
  290. package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
  291. package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
  292. package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
  293. package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
  294. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
  295. package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
  296. package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
  297. package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
  298. package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
  299. package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
  300. package/src/tool/simulation-probability/component.astro +138 -138
  301. package/src/tool/simulation-probability/i18n/de.ts +1 -1
  302. package/src/tool/simulation-probability/i18n/en.ts +1 -1
  303. package/src/tool/simulation-probability/i18n/es.ts +1 -1
  304. package/src/tool/simulation-probability/i18n/fr.ts +1 -1
  305. package/src/tool/simulation-probability/i18n/id.ts +1 -1
  306. package/src/tool/simulation-probability/i18n/it.ts +1 -1
  307. package/src/tool/simulation-probability/i18n/ja.ts +1 -1
  308. package/src/tool/simulation-probability/i18n/ko.ts +1 -1
  309. package/src/tool/simulation-probability/i18n/nl.ts +1 -1
  310. package/src/tool/simulation-probability/i18n/pl.ts +1 -1
  311. package/src/tool/simulation-probability/i18n/pt.ts +1 -1
  312. package/src/tool/simulation-probability/i18n/ru.ts +1 -1
  313. package/src/tool/simulation-probability/i18n/sv.ts +1 -1
  314. package/src/tool/simulation-probability/i18n/tr.ts +1 -1
  315. package/src/tool/simulation-probability/i18n/zh.ts +1 -1
  316. package/src/tool/simulation-probability/seo.astro +15 -15
  317. package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
  318. package/src/tool/temperature-timeline/i18n/de.ts +2 -1
  319. package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
  320. package/src/tool/temperature-timeline/i18n/it.ts +142 -141
  321. package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
  322. package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
  323. package/src/tool/three-body-problem/app.ts +4 -4
  324. package/src/tool/three-body-problem/component.astro +6 -6
  325. package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
  326. package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
  327. package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
  328. package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
  329. package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
  330. package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
  331. package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
  332. package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
  333. package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
  334. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
  335. package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
  336. package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
  337. package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
  338. package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
  339. 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
+ };