@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
@@ -4,10 +4,22 @@ import type { NaturalSelectionLocaleContent } from '../entry';
4
4
  const slug = 'symulator-doboru-naturalnego-dryfu-genetycznego';
5
5
  const title = 'Symulator doboru naturalnego i dryfu genetycznego';
6
6
  const description =
7
- 'Zobacz w czasie rzeczywistym, jak presja selekcyjna, mutacje, dryf i rozmnazanie zmieniaja czestosc alleli.';
7
+ 'Zobacz w czasie rzeczywistym, jak presja selekcyjna, mutacje, dryf i rozmnażanie zmieniają częstość alleli.';
8
+
9
+ const howTo = [
10
+ { name: 'Ustaw populację', text: 'Wybierz małą lub dużą populację, aby zobaczyć wpływ wielkości próbki.' },
11
+ { name: 'Dostosuj dobór i dryf', text: 'Zwiększ presję selekcyjną lub dryf, aby zobaczyć inne ścieżki ewolucyjne.' },
12
+ { name: 'Obserwuj pokolenia', text: 'Uruchom symulację i porównaj cechę dominującą, dostosowanie i różnorodność w czasie.' },
13
+ { name: 'Interpretuj wyniki', text: 'Użyj wskaźników, aby zrozumieć, kiedy wygrywa adaptacja, a kiedy dominuje przypadek.' },
14
+ ];
8
15
 
9
16
  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.' },
17
+ { question: 'Jaka jest różnica między doborem naturalnym a dryfem genetycznym?', answer: 'Dobór naturalny nie jest losowy. Korzystne cechy stają się częstsze. Dryf genetyczny to losowa zmiana częstości alleli.' },
18
+ { question: 'Dlaczego małe populacje zmieniają się szybciej?', answer: 'Przy niewielkiej liczbie osobników przypadek ma większy wpływ na następne pokolenie.' },
19
+ { question: 'Czy dryf może przeważyć nad doborem?', answer: 'Tak. Korzystna cecha może zniknąć przez przypadek, jeśli dryf jest wystarczająco silny.' },
20
+ { question: 'Co oznacza dostosowanie (fitness) w tym symulatorze?', answer: 'Dostosowanie to uproszczony wskaźnik pokazujący, jak dobrze populacja jest przystosowana do środowiska.' },
21
+ { question: 'Dlaczego wielkość populacji jest tak ważna?', answer: 'Określa, jak silnie losowe wahania wpływają na częstość alleli.' },
22
+ { question: 'Kiedy należy używać tego symulatora?', answer: 'Gdy chcesz zrozumieć intuicję stojącą za ewolucją, zwłaszcza różnicę między doborem a dryfem.' },
11
23
  ];
12
24
 
