@jjlmoya/utils-science 1.47.0 → 1.49.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/category/index.ts +27 -27
  3. package/src/tests/seo_parity.test.ts +60 -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
@@ -2,23 +2,23 @@ import { bibliography } from '../bibliography';
2
2
  import type { NaturalSelectionLocaleContent } from '../entry';
3
3
 
4
4
  const slug = 'simulator-natuerliche-selektion-genetische-drift';
5
- const title = 'Simulator fur naturliche Selektion und genetische Drift';
5
+ const title = 'Simulator für natürliche Selektion und genetische Drift';
6
6
  const description =
7
- 'Beobachte in Echtzeit, wie Selektionsdruck, Mutation, Drift und Fortpflanzung die Allelfrequenzen verandern.';
7
+ 'Beobachte in Echtzeit, wie Selektionsdruck, Mutation, Drift und Fortpflanzung die Allelfrequenzen verändern.';
8
8
 
9
9
  const howTo = [
10
- { name: 'Population festlegen', text: 'Wahle eine kleine oder große Population, um den Einfluss der Stichprobe zu sehen.' },
11
- { name: 'Selektion und Drift einstellen', text: 'Erhohe den Selektionsdruck oder die Drift, um andere Evolutionsverlaufe zu sehen.' },
12
- { name: 'Generationen beobachten', text: 'Starte die Simulation und vergleiche dominantes Merkmal, Fitness und Vielfalt uber die Zeit.' },
10
+ { name: 'Population festlegen', text: 'Wähle eine kleine oder große Population, um den Einfluss der Stichprobe zu sehen.' },
11
+ { name: 'Selektion und Drift einstellen', text: 'Erhöhe den Selektionsdruck oder die Drift, um andere Evolutionsverläufe zu sehen.' },
12
+ { name: 'Generationen beobachten', text: 'Starte die Simulation und vergleiche dominantes Merkmal, Fitness und Vielfalt über die Zeit.' },
13
13
  { name: 'Ergebnisse deuten', text: 'Nutze die Metriken, um zu verstehen, wann Anpassung gewinnt und wann Zufall dominiert.' },
14
14
  ];
15
15
 
16
16
  const faq = [
17
- { question: 'Was ist der Unterschied zwischen naturlicher Selektion und genetischer Drift?', answer: 'Naturliche Selektion ist nicht zufallig. Vorteilhafte Merkmale werden haufiger. Genetische Drift ist eine zufallige Veranderung der Allelfrequenzen, besonders stark in kleinen Populationen.' },
18
- { question: 'Warum verandern sich kleine Populationen schneller?', answer: 'Bei wenigen Individuen hat Zufall einen großeren Einfluss auf die nachste Generation.' },
19
- { question: 'Kann Drift Selektion ubertreffen?', answer: 'Ja. Ein vorteilhaftes Merkmal kann durch Zufall verschwinden, wenn die Drift stark genug ist.' },
20
- { question: 'Was bedeutet Fitness in diesem Simulator?', answer: 'Fitness ist eine vereinfachte Kennzahl dafur, wie gut die Population an die Umgebung angepasst ist.' },
21
- { question: 'Warum ist die Populationsgroße so wichtig?', answer: 'Sie bestimmt, wie stark Zufall die Allelfrequenzen beeinflusst.' },
17
+ { question: 'Was ist der Unterschied zwischen natürlicher Selektion und genetischer Drift?', answer: 'Natürliche Selektion ist nicht zufällig. Vorteilhafte Merkmale werden häufiger. Genetische Drift ist eine zufällige Veränderung der Allelfrequenzen, besonders stark in kleinen Populationen.' },
18
+ { question: 'Warum verändern sich kleine Populationen schneller?', answer: 'Bei wenigen Individuen hat Zufall einen größeren Einfluss auf die nächste Generation.' },
19
+ { question: 'Kann Drift Selektion übertreffen?', answer: 'Ja. Ein vorteilhaftes Merkmal kann durch Zufall verschwinden, wenn die Drift stark genug ist.' },
20
+ { question: 'Was bedeutet Fitness in diesem Simulator?', answer: 'Fitness ist eine vereinfachte Kennzahl dafür, wie gut die Population an die Umgebung angepasst ist.' },
21
+ { question: 'Warum ist die Populationsgröße so wichtig?', answer: 'Sie bestimmt, wie stark Zufall die Allelfrequenzen beeinflusst.' },
22
22
  { question: 'Wann sollte ich diesen Simulator benutzen?', answer: 'Wenn du die Intuition hinter Evolution verstehen willst, besonders den Unterschied zwischen Selektion und Drift.' },
23
23
  ];
