@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,204 +1,204 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
-
|
|
4
|
-
const slug = 'simulateur-selection-naturelle-derive-genetique';
|
|
5
|
-
const title = 'Simulateur de selection naturelle et de derive genetique';
|
|
6
|
-
const description =
|
|
7
|
-
'Observez en temps reel comment la pression de selection, la mutation, la derive et la reproduction modifient les frequences alleliques.';
|
|
8
|
-
|
|
9
|
-
const howTo = [
|
|
10
|
-
{
|
|
11
|
-
name: 'Definir la population',
|
|
12
|
-
text: 'Choisissez une petite ou une grande population pour voir comment la taille de l echantillon change la stabilite evolutive.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'Regler selection et derive',
|
|
16
|
-
text: 'Augmentez la pression de selection pour favoriser un trait, ou augmentez la derive pour laisser le hasard prendre le dessus.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'Observer les generations',
|
|
20
|
-
text: 'Lancez la simulation et comparez trait dominant, fitness et diversite au fil du temps.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'Interpreter les resultats',
|
|
24
|
-
text: 'Utilisez les metriques finales pour comprendre quand l adaptation gagne et quand la fluctuation aleatoire domine.',
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
const faq = [
|
|
29
|
-
{
|
|
30
|
-
question: 'Quelle est la difference entre selection naturelle et derive genetique ?',
|
|
31
|
-
answer:
|
|
32
|
-
'La selection naturelle est un processus non aleatoire ou les traits qui ameliorent la survie ou la reproduction deviennent plus frequents. La derive genetique est un changement aleatoire des frequences alleliques, surtout visible dans les petites populations.',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
question: 'Pourquoi les petites populations changent elles plus vite ?',
|
|
36
|
-
answer:
|
|
37
|
-
'Avec moins d individus, l echantillonnage aleatoire a un effet plus important. Les evenements fortuits deplacent donc plus fortement les frequences d une generation a l autre.',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
question: 'La derive peut elle depasser la selection ?',
|
|
41
|
-
answer:
|
|
42
|
-
'Oui. Si la derive est assez forte, un trait avantageux peut disparaitre par hasard, surtout lorsque la population est petite ou que la pression de selection est faible.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
question: 'Que signifie fitness dans ce simulateur ?',
|
|
46
|
-
answer:
|
|
47
|
-
'Fitness est une note simplifiee qui represente a quel point la population est adaptee a l environnement choisi. C est une metrique pedagogique, pas une mesure de laboratoire.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
question: 'Pourquoi la taille de la population est elle si importante ?',
|
|
51
|
-
answer:
|
|
52
|
-
'La taille de la population determine a quel point le tirage aleatoire affecte les frequences alleliques. Dans les grandes populations, la selection est plus visible car le bruit s annule. Dans les petites, le hasard peut dominer un trait utile.',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
question: 'Quand utiliser ce simulateur plutot qu une explication theorique ?',
|
|
56
|
-
answer:
|
|
57
|
-
'Utilisez le lorsque vous voulez comprendre l intuition de l evolution, surtout la difference entre une force directionnelle comme la selection et une force stochastique comme la derive.',
|
|
58
|
-
},
|
|
59
|
-
];
|
|
60
|
-
|
|
61
|
-
export const content: NaturalSelectionLocaleContent = {
|
|
62
|
-
slug,
|
|
63
|
-
title,
|
|
64
|
-
description,
|
|
65
|
-
ui: {
|
|
66
|
-
population: 'Taille de la population',
|
|
67
|
-
generations: 'Generations',
|
|
68
|
-
mutationRate: 'Taux de mutation',
|
|
69
|
-
selectionPressure: 'Pression de selection',
|
|
70
|
-
driftIntensity: 'Intensite de derive',
|
|
71
|
-
alleleCount: 'Alleles initiaux',
|
|
72
|
-
innovationRate: 'Taux d innovation',
|
|
73
|
-
run: 'Lancer la simulation',
|
|
74
|
-
dominantTrait: 'Trait dominant',
|
|
75
|
-
fitness: 'Fitness finale',
|
|
76
|
-
diversity: 'Diversite genetique',
|
|
77
|
-
evolutionConsole: 'Console evolutive',
|
|
78
|
-
populationLabel: 'Population',
|
|
79
|
-
aliveLabel: 'vivants',
|
|
80
|
-
alleleCountsLabel: 'Comptage des alleles',
|
|
81
|
-
alleleDefault: 'Allele 1',
|
|
82
|
-
populationValueLabel: 'Population',
|
|
83
|
-
},
|
|
84
|
-
seo: [
|
|
85
|
-
{
|
|
86
|
-
type: 'title',
|
|
87
|
-
text: 'Selection naturelle vs derive genetique: comprendre l evolution avec une population vivante',
|
|
88
|
-
level: 2,
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
type: 'paragraph',
|
|
92
|
-
html:
|
|
93
|
-
'Si vous essayez de comprendre selection naturelle vs derive genetique, ce simulateur apporte la couche visuelle qui manque souvent. Au lieu d une definition statique, vous voyez une population evoluer en temps reel pendant que la pression de selection, la mutation, la derive et la reproduction interagissent.',
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
type: 'title',
|
|
97
|
-
text: 'Ce que signifient les controles et pourquoi ils comptent',
|
|
98
|
-
level: 3,
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
type: 'paragraph',
|
|
102
|
-
html:
|
|
103
|
-
'La selection naturelle est la partie non aleatoire de l evolution. Elle augmente la frequence des traits qui ameliorent la survie ou la reproduction. La derive genetique est la partie aleatoire. Elle modifie les frequences alleliques car tous les individus ne contribuent pas de la meme facon a la generation suivante.',
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
type: 'paragraph',
|
|
107
|
-
html:
|
|
108
|
-
'L idee cle est que ces deux forces agissent en meme temps. La selection pousse la population dans une direction, alors que la derive peut l entrainer ailleurs. Dans les grandes populations, la selection domine souvent. Dans les petites, le hasard peut effacer un trait utile ou fixer un trait neutre.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'title',
|
|
112
|
-
text: 'Comment lire les resultats de la simulation',
|
|
113
|
-
level: 3,
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'paragraph',
|
|
117
|
-
html:
|
|
118
|
-
'Les metriques en direct vous aident a interpreter le systeme au fur et a mesure. Le trait dominant indique quel allele mene. La diversite genetique montre la variation restante. La fitness finale resume l adaptation de la population a l environnement choisi. Et les compteurs de vivants et de population indiquent si la lignee croît ou s effondre.',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'title',
|
|
122
|
-
text: 'Pourquoi la taille de la population change l histoire',
|
|
123
|
-
level: 3,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'list',
|
|
127
|
-
items: [
|
|
128
|
-
'<strong>Pression de selection:</strong> a quel point l environnement recompense un trait par rapport a un autre et a quelle vitesse cet avantage se propage.',
|
|
129
|
-
'<strong>Intensite de derive:</strong> combien de bruit aleatoire affecte la population a chaque generation.',
|
|
130
|
-
'<strong>Taux de mutation:</strong> a quelle frequence une nouvelle variation entre dans le systeme.',
|
|
131
|
-
'<strong>Nombre d alleles:</strong> combien d alleles explicites sont presents au depart et combien de variantes nouvelles peuvent apparaitre.',
|
|
132
|
-
'<strong>Diversite genetique:</strong> pourquoi la variation est la matiere premiere de l evolution.',
|
|
133
|
-
],
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'paragraph',
|
|
137
|
-
html:
|
|
138
|
-
'Le resultat est une facon rapide et utile de comprendre l evolution sans se limiter a des definitions abstraites. Si vous cherchez un simulateur qui explique la selection naturelle, la derive genetique, la mutation, la reproduction et pourquoi un meme point de depart peut mener a des resultats differents, cet outil est concu pour cela.',
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
type: 'title',
|
|
142
|
-
text: 'Exemples rapides a tester',
|
|
143
|
-
level: 3,
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
type: 'table',
|
|
147
|
-
headers: ['Objectif', 'A modifier', 'Ce que vous devriez voir'],
|
|
148
|
-
rows: [
|
|
149
|
-
[
|
|
150
|
-
'Montrer la victoire de la selection',
|
|
151
|
-
'Augmenter la pression de selection et reduire la derive',
|
|
152
|
-
'Un allele doit dominer avec le temps et la diversite baissera plus lentement',
|
|
153
|
-
],
|
|
154
|
-
[
|
|
155
|
-
'Montrer le hasard qui prend le dessus',
|
|
156
|
-
'Reduire la population et augmenter la derive',
|
|
157
|
-
'Les frequences doivent osciller de facon imprevisible',
|
|
158
|
-
],
|
|
159
|
-
[
|
|
160
|
-
'Montrer de nouvelles mutations',
|
|
161
|
-
'Augmenter mutation et innovation',
|
|
162
|
-
'De nouveaux alleles apparaitront et le classement changera plus souvent',
|
|
163
|
-
],
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
type: 'paragraph',
|
|
168
|
-
html:
|
|
169
|
-
'Cette combinaison de visuels en direct, de classement explicite des alleles et de metriques en temps reel rend le simulateur utile a la fois pour enseigner et pour expliquer les compromis evolutifs sans detour.',
|
|
170
|
-
},
|
|
171
|
-
],
|
|
172
|
-
faq,
|
|
173
|
-
bibliography,
|
|
174
|
-
howTo,
|
|
175
|
-
schemas: [
|
|
176
|
-
{
|
|
177
|
-
'@context': 'https://schema.org',
|
|
178
|
-
'@type': 'SoftwareApplication',
|
|
179
|
-
name: title,
|
|
180
|
-
description,
|
|
181
|
-
applicationCategory: 'EducationalApplication',
|
|
182
|
-
operatingSystem: 'Any',
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
'@context': 'https://schema.org',
|
|
186
|
-
'@type': 'FAQPage',
|
|
187
|
-
mainEntity: faq.map((item) => ({
|
|
188
|
-
'@type': 'Question',
|
|
189
|
-
name: item.question,
|
|
190
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
191
|
-
})),
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
'@context': 'https://schema.org',
|
|
195
|
-
'@type': 'HowTo',
|
|
196
|
-
name: title,
|
|
197
|
-
step: howTo.map((step) => ({
|
|
198
|
-
'@type': 'HowToStep',
|
|
199
|
-
name: step.name,
|
|
200
|
-
text: step.text,
|
|
201
|
-
})),
|
|
202
|
-
},
|
|
203
|
-
],
|
|
204
|
-
};
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
+
|
|
4
|
+
const slug = 'simulateur-selection-naturelle-derive-genetique';
|
|
5
|
+
const title = 'Simulateur de selection naturelle et de derive genetique';
|
|
6
|
+
const description =
|
|
7
|
+
'Observez en temps reel comment la pression de selection, la mutation, la derive et la reproduction modifient les frequences alleliques.';
|
|
8
|
+
|
|
9
|
+
const howTo = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Definir la population',
|
|
12
|
+
text: 'Choisissez une petite ou une grande population pour voir comment la taille de l echantillon change la stabilite evolutive.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Regler selection et derive',
|
|
16
|
+
text: 'Augmentez la pression de selection pour favoriser un trait, ou augmentez la derive pour laisser le hasard prendre le dessus.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Observer les generations',
|
|
20
|
+
text: 'Lancez la simulation et comparez trait dominant, fitness et diversite au fil du temps.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Interpreter les resultats',
|
|
24
|
+
text: 'Utilisez les metriques finales pour comprendre quand l adaptation gagne et quand la fluctuation aleatoire domine.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const faq = [
|
|
29
|
+
{
|
|
30
|
+
question: 'Quelle est la difference entre selection naturelle et derive genetique ?',
|
|
31
|
+
answer:
|
|
32
|
+
'La selection naturelle est un processus non aleatoire ou les traits qui ameliorent la survie ou la reproduction deviennent plus frequents. La derive genetique est un changement aleatoire des frequences alleliques, surtout visible dans les petites populations.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Pourquoi les petites populations changent elles plus vite ?',
|
|
36
|
+
answer:
|
|
37
|
+
'Avec moins d individus, l echantillonnage aleatoire a un effet plus important. Les evenements fortuits deplacent donc plus fortement les frequences d une generation a l autre.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
question: 'La derive peut elle depasser la selection ?',
|
|
41
|
+
answer:
|
|
42
|
+
'Oui. Si la derive est assez forte, un trait avantageux peut disparaitre par hasard, surtout lorsque la population est petite ou que la pression de selection est faible.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: 'Que signifie fitness dans ce simulateur ?',
|
|
46
|
+
answer:
|
|
47
|
+
'Fitness est une note simplifiee qui represente a quel point la population est adaptee a l environnement choisi. C est une metrique pedagogique, pas une mesure de laboratoire.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: 'Pourquoi la taille de la population est elle si importante ?',
|
|
51
|
+
answer:
|
|
52
|
+
'La taille de la population determine a quel point le tirage aleatoire affecte les frequences alleliques. Dans les grandes populations, la selection est plus visible car le bruit s annule. Dans les petites, le hasard peut dominer un trait utile.',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
question: 'Quand utiliser ce simulateur plutot qu une explication theorique ?',
|
|
56
|
+
answer:
|
|
57
|
+
'Utilisez le lorsque vous voulez comprendre l intuition de l evolution, surtout la difference entre une force directionnelle comme la selection et une force stochastique comme la derive.',
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
export const content: NaturalSelectionLocaleContent = {
|
|
62
|
+
slug,
|
|
63
|
+
title,
|
|
64
|
+
description,
|
|
65
|
+
ui: {
|
|
66
|
+
population: 'Taille de la population',
|
|
67
|
+
generations: 'Generations',
|
|
68
|
+
mutationRate: 'Taux de mutation',
|
|
69
|
+
selectionPressure: 'Pression de selection',
|
|
70
|
+
driftIntensity: 'Intensite de derive',
|
|
71
|
+
alleleCount: 'Alleles initiaux',
|
|
72
|
+
innovationRate: 'Taux d innovation',
|
|
73
|
+
run: 'Lancer la simulation',
|
|
74
|
+
dominantTrait: 'Trait dominant',
|
|
75
|
+
fitness: 'Fitness finale',
|
|
76
|
+
diversity: 'Diversite genetique',
|
|
77
|
+
evolutionConsole: 'Console evolutive',
|
|
78
|
+
populationLabel: 'Population',
|
|
79
|
+
aliveLabel: 'vivants',
|
|
80
|
+
alleleCountsLabel: 'Comptage des alleles',
|
|
81
|
+
alleleDefault: 'Allele 1',
|
|
82
|
+
populationValueLabel: 'Population',
|
|
83
|
+
},
|
|
84
|
+
seo: [
|
|
85
|
+
{
|
|
86
|
+
type: 'title',
|
|
87
|
+
text: 'Selection naturelle vs derive genetique: comprendre l evolution avec une population vivante',
|
|
88
|
+
level: 2,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Si vous essayez de comprendre selection naturelle vs derive genetique, ce simulateur apporte la couche visuelle qui manque souvent. Au lieu d une definition statique, vous voyez une population evoluer en temps reel pendant que la pression de selection, la mutation, la derive et la reproduction interagissent.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Ce que signifient les controles et pourquoi ils comptent',
|
|
98
|
+
level: 3,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html:
|
|
103
|
+
'La selection naturelle est la partie non aleatoire de l evolution. Elle augmente la frequence des traits qui ameliorent la survie ou la reproduction. La derive genetique est la partie aleatoire. Elle modifie les frequences alleliques car tous les individus ne contribuent pas de la meme facon a la generation suivante.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html:
|
|
108
|
+
'L idee cle est que ces deux forces agissent en meme temps. La selection pousse la population dans une direction, alors que la derive peut l entrainer ailleurs. Dans les grandes populations, la selection domine souvent. Dans les petites, le hasard peut effacer un trait utile ou fixer un trait neutre.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Comment lire les resultats de la simulation',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html:
|
|
118
|
+
'Les metriques en direct vous aident a interpreter le systeme au fur et a mesure. Le trait dominant indique quel allele mene. La diversite genetique montre la variation restante. La fitness finale resume l adaptation de la population a l environnement choisi. Et les compteurs de vivants et de population indiquent si la lignee croît ou s effondre.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Pourquoi la taille de la population change l histoire',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'list',
|
|
127
|
+
items: [
|
|
128
|
+
'<strong>Pression de selection:</strong> a quel point l environnement recompense un trait par rapport a un autre et a quelle vitesse cet avantage se propage.',
|
|
129
|
+
'<strong>Intensite de derive:</strong> combien de bruit aleatoire affecte la population a chaque generation.',
|
|
130
|
+
'<strong>Taux de mutation:</strong> a quelle frequence une nouvelle variation entre dans le systeme.',
|
|
131
|
+
'<strong>Nombre d alleles:</strong> combien d alleles explicites sont presents au depart et combien de variantes nouvelles peuvent apparaitre.',
|
|
132
|
+
'<strong>Diversite genetique:</strong> pourquoi la variation est la matiere premiere de l evolution.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html:
|
|
138
|
+
'Le resultat est une facon rapide et utile de comprendre l evolution sans se limiter a des definitions abstraites. Si vous cherchez un simulateur qui explique la selection naturelle, la derive genetique, la mutation, la reproduction et pourquoi un meme point de depart peut mener a des resultats differents, cet outil est concu pour cela.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Exemples rapides a tester',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'table',
|
|
147
|
+
headers: ['Objectif', 'A modifier', 'Ce que vous devriez voir'],
|
|
148
|
+
rows: [
|
|
149
|
+
[
|
|
150
|
+
'Montrer la victoire de la selection',
|
|
151
|
+
'Augmenter la pression de selection et reduire la derive',
|
|
152
|
+
'Un allele doit dominer avec le temps et la diversite baissera plus lentement',
|
|
153
|
+
],
|
|
154
|
+
[
|
|
155
|
+
'Montrer le hasard qui prend le dessus',
|
|
156
|
+
'Reduire la population et augmenter la derive',
|
|
157
|
+
'Les frequences doivent osciller de facon imprevisible',
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
'Montrer de nouvelles mutations',
|
|
161
|
+
'Augmenter mutation et innovation',
|
|
162
|
+
'De nouveaux alleles apparaitront et le classement changera plus souvent',
|
|
163
|
+
],
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html:
|
|
169
|
+
'Cette combinaison de visuels en direct, de classement explicite des alleles et de metriques en temps reel rend le simulateur utile a la fois pour enseigner et pour expliquer les compromis evolutifs sans detour.',
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
faq,
|
|
173
|
+
bibliography,
|
|
174
|
+
howTo,
|
|
175
|
+
schemas: [
|
|
176
|
+
{
|
|
177
|
+
'@context': 'https://schema.org',
|
|
178
|
+
'@type': 'SoftwareApplication',
|
|
179
|
+
name: title,
|
|
180
|
+
description,
|
|
181
|
+
applicationCategory: 'EducationalApplication',
|
|
182
|
+
operatingSystem: 'Any',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
'@context': 'https://schema.org',
|
|
186
|
+
'@type': 'FAQPage',
|
|
187
|
+
mainEntity: faq.map((item) => ({
|
|
188
|
+
'@type': 'Question',
|
|
189
|
+
name: item.question,
|
|
190
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
191
|
+
})),
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
'@context': 'https://schema.org',
|
|
195
|
+
'@type': 'HowTo',
|
|
196
|
+
name: title,
|
|
197
|
+
step: howTo.map((step) => ({
|
|
198
|
+
'@type': 'HowToStep',
|
|
199
|
+
name: step.name,
|
|
200
|
+
text: step.text,
|
|
201
|
+
})),
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
};
|