@jjlmoya/utils-science 1.51.0 → 1.53.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/scripts/crystal-lattice-catalog-translations.mjs +1 -0
- 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 -175
- 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,169 +1,169 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'global-albedo-snoboll-simulator';
|
|
5
|
-
const title = 'Global Albedo och Snöbollsjorden Simulator';
|
|
6
|
-
const description = 'Utforska jordens termiska strålningsbalans, förändringar i solkonstanten, växthusgaskoncentration och is-albedo-återkoppling för att se om istäcken drar sig tillbaka, stabiliseras eller utlöser ett snöbollsklimat.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Ställ in inkommande solljus',
|
|
11
|
-
text: 'Flytta reglaget för solkonstanten för att testa svagare ung-sol-scenarier, nuvarande solljus på jorden eller starkare framtida forcering.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'Justera växthusgaskoncentrationen',
|
|
15
|
-
text: 'Ändra växthusgaskoncentrationen för att se hur strålningsforcering konkurrerar med högre planetarisk albedo.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'Plantera is på planeten',
|
|
19
|
-
text: 'Börja med en liten polarkalott eller en stor istäckt värld. Modellen itererar återkopplingsslingan och visar om isen avancerar eller drar sig tillbaka.',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: 'Läs av klimattillståndet',
|
|
23
|
-
text: 'Använd temperaturen, absorberad strålning, slutlig istäckning och tidslinjekurvan för att jämföra tempererade, snöbolls- och växthusutfall.',
|
|
24
|
-
},
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
const faq = [
|
|
28
|
-
{
|
|
29
|
-
question: 'Vad är is-albedo-återkoppling?',
|
|
30
|
-
answer: 'Is och snö reflekterar mer solljus än hav eller land. När isen expanderar ökar den planetariska albedon, absorberad solenergi minskar och avkylning kan tillåta att ännu mer is bildas. När isen drar sig tillbaka absorberar den mörkare ytan mer energi och uppvärmningen accelererar.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Vad betyder Snöbollsjorden?',
|
|
34
|
-
answer: 'Snöbollsjorden är ett hypotetiskt klimattillstånd där is når låga breddgrader eller nästan global täckning. Geologiska bevis tyder på att jorden kan ha närmat sig sådana tillstånd under neoproterozoikum.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: 'Är detta en komplett klimatmodell?',
|
|
38
|
-
answer: 'Nej. Det är en kompakt energibalansmodell för lärande. Den ignorerar atmosfärisk cirkulation, moln, oceanisk värmetransport, årstider, geografi och kolets kretslopp, men den fångar den centrala strålningslogiken i albedo-återkoppling.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: 'Varför kan växthusgaser bryta ett snöbollstillstånd?',
|
|
42
|
-
answer: 'Växthusgaser minskar utgående långvågig avkylning genom att tillföra strålningsforcering. I Snöbollsjorden-scenarier kan vulkanisk koldioxid ackumuleras när vittring av silikat långsammare, vilket så småningom värmer upp planeten tillräckligt för att smälta is på låga breddgrader.',
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
export const content: ToolLocaleContent = {
|
|
47
|
-
slug,
|
|
48
|
-
title,
|
|
49
|
-
description,
|
|
50
|
-
ui: {
|
|
51
|
-
controls: 'Klimatreglage',
|
|
52
|
-
solarConstant: 'Solkonstanten',
|
|
53
|
-
greenhouse: 'Växthusgaser',
|
|
54
|
-
initialIce: 'Inledande istäckning',
|
|
55
|
-
temperature: 'Jämviktstemperatur',
|
|
56
|
-
absorbed: 'Absorberat solljus',
|
|
57
|
-
finalIce: 'Slutlig istäckning',
|
|
58
|
-
albedo: 'Planetarisk albedo',
|
|
59
|
-
forcing: 'Växthusforcering',
|
|
60
|
-
state: 'Klimattillstånd',
|
|
61
|
-
timeline: 'Isutveckling',
|
|
62
|
-
years: 'modellår',
|
|
63
|
-
snowball: 'Snöbollslåsning',
|
|
64
|
-
temperate: 'Tempererad balans',
|
|
65
|
-
hothouse: 'Växthusreträtt',
|
|
66
|
-
retreating: 'Is drar sig tillbaka',
|
|
67
|
-
advancing: 'Is avancerar',
|
|
68
|
-
stable: 'Nära jämvikt',
|
|
69
|
-
watts: '{value} W/m2',
|
|
70
|
-
ppm: '{value} ppm',
|
|
71
|
-
percent: '{value}%',
|
|
72
|
-
celsius: '{value} C',
|
|
73
|
-
diagnostics: 'Strålningsdiagnostik',
|
|
74
|
-
},
|
|
75
|
-
seo: [
|
|
76
|
-
{
|
|
77
|
-
type: 'title',
|
|
78
|
-
text: 'Global albedosimulator för is-albedo-återkoppling och Snöbollsjorden',
|
|
79
|
-
level: 2,
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
type: 'paragraph',
|
|
83
|
-
html: 'Denna simulator utforskar en av de viktigaste återkopplingsslingorna i planetariskt klimat: kopplingen mellan istäckning, reflektivitet och absorberat solljus. En planet med ljus is reflekterar mer inkommande solstrålning tillbaka till rymden. Den avkylningen kan bevara eller expandera isen, vilket höjer albedon ytterligare och trycker systemet mot ett Snöbollsjorden-tillstånd. En planet med mindre is absorberar mer solljus, vilket kan påskynda deglaciation.',
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
type: 'paragraph',
|
|
87
|
-
html: 'Använd reglagen för att ändra solkonstanten, växthusgaskoncentrationen och inledande istäckning. Modellen itererar sedan en enkel global energibalans och visar om klimatet rör sig mot omfattande glaciation, en tempererad jämvikt eller ett varmt lågistillstånd. Den är designad för snabb intuition: varje reglage mappar direkt till en fysisk term i strålningsbudgeten.',
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
type: 'title',
|
|
91
|
-
text: 'Hur energibalansen uppskattas',
|
|
92
|
-
level: 3,
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
type: 'paragraph',
|
|
96
|
-
html: 'Den absorberade kortvågiga strålningen uppskattas som S(1 - a) / 4, där S är solkonstanten och a är planetarisk albedo. Divisionen med fyra omvandlar solljus som fångas upp av jordens skiva till ett medelvärde över hela den sfäriska ytan. Högre albedo sänker absorberad energi; högre växthusgaskoncentration lägger till positiv strålningsforcering som höjer skattningen av yttemperaturen.',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
type: 'table',
|
|
100
|
-
headers: ['Reglage', 'Fysisk betydelse', 'Klimateffekt'],
|
|
101
|
-
rows: [
|
|
102
|
-
['Solkonstanten', 'Inkommande stjärnenergi vid jordens omloppsbana', 'Högre värden värmer planeten och minskar isen.'],
|
|
103
|
-
['Växthusgaser', 'Långvågig strålningsforcering relativt en referensatmosfär', 'Högre värden gör snöbollslåsning svårare.'],
|
|
104
|
-
['Inledande istäckning', 'Startreflektivitet hos planeten', 'Höga värden kan utlösa skenande avkylning genom albedo-återkoppling.'],
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
type: 'title',
|
|
109
|
-
text: 'Varför albedo-återkoppling kan bli olinjär',
|
|
110
|
-
level: 3,
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'paragraph',
|
|
114
|
-
html: 'Is-albedo-slingan är inte en skonsam envägsjustering. När isen når tillräckligt stor del av planeten kan den ljusare ytan ta bort så mycket absorberat solljus att sommarsmältningen blir svag. I motsatt riktning exponerar retirerande is mörkare hav och land, vilket ökar absorptionen och trycker planeten bort från glaciation. Det är därför liknande forcering kan producera olika utfall beroende på den inledande istäckningen.',
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
type: 'paragraph',
|
|
118
|
-
html: 'Verkliga jorden lägger till många komplikationer: moln, damm på is, oceanisk värmetransport, kontinentala positioner, säsongsbetonat solljus, havsisdynamik och kolets kretslopp. En enkel modell har fortfarande värde eftersom den isolerar första ordningens strålningsbudget. Den låter dig se varför Snöbollsjorden-hypoteser beror på både svagt solljus eller högalbedotriggers och senare växthusgasuppbyggnad för flykt.',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'title',
|
|
122
|
-
text: 'Tolkning av simulatorn',
|
|
123
|
-
level: 3,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'list',
|
|
127
|
-
items: [
|
|
128
|
-
'<strong>Snöbollslåsning:</strong> slutlig istäckning är mycket hög och jämviktstemperaturen förblir långt under fryspunkten.',
|
|
129
|
-
'<strong>Tempererad balans:</strong> modellen stabiliseras med partiell istäckning och måttlig absorberad strålning.',
|
|
130
|
-
'<strong>Växthusreträtt:</strong> is kollapsar till en mycket liten andel medan växthusforcering och absorberat solljus förblir höga.',
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
faq,
|
|
135
|
-
bibliography,
|
|
136
|
-
howTo,
|
|
137
|
-
schemas: [
|
|
138
|
-
{
|
|
139
|
-
'@context': 'https://schema.org',
|
|
140
|
-
'@type': 'SoftwareApplication',
|
|
141
|
-
name: title,
|
|
142
|
-
description,
|
|
143
|
-
applicationCategory: 'ScientificApplication',
|
|
144
|
-
operatingSystem: 'Any',
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
'@context': 'https://schema.org',
|
|
148
|
-
'@type': 'FAQPage',
|
|
149
|
-
mainEntity: faq.map((item) => ({
|
|
150
|
-
'@type': 'Question',
|
|
151
|
-
name: item.question,
|
|
152
|
-
acceptedAnswer: {
|
|
153
|
-
'@type': 'Answer',
|
|
154
|
-
text: item.answer,
|
|
155
|
-
},
|
|
156
|
-
})),
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
'@context': 'https://schema.org',
|
|
160
|
-
'@type': 'HowTo',
|
|
161
|
-
name: title,
|
|
162
|
-
step: howTo.map((step) => ({
|
|
163
|
-
'@type': 'HowToStep',
|
|
164
|
-
name: step.name,
|
|
165
|
-
text: step.text,
|
|
166
|
-
})),
|
|
167
|
-
},
|
|
168
|
-
],
|
|
169
|
-
};
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'global-albedo-snoboll-simulator';
|
|
5
|
+
const title = 'Global Albedo och Snöbollsjorden Simulator';
|
|
6
|
+
const description = 'Utforska jordens termiska strålningsbalans, förändringar i solkonstanten, växthusgaskoncentration och is-albedo-återkoppling för att se om istäcken drar sig tillbaka, stabiliseras eller utlöser ett snöbollsklimat.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Ställ in inkommande solljus',
|
|
11
|
+
text: 'Flytta reglaget för solkonstanten för att testa svagare ung-sol-scenarier, nuvarande solljus på jorden eller starkare framtida forcering.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Justera växthusgaskoncentrationen',
|
|
15
|
+
text: 'Ändra växthusgaskoncentrationen för att se hur strålningsforcering konkurrerar med högre planetarisk albedo.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Plantera is på planeten',
|
|
19
|
+
text: 'Börja med en liten polarkalott eller en stor istäckt värld. Modellen itererar återkopplingsslingan och visar om isen avancerar eller drar sig tillbaka.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Läs av klimattillståndet',
|
|
23
|
+
text: 'Använd temperaturen, absorberad strålning, slutlig istäckning och tidslinjekurvan för att jämföra tempererade, snöbolls- och växthusutfall.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'Vad är is-albedo-återkoppling?',
|
|
30
|
+
answer: 'Is och snö reflekterar mer solljus än hav eller land. När isen expanderar ökar den planetariska albedon, absorberad solenergi minskar och avkylning kan tillåta att ännu mer is bildas. När isen drar sig tillbaka absorberar den mörkare ytan mer energi och uppvärmningen accelererar.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Vad betyder Snöbollsjorden?',
|
|
34
|
+
answer: 'Snöbollsjorden är ett hypotetiskt klimattillstånd där is når låga breddgrader eller nästan global täckning. Geologiska bevis tyder på att jorden kan ha närmat sig sådana tillstånd under neoproterozoikum.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Är detta en komplett klimatmodell?',
|
|
38
|
+
answer: 'Nej. Det är en kompakt energibalansmodell för lärande. Den ignorerar atmosfärisk cirkulation, moln, oceanisk värmetransport, årstider, geografi och kolets kretslopp, men den fångar den centrala strålningslogiken i albedo-återkoppling.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Varför kan växthusgaser bryta ett snöbollstillstånd?',
|
|
42
|
+
answer: 'Växthusgaser minskar utgående långvågig avkylning genom att tillföra strålningsforcering. I Snöbollsjorden-scenarier kan vulkanisk koldioxid ackumuleras när vittring av silikat långsammare, vilket så småningom värmer upp planeten tillräckligt för att smälta is på låga breddgrader.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
controls: 'Klimatreglage',
|
|
52
|
+
solarConstant: 'Solkonstanten',
|
|
53
|
+
greenhouse: 'Växthusgaser',
|
|
54
|
+
initialIce: 'Inledande istäckning',
|
|
55
|
+
temperature: 'Jämviktstemperatur',
|
|
56
|
+
absorbed: 'Absorberat solljus',
|
|
57
|
+
finalIce: 'Slutlig istäckning',
|
|
58
|
+
albedo: 'Planetarisk albedo',
|
|
59
|
+
forcing: 'Växthusforcering',
|
|
60
|
+
state: 'Klimattillstånd',
|
|
61
|
+
timeline: 'Isutveckling',
|
|
62
|
+
years: 'modellår',
|
|
63
|
+
snowball: 'Snöbollslåsning',
|
|
64
|
+
temperate: 'Tempererad balans',
|
|
65
|
+
hothouse: 'Växthusreträtt',
|
|
66
|
+
retreating: 'Is drar sig tillbaka',
|
|
67
|
+
advancing: 'Is avancerar',
|
|
68
|
+
stable: 'Nära jämvikt',
|
|
69
|
+
watts: '{value} W/m2',
|
|
70
|
+
ppm: '{value} ppm',
|
|
71
|
+
percent: '{value}%',
|
|
72
|
+
celsius: '{value} C',
|
|
73
|
+
diagnostics: 'Strålningsdiagnostik',
|
|
74
|
+
},
|
|
75
|
+
seo: [
|
|
76
|
+
{
|
|
77
|
+
type: 'title',
|
|
78
|
+
text: 'Global albedosimulator för is-albedo-återkoppling och Snöbollsjorden',
|
|
79
|
+
level: 2,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: 'paragraph',
|
|
83
|
+
html: 'Denna simulator utforskar en av de viktigaste återkopplingsslingorna i planetariskt klimat: kopplingen mellan istäckning, reflektivitet och absorberat solljus. En planet med ljus is reflekterar mer inkommande solstrålning tillbaka till rymden. Den avkylningen kan bevara eller expandera isen, vilket höjer albedon ytterligare och trycker systemet mot ett Snöbollsjorden-tillstånd. En planet med mindre is absorberar mer solljus, vilket kan påskynda deglaciation.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Använd reglagen för att ändra solkonstanten, växthusgaskoncentrationen och inledande istäckning. Modellen itererar sedan en enkel global energibalans och visar om klimatet rör sig mot omfattande glaciation, en tempererad jämvikt eller ett varmt lågistillstånd. Den är designad för snabb intuition: varje reglage mappar direkt till en fysisk term i strålningsbudgeten.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: 'Hur energibalansen uppskattas',
|
|
92
|
+
level: 3,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: 'Den absorberade kortvågiga strålningen uppskattas som S(1 - a) / 4, där S är solkonstanten och a är planetarisk albedo. Divisionen med fyra omvandlar solljus som fångas upp av jordens skiva till ett medelvärde över hela den sfäriska ytan. Högre albedo sänker absorberad energi; högre växthusgaskoncentration lägger till positiv strålningsforcering som höjer skattningen av yttemperaturen.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'table',
|
|
100
|
+
headers: ['Reglage', 'Fysisk betydelse', 'Klimateffekt'],
|
|
101
|
+
rows: [
|
|
102
|
+
['Solkonstanten', 'Inkommande stjärnenergi vid jordens omloppsbana', 'Högre värden värmer planeten och minskar isen.'],
|
|
103
|
+
['Växthusgaser', 'Långvågig strålningsforcering relativt en referensatmosfär', 'Högre värden gör snöbollslåsning svårare.'],
|
|
104
|
+
['Inledande istäckning', 'Startreflektivitet hos planeten', 'Höga värden kan utlösa skenande avkylning genom albedo-återkoppling.'],
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'title',
|
|
109
|
+
text: 'Varför albedo-återkoppling kan bli olinjär',
|
|
110
|
+
level: 3,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Is-albedo-slingan är inte en skonsam envägsjustering. När isen når tillräckligt stor del av planeten kan den ljusare ytan ta bort så mycket absorberat solljus att sommarsmältningen blir svag. I motsatt riktning exponerar retirerande is mörkare hav och land, vilket ökar absorptionen och trycker planeten bort från glaciation. Det är därför liknande forcering kan producera olika utfall beroende på den inledande istäckningen.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Verkliga jorden lägger till många komplikationer: moln, damm på is, oceanisk värmetransport, kontinentala positioner, säsongsbetonat solljus, havsisdynamik och kolets kretslopp. En enkel modell har fortfarande värde eftersom den isolerar första ordningens strålningsbudget. Den låter dig se varför Snöbollsjorden-hypoteser beror på både svagt solljus eller högalbedotriggers och senare växthusgasuppbyggnad för flykt.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Tolkning av simulatorn',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'list',
|
|
127
|
+
items: [
|
|
128
|
+
'<strong>Snöbollslåsning:</strong> slutlig istäckning är mycket hög och jämviktstemperaturen förblir långt under fryspunkten.',
|
|
129
|
+
'<strong>Tempererad balans:</strong> modellen stabiliseras med partiell istäckning och måttlig absorberad strålning.',
|
|
130
|
+
'<strong>Växthusreträtt:</strong> is kollapsar till en mycket liten andel medan växthusforcering och absorberat solljus förblir höga.',
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
faq,
|
|
135
|
+
bibliography,
|
|
136
|
+
howTo,
|
|
137
|
+
schemas: [
|
|
138
|
+
{
|
|
139
|
+
'@context': 'https://schema.org',
|
|
140
|
+
'@type': 'SoftwareApplication',
|
|
141
|
+
name: title,
|
|
142
|
+
description,
|
|
143
|
+
applicationCategory: 'ScientificApplication',
|
|
144
|
+
operatingSystem: 'Any',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
'@context': 'https://schema.org',
|
|
148
|
+
'@type': 'FAQPage',
|
|
149
|
+
mainEntity: faq.map((item) => ({
|
|
150
|
+
'@type': 'Question',
|
|
151
|
+
name: item.question,
|
|
152
|
+
acceptedAnswer: {
|
|
153
|
+
'@type': 'Answer',
|
|
154
|
+
text: item.answer,
|
|
155
|
+
},
|
|
156
|
+
})),
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
'@context': 'https://schema.org',
|
|
160
|
+
'@type': 'HowTo',
|
|
161
|
+
name: title,
|
|
162
|
+
step: howTo.map((step) => ({
|
|
163
|
+
'@type': 'HowToStep',
|
|
164
|
+
name: step.name,
|
|
165
|
+
text: step.text,
|
|
166
|
+
})),
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
};
|