@jjlmoya/utils-science 1.48.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 (97) hide show
  1. package/package.json +2 -2
  2. package/src/tests/seo_parity.test.ts +60 -0
  3. package/src/tests/translation_copy.test.ts +122 -0
  4. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +79 -4
  5. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +86 -11
  6. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +86 -11
  7. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +85 -10
  8. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +87 -12
  9. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +85 -10
  10. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +85 -10
  11. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +85 -11
  12. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +87 -12
  13. package/src/tool/conway-life-rule-lab/i18n/de.ts +46 -6
  14. package/src/tool/conway-life-rule-lab/i18n/es.ts +46 -6
  15. package/src/tool/conway-life-rule-lab/i18n/fr.ts +46 -6
  16. package/src/tool/conway-life-rule-lab/i18n/id.ts +46 -6
  17. package/src/tool/conway-life-rule-lab/i18n/it.ts +46 -6
  18. package/src/tool/conway-life-rule-lab/i18n/ja.ts +46 -6
  19. package/src/tool/conway-life-rule-lab/i18n/ko.ts +46 -6
  20. package/src/tool/conway-life-rule-lab/i18n/nl.ts +46 -6
  21. package/src/tool/conway-life-rule-lab/i18n/pl.ts +46 -6
  22. package/src/tool/conway-life-rule-lab/i18n/pt.ts +46 -6
  23. package/src/tool/conway-life-rule-lab/i18n/ru.ts +49 -9
  24. package/src/tool/conway-life-rule-lab/i18n/sv.ts +46 -6
  25. package/src/tool/conway-life-rule-lab/i18n/tr.ts +46 -6
  26. package/src/tool/conway-life-rule-lab/i18n/zh.ts +46 -6
  27. package/src/tool/cosmic-inflation/i18n/ru.ts +30 -4
  28. package/src/tool/double-slit-decoherence/i18n/fr.ts +48 -4
  29. package/src/tool/double-slit-decoherence/i18n/it.ts +52 -8
  30. package/src/tool/double-slit-decoherence/i18n/pt.ts +53 -9
  31. package/src/tool/double-slit-decoherence/i18n/sv.ts +56 -8
  32. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +119 -38
  33. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +116 -48
  34. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +96 -19
  35. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +124 -24
  36. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +122 -22
  37. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +68 -14
  38. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +126 -45
  39. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +46 -9
  40. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +134 -53
  41. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +68 -14
  42. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +124 -24
  43. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +20 -7
  44. package/src/tool/lorenz-attractor/i18n/de.ts +35 -5
  45. package/src/tool/lorenz-attractor/i18n/fr.ts +35 -5
  46. package/src/tool/lorenz-attractor/i18n/id.ts +10 -0
  47. package/src/tool/lorenz-attractor/i18n/it.ts +9 -0
  48. package/src/tool/lorenz-attractor/i18n/ja.ts +10 -0
  49. package/src/tool/lorenz-attractor/i18n/ko.ts +10 -0
  50. package/src/tool/lorenz-attractor/i18n/nl.ts +10 -0
  51. package/src/tool/lorenz-attractor/i18n/pl.ts +10 -0
  52. package/src/tool/lorenz-attractor/i18n/pt.ts +35 -5
  53. package/src/tool/lorenz-attractor/i18n/ru.ts +10 -0
  54. package/src/tool/lorenz-attractor/i18n/sv.ts +10 -0
  55. package/src/tool/lorenz-attractor/i18n/tr.ts +10 -0
  56. package/src/tool/lorenz-attractor/i18n/zh.ts +10 -0
  57. package/src/tool/mandelbrot-fractal/i18n/de.ts +27 -0
  58. package/src/tool/mandelbrot-fractal/i18n/fr.ts +18 -0
  59. package/src/tool/mandelbrot-fractal/i18n/it.ts +26 -8
  60. package/src/tool/mandelbrot-fractal/i18n/pl.ts +27 -9
  61. package/src/tool/mandelbrot-fractal/i18n/ru.ts +22 -4
  62. package/src/tool/mandelbrot-fractal/i18n/sv.ts +35 -8
  63. package/src/tool/natural-selection-drift/i18n/de.ts +125 -22
  64. package/src/tool/natural-selection-drift/i18n/id.ts +113 -5
  65. package/src/tool/natural-selection-drift/i18n/it.ts +74 -2
  66. package/src/tool/natural-selection-drift/i18n/ja.ts +113 -5
  67. package/src/tool/natural-selection-drift/i18n/ko.ts +113 -5
  68. package/src/tool/natural-selection-drift/i18n/nl.ts +121 -6
  69. package/src/tool/natural-selection-drift/i18n/pl.ts +136 -16
  70. package/src/tool/natural-selection-drift/i18n/pt.ts +110 -15
  71. package/src/tool/natural-selection-drift/i18n/ru.ts +142 -7
  72. package/src/tool/natural-selection-drift/i18n/sv.ts +110 -5
  73. package/src/tool/natural-selection-drift/i18n/tr.ts +160 -22
  74. package/src/tool/natural-selection-drift/i18n/zh.ts +113 -5
  75. package/src/tool/phase-diagram-critical-points/i18n/de.ts +44 -6
  76. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +46 -8
  77. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +118 -2
  78. package/src/tool/radioactive-decay/i18n/de.ts +112 -5
  79. package/src/tool/radioactive-decay/i18n/fr.ts +16 -0
  80. package/src/tool/radioactive-decay/i18n/id.ts +112 -8
  81. package/src/tool/radioactive-decay/i18n/it.ts +16 -0
  82. package/src/tool/radioactive-decay/i18n/ja.ts +112 -8
  83. package/src/tool/radioactive-decay/i18n/ko.ts +112 -8
  84. package/src/tool/radioactive-decay/i18n/nl.ts +112 -14
  85. package/src/tool/radioactive-decay/i18n/pl.ts +112 -7
  86. package/src/tool/radioactive-decay/i18n/pt.ts +112 -21
  87. package/src/tool/radioactive-decay/i18n/ru.ts +112 -8
  88. package/src/tool/radioactive-decay/i18n/sv.ts +112 -8
  89. package/src/tool/radioactive-decay/i18n/tr.ts +112 -8
  90. package/src/tool/radioactive-decay/i18n/zh.ts +112 -8
  91. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +76 -0
  92. package/src/tool/temperature-timeline/i18n/de.ts +22 -2
  93. package/src/tool/temperature-timeline/i18n/fr.ts +41 -1
  94. package/src/tool/temperature-timeline/i18n/it.ts +30 -1
  95. package/src/tool/temperature-timeline/i18n/pt.ts +34 -1
  96. package/src/tool/temperature-timeline/i18n/ru.ts +29 -0
  97. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +41 -1
