@jjlmoya/utils-science 1.26.0 → 1.27.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.
Files changed (33) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/natural-selection-drift/bibliography.astro +14 -0
  8. package/src/tool/natural-selection-drift/bibliography.ts +16 -0
  9. package/src/tool/natural-selection-drift/component.astro +104 -0
  10. package/src/tool/natural-selection-drift/entry.ts +29 -0
  11. package/src/tool/natural-selection-drift/i18n/de.ts +65 -0
  12. package/src/tool/natural-selection-drift/i18n/en.ts +180 -0
  13. package/src/tool/natural-selection-drift/i18n/es.ts +64 -0
  14. package/src/tool/natural-selection-drift/i18n/fr.ts +204 -0
  15. package/src/tool/natural-selection-drift/i18n/id.ts +48 -0
  16. package/src/tool/natural-selection-drift/i18n/it.ts +203 -0
  17. package/src/tool/natural-selection-drift/i18n/ja.ts +48 -0
  18. package/src/tool/natural-selection-drift/i18n/ko.ts +48 -0
  19. package/src/tool/natural-selection-drift/i18n/nl.ts +53 -0
  20. package/src/tool/natural-selection-drift/i18n/pl.ts +48 -0
  21. package/src/tool/natural-selection-drift/i18n/pt.ts +52 -0
  22. package/src/tool/natural-selection-drift/i18n/ru.ts +48 -0
  23. package/src/tool/natural-selection-drift/i18n/sv.ts +48 -0
  24. package/src/tool/natural-selection-drift/i18n/tr.ts +48 -0
  25. package/src/tool/natural-selection-drift/i18n/zh.ts +48 -0
  26. package/src/tool/natural-selection-drift/index.ts +9 -0
  27. package/src/tool/natural-selection-drift/logic.ts +114 -0
  28. package/src/tool/natural-selection-drift/natural-selection-drift.css +429 -0
  29. package/src/tool/natural-selection-drift/render.ts +219 -0
  30. package/src/tool/natural-selection-drift/runtime.ts +89 -0
  31. package/src/tool/natural-selection-drift/seo.astro +15 -0
  32. package/src/tool/natural-selection-drift/simulation.ts +161 -0
  33. package/src/tools.ts +2 -1
