@jjlmoya/utils-science 1.50.0 → 1.52.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 (338) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/es.ts +3 -4
  3. package/src/category/i18n/fr.ts +2 -2
  4. package/src/category/i18n/it.ts +2 -2
  5. package/src/category/i18n/pt.ts +2 -2
  6. package/src/category/index.ts +25 -25
  7. package/src/components/PreviewNavSidebar.astro +1 -1
  8. package/src/components/PreviewToolbar.astro +1 -1
  9. package/src/data.ts +1 -1
  10. package/src/env.d.ts +1 -1
  11. package/src/layouts/PreviewLayout.astro +1 -1
  12. package/src/pages/index.astro +1 -1
  13. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  14. package/src/tests/category_seo_quality.test.ts +76 -0
  15. package/src/tests/faq_count.test.ts +19 -19
  16. package/src/tests/i18n_coverage.test.ts +36 -36
  17. package/src/tests/mocks/astro_mock.js +1 -1
  18. package/src/tests/no_h1_in_components.test.ts +1 -1
  19. package/src/tests/script_density.test.ts +94 -94
  20. package/src/tests/seo_length.test.ts +24 -24
  21. package/src/tests/seo_parity.test.ts +5 -5
  22. package/src/tests/seo_translation_completeness.test.ts +76 -0
  23. package/src/tests/seo_wellformed_export.test.ts +65 -0
  24. package/src/tests/spanish_leakage.test.ts +175 -153
  25. package/src/tool/asteroid-impact/component.astro +251 -251
  26. package/src/tool/asteroid-impact/helpers.ts +17 -17
  27. package/src/tool/asteroid-impact/i18n/de.ts +2 -2
  28. package/src/tool/asteroid-impact/i18n/en.ts +2 -2
  29. package/src/tool/asteroid-impact/i18n/es.ts +2 -2
  30. package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
  31. package/src/tool/asteroid-impact/i18n/id.ts +2 -2
  32. package/src/tool/asteroid-impact/i18n/it.ts +2 -2
  33. package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
  34. package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
  35. package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
  36. package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
  37. package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
  38. package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
  39. package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
  40. package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
  41. package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
  42. package/src/tool/asteroid-impact/script.ts +262 -262
  43. package/src/tool/asteroid-impact/seo.astro +15 -15
  44. package/src/tool/asteroid-impact/ui.ts +69 -69
  45. package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
  46. package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
  47. package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
  48. package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
  49. package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
  50. package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
  51. package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
  52. package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
  53. package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
  54. package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
  55. package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
  56. package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
  57. package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
  58. package/src/tool/cellular-renewal/component.astro +126 -126
  59. package/src/tool/cellular-renewal/i18n/de.ts +1 -1
  60. package/src/tool/cellular-renewal/i18n/en.ts +1 -1
  61. package/src/tool/cellular-renewal/i18n/es.ts +1 -1
  62. package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
  63. package/src/tool/cellular-renewal/i18n/id.ts +1 -1
  64. package/src/tool/cellular-renewal/i18n/it.ts +1 -1
  65. package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
  66. package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
  67. package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
  68. package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
  69. package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
  70. package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
  71. package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
  72. package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
  73. package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
  74. package/src/tool/cellular-renewal/seo.astro +15 -15
  75. package/src/tool/colony-counter/i18n/de.ts +1 -1
  76. package/src/tool/colony-counter/i18n/en.ts +1 -1
  77. package/src/tool/colony-counter/i18n/es.ts +1 -1
  78. package/src/tool/colony-counter/i18n/fr.ts +1 -1
  79. package/src/tool/colony-counter/i18n/id.ts +1 -1
  80. package/src/tool/colony-counter/i18n/it.ts +1 -1
  81. package/src/tool/colony-counter/i18n/ja.ts +1 -1
  82. package/src/tool/colony-counter/i18n/ko.ts +1 -1
  83. package/src/tool/colony-counter/i18n/nl.ts +1 -1
  84. package/src/tool/colony-counter/i18n/pl.ts +1 -1
  85. package/src/tool/colony-counter/i18n/pt.ts +1 -1
  86. package/src/tool/colony-counter/i18n/ru.ts +1 -1
  87. package/src/tool/colony-counter/i18n/sv.ts +1 -1
  88. package/src/tool/colony-counter/i18n/tr.ts +1 -1
  89. package/src/tool/colony-counter/i18n/zh.ts +1 -1
  90. package/src/tool/colony-counter/seo.astro +15 -15
  91. package/src/tool/conway-life-rule-lab/component.astro +1 -1
  92. package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
  93. package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
  94. package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
  95. package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
  96. package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
  97. package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
  98. package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
  99. package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
  100. package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
  101. package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
  102. package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
  103. package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
  104. package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
  105. package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
  106. package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
  107. package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
  108. package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
  109. package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
  110. package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
  111. package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
  112. package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
  113. package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
  114. package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
  115. package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
  116. package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
  117. package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
  118. package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
  119. package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
  120. package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
  121. package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
  122. package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
  123. package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
  124. package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
  125. package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
  126. package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
  127. package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
  128. package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
  129. package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
  130. package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
  131. package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
  132. package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
  133. package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
  134. package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
  135. package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
  136. package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
  137. package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
  138. package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
  139. package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
  140. package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
  141. package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
  142. package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
  143. package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
  144. package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
  145. package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
  146. package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
  147. package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
  148. package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
  149. package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
  150. package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
  151. package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
  152. package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
  153. package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
  154. package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
  155. package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
  156. package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
  157. package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
  158. package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
  159. package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
  160. package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
  161. package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
  162. package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
  163. package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
  164. package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
  165. package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
  166. package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
  167. package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
  168. package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
  169. package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
  170. package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
  171. package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
  172. package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
  173. package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
  174. package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
  175. package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
  176. package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
  177. package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
  178. package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
  179. package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
  180. package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
  181. package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
  182. package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
  183. package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
  184. package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
  185. package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
  186. package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
  187. package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
  188. package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
  189. package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
  190. package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
  191. package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
  192. package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
  193. package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
  194. package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
  195. package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
  196. package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
  197. package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
  198. package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
  199. package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
  200. package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
  201. package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
  202. package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
  203. package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
  204. package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
  205. package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
  206. package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
  207. package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
  208. package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
  209. package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
  210. package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
  211. package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
  212. package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
  213. package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
  214. package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
  215. package/src/tool/microwave-detector/component.astro +238 -238
  216. package/src/tool/microwave-detector/i18n/de.ts +1 -1
  217. package/src/tool/microwave-detector/i18n/en.ts +1 -1
  218. package/src/tool/microwave-detector/i18n/es.ts +1 -1
  219. package/src/tool/microwave-detector/i18n/fr.ts +1 -1
  220. package/src/tool/microwave-detector/i18n/id.ts +1 -1
  221. package/src/tool/microwave-detector/i18n/it.ts +1 -1
  222. package/src/tool/microwave-detector/i18n/ja.ts +1 -1
  223. package/src/tool/microwave-detector/i18n/ko.ts +1 -1
  224. package/src/tool/microwave-detector/i18n/nl.ts +1 -1
  225. package/src/tool/microwave-detector/i18n/pl.ts +1 -1
  226. package/src/tool/microwave-detector/i18n/pt.ts +1 -1
  227. package/src/tool/microwave-detector/i18n/ru.ts +1 -1
  228. package/src/tool/microwave-detector/i18n/sv.ts +1 -1
  229. package/src/tool/microwave-detector/i18n/tr.ts +1 -1
  230. package/src/tool/microwave-detector/i18n/zh.ts +1 -1
  231. package/src/tool/microwave-detector/seo.astro +15 -15
  232. package/src/tool/natural-selection-drift/component.astro +135 -135
  233. package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
  234. package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
  235. package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
  236. package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
  237. package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
  238. package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
  239. package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
  240. package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
  241. package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
  242. package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
  243. package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
  244. package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
  245. package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
  246. package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
  247. package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
  248. package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
  249. package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
  250. package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
  251. package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
  252. package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
  253. package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
  254. package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
  255. package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
  256. package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
  257. package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
  258. package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
  259. package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
  260. package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
  261. package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
  262. package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
  263. package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
  264. package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
  265. package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
  266. package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
  267. package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
  268. package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
  269. package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
  270. package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
  271. package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
  272. package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
  273. package/src/tool/radioactive-decay/i18n/de.ts +168 -164
  274. package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
  275. package/src/tool/radioactive-decay/i18n/id.ts +169 -165
  276. package/src/tool/radioactive-decay/i18n/it.ts +76 -74
  277. package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
  278. package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
  279. package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
  280. package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
  281. package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
  282. package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
  283. package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
  284. package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
  285. package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
  286. package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
  287. package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
  288. package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
  289. package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
  290. package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
  291. package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
  292. package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
  293. package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
  294. package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
  295. package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
  296. package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
  297. package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
  298. package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
  299. package/src/tool/simulation-probability/component.astro +138 -138
  300. package/src/tool/simulation-probability/i18n/de.ts +1 -1
  301. package/src/tool/simulation-probability/i18n/en.ts +1 -1
  302. package/src/tool/simulation-probability/i18n/es.ts +1 -1
  303. package/src/tool/simulation-probability/i18n/fr.ts +1 -1
  304. package/src/tool/simulation-probability/i18n/id.ts +1 -1
  305. package/src/tool/simulation-probability/i18n/it.ts +1 -1
  306. package/src/tool/simulation-probability/i18n/ja.ts +1 -1
  307. package/src/tool/simulation-probability/i18n/ko.ts +1 -1
  308. package/src/tool/simulation-probability/i18n/nl.ts +1 -1
  309. package/src/tool/simulation-probability/i18n/pl.ts +1 -1
  310. package/src/tool/simulation-probability/i18n/pt.ts +1 -1
  311. package/src/tool/simulation-probability/i18n/ru.ts +1 -1
  312. package/src/tool/simulation-probability/i18n/sv.ts +1 -1
  313. package/src/tool/simulation-probability/i18n/tr.ts +1 -1
  314. package/src/tool/simulation-probability/i18n/zh.ts +1 -1
  315. package/src/tool/simulation-probability/seo.astro +15 -15
  316. package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
  317. package/src/tool/temperature-timeline/i18n/de.ts +2 -1
  318. package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
  319. package/src/tool/temperature-timeline/i18n/it.ts +142 -141
  320. package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
  321. package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
  322. package/src/tool/three-body-problem/app.ts +4 -4
  323. package/src/tool/three-body-problem/component.astro +6 -6
  324. package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
  325. package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
  326. package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
  327. package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
  328. package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
  329. package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
  330. package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
  331. package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
  332. package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
  333. package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
  334. package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
  335. package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
  336. package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
  337. package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
  338. package/src/types.ts +1 -1
