@jjlmoya/utils-science 1.48.0 → 1.50.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 (98) hide show
  1. package/package.json +2 -2
  2. package/src/tests/seo_parity.test.ts +60 -0
  3. package/src/tests/spanish_leakage.test.ts +153 -0
  4. package/src/tests/translation_copy.test.ts +122 -0
  5. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +79 -4
  6. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +86 -11
  7. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +86 -11
  8. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +85 -10
  9. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +87 -12
  10. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +85 -10
  11. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +85 -10
  12. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +85 -11
  13. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +87 -12
  14. package/src/tool/conway-life-rule-lab/i18n/de.ts +46 -6
  15. package/src/tool/conway-life-rule-lab/i18n/es.ts +46 -6
  16. package/src/tool/conway-life-rule-lab/i18n/fr.ts +46 -6
  17. package/src/tool/conway-life-rule-lab/i18n/id.ts +46 -6
  18. package/src/tool/conway-life-rule-lab/i18n/it.ts +46 -6
  19. package/src/tool/conway-life-rule-lab/i18n/ja.ts +46 -6
  20. package/src/tool/conway-life-rule-lab/i18n/ko.ts +46 -6
  21. package/src/tool/conway-life-rule-lab/i18n/nl.ts +46 -6
  22. package/src/tool/conway-life-rule-lab/i18n/pl.ts +46 -6
  23. package/src/tool/conway-life-rule-lab/i18n/pt.ts +46 -6
  24. package/src/tool/conway-life-rule-lab/i18n/ru.ts +49 -9
  25. package/src/tool/conway-life-rule-lab/i18n/sv.ts +46 -6
  26. package/src/tool/conway-life-rule-lab/i18n/tr.ts +46 -6
  27. package/src/tool/conway-life-rule-lab/i18n/zh.ts +46 -6
  28. package/src/tool/cosmic-inflation/i18n/ru.ts +30 -4
  29. package/src/tool/double-slit-decoherence/i18n/fr.ts +48 -4
  30. package/src/tool/double-slit-decoherence/i18n/it.ts +52 -8
  31. package/src/tool/double-slit-decoherence/i18n/pt.ts +53 -9
  32. package/src/tool/double-slit-decoherence/i18n/sv.ts +56 -8
  33. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +119 -38
  34. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +116 -48
  35. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +96 -19
  36. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +124 -24
  37. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +122 -22
  38. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +68 -14
  39. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +126 -45
  40. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +46 -9
  41. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +134 -53
  42. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +68 -14
  43. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +124 -24
  44. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +20 -7
  45. package/src/tool/lorenz-attractor/i18n/de.ts +35 -5
  46. package/src/tool/lorenz-attractor/i18n/fr.ts +35 -5
  47. package/src/tool/lorenz-attractor/i18n/id.ts +10 -0
  48. package/src/tool/lorenz-attractor/i18n/it.ts +9 -0
  49. package/src/tool/lorenz-attractor/i18n/ja.ts +10 -0
  50. package/src/tool/lorenz-attractor/i18n/ko.ts +10 -0
  51. package/src/tool/lorenz-attractor/i18n/nl.ts +10 -0
  52. package/src/tool/lorenz-attractor/i18n/pl.ts +10 -0
  53. package/src/tool/lorenz-attractor/i18n/pt.ts +35 -5
  54. package/src/tool/lorenz-attractor/i18n/ru.ts +10 -0
  55. package/src/tool/lorenz-attractor/i18n/sv.ts +10 -0
  56. package/src/tool/lorenz-attractor/i18n/tr.ts +10 -0
  57. package/src/tool/lorenz-attractor/i18n/zh.ts +10 -0
  58. package/src/tool/mandelbrot-fractal/i18n/de.ts +27 -0
  59. package/src/tool/mandelbrot-fractal/i18n/fr.ts +18 -0
  60. package/src/tool/mandelbrot-fractal/i18n/it.ts +26 -8
  61. package/src/tool/mandelbrot-fractal/i18n/pl.ts +27 -9
  62. package/src/tool/mandelbrot-fractal/i18n/ru.ts +22 -4
  63. package/src/tool/mandelbrot-fractal/i18n/sv.ts +35 -8
  64. package/src/tool/natural-selection-drift/i18n/de.ts +125 -22
  65. package/src/tool/natural-selection-drift/i18n/id.ts +113 -5
  66. package/src/tool/natural-selection-drift/i18n/it.ts +74 -2
  67. package/src/tool/natural-selection-drift/i18n/ja.ts +113 -5
  68. package/src/tool/natural-selection-drift/i18n/ko.ts +113 -5
  69. package/src/tool/natural-selection-drift/i18n/nl.ts +121 -6
  70. package/src/tool/natural-selection-drift/i18n/pl.ts +136 -16
  71. package/src/tool/natural-selection-drift/i18n/pt.ts +110 -15
  72. package/src/tool/natural-selection-drift/i18n/ru.ts +142 -7
  73. package/src/tool/natural-selection-drift/i18n/sv.ts +110 -5
  74. package/src/tool/natural-selection-drift/i18n/tr.ts +160 -22
  75. package/src/tool/natural-selection-drift/i18n/zh.ts +113 -5
  76. package/src/tool/phase-diagram-critical-points/i18n/de.ts +44 -6
  77. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +46 -8
  78. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +118 -2
  79. package/src/tool/radioactive-decay/i18n/de.ts +112 -5
  80. package/src/tool/radioactive-decay/i18n/fr.ts +16 -0
  81. package/src/tool/radioactive-decay/i18n/id.ts +112 -8
  82. package/src/tool/radioactive-decay/i18n/it.ts +16 -0
  83. package/src/tool/radioactive-decay/i18n/ja.ts +112 -8
  84. package/src/tool/radioactive-decay/i18n/ko.ts +112 -8
  85. package/src/tool/radioactive-decay/i18n/nl.ts +112 -14
  86. package/src/tool/radioactive-decay/i18n/pl.ts +112 -7
  87. package/src/tool/radioactive-decay/i18n/pt.ts +112 -21
  88. package/src/tool/radioactive-decay/i18n/ru.ts +112 -8
  89. package/src/tool/radioactive-decay/i18n/sv.ts +112 -8
  90. package/src/tool/radioactive-decay/i18n/tr.ts +112 -8
  91. package/src/tool/radioactive-decay/i18n/zh.ts +112 -8
  92. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +76 -0
  93. package/src/tool/temperature-timeline/i18n/de.ts +22 -2
  94. package/src/tool/temperature-timeline/i18n/fr.ts +41 -1
  95. package/src/tool/temperature-timeline/i18n/it.ts +30 -1
  96. package/src/tool/temperature-timeline/i18n/pt.ts +34 -1
  97. package/src/tool/temperature-timeline/i18n/ru.ts +29 -0
  98. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +41 -1