13
25
  export const content: NaturalSelectionLocaleContent = {
@@ -15,34 +27,142 @@ export const content: NaturalSelectionLocaleContent = {
15
27
  title,
16
28
  description,
17
29
  ui: {
18
- population: 'Wielkosc populacji',
30
+ population: 'Wielkość populacji',
19
31
  generations: 'Pokolenia',
20
32
  mutationRate: 'Tempo mutacji',
21
33
  selectionPressure: 'Presja selekcyjna',
22
- driftIntensity: 'Intensywnosc dryfu',
23
- alleleCount: 'Poczatkowe allele',
34
+ driftIntensity: 'Intensywność dryfu',
35
+ alleleCount: 'Początkowe allele',
24
36
  innovationRate: 'Tempo innowacji',
25
- run: 'Uruchom symulacje',
26
- dominantTrait: 'Dominujaca cecha',
27
- fitness: 'Fitness koncowy',
28
- diversity: 'Róznorodnosc genetyczna',
37
+ run: 'Uruchom symulację',
38
+ dominantTrait: 'Dominująca cecha',
39
+ fitness: 'Fitness końcowy',
40
+ diversity: 'Różnorodność genetyczna',
29
41
  evolutionConsole: 'Konsola ewolucji',
30
42
  populationLabel: 'Populacja',
31
- aliveLabel: 'zywych',
43
+ aliveLabel: 'żywych',
32
44
  alleleCountsLabel: 'Liczba alleli',
33
45
  alleleDefault: 'Allel 1',
34
46
  populationValueLabel: 'Populacja',
35
47
  },
36
48
  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.' },
49
+ {
50
+ type: 'title',
51
+ text: 'Dobór naturalny vs. Dryf genetyczny: Zrozum ewolucję dzięki żywej populacji',
52
+ level: 2,
53
+ },
54
+ {
55
+ type: 'paragraph',
56
+ html:
57
+ 'Jeśli chcesz zrozumieć różnicę między doborem naturalnym a dryfem genetycznym, ten symulator zapewnia warstwę wizualną. Zamiast czytać statyczną definicję, obserwujesz populację w czasie rzeczywistym.',
58
+ },
59
+ {
60
+ type: 'title',
61
+ text: 'Co oznaczają suwaki i dlaczego są ważne',
62
+ level: 3,
63
+ },
64
+ {
65
+ type: 'paragraph',
66
+ html:
67
+ 'Dobór naturalny to nielosowa część ewolucji. Zwiększa częstość cech poprawiających przeżywalność lub rozmnażanie. Dryf genetyczny to część losowa.',
68
+ },
69
+ {
70
+ type: 'paragraph',
71
+ html:
72
+ 'Obie siły działają jednocześnie. W dużych populacjach zazwyczaj dominuje dobór, podczas gdy w małych populacjach przypadek może wyeliminować pożyteczne cechy.',
73
+ },
74
+ {
75
+ type: 'title',
76
+ text: 'Jak odczytywać wyniki symulacji',
77
+ level: 3,
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html:
82
+ 'Wskaźniki na żywo pokazują cechę dominującą, różnorodność genetyczną, dostosowanie końcowe oraz to, czy populacja rośnie, czy spada.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Dlaczego wielkość populacji zmienia przebieg ewolucji',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'list',
91
+ items: [
92
+ '<strong>Presja selekcyjna:</strong> Jak silnie środowisko faworyzuje daną cechę.',
93
+ '<strong>Intensywność dryfu:</strong> Jak duży szum losowy wpływa na populację.',
94
+ '<strong>Tempo mutacji:</strong> Jak często powstają nowe warianty.',
95
+ '<strong>Liczba alleli:</strong> Początkowa różnorodność w systemie.',
96
+ '<strong>Różnorodność genetyczna:</strong> Dlaczego zmienność jest surowcem ewolucji.',
97
+ ],
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html:
102
+ 'Praktyczne narzędzie do zrozumienia doboru, dryfu i mutacji w systemach biologicznych.',
103
+ },
104
+ {
105
+ type: 'title',
106
+ text: 'Szybkie przykłady do wypróbowania',
107
+ level: 3,
108
+ },
109
+ {
110
+ type: 'table',
111
+ headers: ['Cel', 'Zmiana', 'Oczekiwany rezultat'],
112
+ rows: [
113
+ [
114
+ 'Pokaż wygraną doboru',
115
+ 'Zwiększ presję selekcyjną i zmniejsz dryf',
116
+ 'Jeden allel stopniowo dominuje',
117
+ ],
118
+ [
119
+ 'Pokaż dominację przypadku',
120
+ 'Zmniejsz populację i zwiększ dryf',
121
+ 'Losowe wahania częstości alleli',
122
+ ],
123
+ [
124
+ 'Pokaż mutacje',
125
+ 'Zwiększ tempo mutacji',
126
+ 'Regularnie pojawiają się nowe allele',
127
+ ],
128
+ ],
129
+ },
130
+ {
131
+ type: 'paragraph',
132
+ html:
133
+ 'Połączenie wizualizacji i wskaźników w czasie rzeczywistym ułatwia zrozumienie procesów ewolucyjnych.',
134
+ },
39
135
  ],
40
136
  faq,
41
137
  bibliography,
42
- howTo: [],
138
+ howTo,
43
139
  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: [] },
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
+ },
47
167
  ],