@@ -1,159 +1,159 @@
1
- import { bibliography } from '../bibliography';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- const slug = 'mandelbrot-fraktal-rechner';
5
- const title = 'Mandelbrot Fraktal Rechner & Selbstähnlichkeits Explorer';
6
- const description = 'Erkunden Sie die Mandelbrot-Menge, zoomen Sie in selbstähnliche Fraktalgrenzen hinein und vergleichen Sie Iterationstiefe, Farbkontrast und Koordinaten der komplexen Ebene.';
7
-
8
- const howTo = [
9
- {
10
- name: 'Wählen Sie eine Region der Mandelbrot-Menge',
11
- text: 'Beginnen Sie mit der gesamten Menge oder springen Sie direkt zu einer detailreichen Region wie dem Seepferdchental oder einem spiralförmigen Minibrot.',
12
- },
13
- {
14
- name: 'Zoomen Sie durch Klicken auf das Bild',
15
- text: 'Klicken Sie auf einen beliebigen Punkt auf der Leinwand, um die komplexe Ebene neu zu zentrieren und den Fraktal um diesen Punkt zu vergrößern.',
16
- },
17
- {
18
- name: 'Passen Sie Iterationstiefe und Farbkontrast an',
19
- text: 'Erhöhen Sie das Iterationsbudget, um feinere Grenzstrukturen sichtbar zu machen, und passen Sie dann Kontrast und Farbpalette an, um die Fluchtzeitbänder besser lesbar zu machen.',
20
- },
21
- ];
22
-
23
- const faq = [
24
- {
25
- question: 'Was zeigt der Mandelbrot-Mengen-Rechner?',
26
- answer: 'Er zeigt, welche komplexen Zahlen c die Rekursion z(n+1) = z(n)^2 + c beschränkt halten, wenn man bei z = 0 beginnt. Punkte, die innerhalb des gewählten Iterationsbudgets nie entkommen, werden als Elemente der Menge eingefärbt, während äußere Punkte danach gefärbt werden, wie schnell ihre Umlaufbahn entkommt.',
27
- },
28
- {
29
- question: 'Warum enthält der Mandelbrot-Rand so viele Details?',
30
- answer: 'Der Rand trennt stabile und entkommende Umlaufbahnen. Schon winzige Koordinatenänderungen in der Nähe dieses Randes können das Langzeitverhalten vollständig verändern. Diese Empfindlichkeit erzeugt ineinander verschachtelte Knoten, Spiralen, Filamente und miniaturisierte Kopien, die auf vielen Vergrößerungsstufen erscheinen.',
31
- },
32
- {
33
- question: 'Ist die Mandelbrot-Menge wirklich selbstähnlich?',
34
- answer: 'Sie ist nicht perfekt selbstähnlich im gleichen strengen Sinne wie ein Sierpinski-Dreieck, aber sie ist reichhaltig quasi-selbstähnlich. Kleine Kopien der gesamten Menge erscheinen überall in der Ebene, oft verzerrt und durch aufwändige verzweigte Strukturen verbunden.',
35
- },
36
- {
37
- question: 'Was steuert die Iterationsanzahl?',
38
- answer: 'Die Iterationsanzahl bestimmt, wie lange der Rechner jeden Punkt testet, bevor er entscheidet, dass er wahrscheinlich zur Menge gehört. Höhere Werte legen tiefere Filamente und sauberere Minibrots frei, erfordern aber mehr Berechnung pro Pixel.',
39
- },
40
- {
41
- question: 'Warum ändern sich die Farben außerhalb des schwarzen Bereichs?',
42
- answer: 'Die Farben außen basieren auf der Fluchtzeit: Punkte, die schnell entkommen, erhalten andere Farben als Punkte, die viele Iterationen in der Nähe der Menge bleiben. Glättende Farbgebung reduziert harte Bänder und erleichtert die Untersuchung der Geometrie benachbarter Umlaufbahnen.',
43
- },
44
- ];
45
-
46
- export const content: ToolLocaleContent = {
47
- slug,
48
- title,
49
- description,
50
- ui: {
51
- title: 'Mandelbrot Fraktal Rechner',
52
- canvasLabel: 'Interaktive Mandelbrot-Mengen-Leinwand',
53
- presetsLabel: 'Mandelbrot-Region-Voreinstellungen',
54
- presetFull: 'Gesamte Menge',
55
- presetSeahorse: 'Seepferdchental',
56
- presetSpiral: 'Spiral-Minibrot',
57
- centerPoint: 'Zentrum',
58
- magnification: 'Vergrößerung',
59
- visibleWindow: 'Sichtbarer Ausschnitt',
60
- renderBudget: 'Iterationen',
61
- iterationsLabel: 'Iterationstiefe',
62
- contrastLabel: 'Fluchtkontrast',
63
- colorLabel: 'Farbfeld',
64
- paletteEmber: 'Glutbänder',
65
- paletteLagoon: 'Lagunen-Plasma',
66
- paletteInk: 'Tinten-Spektrum',
67
- },
68
- seo: [
69
- {
70
- type: 'title',
71
- text: 'Mandelbrot-Mengen-Rechner für Fraktale, Fluchtzeit und Selbstähnlichkeit',
72
- level: 2,
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Dieser Mandelbrot-Fraktal-Rechner rendert die klassische Menge der komplexen Ebene, definiert durch die Iteration <strong>z(n+1) = z(n)^2 + c</strong>. Er ist für die Erkundung konzipiert, nicht für die passive Betrachtung. Jeder Klick zentriert die Ebene neu, jeder Zoom legt eine kleinere mathematische Nachbarschaft frei, und der Iterationsschieberegler lässt Sie entscheiden, wie tief der Rechner die Grenze testen soll, bevor er einen Punkt als stabil oder entweichend färbt.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Wie man das Mandelbrot-Bild liest',
81
- level: 3,
82
- },
83
- {
84
- type: 'paragraph',
85
- html: 'Die dunkle zentrale Form markiert Punkte, deren Umlaufbahnen innerhalb des aktuellen Iterationsbudgets beschränkt bleiben. Die farbige Außenseite ist eine Fluchtzeitkarte. Ein Punkt, der nahe der Menge gefärbt ist, kann hunderte von Iterationen überstehen, bevor sein Betrag den Fluchtradius überschreitet, während ein weit entfernter Punkt fast sofort entkommt. Die wissenschaftlich interessanteste Geometrie befindet sich normalerweise nicht innerhalb der gefüllten Form, sondern entlang der Grenze, wo beschränktes und unbeschränktes Verhalten ineinandergreifen.',
86
- },
87
- {
88
- type: 'table',
89
- headers: ['Steuerung', 'Was sie ändert', 'Wann erhöhen'],
90
- rows: [
91
- ['<strong>Iterationstiefe</strong>', 'Wie viele Rekursionsschritte für jeden Pixel getestet werden.', 'Höhere Werte nach dem Zoomen in dünne Filamente oder miniaturisierte Kopien verwenden.'],
92
- ['<strong>Fluchtkontrast</strong>', 'Wie stark glatte Fluchtwerte in sichtbare Bänder getrennt werden.', 'Erhöhen, wenn das Bild flach aussieht; senken, wenn die Farben zu hart sind.'],
93
- ['<strong>Palette</strong>', 'Die Farbzuordnung, die auf äußere Punkte angewendet wird.', 'Paletten wechseln, um Strukturen sichtbar zu machen, die von einem Farbfeld verdeckt werden könnten.'],
94
- ],
95
- },
96
- {
97
- type: 'title',
98
- text: 'Selbstähnlichkeit und Minibrots',
99
- level: 3,
100
- },
101
- {
102
- type: 'paragraph',
103
- html: 'Ein Grund für die Berühmtheit der Mandelbrot-Menge ist ihre Quasi-Selbstähnlichkeit. Beim Hineinzoomen in Antennen und Spiralarme begegnet man immer wieder kleinen Kopien der Gesamtkontur, sogenannten Minibrots.',
104
- },
105
- {
106
- type: 'title',
107
- text: 'Warum hohe Iterationszahlen bei tiefem Zoom wichtig sind',
108
- level: 3,
109
- },
110
- {
111
- type: 'paragraph',
112
- html: 'Bei starker Vergrößerung benötigen Grenzpunkte deutlich mehr Rechenschritte, um festzustellen, ob ihre Bahn entweicht. Eine zu niedrige Iterationszahl lässt feine Strukturen verschwommen wirken.',
113
- },
114
- {
115
- type: 'title',
116
- text: 'Mathematische Bedeutung der komplexen Koordinaten',
117
- level: 3,
118
- },
119
- {
120
- type: 'paragraph',
121
- html: 'Die Koordinatenanzeige zeigt den aktuellen Mittelpunkt des Bildausschnitts als komplexe Zahl c = a + bi an. Die horizontale Achse ist der Realteil, die vertikale der Imaginärteil.',
122
- },
123
- ],
124
- faq,
125
- bibliography,
126
- howTo,
127
- schemas: [
128
- {
129
- '@context': 'https://schema.org',
130
- '@type': 'SoftwareApplication',
131
- name: title,
132
- description,
133
- applicationCategory: 'ScientificApplication',
134
- operatingSystem: 'Any',
135
- },
136
- {
137
- '@context': 'https://schema.org',
138
- '@type': 'FAQPage',
139
- mainEntity: faq.map((item) => ({
140
- '@type': 'Question',
141
- name: item.question,
142
- acceptedAnswer: {
143
- '@type': 'Answer',
144
- text: item.answer,
145
- },
146
- })),
147
- },
148
- {
149
- '@context': 'https://schema.org',
150
- '@type': 'HowTo',
151
- name: title,
152
- step: howTo.map((step) => ({
153
- '@type': 'HowToStep',
154
- name: step.name,
155
- text: step.text,
156
- })),
157
- },
158
- ],
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'mandelbrot-fraktal-rechner';
5
+ const title = 'Mandelbrot Fraktal Rechner & Selbstähnlichkeits Explorer';
6
+ const description = 'Erkunden Sie die Mandelbrot-Menge, zoomen Sie in selbstähnliche Fraktalgrenzen hinein und vergleichen Sie Iterationstiefe, Farbkontrast und Koordinaten der komplexen Ebene.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Wählen Sie eine Region der Mandelbrot-Menge',
11
+ text: 'Beginnen Sie mit der gesamten Menge oder springen Sie direkt zu einer detailreichen Region wie dem Seepferdchental oder einem spiralförmigen Minibrot.',
12
+ },
13
+ {
14
+ name: 'Zoomen Sie durch Klicken auf das Bild',
15
+ text: 'Klicken Sie auf einen beliebigen Punkt auf der Leinwand, um die komplexe Ebene neu zu zentrieren und den Fraktal um diesen Punkt zu vergrößern.',
16
+ },
17
+ {
18
+ name: 'Passen Sie Iterationstiefe und Farbkontrast an',
19
+ text: 'Erhöhen Sie das Iterationsbudget, um feinere Grenzstrukturen sichtbar zu machen, und passen Sie dann Kontrast und Farbpalette an, um die Fluchtzeitbänder besser lesbar zu machen.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'Was zeigt der Mandelbrot-Mengen-Rechner?',
26
+ answer: 'Er zeigt, welche komplexen Zahlen c die Rekursion z(n+1) = z(n)^2 + c beschränkt halten, wenn man bei z = 0 beginnt. Punkte, die innerhalb des gewählten Iterationsbudgets nie entkommen, werden als Elemente der Menge eingefärbt, während äußere Punkte danach gefärbt werden, wie schnell ihre Umlaufbahn entkommt.',
27
+ },
28
+ {
29
+ question: 'Warum enthält der Mandelbrot-Rand so viele Details?',
30
+ answer: 'Der Rand trennt stabile und entkommende Umlaufbahnen. Schon winzige Koordinatenänderungen in der Nähe dieses Randes können das Langzeitverhalten vollständig verändern. Diese Empfindlichkeit erzeugt ineinander verschachtelte Knoten, Spiralen, Filamente und miniaturisierte Kopien, die auf vielen Vergrößerungsstufen erscheinen.',
31
+ },
32
+ {
33
+ question: 'Ist die Mandelbrot-Menge wirklich selbstähnlich?',
34
+ answer: 'Sie ist nicht perfekt selbstähnlich im gleichen strengen Sinne wie ein Sierpinski-Dreieck, aber sie ist reichhaltig quasi-selbstähnlich. Kleine Kopien der gesamten Menge erscheinen überall in der Ebene, oft verzerrt und durch aufwändige verzweigte Strukturen verbunden.',
35
+ },
36
+ {
37
+ question: 'Was steuert die Iterationsanzahl?',
38
+ answer: 'Die Iterationsanzahl bestimmt, wie lange der Rechner jeden Punkt testet, bevor er entscheidet, dass er wahrscheinlich zur Menge gehört. Höhere Werte legen tiefere Filamente und sauberere Minibrots frei, erfordern aber mehr Berechnung pro Pixel.',
39
+ },
40
+ {
41
+ question: 'Warum ändern sich die Farben außerhalb des schwarzen Bereichs?',
42
+ answer: 'Die Farben außen basieren auf der Fluchtzeit: Punkte, die schnell entkommen, erhalten andere Farben als Punkte, die viele Iterationen in der Nähe der Menge bleiben. Glättende Farbgebung reduziert harte Bänder und erleichtert die Untersuchung der Geometrie benachbarter Umlaufbahnen.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ title: 'Mandelbrot Fraktal Rechner',
52
+ canvasLabel: 'Interaktive Mandelbrot-Mengen-Leinwand',
53
+ presetsLabel: 'Mandelbrot-Region-Voreinstellungen',
54
+ presetFull: 'Gesamte Menge',
55
+ presetSeahorse: 'Seepferdchental',
56
+ presetSpiral: 'Spiral-Minibrot',
57
+ centerPoint: 'Zentrum',
58
+ magnification: 'Vergrößerung',
59
+ visibleWindow: 'Sichtbarer Ausschnitt',
60
+ renderBudget: 'Iterationen',
61
+ iterationsLabel: 'Iterationstiefe',
62
+ contrastLabel: 'Fluchtkontrast',
63
+ colorLabel: 'Farbfeld',
64
+ paletteEmber: 'Glutbänder',
65
+ paletteLagoon: 'Lagunen-Plasma',
66
+ paletteInk: 'Tinten-Spektrum',
67
+ },
68
+ seo: [
69
+ {
70
+ type: 'title',
71
+ text: 'Mandelbrot-Mengen-Rechner für Fraktale, Fluchtzeit und Selbstähnlichkeit',
72
+ level: 2,
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Dieser Mandelbrot-Fraktal-Rechner rendert die klassische Menge der komplexen Ebene, definiert durch die Iteration <strong>z(n+1) = z(n)^2 + c</strong>. Er ist für die Erkundung konzipiert, nicht für die passive Betrachtung. Jeder Klick zentriert die Ebene neu, jeder Zoom legt eine kleinere mathematische Nachbarschaft frei, und der Iterationsschieberegler lässt Sie entscheiden, wie tief der Rechner die Grenze testen soll, bevor er einen Punkt als stabil oder entweichend färbt.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Wie man das Mandelbrot-Bild liest',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: 'Die dunkle zentrale Form markiert Punkte, deren Umlaufbahnen innerhalb des aktuellen Iterationsbudgets beschränkt bleiben. Die farbige Außenseite ist eine Fluchtzeitkarte. Ein Punkt, der nahe der Menge gefärbt ist, kann hunderte von Iterationen überstehen, bevor sein Betrag den Fluchtradius überschreitet, während ein weit entfernter Punkt fast sofort entkommt. Die wissenschaftlich interessanteste Geometrie befindet sich normalerweise nicht innerhalb der gefüllten Form, sondern entlang der Grenze, wo beschränktes und unbeschränktes Verhalten ineinandergreifen.',
86
+ },
87
+ {
88
+ type: 'table',
89
+ headers: ['Steuerung', 'Was sie ändert', 'Wann erhöhen'],
90
+ rows: [
91
+ ['<strong>Iterationstiefe</strong>', 'Wie viele Rekursionsschritte für jeden Pixel getestet werden.', 'Höhere Werte nach dem Zoomen in dünne Filamente oder miniaturisierte Kopien verwenden.'],
92
+ ['<strong>Fluchtkontrast</strong>', 'Wie stark glatte Fluchtwerte in sichtbare Bänder getrennt werden.', 'Erhöhen, wenn das Bild flach aussieht; senken, wenn die Farben zu hart sind.'],
93
+ ['<strong>Palette</strong>', 'Die Farbzuordnung, die auf äußere Punkte angewendet wird.', 'Paletten wechseln, um Strukturen sichtbar zu machen, die von einem Farbfeld verdeckt werden könnten.'],
94
+ ],
95
+ },
96
+ {
97
+ type: 'title',
98
+ text: 'Selbstähnlichkeit und Minibrots',
99
+ level: 3,
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'Ein Grund für die Berühmtheit der Mandelbrot-Menge ist ihre Quasi-Selbstähnlichkeit. Beim Hineinzoomen in Antennen und Spiralarme begegnet man immer wieder kleinen Kopien der Gesamtkontur, sogenannten Minibrots.',
104
+ },
105
+ {
106
+ type: 'title',
107
+ text: 'Warum hohe Iterationszahlen bei tiefem Zoom wichtig sind',
108
+ level: 3,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Bei starker Vergrößerung benötigen Grenzpunkte deutlich mehr Rechenschritte, um festzustellen, ob ihre Bahn entweicht. Eine zu niedrige Iterationszahl lässt feine Strukturen verschwommen wirken.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Mathematische Bedeutung der komplexen Koordinaten',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Die Koordinatenanzeige zeigt den aktuellen Mittelpunkt des Bildausschnitts als komplexe Zahl c = a + bi an. Die horizontale Achse ist der Realteil, die vertikale der Imaginärteil.',
122
+ },
123
+ ],
124
+ faq,
125
+ bibliography,
126
+ howTo,
127
+ schemas: [
128
+ {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'SoftwareApplication',
131
+ name: title,
132
+ description,
133
+ applicationCategory: 'ScientificApplication',
134
+ operatingSystem: 'Any',
135
+ },
136
+ {
137
+ '@context': 'https://schema.org',
138
+ '@type': 'FAQPage',
139
+ mainEntity: faq.map((item) => ({
140
+ '@type': 'Question',
141
+ name: item.question,
142
+ acceptedAnswer: {
143
+ '@type': 'Answer',
144
+ text: item.answer,
145
+ },
146
+ })),
147
+ },
148
+ {
149
+ '@context': 'https://schema.org',
150
+ '@type': 'HowTo',
151
+ name: title,
152
+ step: howTo.map((step) => ({
153
+ '@type': 'HowToStep',
154
+ name: step.name,
155
+ text: step.text,
156
+ })),
157
+ },
158
+ ],
159
159
  };