@@ -46,6 +46,16 @@ const faq = [
46
46
  answer:
47
47
  'La fitness è un punteggio semplificato che indica quanto bene la popolazione è adattata all\'ambiente scelto nel simulatore.',
48
48
  },
49
+ {
50
+ question: 'Perché la dimensione della popolazione è importante?',
51
+ answer:
52
+ 'Determina quanto le fluttuazioni casuali influenzano le frequenze alleliche.',
53
+ },
54
+ {
55
+ question: 'Quando dovrei usare questo simulatore?',
56
+ answer:
57
+ 'Quando vuoi capire l\'intuizione dietro l\'evoluzione, specialmente la differenza tra selezione e deriva.',
58
+ },
49
59
  ];
50
60
 
51
61
  export const content: NaturalSelectionLocaleContent = {
@@ -83,12 +93,74 @@ export const content: NaturalSelectionLocaleContent = {
83
93
  },
84
94
  {
85
95
  type: 'title',
86
- text: 'Cosa significano i controlli',
96
+ text: 'Cosa significano i controlli e perché sono importanti',
97
+ level: 3,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'La selezione naturale aumenta la frequenza dei tratti vantaggiosi. La deriva genetica modifica le frequenze alleliche in modo puramente stocastico.',
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Le due forze agiscono costantemente insieme: nelle popolazioni ampie la selezione domina, mentre in quelle ridotte il caso può cancellare tratti anche molto utili.',
106
+ },
107
+ {
108
+ type: 'title',
109
+ text: 'Come leggere i risultati della simulazione',
110
+ level: 3,
111
+ },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'Le metriche in tempo reale mostrano il tratto dominante, la diversità genetica, la fitness finale e lo stato della popolazione.',
115
+ },
116
+ {
117
+ type: 'title',
118
+ text: 'Perché la dimensione della popolazione cambia l\'evoluzione',
87
119
  level: 3,
88
120
  },