24
24
 
@@ -27,11 +27,11 @@ export const content: NaturalSelectionLocaleContent = {
27
27
  title,
28
28
  description,
29
29
  ui: {
30
- population: 'Populationsgroße',
30
+ population: 'Populationsgröße',
31
31
  generations: 'Generationen',
32
32
  mutationRate: 'Mutationsrate',
33
33
  selectionPressure: 'Selektionsdruck',
34
- driftIntensity: 'Driftintensitat',
34
+ driftIntensity: 'Driftintensität',
35
35
  alleleCount: 'Startallele',
36
36
  innovationRate: 'Innovationsrate',
37
37
  run: 'Simulation starten',
@@ -46,20 +46,123 @@ export const content: NaturalSelectionLocaleContent = {
46
46
  populationValueLabel: 'Population',
47
47
  },
48
48
  seo: [
49
- { type: 'title', text: 'Naturliche Selektion vs genetische Drift: Evolution mit einer lebenden Population verstehen', level: 2 },
50
- { type: 'paragraph', html: 'Wenn du naturliche Selektion vs genetische Drift verstehen willst, liefert dir dieser Simulator die fehlende visuelle Ebene.' },
51
- { type: 'title', text: 'Was die Regler bedeuten', level: 3 },
52
- { type: 'paragraph', html: 'Naturliche Selektion erhoht die Haufigkeit vorteilhafter Merkmale. Genetische Drift verandert Allelfrequenzen zufallig.' },
53
- { type: 'paragraph', html: 'Beide Krafte wirken gleichzeitig. In großen Populationen dominiert oft Selektion; in kleinen kann Zufall nutzliche Merkmale auslosen.' },
54
- { type: 'title', text: 'Wie man die Ergebnisse liest', level: 3 },
55
- { type: 'paragraph', html: 'Die Live-Metriken zeigen das dominante Allel, die genetische Vielfalt, die Endfitness und ob die Population wachst oder kollabiert.' },
49
+ {
50
+ type: 'title',
51
+ text: 'Natürliche Selektion vs. Genetische Drift: Evolution in einer lebenden Population verstehen',
52
+ level: 2,
53
+ },
54
+ {
55
+ type: 'paragraph',
56
+ html:
57
+ 'Wenn du den Unterschied zwischen natürlicher Selektion und genetischer Drift verstehen willst, bietet dieser Simulator die visuelle Ebene. Anstatt statische Definitionen zu lesen, beobachtest du eine Population in Echtzeit.',
58
+ },
59
+ {
60
+ type: 'title',
61
+ text: 'Was die Regler bedeuten und warum sie wichtig sind',
62
+ level: 3,
63
+ },
64
+ {
65
+ type: 'paragraph',
66
+ html:
67
+ 'Natürliche Selektion ist der nicht-zufällige Teil der Evolution. Sie erhöht die Häufigkeit von Merkmalen, die Überleben oder Fortpflanzung verbessern. Genetische Drift ist der zufällige Teil.',
68
+ },
69
+ {
70
+ type: 'paragraph',
71
+ html:
72
+ 'Beide Kräfte wirken gleichzeitig. In großen Populationen dominiert meist die Selektion, in kleinen Populationen kann der Zufall nützliche Merkmale auslöschen.',
73
+ },
74
+ {
75
+ type: 'title',
76
+ text: 'Wie man die Ergebnisse der Simulation liest',
77
+ level: 3,
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html:
82
+ 'Die Live-Metriken zeigen das dominante Merkmal, die genetische Vielfalt, die Endfitness und ob die Population wächst oder kollabiert.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Warum die Populationsgröße die Geschichte verändert',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'list',
91
+ items: [
92
+ '<strong>Selektionsdruck:</strong> Wie stark das Umfeld ein Merkmal bevorzugt.',
93
+ '<strong>Driftintensität:</strong> Wie stark Zufallsschwankungen die Population beeinflussen.',
94
+ '<strong>Mutationsrate:</strong> Wie oft neue Variationen entstehen.',
95
+ '<strong>Anzahl der Allele:</strong> Ursprüngliche Allelvielfalt im System.',
96
+ '<strong>Genetische Vielfalt:</strong> Warum Variation das Rohmaterial der Evolution ist.',
97
+ ],
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html:
102
+ 'Ein praktisches Werkzeug zum Verständnis von Selektion, Drift und Mutation in biologischen Systemen.',
103
+ },
104
+ {
105
+ type: 'title',
106
+ text: 'Schnelle Beispiele zum Ausprobieren',
107
+ level: 3,
108
+ },
109
+ {
110
+ type: 'table',
111
+ headers: ['Ziel', 'Änderung', 'Erwartetes Ergebnis'],
112
+ rows: [
113
+ [
114
+ 'Selektion zeigen',
115
+ 'Selektionsdruck erhöhen und Drift senken',
116
+ 'Ein Allel dominiert schrittweise und die Vielfalt sinkt langsamer',
117
+ ],
118
+ [
119
+ 'Zufall zeigen',
120
+ 'Populationsgröße senken und Drift erhöhen',
121
+ 'Zufällige Schwankungen der Allele ohne klaren Fitnessvorteil',
122
+ ],
123
+ [
124
+ 'Mutation zeigen',
125
+ 'Mutationsrate erhöhen',
126
+ 'Neue Allele entstehen regelmäßig',
127
+ ],
128
+ ],
129
+ },
130
+ {
131
+ type: 'paragraph',
132
+ html:
133
+ 'Die Kombination aus visueller Darstellung und Echtzeitmetriken erleichtert das Verständnis evolutiver Prozesse.',
134
+ },
56
135
  ],
57
136
  faq,
58
137
  bibliography,
59
138
  howTo,
60
139
  schemas: [
61
- { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
62
- { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
63
- { '@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
+ },
64
167
  ],
65
168
  };
@@ -6,8 +6,50 @@ const title = 'Simulator seleksi alam dan drift genetik';
6
6
  const description =
7
7
  'Lihat secara real time bagaimana tekanan seleksi, mutasi, drift, dan reproduksi mengubah frekuensi alel.';
8
8
 
9
+ const howTo = [
10
+ {
11
+ name: 'Atur ukuran populasi',
12
+ text: 'Pilih populasi kecil atau besar untuk melihat bagaimana ukuran sampel mengubah stabilitas evolusi.',
13
+ },
14
+ {
15
+ name: 'Sesuaikan seleksi dan drift',
16
+ text: 'Tingkatkan tekanan seleksi untuk mendukung satu sifat, atau naikkan intensitas drift agar kebetulan mendominasi.',
17
+ },
18
+ {
19
+ name: 'Amati perkembangan generasi',
20
+ text: 'Jalankan simulasi dan bandingkan sifat dominan, kebugaran, dan keragaman dari waktu ke waktu.',
21
+ },
22
+ {
23
+ name: 'Interpretasikan keseimbangan',
24
+ text: 'Gunakan metrik akhir untuk memahami kapan adaptasi menang dan kapan fluktuasi acak mengambil alih.',
25
+ },
26
+ ];
27
+
9
28
  const faq = [
10
- { question: 'Apa perbedaan seleksi alam dan drift genetik?', answer: 'Seleksi alam tidak acak. Drift genetik adalah perubahan acak pada frekuensi alel.' },
29
+ {
30
+ question: 'Apa perbedaan antara seleksi alam dan drift genetik?',
31
+ answer: 'Seleksi alam adalah proses tidak acak di mana sifat yang meningkatkan kelangsungan hidup menjadi lebih umum. Drift genetik adalah perubahan acak frekuensi alel, paling kuat pada populasi kecil.',
32
+ },
33
+ {
34
+ question: 'Mengapa populasi kecil berubah lebih cepat?',
35
+ answer: 'Dengan lebih sedikit individu, pengambilan sampel acak memiliki efek lebih besar. Artinya peristiwa kebetulan mengubah frekuensi alel lebih dramatis.',
36
+ },
37
+ {
38
+ question: 'Bisakah drift mengalahkan seleksi?',
39
+ answer: 'Ya. Jika drift cukup kuat, sifat yang menguntungkan dapat hilang secara acak, terutama ketika populasi kecil.',
40
+ },
41
+ {
42
+ question: 'Apa arti kebugaran dalam simulator ini?',
43
+ answer: 'Kebugaran adalah skor sederhana yang mewakili seberapa baik populasi beradaptasi dengan lingkungan yang dipilih.',
44
+ },
45
+ {
46
+ question: 'Mengapa ukuran populasi sangat penting?',
47
+ answer: 'Ukuran populasi menentukan seberapa kuat pengambilan sampel acak mempengaruhi frekuensi alel. Pada populasi besar, seleksi lebih mudah terlihat.',
48
+ },
49
+ {
50
+ question: 'Kapan saya harus menggunakan simulator ini?',
51
+ answer: 'Gunakan saat Anda ingin memahami intuisi evolusi dan membedakan kekuatan terarah seperti seleksi dan kekuatan stokastik seperti drift.',
52
+ },
11
53
  ];
12
54
 
13
55
  export const content: NaturalSelectionLocaleContent = {
@@ -34,15 +76,81 @@ export const content: NaturalSelectionLocaleContent = {
34
76
  populationValueLabel: 'Populasi',
35
77
  },
36
78
  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.' },
79
+ {
80
+ type: 'title',
81
+ text: 'Seleksi alam vs drift genetik: pahami evolusi dengan populasi hidup',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Simulator ini memberi cara yang jelas dan praktis untuk melihat seleksi dan drift dalam waktu nyata.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Arti kontrol dan mengapa itu penting',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Seleksi alam meningkatkan frekuensi sifat yang menguntungkan. Drift genetik mengubah frekuensi secara acak.',
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'Kedua kekuatan selalu hadir dan berinteraksi di setiap generasi.',
100
+ },
101
+ {
102
+ type: 'title',
103
+ text: 'Cara membaca hasil simulasi',
104
+ level: 3,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Metrik langsung membantu Anda membaca perubahan sistem.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: 'Mengapa ukuran populasi mengubah cerita',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'list',
117
+ items: [
118
+ '<strong>Tekanan seleksi:</strong> Seberapa kuat lingkungan mendukung suatu sifat.',
119
+ '<strong>Intensitas drift:</strong> Seberapa banyak sampel acak mengubah populasi.',
120
+ '<strong>Laju mutasi:</strong> Seberapa sering variasi baru muncul.',
121
+ '<strong>Jumlah alel:</strong> Alel awal saat simulasi dimulai.',
122
+ '<strong>Keragaman genetik:</strong> Bahan mentah utama evolusi.',
123
+ ],
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Alat ini menyediakan cara praktis untuk memahami biologi evolusi.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'Contoh cepat untuk dicoba',
132
+ level: 3,
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['Tujuan', 'Apa yang diubah', 'Apa yang harus dilihat'],
137
+ rows: [
138
+ ['Tunjukkan kemenangan seleksi', 'Naikkan tekanan seleksi dan jaga drift rendah', 'Satu alel mendominasi seiring waktu.'],
139
+ ['Tunjukkan drift acak', 'Turunkan ukuran populasi dan naikkan drift', 'Frekuensi alel berfluktuasi tidak menentu.'],
140
+ ['Tunjukkan variasi baru', 'Tingkatkan mutasi dan inovasi', 'Alel baru bermunculan secara kontinyu.'],
141
+ ],
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Visualisasi langsung membuat alat ini sangat berguna untuk pembelajaran.',
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
  };
@@ -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
  };