@@ -6,10 +6,37 @@ const title = 'Симулятор естественного отбора и г
6
6
  const description =
7
7
  'В реальном времени наблюдайте, как давление отбора, мутации, дрейф и размножение меняют частоты аллелей.';
8
8
 
9
+ const howTo = [
10
+ { name: 'Задать популяцию', text: 'Выберите малую или большую популяцию, чтобы увидеть влияние размера выборки.' },
11
+ { name: 'Настроить отбор и дрейф', text: 'Увеличьте давление отбора или дрейф, чтобы увидеть другие пути эволюции.' },
12
+ { name: 'Наблюдать поколения', text: 'Запустите симуляцию и сравните доминантный признак, приспособленность и разнообразие.' },
13
+ { name: 'Интерпретировать результаты', text: 'Используйте метрики, чтобы понять, когда побеждает адаптация, а когда преобладает случайность.' },
14
+ ];
15
+
9
16
  const faq = [
10
17
  {
11
18
  question: 'В чем разница между естественным отбором и генетическим дрейфом?',
12
- answer: 'Естественный отбор - это неслучайный процесс, при котором полезные признаки становятся более распространенными. Генетический дрейф - это случайное изменение частот аллелей в популяции, не связанное с приспособленностью.'
19
+ answer: 'Естественный отбор: это неслучайный процесс, при котором полезные признаки становятся более распространенными. Генетический дрейф: это случайное изменение частот аллелей в популяции.',
20
+ },
21
+ {
22
+ question: 'Почему маленькие популяции меняются быстрее?',
23
+ answer: 'При малой численности случайные факторы оказывают более сильное влияние на следующее поколение.',
24
+ },
25
+ {
26
+ question: 'Может ли дрейф преодолеть отбор?',
27
+ answer: 'Да. Полезный признак может исчезнуть случайно, если дрейф достаточно силен.',
28
+ },
29
+ {
30
+ question: 'Что означает приспособленность (fitness) в симуляторе?',
31
+ answer: 'Приспособленность: это упрощенный показатель того, насколько хорошо популяция адаптирована к среде.',
32
+ },
33
+ {
34
+ question: 'Почему размер популяции так важен?',
35
+ answer: 'Он определяет, насколько сильно случайные колебания влияют на частоты аллелей.',
36
+ },
37
+ {
38
+ question: 'Когда следует использовать этот симулятор?',
39
+ answer: 'Когда вы хотите понять интуицию эволюции, особенно различие между отбором и дрейфом.',
13
40
  },
14
41
  ];