121
+ {
122
+ type: 'list',
123
+ items: [
124
+ '<strong>Pressione selettiva:</strong> Quanto l\'ambiente favorisce un tratto.',
125
+ '<strong>Intensità della deriva:</strong> Il rumore casuale del campionamento.',
126
+ '<strong>Tasso di mutazione:</strong> La frequenza di comparsa di nuove varianti.',
127
+ '<strong>Numero di alleli:</strong> La diversità iniziale nel sistema.',
128
+ '<strong>Diversità genetica:</strong> La materia prima per l\'adattamento.',
129
+ ],
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Un utile strumento pratico per comprendere selezione, deriva e mutazioni nei sistemi biologici.',
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Esempi rapidi da provare',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'table',
142
+ headers: ['Obiettivo', 'Modifica', 'Risultato atteso'],
143
+ rows: [
144
+ [
145
+ 'Mostrare la selezione',
146
+ 'Aumenta pressione selettiva e riduci deriva',
147
+ 'Un allele domina gradualmente',
148
+ ],
149
+ [
150
+ 'Mostrare la deriva',
151
+ 'Riduci popolazione e aumenta deriva',
152
+ 'Fluttuazioni casuali degli alleli',
153
+ ],
154
+ [
155
+ 'Mostrare le mutazioni',
156
+ 'Aumenta il tasso di mutazione',
157
+ 'Nuovi alleli compaiono regolarmente',
158
+ ],
159
+ ],
160
+ },
89
161
  {
90
162
  type: 'paragraph',
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.',
163
+ html: 'La combinazione di immagini in tempo reale e metriche semplifica la comprensione dei meccanismi evolutivi.',
92
164
  },
93
165
  ],
94
166
  faq,
@@ -6,8 +6,50 @@ const title = '自然選択と遺伝的浮動のシミュレーター';
6
6
  const description =
7
7
  '選択圧、突然変異、浮動、繁殖が対立遺伝子頻度をどう変えるかをリアルタイムで確認できます。';
8
8
 
9
+ const howTo = [
10
+ {
11
+ name: '個体数を設定する',
12
+ text: '小規模または大規模な個体群を選択し、サンプルサイズが進化の安定性にどう影響するかを確認します。',
13
+ },
14
+ {
15
+ name: '選択と浮動を調整する',
16
+ text: '選択圧を高めて特定の形質を優遇するか、浮动強度を上げて偶然の要素を大きくします。',
17
+ },
18
+ {
19
+ name: '世代の経過を観察する',
20
+ text: 'シミュレーションを実行し、優勢形質、適応度、多様性の変化を時間経過とともに比較します。',
21
+ },
22
+ {
23
+ name: 'バランスを解釈する',
24
+ text: '最終メトリクスを使用して、適応が勝つタイミングとランダムな変動が支配するタイミングを理解します。',
25
+ },
26
+ ];
27
+
9
28
  const faq = [
10
- { question: '自然選択と遺伝的浮動の違いは何ですか?', answer: '自然選択は偶然ではありません。遺伝的浮動は対立遺伝子頻度の偶然的な変化です。' },
29
+ {
30
+ question: '自然選択と遺伝的浮動の違いは何ですか?',
31
+ answer: '自然選択は生存や繁殖に有利な形質が広まる非ランダムな me 過程です。遺伝的浮動は対立遺伝子頻度のランダムな変化であり、小規模な個体群で最も強く働きます。',
32
+ },
33
+ {
34
+ question: 'なぜ小規模な個体群は変化が速いのですか?',
35
+ answer: '個体数が少ないほどランダムサンプリングの影響が大きくなるため、偶然の出来事が世代間の頻度をより劇的に変化させます。',
36
+ },
37
+ {
38
+ question: '浮動が選択を打ち消すことはありますか?',
39
+ answer: 'はい。浮動が十分に強い場合、個体数が少ないと有利な形質であっても偶然消失することがあります。',
40
+ },
41
+ {
42
+ question: 'このシミュレーターでの適応度の意味は何ですか?',
43
+ answer: '適応度は、現在の個体群が選択された環境にどれだけ適合しているかを示す簡略化されたスコアです。',
44
+ },
45
+ {
46
+ question: 'なぜ個体群のサイズが重要なのですか?',
47
+ answer: '個体群のサイズは、ランダムサンプリングが対立遺伝子頻度に与える影響の強さを決定します。大規模個体群では選択の効果が見えやすくなります。',
48
+ },
49
+ {
50
+ question: 'どのような時にこのシミュレーターを使うべきですか?',
51
+ answer: '進化の直感的な理解を得たい時や、選択のような方向性を持つ力と浮動のような確率的な力の違いを視覚的に確かめたい時に役立ちます。',
52
+ },
11
53
  ];