@@ -1,159 +1,159 @@
1
- import { bibliography } from '../bibliography';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- const slug = 'simulateur-fractale-mandelbrot';
5
- const title = 'Simulateur de Fractale de Mandelbrot et Explorateur d\'Autosimilarité';
6
- const description = 'Explorez l\'ensemble de Mandelbrot, zoomez sur les frontières fractales autosimilaires et comparez la profondeur d\'itération, le contraste des couleurs et les coordonnées du plan complexe.';
7
-
8
- const howTo = [
9
- {
10
- name: 'Choisissez une région de l\'ensemble de Mandelbrot',
11
- text: 'Partez de l\'ensemble complet ou sautez directement vers une région très détaillée telle que la vallée de l\'hippocampe ou un minibrot en spirale.',
12
- },
13
- {
14
- name: 'Zoomez en cliquant sur l\'image',
15
- text: 'Cliquez sur n\'importe quel point du canevas pour recentrer le plan complexe et agrandir la fractale autour de cette coordonnée.',
16
- },
17
- {
18
- name: 'Réglez la profondeur d\'itération et le contraste des couleurs',
19
- text: 'Augmentez le budget d\'itérations pour révéler une structure de frontière plus fine, puis ajustez le contraste et la palette pour rendre les bandes de temps d\'évasion plus lisibles.',
20
- },
21
- ];
22
-
23
- const faq = [
24
- {
25
- question: 'Que montre le simulateur de l\'ensemble de Mandelbrot ?',
26
- answer: 'Il montre quels nombres complexes c maintiennent la récurrence z(n+1) = z(n)^2 + c bornée en partant de z = 0. Les points qui ne s\'échappent jamais dans le budget d\'itérations sélectionné sont colorés comme membres de l\'ensemble, tandis que les points extérieurs sont colorés selon la vitesse à laquelle leur orbite s\'échappe.',
27
- },
28
- {
29
- question: 'Pourquoi la frontière de Mandelbrot contient-elle autant de détails ?',
30
- answer: 'La frontière sépare les orbites stables de celles qui s\'échappent, et de minuscules changements de coordonnées près de cette frontière peuvent complètement modifier le comportement à long terme. Cette sensibilité crée des bulbes imbriqués, des spirales, des filaments et des copies miniatures qui apparaissent à de nombreux niveaux d\'agrandissement.',
31
- },
32
- {
33
- question: 'L\'ensemble de Mandelbrot est-il vraiment autosimilaire ?',
34
- answer: 'Il n\'est pas parfaitement autosimilaire au sens strict comme un triangle de Sierpinski, mais il est richement quasi-autosimilaire. De petites copies de l\'ensemble complet apparaissent dans tout le plan, souvent déformées et reliées par des structures ramifiées élaborées.',
35
- },
36
- {
37
- question: 'Que contrôle le nombre d\'itérations ?',
38
- answer: 'Le nombre d\'itérations contrôle la durée pendant laquelle le simulateur teste chaque point avant de décider qu\'il appartient probablement à l\'ensemble. Des valeurs plus élevées révèlent des filaments plus profonds et des minibrots plus nets, mais nécessitent plus de calculs par pixel.',
39
- },
40
- {
41
- question: 'Pourquoi les couleurs changent-elles en dehors de la région noire ?',
42
- answer: 'Les couleurs extérieures sont basées sur le temps d\'évasion: les points qui s\'échappent rapidement reçoivent des couleurs différentes de ceux qui restent près de l\'ensemble pendant de nombreuses itérations. Un coloriage lisse réduit les bandes marquées et facilite l\'inspection de la géométrie des orbites voisines.',
43
- },
44
- ];
45
-
46
- export const content: ToolLocaleContent = {
47
- slug,
48
- title,
49
- description,
50
- ui: {
51
- title: 'Simulateur de Fractale de Mandelbrot',
52
- canvasLabel: 'Canevas interactif de l\'ensemble de Mandelbrot',
53
- presetsLabel: 'Paramètres de région de Mandelbrot',
54
- presetFull: 'Ensemble Complet',
55
- presetSeahorse: 'Vallée de l\'Hippocampe',
56
- presetSpiral: 'Minibrot Spirale',
57
- centerPoint: 'Centre',
58
- magnification: 'Grossissement',
59
- visibleWindow: 'Fenêtre visible',
60
- renderBudget: 'Itérations',
61
- iterationsLabel: 'Profondeur d\'itération',
62
- contrastLabel: 'Contraste d\'évasion',
63
- colorLabel: 'Champ de couleur',
64
- paletteEmber: 'Bandes de braise',
65
- paletteLagoon: 'Plasma lagunaire',
66
- paletteInk: 'Spectre d\'encre',
67
- },
68
- seo: [
69
- {
70
- type: 'title',
71
- text: 'Simulateur de l\'Ensemble de Mandelbrot pour Fractales, Temps d\'Évasion et Autosimilarité',
72
- level: 2,
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Ce simulateur de fractale de Mandelbrot rend le classique ensemble du plan complexe défini par l\'itération <strong>z(n+1) = z(n)^2 + c</strong>. Il est conçu pour l\'exploration plutôt que pour la visualisation passive: chaque clic recentre le plan, chaque zoom expose un voisinage mathématique plus petit, et le curseur d\'itérations vous permet de décider à quelle profondeur le calculateur doit tester la frontière avant de colorer un point comme stable ou en fuite.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comment lire l\'image de Mandelbrot',
81
- level: 3,
82
- },
83
- {
84
- type: 'paragraph',
85
- html: 'La forme centrale sombre marque les points dont les orbites restent bornées dans le budget d\'itérations actuel. L\'extérieur coloré est une carte du temps d\'évasion. Un point coloré près de l\'ensemble peut survivre des centaines d\'itérations avant que sa magnitude ne dépasse le rayon d\'évasion, tandis qu\'un point éloigné s\'échappe presque immédiatement. La géométrie la plus intéressante scientifiquement ne se trouve généralement pas à l\'intérieur de la forme remplie, mais le long de la frontière où les comportements bornés et non bornés s\'entrelacent.',
86
- },
87
- {
88
- type: 'table',
89
- headers: ['Contrôle', 'Ce qu\'il modifie', 'Quand l\'augmenter'],
90
- rows: [
91
- ['<strong>Profondeur d\'itération</strong>', 'Combien d\'étapes de récurrence sont testées pour chaque pixel.', 'Utilisez des valeurs plus élevées après un zoom dans des filaments minces ou des copies miniatures.'],
92
- ['<strong>Contraste d\'évasion</strong>', 'À quel point les valeurs d\'évasion lisses sont séparées en bandes visibles.', 'Augmentez-le quand l\'image paraît plate ; baissez-le quand les couleurs sont trop agressives.'],
93
- ['<strong>Palette</strong>', 'Le mappage de couleur appliqué aux points extérieurs.', 'Changez de palette pour révéler des structures qui pourraient être cachées par un champ de couleur.'],
94
- ],
95
- },
96
- {
97
- type: 'title',
98
- text: 'Autosimilarité et Minibrots',
99
- level: 3,
100
- },
101
- {
102
- type: 'paragraph',
103
- html: 'Une des raisons pour lesquelles l\'ensemble de Mandelbrot est si célèbre est sa quasi-autosimilarité. En zoomant sur les antennes, les spirales et les vallées, vous rencontrez à plusieurs reprises de petites îles ressemblant à Mandelbrot, souvent appelées <em>minibrots</em>. Ces copies ne sont pas simplement décoratives. Leur agencement reflète la dynamique des applications quadratiques, y compris les bulbes périodiques, les motifs de bifurcation et les régions où les orbites restent piégées pendant de longues périodes avant de s\'échapper.',
104
- },
105
- {
106
- type: 'title',
107
- text: 'Pourquoi les itérations élevées comptent au zoom profond',
108
- level: 3,
109
- },
110
- {
111
- type: 'paragraph',
112
- html: 'À fort grossissement, de nombreux points limites mettent beaucoup plus de temps à révéler s\'ils s\'échappent. Augmenter le nombre d\'itérations améliore la précision de la frontière.',
113
- },
114
- {
115
- type: 'title',
116
- text: 'Signification mathématique des coordonnées complexes',
117
- level: 3,
118
- },
119
- {
120
- type: 'paragraph',
121
- html: 'La lecture des coordonnées affiche le centre actuel comme un nombre complexe c = a + bi. L\'axe horizontal représente la partie réelle et l\'axe vertical la partie imaginaire.',
122
- },
123
- ],
124
- faq,
125
- bibliography,
126
- howTo,
127
- schemas: [
128
- {
129
- '@context': 'https://schema.org',
130
- '@type': 'SoftwareApplication',
131
- name: title,
132
- description,
133
- applicationCategory: 'ScientificApplication',
134
- operatingSystem: 'Any',
135
- },
136
- {
137
- '@context': 'https://schema.org',
138
- '@type': 'FAQPage',
139
- mainEntity: faq.map((item) => ({
140
- '@type': 'Question',
141
- name: item.question,
142
- acceptedAnswer: {
143
- '@type': 'Answer',
144
- text: item.answer,
145
- },
146
- })),
147
- },
148
- {
149
- '@context': 'https://schema.org',
150
- '@type': 'HowTo',
151
- name: title,
152
- step: howTo.map((step) => ({
153
- '@type': 'HowToStep',
154
- name: step.name,
155
- text: step.text,
156
- })),
157
- },
158
- ],
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'simulateur-fractale-mandelbrot';
5
+ const title = 'Simulateur de Fractale de Mandelbrot et Explorateur d\'Autosimilarité';
6
+ const description = 'Explorez l\'ensemble de Mandelbrot, zoomez sur les frontières fractales autosimilaires et comparez la profondeur d\'itération, le contraste des couleurs et les coordonnées du plan complexe.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Choisissez une région de l\'ensemble de Mandelbrot',
11
+ text: 'Partez de l\'ensemble complet ou sautez directement vers une région très détaillée telle que la vallée de l\'hippocampe ou un minibrot en spirale.',
12
+ },
13
+ {
14
+ name: 'Zoomez en cliquant sur l\'image',
15
+ text: 'Cliquez sur n\'importe quel point du canevas pour recentrer le plan complexe et agrandir la fractale autour de cette coordonnée.',
16
+ },
17
+ {
18
+ name: 'Réglez la profondeur d\'itération et le contraste des couleurs',
19
+ text: 'Augmentez le budget d\'itérations pour révéler une structure de frontière plus fine, puis ajustez le contraste et la palette pour rendre les bandes de temps d\'évasion plus lisibles.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'Que montre le simulateur de l\'ensemble de Mandelbrot ?',
26
+ answer: 'Il montre quels nombres complexes c maintiennent la récurrence z(n+1) = z(n)^2 + c bornée en partant de z = 0. Les points qui ne s\'échappent jamais dans le budget d\'itérations sélectionné sont colorés comme membres de l\'ensemble, tandis que les points extérieurs sont colorés selon la vitesse à laquelle leur orbite s\'échappe.',
27
+ },
28
+ {
29
+ question: 'Pourquoi la frontière de Mandelbrot contient-elle autant de détails ?',
30
+ answer: 'La frontière sépare les orbites stables de celles qui s\'échappent, et de minuscules changements de coordonnées près de cette frontière peuvent complètement modifier le comportement à long terme. Cette sensibilité crée des bulbes imbriqués, des spirales, des filaments et des copies miniatures qui apparaissent à de nombreux niveaux d\'agrandissement.',
31
+ },
32
+ {
33
+ question: 'L\'ensemble de Mandelbrot est-il vraiment autosimilaire ?',
34
+ answer: 'Il n\'est pas parfaitement autosimilaire au sens strict comme un triangle de Sierpinski, mais il est richement quasi-autosimilaire. De petites copies de l\'ensemble complet apparaissent dans tout le plan, souvent déformées et reliées par des structures ramifiées élaborées.',
35
+ },
36
+ {
37
+ question: 'Que contrôle le nombre d\'itérations ?',
38
+ answer: 'Le nombre d\'itérations contrôle la durée pendant laquelle le simulateur teste chaque point avant de décider qu\'il appartient probablement à l\'ensemble. Des valeurs plus élevées révèlent des filaments plus profonds et des minibrots plus nets, mais nécessitent plus de calculs par pixel.',
39
+ },
40
+ {
41
+ question: 'Pourquoi les couleurs changent-elles en dehors de la région noire ?',
42
+ answer: 'Les couleurs extérieures sont basées sur le temps d\'évasion: les points qui s\'échappent rapidement reçoivent des couleurs différentes de ceux qui restent près de l\'ensemble pendant de nombreuses itérations. Un coloriage lisse réduit les bandes marquées et facilite l\'inspection de la géométrie des orbites voisines.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ title: 'Simulateur de Fractale de Mandelbrot',
52
+ canvasLabel: 'Canevas interactif de l\'ensemble de Mandelbrot',
53
+ presetsLabel: 'Paramètres de région de Mandelbrot',
54
+ presetFull: 'Ensemble Complet',
55
+ presetSeahorse: 'Vallée de l\'Hippocampe',
56
+ presetSpiral: 'Minibrot Spirale',
57
+ centerPoint: 'Centre',
58
+ magnification: 'Grossissement',
59
+ visibleWindow: 'Fenêtre visible',
60
+ renderBudget: 'Itérations',
61
+ iterationsLabel: 'Profondeur d\'itération',
62
+ contrastLabel: 'Contraste d\'évasion',
63
+ colorLabel: 'Champ de couleur',
64
+ paletteEmber: 'Bandes de braise',
65
+ paletteLagoon: 'Plasma lagunaire',
66
+ paletteInk: 'Spectre d\'encre',
67
+ },
68
+ seo: [
69
+ {
70
+ type: 'title',
71
+ text: 'Simulateur de l\'Ensemble de Mandelbrot pour Fractales, Temps d\'Évasion et Autosimilarité',
72
+ level: 2,
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Ce simulateur de fractale de Mandelbrot rend le classique ensemble du plan complexe défini par l\'itération <strong>z(n+1) = z(n)^2 + c</strong>. Il est conçu pour l\'exploration plutôt que pour la visualisation passive: chaque clic recentre le plan, chaque zoom expose un voisinage mathématique plus petit, et le curseur d\'itérations vous permet de décider à quelle profondeur le calculateur doit tester la frontière avant de colorer un point comme stable ou en fuite.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comment lire l\'image de Mandelbrot',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: 'La forme centrale sombre marque les points dont les orbites restent bornées dans le budget d\'itérations actuel. L\'extérieur coloré est une carte du temps d\'évasion. Un point coloré près de l\'ensemble peut survivre des centaines d\'itérations avant que sa magnitude ne dépasse le rayon d\'évasion, tandis qu\'un point éloigné s\'échappe presque immédiatement. La géométrie la plus intéressante scientifiquement ne se trouve généralement pas à l\'intérieur de la forme remplie, mais le long de la frontière où les comportements bornés et non bornés s\'entrelacent.',
86
+ },
87
+ {
88
+ type: 'table',
89
+ headers: ['Contrôle', 'Ce qu\'il modifie', 'Quand l\'augmenter'],
90
+ rows: [
91
+ ['<strong>Profondeur d\'itération</strong>', 'Combien d\'étapes de récurrence sont testées pour chaque pixel.', 'Utilisez des valeurs plus élevées après un zoom dans des filaments minces ou des copies miniatures.'],
92
+ ['<strong>Contraste d\'évasion</strong>', 'À quel point les valeurs d\'évasion lisses sont séparées en bandes visibles.', 'Augmentez-le quand l\'image paraît plate ; baissez-le quand les couleurs sont trop agressives.'],
93
+ ['<strong>Palette</strong>', 'Le mappage de couleur appliqué aux points extérieurs.', 'Changez de palette pour révéler des structures qui pourraient être cachées par un champ de couleur.'],
94
+ ],
95
+ },
96
+ {
97
+ type: 'title',
98
+ text: 'Autosimilarité et Minibrots',
99
+ level: 3,
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'Une des raisons pour lesquelles l\'ensemble de Mandelbrot est si célèbre est sa quasi-autosimilarité. En zoomant sur les antennes, les spirales et les vallées, vous rencontrez à plusieurs reprises de petites îles ressemblant à Mandelbrot, souvent appelées <em>minibrots</em>. Ces copies ne sont pas simplement décoratives. Leur agencement reflète la dynamique des applications quadratiques, y compris les bulbes périodiques, les motifs de bifurcation et les régions où les orbites restent piégées pendant de longues périodes avant de s\'échapper.',
104
+ },
105
+ {
106
+ type: 'title',
107
+ text: 'Pourquoi les itérations élevées comptent au zoom profond',
108
+ level: 3,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'À fort grossissement, de nombreux points limites mettent beaucoup plus de temps à révéler s\'ils s\'échappent. Augmenter le nombre d\'itérations améliore la précision de la frontière.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Signification mathématique des coordonnées complexes',
117
+ level: 3,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'La lecture des coordonnées affiche le centre actuel comme un nombre complexe c = a + bi. L\'axe horizontal représente la partie réelle et l\'axe vertical la partie imaginaire.',
122
+ },
123
+ ],
124
+ faq,
125
+ bibliography,
126
+ howTo,
127
+ schemas: [
128
+ {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'SoftwareApplication',
131
+ name: title,
132
+ description,
133
+ applicationCategory: 'ScientificApplication',
134
+ operatingSystem: 'Any',
135
+ },
136
+ {
137
+ '@context': 'https://schema.org',
138
+ '@type': 'FAQPage',
139
+ mainEntity: faq.map((item) => ({
140
+ '@type': 'Question',
141
+ name: item.question,
142
+ acceptedAnswer: {
143
+ '@type': 'Answer',
144
+ text: item.answer,
145
+ },
146
+ })),
147
+ },
148
+ {
149
+ '@context': 'https://schema.org',
150
+ '@type': 'HowTo',
151
+ name: title,
152
+ step: howTo.map((step) => ({
153
+ '@type': 'HowToStep',
154
+ name: step.name,
155
+ text: step.text,
156
+ })),
157
+ },
158
+ ],
159
159
  };