15
42
 
@@ -37,15 +64,123 @@ export const content: NaturalSelectionLocaleContent = {
37
64
  populationValueLabel: 'Популяция',
38
65
  },
39
66
  seo: [
40
- { type: 'title', text: 'Естественный отбор vs генетический дрейф: понять эволюцию с живой популяцией', level: 2 },
41
- { type: 'paragraph', html: 'Эта модель помогает увидеть разницу между отбором и дрейфом через живую визуализацию.' },
67
+ {
68
+ type: 'title',
69
+ text: 'Естественный отбор vs. Генетический дрейф: Понять эволюцию на живой популяции',
70
+ level: 2,
71
+ },
72
+ {
73
+ type: 'paragraph',
74
+ html:
75
+ 'Если вы хотите понять разницу между естественным отбором и генетическим дрейфом, этот симулятор предоставляет необходимый визуальный слой. Вместо чтения статических определений вы наблюдаете за популяцией в реальном времени.',
76
+ },
77
+ {
78
+ type: 'title',
79
+ text: 'Что означают регуляторы и почему они важны',
80
+ level: 3,
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html:
85
+ 'Естественный отбор: это неслучайная часть эволюции. Он увеличивает частоту признаков, улучшающих выживание. Генетический дрейф: случайная часть.',
86
+ },
87
+ {
88
+ type: 'paragraph',
89
+ html:
90
+ 'Обе силы действуют одновременно: в больших популяциях обычно преобладает отбор, тогда как в малых случайность может уничтожить полезные признаки.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Как читать результаты симуляции',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html:
100
+ 'Метрики в реальном времени показывают доминантный признак, генетическое разнообразие, итоговую приспособленность и состояние популяции.',
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Почему размер популяции меняет историю',
105
+ level: 3,
106
+ },
107
+ {
108
+ type: 'list',
109
+ items: [
110
+ '<strong>Давление отбора:</strong> Насколько сильно среда благоприятствует признаку.',
111
+ '<strong>Сила дрейфа:</strong> Случайный шум выборки.',
112
+ '<strong>Частота мутаций:</strong> Появление новых вариантов.',
113
+ '<strong>Число аллелей:</strong> Начальное разнообразие.',
114
+ '<strong>Генетическое разнообразие:</strong> Сырье для эволюции.',
115
+ ],
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html:
120
+ 'Практический инструмент для понимания отбора, дрейфа и мутаций в биологических системах.',
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Быстрые примеры для проверки',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'table',
129
+ headers: ['Цель', 'Изменение', 'Ожидаемый результат'],
130
+ rows: [
131
+ [
132
+ 'Показать отбор',
133
+ 'Увеличить отбор и уменьшить дрейф',
134
+ 'Один аллель постепенно доминирует',
135
+ ],
136
+ [
137
+ 'Показать дрейф',
138
+ 'Уменьшить популяцию и увеличить дрейф',
139
+ 'Случайные колебания частот аллелей',
140
+ ],
141
+ [
142
+ 'Показать мутации',
143
+ 'Увеличить частоту мутаций',
144
+ 'Регулярно появляются новые аллели',
145
+ ],
146
+ ],
147
+ },
148
+ {
149
+ type: 'paragraph',
150
+ html:
151
+ 'Сочетание наглядной визуализации и метрик упрощает понимание эволюционных процессов.',
152
+ },
42
153
  ],
