@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,147 +1,148 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'conway-life-rule-lab';
|
|
5
|
-
const title = '콘웨이 생명 게임 규칙 연구실';
|
|
6
|
-
const description = 'B/S 규칙, 패턴 시드, 실시간 지표, 반응형 보드로 콘웨이형 세포 자동자를 플레이하고 편집하며 비교합니다.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: '보드 씨 뿌리기',
|
|
11
|
-
text: '글라이더, 펄서, 고스퍼 건 등의 패턴을 선택해 격자에 배치하거나 개체군을 무작위로 생성합니다.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: '시뮬레이션 실행',
|
|
15
|
-
text: '재생, 일시정지, 단계, 템포 컨트롤로 탄생, 죽음, 밀도, 안정성의 변화를 관찰합니다.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: '규칙 변경',
|
|
19
|
-
text: '프리셋을 전환하거나 B3/S23, B36/S23, B3678/S34678 같은 B/S 표기를 입력해 다양한 자동자를 비교합니다.',
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
const faq = [
|
|
24
|
-
{
|
|
25
|
-
question: '생명 게임의 B/S 표기란 무엇인가요?',
|
|
26
|
-
answer: 'B/S 표기는 새로운 살아있는 셀을 만드는 이웃 수와 기존 살아있는 셀이 생존하는 이웃 수를 나열합니다. 콘웨이 생명 게임은 B3/S23입니다: 죽은 셀은 정확히 세 이웃으로 탄생하고, 살아있는 셀은 두 개 또는 세 개의 이웃으로 생존합니다.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: '왜 이 도구가 단순 시뮬레이터가 아닌 규칙 연구실인가요?',
|
|
30
|
-
answer: '클래식 콘웨이 규칙이 포함되어 있지만, 시뮬레이터는 생명형 세포 자동자 계열을 비교하기 위해 구축되었습니다. 탄생 및 생존 수를 편집하면 장기 행동이 변하여 복제자, 파동, 얼어붙은 섬, 혼돈 성장 또는 멸종을 생성합니다.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: '시뮬레이터에서 안정성은 무엇을 의미하나요?',
|
|
34
|
-
answer: '안정성은 마지막 세대에서 군집이 얼마나 변화했는지 추정합니다. 높은 안정성은 개체 수에 비해 탄생하거나 죽은 셀이 적음을 의미하고, 낮은 안정성은 보드가 난류 상태이거나 빠르게 재편성되고 있음을 의미합니다.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: '보드에 가장자리가 있나요?',
|
|
38
|
-
answer: '시뮬레이션은 토러스형 감싸기를 사용하므로 왼쪽 가장자리는 오른쪽 가장자리와 연결되고 위쪽은 아래쪽과 연결됩니다. 이렇게 하면 패턴이 딱딱한 경계에서 사라지지 않고 자연스럽게 이동합니다.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: '직접 시작 패턴을 그릴 수 있나요?',
|
|
42
|
-
answer: '네. 시뮬레이션을 일시정지하고 보드의 셀을 클릭하거나 탭하여 전환할 수 있습니다. 손으로 그린 셀을 내장 패턴과 결합하고 어떤 규칙 프리셋 아래서도 결과를 실행할 수 있습니다.',
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
export const content: ToolLocaleContent = {
|
|
47
|
-
slug,
|
|
48
|
-
title,
|
|
49
|
-
description,
|
|
50
|
-
ui: {
|
|
51
|
-
boardLabel: 'Life 계열 세포 자동자 보드',
|
|
52
|
-
play: '재생',
|
|
53
|
-
pause: '일시정지',
|
|
54
|
-
step: '단계',
|
|
55
|
-
clear: '빈 캔버스',
|
|
56
|
-
randomize: '무작위',
|
|
57
|
-
ruleLabel: '규칙 표기',
|
|
58
|
-
ruleHelp: '탄생 / 생존 수',
|
|
59
|
-
speedLabel: '템포',
|
|
60
|
-
densityLabel: '초기 밀도',
|
|
61
|
-
patternLabel: '패턴',
|
|
62
|
-
placePattern: '패턴 배치',
|
|
63
|
-
generation: '세대',
|
|
64
|
-
population: '개체 수',
|
|
65
|
-
density: '밀도',
|
|
66
|
-
stability: '안정성',
|
|
67
|
-
births: '탄생',
|
|
68
|
-
deaths: '죽음',
|
|
69
|
-
achievementsLabel: '실험 기록',
|
|
70
|
-
achievementPulsar: '펄서',
|
|
71
|
-
achievementPulsarDescription: '주기 2 진동 감지',
|
|
72
|
-
achievementImmortal: '불멸',
|
|
73
|
-
achievementImmortalDescription: '완전 안정 상태로 500세대 도달',
|
|
74
|
-
achievementBigBang: '빅뱅',
|
|
75
|
-
achievementBigBangDescription: '낮은 밀도의 무작위 시드가 살아있는 셀 1,000개를 초과',
|
|
76
|
-
presetClassic: '콘웨이 클래식',
|
|
77
|
-
presetHighlife: 'HighLife',
|
|
78
|
-
presetSeeds: 'Seeds',
|
|
79
|
-
presetDayNight: '낮과 밤',
|
|
80
|
-
patternGlider: '글라이더',
|
|
81
|
-
patternGosper: '고스퍼 건',
|
|
82
|
-
patternPulsar: '펄서',
|
|
83
|
-
patternRPentomino: 'R-펜토미노',
|
|
84
|
-
colonyStatus: '군집 신호',
|
|
85
|
-
statusFrozen: '안정',
|
|
86
|
-
statusGrowing: '확장 중',
|
|
87
|
-
statusFading: '감소 중',
|
|
88
|
-
statusChaotic: '불안정',
|
|
89
|
-
invalidRule: 'B3/S23 같은 B/S 표기를 사용하세요.',
|
|
90
|
-
},
|
|
91
|
-
seo: [
|
|
92
|
-
{
|
|
93
|
-
type: 'title',
|
|
94
|
-
text: '수정 가능한 규칙을 갖춘 콘웨이 라이프 게임 시뮬레이터',
|
|
95
|
-
level: 2,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'paragraph',
|
|
99
|
-
html: '이 콘웨이 라이프 게임 규칙 연구실을 통해 고전적인 세포 자동자를 실행하고 규칙을 변경 및 비교할 수 있습니다.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'title',
|
|
103
|
-
text: 'B/S 규칙이 게임을 변경하는 방식',
|
|
104
|
-
level: 3,
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: '라이프 스타일의 세포 자동자는 <strong>B/S 표기법</strong>으로 작성됩니다. 콘웨이의 원래 규칙인 <strong>B3/S23</strong>은 멸종과 무제한 성장 사이의 좁은 영역에 위치하는 것으로 유명합니다.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'table',
|
|
112
|
-
headers: ['규칙', '관찰할 동작', '추천 실험'],
|
|
113
|
-
rows: [
|
|
114
|
-
['<strong>B3/S23</strong>', '클래식 글라이더, 블링커 및 총.', '고스퍼 총을 배치하고 개체수를 추적합니다.'],
|
|
115
|
-
['<strong>B36/S23</strong>', 'HighLife는 자가 복제를 지원합니다.', '동일한 시드로 B3/S23과 비교합니다.'],
|
|
116
|
-
['<strong>B2/S</strong>', '세포는 결코 살아남지 못합니다.', '작은 시드로 시작합니다.'],
|
|
117
|
-
['<strong>B3678/S34678</strong>', 'Day & Night는 반전 구조를 지원합니다.', '고밀도 시드로 관찰합니다.'],
|
|
118
|
-
],
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'title',
|
|
122
|
-
text: '패턴이 중요한 이유',
|
|
123
|
-
level: 3,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'paragraph',
|
|
127
|
-
html: '패턴은 라이프 게임의 어휘입니다. 글라이더는 이동을 보여주고 펄서는 진동을 보여줍니다.',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'title',
|
|
131
|
-
text: '실시간 메트릭 읽기',
|
|
132
|
-
level: 3,
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: 'paragraph',
|
|
136
|
-
html: '개체수와 밀도는 살아있는 세포의 수를 보여주고, 탄생과 사망은 현재 활동 수준을 나타냅니다.',
|
|
137
|
-
},
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'conway-life-rule-lab';
|
|
5
|
+
const title = '콘웨이 생명 게임 규칙 연구실';
|
|
6
|
+
const description = 'B/S 규칙, 패턴 시드, 실시간 지표, 반응형 보드로 콘웨이형 세포 자동자를 플레이하고 편집하며 비교합니다.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '보드 씨 뿌리기',
|
|
11
|
+
text: '글라이더, 펄서, 고스퍼 건 등의 패턴을 선택해 격자에 배치하거나 개체군을 무작위로 생성합니다.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: '시뮬레이션 실행',
|
|
15
|
+
text: '재생, 일시정지, 단계, 템포 컨트롤로 탄생, 죽음, 밀도, 안정성의 변화를 관찰합니다.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: '규칙 변경',
|
|
19
|
+
text: '프리셋을 전환하거나 B3/S23, B36/S23, B3678/S34678 같은 B/S 표기를 입력해 다양한 자동자를 비교합니다.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: '생명 게임의 B/S 표기란 무엇인가요?',
|
|
26
|
+
answer: 'B/S 표기는 새로운 살아있는 셀을 만드는 이웃 수와 기존 살아있는 셀이 생존하는 이웃 수를 나열합니다. 콘웨이 생명 게임은 B3/S23입니다: 죽은 셀은 정확히 세 이웃으로 탄생하고, 살아있는 셀은 두 개 또는 세 개의 이웃으로 생존합니다.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: '왜 이 도구가 단순 시뮬레이터가 아닌 규칙 연구실인가요?',
|
|
30
|
+
answer: '클래식 콘웨이 규칙이 포함되어 있지만, 시뮬레이터는 생명형 세포 자동자 계열을 비교하기 위해 구축되었습니다. 탄생 및 생존 수를 편집하면 장기 행동이 변하여 복제자, 파동, 얼어붙은 섬, 혼돈 성장 또는 멸종을 생성합니다.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '시뮬레이터에서 안정성은 무엇을 의미하나요?',
|
|
34
|
+
answer: '안정성은 마지막 세대에서 군집이 얼마나 변화했는지 추정합니다. 높은 안정성은 개체 수에 비해 탄생하거나 죽은 셀이 적음을 의미하고, 낮은 안정성은 보드가 난류 상태이거나 빠르게 재편성되고 있음을 의미합니다.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: '보드에 가장자리가 있나요?',
|
|
38
|
+
answer: '시뮬레이션은 토러스형 감싸기를 사용하므로 왼쪽 가장자리는 오른쪽 가장자리와 연결되고 위쪽은 아래쪽과 연결됩니다. 이렇게 하면 패턴이 딱딱한 경계에서 사라지지 않고 자연스럽게 이동합니다.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: '직접 시작 패턴을 그릴 수 있나요?',
|
|
42
|
+
answer: '네. 시뮬레이션을 일시정지하고 보드의 셀을 클릭하거나 탭하여 전환할 수 있습니다. 손으로 그린 셀을 내장 패턴과 결합하고 어떤 규칙 프리셋 아래서도 결과를 실행할 수 있습니다.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
boardLabel: 'Life 계열 세포 자동자 보드',
|
|
52
|
+
play: '재생',
|
|
53
|
+
pause: '일시정지',
|
|
54
|
+
step: '단계',
|
|
55
|
+
clear: '빈 캔버스',
|
|
56
|
+
randomize: '무작위',
|
|
57
|
+
ruleLabel: '규칙 표기',
|
|
58
|
+
ruleHelp: '탄생 / 생존 수',
|
|
59
|
+
speedLabel: '템포',
|
|
60
|
+
densityLabel: '초기 밀도',
|
|
61
|
+
patternLabel: '패턴',
|
|
62
|
+
placePattern: '패턴 배치',
|
|
63
|
+
generation: '세대',
|
|
64
|
+
population: '개체 수',
|
|
65
|
+
density: '밀도',
|
|
66
|
+
stability: '안정성',
|
|
67
|
+
births: '탄생',
|
|
68
|
+
deaths: '죽음',
|
|
69
|
+
achievementsLabel: '실험 기록',
|
|
70
|
+
achievementPulsar: '펄서',
|
|
71
|
+
achievementPulsarDescription: '주기 2 진동 감지',
|
|
72
|
+
achievementImmortal: '불멸',
|
|
73
|
+
achievementImmortalDescription: '완전 안정 상태로 500세대 도달',
|
|
74
|
+
achievementBigBang: '빅뱅',
|
|
75
|
+
achievementBigBangDescription: '낮은 밀도의 무작위 시드가 살아있는 셀 1,000개를 초과',
|
|
76
|
+
presetClassic: '콘웨이 클래식',
|
|
77
|
+
presetHighlife: 'HighLife',
|
|
78
|
+
presetSeeds: 'Seeds',
|
|
79
|
+
presetDayNight: '낮과 밤',
|
|
80
|
+
patternGlider: '글라이더',
|
|
81
|
+
patternGosper: '고스퍼 건',
|
|
82
|
+
patternPulsar: '펄서',
|
|
83
|
+
patternRPentomino: 'R-펜토미노',
|
|
84
|
+
colonyStatus: '군집 신호',
|
|
85
|
+
statusFrozen: '안정',
|
|
86
|
+
statusGrowing: '확장 중',
|
|
87
|
+
statusFading: '감소 중',
|
|
88
|
+
statusChaotic: '불안정',
|
|
89
|
+
invalidRule: 'B3/S23 같은 B/S 표기를 사용하세요.',
|
|
90
|
+
},
|
|
91
|
+
seo: [
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: '수정 가능한 규칙을 갖춘 콘웨이 라이프 게임 시뮬레이터',
|
|
95
|
+
level: 2,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: '이 콘웨이 라이프 게임 규칙 연구실을 통해 고전적인 세포 자동자를 실행하고 규칙을 변경 및 비교할 수 있습니다.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'B/S 규칙이 게임을 변경하는 방식',
|
|
104
|
+
level: 3,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: '라이프 스타일의 세포 자동자는 <strong>B/S 표기법</strong>으로 작성됩니다. 콘웨이의 원래 규칙인 <strong>B3/S23</strong>은 멸종과 무제한 성장 사이의 좁은 영역에 위치하는 것으로 유명합니다.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'table',
|
|
112
|
+
headers: ['규칙', '관찰할 동작', '추천 실험'],
|
|
113
|
+
rows: [
|
|
114
|
+
['<strong>B3/S23</strong>', '클래식 글라이더, 블링커 및 총.', '고스퍼 총을 배치하고 개체수를 추적합니다.'],
|
|
115
|
+
['<strong>B36/S23</strong>', 'HighLife는 자가 복제를 지원합니다.', '동일한 시드로 B3/S23과 비교합니다.'],
|
|
116
|
+
['<strong>B2/S</strong>', '세포는 결코 살아남지 못합니다.', '작은 시드로 시작합니다.'],
|
|
117
|
+
['<strong>B3678/S34678</strong>', 'Day & Night는 반전 구조를 지원합니다.', '고밀도 시드로 관찰합니다.'],
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: '패턴이 중요한 이유',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: '패턴은 라이프 게임의 어휘입니다. 글라이더는 이동을 보여주고 펄서는 진동을 보여줍니다.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: '실시간 메트릭 읽기',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'paragraph',
|
|
136
|
+
html: '개체수와 밀도는 살아있는 세포의 수를 보여주고, 탄생과 사망은 현재 활동 수준을 나타냅니다.',
|
|
137
|
+
},
|
|
138
|
+
{ type: 'paragraph', html: '이 설명은 모델의 가정과 입력값이 결과를 바꾸는 방식을 정리합니다. 한 번에 하나의 변수만 바꾸고 여러 실행을 비교하면 차이의 원인을 파악하기 쉽습니다. 화면의 결과는 학습을 위한 근사이며 실제 시스템에는 더 많은 변수, 측정 오차와 경계 조건이 있습니다. 수치는 규모와 경향을 이해하는 데 사용하고, 실제 판단이나 연구에서는 원자료, 단위와 전문 자료를 함께 확인하세요. 설정을 기록하면 계산을 재현하고 모델의 한계도 검토할 수 있습니다.' },
|
|
138
139
|
],
|
|
139
140
|
faq,
|
|
140
|
-
bibliography,
|
|
141
|
-
howTo,
|
|
142
|
-
schemas: [
|
|
143
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
144
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
145
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
146
|
-
],
|
|
147
|
-
};
|
|
141
|
+
bibliography,
|
|
142
|
+
howTo,
|
|
143
|
+
schemas: [
|
|
144
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
145
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
146
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
147
|
+
],
|
|
148
|
+
};
|
|
@@ -1,147 +1,149 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'conway-game-of-life-regellab';
|
|
5
|
-
const title = 'Conway Game of Life Regellab';
|
|
6
|
-
const description = 'Speel, bewerk en vergelijk Conway-achtige cellulaire automaten met B/S-regels, patroonzaad, live-metingen en een responsief simulatiebord.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Het bord inzaaien',
|
|
11
|
-
text: 'Kies een patroon zoals een glider, pulsar of het Gosper-kanon, plaats het op het raster of genereer een willekeurige populatie.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'De simulatie starten',
|
|
15
|
-
text: 'Gebruik de bedieningselementen voor afspelen, pauzeren, stap en tempo om te zien hoe geboortes, sterftes, dichtheid en stabiliteit zich ontwikkelen.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'De regel wijzigen',
|
|
19
|
-
text: 'Wissel tussen presets of typ een B/S-regel zoals B3/S23, B36/S23 of B3678/S34678 om verschillende automaten te vergelijken.',
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
const faq = [
|
|
24
|
-
{
|
|
25
|
-
question: 'Wat is B/S-notatie in Game of Life?',
|
|
26
|
-
answer: 'B/S-notatie geeft de aantallen buren aan die een nieuwe levende cel creëren en de aantallen die een bestaande levende cel laten overleven. Conway Life is B3/S23: dode cellen worden geboren met precies drie buren, en levende cellen overleven met twee of drie buren.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: 'Waarom heet dit een regellab in plaats van alleen een simulator?',
|
|
30
|
-
answer: 'De klassieke Conway-regel is inbegrepen, maar de simulator is gebouwd om families van Life-achtige cellulaire automaten te vergelijken. Het bewerken van de geboorte- en overlevingsaantallen verandert het langetermijngedrag, waardoor replicatoren, golven, bevroren eilanden, chaotische groei of uitsterving ontstaat.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Wat betekent stabiliteit in de simulator?',
|
|
34
|
-
answer: 'Stabiliteit schat hoe sterk de kolonie veranderde tijdens de laatste generatie. Hoge stabiliteit betekent weinig cellen geboren of gestorven ten opzichte van de populatie; lage stabiliteit betekent dat het bord turbulent is of snel reorganiseert.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: 'Heeft het bord randen?',
|
|
38
|
-
answer: 'De simulatie gebruikt toroidale omwikkeling: de linkerrand verbindt met de rechterrand en boven verbindt met onder. Dit zorgt ervoor dat patronen natuurlijk blijven bewegen zonder te verdwijnen bij harde grenzen.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: 'Kan ik mijn eigen startpatroon tekenen?',
|
|
42
|
-
answer: 'Ja. Pauzeer de simulatie en klik of tik op cellen op het bord om ze te wisselen. Je kunt handgetekende cellen combineren met ingebouwde patronen en het resultaat dan uitvoeren onder elke regelpreset.',
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
export const content: ToolLocaleContent = {
|
|
47
|
-
slug,
|
|
48
|
-
title,
|
|
49
|
-
description,
|
|
50
|
-
ui: {
|
|
51
|
-
boardLabel: 'Bord voor Life-achtige cellulaire automaten',
|
|
52
|
-
play: 'Afspelen',
|
|
53
|
-
pause: 'Pauze',
|
|
54
|
-
step: 'Stap',
|
|
55
|
-
clear: 'Leeg canvas',
|
|
56
|
-
randomize: 'Willekeurig',
|
|
57
|
-
ruleLabel: 'Regelnotatie',
|
|
58
|
-
ruleHelp: 'Geboorte / overleving',
|
|
59
|
-
speedLabel: 'Tempo',
|
|
60
|
-
densityLabel: 'Startdichtheid',
|
|
61
|
-
patternLabel: 'Patroon',
|
|
62
|
-
placePattern: 'Patroon plaatsen',
|
|
63
|
-
generation: 'Generatie',
|
|
64
|
-
population: 'Populatie',
|
|
65
|
-
density: 'Dichtheid',
|
|
66
|
-
stability: 'Stabiliteit',
|
|
67
|
-
births: 'Geboortes',
|
|
68
|
-
deaths: 'Sterftes',
|
|
69
|
-
achievementsLabel: 'Laboratoriumlog',
|
|
70
|
-
achievementPulsar: 'Pulsar',
|
|
71
|
-
achievementPulsarDescription: 'Oscillatie met periode 2 gedetecteerd',
|
|
72
|
-
achievementImmortal: 'Onsterfelijk',
|
|
73
|
-
achievementImmortalDescription: 'Generatie 500 bereikt met volledige stabiliteit',
|
|
74
|
-
achievementBigBang: 'Big Bang',
|
|
75
|
-
achievementBigBangDescription: 'Een schaarse willekeurige seed overschreed 1.000 levende cellen',
|
|
76
|
-
presetClassic: 'Conway klassiek',
|
|
77
|
-
presetHighlife: 'HighLife',
|
|
78
|
-
presetSeeds: 'Seeds',
|
|
79
|
-
presetDayNight: 'Dag & nacht',
|
|
80
|
-
patternGlider: 'Glider',
|
|
81
|
-
patternGosper: 'Gosper-kanon',
|
|
82
|
-
patternPulsar: 'Pulsar',
|
|
83
|
-
patternRPentomino: 'R-pentomino',
|
|
84
|
-
colonyStatus: 'Koloniesignaal',
|
|
85
|
-
statusFrozen: 'stabiel',
|
|
86
|
-
statusGrowing: 'groeiend',
|
|
87
|
-
statusFading: 'afnemend',
|
|
88
|
-
statusChaotic: 'volatiel',
|
|
89
|
-
invalidRule: 'Gebruik B/S-notatie zoals B3/S23.',
|
|
90
|
-
},
|
|
91
|
-
seo: [
|
|
92
|
-
{
|
|
93
|
-
type: 'title',
|
|
94
|
-
text: 'Conway Game of Life Simulator met Bewerkbare Regels',
|
|
95
|
-
level: 2,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'paragraph',
|
|
99
|
-
html: 'Dit regel-lab laat je de klassieke cellulaire automaat uitvoeren en de regels aanpassen en vergelijken.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'title',
|
|
103
|
-
text: 'Hoe B/S-regels het spel veranderen',
|
|
104
|
-
level: 3,
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: 'Life-achtige cellulaire automaten worden vaak geschreven in <strong>B/S-notatie</strong>. Conway\'s oorspronkelijke regel <strong>B3/S23</strong> is beroemd vanwege het delicate evenwicht.',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'table',
|
|
112
|
-
headers: ['Regel', 'Gedrag om te observeren', 'Goed experiment'],
|
|
113
|
-
rows: [
|
|
114
|
-
['<strong>B3/S23</strong>', 'Klassieke zwevers, knipperlichten en kanonnen.', 'Plaats het Gosper-kanon en volg de populatie.'],
|
|
115
|
-
['<strong>B36/S23</strong>', 'HighLife ondersteunt zelfreplicatie.', 'Vergelijk dezelfde kiem met B3/S23.'],
|
|
116
|
-
['<strong>B2/S</strong>', 'Cellen overleven nooit.', 'Begin met een kleine kiem.'],
|
|
117
|
-
['<strong>B3678/S34678</strong>', 'Day & Night ondersteunt omgekeerde structuren.', 'Test met een hoge begindichtheid.'],
|
|
118
|
-
],
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'title',
|
|
122
|
-
text: 'Waarom patronen belangrijk zijn',
|
|
123
|
-
level: 3,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'paragraph',
|
|
127
|
-
html: 'Patronen vormen de woordenschat van Game of Life. Zwevers tonen beweging en pulsars tonen oscillatie.',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'title',
|
|
131
|
-
text: 'Live statistieken lezen',
|
|
132
|
-
level: 3,
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: 'paragraph',
|
|
136
|
-
html: 'Populatie en dichtheid tonen hoeveel cellen in leven zijn, maar geboorten en sterftes tonen het werkelijke activiteitsniveau.',
|
|
137
|
-
},
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'conway-game-of-life-regellab';
|
|
5
|
+
const title = 'Conway Game of Life Regellab';
|
|
6
|
+
const description = 'Speel, bewerk en vergelijk Conway-achtige cellulaire automaten met B/S-regels, patroonzaad, live-metingen en een responsief simulatiebord.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Het bord inzaaien',
|
|
11
|
+
text: 'Kies een patroon zoals een glider, pulsar of het Gosper-kanon, plaats het op het raster of genereer een willekeurige populatie.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'De simulatie starten',
|
|
15
|
+
text: 'Gebruik de bedieningselementen voor afspelen, pauzeren, stap en tempo om te zien hoe geboortes, sterftes, dichtheid en stabiliteit zich ontwikkelen.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'De regel wijzigen',
|
|
19
|
+
text: 'Wissel tussen presets of typ een B/S-regel zoals B3/S23, B36/S23 of B3678/S34678 om verschillende automaten te vergelijken.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: 'Wat is B/S-notatie in Game of Life?',
|
|
26
|
+
answer: 'B/S-notatie geeft de aantallen buren aan die een nieuwe levende cel creëren en de aantallen die een bestaande levende cel laten overleven. Conway Life is B3/S23: dode cellen worden geboren met precies drie buren, en levende cellen overleven met twee of drie buren.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: 'Waarom heet dit een regellab in plaats van alleen een simulator?',
|
|
30
|
+
answer: 'De klassieke Conway-regel is inbegrepen, maar de simulator is gebouwd om families van Life-achtige cellulaire automaten te vergelijken. Het bewerken van de geboorte- en overlevingsaantallen verandert het langetermijngedrag, waardoor replicatoren, golven, bevroren eilanden, chaotische groei of uitsterving ontstaat.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Wat betekent stabiliteit in de simulator?',
|
|
34
|
+
answer: 'Stabiliteit schat hoe sterk de kolonie veranderde tijdens de laatste generatie. Hoge stabiliteit betekent weinig cellen geboren of gestorven ten opzichte van de populatie; lage stabiliteit betekent dat het bord turbulent is of snel reorganiseert.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Heeft het bord randen?',
|
|
38
|
+
answer: 'De simulatie gebruikt toroidale omwikkeling: de linkerrand verbindt met de rechterrand en boven verbindt met onder. Dit zorgt ervoor dat patronen natuurlijk blijven bewegen zonder te verdwijnen bij harde grenzen.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Kan ik mijn eigen startpatroon tekenen?',
|
|
42
|
+
answer: 'Ja. Pauzeer de simulatie en klik of tik op cellen op het bord om ze te wisselen. Je kunt handgetekende cellen combineren met ingebouwde patronen en het resultaat dan uitvoeren onder elke regelpreset.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
boardLabel: 'Bord voor Life-achtige cellulaire automaten',
|
|
52
|
+
play: 'Afspelen',
|
|
53
|
+
pause: 'Pauze',
|
|
54
|
+
step: 'Stap',
|
|
55
|
+
clear: 'Leeg canvas',
|
|
56
|
+
randomize: 'Willekeurig',
|
|
57
|
+
ruleLabel: 'Regelnotatie',
|
|
58
|
+
ruleHelp: 'Geboorte / overleving',
|
|
59
|
+
speedLabel: 'Tempo',
|
|
60
|
+
densityLabel: 'Startdichtheid',
|
|
61
|
+
patternLabel: 'Patroon',
|
|
62
|
+
placePattern: 'Patroon plaatsen',
|
|
63
|
+
generation: 'Generatie',
|
|
64
|
+
population: 'Populatie',
|
|
65
|
+
density: 'Dichtheid',
|
|
66
|
+
stability: 'Stabiliteit',
|
|
67
|
+
births: 'Geboortes',
|
|
68
|
+
deaths: 'Sterftes',
|
|
69
|
+
achievementsLabel: 'Laboratoriumlog',
|
|
70
|
+
achievementPulsar: 'Pulsar',
|
|
71
|
+
achievementPulsarDescription: 'Oscillatie met periode 2 gedetecteerd',
|
|
72
|
+
achievementImmortal: 'Onsterfelijk',
|
|
73
|
+
achievementImmortalDescription: 'Generatie 500 bereikt met volledige stabiliteit',
|
|
74
|
+
achievementBigBang: 'Big Bang',
|
|
75
|
+
achievementBigBangDescription: 'Een schaarse willekeurige seed overschreed 1.000 levende cellen',
|
|
76
|
+
presetClassic: 'Conway klassiek',
|
|
77
|
+
presetHighlife: 'HighLife',
|
|
78
|
+
presetSeeds: 'Seeds',
|
|
79
|
+
presetDayNight: 'Dag & nacht',
|
|
80
|
+
patternGlider: 'Glider',
|
|
81
|
+
patternGosper: 'Gosper-kanon',
|
|
82
|
+
patternPulsar: 'Pulsar',
|
|
83
|
+
patternRPentomino: 'R-pentomino',
|
|
84
|
+
colonyStatus: 'Koloniesignaal',
|
|
85
|
+
statusFrozen: 'stabiel',
|
|
86
|
+
statusGrowing: 'groeiend',
|
|
87
|
+
statusFading: 'afnemend',
|
|
88
|
+
statusChaotic: 'volatiel',
|
|
89
|
+
invalidRule: 'Gebruik B/S-notatie zoals B3/S23.',
|
|
90
|
+
},
|
|
91
|
+
seo: [
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: 'Conway Game of Life Simulator met Bewerkbare Regels',
|
|
95
|
+
level: 2,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Dit regel-lab laat je de klassieke cellulaire automaat uitvoeren en de regels aanpassen en vergelijken.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Hoe B/S-regels het spel veranderen',
|
|
104
|
+
level: 3,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Life-achtige cellulaire automaten worden vaak geschreven in <strong>B/S-notatie</strong>. Conway\'s oorspronkelijke regel <strong>B3/S23</strong> is beroemd vanwege het delicate evenwicht.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'table',
|
|
112
|
+
headers: ['Regel', 'Gedrag om te observeren', 'Goed experiment'],
|
|
113
|
+
rows: [
|
|
114
|
+
['<strong>B3/S23</strong>', 'Klassieke zwevers, knipperlichten en kanonnen.', 'Plaats het Gosper-kanon en volg de populatie.'],
|
|
115
|
+
['<strong>B36/S23</strong>', 'HighLife ondersteunt zelfreplicatie.', 'Vergelijk dezelfde kiem met B3/S23.'],
|
|
116
|
+
['<strong>B2/S</strong>', 'Cellen overleven nooit.', 'Begin met een kleine kiem.'],
|
|
117
|
+
['<strong>B3678/S34678</strong>', 'Day & Night ondersteunt omgekeerde structuren.', 'Test met een hoge begindichtheid.'],
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Waarom patronen belangrijk zijn',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: 'Patronen vormen de woordenschat van Game of Life. Zwevers tonen beweging en pulsars tonen oscillatie.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: 'Live statistieken lezen',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'paragraph',
|
|
136
|
+
html: 'Populatie en dichtheid tonen hoeveel cellen in leven zijn, maar geboorten en sterftes tonen het werkelijke activiteitsniveau.',
|
|
137
|
+
},
|
|
138
|
+
{ type: 'paragraph', html: 'Deze uitleg verduidelijkt de aannames van het model en laat zien hoe parameters het resultaat veranderen. Wijzig telkens één waarde en vergelijk meerdere runs, zodat elk verschil aan een herkenbare oorzaak kan worden gekoppeld. De visualisatie is een didactische benadering; een echt systeem bevat meer variabelen, meetonzekerheden en randvoorwaarden. Gebruik de uitkomst om ordes van grootte te begrijpen, vragen te formuleren en scenario\'s te vergelijken. Controleer voor een praktische beslissing of wetenschappelijke analyse altijd primaire gegevens, eenheden en gespecialiseerde bronnen. Noteer de instellingen om een berekening te herhalen en de beperkingen te bespreken.' },
|
|
139
|
+
{ type: 'paragraph', html: 'Herhaal de berekening met dezelfde instellingen en wijzig daarna één invoer tegelijk. Noteer beginwaarden, rekenregels en gebruikte grenzen, zodat een patroon in het model niet wordt verward met numerieke variatie of toeval. De uitkomst is didactisch bedoeld en moet samen met de aannames en beperkingen worden gelezen. Voor echte metingen of ontwerpen zijn aanvullende gegevens en specialistische controle nodig.' },
|
|
138
140
|
],
|
|
139
141
|
faq,
|
|
140
|
-
bibliography,
|
|
141
|
-
howTo,
|
|
142
|
-
schemas: [
|
|
143
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
144
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
145
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
146
|
-
],
|
|
147
|
-
};
|
|
142
|
+
bibliography,
|
|
143
|
+
howTo,
|
|
144
|
+
schemas: [
|
|
145
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
146
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
147
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
148
|
+
],
|
|
149
|
+
};
|