@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
@@ -68,29 +68,29 @@ export const content: ToolLocaleContent = {
68
68
  seo: [
69
69
  {
70
70
  type: 'title',
71
- text: 'Simulatore dell\'Insieme di Mandelbrot per Frattali, Tempo di Fuga e Autosimilarità',
71
+ text: 'Calcolatore dell\'Insieme di Mandelbrot per Frattali, Tempo di Fuga e Autosimilarità',
72
72
  level: 2,
73
73
  },
74
74
  {
75
75
  type: 'paragraph',
76
- html: 'Questo simulatore frattale di Mandelbrot renderizza il classico insieme del piano complesso definito dall\'iterazione <strong>z(n+1) = z(n)^2 + c</strong>. È progettato per l\'esplorazione piuttosto che per la visione passiva: ogni clic ri-centra il piano, ogni ingrandimento espone un intorno matematico più piccolo, e il cursore di iterazione permette di decidere quanto a fondo il simulatore deve testare il bordo prima di colorare un punto come stabile o in fuga.',
76
+ html: 'Questo calcolatore di frattali di Mandelbrot genera il classico insieme del piano complesso definito dall\'iterazione <strong>z(n+1) = z(n)^2 + c</strong>. È progettato per l\'esplorazione: ogni clic ricalibra il centro, ogni zoom rivela un intorno matematico più piccolo.',
77
77
  },
78
78
  {
79
79
  type: 'title',
80
- text: 'Come leggere l\'immagine di Mandelbrot',
80
+ text: 'Come interpretare l\'immagine di Mandelbrot',
81
81
  level: 3,
82
82
  },
83
83
  {
84
84
  type: 'paragraph',
85
- html: 'La forma centrale scura segna i punti le cui orbite rimangono limitate entro il budget di iterazione corrente. L\'esterno colorato è una mappa del tempo di fuga. Un punto colorato vicino all\'insieme può sopravvivere centinaia di iterazioni prima che la sua magnitudine superi il raggio di fuga, mentre un punto lontano fugge quasi immediatamente. La geometria scientificamente più interessante non si trova solitamente all\'interno della forma piena, ma lungo il bordo dove i comportamenti limitati e illimitati si intrecciano.',
85
+ html: 'La forma centrale scura identifica i punti le cui orbite rimangono limitate entro il budget di iterazioni. L\'esterno colorato è una mappa del tempo di fuga.',
86
86
  },
87
87
  {
88
88
  type: 'table',
89
89
  headers: ['Controllo', 'Cosa modifica', 'Quando aumentarlo'],
90
90
  rows: [
91
- ['<strong>Profondità di iterazione</strong>', 'Quanti passi di ricorrenza vengono testati per ogni pixel.', 'Usa valori più alti dopo aver ingrandito filamenti sottili o copie in miniatura.'],
92
- ['<strong>Contrasto di fuga</strong>', 'Quanto fortemente i valori di fuga uniformi vengono separati in bande visibili.', 'Alzalo quando l\'immagine appare piatta; abbassalo quando i colori sono troppo marcati.'],
93
- ['<strong>Tavolozza</strong>', 'La mappatura dei colori applicata ai punti esterni.', 'Cambia tavolozza per rivelare strutture che potrebbero essere nascoste da un campo colore.'],
91
+ ['<strong>Profondità di iterazione</strong>', 'Quanti passaggi di ricorsione vengono testati per ogni pixel.', 'Aumentare dopo aver ingrandito filamenti sottili o coppie in miniatura.'],
92
+ ['<strong>Contrasto di fuga</strong>', 'Quanto nettamente i valori di fuga sfumati vengono suddivisi in bande.', 'Aumentare se l\'immagine appare piatta.'],
93
+ ['<strong>Tavolozza</strong>', 'La mappatura dei colori applicata ai punti esterni.', 'Cambiare tavolozza per evidenziare dettagli nascosti.'],
94
94
  ],
95
95
  },
96
96
  {
@@ -100,7 +100,25 @@ export const content: ToolLocaleContent = {
100
100
  },
101
101
  {
102
102
  type: 'paragraph',
103
- html: 'Una delle ragioni per cui l\'insieme di Mandelbrot è così famoso è la sua quasi-autosimilarità. Mentre si ingrandiscono antenne, spirali e valli, si incontrano ripetutamente piccole isole simili a Mandelbrot spesso chiamate <em>minibrot</em>. Queste copie non sono meramente decorative. La loro disposizione riflette la dinamica delle mappe quadratiche, inclusi bulbi periodici, pattern di biforcazione e regioni dove le orbite rimangono intrappolate per lunghi periodi prima di fuggire.',
103
+ html: 'Una delle caratteristiche più affascinanti dell\'insieme di Mandelbrot è la quasi-autosimilarità. Ingrandendo le strutture a spirale si incontrano continuamente repliche in miniatura dell\'insieme principale, chiamate minibrot.',
104
+ },
105
+ {
106
+ type: 'title',
107
+ text: 'Perché le iterazioni elevate contano ad alti ingrandimenti',
108
+ level: 3,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Ad alti livelli di ingrandimento, molti punti di confine impiegano centinaia di iterazioni per rivelare se fuggono o meno. Un limite di iterazioni troppo basso sfoca la geometria.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Significato matematico delle coordinate complesse',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'La lettura delle coordinate mostra il centro della vista come un numero complesso c = a + bi. L\'asse orizzontale rappresenta la parte reale e quello verticale la parte immaginaria.',
104
122
  },
105
123
  ],
106
124
  faq,
@@ -68,29 +68,29 @@ export const content: ToolLocaleContent = {
68
68
  seo: [
69
69
  {
70
70
  type: 'title',
71
- text: 'Kalkulator zbioru Mandelbrota: Fraktale, czas ucieczki i samopodobieństwo',
71
+ text: 'Kalkulator Zbioru Mandelbrota dla Fraktali, Czasu Ucieczki i Samopodobieństwa',
72
72
  level: 2,
73
73
  },
74
74
  {
75
75
  type: 'paragraph',
76
- html: 'Ten kalkulator fraktala Mandelbrota renderuje klasyczny zbiór na płaszczyźnie zespolonej, zdefiniowany przez iterację <strong>z(n+1) = z(n)^2 + c</strong>. Jest zaprojektowany do eksploracji, a nie biernego oglądania: każde kliknięcie wycentrowuje płaszczyznę, każde zbliżenie odsłania mniejsze matematyczne sąsiedztwo, a suwak iteracji pozwala zdecydować, jak głęboko kalkulator powinien testować granice przed pokolorowaniem punktu jako stabilnego lub uciekającego.',
76
+ html: 'Ten kalkulator fraktala Mandelbrota generuje klasyczny zbiór na płaszczyźnie zespolonej zdefiniowany iteracją <strong>z(n+1) = z(n)^2 + c</strong>. Jest zaprojektowany do eksploracji.',
77
77
  },
78
78
  {
79
79
  type: 'title',
80
- text: 'Jak czytać obraz Mandelbrota',
80
+ text: 'Jak interpretować obraz Mandelbrota',
81
81
  level: 3,
82
82
  },
83
83
  {
84
84
  type: 'paragraph',
85
- html: 'Ciemny centralny kształt oznacza punkty, których orbity pozostają ograniczone w ramach obecnego budżetu iteracji. Kolorowe zewnętrzne to mapa czasu ucieczki. Punkt pokolorowany blisko zbioru może przetrwać setki iteracji, zanim jego wielkość przekroczy promień ucieczki, podczas gdy punkt daleko ucieka prawie natychmiast. Najbardziej interesująca naukowo geometria zwykle nie znajduje się wewnątrz wypełnionego kształtu, ale wzdłuż granicy, gdzie ograniczone i nieograniczone zachowanie się przeplata.',
85
+ html: 'Ciemny centralny kształt oznacza punkty, których orbity pozostają ograniczone. Kolorowy obszar zewnętrzny to mapa czasu ucieczki.',
86
86
  },
87
87
  {
88
88
  type: 'table',
89
- headers: ['Sterowanie', 'Co zmienia', 'Kiedy zwiększyć'],
89
+ headers: ['Kontrola', 'Co zmienia', 'Kiedy zwiększać'],
90
90
  rows: [
91
- ['<strong>Głębokość iteracji</strong>', 'Ile kroków rekurencji jest testowanych dla każdego piksela.', 'Używaj wyższych wartości po zbliżeniu do cienkich filamentów lub miniaturowych kopii.'],
92
- ['<strong>Kontrast ucieczki</strong>', 'Jak silnie gładkie wartości ucieczki rozdzielane na widoczne pasma.', 'Podnieś go, gdy obraz wygląda płasko; obniż, gdy kolory są zbyt ostre.'],
93
- ['<strong>Paleta</strong>', 'Mapowanie kolorów zastosowane do punktów zewnętrznych.', 'Zmieniaj palety, aby odsłonić struktury, które mogą być ukryte przez jedno pole koloru.'],
91
+ ['<strong>Głębokość iteracji</strong>', 'Ile kroków rekurstwnych testuje się dla każdego piksela.', 'Zwiększ po przybliżeniu wąskich włókien.'],
92
+ ['<strong>Kontrast ucieczki</strong>', 'Jak mocno gładkie wartości ucieczki dzielą się na widoczne pasma.', 'Zwiększ, jeśli obraz jest płaski.'],
93
+ ['<strong>Paleta</strong>', 'Mapowanie kolorów dla punktów zewnętrznych.', 'Zmień paletę, aby odsłonić ukryte struktury.'],
94
94
  ],
95
95
  },
96
96
  {
@@ -100,7 +100,25 @@ export const content: ToolLocaleContent = {
100
100
  },
101
101
  {
102
102
  type: 'paragraph',
103
- html: 'Jednym z powodów, dla których zbiór Mandelbrota jest tak słynny, jest jego quasi-samopodobieństwo. Gdy zbliżasz się do anten, spiral i dolin, wielokrotnie napotykasz małe, przypominające Mandelbrota wyspy, często nazywane minibrotami. Te kopie nie są jedynie dekoracyjne. Ich ułożenie odzwierciedla dynamikę odwzorowań kwadratowych, w tym okresowe bulwy, wzory bifurkacji i obszary, w których orbity pozostają uwięzione przez długi czas przed ucieczką.',
103
+ html: 'Jednym z powodów sławy zbioru Mandelbrota jest jego kwazi-samopodobieństwo. Przybliżając spirale, wielokrotnie napotyka się małe kopie całego zbioru, zwane minibrotami.',
104
+ },
105
+ {
106
+ type: 'title',
107
+ text: 'Dlaczego wysoka liczba iteracji ma znaczenie przy dużym powiększeniu',
108
+ level: 3,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Przy dużym powiększeniu punkty brzegowe wymagają znacznie więcej kroków, aby sprawdzić, czy uciekają. Za mała liczba iteracji zamazuje detale.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Znaczenie matematyczne współrzędnych zespolonych',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Odczyt współrzędnych pokazuje środek widoku jako liczbę zespoloną c = a + bi. Oś pozioma to część rzeczywista, a pionowa to część urojona.',
104
122
  },
105
123
  ],
106
124
  faq,
@@ -84,23 +84,41 @@ export const content: ToolLocaleContent = {
84
84
  type: 'paragraph',
85
85
  html: 'Тёмная центральная форма отмечает точки, чьи орбиты остаются ограниченными в рамках текущего бюджета итераций. Цветная внешняя часть представляет собой карту времени побега. Точка, раскрашенная близко к множеству, может выдержать сотни итераций, прежде чем её величина превысит радиус побега, в то время как далёкая точка убегает почти мгновенно. Наиболее научно интересная геометрия обычно находится не внутри заполненной формы, а вдоль границы, где ограниченное и неограниченное поведение переплетаются.',
86
86
  },
87
+ {
88
+ type: 'table',
89
+ headers: ['Управление', 'Что меняет', 'Когда увеличивать'],
90
+ rows: [
91
+ ['<strong>Глубина итераций</strong>', 'Количество шагов рекурсии для каждого пикселя.', 'Увеличивайте при сильном приближении тонких структур.'],
92
+ ['<strong>Контраст убегания</strong>', 'Насколько резко разделяются цветные полосы.', 'Увеличьте, если изображение выглядит плоским.'],
93
+ ['<strong>Палитра</strong>', 'Цветовое отображение внешних точек.', 'Меняйте палитру для выявления скрытых деталей.'],
94
+ ],
95
+ },
96
+ {
97
+ type: 'title',
98
+ text: 'Самоподобие и миниброты',
99
+ level: 3,
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'При увеличении спиралей и фрагментов границы вы снова и снова будете находить уменьшенные копии самого множества: миниброты.',
104
+ },
87
105
  {
88
106
  type: 'title',
89
- text: 'Самоподобие и минибroты',
107
+ text: 'Почему важна высокая глубина итераций при глубоком увеличении',
90
108
  level: 3,
91
109
  },
92
110
  {
93
111
  type: 'paragraph',
94
- html: 'Одна из причин, по которой множество Мандельброта так известно - его квази-самоподобие. Когда вы приближаетесь к антеннам, спиралям и долинам, вы неоднократно сталкиваетесь с маленькими островками, напоминающими Мандельброта, часто называемыми минибrotами. Эти копии не просто декоративны. Их расположение отражает динамику квадратичных отображений, включая периодические выпуклости, бифуркационные паттерны и области, где орбиты остаются в ловушке в течение длительных периодов перед побегом.',
112
+ html: 'При сильном приближении граничным точкам требуется значительно больше шагов для определения убегания. Низкое число итераций делает детали размытыми.',
95
113
  },
96
114
  {
97
115
  type: 'title',
98
- text: 'Почему более высокие итерации важны при глубоком увеличении',
116
+ text: 'Математический смысл комплексных координат',
99
117
  level: 3,
100
118
  },
101
119
  {
102
120
  type: 'paragraph',
103
- html: 'На виде полного множества умеренный лимит итераций даёт узнаваемое изображение. Однако при более глубоком приближении многие граничные точки затрачивают гораздо больше времени, чтобы обнаружить, убегают ли они. Если лимит итераций слишком низок, тонкие структуры могут выглядеть ложно твёрдыми или мутными. Повышение количества итераций улучшает классификацию границы и позволяет калькулятору более уверенно разрешать узкие усики, спиральные рукава и спутниковые выпуклости.',
121
+ html: 'Координаты показывают текущий центр области в виде комплексного числа c = a + bi, где горизонтальная ось: действительная часть, а вертикальная: мнимая.',
104
122
  },
105
123
  ],
106
124
  faq,
@@ -68,31 +68,58 @@ export const content: ToolLocaleContent = {
68
68
  seo: [
69
69
  {
70
70
  type: 'title',
71
- text: 'Mandelbrotmängdskalkylator för fraktaler, flykttid och självlikhet',
71
+ text: 'Kalkylator för Mandelbrotmängden, flykttid och självlikhet',
72
72
  level: 2,
73
73
  },
74
74
  {
75
75
  type: 'paragraph',
76
- html: 'Denna Mandelbrot-fraktalkalkylator renderar den klassiska mängden i det komplexa planet, definierad av iterationen <strong>z(n+1) = z(n)^2 + c</strong>. Den är designad för utforskning: varje klick återcentrerar planet, varje zoom exponerar en ny matematisk omgivning, och itereringsreglaget låter dig bestämma hur djupt kalkylatorn ska testa gränsen.',
76
+ html: 'Denna Mandelbrotfraktalkalkylator återger den klassiska mängden i det komplexta talplanet z(n+1) = z(n)^2 + c. Den är utformad för utforskning.',
77
77
  },
78
78
  {
79
79
  type: 'title',
80
- text: 'Hur man läser Mandelbrot-bilden',
80
+ text: 'Hur du läser Mandelbrotbilden',
81
81
  level: 3,
82
82
  },
83
83
  {
84
84
  type: 'paragraph',
85
- html: 'Den mörka centrala formen markerar punkter vars banor förblir begränsade inom den aktuella itereringsbudgeten. Det färglagda yttre är en flykttidskarta. En punkt färglagd nära mängden kan överleva hundratals iterationer innan dess magnitud överstiger flyktradien, medan en punkt långt borta flyr nästan omedelbart. Den mest intressanta geometrin finns oftast längs gränsen där begränsat och obegränsat beteende sammanflätas.',
85
+ html: 'Den mörka centrala formen markerar punkter vars omloppsbanor förblir begränsade. Den färgade utsidan är en flykttidskarta.',
86
86
  },
87
87
  {
88
88
  type: 'table',
89
- headers: ['Kontroll', 'Vad den ändrar', 'När den ska ökas'],
89
+ headers: ['Reglage', 'Vad det ändrar', 'När du ska öka'],
90
90
  rows: [
91
- ['<strong>Itereringsdjup</strong>', 'Hur många rekursionssteg som testas för varje pixel.', 'Använd högre värden efter inzoomning tunna filament eller miniatyrkopior.'],
92
- ['<strong>Flyktkontrast</strong>', 'Hur starkt jämna flyktvärden separeras i synliga band.', 'Höj den när bilden ser plan ut; sänk den när färgerna är för hårda.'],
93
- ['<strong>Palett</strong>', 'Färgmappningen som tillämpas på yttre punkter.', 'Växla paletter för att avslöja strukturer som kan vara dolda av ett enda färgfält.'],
91
+ ['<strong>Iterationsdjup</strong>', 'Hur många rekursionssteg som testas för varje pixel.', 'Använd högre värden efter zoomning i tunna strukturer.'],
92
+ ['<strong>Flyktkontrast</strong>', 'Hur skarpt jämna flyktvärden delas upp i synliga band.', 'Öka om bilden ser platt ut.'],
93
+ ['<strong>Palett</strong>', 'Färgkartan som appliceras på yttre punkter.', 'Byt palett för att synliggöra dolda strukturer.'],
94
94
  ],
95
95
  },
96
+ {
97
+ type: 'title',
98
+ text: 'Självlikhet och minibrots',
99
+ level: 3,
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'En anledning till Mandelbrotmängdens kändisskap är dess quasi-självlikhet. När du zoomar in i spiraler möter du återkommande små kopior av mängden, så kallade minibrots.',
104
+ },
105
+ {
106
+ type: 'title',
107
+ text: 'Varför höga iterationer väger tungt vid djupzoom',
108
+ level: 3,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Vid hög förstoring kräver randpunkter betydligt fler steg för att avgöra om de flyr. För få iterationer gör att fina detaljer ser suddiga ut.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Matematisk betydelse för komplexa koordinater',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Koordinatvisningen visar mitten av vykortet som ett komplext tal c = a + bi, där den horisontella axeln är realdelen och den vertikala är imaginärdelen.',
122
+ },
96
123
  ],
97
124
  faq,
98
125
  bibliography,
@@ -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
  };