43
154
  faq,
44
155
  bibliography,
45
- howTo: [],
156
+ howTo,
46
157
  schemas: [
47
- { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
48
- { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
49
- { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] },
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description,
163
+ applicationCategory: 'EducationalApplication',
164
+ operatingSystem: 'Any',
165
+ },
166
+ {
167
+ '@context': 'https://schema.org',
168
+ '@type': 'FAQPage',
169
+ mainEntity: faq.map((item) => ({
170
+ '@type': 'Question',
171
+ name: item.question,
172
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
173
+ })),
174
+ },
175
+ {
176
+ '@context': 'https://schema.org',
177
+ '@type': 'HowTo',
178
+ name: title,
179
+ step: howTo.map((step) => ({
180
+ '@type': 'HowToStep',
181
+ name: step.name,
182
+ text: step.text,
183
+ })),
184
+ },
50
185
  ],
51
186
  };
@@ -6,10 +6,49 @@ const title = 'Simulering av naturligt urval och genetisk drift';
6
6
  const description =
7
7
  'Se i realtid hur selektionstryck, mutation, genetisk drift och reproduktion ändrar allelfrekvenser.';
8
8
 
9
+ const howTo = [
10
+ {
11
+ name: 'Välj populationsstorlek',
12
+ text: 'Välj en liten eller stor population för att se hur urvalsstorlek förändrar den evolutionära stabiliteten.',
13
+ },
14
+ {
15
+ name: 'Justera selektion och drift',
16
+ text: 'Öka selektionstrycket för att gynna en egenskap, eller öka driftintensiteten för att låta slumpen dominera.',
17
+ },
18
+ {
19
+ name: 'Följ generationernas utveckling',
20
+ text: 'Kör simuleringen och jämför dominerande egenskaper, fitness och variation över tid.',
21
+ },
22
+ {
23
+ name: 'Tolka balansen',
24
+ text: 'Använd de slutliga mätvärdena för att förstå när anpassning vinner och när slumpmässig fluktuation tar över.',
25
+ },
26
+ ];
27
+
9
28
  const faq = [
10
29
  {
11
30
  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.'
31
+ answer: 'Naturligt urval är en icke-slumpmässig process där gynnsamma egenskaper blir vanligare. Genetisk drift är slumpmässig förändring av allelfrekvenser i en population, starkast i små populationer.',
32
+ },
33
+ {
34
+ question: 'Varför förändras små populationer snabbare?',
35
+ answer: 'Med färre individer har slumpmässigt urval en större effekt. Det innebär att slumpen kan ändra allelfrekvenser mer dramatiskt från en generation till nästa.',
36
+ },
37
+ {
38
+ question: 'Kan drift övervinna urval?',
39
+ answer: 'Ja. Om driften är tillräckligt stark kan en gynnsam egenskap försvinna av slumpen, särskilt när populationen är liten.',
40
+ },
41
+ {
42
+ question: 'Vad betyder fitness i denna simulator?',
43
+ answer: 'Fitness är ett förenklat mått på hur väl populationen är anpassad till den valda miljön.',
44
+ },
45
+ {
46
+ question: 'Varför spelar populationsstorlek så stor roll?',
47
+ answer: 'Populationsstorleken avgör hur starkt slumpmässigt urval påverkar allelfrekvenser. I stora populationer syns urvalet tydligare.',
48
+ },
49
+ {
50
+ question: 'När bör jag använda denna simulator?',
51
+ answer: 'Använd den för att få en visuell förståelse för evolutionsmekanismer och skilja på riktade krafter som urval och stokastiska krafter som drift.',
13
52
  },
14
53
  ];
15
54
 
@@ -37,15 +76,81 @@ export const content: NaturalSelectionLocaleContent = {
37
76
  populationValueLabel: 'Population',
38
77
  },