@@ -0,0 +1,204 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'simulateur-selection-naturelle-derive-genetique';
5
+ const title = 'Simulateur de selection naturelle et de derive genetique';
6
+ const description =
7
+ 'Observez en temps reel comment la pression de selection, la mutation, la derive et la reproduction modifient les frequences alleliques.';
8
+
9
+ const howTo = [
10
+ {
11
+ name: 'Definir la population',
12
+ text: 'Choisissez une petite ou une grande population pour voir comment la taille de l echantillon change la stabilite evolutive.',
13
+ },
14
+ {
15
+ name: 'Regler selection et derive',
16
+ text: 'Augmentez la pression de selection pour favoriser un trait, ou augmentez la derive pour laisser le hasard prendre le dessus.',
17
+ },
18
+ {
19
+ name: 'Observer les generations',
20
+ text: 'Lancez la simulation et comparez trait dominant, fitness et diversite au fil du temps.',
21
+ },
22
+ {
23
+ name: 'Interpreter les resultats',
24
+ text: 'Utilisez les metriques finales pour comprendre quand l adaptation gagne et quand la fluctuation aleatoire domine.',
25
+ },
26
+ ];
27
+
28
+ const faq = [
29
+ {
30
+ question: 'Quelle est la difference entre selection naturelle et derive genetique ?',
31
+ answer:
32
+ 'La selection naturelle est un processus non aleatoire ou les traits qui ameliorent la survie ou la reproduction deviennent plus frequents. La derive genetique est un changement aleatoire des frequences alleliques, surtout visible dans les petites populations.',
33
+ },
34
+ {
35
+ question: 'Pourquoi les petites populations changent elles plus vite ?',
36
+ answer:
37
+ 'Avec moins d individus, l echantillonnage aleatoire a un effet plus important. Les evenements fortuits deplacent donc plus fortement les frequences d une generation a l autre.',
38
+ },
39
+ {
40
+ question: 'La derive peut elle depasser la selection ?',
41
+ answer:
42
+ 'Oui. Si la derive est assez forte, un trait avantageux peut disparaitre par hasard, surtout lorsque la population est petite ou que la pression de selection est faible.',
43
+ },
44
+ {
45
+ question: 'Que signifie fitness dans ce simulateur ?',
46
+ answer:
47
+ 'Fitness est une note simplifiee qui represente a quel point la population est adaptee a l environnement choisi. C est une metrique pedagogique, pas une mesure de laboratoire.',
48
+ },
49
+ {
50
+ question: 'Pourquoi la taille de la population est elle si importante ?',
51
+ answer:
52
+ 'La taille de la population determine a quel point le tirage aleatoire affecte les frequences alleliques. Dans les grandes populations, la selection est plus visible car le bruit s annule. Dans les petites, le hasard peut dominer un trait utile.',
53
+ },
54
+ {
55
+ question: 'Quand utiliser ce simulateur plutot qu une explication theorique ?',
56
+ answer:
57
+ 'Utilisez le lorsque vous voulez comprendre l intuition de l evolution, surtout la difference entre une force directionnelle comme la selection et une force stochastique comme la derive.',
58
+ },
59
+ ];
60
+
61
+ export const content: NaturalSelectionLocaleContent = {
62
+ slug,
63
+ title,
64
+ description,
65
+ ui: {
66
+ population: 'Taille de la population',
67
+ generations: 'Generations',
68
+ mutationRate: 'Taux de mutation',
69
+ selectionPressure: 'Pression de selection',
70
+ driftIntensity: 'Intensite de derive',
71
+ alleleCount: 'Alleles initiaux',
72
+ innovationRate: 'Taux d innovation',
73
+ run: 'Lancer la simulation',
74
+ dominantTrait: 'Trait dominant',
75
+ fitness: 'Fitness finale',
76
+ diversity: 'Diversite genetique',
77
+ evolutionConsole: 'Console evolutive',
78
+ populationLabel: 'Population',
79
+ aliveLabel: 'vivants',
80
+ alleleCountsLabel: 'Comptage des alleles',
81
+ alleleDefault: 'Allele 1',
82
+ populationValueLabel: 'Population',
83
+ },
84
+ seo: [
85
+ {
86
+ type: 'title',
87
+ text: 'Selection naturelle vs derive genetique: comprendre l evolution avec une population vivante',
88
+ level: 2,
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html:
93
+ 'Si vous essayez de comprendre selection naturelle vs derive genetique, ce simulateur apporte la couche visuelle qui manque souvent. Au lieu d une definition statique, vous voyez une population evoluer en temps reel pendant que la pression de selection, la mutation, la derive et la reproduction interagissent.',
94
+ },
95
+ {
96
+ type: 'title',
97
+ text: 'Ce que signifient les controles et pourquoi ils comptent',
98
+ level: 3,
99
+ },
100
+ {
101
+ type: 'paragraph',
102
+ html:
103
+ 'La selection naturelle est la partie non aleatoire de l evolution. Elle augmente la frequence des traits qui ameliorent la survie ou la reproduction. La derive genetique est la partie aleatoire. Elle modifie les frequences alleliques car tous les individus ne contribuent pas de la meme facon a la generation suivante.',
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html:
108
+ 'L idee cle est que ces deux forces agissent en meme temps. La selection pousse la population dans une direction, alors que la derive peut l entrainer ailleurs. Dans les grandes populations, la selection domine souvent. Dans les petites, le hasard peut effacer un trait utile ou fixer un trait neutre.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: 'Comment lire les resultats de la simulation',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'paragraph',
117
+ html:
118
+ 'Les metriques en direct vous aident a interpreter le systeme au fur et a mesure. Le trait dominant indique quel allele mene. La diversite genetique montre la variation restante. La fitness finale resume l adaptation de la population a l environnement choisi. Et les compteurs de vivants et de population indiquent si la lignee croît ou s effondre.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Pourquoi la taille de la population change l histoire',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>Pression de selection:</strong> a quel point l environnement recompense un trait par rapport a un autre et a quelle vitesse cet avantage se propage.',
129
+ '<strong>Intensite de derive:</strong> combien de bruit aleatoire affecte la population a chaque generation.',
130
+ '<strong>Taux de mutation:</strong> a quelle frequence une nouvelle variation entre dans le systeme.',
131
+ '<strong>Nombre d alleles:</strong> combien d alleles explicites sont presents au depart et combien de variantes nouvelles peuvent apparaitre.',
132
+ '<strong>Diversite genetique:</strong> pourquoi la variation est la matiere premiere de l evolution.',
133
+ ],
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html:
138
+ 'Le resultat est une facon rapide et utile de comprendre l evolution sans se limiter a des definitions abstraites. Si vous cherchez un simulateur qui explique la selection naturelle, la derive genetique, la mutation, la reproduction et pourquoi un meme point de depart peut mener a des resultats differents, cet outil est concu pour cela.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Exemples rapides a tester',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'table',
147
+ headers: ['Objectif', 'A modifier', 'Ce que vous devriez voir'],
148
+ rows: [
149
+ [
150
+ 'Montrer la victoire de la selection',
151
+ 'Augmenter la pression de selection et reduire la derive',
152
+ 'Un allele doit dominer avec le temps et la diversite baissera plus lentement',
153
+ ],
154
+ [
155
+ 'Montrer le hasard qui prend le dessus',
156
+ 'Reduire la population et augmenter la derive',
157
+ 'Les frequences doivent osciller de facon imprevisible',
158
+ ],
159
+ [
160
+ 'Montrer de nouvelles mutations',
161
+ 'Augmenter mutation et innovation',
162
+ 'De nouveaux alleles apparaitront et le classement changera plus souvent',
163
+ ],
164
+ ],
165
+ },
166
+ {
167
+ type: 'paragraph',
168
+ html:
169
+ 'Cette combinaison de visuels en direct, de classement explicite des alleles et de metriques en temps reel rend le simulateur utile a la fois pour enseigner et pour expliquer les compromis evolutifs sans detour.',
170
+ },
171
+ ],
172
+ faq,
173
+ bibliography,
174
+ howTo,
175
+ schemas: [
176
+ {
177
+ '@context': 'https://schema.org',
178
+ '@type': 'SoftwareApplication',
179
+ name: title,
180
+ description,
181
+ applicationCategory: 'EducationalApplication',
182
+ operatingSystem: 'Any',
183
+ },
184
+ {
185
+ '@context': 'https://schema.org',
186
+ '@type': 'FAQPage',
187
+ mainEntity: faq.map((item) => ({
188
+ '@type': 'Question',
189
+ name: item.question,
190
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
191
+ })),
192
+ },
193
+ {
194
+ '@context': 'https://schema.org',
195
+ '@type': 'HowTo',
196
+ name: title,
197
+ step: howTo.map((step) => ({
198
+ '@type': 'HowToStep',
199
+ name: step.name,
200
+ text: step.text,
201
+ })),
202
+ },
203
+ ],
204
+ };
@@ -0,0 +1,48 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'simulator-seleksi-alam-drift-genetik';
5
+ const title = 'Simulator seleksi alam dan drift genetik';
6
+ const description =
7
+ 'Lihat secara real time bagaimana tekanan seleksi, mutasi, drift, dan reproduksi mengubah frekuensi alel.';
8
+
9
+ const faq = [
10
+ { question: 'Apa perbedaan seleksi alam dan drift genetik?', answer: 'Seleksi alam tidak acak. Drift genetik adalah perubahan acak pada frekuensi alel.' },
11
+ ];
12
+
13
+ export const content: NaturalSelectionLocaleContent = {
14
+ slug,
15
+ title,
16
+ description,
17
+ ui: {
18
+ population: 'Ukuran populasi',
19
+ generations: 'Generasi',
20
+ mutationRate: 'Laju mutasi',
21
+ selectionPressure: 'Tekanan seleksi',
22
+ driftIntensity: 'Intensitas drift',
23
+ alleleCount: 'Alel awal',
24
+ innovationRate: 'Laju inovasi',
25
+ run: 'Mulai simulasi',
26
+ dominantTrait: 'Sifat dominan',
27
+ fitness: 'Fitness akhir',
28
+ diversity: 'Keragaman genetik',
29
+ evolutionConsole: 'Konsol evolusi',
30
+ populationLabel: 'Populasi',
31
+ aliveLabel: 'hidup',
32
+ alleleCountsLabel: 'Jumlah alel',
33
+ alleleDefault: 'Alel 1',
34
+ populationValueLabel: 'Populasi',
35
+ },
36
+ seo: [
37
+ { type: 'title', text: 'Seleksi alam vs drift genetik: pahami evolusi dengan populasi hidup', level: 2 },
38
+ { type: 'paragraph', html: 'Simulator ini memberi cara yang jelas dan praktis untuk melihat seleksi dan drift.' },
39
+ ],
40
+ faq,
41
+ bibliography,
42
+ howTo: [],
43
+ schemas: [
44
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
46
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
47
+ ],
48
+ };
@@ -0,0 +1,203 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'simulatore-selezione-naturale-deriva-genetica';
5
+ const title = 'Simulatore di selezione naturale e deriva genetica';
6
+ const description =
7
+ 'Guarda in tempo reale come pressione selettiva, mutazione, deriva e riproduzione cambiano le frequenze alleliche.';
8
+
9
+ const howTo = [
10
+ {
11
+ name: 'Imposta la popolazione',
12
+ text: 'Scegli una popolazione piccola o grande per vedere come il campione influenza la stabilita evolutiva.',
13
+ },
14
+ {
15
+ name: 'Regola selezione e deriva',
16
+ text: 'Aumenta la pressione selettiva o la deriva per osservare traiettorie evolutive diverse.',
17
+ },
18
+ {
19
+ name: 'Segui le generazioni',
20
+ text: 'Avvia la simulazione e confronta tratto dominante, fitness e diversita nel tempo.',
21
+ },
22
+ {
23
+ name: 'Interpreta i risultati',
24
+ text: 'Usa le metriche per capire quando vince l adattamento e quando domina il caso.',
25
+ },
26
+ ];
27
+
28
+ const faq = [
29
+ {
30
+ question: 'Qual e la differenza tra selezione naturale e deriva genetica?',
31
+ answer:
32
+ 'La selezione naturale non e casuale: i tratti vantaggiosi diventano piu comuni. La deriva genetica e una variazione casuale delle frequenze alleliche, molto forte nelle popolazioni piccole.',
33
+ },
34
+ {
35
+ question: 'Perche le popolazioni piccole cambiano piu velocemente?',
36
+ answer:
37
+ 'Con pochi individui il campionamento casuale ha un effetto piu grande sulla generazione successiva.',
38
+ },
39
+ {
40
+ question: 'La deriva puo superare la selezione?',
41
+ answer:
42
+ 'Si. Un tratto vantaggioso puo sparire per caso se la deriva e abbastanza forte.',
43
+ },
44
+ {
45
+ question: 'Cosa significa fitness in questo simulatore?',
46
+ answer:
47
+ 'Fitness e un punteggio semplificato di quanto bene la popolazione e adattata all ambiente scelto.',
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.',
57
+ },
58
+ ];
59
+
60
+ export const content: NaturalSelectionLocaleContent = {
61
+ slug,
62
+ title,
63
+ description,
64
+ ui: {
65
+ population: 'Dimensione della popolazione',
66
+ generations: 'Generazioni',
67
+ mutationRate: 'Tasso di mutazione',
68
+ selectionPressure: 'Pressione selettiva',
69
+ driftIntensity: 'Intensita della deriva',
70
+ alleleCount: 'Alleli iniziali',
71
+ innovationRate: 'Tasso di innovazione',
72
+ run: 'Avvia simulazione',
73
+ dominantTrait: 'Tratto dominante',
74
+ fitness: 'Fitness finale',
75
+ diversity: 'Diversita genetica',
76
+ evolutionConsole: 'Console evolutiva',
77
+ populationLabel: 'Popolazione',
78
+ aliveLabel: 'vivi',
79
+ alleleCountsLabel: 'Conteggio alleli',
80
+ alleleDefault: 'Alele 1',
81
+ populationValueLabel: 'Popolazione',
82
+ },
83
+ seo: [
84
+ {
85
+ type: 'title',
86
+ text: 'Selezione naturale vs deriva genetica: capire l evoluzione con una popolazione viva',
87
+ level: 2,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html:
92
+ 'Se vuoi capire selezione naturale vs deriva genetica, questo simulatore ti da il livello visivo che manca spesso.',
93
+ },
94
+ {
95
+ type: 'title',
96
+ text: 'Cosa significano i controlli',
97
+ level: 3,
98
+ },
99
+ {
100
+ 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.',
169
+ },
170
+ ],
171
+ faq,
172
+ bibliography,
173
+ howTo,
174
+ schemas: [
175
+ {
176
+ '@context': 'https://schema.org',
177
+ '@type': 'SoftwareApplication',
178
+ name: title,
179
+ description,
180
+ applicationCategory: 'EducationalApplication',
181
+ operatingSystem: 'Any',
182
+ },
183
+ {
184
+ '@context': 'https://schema.org',
185
+ '@type': 'FAQPage',
186
+ mainEntity: faq.map((item) => ({
187
+ '@type': 'Question',
188
+ name: item.question,
189
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
190
+ })),
191
+ },
192
+ {
193
+ '@context': 'https://schema.org',
194
+ '@type': 'HowTo',
195
+ name: title,
196
+ step: howTo.map((step) => ({
197
+ '@type': 'HowToStep',
198
+ name: step.name,
199
+ text: step.text,
200
+ })),
201
+ },
202
+ ],
203
+ };
@@ -0,0 +1,48 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'natural-selection-drift';
5
+ const title = '自然選択と遺伝的浮動のシミュレーター';
6
+ const description =
7
+ '選択圧、突然変異、浮動、繁殖が対立遺伝子頻度をどう変えるかをリアルタイムで確認できます。';
8
+
9
+ const faq = [
10
+ { question: '自然選択と遺伝的浮動の違いは何ですか?', answer: '自然選択は偶然ではありません。遺伝的浮動は対立遺伝子頻度の偶然的な変化です。' },
11
+ ];
12
+
13
+ export const content: NaturalSelectionLocaleContent = {
14
+ slug,
15
+ title,
16
+ description,
17
+ 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: '対立遺伝子1',
34
+ populationValueLabel: '個体群',
35
+ },
36
+ seo: [
37
+ { type: 'title', text: '自然選択と遺伝的浮動を生きた個体群で理解する', level: 2 },
38
+ { type: 'paragraph', html: 'このツールは、進化の仕組みを視覚的に理解するための実践的なシミュレーターです。' },
39
+ ],
40
+ faq,
41
+ bibliography,
42
+ howTo: [],
43
+ schemas: [
44
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
46
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
47
+ ],
48
+ };
@@ -0,0 +1,48 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'natural-selection-drift';
5
+ const title = '자연 선택과 유전적 표류 시뮬레이터';
6
+ const description =
7
+ '선택 압력, 돌연변이, 표류, 번식이 대립유전자 빈도를 어떻게 바꾸는지 실시간으로 볼 수 있습니다.';
8
+
9
+ const faq = [
10
+ { question: '자연 선택과 유전적 표류의 차이는 무엇인가요?', answer: '자연 선택은 무작위가 아닙니다. 유전적 표류는 대립유전자 빈도의 우연한 변화입니다.' },
11
+ ];
12
+
13
+ export const content: NaturalSelectionLocaleContent = {
14
+ slug,
15
+ title,
16
+ description,
17
+ 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: '대립유전자 1',
34
+ populationValueLabel: '집단',
35
+ },
36
+ seo: [
37
+ { type: 'title', text: '자연 선택과 유전적 표류를 살아 있는 집단으로 이해하기', level: 2 },
38
+ { type: 'paragraph', html: '이 도구는 진화의 핵심 개념을 시각적으로 빠르게 이해하도록 돕습니다.' },
39
+ ],
40
+ faq,
41
+ bibliography,
42
+ howTo: [],
43
+ schemas: [
44
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
46
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
47
+ ],
48
+ };
@@ -0,0 +1,53 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'simulator-natuurlijke-selectie-genetische-drift';
5
+ const title = 'Simulator voor natuurlijke selectie en genetische drift';
6
+ const description =
7
+ 'Bekijk in realtime hoe selectiedruk, mutatie, drift en voortplanting allelfrequenties veranderen.';
8
+
9
+ const howTo = [
10
+ { name: 'Populatie kiezen', text: 'Kies een kleine of grote populatie om het effect van steekproefgrootte te zien.' },
11
+ { name: 'Selectie en drift instellen', text: 'Verhoog selectiedruk of drift om andere evolutiepaden te zien.' },
12
+ ];
13
+
14
+ const faq = [
15
+ { question: 'Wat is het verschil tussen natuurlijke selectie en genetische drift?', answer: 'Natuurlijke selectie is niet willekeurig. Gunstige eigenschappen worden vaker. Genetische drift is een willekeurige verandering van allelfrequenties.' },
16
+ ];
17
+
18
+ export const content: NaturalSelectionLocaleContent = {
19
+ slug,
20
+ title,
21
+ description,
22
+ ui: {
23
+ population: 'Populatiegrootte',
24
+ generations: 'Generaties',
25
+ mutationRate: 'Mutatiesnelheid',
26
+ selectionPressure: 'Selectiedruk',
27
+ driftIntensity: 'Driftintensiteit',
28
+ alleleCount: 'Startallelen',
29
+ innovationRate: 'Innovatiesnelheid',
30
+ run: 'Simulatie starten',
31
+ dominantTrait: 'Dominante eigenschap',
32
+ fitness: 'Eindfitness',
33
+ diversity: 'Genetische diversiteit',
34
+ evolutionConsole: 'Evolutieconsole',
35
+ populationLabel: 'Populatie',
36
+ aliveLabel: 'levend',
37
+ alleleCountsLabel: 'Aantal allelen',
38
+ alleleDefault: 'Allel 1',
39
+ populationValueLabel: 'Populatie',
40
+ },
41
+ seo: [
42
+ { type: 'title', text: 'Natuurlijke selectie vs genetische drift: evolutie begrijpen met een levende populatie', level: 2 },
43
+ { type: 'paragraph', html: 'Deze simulator helpt je om selectie en drift visueel en praktisch te begrijpen.' },
44
+ ],
45
+ faq,
46
+ bibliography,
47
+ howTo,
48
+ schemas: [
49
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
50
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
51
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
52
+ ],
53
+ };
@@ -0,0 +1,48 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { NaturalSelectionLocaleContent } from '../entry';
3
+
4
+ const slug = 'symulator-doboru-naturalnego-dryfu-genetycznego';
5
+ const title = 'Symulator doboru naturalnego i dryfu genetycznego';
6
+ const description =
7
+ 'Zobacz w czasie rzeczywistym, jak presja selekcyjna, mutacje, dryf i rozmnazanie zmieniaja czestosc alleli.';
8
+
9
+ const faq = [
10
+ { question: 'Jaka jest roznica miedzy doborem naturalnym a dryfem genetycznym?', answer: 'Dobor naturalny nie jest losowy. Dryf genetyczny to losowa zmiana czestotliwosci alleli.' },
11
+ ];
12
+
13
+ export const content: NaturalSelectionLocaleContent = {
14
+ slug,
15
+ title,
16
+ description,
17
+ ui: {
18
+ population: 'Wielkosc populacji',
19
+ generations: 'Pokolenia',
20
+ mutationRate: 'Tempo mutacji',
21
+ selectionPressure: 'Presja selekcyjna',
22
+ driftIntensity: 'Intensywnosc dryfu',
23
+ alleleCount: 'Poczatkowe allele',
24
+ innovationRate: 'Tempo innowacji',
25
+ run: 'Uruchom symulacje',
26
+ dominantTrait: 'Dominujaca cecha',
27
+ fitness: 'Fitness koncowy',
28
+ diversity: 'Róznorodnosc genetyczna',
29
+ evolutionConsole: 'Konsola ewolucji',
30
+ populationLabel: 'Populacja',
31
+ aliveLabel: 'zywych',
32
+ alleleCountsLabel: 'Liczba alleli',
33
+ alleleDefault: 'Allel 1',
34
+ populationValueLabel: 'Populacja',
35
+ },
36
+ seo: [
37
+ { type: 'title', text: 'Dobor naturalny vs dryf genetyczny: zrozum ewolucje dzieki zywej populacji', level: 2 },
38
+ { type: 'paragraph', html: 'Ten symulator pokazuje selekcje i dryf w sposob praktyczny i czytelny.' },
39
+ ],
40
+ faq,
41
+ bibliography,
42
+ howTo: [],
43
+ schemas: [
44
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
46
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
47
+ ],
48
+ };