@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,158 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
-
|
|
4
|
-
const slug = 'simulator-seleksi-alam-drift-genetik';
|
|
5
|
-
const title = 'Simulator seleksi alam dan drift genetik';
|
|
6
|
-
const description =
|
|
7
|
-
'Lihat secara real time bagaimana tekanan seleksi, mutasi, drift, dan reproduksi mengubah frekuensi alel.';
|
|
8
|
-
|
|
9
|
-
const howTo = [
|
|
10
|
-
{
|
|
11
|
-
name: 'Atur ukuran populasi',
|
|
12
|
-
text: 'Pilih populasi kecil atau besar untuk melihat bagaimana ukuran sampel mengubah stabilitas evolusi.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'Sesuaikan seleksi dan drift',
|
|
16
|
-
text: 'Tingkatkan tekanan seleksi untuk mendukung satu sifat, atau naikkan intensitas drift agar kebetulan mendominasi.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'Amati perkembangan generasi',
|
|
20
|
-
text: 'Jalankan simulasi dan bandingkan sifat dominan, kebugaran, dan keragaman dari waktu ke waktu.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'Interpretasikan keseimbangan',
|
|
24
|
-
text: 'Gunakan metrik akhir untuk memahami kapan adaptasi menang dan kapan fluktuasi acak mengambil alih.',
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
const faq = [
|
|
29
|
-
{
|
|
30
|
-
question: 'Apa perbedaan antara seleksi alam dan drift genetik?',
|
|
31
|
-
answer: 'Seleksi alam adalah proses tidak acak di mana sifat yang meningkatkan kelangsungan hidup menjadi lebih umum. Drift genetik adalah perubahan acak frekuensi alel, paling kuat pada populasi kecil.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
question: 'Mengapa populasi kecil berubah lebih cepat?',
|
|
35
|
-
answer: 'Dengan lebih sedikit individu, pengambilan sampel acak memiliki efek lebih besar. Artinya peristiwa kebetulan mengubah frekuensi alel lebih dramatis.',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
question: 'Bisakah drift mengalahkan seleksi?',
|
|
39
|
-
answer: 'Ya. Jika drift cukup kuat, sifat yang menguntungkan dapat hilang secara acak, terutama ketika populasi kecil.',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
question: 'Apa arti kebugaran dalam simulator ini?',
|
|
43
|
-
answer: 'Kebugaran adalah skor sederhana yang mewakili seberapa baik populasi beradaptasi dengan lingkungan yang dipilih.',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
question: 'Mengapa ukuran populasi sangat penting?',
|
|
47
|
-
answer: 'Ukuran populasi menentukan seberapa kuat pengambilan sampel acak mempengaruhi frekuensi alel. Pada populasi besar, seleksi lebih mudah terlihat.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
question: 'Kapan saya harus menggunakan simulator ini?',
|
|
51
|
-
answer: 'Gunakan saat Anda ingin memahami intuisi evolusi dan membedakan kekuatan terarah seperti seleksi dan kekuatan stokastik seperti drift.',
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
export const content: NaturalSelectionLocaleContent = {
|
|
56
|
-
slug,
|
|
57
|
-
title,
|
|
58
|
-
description,
|
|
59
|
-
ui: {
|
|
60
|
-
population: 'Ukuran populasi',
|
|
61
|
-
generations: 'Generasi',
|
|
62
|
-
mutationRate: 'Laju mutasi',
|
|
63
|
-
selectionPressure: 'Tekanan seleksi',
|
|
64
|
-
driftIntensity: 'Intensitas drift',
|
|
65
|
-
alleleCount: 'Alel awal',
|
|
66
|
-
innovationRate: 'Laju inovasi',
|
|
67
|
-
run: 'Mulai simulasi',
|
|
68
|
-
dominantTrait: 'Sifat dominan',
|
|
69
|
-
fitness: 'Fitness akhir',
|
|
70
|
-
diversity: 'Keragaman genetik',
|
|
71
|
-
evolutionConsole: 'Konsol evolusi',
|
|
72
|
-
populationLabel: 'Populasi',
|
|
73
|
-
aliveLabel: 'hidup',
|
|
74
|
-
alleleCountsLabel: 'Jumlah alel',
|
|
75
|
-
alleleDefault: 'Alel 1',
|
|
76
|
-
populationValueLabel: 'Populasi',
|
|
77
|
-
},
|
|
78
|
-
seo: [
|
|
79
|
-
{
|
|
80
|
-
type: 'title',
|
|
81
|
-
text: 'Seleksi alam vs drift genetik: pahami evolusi dengan populasi hidup',
|
|
82
|
-
level: 2,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
type: 'paragraph',
|
|
86
|
-
html: 'Simulator ini memberi cara yang jelas dan praktis untuk melihat seleksi dan drift dalam waktu nyata.',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
type: 'title',
|
|
90
|
-
text: 'Arti kontrol dan mengapa itu penting',
|
|
91
|
-
level: 3,
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
type: 'paragraph',
|
|
95
|
-
html: 'Seleksi alam meningkatkan frekuensi sifat yang menguntungkan. Drift genetik mengubah frekuensi secara acak.',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'paragraph',
|
|
99
|
-
html: 'Kedua kekuatan selalu hadir dan berinteraksi di setiap generasi.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'title',
|
|
103
|
-
text: 'Cara membaca hasil simulasi',
|
|
104
|
-
level: 3,
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: 'Metrik langsung membantu Anda membaca perubahan sistem.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'title',
|
|
112
|
-
text: 'Mengapa ukuran populasi mengubah cerita',
|
|
113
|
-
level: 3,
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'list',
|
|
117
|
-
items: [
|
|
118
|
-
'<strong>Tekanan seleksi:</strong> Seberapa kuat lingkungan mendukung suatu sifat.',
|
|
119
|
-
'<strong>Intensitas drift:</strong> Seberapa banyak sampel acak mengubah populasi.',
|
|
120
|
-
'<strong>Laju mutasi:</strong> Seberapa sering variasi baru muncul.',
|
|
121
|
-
'<strong>Jumlah alel:</strong> Alel awal saat simulasi dimulai.',
|
|
122
|
-
'<strong>Keragaman genetik:</strong> Bahan mentah utama evolusi.',
|
|
123
|
-
],
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'paragraph',
|
|
127
|
-
html: 'Alat ini menyediakan cara praktis untuk memahami biologi evolusi.',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'title',
|
|
131
|
-
text: 'Contoh cepat untuk dicoba',
|
|
132
|
-
level: 3,
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: 'table',
|
|
136
|
-
headers: ['Tujuan', 'Apa yang diubah', 'Apa yang harus dilihat'],
|
|
137
|
-
rows: [
|
|
138
|
-
['Tunjukkan kemenangan seleksi', 'Naikkan tekanan seleksi dan jaga drift rendah', 'Satu alel mendominasi seiring waktu.'],
|
|
139
|
-
['Tunjukkan drift acak', 'Turunkan ukuran populasi dan naikkan drift', 'Frekuensi alel berfluktuasi tidak menentu.'],
|
|
140
|
-
['Tunjukkan variasi baru', 'Tingkatkan mutasi dan inovasi', 'Alel baru bermunculan secara kontinyu.'],
|
|
141
|
-
],
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
type: 'paragraph',
|
|
145
|
-
html: 'Visualisasi langsung membuat alat ini sangat berguna untuk pembelajaran.',
|
|
146
|
-
},
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
|
+
|
|
4
|
+
const slug = 'simulator-seleksi-alam-drift-genetik';
|
|
5
|
+
const title = 'Simulator seleksi alam dan drift genetik';
|
|
6
|
+
const description =
|
|
7
|
+
'Lihat secara real time bagaimana tekanan seleksi, mutasi, drift, dan reproduksi mengubah frekuensi alel.';
|
|
8
|
+
|
|
9
|
+
const howTo = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Atur ukuran populasi',
|
|
12
|
+
text: 'Pilih populasi kecil atau besar untuk melihat bagaimana ukuran sampel mengubah stabilitas evolusi.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Sesuaikan seleksi dan drift',
|
|
16
|
+
text: 'Tingkatkan tekanan seleksi untuk mendukung satu sifat, atau naikkan intensitas drift agar kebetulan mendominasi.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Amati perkembangan generasi',
|
|
20
|
+
text: 'Jalankan simulasi dan bandingkan sifat dominan, kebugaran, dan keragaman dari waktu ke waktu.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Interpretasikan keseimbangan',
|
|
24
|
+
text: 'Gunakan metrik akhir untuk memahami kapan adaptasi menang dan kapan fluktuasi acak mengambil alih.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const faq = [
|
|
29
|
+
{
|
|
30
|
+
question: 'Apa perbedaan antara seleksi alam dan drift genetik?',
|
|
31
|
+
answer: 'Seleksi alam adalah proses tidak acak di mana sifat yang meningkatkan kelangsungan hidup menjadi lebih umum. Drift genetik adalah perubahan acak frekuensi alel, paling kuat pada populasi kecil.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: 'Mengapa populasi kecil berubah lebih cepat?',
|
|
35
|
+
answer: 'Dengan lebih sedikit individu, pengambilan sampel acak memiliki efek lebih besar. Artinya peristiwa kebetulan mengubah frekuensi alel lebih dramatis.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Bisakah drift mengalahkan seleksi?',
|
|
39
|
+
answer: 'Ya. Jika drift cukup kuat, sifat yang menguntungkan dapat hilang secara acak, terutama ketika populasi kecil.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Apa arti kebugaran dalam simulator ini?',
|
|
43
|
+
answer: 'Kebugaran adalah skor sederhana yang mewakili seberapa baik populasi beradaptasi dengan lingkungan yang dipilih.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'Mengapa ukuran populasi sangat penting?',
|
|
47
|
+
answer: 'Ukuran populasi menentukan seberapa kuat pengambilan sampel acak mempengaruhi frekuensi alel. Pada populasi besar, seleksi lebih mudah terlihat.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: 'Kapan saya harus menggunakan simulator ini?',
|
|
51
|
+
answer: 'Gunakan saat Anda ingin memahami intuisi evolusi dan membedakan kekuatan terarah seperti seleksi dan kekuatan stokastik seperti drift.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: NaturalSelectionLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
population: 'Ukuran populasi',
|
|
61
|
+
generations: 'Generasi',
|
|
62
|
+
mutationRate: 'Laju mutasi',
|
|
63
|
+
selectionPressure: 'Tekanan seleksi',
|
|
64
|
+
driftIntensity: 'Intensitas drift',
|
|
65
|
+
alleleCount: 'Alel awal',
|
|
66
|
+
innovationRate: 'Laju inovasi',
|
|
67
|
+
run: 'Mulai simulasi',
|
|
68
|
+
dominantTrait: 'Sifat dominan',
|
|
69
|
+
fitness: 'Fitness akhir',
|
|
70
|
+
diversity: 'Keragaman genetik',
|
|
71
|
+
evolutionConsole: 'Konsol evolusi',
|
|
72
|
+
populationLabel: 'Populasi',
|
|
73
|
+
aliveLabel: 'hidup',
|
|
74
|
+
alleleCountsLabel: 'Jumlah alel',
|
|
75
|
+
alleleDefault: 'Alel 1',
|
|
76
|
+
populationValueLabel: 'Populasi',
|
|
77
|
+
},
|
|
78
|
+
seo: [
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'Seleksi alam vs drift genetik: pahami evolusi dengan populasi hidup',
|
|
82
|
+
level: 2,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Simulator ini memberi cara yang jelas dan praktis untuk melihat seleksi dan drift dalam waktu nyata.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Arti kontrol dan mengapa itu penting',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Seleksi alam meningkatkan frekuensi sifat yang menguntungkan. Drift genetik mengubah frekuensi secara acak.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Kedua kekuatan selalu hadir dan berinteraksi di setiap generasi.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Cara membaca hasil simulasi',
|
|
104
|
+
level: 3,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Metrik langsung membantu Anda membaca perubahan sistem.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Mengapa ukuran populasi mengubah cerita',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'list',
|
|
117
|
+
items: [
|
|
118
|
+
'<strong>Tekanan seleksi:</strong> Seberapa kuat lingkungan mendukung suatu sifat.',
|
|
119
|
+
'<strong>Intensitas drift:</strong> Seberapa banyak sampel acak mengubah populasi.',
|
|
120
|
+
'<strong>Laju mutasi:</strong> Seberapa sering variasi baru muncul.',
|
|
121
|
+
'<strong>Jumlah alel:</strong> Alel awal saat simulasi dimulai.',
|
|
122
|
+
'<strong>Keragaman genetik:</strong> Bahan mentah utama evolusi.',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: 'Alat ini menyediakan cara praktis untuk memahami biologi evolusi.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: 'Contoh cepat untuk dicoba',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'table',
|
|
136
|
+
headers: ['Tujuan', 'Apa yang diubah', 'Apa yang harus dilihat'],
|
|
137
|
+
rows: [
|
|
138
|
+
['Tunjukkan kemenangan seleksi', 'Naikkan tekanan seleksi dan jaga drift rendah', 'Satu alel mendominasi seiring waktu.'],
|
|
139
|
+
['Tunjukkan drift acak', 'Turunkan ukuran populasi dan naikkan drift', 'Frekuensi alel berfluktuasi tidak menentu.'],
|
|
140
|
+
['Tunjukkan variasi baru', 'Tingkatkan mutasi dan inovasi', 'Alel baru bermunculan secara kontinyu.'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'Visualisasi langsung membuat alat ini sangat berguna untuk pembelajaran.',
|
|
146
|
+
},
|
|
147
|
+
{ type: 'paragraph', html: 'Penjelasan ini memperjelas asumsi model dan menunjukkan bagaimana parameter mengubah hasil. Ubah satu nilai saja setiap kali lalu bandingkan beberapa percobaan, sehingga setiap perbedaan dapat dikaitkan dengan penyebab yang jelas. Visualisasi ini merupakan pendekatan pembelajaran; sistem nyata memiliki lebih banyak variabel, ketidakpastian pengukuran, dan kondisi batas. Gunakan hasilnya untuk memahami skala, menyusun pertanyaan, dan membandingkan skenario. Untuk keputusan praktis atau analisis ilmiah, periksa kembali data primer, satuan, dan sumber khusus yang relevan. Catat pengaturan agar perhitungan dapat diulang dan keterbatasan model dapat didiskusikan dengan tepat.' },
|
|
148
|
+
{ type: 'paragraph', html: 'Bandingkan perubahan pada hasil dengan menjalankan model kembali menggunakan parameter yang sama. Catat nilai awal, aturan perhitungan, dan batas yang digunakan. Dengan cara ini pembaca dapat membedakan pola yang berasal dari model dari variasi numerik atau kebetulan pada satu percobaan. Hasil ini bersifat edukatif dan perlu dipahami bersama penjelasan, asumsi, serta keterbatasan alat.' },
|
|
147
149
|
],
|
|
148
150
|
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
|
-
};
|
|
151
|
+
bibliography,
|
|
152
|
+
howTo,
|
|
153
|
+
schemas: [
|
|
154
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
155
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
156
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
157
|
+
],
|
|
158
|
+
};
|