39
78
  seo: [
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.' },
79
+ {
80
+ type: 'title',
81
+ text: 'Naturligt urval vs genetisk drift: förstå evolution med en levande population',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Denna simulator hjälper dig att se skillnaden mellan selektion och drift på ett tydligt sätt genom levande visualisering.',
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Vad kontrollerna betyder och varför de är viktiga',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Naturligt urval ökar frekvensen av egenskaper som förbättrar överlevnad. Genetisk drift ändrar allelfrekvenser av slump.',
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'Båda krafterna är alltid närvarande och samverkar i varje generation.',
100
+ },
101
+ {
102
+ type: 'title',
103
+ text: 'Hur du läser simuleringsresultaten',
104
+ level: 3,
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Mätvärdena i realtid hjälper dig att tolka systemets förändringar.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: 'Varför populationsstorlek förändrar bilden',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'list',
117
+ items: [
118
+ '<strong>Selektionstryck:</strong> Hur starkt miljön belönar en egenskap.',
119
+ '<strong>Driftintensitet:</strong> Hur mycket slumpmässigt urval ändrar populationen.',
120
+ '<strong>Mutationshastighet:</strong> Hur ofta ny variation uppstår.',
121
+ '<strong>Allelantal:</strong> Antal startalleler.',
122
+ '<strong>Genetisk variation:</strong> Råmaterialet för evolution.',
123
+ ],
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Verktyget ger ett snabbt och praktiskt sätt att förstå evolutionsbiologi.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'Snabba exempel att testa',
132
+ level: 3,
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['Mål', 'Vad du ska ändra', 'Vad du bör se'],
137
+ rows: [
138
+ ['Visa selektionsseger', 'Öka selektionstryck och håll drift låg', 'En allel dominerar över tid.'],
139
+ ['Visa slumpmässig drift', 'Minska populationen och öka drift', 'Allelfrekvenser svänger oförutsägbart.'],
140
+ ['Visa ny variation', 'Öka mutation och innovation', 'Nya alleler uppstår kontinuerligt.'],
141
+ ],
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Visualiseringen gör verktyget idealiskt för undervisning och självstudier.',
146
+ },
42
147
  ],
43
148
  faq,
44
149
  bibliography,