48
168
  };
@@ -9,34 +9,52 @@ const description =
9
9
  const howTo = [
10
10
  {
11
11
  name: 'Defina a população',
12
- text: 'Escolha uma população pequena ou grande para observar como o tamanho da amostra influencia a estabilidade evolutiva.'
12
+ text: 'Escolha uma população pequena ou grande para observar como o tamanho da amostra influencia a estabilidade evolutiva.',
13
13
  },
14
14
  {
15
15
  name: 'Ajuste seleção e deriva',
16
- text: 'Ajuste a pressão seletiva ou a intensidade da deriva para observar trajetórias evolutivas distintas.'
16
+ text: 'Ajuste a pressão seletiva ou a intensidade da deriva para observar trajetórias evolutivas distintas.',
17
17
  },
18
18
  {
19
19
  name: 'Acompanhe as gerações',
20
- text: 'Execute a simulação e compare o traço dominante, a fitness e a diversidade ao longo do tempo.'
20
+ text: 'Execute a simulação e compare o traço dominante, a fitness e a diversidade ao longo do tempo.',
21
21
  },
22
22
  {
23
23
  name: 'Interprete os resultados',
24
- text: 'Use as métricas para entender quando a adaptação vence e quando o acaso domina.'
24
+ text: 'Use as métricas para entender quando a adaptação vence e quando o acaso domina.',
25
25
  },
26
26
  ];
27
27
 
28
28
  const faq = [
29
29
  {
30
30
  question: 'Qual é a diferença entre seleção natural e deriva genética?',
31
- answer: 'A seleção natural não é aleatória: características vantajosas aumentam a fitness e tornam-se mais comuns. A deriva genética é uma mudança aleatória nas frequências alélicas, ocorrendo puramente por acaso, sendo muito mais forte em populações reduzidas.'
31
+ answer:
32
+ 'A seleção natural não é aleatória: características vantajosas aumentam a fitness e tornam-se mais comuns. A deriva genética é uma mudança aleatória nas frequências alélicas, sendo muito mais forte em populações reduzidas.',
32
33
  },
33
34
  {
34
35
  question: 'Por que populações pequenas mudam mais rapidamente?',
35
- answer: 'Em populações pequenas, o erro de amostragem é maior, o que significa que o acaso tem um peso muito superior na composição da próxima geração.'
36
+ answer:
37
+ 'Em populações pequenas, o erro de amostragem é maior, o que significa que o acaso tem um peso muito superior na composição da próxima geração.',
36
38
  },
37
39
  {
38
40
  question: 'A deriva pode superar a seleção?',
39
- answer: 'Sim. Um alelo vantajoso pode ser eliminado por puro acaso se a deriva genética for forte o suficiente para superar o benefício seletivo.'
41
+ answer:
42
+ 'Sim. Um alelo vantajoso pode ser eliminado por puro acaso se a deriva genética for forte o suficiente para superar o benefício seletivo.',
43
+ },
44
+ {
45
+ question: 'O que significa fitness neste simulador?',
46
+ answer:
47
+ 'Fitness é uma pontuação simplificada que indica o quão bem a população está adaptada ao ambiente escolhido.',
48
+ },
49
+ {
50
+ question: 'Por que o tamanho da população é importante?',
51
+ answer:
52
+ 'Determina o quanto as flutuações aleatórias afetam as frequências alélicas.',
53
+ },
54
+ {
55
+ question: 'Quando devo usar este simulador?',
56
+ answer:
57
+ 'Quando quiser compreender a intuição por trás da evolução, especialmente a diferença entre seleção e deriva.',
40
58
  },
41
59
  ];
42
60
 
