@jjlmoya/utils-science 1.41.0 → 1.43.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 +1 -1
- package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
- package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
- package/src/category/index.ts +3 -1
- package/src/entries.ts +5 -1
- package/src/index.ts +2 -0
- package/src/tests/diacritics_density.test.ts +140 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/tool_validation.test.ts +2 -3
- package/src/tool/conway-life-rule-lab/i18n/de.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/es.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/fr.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/id.ts +102 -45
- package/src/tool/conway-life-rule-lab/i18n/it.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ja.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ko.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/nl.ts +102 -45
- package/src/tool/conway-life-rule-lab/i18n/pl.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/pt.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ru.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/sv.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/tr.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/zh.ts +62 -5
- package/src/tool/cosmic-inflation/i18n/es.ts +5 -5
- package/src/tool/cosmic-inflation/i18n/it.ts +51 -51
- package/src/tool/cosmic-inflation/i18n/ru.ts +42 -150
- package/src/tool/crystal-lattice-structure-finder/component.astro +120 -39
- package/src/tool/crystal-lattice-structure-finder/crystal-lattice-structure-finder.css +204 -56
- package/src/tool/crystal-lattice-structure-finder/data.ts +107 -133
- package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +45 -6
- package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +39 -0
- package/src/tool/crystal-lattice-structure-finder/logic.ts +7 -3
- package/src/tool/crystal-lattice-structure-finder/structures/README.md +26 -0
- package/src/tool/crystal-lattice-structure-finder/structures/body-centered-cubic.ts +19 -0
- package/src/tool/crystal-lattice-structure-finder/structures/cesium-chloride.ts +19 -0
- package/src/tool/crystal-lattice-structure-finder/structures/diamond-cubic.ts +23 -0
- package/src/tool/crystal-lattice-structure-finder/structures/face-centered-cubic.ts +16 -0
- package/src/tool/crystal-lattice-structure-finder/structures/hexagonal-close-packed.ts +30 -0
- package/src/tool/crystal-lattice-structure-finder/structures/index.ts +25 -0
- package/src/tool/crystal-lattice-structure-finder/structures/perovskite.ts +20 -0
- package/src/tool/crystal-lattice-structure-finder/structures/rock-salt.ts +23 -0
- package/src/tool/crystal-lattice-structure-finder/structures/rutile.ts +25 -0
- package/src/tool/crystal-lattice-structure-finder/structures/shared.ts +86 -0
- package/src/tool/crystal-lattice-structure-finder/structures/simple-cubic.ts +16 -0
- package/src/tool/crystal-lattice-structure-finder/structures/wurtzite.ts +22 -0
- package/src/tool/crystal-lattice-structure-finder/structures/zinc-blende.ts +23 -0
- package/src/tool/double-slit-decoherence/i18n/fr.ts +42 -86
- package/src/tool/double-slit-decoherence/i18n/it.ts +28 -72
- package/src/tool/double-slit-decoherence/i18n/pt.ts +35 -79
- package/src/tool/double-slit-decoherence/i18n/ru.ts +59 -59
- package/src/tool/double-slit-decoherence/i18n/sv.ts +33 -81
- package/src/tool/double-slit-decoherence/i18n/tr.ts +55 -55
- package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +42 -123
- package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +63 -131
- package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +36 -113
- package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +66 -42
- package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +66 -42
- package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +50 -133
- package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +51 -132
- package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +61 -98
- package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +56 -137
- package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +61 -142
- package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +67 -43
- package/src/tool/epidemic-sir-simulator/bibliography.astro +15 -0
- package/src/tool/epidemic-sir-simulator/bibliography.ts +37 -0
- package/src/tool/epidemic-sir-simulator/component.astro +384 -0
- package/src/tool/epidemic-sir-simulator/entry.ts +30 -0
- package/src/tool/epidemic-sir-simulator/epidemic-sir-simulator.css +624 -0
- package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/en.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/id.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/it.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ja.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ko.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/pl.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/pt.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/tr.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -0
- package/src/tool/epidemic-sir-simulator/index.ts +12 -0
- package/src/tool/epidemic-sir-simulator/logic.ts +163 -0
- package/src/tool/epidemic-sir-simulator/seo.astro +16 -0
- package/src/tool/fermi-paradox-filter-lab/bibliography.astro +14 -0
- package/src/tool/fermi-paradox-filter-lab/bibliography.ts +24 -0
- package/src/tool/fermi-paradox-filter-lab/component.astro +257 -0
- package/src/tool/fermi-paradox-filter-lab/entry.ts +26 -0
- package/src/tool/fermi-paradox-filter-lab/fermi-paradox-filter-lab.css +228 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/de.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/en.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/es.ts +193 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/fr.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/id.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/it.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ja.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ko.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/nl.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/pl.ts +193 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/pt.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ru.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/sv.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/tr.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/zh.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/index.ts +11 -0
- package/src/tool/fermi-paradox-filter-lab/logic.ts +125 -0
- package/src/tool/fermi-paradox-filter-lab/seo.astro +15 -0
- package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +50 -63
- package/src/tool/lorenz-attractor/i18n/de.ts +52 -78
- package/src/tool/lorenz-attractor/i18n/es.ts +5 -5
- package/src/tool/lorenz-attractor/i18n/fr.ts +51 -77
- package/src/tool/lorenz-attractor/i18n/it.ts +36 -36
- package/src/tool/lorenz-attractor/i18n/pt.ts +51 -75
- package/src/tool/mandelbrot-fractal/i18n/de.ts +31 -58
- package/src/tool/mandelbrot-fractal/i18n/es.ts +5 -5
- package/src/tool/mandelbrot-fractal/i18n/fr.ts +39 -57
- package/src/tool/mandelbrot-fractal/i18n/it.ts +30 -48
- package/src/tool/mandelbrot-fractal/i18n/pl.ts +34 -52
- package/src/tool/mandelbrot-fractal/i18n/pt.ts +30 -30
- package/src/tool/mandelbrot-fractal/i18n/ru.ts +42 -60
- package/src/tool/mandelbrot-fractal/i18n/sv.ts +38 -65
- package/src/tool/natural-selection-drift/i18n/it.ts +18 -95
- package/src/tool/natural-selection-drift/i18n/pt.ts +76 -19
- package/src/tool/natural-selection-drift/i18n/ru.ts +27 -24
- package/src/tool/natural-selection-drift/i18n/sv.ts +9 -6
- package/src/tool/phase-diagram-critical-points/i18n/de.ts +30 -68
- package/src/tool/phase-diagram-critical-points/i18n/es.ts +4 -4
- package/src/tool/phase-diagram-critical-points/i18n/fr.ts +37 -75
- package/src/tool/phase-diagram-critical-points/i18n/it.ts +8 -8
- package/src/tool/planet-atmosphere-survival/i18n/ru.ts +49 -192
- package/src/tool/radioactive-decay/i18n/de.ts +16 -32
- package/src/tool/radioactive-decay/i18n/es.ts +5 -5
- package/src/tool/radioactive-decay/i18n/fr.ts +24 -40
- package/src/tool/radioactive-decay/i18n/it.ts +18 -35
- package/src/tool/radioactive-decay/i18n/pt.ts +34 -34
- package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +52 -128
- package/src/tool/temperature-timeline/i18n/de.ts +46 -174
- package/src/tool/temperature-timeline/i18n/es.ts +5 -5
- package/src/tool/temperature-timeline/i18n/fr.ts +69 -144
- package/src/tool/temperature-timeline/i18n/it.ts +34 -133
- package/src/tool/temperature-timeline/i18n/pt.ts +35 -174
- package/src/tool/temperature-timeline/i18n/ru.ts +48 -174
- package/src/tool/twin-paradox-visualizer/i18n/es.ts +5 -5
- package/src/tool/twin-paradox-visualizer/i18n/fr.ts +34 -34
- package/src/tool/twin-paradox-visualizer/i18n/pt.ts +31 -71
- package/src/tools.ts +4 -0
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
|
|
4
|
-
const slug = 'mandelbrot-
|
|
5
|
-
const title = 'Mandelbrot
|
|
6
|
-
const description = 'Utforska
|
|
4
|
+
const slug = 'mandelbrot-fraktalkalkylator';
|
|
5
|
+
const title = 'Mandelbrot fraktalkalkylator & Självlikhetsutforskare';
|
|
6
|
+
const description = 'Utforska Mandelbrotmängden, zooma in på självliknande fraktalgränser och jämför itereringsdjup, färgkontrast och komplexa koordinater.';
|
|
7
7
|
|
|
8
8
|
const howTo = [
|
|
9
9
|
{
|
|
10
|
-
name: '
|
|
11
|
-
text: '
|
|
10
|
+
name: 'Välj ett område av Mandelbrotmängden',
|
|
11
|
+
text: 'Börja med hela mängden eller hoppa direkt till ett högupplöst område som hästskodalen eller en spiralminibrot.',
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
name: 'Zooma genom att klicka
|
|
15
|
-
text: 'Klicka
|
|
14
|
+
name: 'Zooma genom att klicka på bilden',
|
|
15
|
+
text: 'Klicka på valfri punkt på canvas-ytan för att återcentrera det komplexa planet och förstora fraktalen runt den koordinaten.',
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
name: 'Justera itereringsdjup och
|
|
19
|
-
text: '
|
|
18
|
+
name: 'Justera itereringsdjup och färgkontrast',
|
|
19
|
+
text: 'Öka itereringsbudgeten för att avslöja finare gränsstrukturer, justera sedan kontrast och palett för att göra flykttidsbanden lättare att tyda.',
|
|
20
20
|
},
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faq = [
|
|
24
24
|
{
|
|
25
|
-
question: 'Vad visar
|
|
26
|
-
answer: 'Den visar vilka komplexa tal c som
|
|
25
|
+
question: 'Vad visar Mandelbrotmängdskalkylatorn?',
|
|
26
|
+
answer: 'Den visar vilka komplexa tal c som håller rekursionen z(n+1) = z(n)^2 + c begränsad när man börjar från z = 0. Punkter som aldrig "flyr" inom den valda itereringsbudgeten färgsätts som medlemmar av mängden, medan yttre punkter färgsätts baserat på hur snabbt deras bana flyr mot oändligheten.',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
question: '
|
|
30
|
-
answer: '
|
|
29
|
+
question: 'Varför innehåller Mandelbrotmängdens gräns så mycket detaljer?',
|
|
30
|
+
answer: 'Gränsen separerar stabila från flyende banor, och små koordinatförändringar nära den gränsen kan fullständigt ändra långtidsbeteendet. Denna känslighet skapar kapslade bubblor, spiraler, filament och miniatyrkopior som uppträder på många förstoringsnivåer.',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
question: '
|
|
34
|
-
answer: 'Den
|
|
33
|
+
question: 'Är Mandelbrotmängden verkligen självliknande?',
|
|
34
|
+
answer: 'Den är inte perfekt självliknande på samma strikta sätt som en Sierpinski-triangel, men den är rikligt kvasi-självliknande. Små kopior av hela mängden uppträder överallt i det komplexa planet, ofta förvridna och sammanbundna av utstuderade grenstrukturer.',
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
question: 'Vad styr itereringsantalet?',
|
|
38
|
-
answer: 'Itereringsantalet styr hur
|
|
38
|
+
answer: 'Itereringsantalet styr hur länge kalkylatorn testar varje punkt innan den beslutar att den sannolikt tillhör mängden. Högre värden avslöjar djupare filament och renare minibrots, men kräver mer beräkningskapacitet per pixel.',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
question: '
|
|
42
|
-
answer: '
|
|
41
|
+
question: 'Varför ändras färgerna utanför det svarta området?',
|
|
42
|
+
answer: 'De yttre färgerna baseras på flykttid: punkter som flyr snabbt får andra färger än punkter som håller sig nära mängden under många iterationer. Jämn färgläggning minskar hårda band och gör geometrin hos närliggande banor lättare att inspektera.',
|
|
43
43
|
},
|
|
44
44
|
];
|
|
45
45
|
|
|
@@ -48,78 +48,51 @@ export const content: ToolLocaleContent = {
|
|
|
48
48
|
title,
|
|
49
49
|
description,
|
|
50
50
|
ui: {
|
|
51
|
-
title: 'Mandelbrot
|
|
52
|
-
canvasLabel: 'Interaktiv
|
|
53
|
-
presetsLabel: '
|
|
54
|
-
presetFull: 'Hela
|
|
55
|
-
presetSeahorse: '
|
|
51
|
+
title: 'Mandelbrot fraktalkalkylator',
|
|
52
|
+
canvasLabel: 'Interaktiv Mandelbrotmängd-canvas',
|
|
53
|
+
presetsLabel: 'Förinställda Mandelbrotområden',
|
|
54
|
+
presetFull: 'Hela mängden',
|
|
55
|
+
presetSeahorse: 'Hästskodalen',
|
|
56
56
|
presetSpiral: 'Spiralminibrot',
|
|
57
57
|
centerPoint: 'Centrum',
|
|
58
|
-
magnification: '
|
|
59
|
-
visibleWindow: 'Synligt
|
|
60
|
-
renderBudget: '
|
|
58
|
+
magnification: 'Förstoring',
|
|
59
|
+
visibleWindow: 'Synligt fönster',
|
|
60
|
+
renderBudget: 'Iterationer',
|
|
61
61
|
iterationsLabel: 'Itereringsdjup',
|
|
62
62
|
contrastLabel: 'Flyktkontrast',
|
|
63
|
-
colorLabel: '
|
|
64
|
-
paletteEmber: '
|
|
63
|
+
colorLabel: 'Färgfält',
|
|
64
|
+
paletteEmber: 'Glödbands',
|
|
65
65
|
paletteLagoon: 'Lagunplasma',
|
|
66
|
-
paletteInk: '
|
|
66
|
+
paletteInk: 'Spektrum',
|
|
67
67
|
},
|
|
68
68
|
seo: [
|
|
69
69
|
{
|
|
70
70
|
type: 'title',
|
|
71
|
-
text: '
|
|
71
|
+
text: 'Mandelbrotmängdskalkylator för fraktaler, flykttid och självlikhet',
|
|
72
72
|
level: 2,
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
type: 'paragraph',
|
|
76
|
-
html: 'Denna
|
|
76
|
+
html: 'Denna Mandelbrot-fraktalkalkylator renderar den klassiska mängden i det komplexa planet, definierad av iterationen <strong>z(n+1) = z(n)^2 + c</strong>. Den är designad för utforskning: varje klick återcentrerar planet, varje zoom exponerar en ny matematisk omgivning, och itereringsreglaget låter dig bestämma hur djupt kalkylatorn ska testa gränsen.',
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
type: 'title',
|
|
80
|
-
text: '
|
|
80
|
+
text: 'Hur man läser Mandelbrot-bilden',
|
|
81
81
|
level: 3,
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
type: 'paragraph',
|
|
85
|
-
html: 'Den
|
|
85
|
+
html: 'Den mörka centrala formen markerar punkter vars banor förblir begränsade inom den aktuella itereringsbudgeten. Det färglagda yttre är en flykttidskarta. En punkt färglagd nära mängden kan överleva hundratals iterationer innan dess magnitud överstiger flyktradien, medan en punkt långt borta flyr nästan omedelbart. Den mest intressanta geometrin finns oftast längs gränsen där begränsat och obegränsat beteende sammanflätas.',
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
type: 'table',
|
|
89
|
-
headers: ['Kontroll', 'Vad den
|
|
89
|
+
headers: ['Kontroll', 'Vad den ändrar', 'När den ska ökas'],
|
|
90
90
|
rows: [
|
|
91
|
-
['<strong>Itereringsdjup</strong>', 'Hur
|
|
92
|
-
['<strong>Flyktkontrast</strong>', 'Hur starkt
|
|
93
|
-
['<strong>Palett</strong>', '
|
|
91
|
+
['<strong>Itereringsdjup</strong>', 'Hur många rekursionssteg som testas för varje pixel.', 'Använd högre värden efter inzoomning på tunna filament eller miniatyrkopior.'],
|
|
92
|
+
['<strong>Flyktkontrast</strong>', 'Hur starkt jämna flyktvärden separeras i synliga band.', 'Höj den när bilden ser plan ut; sänk den när färgerna är för hårda.'],
|
|
93
|
+
['<strong>Palett</strong>', 'Färgmappningen som tillämpas på yttre punkter.', 'Växla paletter för att avslöja strukturer som kan vara dolda av ett enda färgfält.'],
|
|
94
94
|
],
|
|
95
95
|
},
|
|
96
|
-
{
|
|
97
|
-
type: 'title',
|
|
98
|
-
text: 'Self-Similarity and Minibrots',
|
|
99
|
-
level: 3,
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'paragraph',
|
|
103
|
-
html: 'En anledning till att Mandelbrotmangden ar sa kanda ar dess kvasi-sjalvlikhet. Nar du zoomar in pa antenner, spiraler och dalar stoter du upprepade ganger pa sma Mandelbrotliknande oar, ofta kallade minibrots. Dessa kopior ar inte bara dekorativa. Deras arrangemang speglar dynamiken i kvadratiska avbildningar, inklusive periodiska bulbler, bifurkationsmonster och omraden dar banor forbli r fastna under langa perioder innan de flyr.',
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
type: 'title',
|
|
107
|
-
text: 'Why Higher Iterations Matter at Deep Zoom',
|
|
108
|
-
level: 3,
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'paragraph',
|
|
112
|
-
html: 'I hela mangdens vy ger en blygsam itereringsgrans en igenkannlig bild. Vid djupare forstoring tar det dock mycket langre tid for manga granspunkter att avsloja om de flyr. Om itereringsgransen ar for lag kan fina strukturer se falskt solida eller otydliga ut. Att oka itereringsantalet forbattrar gransklassificeringen och later kalkylatorn losa upp smala slingor, spiralarmar och satellitbulbler med storre sakerhet.',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
type: 'title',
|
|
116
|
-
text: 'Mathematical Meaning of the Complex Coordinates',
|
|
117
|
-
level: 3,
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'paragraph',
|
|
121
|
-
html: 'Koordinatlasningen visar det aktuella centrumet av visningsporten som ett komplext tal c = a + bi. Den horisontella axeln ar den reella delen och den vertikala axeln ar den imaginara delen. Genom att klicka pa canvasset valjer du en ny komplex koordinat och forstorar sedan det synliga fonstret runt den. Detta gor verktyget anvandbart for att lara sig hur visuella omraden av fraktalen motsvarar exakta platser i det komplexa planet.',
|
|
122
|
-
},
|
|
123
96
|
],
|
|
124
97
|
faq,
|
|
125
98
|
bibliography,
|
|
@@ -156,4 +129,4 @@ export const content: ToolLocaleContent = {
|
|
|
156
129
|
})),
|
|
157
130
|
},
|
|
158
131
|
],
|
|
159
|
-
};
|
|
132
|
+
};
|
|
@@ -9,7 +9,7 @@ const description =
|
|
|
9
9
|
const howTo = [
|
|
10
10
|
{
|
|
11
11
|
name: 'Imposta la popolazione',
|
|
12
|
-
text: 'Scegli una popolazione piccola o grande per vedere come il campione influenza la
|
|
12
|
+
text: 'Scegli una popolazione piccola o grande per vedere come il campione influenza la stabilità evolutiva.',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
name: 'Regola selezione e deriva',
|
|
@@ -17,43 +17,34 @@ const howTo = [
|
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
name: 'Segui le generazioni',
|
|
20
|
-
text: 'Avvia la simulazione e confronta tratto dominante, fitness e
|
|
20
|
+
text: 'Avvia la simulazione e confronta il tratto dominante, la fitness e la diversità nel tempo.',
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
name: 'Interpreta i risultati',
|
|
24
|
-
text: 'Usa le metriche per capire quando vince l
|
|
24
|
+
text: 'Usa le metriche per capire quando vince l\'adattamento e quando domina il caso.',
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
27
|
|
|
28
28
|
const faq = [
|
|
29
29
|
{
|
|
30
|
-
question: 'Qual
|
|
30
|
+
question: 'Qual è la differenza tra selezione naturale e deriva genetica?',
|
|
31
31
|
answer:
|
|
32
|
-
'La selezione naturale non
|
|
32
|
+
'La selezione naturale non è casuale: i tratti vantaggiosi diventano più comuni perché aumentano la fitness. La deriva genetica è una variazione casuale delle frequenze alleliche, un fenomeno molto più marcato nelle popolazioni piccole.',
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
question: '
|
|
35
|
+
question: 'Perché le popolazioni piccole cambiano più velocemente?',
|
|
36
36
|
answer:
|
|
37
|
-
'Con pochi individui il campionamento casuale ha un
|
|
37
|
+
'Con pochi individui, il campionamento casuale ha un impatto molto più grande sulla composizione genetica della generazione successiva.',
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
question: 'La deriva
|
|
40
|
+
question: 'La deriva può superare la selezione?',
|
|
41
41
|
answer:
|
|
42
|
-
'
|
|
42
|
+
'Sì. Un tratto vantaggioso può sparire per caso se la deriva genetica è sufficientemente forte, annullando il vantaggio selettivo.',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
question: 'Cosa significa fitness in questo simulatore?',
|
|
45
|
+
question: 'Cosa significa "fitness" in questo simulatore?',
|
|
46
46
|
answer:
|
|
47
|
-
'
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
question: 'Perche la dimensione della popolazione e cosi importante?',
|
|
51
|
-
answer: 'Determina quanto il caso influenza le frequenze alleliche.',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
question: 'Quando usare questo simulatore?',
|
|
55
|
-
answer:
|
|
56
|
-
'Quando vuoi capire l intuizione dell evoluzione, soprattutto selezione contro deriva.',
|
|
47
|
+
'La fitness è un punteggio semplificato che indica quanto bene la popolazione è adattata all\'ambiente scelto nel simulatore.',
|
|
57
48
|
},
|
|
58
49
|
];
|
|
59
50
|
|
|
@@ -66,30 +57,29 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
66
57
|
generations: 'Generazioni',
|
|
67
58
|
mutationRate: 'Tasso di mutazione',
|
|
68
59
|
selectionPressure: 'Pressione selettiva',
|
|
69
|
-
driftIntensity: '
|
|
60
|
+
driftIntensity: 'Intensità della deriva',
|
|
70
61
|
alleleCount: 'Alleli iniziali',
|
|
71
62
|
innovationRate: 'Tasso di innovazione',
|
|
72
63
|
run: 'Avvia simulazione',
|
|
73
64
|
dominantTrait: 'Tratto dominante',
|
|
74
65
|
fitness: 'Fitness finale',
|
|
75
|
-
diversity: '
|
|
66
|
+
diversity: 'Diversità genetica',
|
|
76
67
|
evolutionConsole: 'Console evolutiva',
|
|
77
68
|
populationLabel: 'Popolazione',
|
|
78
69
|
aliveLabel: 'vivi',
|
|
79
70
|
alleleCountsLabel: 'Conteggio alleli',
|
|
80
|
-
alleleDefault: '
|
|
71
|
+
alleleDefault: 'Allele 1',
|
|
81
72
|
populationValueLabel: 'Popolazione',
|
|
82
73
|
},
|
|
83
74
|
seo: [
|
|
84
75
|
{
|
|
85
76
|
type: 'title',
|
|
86
|
-
text: 'Selezione naturale vs deriva genetica: capire l
|
|
77
|
+
text: 'Selezione naturale vs deriva genetica: capire l\'evoluzione con una popolazione viva',
|
|
87
78
|
level: 2,
|
|
88
79
|
},
|
|
89
80
|
{
|
|
90
81
|
type: 'paragraph',
|
|
91
|
-
html:
|
|
92
|
-
'Se vuoi capire selezione naturale vs deriva genetica, questo simulatore ti da il livello visivo che manca spesso.',
|
|
82
|
+
html: 'Se vuoi capire la differenza tra selezione naturale e deriva genetica, questo simulatore ti offre la prospettiva visiva che spesso manca nei libri di testo.',
|
|
93
83
|
},
|
|
94
84
|
{
|
|
95
85
|
type: 'title',
|
|
@@ -98,74 +88,7 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
98
88
|
},
|
|
99
89
|
{
|
|
100
90
|
type: 'paragraph',
|
|
101
|
-
html:
|
|
102
|
-
'La selezione naturale aumenta la frequenza dei tratti vantaggiosi. La deriva genetica cambia le frequenze alleliche in modo casuale.',
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
type: 'paragraph',
|
|
106
|
-
html:
|
|
107
|
-
'Le due forze agiscono insieme. Nelle popolazioni grandi la selezione domina spesso; in quelle piccole il caso puo cancellare tratti utili.',
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
type: 'title',
|
|
111
|
-
text: 'Come leggere i risultati',
|
|
112
|
-
level: 3,
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
type: 'paragraph',
|
|
116
|
-
html:
|
|
117
|
-
'Le metriche live mostrano l allele dominante, la diversita genetica, il fitness finale e se la popolazione cresce o crolla.',
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'title',
|
|
121
|
-
text: 'Perche la dimensione della popolazione cambia la storia',
|
|
122
|
-
level: 3,
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
type: 'list',
|
|
126
|
-
items: [
|
|
127
|
-
'<strong>Pressione selettiva:</strong> quanto l ambiente premia un tratto.',
|
|
128
|
-
'<strong>Intensita della deriva:</strong> quanto rumore casuale agisce a ogni generazione.',
|
|
129
|
-
'<strong>Tasso di mutazione:</strong> quanto spesso entra nuova variabilita.',
|
|
130
|
-
'<strong>Numero di alleli:</strong> quanti alleli espliciti ci sono all inizio.',
|
|
131
|
-
'<strong>Diversita genetica:</strong> perche la variazione e il materiale grezzo dell evoluzione.',
|
|
132
|
-
],
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: 'paragraph',
|
|
136
|
-
html:
|
|
137
|
-
'Il simulatore ti aiuta a capire l evoluzione in modo pratico, senza fermarti alle definizioni astratte.',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
type: 'title',
|
|
141
|
-
text: 'Esempi rapidi',
|
|
142
|
-
level: 3,
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
type: 'table',
|
|
146
|
-
headers: ['Obiettivo', 'Cosa cambiare', 'Cosa dovresti vedere'],
|
|
147
|
-
rows: [
|
|
148
|
-
[
|
|
149
|
-
'Mostrare la vittoria della selezione',
|
|
150
|
-
'Aumenta la pressione selettiva e riduci la deriva',
|
|
151
|
-
'Un allele deve dominare nel tempo',
|
|
152
|
-
],
|
|
153
|
-
[
|
|
154
|
-
'Mostrare il caso che prende il controllo',
|
|
155
|
-
'Riduci la popolazione e aumenta la deriva',
|
|
156
|
-
'Le frequenze oscillano in modo imprevedibile',
|
|
157
|
-
],
|
|
158
|
-
[
|
|
159
|
-
'Mostrare nuove mutazioni',
|
|
160
|
-
'Aumenta mutazione e innovazione',
|
|
161
|
-
'Appaiono nuovi alleli piu spesso',
|
|
162
|
-
],
|
|
163
|
-
],
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
type: 'paragraph',
|
|
167
|
-
html:
|
|
168
|
-
'La combinazione di visuale live, ranking esplicito degli alleli e metriche in tempo reale rende il simulatore utile per insegnare e spiegare i compromessi evolutivi.',
|
|
91
|
+
html: 'La selezione naturale aumenta la frequenza dei tratti vantaggiosi. La deriva genetica modifica le frequenze alleliche in modo puramente stocastico. Le due forze agiscono costantemente insieme: nelle popolazioni ampie la selezione domina, mentre in quelle ridotte il caso può cancellare tratti anche molto utili.',
|
|
169
92
|
},
|
|
170
93
|
],
|
|
171
94
|
faq,
|
|
@@ -200,4 +123,4 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
200
123
|
})),
|
|
201
124
|
},
|
|
202
125
|
],
|
|
203
|
-
};
|
|
126
|
+
};
|
|
@@ -2,16 +2,42 @@ import { bibliography } from '../bibliography';
|
|
|
2
2
|
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
3
|
|
|
4
4
|
const slug = 'simulador-selecao-natural-deriva-genetica';
|
|
5
|
-
const title = 'Simulador de
|
|
5
|
+
const title = 'Simulador de Seleção Natural e Deriva Genética';
|
|
6
6
|
const description =
|
|
7
|
-
'Veja em tempo real como
|
|
7
|
+
'Veja em tempo real como a pressão seletiva, a mutação, a deriva genética e a reprodução alteram as frequências alélicas.';
|
|
8
8
|
|
|
9
9
|
const howTo = [
|
|
10
|
-
{
|
|
10
|
+
{
|
|
11
|
+
name: 'Defina a população',
|
|
12
|
+
text: 'Escolha uma população pequena ou grande para observar como o tamanho da amostra influencia a estabilidade evolutiva.'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Ajuste seleção e deriva',
|
|
16
|
+
text: 'Ajuste a pressão seletiva ou a intensidade da deriva para observar trajetórias evolutivas distintas.'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Acompanhe as gerações',
|
|
20
|
+
text: 'Execute a simulação e compare o traço dominante, a fitness e a diversidade ao longo do tempo.'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Interprete os resultados',
|
|
24
|
+
text: 'Use as métricas para entender quando a adaptação vence e quando o acaso domina.'
|
|
25
|
+
},
|
|
11
26
|
];
|
|
12
27
|
|
|
13
28
|
const faq = [
|
|
14
|
-
{
|
|
29
|
+
{
|
|
30
|
+
question: 'Qual é a diferença entre seleção natural e deriva genética?',
|
|
31
|
+
answer: 'A seleção natural não é aleatória: características vantajosas aumentam a fitness e tornam-se mais comuns. A deriva genética é uma mudança aleatória nas frequências alélicas, ocorrendo puramente por acaso, sendo muito mais forte em populações reduzidas.'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: 'Por que populações pequenas mudam mais rapidamente?',
|
|
35
|
+
answer: 'Em populações pequenas, o erro de amostragem é maior, o que significa que o acaso tem um peso muito superior na composição da próxima geração.'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'A deriva pode superar a seleção?',
|
|
39
|
+
answer: 'Sim. Um alelo vantajoso pode ser eliminado por puro acaso se a deriva genética for forte o suficiente para superar o benefício seletivo.'
|
|
40
|
+
},
|
|
15
41
|
];
|
|
16
42
|
|
|
17
43
|
export const content: NaturalSelectionLocaleContent = {
|
|
@@ -19,34 +45,65 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
19
45
|
title,
|
|
20
46
|
description,
|
|
21
47
|
ui: {
|
|
22
|
-
population: 'Tamanho da
|
|
23
|
-
generations: '
|
|
24
|
-
mutationRate: 'Taxa de
|
|
25
|
-
selectionPressure: '
|
|
48
|
+
population: 'Tamanho da população',
|
|
49
|
+
generations: 'Gerações',
|
|
50
|
+
mutationRate: 'Taxa de mutação',
|
|
51
|
+
selectionPressure: 'Pressão seletiva',
|
|
26
52
|
driftIntensity: 'Intensidade da deriva',
|
|
27
53
|
alleleCount: 'Alelos iniciais',
|
|
28
|
-
innovationRate: 'Taxa de
|
|
29
|
-
run: 'Executar
|
|
54
|
+
innovationRate: 'Taxa de inovação',
|
|
55
|
+
run: 'Executar simulação',
|
|
30
56
|
dominantTrait: 'Traço dominante',
|
|
31
57
|
fitness: 'Fitness final',
|
|
32
|
-
diversity: 'Diversidade
|
|
58
|
+
diversity: 'Diversidade genética',
|
|
33
59
|
evolutionConsole: 'Console evolutivo',
|
|
34
|
-
populationLabel: '
|
|
60
|
+
populationLabel: 'População',
|
|
35
61
|
aliveLabel: 'vivos',
|
|
36
62
|
alleleCountsLabel: 'Contagem de alelos',
|
|
37
63
|
alleleDefault: 'Alelo 1',
|
|
38
|
-
populationValueLabel: '
|
|
64
|
+
populationValueLabel: 'População',
|
|
39
65
|
},
|
|
40
66
|
seo: [
|
|
41
|
-
{
|
|
42
|
-
|
|
67
|
+
{
|
|
68
|
+
type: 'title',
|
|
69
|
+
text: 'Seleção natural vs deriva genética: entenda a evolução com uma população viva',
|
|
70
|
+
level: 2
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'paragraph',
|
|
74
|
+
html: 'Este simulador oferece uma visualização clara da diferença entre a seleção adaptativa e o efeito estocástico da deriva genética, tornando conceitos complexos de biologia evolutiva acessíveis e práticos.'
|
|
75
|
+
},
|
|
43
76
|
],
|
|
44
77
|
faq,
|
|
45
78
|
bibliography,
|
|
46
79
|
howTo,
|
|
47
80
|
schemas: [
|
|
48
|
-
{
|
|
49
|
-
|
|
50
|
-
|
|
81
|
+
{
|
|
82
|
+
'@context': 'https://schema.org',
|
|
83
|
+
'@type': 'SoftwareApplication',
|
|
84
|
+
name: title,
|
|
85
|
+
description,
|
|
86
|
+
applicationCategory: 'EducationalApplication',
|
|
87
|
+
operatingSystem: 'Any'
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
'@context': 'https://schema.org',
|
|
91
|
+
'@type': 'FAQPage',
|
|
92
|
+
mainEntity: faq.map((item) => ({
|
|
93
|
+
'@type': 'Question',
|
|
94
|
+
name: item.question,
|
|
95
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer }
|
|
96
|
+
}))
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'HowTo',
|
|
101
|
+
name: title,
|
|
102
|
+
step: howTo.map((step) => ({
|
|
103
|
+
'@type': 'HowToStep',
|
|
104
|
+
name: step.name,
|
|
105
|
+
text: step.text
|
|
106
|
+
}))
|
|
107
|
+
},
|
|
51
108
|
],
|
|
52
|
-
};
|
|
109
|
+
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
2
|
import type { NaturalSelectionLocaleContent } from '../entry';
|
|
3
3
|
|
|
4
|
-
const slug = 'simulyator-estestvennogo-otbora-geneticheskogo-
|
|
5
|
-
const title = '
|
|
4
|
+
const slug = 'simulyator-estestvennogo-otbora-i-geneticheskogo-dreyfa';
|
|
5
|
+
const title = 'Симулятор естественного отбора и генетического дрейфа';
|
|
6
6
|
const description =
|
|
7
|
-
'
|
|
7
|
+
'В реальном времени наблюдайте, как давление отбора, мутации, дрейф и размножение меняют частоты аллелей.';
|
|
8
8
|
|
|
9
9
|
const faq = [
|
|
10
|
-
{
|
|
10
|
+
{
|
|
11
|
+
question: 'В чем разница между естественным отбором и генетическим дрейфом?',
|
|
12
|
+
answer: 'Естественный отбор - это неслучайный процесс, при котором полезные признаки становятся более распространенными. Генетический дрейф - это случайное изменение частот аллелей в популяции, не связанное с приспособленностью.'
|
|
13
|
+
},
|
|
11
14
|
];
|
|
12
15
|
|
|
13
16
|
export const content: NaturalSelectionLocaleContent = {
|
|
@@ -15,27 +18,27 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
15
18
|
title,
|
|
16
19
|
description,
|
|
17
20
|
ui: {
|
|
18
|
-
population: '
|
|
19
|
-
generations: '
|
|
20
|
-
mutationRate: '
|
|
21
|
-
selectionPressure: '
|
|
22
|
-
driftIntensity: '
|
|
23
|
-
alleleCount: '
|
|
24
|
-
innovationRate: '
|
|
25
|
-
run: '
|
|
26
|
-
dominantTrait: '
|
|
27
|
-
fitness: '
|
|
28
|
-
diversity: '
|
|
29
|
-
evolutionConsole: '
|
|
30
|
-
populationLabel: '
|
|
31
|
-
aliveLabel: '
|
|
32
|
-
alleleCountsLabel: '
|
|
33
|
-
alleleDefault: '
|
|
34
|
-
populationValueLabel: '
|
|
21
|
+
population: 'Размер популяции',
|
|
22
|
+
generations: 'Поколения',
|
|
23
|
+
mutationRate: 'Частота мутаций',
|
|
24
|
+
selectionPressure: 'Давление отбора',
|
|
25
|
+
driftIntensity: 'Сила дрейфа',
|
|
26
|
+
alleleCount: 'Начальные аллели',
|
|
27
|
+
innovationRate: 'Частота инноваций',
|
|
28
|
+
run: 'Запустить симуляцию',
|
|
29
|
+
dominantTrait: 'Доминантный признак',
|
|
30
|
+
fitness: 'Итоговая приспособленность',
|
|
31
|
+
diversity: 'Генетическое разнообразие',
|
|
32
|
+
evolutionConsole: 'Эволюционная консоль',
|
|
33
|
+
populationLabel: 'Популяция',
|
|
34
|
+
aliveLabel: 'живых',
|
|
35
|
+
alleleCountsLabel: 'Счетчик аллелей',
|
|
36
|
+
alleleDefault: 'Аллель 1',
|
|
37
|
+
populationValueLabel: 'Популяция',
|
|
35
38
|
},
|
|
36
39
|
seo: [
|
|
37
|
-
{ type: 'title', text: '
|
|
38
|
-
{ type: 'paragraph', html: '
|
|
40
|
+
{ type: 'title', text: 'Естественный отбор vs генетический дрейф: понять эволюцию с живой популяцией', level: 2 },
|
|
41
|
+
{ type: 'paragraph', html: 'Эта модель помогает увидеть разницу между отбором и дрейфом через живую визуализацию.' },
|
|
39
42
|
],
|
|
40
43
|
faq,
|
|
41
44
|
bibliography,
|
|
@@ -45,4 +48,4 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
45
48
|
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
46
49
|
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
|
|
47
50
|
],
|
|
48
|
-
};
|
|
51
|
+
};
|
|
@@ -4,10 +4,13 @@ import type { NaturalSelectionLocaleContent } from '../entry';
|
|
|
4
4
|
const slug = 'simulering-av-naturligt-urval-genetisk-drift';
|
|
5
5
|
const title = 'Simulering av naturligt urval och genetisk drift';
|
|
6
6
|
const description =
|
|
7
|
-
'Se i realtid hur selektionstryck, mutation, drift och reproduktion
|
|
7
|
+
'Se i realtid hur selektionstryck, mutation, genetisk drift och reproduktion ändrar allelfrekvenser.';
|
|
8
8
|
|
|
9
9
|
const faq = [
|
|
10
|
-
{
|
|
10
|
+
{
|
|
11
|
+
question: 'Vad är skillnaden mellan naturligt urval och genetisk drift?',
|
|
12
|
+
answer: 'Naturligt urval är en icke-slumpmässig process där fördelaktiga egenskaper blir vanligare på grund av sin fitness. Genetisk drift är däremot en slumpmässig förändring av allelfrekvenser i en population, som inte beror på egenskaperas anpassningsvärde.'
|
|
13
|
+
},
|
|
11
14
|
];
|
|
12
15
|
|
|
13
16
|
export const content: NaturalSelectionLocaleContent = {
|
|
@@ -29,13 +32,13 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
29
32
|
evolutionConsole: 'Evolutionskonsol',
|
|
30
33
|
populationLabel: 'Population',
|
|
31
34
|
aliveLabel: 'levande',
|
|
32
|
-
alleleCountsLabel: '
|
|
35
|
+
alleleCountsLabel: 'Allelräkning',
|
|
33
36
|
alleleDefault: 'Allel 1',
|
|
34
37
|
populationValueLabel: 'Population',
|
|
35
38
|
},
|
|
36
39
|
seo: [
|
|
37
|
-
{ type: 'title', text: 'Naturligt urval vs genetisk drift:
|
|
38
|
-
{ type: 'paragraph', html: 'Denna simulator
|
|
40
|
+
{ type: 'title', text: 'Naturligt urval vs genetisk drift: förstå evolution med en levande population', level: 2 },
|
|
41
|
+
{ type: 'paragraph', html: 'Denna simulator hjälper dig att se skillnaden mellan selektion och drift på ett tydligt sätt genom levande visualisering.' },
|
|
39
42
|
],
|
|
40
43
|
faq,
|
|
41
44
|
bibliography,
|
|
@@ -45,4 +48,4 @@ export const content: NaturalSelectionLocaleContent = {
|
|
|
45
48
|
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
46
49
|
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
|
|
47
50
|
],
|
|
48
|
-
};
|
|
51
|
+
};
|