@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.
- package/package.json +2 -2
- package/src/category/i18n/es.ts +3 -4
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/it.ts +2 -2
- package/src/category/i18n/pt.ts +2 -2
- package/src/category/index.ts +25 -25
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/env.d.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +76 -0
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +36 -36
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +24 -24
- package/src/tests/seo_parity.test.ts +5 -5
- package/src/tests/seo_translation_completeness.test.ts +76 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/spanish_leakage.test.ts +175 -153
- package/src/tool/asteroid-impact/component.astro +251 -251
- package/src/tool/asteroid-impact/helpers.ts +17 -17
- package/src/tool/asteroid-impact/i18n/de.ts +2 -2
- package/src/tool/asteroid-impact/i18n/en.ts +2 -2
- package/src/tool/asteroid-impact/i18n/es.ts +2 -2
- package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/id.ts +2 -2
- package/src/tool/asteroid-impact/i18n/it.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
- package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
- package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
- package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
- package/src/tool/asteroid-impact/script.ts +262 -262
- package/src/tool/asteroid-impact/seo.astro +15 -15
- package/src/tool/asteroid-impact/ui.ts +69 -69
- package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
- package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
- package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
- package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
- package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
- package/src/tool/cellular-renewal/component.astro +126 -126
- package/src/tool/cellular-renewal/i18n/de.ts +1 -1
- package/src/tool/cellular-renewal/i18n/en.ts +1 -1
- package/src/tool/cellular-renewal/i18n/es.ts +1 -1
- package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/id.ts +1 -1
- package/src/tool/cellular-renewal/i18n/it.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
- package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
- package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
- package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
- package/src/tool/cellular-renewal/seo.astro +15 -15
- package/src/tool/colony-counter/i18n/de.ts +1 -1
- package/src/tool/colony-counter/i18n/en.ts +1 -1
- package/src/tool/colony-counter/i18n/es.ts +1 -1
- package/src/tool/colony-counter/i18n/fr.ts +1 -1
- package/src/tool/colony-counter/i18n/id.ts +1 -1
- package/src/tool/colony-counter/i18n/it.ts +1 -1
- package/src/tool/colony-counter/i18n/ja.ts +1 -1
- package/src/tool/colony-counter/i18n/ko.ts +1 -1
- package/src/tool/colony-counter/i18n/nl.ts +1 -1
- package/src/tool/colony-counter/i18n/pl.ts +1 -1
- package/src/tool/colony-counter/i18n/pt.ts +1 -1
- package/src/tool/colony-counter/i18n/ru.ts +1 -1
- package/src/tool/colony-counter/i18n/sv.ts +1 -1
- package/src/tool/colony-counter/i18n/tr.ts +1 -1
- package/src/tool/colony-counter/i18n/zh.ts +1 -1
- package/src/tool/colony-counter/seo.astro +15 -15
- package/src/tool/conway-life-rule-lab/component.astro +1 -1
- package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
- package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
- package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
- package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
- package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
- package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
- package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
- package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
- package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
- package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
- package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
- package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
- package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
- package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
- package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
- package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
- package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
- package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
- package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
- package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
- package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
- package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
- package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
- package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
- package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
- package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
- package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
- package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
- package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
- package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
- package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
- package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
- package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
- package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
- package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
- package/src/tool/microwave-detector/component.astro +238 -238
- package/src/tool/microwave-detector/i18n/de.ts +1 -1
- package/src/tool/microwave-detector/i18n/en.ts +1 -1
- package/src/tool/microwave-detector/i18n/es.ts +1 -1
- package/src/tool/microwave-detector/i18n/fr.ts +1 -1
- package/src/tool/microwave-detector/i18n/id.ts +1 -1
- package/src/tool/microwave-detector/i18n/it.ts +1 -1
- package/src/tool/microwave-detector/i18n/ja.ts +1 -1
- package/src/tool/microwave-detector/i18n/ko.ts +1 -1
- package/src/tool/microwave-detector/i18n/nl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pt.ts +1 -1
- package/src/tool/microwave-detector/i18n/ru.ts +1 -1
- package/src/tool/microwave-detector/i18n/sv.ts +1 -1
- package/src/tool/microwave-detector/i18n/tr.ts +1 -1
- package/src/tool/microwave-detector/i18n/zh.ts +1 -1
- package/src/tool/microwave-detector/seo.astro +15 -15
- package/src/tool/natural-selection-drift/component.astro +135 -135
- package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
- package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
- package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
- package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
- package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
- package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
- package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
- package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
- package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
- package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
- package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
- package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
- package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
- package/src/tool/radioactive-decay/i18n/de.ts +168 -164
- package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
- package/src/tool/radioactive-decay/i18n/id.ts +169 -165
- package/src/tool/radioactive-decay/i18n/it.ts +76 -74
- package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
- package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
- package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
- package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
- package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
- package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
- package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
- package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
- package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
- package/src/tool/simulation-probability/component.astro +138 -138
- package/src/tool/simulation-probability/i18n/de.ts +1 -1
- package/src/tool/simulation-probability/i18n/en.ts +1 -1
- package/src/tool/simulation-probability/i18n/es.ts +1 -1
- package/src/tool/simulation-probability/i18n/fr.ts +1 -1
- package/src/tool/simulation-probability/i18n/id.ts +1 -1
- package/src/tool/simulation-probability/i18n/it.ts +1 -1
- package/src/tool/simulation-probability/i18n/ja.ts +1 -1
- package/src/tool/simulation-probability/i18n/ko.ts +1 -1
- package/src/tool/simulation-probability/i18n/nl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pt.ts +1 -1
- package/src/tool/simulation-probability/i18n/ru.ts +1 -1
- package/src/tool/simulation-probability/i18n/sv.ts +1 -1
- package/src/tool/simulation-probability/i18n/tr.ts +1 -1
- package/src/tool/simulation-probability/i18n/zh.ts +1 -1
- package/src/tool/simulation-probability/seo.astro +15 -15
- package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
- package/src/tool/temperature-timeline/i18n/de.ts +2 -1
- package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
- package/src/tool/temperature-timeline/i18n/it.ts +142 -141
- package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
- package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
- package/src/tool/three-body-problem/app.ts +4 -4
- package/src/tool/three-body-problem/component.astro +6 -6
- package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
- package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
- package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
- package/src/types.ts +1 -1
|
@@ -1,156 +1,159 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
-
|
|
4
|
-
const slug = 'simulering-av-naturligt-urval-genetisk-drift';
|
|
5
|
-
const title = 'Simulering av naturligt urval och genetisk drift';
|
|
6
|
-
const description =
|
|
7
|
-
'Se i realtid hur selektionstryck, mutation, genetisk drift och reproduktion ändrar allelfrekvenser.';
|
|
8
|
-
|
|
9
|
-
const howTo = [
|
|
10
|
-
{
|
|
11
|
-
name: 'Välj populationsstorlek',
|
|
12
|
-
text: 'Välj en liten eller stor population för att se hur urvalsstorlek förändrar den evolutionära stabiliteten.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'Justera selektion och drift',
|
|
16
|
-
text: 'Öka selektionstrycket för att gynna en egenskap, eller öka driftintensiteten för att låta slumpen dominera.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'Följ generationernas utveckling',
|
|
20
|
-
text: 'Kör simuleringen och jämför dominerande egenskaper, fitness och variation över tid.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'Tolka balansen',
|
|
24
|
-
text: 'Använd de slutliga mätvärdena för att förstå när anpassning vinner och när slumpmässig fluktuation tar över.',
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
const faq = [
|
|
29
|
-
{
|
|
30
|
-
question: 'Vad är skillnaden mellan naturligt urval och genetisk drift?',
|
|
31
|
-
answer: 'Naturligt urval är en icke-slumpmässig process där gynnsamma egenskaper blir vanligare. Genetisk drift är slumpmässig förändring av allelfrekvenser i en population, starkast i små populationer.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
question: 'Varför förändras små populationer snabbare?',
|
|
35
|
-
answer: 'Med färre individer har slumpmässigt urval en större effekt. Det innebär att slumpen kan ändra allelfrekvenser mer dramatiskt från en generation till nästa.',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
question: 'Kan drift övervinna urval?',
|
|
39
|
-
answer: 'Ja. Om driften är tillräckligt stark kan en gynnsam egenskap försvinna av slumpen, särskilt när populationen är liten.',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
question: 'Vad betyder fitness i denna simulator?',
|
|
43
|
-
answer: 'Fitness är ett förenklat mått på hur väl populationen är anpassad till den valda miljön.',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
question: 'Varför spelar populationsstorlek så stor roll?',
|
|
47
|
-
answer: 'Populationsstorleken avgör hur starkt slumpmässigt urval påverkar allelfrekvenser. I stora populationer syns urvalet tydligare.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
question: 'När bör jag använda denna simulator?',
|
|
51
|
-
answer: 'Använd den för att få en visuell förståelse för evolutionsmekanismer och skilja på riktade krafter som urval och stokastiska krafter som drift.',
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
export const content: NaturalSelectionLocaleContent = {
|
|
56
|
-
slug,
|
|
57
|
-
title,
|
|
58
|
-
description,
|
|
59
|
-
ui: {
|
|
60
|
-
population: 'Populationsstorlek',
|
|
61
|
-
generations: 'Generationer',
|
|
62
|
-
mutationRate: 'Mutationshastighet',
|
|
63
|
-
selectionPressure: 'Selektionstryck',
|
|
64
|
-
driftIntensity: 'Driftintensitet',
|
|
65
|
-
alleleCount: 'Startalleler',
|
|
66
|
-
innovationRate: 'Innovationshastighet',
|
|
67
|
-
run: 'Starta simulering',
|
|
68
|
-
dominantTrait: 'Dominerande egenskap',
|
|
69
|
-
fitness: 'Slutlig fitness',
|
|
70
|
-
diversity: 'Genetisk variation',
|
|
71
|
-
evolutionConsole: 'Evolutionskonsol',
|
|
72
|
-
populationLabel: 'Population',
|
|
73
|
-
aliveLabel: 'levande',
|
|
74
|
-
alleleCountsLabel: 'Allelräkning',
|
|
75
|
-
alleleDefault: 'Allel 1',
|
|
76
|
-
populationValueLabel: 'Population',
|
|
77
|
-
},
|
|
78
|
-
seo: [
|
|
79
|
-
{
|
|
80
|
-
type: 'title',
|
|
81
|
-
text: 'Naturligt urval vs genetisk drift: förstå evolution med en levande population',
|
|
82
|
-
level: 2,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
type: 'paragraph',
|
|
86
|
-
html: 'Denna simulator hjälper dig att se skillnaden mellan selektion och drift på ett tydligt sätt genom levande visualisering.',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
type: 'title',
|
|
90
|
-
text: 'Vad kontrollerna betyder och varför de är viktiga',
|
|
91
|
-
level: 3,
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
type: 'paragraph',
|
|
95
|
-
html: 'Naturligt urval ökar frekvensen av egenskaper som förbättrar överlevnad. Genetisk drift ändrar allelfrekvenser av slump.',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'paragraph',
|
|
99
|
-
html: 'Båda krafterna är alltid närvarande och samverkar i varje generation.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'title',
|
|
103
|
-
text: 'Hur du läser simuleringsresultaten',
|
|
104
|
-
level: 3,
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: 'Mätvärdena i realtid hjälper dig att tolka systemets förändringar.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'title',
|
|
112
|
-
text: 'Varför populationsstorlek förändrar bilden',
|
|
113
|
-
level: 3,
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'list',
|
|
117
|
-
items: [
|
|
118
|
-
'<strong>Selektionstryck:</strong> Hur starkt miljön belönar en egenskap.',
|
|
119
|
-
'<strong>Driftintensitet:</strong> Hur mycket slumpmässigt urval ändrar populationen.',
|
|
120
|
-
'<strong>Mutationshastighet:</strong> Hur ofta ny variation uppstår.',
|
|
121
|
-
'<strong>Allelantal:</strong> Antal startalleler.',
|
|
122
|
-
'<strong>Genetisk variation:</strong> Råmaterialet för evolution.',
|
|
123
|
-
],
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'paragraph',
|
|
127
|
-
html: 'Verktyget ger ett snabbt och praktiskt sätt att förstå evolutionsbiologi.',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'title',
|
|
131
|
-
text: 'Snabba exempel att testa',
|
|
132
|
-
level: 3,
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: 'table',
|
|
136
|
-
headers: ['Mål', 'Vad du ska ändra', 'Vad du bör se'],
|
|
137
|
-
rows: [
|
|
138
|
-
['Visa selektionsseger', 'Öka selektionstryck och håll drift låg', 'En allel dominerar över tid.'],
|
|
139
|
-
['Visa slumpmässig drift', 'Minska populationen och öka drift', 'Allelfrekvenser svänger oförutsägbart.'],
|
|
140
|
-
['Visa ny variation', 'Öka mutation och innovation', 'Nya alleler uppstår kontinuerligt.'],
|
|
141
|
-
],
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: 'paragraph',
|
|
145
|
-
html: 'Visualiseringen gör verktyget idealiskt för undervisning och självstudier.',
|
|
146
|
-
},
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
+
|
|
4
|
+
const slug = 'simulering-av-naturligt-urval-genetisk-drift';
|
|
5
|
+
const title = 'Simulering av naturligt urval och genetisk drift';
|
|
6
|
+
const description =
|
|
7
|
+
'Se i realtid hur selektionstryck, mutation, genetisk drift och reproduktion ändrar allelfrekvenser.';
|
|
8
|
+
|
|
9
|
+
const howTo = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Välj populationsstorlek',
|
|
12
|
+
text: 'Välj en liten eller stor population för att se hur urvalsstorlek förändrar den evolutionära stabiliteten.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Justera selektion och drift',
|
|
16
|
+
text: 'Öka selektionstrycket för att gynna en egenskap, eller öka driftintensiteten för att låta slumpen dominera.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Följ generationernas utveckling',
|
|
20
|
+
text: 'Kör simuleringen och jämför dominerande egenskaper, fitness och variation över tid.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Tolka balansen',
|
|
24
|
+
text: 'Använd de slutliga mätvärdena för att förstå när anpassning vinner och när slumpmässig fluktuation tar över.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const faq = [
|
|
29
|
+
{
|
|
30
|
+
question: 'Vad är skillnaden mellan naturligt urval och genetisk drift?',
|
|
31
|
+
answer: 'Naturligt urval är en icke-slumpmässig process där gynnsamma egenskaper blir vanligare. Genetisk drift är slumpmässig förändring av allelfrekvenser i en population, starkast i små populationer.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: 'Varför förändras små populationer snabbare?',
|
|
35
|
+
answer: 'Med färre individer har slumpmässigt urval en större effekt. Det innebär att slumpen kan ändra allelfrekvenser mer dramatiskt från en generation till nästa.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Kan drift övervinna urval?',
|
|
39
|
+
answer: 'Ja. Om driften är tillräckligt stark kan en gynnsam egenskap försvinna av slumpen, särskilt när populationen är liten.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Vad betyder fitness i denna simulator?',
|
|
43
|
+
answer: 'Fitness är ett förenklat mått på hur väl populationen är anpassad till den valda miljön.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'Varför spelar populationsstorlek så stor roll?',
|
|
47
|
+
answer: 'Populationsstorleken avgör hur starkt slumpmässigt urval påverkar allelfrekvenser. I stora populationer syns urvalet tydligare.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: 'När bör jag använda denna simulator?',
|
|
51
|
+
answer: 'Använd den för att få en visuell förståelse för evolutionsmekanismer och skilja på riktade krafter som urval och stokastiska krafter som drift.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: NaturalSelectionLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
population: 'Populationsstorlek',
|
|
61
|
+
generations: 'Generationer',
|
|
62
|
+
mutationRate: 'Mutationshastighet',
|
|
63
|
+
selectionPressure: 'Selektionstryck',
|
|
64
|
+
driftIntensity: 'Driftintensitet',
|
|
65
|
+
alleleCount: 'Startalleler',
|
|
66
|
+
innovationRate: 'Innovationshastighet',
|
|
67
|
+
run: 'Starta simulering',
|
|
68
|
+
dominantTrait: 'Dominerande egenskap',
|
|
69
|
+
fitness: 'Slutlig fitness',
|
|
70
|
+
diversity: 'Genetisk variation',
|
|
71
|
+
evolutionConsole: 'Evolutionskonsol',
|
|
72
|
+
populationLabel: 'Population',
|
|
73
|
+
aliveLabel: 'levande',
|
|
74
|
+
alleleCountsLabel: 'Allelräkning',
|
|
75
|
+
alleleDefault: 'Allel 1',
|
|
76
|
+
populationValueLabel: 'Population',
|
|
77
|
+
},
|
|
78
|
+
seo: [
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'Naturligt urval vs genetisk drift: förstå evolution med en levande population',
|
|
82
|
+
level: 2,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Denna simulator hjälper dig att se skillnaden mellan selektion och drift på ett tydligt sätt genom levande visualisering.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vad kontrollerna betyder och varför de är viktiga',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Naturligt urval ökar frekvensen av egenskaper som förbättrar överlevnad. Genetisk drift ändrar allelfrekvenser av slump.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Båda krafterna är alltid närvarande och samverkar i varje generation.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Hur du läser simuleringsresultaten',
|
|
104
|
+
level: 3,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Mätvärdena i realtid hjälper dig att tolka systemets förändringar.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Varför populationsstorlek förändrar bilden',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'list',
|
|
117
|
+
items: [
|
|
118
|
+
'<strong>Selektionstryck:</strong> Hur starkt miljön belönar en egenskap.',
|
|
119
|
+
'<strong>Driftintensitet:</strong> Hur mycket slumpmässigt urval ändrar populationen.',
|
|
120
|
+
'<strong>Mutationshastighet:</strong> Hur ofta ny variation uppstår.',
|
|
121
|
+
'<strong>Allelantal:</strong> Antal startalleler.',
|
|
122
|
+
'<strong>Genetisk variation:</strong> Råmaterialet för evolution.',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: 'Verktyget ger ett snabbt och praktiskt sätt att förstå evolutionsbiologi.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: 'Snabba exempel att testa',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'table',
|
|
136
|
+
headers: ['Mål', 'Vad du ska ändra', 'Vad du bör se'],
|
|
137
|
+
rows: [
|
|
138
|
+
['Visa selektionsseger', 'Öka selektionstryck och håll drift låg', 'En allel dominerar över tid.'],
|
|
139
|
+
['Visa slumpmässig drift', 'Minska populationen och öka drift', 'Allelfrekvenser svänger oförutsägbart.'],
|
|
140
|
+
['Visa ny variation', 'Öka mutation och innovation', 'Nya alleler uppstår kontinuerligt.'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'Visualiseringen gör verktyget idealiskt för undervisning och självstudier.',
|
|
146
|
+
},
|
|
147
|
+
{ type: 'paragraph', html: 'Den här förklaringen tydliggör modellens antaganden och visar hur parametrarna ändrar resultatet. Ändra en variabel i taget och jämför flera körningar så att varje skillnad kan kopplas till en tydlig orsak. Visualiseringen är en pedagogisk approximation: ett verkligt system innehåller fler variabler, mätosäkerheter och randvillkor. Använd resultatet för att förstå storleksordningar, ställa frågor och jämföra scenarier. För praktiska beslut eller vetenskaplig analys måste primärdata, enheter och relevanta källor alltid kontrolleras. Spara inställningarna om du vill upprepa beräkningen och diskutera modellens begränsningar.' },
|
|
148
|
+
{ type: 'paragraph', html: 'Upprepa beräkningen med samma inställningar och ändra sedan en indata åt gången. Skriv ned startvärden, beräkningsregler och gränser så att modellens mönster kan skiljas från numerisk variation eller slump. Resultatet är pedagogiskt och ska läsas tillsammans med antaganden och begränsningar. Verkliga mätningar eller konstruktioner kräver ytterligare data och sakkunnig granskning.' },
|
|
149
|
+
{ type: 'paragraph', html: 'Jämför därför flera oberoende körningar och se om samma mönster återkommer.' },
|
|
147
150
|
],
|
|
148
151
|
faq,
|
|
149
|
-
bibliography,
|
|
150
|
-
howTo,
|
|
151
|
-
schemas: [
|
|
152
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
153
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
154
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
155
|
-
],
|
|
156
|
-
};
|
|
152
|
+
bibliography,
|
|
153
|
+
howTo,
|
|
154
|
+
schemas: [
|
|
155
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
156
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
157
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
158
|
+
],
|
|
159
|
+
};
|