@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,159 +1,159 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'kalkulyator-fraktala-mandelbrota';
|
|
5
|
-
const title = 'Калькулятор фрактала Мандельброта и исследователь самоподобия';
|
|
6
|
-
const description = 'Исследуйте множество Мандельброта, приближайте самоподобные фрактальные границы и сравнивайте глубину итерации, цветовой контраст и координаты комплексной плоскости.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Выберите область множества Мандельброта',
|
|
11
|
-
text: 'Начните с полного множества или перейдите прямо к области с высокой детализацией, такой как Долина Морского Конька или спиральный минибrot.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'Приближайте, нажимая на изображение',
|
|
15
|
-
text: 'Нажмите на любую точку на канвасе, чтобы перецентрировать комплексную плоскость и увеличить фрактал вокруг этой координаты.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'Настройте глубину итерации и цветовой контраст',
|
|
19
|
-
text: 'Увеличьте бюджет итераций, чтобы раскрыть более мелкую структуру границы, затем отрегулируйте контраст и палитру, чтобы полосы времени побега было легче читать.',
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
const faq = [
|
|
24
|
-
{
|
|
25
|
-
question: 'Что показывает калькулятор множества Мандельброта?',
|
|
26
|
-
answer: 'Он показывает, какие комплексные числа c сохраняют рекуррентность z(n+1) = z(n)^2 + c ограниченной при начале с z = 0. Точки, которые никогда не убегают в рамках выбранного бюджета итераций, окрашиваются как члены множества, в то время как внешние точки окрашиваются в зависимости от того, как быстро их орбита убегает.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: 'Почему граница множества Мандельброта содержит столько деталей?',
|
|
30
|
-
answer: 'Граница отделяет стабильные и убегающие орбиты, и небольшие изменения координат вблизи этой границы могут полностью изменить долгосрочное поведение. Эта чувствительность создаёт вложенные выпуклости, спирали, нити и миниатюрные копии, которые появляются на многих уровнях увеличения.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Является ли множество Мандельброта поистине самоподобным?',
|
|
34
|
-
answer: 'Оно не является идеально самоподобным в том же строгом смысле, что треугольник Серпинского, но оно богато квази-самоподобно. Маленькие копии всего множества появляются по всей плоскости, часто искажённые и соединённые сложными разветвляющимися структурами.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: 'Что контролирует количество итераций?',
|
|
38
|
-
answer: 'Количество итераций контролирует, как долго калькулятор тестирует каждую точку, прежде чем решить, что она, вероятно, принадлежит множеству. Более высокие значения обнаруживают более глубокие нити и более чистые минибroты, но требуют больше вычислений на пиксель.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: 'Почему цвета изменяются за пределами чёрной области?',
|
|
42
|
-
answer: 'Внешние цвета основаны на времени побега: точки, которые убегают быстро, получают другие цвета, чем точки, которые остаются вблизи множества в течение многих итераций. Плавная раскраска уменьшает резкие полосы и облегчает исследование геометрии близлежащих орбит.',
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
export const content: ToolLocaleContent = {
|
|
47
|
-
slug,
|
|
48
|
-
title,
|
|
49
|
-
description,
|
|
50
|
-
ui: {
|
|
51
|
-
title: 'Калькулятор фрактала Мандельброта',
|
|
52
|
-
canvasLabel: 'Интерактивный канвас множества Мандельброта',
|
|
53
|
-
presetsLabel: 'Предустройки областей Мандельброта',
|
|
54
|
-
presetFull: 'Полное множество',
|
|
55
|
-
presetSeahorse: 'Долина морского конька',
|
|
56
|
-
presetSpiral: 'Спиральный миниброт',
|
|
57
|
-
centerPoint: 'Центр',
|
|
58
|
-
magnification: 'Увеличение',
|
|
59
|
-
visibleWindow: 'Видимое окно',
|
|
60
|
-
renderBudget: 'Итерации',
|
|
61
|
-
iterationsLabel: 'Глубина итерации',
|
|
62
|
-
contrastLabel: 'Контраст побега',
|
|
63
|
-
colorLabel: 'Цветовое поле',
|
|
64
|
-
paletteEmber: 'Полосы зари',
|
|
65
|
-
paletteLagoon: 'Лагунная плазма',
|
|
66
|
-
paletteInk: 'Спектр чернил',
|
|
67
|
-
},
|
|
68
|
-
seo: [
|
|
69
|
-
{
|
|
70
|
-
type: 'title',
|
|
71
|
-
text: 'Калькулятор множества Мандельброта: фракталы, время побега и самоподобие',
|
|
72
|
-
level: 2,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'paragraph',
|
|
76
|
-
html: 'Этот калькулятор фрактала Мандельброта отображает классическое множество на комплексной плоскости, определённое итерацией <strong>z(n+1) = z(n)^2 + c</strong>. Он предназначен для исследования, а не пассивного просмотра: каждый клик перецентрирует плоскость, каждое приближение открывает меньшие математические окрестности, а ползунок итераций позволяет вам решить, насколько глубоко калькулятор должен тестировать границу, прежде чем раскрасить точку как стабильную или убегающую.',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
type: 'title',
|
|
80
|
-
text: 'Как читать изображение Мандельброта',
|
|
81
|
-
level: 3,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'paragraph',
|
|
85
|
-
html: 'Тёмная центральная форма отмечает точки, чьи орбиты остаются ограниченными в рамках текущего бюджета итераций. Цветная внешняя часть представляет собой карту времени побега. Точка, раскрашенная близко к множеству, может выдержать сотни итераций, прежде чем её величина превысит радиус побега, в то время как далёкая точка убегает почти мгновенно. Наиболее научно интересная геометрия обычно находится не внутри заполненной формы, а вдоль границы, где ограниченное и неограниченное поведение переплетаются.',
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
type: 'table',
|
|
89
|
-
headers: ['Управление', 'Что меняет', 'Когда увеличивать'],
|
|
90
|
-
rows: [
|
|
91
|
-
['<strong>Глубина итераций</strong>', 'Количество шагов рекурсии для каждого пикселя.', 'Увеличивайте при сильном приближении тонких структур.'],
|
|
92
|
-
['<strong>Контраст убегания</strong>', 'Насколько резко разделяются цветные полосы.', 'Увеличьте, если изображение выглядит плоским.'],
|
|
93
|
-
['<strong>Палитра</strong>', 'Цветовое отображение внешних точек.', 'Меняйте палитру для выявления скрытых деталей.'],
|
|
94
|
-
],
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
type: 'title',
|
|
98
|
-
text: 'Самоподобие и миниброты',
|
|
99
|
-
level: 3,
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'paragraph',
|
|
103
|
-
html: 'При увеличении спиралей и фрагментов границы вы снова и снова будете находить уменьшенные копии самого множества: миниброты.',
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
type: 'title',
|
|
107
|
-
text: 'Почему важна высокая глубина итераций при глубоком увеличении',
|
|
108
|
-
level: 3,
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'paragraph',
|
|
112
|
-
html: 'При сильном приближении граничным точкам требуется значительно больше шагов для определения убегания. Низкое число итераций делает детали размытыми.',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
type: 'title',
|
|
116
|
-
text: 'Математический смысл комплексных координат',
|
|
117
|
-
level: 3,
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'paragraph',
|
|
121
|
-
html: 'Координаты показывают текущий центр области в виде комплексного числа c = a + bi, где горизонтальная ось: действительная часть, а вертикальная: мнимая.',
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
faq,
|
|
125
|
-
bibliography,
|
|
126
|
-
howTo,
|
|
127
|
-
schemas: [
|
|
128
|
-
{
|
|
129
|
-
'@context': 'https://schema.org',
|
|
130
|
-
'@type': 'SoftwareApplication',
|
|
131
|
-
name: title,
|
|
132
|
-
description,
|
|
133
|
-
applicationCategory: 'ScientificApplication',
|
|
134
|
-
operatingSystem: 'Any',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
'@context': 'https://schema.org',
|
|
138
|
-
'@type': 'FAQPage',
|
|
139
|
-
mainEntity: faq.map((item) => ({
|
|
140
|
-
'@type': 'Question',
|
|
141
|
-
name: item.question,
|
|
142
|
-
acceptedAnswer: {
|
|
143
|
-
'@type': 'Answer',
|
|
144
|
-
text: item.answer,
|
|
145
|
-
},
|
|
146
|
-
})),
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
'@context': 'https://schema.org',
|
|
150
|
-
'@type': 'HowTo',
|
|
151
|
-
name: title,
|
|
152
|
-
step: howTo.map((step) => ({
|
|
153
|
-
'@type': 'HowToStep',
|
|
154
|
-
name: step.name,
|
|
155
|
-
text: step.text,
|
|
156
|
-
})),
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
};
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'kalkulyator-fraktala-mandelbrota';
|
|
5
|
+
const title = 'Калькулятор фрактала Мандельброта и исследователь самоподобия';
|
|
6
|
+
const description = 'Исследуйте множество Мандельброта, приближайте самоподобные фрактальные границы и сравнивайте глубину итерации, цветовой контраст и координаты комплексной плоскости.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Выберите область множества Мандельброта',
|
|
11
|
+
text: 'Начните с полного множества или перейдите прямо к области с высокой детализацией, такой как Долина Морского Конька или спиральный минибrot.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Приближайте, нажимая на изображение',
|
|
15
|
+
text: 'Нажмите на любую точку на канвасе, чтобы перецентрировать комплексную плоскость и увеличить фрактал вокруг этой координаты.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Настройте глубину итерации и цветовой контраст',
|
|
19
|
+
text: 'Увеличьте бюджет итераций, чтобы раскрыть более мелкую структуру границы, затем отрегулируйте контраст и палитру, чтобы полосы времени побега было легче читать.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: 'Что показывает калькулятор множества Мандельброта?',
|
|
26
|
+
answer: 'Он показывает, какие комплексные числа c сохраняют рекуррентность z(n+1) = z(n)^2 + c ограниченной при начале с z = 0. Точки, которые никогда не убегают в рамках выбранного бюджета итераций, окрашиваются как члены множества, в то время как внешние точки окрашиваются в зависимости от того, как быстро их орбита убегает.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: 'Почему граница множества Мандельброта содержит столько деталей?',
|
|
30
|
+
answer: 'Граница отделяет стабильные и убегающие орбиты, и небольшие изменения координат вблизи этой границы могут полностью изменить долгосрочное поведение. Эта чувствительность создаёт вложенные выпуклости, спирали, нити и миниатюрные копии, которые появляются на многих уровнях увеличения.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Является ли множество Мандельброта поистине самоподобным?',
|
|
34
|
+
answer: 'Оно не является идеально самоподобным в том же строгом смысле, что треугольник Серпинского, но оно богато квази-самоподобно. Маленькие копии всего множества появляются по всей плоскости, часто искажённые и соединённые сложными разветвляющимися структурами.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Что контролирует количество итераций?',
|
|
38
|
+
answer: 'Количество итераций контролирует, как долго калькулятор тестирует каждую точку, прежде чем решить, что она, вероятно, принадлежит множеству. Более высокие значения обнаруживают более глубокие нити и более чистые минибroты, но требуют больше вычислений на пиксель.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Почему цвета изменяются за пределами чёрной области?',
|
|
42
|
+
answer: 'Внешние цвета основаны на времени побега: точки, которые убегают быстро, получают другие цвета, чем точки, которые остаются вблизи множества в течение многих итераций. Плавная раскраска уменьшает резкие полосы и облегчает исследование геометрии близлежащих орбит.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
title: 'Калькулятор фрактала Мандельброта',
|
|
52
|
+
canvasLabel: 'Интерактивный канвас множества Мандельброта',
|
|
53
|
+
presetsLabel: 'Предустройки областей Мандельброта',
|
|
54
|
+
presetFull: 'Полное множество',
|
|
55
|
+
presetSeahorse: 'Долина морского конька',
|
|
56
|
+
presetSpiral: 'Спиральный миниброт',
|
|
57
|
+
centerPoint: 'Центр',
|
|
58
|
+
magnification: 'Увеличение',
|
|
59
|
+
visibleWindow: 'Видимое окно',
|
|
60
|
+
renderBudget: 'Итерации',
|
|
61
|
+
iterationsLabel: 'Глубина итерации',
|
|
62
|
+
contrastLabel: 'Контраст побега',
|
|
63
|
+
colorLabel: 'Цветовое поле',
|
|
64
|
+
paletteEmber: 'Полосы зари',
|
|
65
|
+
paletteLagoon: 'Лагунная плазма',
|
|
66
|
+
paletteInk: 'Спектр чернил',
|
|
67
|
+
},
|
|
68
|
+
seo: [
|
|
69
|
+
{
|
|
70
|
+
type: 'title',
|
|
71
|
+
text: 'Калькулятор множества Мандельброта: фракталы, время побега и самоподобие',
|
|
72
|
+
level: 2,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html: 'Этот калькулятор фрактала Мандельброта отображает классическое множество на комплексной плоскости, определённое итерацией <strong>z(n+1) = z(n)^2 + c</strong>. Он предназначен для исследования, а не пассивного просмотра: каждый клик перецентрирует плоскость, каждое приближение открывает меньшие математические окрестности, а ползунок итераций позволяет вам решить, насколько глубоко калькулятор должен тестировать границу, прежде чем раскрасить точку как стабильную или убегающую.',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'title',
|
|
80
|
+
text: 'Как читать изображение Мандельброта',
|
|
81
|
+
level: 3,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'paragraph',
|
|
85
|
+
html: 'Тёмная центральная форма отмечает точки, чьи орбиты остаются ограниченными в рамках текущего бюджета итераций. Цветная внешняя часть представляет собой карту времени побега. Точка, раскрашенная близко к множеству, может выдержать сотни итераций, прежде чем её величина превысит радиус побега, в то время как далёкая точка убегает почти мгновенно. Наиболее научно интересная геометрия обычно находится не внутри заполненной формы, а вдоль границы, где ограниченное и неограниченное поведение переплетаются.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'table',
|
|
89
|
+
headers: ['Управление', 'Что меняет', 'Когда увеличивать'],
|
|
90
|
+
rows: [
|
|
91
|
+
['<strong>Глубина итераций</strong>', 'Количество шагов рекурсии для каждого пикселя.', 'Увеличивайте при сильном приближении тонких структур.'],
|
|
92
|
+
['<strong>Контраст убегания</strong>', 'Насколько резко разделяются цветные полосы.', 'Увеличьте, если изображение выглядит плоским.'],
|
|
93
|
+
['<strong>Палитра</strong>', 'Цветовое отображение внешних точек.', 'Меняйте палитру для выявления скрытых деталей.'],
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Самоподобие и миниброты',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'При увеличении спиралей и фрагментов границы вы снова и снова будете находить уменьшенные копии самого множества: миниброты.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Почему важна высокая глубина итераций при глубоком увеличении',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'При сильном приближении граничным точкам требуется значительно больше шагов для определения убегания. Низкое число итераций делает детали размытыми.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Математический смысл комплексных координат',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Координаты показывают текущий центр области в виде комплексного числа c = a + bi, где горизонтальная ось: действительная часть, а вертикальная: мнимая.',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
faq,
|
|
125
|
+
bibliography,
|
|
126
|
+
howTo,
|
|
127
|
+
schemas: [
|
|
128
|
+
{
|
|
129
|
+
'@context': 'https://schema.org',
|
|
130
|
+
'@type': 'SoftwareApplication',
|
|
131
|
+
name: title,
|
|
132
|
+
description,
|
|
133
|
+
applicationCategory: 'ScientificApplication',
|
|
134
|
+
operatingSystem: 'Any',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
'@context': 'https://schema.org',
|
|
138
|
+
'@type': 'FAQPage',
|
|
139
|
+
mainEntity: faq.map((item) => ({
|
|
140
|
+
'@type': 'Question',
|
|
141
|
+
name: item.question,
|
|
142
|
+
acceptedAnswer: {
|
|
143
|
+
'@type': 'Answer',
|
|
144
|
+
text: item.answer,
|
|
145
|
+
},
|
|
146
|
+
})),
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
'@context': 'https://schema.org',
|
|
150
|
+
'@type': 'HowTo',
|
|
151
|
+
name: title,
|
|
152
|
+
step: howTo.map((step) => ({
|
|
153
|
+
'@type': 'HowToStep',
|
|
154
|
+
name: step.name,
|
|
155
|
+
text: step.text,
|
|
156
|
+
})),
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
};
|