45
- howTo: [],
150
+ howTo,
46
151
  schemas: [
47
152
  { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
48
153
  { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
49
- { '@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 })) },
50
155
  ],
51
156
  };
@@ -2,12 +2,42 @@ import { bibliography } from '../bibliography';
2
2
  import type { NaturalSelectionLocaleContent } from '../entry';
3
3
 
4
4
  const slug = 'dogal-secilim-genetik-suruklenme-simulatoru';
5
- const title = 'Dogal secilim ve genetik suruklenme simulatörü';
5
+ const title = 'Doğal Seçilim ve Genetik Sürüklenme Simülatörü';
6
6
  const description =
7
- 'Secilim baskisi, mutasyon, suruklenme ve uremenin alel frekanslarini gercek zamanli nasil degistirdigini gorun.';
7
+ 'Seçilim baskısı, mutasyon, sürüklenme ve üremenin alel frekanslarını gerçek zamanlı nasıl değiştirdiğini görün.';
8
+
9
+ const howTo = [
10
+ { name: 'Popülasyonu ayarlayın', text: 'Örneklem büyüklüğünün evrimsel kararlılığı nasıl etkilediğini görmek için küçük veya büyük bir popülasyon seçin.' },
11
+ { name: 'Seçilim ve sürüklenmeyi düzenleyin', text: 'Farklı evrimsel yolları gözlemlemek için seçilim baskısını veya sürüklenmeyi artırın.' },
12
+ { name: 'Nesilleri izleyin', text: 'Simülasyonu başlatın ve baskın özelliği, fitness değerini ve çeşitliliği zaman içinde karşılaştırın.' },
13
+ { name: 'Sonuçları yorumlayın', text: 'Uyarlanmanın ne zaman kazandığını ve şansın ne zaman baskın olduğunu anlamak için ölçümleri kullanın.' },
14
+ ];
8
15
 
9
16
  const faq = [
10
- { question: 'Dogal secilim ile genetik suruklenme arasindaki fark nedir?', answer: 'Dogal secilim rastgele degildir. Genetik suruklenme alel frekanslarinda rastgele bir degisikliktir.' },
17
+ {
18
+ question: 'Doğal seçilim ile genetik sürüklenme arasındaki fark nedir?',
19
+ answer: 'Doğal seçilim rastgele değildir; yararlı özellikler daha yaygın hale gelir. Genetik sürüklenme ise alel frekanslarında rastgele bir değişikliktir.',
20
+ },
21
+ {
22
+ question: 'Küçük popülasyonlar neden daha hızlı değişir?',
23
+ answer: 'Az sayıda birey olduğunda, rastgele örnekleme sonraki nesil üzerinde daha büyük bir etkiye sahip olur.',
24
+ },
25
+ {
26
+ question: 'Sürüklenme seçilimi bastırabilir mi?',
27
+ answer: 'Evet. Sürüklenme yeterince güçlüyse yararlı bir alel şans eseri yok olabilir.',
28
+ },
29
+ {
30
+ question: 'Bu simülatörde fitness ne anlama gelir?',
31
+ answer: 'Fitness, popülasyonun seçilen çevreye ne kadar iyi uyum sağladığını gösteren basitleştirilmiş bir puandır.',
32
+ },
33
+ {
34
+ question: 'Popülasyon büyüklüğü neden bu kadar önemlidir?',
35
+ answer: 'Rastgele dalgalanmaların alel frekanslarını ne kadar güçlü etkilediğini belirler.',
36
+ },
37
+ {
38
+ question: 'Bu simülatörü ne zaman kullanmalıyım?',
39
+ answer: 'Evrimin arkasındaki sezgiyi, özellikle seçilim ve sürüklenme arasındaki farkı anlamak istediğinizde.',
40
+ },
11
41
  ];
12
42
 
13
43
  export const content: NaturalSelectionLocaleContent = {
@@ -15,34 +45,142 @@ export const content: NaturalSelectionLocaleContent = {
15
45
  title,
16
46
  description,
17
47
  ui: {
18
- population: 'Populasyon buyuklugu',
48
+ population: 'Popülasyon büyüklüğü',
19
49
  generations: 'Nesiller',
20
- mutationRate: 'Mutasyon orani',
21
- selectionPressure: 'Secilim baskisi',
22
- driftIntensity: 'Suruklenme yogunlugu',
23
- alleleCount: 'Baslangic allelleri',
24
- innovationRate: 'Inovasyon orani',
25
- run: 'Simulasyonu baslat',
26
- dominantTrait: 'Baskin ozellik',
50
+ mutationRate: 'Mutasyon oranı',
51
+ selectionPressure: 'Seçilim baskısı',
52
+ driftIntensity: 'Sürüklenme yoğunluğu',
53
+ alleleCount: 'Başlangıç alelleri',
54
+ innovationRate: 'İnovasyon oranı',
55
+ run: 'Simülasyonu başlat',
56
+ dominantTrait: 'Baskın özellik',
27
57
  fitness: 'Nihai fitness',
28
- diversity: 'Genetik cesitlilik',
58
+ diversity: 'Genetik çeşitlilik',
29
59
  evolutionConsole: 'Evrim konsolu',
30
- populationLabel: 'Populasyon',
31
- aliveLabel: 'canli',
32
- alleleCountsLabel: 'Alel sayilari',
60
+ populationLabel: 'Popülasyon',
61
+ aliveLabel: 'canlı',
62
+ alleleCountsLabel: 'Alel sayıları',
33
63
  alleleDefault: 'Alel 1',
34
- populationValueLabel: 'Populasyon',
64
+ populationValueLabel: 'Popülasyon',
35
65
  },
36
66
  seo: [
37
- { type: 'title', text: 'Dogal secilim vs genetik suruklenme: canli populasyonla evrimi anlayin', level: 2 },
38
- { type: 'paragraph', html: 'Bu simulatör dogal secilim ve genetik suruklenmeyi birlikte gosterir.' },
67
+ {
68
+ type: 'title',
69
+ text: 'Doğal Seçilim vs. Genetik Sürüklenme: Canlı Popülasyonla Evrimi Anlayın',
70
+ level: 2,
71
+ },
72
+ {
73
+ type: 'paragraph',
74
+ html:
75
+ 'Doğal seçilim ile genetik sürüklenme arasındaki farkı anlamak istiyorsanız, bu simülatör görsel katmanı sağlar. Statik tanımları okumak yerine popülasyonu gerçek zamanlı izlersiniz.',
76
+ },
77
+ {
78
+ type: 'title',
79
+ text: 'Kontroller Ne Anlama Gelir ve Neden Önemlidir',
80
+ level: 3,
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html:
85
+ 'Doğal seçilim evrimin rastgele olmayan kısmıdır. Hayatta kalmayı artıran özelliklerin frekansını yükseltir. Genetik sürüklenme rastgele kısımdır.',
86
+ },
87
+ {
88
+ type: 'paragraph',
89
+ html:
90
+ 'Her iki kuvvet de aynı anda etki eder: büyük popülasyonlarda seçilim baskınken, küçük popülasyonlarda şans yararlı özellikleri silebilir.',
91
+ },
92
+ {
93
+ type: 'title',
94
+ text: 'Simülasyon Sonuçları Nasıl Okunur',
95
+ level: 3,
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html:
100
+ 'Canlı ölçümler baskın özelliği, genetik çeşitliliği, nihai fitness değerini ve popülasyon durumunu gösterir.',
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Popülasyon Büyüklüğü Hikayeyi Neden Değiştirir',
105
+ level: 3,
106
+ },
107
+ {
108
+ type: 'list',
109
+ items: [
110
+ '<strong>Seçilim baskısı:</strong> Çevrenin bir özelliği ne kadar kayırdığı.',
111
+ '<strong>Sürüklenme yoğunluğu:</strong> Rastgele örnekleme gürültüsü.',
112
+ '<strong>Mutasyon oranı:</strong> Yeni varyasyonların ortaya çıkma sıklığı.',
113
+ '<strong>Alel sayısı:</strong> Sistemdeki başlangıç çeşitliliği.',
114
+ '<strong>Genetik çeşitlilik:</strong> Evrimin ham maddesi.',
115
+ ],
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html:
120
+ 'Biyolojik sistemlerde seçilim, sürüklenme ve mutasyonu anlamak için pratik bir araç.',
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Denenecek Hızlı Örnekler',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'table',
129
+ headers: ['Hedef', 'Değişiklik', 'Beklenen Sonuç'],
130
+ rows: [
131
+ [
132
+ 'Seçilimi göstermek',
133
+ 'Seçilim baskısını artırın ve sürüklenmeyi azaltın',
134
+ 'Bir alel kademeli olarak baskın hale gelir',
135
+ ],
136
+ [
137
+ 'Sürüklenmeyi göstermek',
138
+ 'Popülasyonu azaltın ve sürüklenmeyi artırın',
139
+ 'Alel frekanslarında rastgele dalgalanmalar',
140
+ ],
141
+ [
142
+ 'Mutasyonu göstermek',
143
+ 'Mutasyon oranını artırın',
144
+ 'Düzenli olarak yeni aleller ortaya çıkar',
145
+ ],
146
+ ],
147
+ },
148
+ {
149
+ type: 'paragraph',
150
+ html:
151
+ 'Görsel sunum ve gerçek zamanlı ölçümler evrimsel süreçlerin anlaşılmasını kolaylaştırır.',
152
+ },
39
153
  ],
40
154
  faq,
41
155
  bibliography,
42
- howTo: [],
156
+ howTo,
43
157
  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: [] },
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description,
163
+ applicationCategory: 'EducationalApplication',
164
+ operatingSystem: 'Any',
165
+ },
166
+ {
167
+ '@context': 'https://schema.org',
168
+ '@type': 'FAQPage',
169
+ mainEntity: faq.map((item) => ({
170
+ '@type': 'Question',
171
+ name: item.question,
172
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
173
+ })),
174
+ },
175
+ {
176
+ '@context': 'https://schema.org',
177
+ '@type': 'HowTo',
178
+ name: title,
179
+ step: howTo.map((step) => ({
180
+ '@type': 'HowToStep',
181
+ name: step.name,
182
+ text: step.text,
183
+ })),
184
+ },
47
185
  ],
48
186
  };
@@ -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
  };