@@ -66,12 +84,89 @@ export const content: NaturalSelectionLocaleContent = {
66
84
  seo: [
67
85
  {
68
86
  type: 'title',
69
- text: 'Seleção natural vs deriva genética: entenda a evolução com uma população viva',
70
- level: 2
87
+ text: 'Seleção natural vs deriva genética: entender a evolução com uma população viva',
88
+ level: 2,
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html:
93
+ 'Se você quer entender a diferença entre seleção natural e deriva genética, este simulador oferece a camada visual necessária. Em vez de ler definições estáticas, você observa uma população a evoluir em tempo real.',
94
+ },
95
+ {
96
+ type: 'title',
97
+ text: 'O que significam os controlos e por que são importantes',
98
+ level: 3,
99
+ },
100
+ {
101
+ type: 'paragraph',
102
+ html:
103
+ 'A seleção natural aumenta a frequência de traços vantajosos. A deriva genética altera as frequências de forma puramente estocástica.',
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html:
108
+ 'Ambas as forças atuam simultaneamente: em populações grandes a seleção domina, enquanto em populações pequenas o acaso pode eliminar traços úteis.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: 'Como ler os resultados da simulação',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'paragraph',
117
+ html:
118
+ 'As métricas em tempo real mostram o traço dominante, a diversidade genética, a fitness final e a estabilidade da população.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Por que o tamanho da população altera a história',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>Pressão seletiva:</strong> O quanto o ambiente favorece um traço.',
129
+ '<strong>Intensidade da deriva:</strong> O ruído de amostragem aleatória.',
130
+ '<strong>Taxa de mutação:</strong> A frequência de novas variações.',
131
+ '<strong>Número de alelos:</strong> A diversidade inicial no sistema.',
132
+ '<strong>Diversidade genética:</strong> A matéria-prima da evolução.',
133
+ ],
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html:
138
+ 'Uma ferramenta prática para compreender a seleção, deriva e mutação em sistemas biológicos.',
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Exemplos rápidos para experimentar',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'table',
147
+ headers: ['Objetivo', 'Alteração', 'Resultado esperado'],
148
+ rows: [
149
+ [
150
+ 'Mostrar seleção',
151
+ 'Aumentar pressão seletiva e reduzir deriva',
152
+ 'Um alelo domina gradualmente',
153
+ ],
154
+ [
155
+ 'Mostrar deriva',
156
+ 'Reduzir população e aumentar deriva',
157
+ 'Flutuações aleatórias nas frequências',
158
+ ],
159
+ [
160
+ 'Mostrar mutação',
161
+ 'Aumentar taxa de mutação',
162
+ 'Novos alelos surgem regularmente',
163
+ ],
164
+ ],
71
165
  },
72
166
  {
73
167
  type: 'paragraph',
74
- html: 'Este simulador oferece uma visualização clara da diferença entre a seleção adaptativa e o efeito estocástico da deriva genética, tornando conceitos complexos de biologia evolutiva acessíveis e práticos.'
168
+ html:
169
+ 'A combinação de visuais em tempo real e métricas facilita a compreensão dos processos evolutivos.',
75
170
  },
76
171
  ],
77
172
  faq,
@@ -84,7 +179,7 @@ export const content: NaturalSelectionLocaleContent = {
84
179
  name: title,
85
180
  description,
86
181
  applicationCategory: 'EducationalApplication',
87
- operatingSystem: 'Any'
182
+ operatingSystem: 'Any',
88
183
  },
89
184
  {
90
185
  '@context': 'https://schema.org',
@@ -92,8 +187,8 @@ export const content: NaturalSelectionLocaleContent = {
92
187
  mainEntity: faq.map((item) => ({
93
188
  '@type': 'Question',
94
189
  name: item.question,
95
- acceptedAnswer: { '@type': 'Answer', text: item.answer }
96
- }))
190
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
191
+ })),
97
192
  },
98
193
  {
99
194
  '@context': 'https://schema.org',
@@ -102,8 +197,8 @@ export const content: NaturalSelectionLocaleContent = {
102
197
  step: howTo.map((step) => ({
103
198
  '@type': 'HowToStep',
104
199
  name: step.name,
105
- text: step.text
106
- }))
200
+ text: step.text,
201
+ })),
107
202
  },
108
203
  ],
109
204
  };
@@ -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
  };