12
54
 
13
55
  export const content: NaturalSelectionLocaleContent = {
@@ -34,15 +76,81 @@ export const content: NaturalSelectionLocaleContent = {
34
76
  populationValueLabel: '個体群',
35
77
  },
36
78
  seo: [
37
- { type: 'title', text: '自然選択と遺伝的浮動を生きた個体群で理解する', level: 2 },
38
- { type: 'paragraph', html: 'このツールは、進化の仕組みを視覚的に理解するための実践的なシミュレーターです。' },
79
+ {
80
+ type: 'title',
81
+ text: '自然選択と遺伝的浮動を生きた個体群で理解する',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'このツールは、進化の仕組みを視覚的に理解するための実践的なシミュレーターです。選択圧、変異率、浮動の相互作用をリアルタイムで観察できます。',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'コントロールの意味と重要性',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: '自然選択は進化の非ランダムな要素であり、生存率を高める形質を増やします。遺伝的浮動はランダムな要素です。',
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: '両方の力は常に同時に存在し、世代ごとに影響を与え合います。',
100
+ },
101
+ {
102
+ type: 'title',
103
+ text: 'シミュレーション結果の読み方',
104
+ level: 3,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'リアルタイムの指標により、個体群の動的な変化を解釈できます。',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: '個体群サイズが結果を変える理由',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'list',
117
+ items: [
118
+ '<strong>選択圧:</strong> 環境が特定の形質をどれだけ強く優遇するか。',
119
+ '<strong>浮動強度:</strong> 偶然のサンプリング誤差がどれだけ個体群を変えるか。',
120
+ '<strong>突然変異率:</strong> 新しい変異がシステムに導入される頻度。',
121
+ '<strong>初期対立遺伝子数:</strong> 開始時に存在する対立遺伝子の種類数。',
122
+ '<strong>遺伝的多様性:</strong> 進化の原料となる遺伝的バリエーション。',
123
+ ],
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '抽象的な概念を直感的に捉えるための効果的な学習ツールです。',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: '試してみるべきクイック例',
132
+ level: 3,
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['目的', '変更する操作', '観察できる現象'],
137
+ rows: [
138
+ ['選択の勝利を見る', '選択圧を上げ浮動を低く保つ', '1つの対立遺伝子が時間をかけて優勢になります。'],
139
+ ['ランダムな浮動を見る', '個体数を減らし浮動を上げる', '対立遺伝子頻度が予測不能に変動します。'],
140
+ ['新しい変異の登場を見る', '変異率と新規率を上げる', '新しい対立遺伝子が絶えず出現します。'],
141
+ ],
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'リアルタイムの視覚化により、進化のトレーディングオフを容易に体験できます。',
146
+ },
39
147
  ],
40
148
  faq,
41
149
  bibliography,
42
- howTo: [],
150
+ howTo,
43
151
  schemas: [
44
152
  { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
153
  { '@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: [] },
154
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
47
155
  ],
48
156
  };
@@ -6,8 +6,50 @@ const title = '자연 선택과 유전적 표류 시뮬레이터';
6
6
  const description =
7
7
  '선택 압력, 돌연변이, 표류, 번식이 대립유전자 빈도를 어떻게 바꾸는지 실시간으로 볼 수 있습니다.';
8
8
 
9
+ const howTo = [
10
+ {
11
+ name: '개체 수 설정',
12
+ text: '소규모 또는 대규모 집단을 선택하여 표본 크기가 진화적 안정성에 미치는 영향을 확인하세요.',
13
+ },
14
+ {
15
+ name: '선택 및 표류 조정',
16
+ text: '선택 압력을 높여 특정 형질을 우대하거나, 표류 강도를 높여 우연이 결과를 지배하도록 하세요.',
17
+ },
18
+ {
19
+ name: '세대 진행 관찰',
20
+ text: '시뮬레이션을 실행하고 세대 흐름에 따른 우성 형질, 적합도, 다양성을 비교하세요.',
21
+ },
22
+ {
23
+ name: '균형 해석',
24
+ text: '최종 지표를 사용하여 적응이 승리하는 시점과 무작위 변동이 지배하는 시점을 이해하세요.',
25
+ },
26
+ ];
27
+
9
28
  const faq = [
10
- { question: '자연 선택과 유전적 표류의 차이는 무엇인가요?', answer: '자연 선택은 무작위가 아닙니다. 유전적 표류는 대립유전자 빈도의 우연한 변화입니다.' },
29
+ {
30
+ question: '자연 선택과 유전적 표류의 차이는 무엇인가요?',
31
+ answer: '자연 선택은 생존이나 번식에 유리한 형질이 흔해지는 비무작위 과정입니다. 유전적 표류는 대립유전자 빈도의 무작위 변화이며 소규모 집단에서 가장 강력합니다.',
32
+ },
33
+ {
34
+ question: '소규모 집단이 더 빠르게 변화하는 이유는 무엇인가요?',
35
+ answer: '개체 수가 적을수록 무작위 표본 추출의 영향이 큽니다. 이는 우연한 사건이 세대 간 대립유전자 빈도를 더 극적으로 변화시킬 수 있음을 의미합니다.',
36
+ },
37
+ {
38
+ question: '표류가 선택을 압도할 수 있나요?',
39
+ answer: '예. 표류가 충분히 강하면 개체 수가 적을 때 유리한 형질이라도 우연히 사라질 수 있습니다.',
40
+ },
41
+ {
42
+ question: '이 시뮬레이터에서 적합도는 무엇을 의미하나요?',
43
+ answer: '적합도는 현재 집단이 선택된 환경에 얼마나 잘 적응했는지를 나타내는 단순화된 점수입니다.',
44
+ },
45
+ {
46
+ question: '개체 수 크기가 왜 그렇게 중요한가요?',
47
+ answer: '개체 수 크기는 무작위 표본 추출이 대립유전자 빈도에 미치는 영향력을 결정합니다. 대규모 집단에서는 선택의 효과가 더 명확하게 드러납니다.',
48
+ },
49
+ {
50
+ question: '이 시뮬레이터를 언제 사용해야 하나요?',
51
+ answer: '진화의 직관적 원리를 이해하고 선택과 같은 방향성 있는 힘과 표류와 같은 확률적 힘의 차이를 시각적으로 확인하고 싶을 때 사용하세요.',
52
+ },
11
53
  ];
12
54
 
13
55
  export const content: NaturalSelectionLocaleContent = {
@@ -34,15 +76,81 @@ export const content: NaturalSelectionLocaleContent = {
34
76
  populationValueLabel: '집단',
35
77
  },
36
78
  seo: [
37
- { type: 'title', text: '자연 선택과 유전적 표류를 살아 있는 집단으로 이해하기', level: 2 },
38
- { type: 'paragraph', html: '이 도구는 진화의 핵심 개념을 시각적으로 빠르게 이해하도록 돕습니다.' },
79
+ {
80
+ type: 'title',
81
+ text: '자연 선택과 유전적 표류를 살아 있는 집단으로 이해하기',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: '이 도구는 진화의 핵심 개념을 시각적으로 빠르게 이해하도록 돕습니다. 선택 압력, 돌연변이율, 표류의 상호작용을 실시간으로 관찰할 수 있습니다.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: '제어 항목의 의미와 중요성',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: '자연 선택은 생존에 유리한 형질을 늘리는 진화의 비무작위 요소입니다. 유전적 표류는 무작위 요소입니다.',
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: '두 가지 힘은 항상 동시에 존재하며 매 세대 상호작용합니다.',
100
+ },
101
+ {
102
+ type: 'title',
103
+ text: '시뮬레이션 결과 읽는 법',
104
+ level: 3,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: '실시간 지표를 통해 집단의 동적인 변화를 해석할 수 있습니다.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: '개체 수 크기가 결과를 바꾸는 이유',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'list',
117
+ items: [
118
+ '<strong>선택 압력:</strong> 환경이 특정 형질을 얼마나 강력하게 우대하는지 나타냅니다.',
119
+ '<strong>표류 강도:</strong> 무작위 표본 추출 오차가 집단을 얼마나 변화시키는지 나타냅니다.',
120
+ '<strong>돌연변이율:</strong> 새로운 변이가 시스템에 도입되는 빈도를 나타냅니다.',
121
+ '<strong>초기 대립유전자 수:</strong> 시작 시 존재하는 대립유전자 종류 수입니다.',
122
+ '<strong>유전적 다양성:</strong> 진화의 원료가 되는 유전적 변이입니다.',
123
+ ],
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '추상적인 개념을 직관적으로 이해할 수 있는 실용적인 학습 도구입니다.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: '시도해 볼 수 있는 간단한 예시',
132
+ level: 3,
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['목표', '조작할 항목', '관찰할 결과'],
137
+ rows: [
138
+ ['선택의 승리 보기', '선택 압력을 높이고 표류를 낮게 유지', '시간이 지남에 따라 하나의 대립유전자가 우세해집니다.'],
139
+ ['무작위 표류 보기', '개체 수를 줄이고 표류를 높임', '대립유전자 빈도가 예측 불가능하게 변동합니다.'],
140
+ ['새로운 변이 보기', '돌연변이와 혁신률을 높임', '새로운 대립유전자가 지속적으로 등장합니다.'],
141
+ ],
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: '실시간 시각화를 통해 진화적 트레이드오프를 쉽게 경험할 수 있습니다.',
146
+ },
39
147
  ],
40
148
  faq,
41
149
  bibliography,
42
- howTo: [],
150
+ howTo,
43
151
  schemas: [
44
152
  { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
45
153
  { '@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: [] },
154
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
47
155
  ],
48
156
  };
@@ -9,10 +9,17 @@ const description =
9
9
  const howTo = [
10
10
  { name: 'Populatie kiezen', text: 'Kies een kleine of grote populatie om het effect van steekproefgrootte te zien.' },
11
11
  { name: 'Selectie en drift instellen', text: 'Verhoog selectiedruk of drift om andere evolutiepaden te zien.' },
12
+ { name: 'Generaties bekijken', text: 'Start de simulatie en vergelijk het dominante kenmerk, de fitness en de diversiteit door de tijd heen.' },
13
+ { name: 'Resultaten interpreteren', text: 'Gebruik de metrieken om te begrijpen wanneer aanpassing wint en wanneer toeval overheerst.' },
12
14
  ];
13
15
 
14
16
  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.' },
17
+ { question: 'Wat is het verschil tussen natuurlijke selectie en genetische drift?', answer: 'Natuurlijke selectie is niet willekeurig. Gunstige eigenschappen worden vaker doorgegeven. Genetische drift is een willekeurige verandering van allelfrequenties.' },
18
+ { question: 'Waarom veranderen kleine populaties sneller?', answer: 'Bij weinig individuen heeft toeval een grotere invloed op de volgende generatie.' },
19
+ { question: 'Kan drift selectie overtreffen?', answer: 'Ja. Een gunstige eigenschap kan door toeval verdwijnen als de drift sterk genoeg is.' },
20
+ { question: 'Wat betekent fitness in deze simulator?', answer: 'Fitness is een vereenvoudigde score voor hoe goed de populatie is aangepast aan de omgeving.' },
21
+ { question: 'Waarom is de populatiegrootte zo belangrijk?', answer: 'Het bepaalt hoe sterk willekeurige schommelingen de allelfrequenties beïnvloeden.' },
22
+ { question: 'Wanneer moet ik deze simulator gebruiken?', answer: 'Wanneer je de intuïtie achter evolutie wilt begrijpen, vooral het verschil tussen selectie en drift.' },
16
23
  ];
17
24
 
18
25
  export const content: NaturalSelectionLocaleContent = {
@@ -39,15 +46,123 @@ export const content: NaturalSelectionLocaleContent = {
39
46
  populationValueLabel: 'Populatie',
40
47
  },
41
48
  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.' },
49
+ {
50
+ type: 'title',
51
+ text: 'Natuurlijke selectie vs. Genetische drift: Evolutie begrijpen met een levende populatie',
52
+ level: 2,
53
+ },
54
+ {
55
+ type: 'paragraph',
56
+ html:
57
+ 'Als je het verschil tussen natuurlijke selectie en genetische drift wilt begrijpen, biedt deze simulator de visuele laag. In plaats van een statische definitie te lezen, bekijk je een populatie in realtime.',
58
+ },
59
+ {
60
+ type: 'title',
61
+ text: 'Wat de instellingen betekenen en waarom ze belangrijk zijn',
62
+ level: 3,
63
+ },
64
+ {
65
+ type: 'paragraph',
66
+ html:
67
+ 'Natuurlijke selectie is het niet-willekeurige deel van evolutie. Het verhoogt de frequentie van eigenschappen die overleving of voortplanting verbeteren. Genetische drift is het willekeurige deel.',
68
+ },
69
+ {
70
+ type: 'paragraph',
71
+ html:
72
+ 'Beide krachten werken tegelijkertijd. In grote populaties overheerst meestal selectie, terwijl in kleine populaties toeval nuttige eigenschappen kan wissen.',
73
+ },
74
+ {
75
+ type: 'title',
76
+ text: 'Hoe de resultaten van de simulatie te lezen',
77
+ level: 3,
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html:
82
+ 'De live-metrieken tonen het dominante kenmerk, de genetische diversiteit, de eindfitness en of de populatie groeit of afneemt.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Waarom populatiegrootte het verhaal verandert',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'list',
91
+ items: [
92
+ '<strong>Selectiedruk:</strong> Hoe sterk de omgeving een eigenschap bevoordeelt.',
93
+ '<strong>Driftintensiteit:</strong> Hoeveel toevallige ruis de populatie beïnvloedt.',
94
+ '<strong>Mutatiesnelheid:</strong> Hoe vaak nieuwe variaties ontstaan.',
95
+ '<strong>Aantal allelen:</strong> Oorspronkelijke variatie in het systeem.',
96
+ '<strong>Genetische diversiteit:</strong> Waarom variatie de grondstof voor evolutie is.',
97
+ ],
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html:
102
+ 'Een praktisch hulpmiddel om selectie, drift en mutatie in biologische systemen te begrijpen.',
103
+ },
104
+ {
105
+ type: 'title',
106
+ text: 'Snelle voorbeelden om te proberen',
107
+ level: 3,
108
+ },
109
+ {
110
+ type: 'table',
111
+ headers: ['Doel', 'Verandering', 'Verwacht resultaat'],
112
+ rows: [
113
+ [
114
+ 'Selectie tonen',
115
+ 'Verhoog selectiedruk en verlaag drift',
116
+ 'Één allel domineert geleidelijk',
117
+ ],
118
+ [
119
+ 'Toeval tonen',
120
+ 'Verlaag populatiegrootte en verhoog drift',
121
+ 'Willekeurige schommelingen in allelfrequenties',
122
+ ],
123
+ [
124
+ 'Mutatie tonen',
125
+ 'Verhoog mutatiesnelheid',
126
+ 'Nieuwe allelen verschijnen regelmatig',
127
+ ],
128
+ ],
129
+ },
130
+ {
131
+ type: 'paragraph',
132
+ html:
133
+ 'De combinatie van visuele weergave en realtime metrieken maakt het begrijpen van evolutie eenvoudig.',
134
+ },
44
135
  ],
45
136
  faq,
46
137
  bibliography,
47
138
  howTo,
48
139
  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 })) },
140
+ {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'SoftwareApplication',
143
+ name: title,
144
+ description,
145
+ applicationCategory: 'EducationalApplication',
146
+ operatingSystem: 'Any',
147
+ },
148
+ {
149
+ '@context': 'https://schema.org',
150
+ '@type': 'FAQPage',
151
+ mainEntity: faq.map((item) => ({
152
+ '@type': 'Question',
153
+ name: item.question,
154
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
155
+ })),
156
+ },
157
+ {
158
+ '@context': 'https://schema.org',
159
+ '@type': 'HowTo',
160
+ name: title,
161
+ step: howTo.map((step) => ({
162
+ '@type': 'HowToStep',
163
+ name: step.name,
164
+ text: step.text,
165
+ })),
166
+ },
52
167
  ],
53
168
  };