@jjlmoya/utils-forensic-science 1.1.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 (316) hide show
  1. package/package.json +69 -0
  2. package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
  5. package/src/category/i18n/de.ts +55 -0
  6. package/src/category/i18n/en.ts +55 -0
  7. package/src/category/i18n/es.ts +55 -0
  8. package/src/category/i18n/fr.ts +55 -0
  9. package/src/category/i18n/id.ts +55 -0
  10. package/src/category/i18n/it.ts +55 -0
  11. package/src/category/i18n/ja.ts +56 -0
  12. package/src/category/i18n/ko.ts +56 -0
  13. package/src/category/i18n/nl.ts +55 -0
  14. package/src/category/i18n/pl.ts +55 -0
  15. package/src/category/i18n/pt.ts +55 -0
  16. package/src/category/i18n/ru.ts +55 -0
  17. package/src/category/i18n/sv.ts +55 -0
  18. package/src/category/i18n/tr.ts +55 -0
  19. package/src/category/i18n/zh.ts +56 -0
  20. package/src/category/index.ts +48 -0
  21. package/src/category/seo.astro +15 -0
  22. package/src/components/PreviewNavSidebar.astro +116 -0
  23. package/src/components/PreviewToolbar.astro +143 -0
  24. package/src/data.ts +10 -0
  25. package/src/entries.ts +48 -0
  26. package/src/env.d.ts +5 -0
  27. package/src/index.ts +29 -0
  28. package/src/layouts/PreviewLayout.astro +117 -0
  29. package/src/pages/[locale]/[slug].astro +162 -0
  30. package/src/pages/[locale].astro +261 -0
  31. package/src/pages/index.astro +3 -0
  32. package/src/tests/diacritics_density.test.ts +140 -0
  33. package/src/tests/faq_count.test.ts +19 -0
  34. package/src/tests/i18n_coverage.test.ts +36 -0
  35. package/src/tests/inverted_punctuation.test.ts +84 -0
  36. package/src/tests/locale_completeness.test.ts +24 -0
  37. package/src/tests/mocks/astro_mock.js +2 -0
  38. package/src/tests/no_en_dash.test.ts +70 -0
  39. package/src/tests/no_h1_in_components.test.ts +48 -0
  40. package/src/tests/schemas_fulfillment.test.ts +23 -0
  41. package/src/tests/script_density.test.ts +94 -0
  42. package/src/tests/seo_length.test.ts +46 -0
  43. package/src/tests/shared-test-helpers.ts +56 -0
  44. package/src/tests/slug_language_code_format.test.ts +23 -0
  45. package/src/tests/slug_uniqueness.test.ts +81 -0
  46. package/src/tests/title_quality.test.ts +55 -0
  47. package/src/tests/tool_exports.test.ts +34 -0
  48. package/src/tests/tool_validation.test.ts +16 -0
  49. package/src/tests/widmark.test.ts +28 -0
  50. package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
  51. package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
  52. package/src/tool/forensic-age-estimator/component.astro +321 -0
  53. package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
  54. package/src/tool/forensic-age-estimator/entry.ts +32 -0
  55. package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
  56. package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
  57. package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
  58. package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
  59. package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
  60. package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
  61. package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
  62. package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
  63. package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
  64. package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
  65. package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
  66. package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
  67. package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
  68. package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
  69. package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
  70. package/src/tool/forensic-age-estimator/index.ts +11 -0
  71. package/src/tool/forensic-age-estimator/logic.ts +81 -0
  72. package/src/tool/forensic-age-estimator/seo.astro +15 -0
  73. package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
  74. package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
  75. package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
  76. package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
  77. package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
  78. package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
  79. package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
  80. package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
  81. package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
  82. package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
  83. package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
  84. package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
  85. package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
  86. package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
  87. package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
  88. package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
  89. package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
  90. package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
  91. package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
  92. package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
  93. package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
  94. package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
  95. package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
  96. package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
  97. package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
  98. package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
  99. package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
  100. package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
  101. package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
  102. package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
  103. package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
  104. package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
  105. package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
  106. package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
  107. package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
  108. package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
  109. package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
  110. package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
  111. package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
  112. package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
  113. package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
  114. package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
  115. package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
  116. package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
  117. package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
  118. package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
  119. package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
  120. package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
  121. package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
  122. package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
  123. package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
  124. package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
  125. package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
  126. package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
  127. package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
  128. package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
  129. package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
  130. package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
  131. package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
  132. package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
  133. package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
  134. package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
  135. package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
  136. package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
  137. package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
  138. package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
  139. package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
  140. package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
  141. package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
  142. package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
  143. package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
  144. package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
  145. package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
  146. package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
  147. package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
  148. package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
  149. package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
  150. package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
  151. package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
  152. package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
  153. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
  154. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
  155. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
  156. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
  157. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
  158. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
  159. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
  160. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
  161. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
  162. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
  163. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
  164. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
  165. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
  166. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
  167. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
  168. package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
  169. package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
  170. package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
  171. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
  172. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
  173. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
  174. package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
  175. package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
  176. package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
  177. package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
  178. package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
  179. package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
  180. package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
  181. package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
  182. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
  183. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
  184. package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
  185. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
  186. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
  187. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
  188. package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
  189. package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
  190. package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
  191. package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
  192. package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
  193. package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
  194. package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
  195. package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
  196. package/src/tool/forensic-sex-determinator/component.astro +463 -0
  197. package/src/tool/forensic-sex-determinator/entry.ts +32 -0
  198. package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
  199. package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
  200. package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
  201. package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
  202. package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
  203. package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
  204. package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
  205. package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
  206. package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
  207. package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
  208. package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
  209. package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
  210. package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
  211. package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
  212. package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
  213. package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
  214. package/src/tool/forensic-sex-determinator/index.ts +11 -0
  215. package/src/tool/forensic-sex-determinator/logic.ts +89 -0
  216. package/src/tool/forensic-sex-determinator/seo.astro +15 -0
  217. package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
  218. package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
  219. package/src/tool/forensic-stature-estimator/component.astro +49 -0
  220. package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
  221. package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
  222. package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
  223. package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
  224. package/src/tool/forensic-stature-estimator/entry.ts +32 -0
  225. package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
  226. package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
  227. package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
  228. package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
  229. package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
  230. package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
  231. package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
  232. package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
  233. package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
  234. package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
  235. package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
  236. package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
  237. package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
  238. package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
  239. package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
  240. package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
  241. package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
  242. package/src/tool/forensic-stature-estimator/index.ts +11 -0
  243. package/src/tool/forensic-stature-estimator/logic.ts +119 -0
  244. package/src/tool/forensic-stature-estimator/script.ts +288 -0
  245. package/src/tool/forensic-stature-estimator/seo.astro +15 -0
  246. package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
  247. package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
  248. package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
  249. package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
  250. package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
  251. package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
  252. package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
  253. package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
  254. package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
  255. package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
  256. package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
  257. package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
  258. package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
  259. package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
  260. package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
  261. package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
  262. package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
  263. package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
  264. package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
  265. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
  266. package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
  267. package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
  268. package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
  269. package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
  270. package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
  271. package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
  272. package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
  273. package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
  274. package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
  275. package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
  276. package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
  277. package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
  278. package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
  279. package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
  280. package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
  281. package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
  282. package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
  283. package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
  284. package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
  285. package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
  286. package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
  287. package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
  288. package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
  289. package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
  290. package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
  291. package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
  292. package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
  293. package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
  294. package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
  295. package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
  296. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
  297. package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
  298. package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
  299. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
  300. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
  301. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
  302. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
  303. package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
  304. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
  305. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
  306. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
  307. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
  308. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
  309. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
  310. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
  311. package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
  312. package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
  313. package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
  314. package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
  315. package/src/tools.ts +27 -0
  316. package/src/types.ts +70 -0
@@ -0,0 +1,245 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'estimator-usia-gigi-skelet-molar-ketiga';
5
+ const title = 'Estimator Usia Gigi, Skelet, dan Molar Ketiga';
6
+ const description = 'Perkirakan interval usia forensik berdasarkan perkembangan gigi, kematangan skelet, dan indikator molar ketiga untuk keperluan skrining serta triase kasus.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Pilih penekanan bukti',
11
+ text: 'Pilih "Bukti campuran" untuk hasil triase yang seimbang, "Prioritas gigi" jika temuan klinis gigi lebih kuat, atau "Prioritas skelet" jika indikator radiografi tulang menjadi sumber utama.',
12
+ },
13
+ {
14
+ name: 'Nilai setiap indikator kematangan',
15
+ text: 'Tentukan tahap untuk setiap indikator dari 0 hingga 8. Tahap rendah menunjukkan perkembangan awal, tahap menengah menunjukkan maturasi masa remaja, dan tahap tinggi menunjukkan temuan yang matang atau hampir matang.',
16
+ },
17
+ {
18
+ name: 'Baca intervalnya, bukan hanya usia tengah',
19
+ text: 'Gunakan nilai usia minimum, kemungkinan, dan maksimum secara bersamaan. Penilaian usia forensik harus dinyatakan sebagai interval karena variasi perkembangan biologis antar individu sangat signifikan.',
20
+ },
21
+ {
22
+ name: 'Periksa diskrepansi antar indikator',
23
+ text: 'Jika tahap perkembangan gigi, skelet, dan molar ketiga menunjukkan rentang usia yang berbeda, anggap hasil tersebut sebagai eksploratif dan kumpulkan bukti pendukung sebelum menarik kesimpulan.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Dapatkah estimator usia forensik ini menentukan kedewasaan hukum?',
30
+ answer: 'Tidak. Alat ini adalah kalkulator skrining untuk tujuan edukasi dan triase. Penentuan usia secara hukum memerlukan protokol lokal yang tervalidasi, penilaian oleh ahli, verifikasi identitas yang terdokumentasi, serta kepatuhan terhadap standar yurisdiksi setempat.',
31
+ },
32
+ {
33
+ question: 'Mengapa hasil menunjukkan interval usia?',
34
+ answer: 'Erupsi gigi, fusi skelet, dan perkembangan molar ketiga bervariasi bergantung pada faktor keturunan, nutrisi, kesehatan, jenis kelamin, populasi referensi, dan metode pencitraan. Penggunaan interval lebih akurat dan transparan daripada satu angka usia yang pasti.',
35
+ },
36
+ {
37
+ question: 'Apa yang dimaksud dengan bukti campuran?',
38
+ answer: 'Bukti campuran menyeimbangkan data dari perkembangan gigi, kematangan skelet, dan tahap molar ketiga. Gunakan opsi ini jika tidak ada satu indikator pun yang jauh lebih dapat diandalkan daripada indikator lainnya dalam berkas kasus tersebut.',
39
+ },
40
+ {
41
+ question: 'Apakah molar ketiga dapat diandalkan untuk setiap kasus?',
42
+ answer: 'Molar ketiga berguna pada masa remaja akhir hingga dewasa muda, namun memiliki variabilitas tinggi. Kondisi seperti agenesis, patologi, perbedaan populasi, dan kualitas radiografi dapat membatasi nilai diagnostiknya.',
43
+ },
44
+ {
45
+ question: 'Haruskah alat ini digunakan untuk penanganan kasus nyata?',
46
+ answer: 'Alat ini hanya berfungsi sebagai bantuan awal. Penanganan kasus nyata harus menggunakan metode yang tervalidasi, data referensi terkalibrasi, tinjauan independen, serta pelaporan ketidakpastian dan batasan secara transparan.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ caseBoard: 'Papan kasus forensik',
56
+ controls: 'Kontrol usia forensik',
57
+ results: 'Hasil usia forensik',
58
+ maturityProfile: 'Profil kematangan dinamis',
59
+ screeningOnly: 'Perkiraan skrining',
60
+ evidenceType: 'Penekanan bukti',
61
+ mixedEvidence: 'Bukti campuran',
62
+ dentalPriority: 'Prioritas gigi',
63
+ skeletalPriority: 'Prioritas skelet',
64
+ dentalStage: 'Tahap perkembangan gigi',
65
+ epiphysealStage: 'Tahap fusi epifisis',
66
+ thirdMolarStage: 'Tahap molar ketiga',
67
+ minimumAge: 'Minimum',
68
+ likelyAge: 'Kemungkinan',
69
+ maximumAge: 'Maksimum',
70
+ maturityScore: 'Skor kematangan',
71
+ stageLabel: 'Tahap',
72
+ ageUnit: 'tahun',
73
+ dentalShort: 'Gigi',
74
+ boneShort: 'Tulang',
75
+ molarShort: 'Molar',
76
+ dentalStageHelp: 'Pembentukan mahkota, akar, dan apeks.',
77
+ epiphysealStageHelp: 'Penutupan lempeng pertumbuhan dan fusi skelet.',
78
+ molarStageHelp: 'Mineralisasi molar ketiga dan penutupan apeks.',
79
+ dentalStage0: 'Tidak ada',
80
+ dentalStage1: 'Kuspa',
81
+ dentalStage2: 'Mahkota',
82
+ dentalStage3: 'Akar mulai',
83
+ dentalStage4: 'Akar setengah',
84
+ dentalStage5: 'Akar panjang',
85
+ dentalStage6: 'Apeks sempit',
86
+ dentalStage7: 'Apeks menutup',
87
+ dentalStage8: 'Lengkap',
88
+ epiphysealStage0: 'Terbuka',
89
+ epiphysealStage1: 'Tepi',
90
+ epiphysealStage2: 'Menyempit',
91
+ epiphysealStage3: 'Jembatan',
92
+ epiphysealStage4: 'Setengah menyatu',
93
+ epiphysealStage5: 'Hampir menyatu',
94
+ epiphysealStage6: 'Hanya garis',
95
+ epiphysealStage7: 'Hampir tertutup',
96
+ epiphysealStage8: 'Tertutup',
97
+ molarStage0: 'Tidak ada',
98
+ molarStage1: 'Kuspa',
99
+ molarStage2: 'Mahkota mulai',
100
+ molarStage3: 'Mahkota penuh',
101
+ molarStage4: 'Akar mulai',
102
+ molarStage5: 'Akar setengah',
103
+ molarStage6: 'Akar panjang',
104
+ molarStage7: 'Apeks menutup',
105
+ molarStage8: 'Lengkap',
106
+ confidenceexploratory: 'Eksploratif',
107
+ confidencemoderate: 'Sedang',
108
+ confidencestrong: 'Kuat',
109
+ noteTriage: 'Gunakan sebagai estimasi triase, bukan sebagai penentuan usia hukum.',
110
+ noteFinalAssessment: 'Penilaian usia forensik akhir harus mengintegrasikan radiologi, pemeriksaan klinis gigi, riwayat medis, serta standar yurisdiksi setempat.',
111
+ noteWideInterval: 'Terdapat perbedaan antar indikator lebih dari empat tahun; interval telah diperlebar.',
112
+ },
113
+ seo: [
114
+ {
115
+ type: 'title',
116
+ text: 'Estimator usia forensik: kalkulator skrining gigi, skelet, dan molar ketiga',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Gunakan estimator usia forensik ini sebagai cara cepat dan transparan untuk mengatur data bukti kematangan biologis sebelum dilakukan penilaian formal. Kalkulator ini menggabungkan perkembangan gigi, fusi epifisis, dan tahap molar ketiga menjadi interval usia yang diperkirakan. Alat ini menjawab kebutuhan atas <strong>kalkulator estimasi usia forensik</strong>, <strong>penilaian usia gigi</strong>, serta <strong>estimasi usia kematangan skelet</strong>, sehingga pengguna memahami arti indikator, cara penggabungannya, dan batasan ketidakpastian yang melekat pada hasil.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Hasil estimasi dinyatakan dalam <strong>usia minimum, kemungkinan, dan maksimum</strong>. Penggunaan titik estimasi tunggal dapat menyesatkan karena perkembangan biologis sangat bervariasi antar individu. Anggap kalkulator ini sebagai alat bantu skrining terstruktur, bukan sebagai kesimpulan hukum yang absolut.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Memahami indikator kematangan',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Skala tahap (0-8) memberikan abstraksi praktis untuk membandingkan sistem biologis yang berbeda. Tahap 0 menunjukkan bukti kematangan awal atau tidak ada, sementara tahap 8 menunjukkan kematangan lengkap. Tahap ini dirancang untuk perbandingan lintas sistem, bukan untuk menggantikan metode klinis spesifik.',
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Indikator', 'Deskripsi', 'Konteks', 'Catatan'],
139
+ rows: [
140
+ ['Perkembangan gigi', 'Pembentukan dan erupsi (di luar molar ketiga).', 'Metrik utama untuk anak-anak dan remaja.', 'Dapat dipengaruhi oleh penyakit gigi, pencabutan, atau perbedaan populasi.'],
141
+ ['Fusi epifisis', 'Penutupan lempeng pertumbuhan.', 'Indikator utama untuk remaja akhir dan dewasa muda.', 'Sangat bergantung pada tulang yang diperiksa, jenis kelamin, dan status kesehatan.'],
142
+ ['Tahap molar ketiga', 'Pembentukan dan maturasi gigi bungsu.', 'Kritis untuk penilaian usia remaja akhir.', 'Memiliki variabilitas tinggi; periksa agenesis dan impaksi.'],
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Interpretasi interval usia',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Perhatikan ketiga nilai usia secara bersamaan. <strong>Usia kemungkinan</strong> adalah estimasi tengah yang tertimbang. Nilai <strong>minimum</strong> dan <strong>maksimum</strong> mendefinisikan pita ketidakpastian. Konvergensi indikator akan menyempitkan pita ini, sementara sinyal yang bertentangan akan melebarkannya dan menurunkan tingkat kepercayaan.',
153
+ },
154
+ {
155
+ type: 'table',
156
+ headers: ['Pola hasil', 'Interpretasi', 'Tindakan'],
157
+ rows: [
158
+ ['Interval sempit / Kepercayaan kuat', 'Indikator selaras.', 'Dokumentasikan temuan dan periksa apakah validasi metode formal diperlukan.'],
159
+ ['Interval sedang', 'Diskrepansi atau penekanan bukti mempengaruhi estimasi.', 'Verifikasi kualitas gambar dan penetapan tahap.'],
160
+ ['Interval eksploratif lebar', 'Indikator bertentangan.', 'Jangan mengandalkan estimasi saja; cari catatan tambahan atau tinjauan spesialis.'],
161
+ ],
162
+ },
163
+ {
164
+ type: 'title',
165
+ text: 'Pemilihan mode bukti',
166
+ level: 3,
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: '<strong>Bukti campuran</strong> adalah mode default yang menyeimbangkan semua indikator. Pilih <strong>prioritas gigi</strong> jika catatan klinis gigi sangat lengkap. Pilih <strong>prioritas skelet</strong> jika radiografi tulang merupakan data paling kuat. Mode ini tidak meningkatkan kualitas bukti yang lemah, namun menyesuaikan pembobotan matematisnya secara proporsional.',
171
+ },
172
+ {
173
+ type: 'list',
174
+ items: [
175
+ '<strong>Prioritas gigi:</strong> saat perkembangan gigi jelas dan data molar ketiga tersedia.',
176
+ '<strong>Prioritas skelet:</strong> saat fusi epifisis adalah sinyal terbaik yang terdokumentasi.',
177
+ '<strong>Bukti campuran:</strong> ideal untuk skrining awal yang seimbang.',
178
+ '<strong>Label kepercayaan:</strong> perhatikan untuk mengenali diskrepansi sebelum interpretasi.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Batasan forensik',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'paragraph',
188
+ html: 'Estimasi usia bersifat mendukung, bukan bukti mutlak identitas. Dalam konteks hukum, perlindungan, atau identifikasi korban bencana, penilaian harus dilakukan secara multidisiplin. Laporan resmi wajib merinci metodologi, populasi referensi, kualifikasi pengamat, dan batasan temuan.',
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Alat ini dirancang untuk <strong>edukasi, triase, dan komunikasi transparan</strong>. Kami menekankan bahwa keputusan penting secara hukum-seperti ambang batas usia 18 tahun-tidak boleh didasarkan hanya pada kalkulator yang disederhanakan.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Daftar periksa laporan forensik',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'list',
201
+ items: [
202
+ '<strong>Dokumentasi sumber:</strong> Catat apakah tahap didasarkan pada pemeriksaan gigi klinis, panoramik, atau pencitraan tulang (misalnya tangan, klavikula).',
203
+ '<strong>Data hilang/lemah:</strong> Dokumentasikan absennya molar ketiga, kualitas gambar buruk, atau anomali.',
204
+ '<strong>Validasi metodologi:</strong> Pastikan metode yang dipilih diakui dalam yurisdiksi setempat.',
205
+ '<strong>Komunikasi ketidakpastian:</strong> Selalu berikan rentang; hindari bahasa yang menyiratkan usia kronologis tepat.',
206
+ '<strong>Tinjauan spesialis:</strong> Kasus berisiko tinggi wajib ditinjau oleh odontolog forensik, radiolog, atau antropolog.',
207
+ ],
208
+ },
209
+ ],
210
+ faq,
211
+ bibliography,
212
+ howTo,
213
+ schemas: [
214
+ {
215
+ '@context': 'https://schema.org',
216
+ '@type': 'SoftwareApplication',
217
+ name: title,
218
+ description,
219
+ applicationCategory: 'ForensicApplication',
220
+ operatingSystem: 'Any',
221
+ },
222
+ {
223
+ '@context': 'https://schema.org',
224
+ '@type': 'FAQPage',
225
+ mainEntity: faq.map((item) => ({
226
+ '@type': 'Question',
227
+ name: item.question,
228
+ acceptedAnswer: {
229
+ '@type': 'Answer',
230
+ text: item.answer,
231
+ },
232
+ })),
233
+ },
234
+ {
235
+ '@context': 'https://schema.org',
236
+ '@type': 'HowTo',
237
+ name: title,
238
+ step: howTo.map((step) => ({
239
+ '@type': 'HowToStep',
240
+ name: step.name,
241
+ text: step.text,
242
+ })),
243
+ },
244
+ ],
245
+ };
@@ -0,0 +1,245 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'stimatore-eta-dentale-scheletrica-terzo-molare';
5
+ const title = 'Stimatore dell\'età dentale, scheletrica e del terzo molare';
6
+ const description = 'Stima un intervallo di età forense basato sullo sviluppo dentale, la maturità scheletrica e gli indicatori del terzo molare per il triage e lo screening dei casi.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Seleziona l\'enfasi delle prove',
11
+ text: 'Scegli "Prove miste" per un triage equilibrato, "Priorità dentale" se i reperti dentali sono più solidi, o "Priorità scheletrica" quando gli indicatori radiografici scheletrici costituiscono la fonte principale.',
12
+ },
13
+ {
14
+ name: 'Valuta ogni indicatore di maturità',
15
+ text: 'Attribuisci uno stadio da 0 a 8 a ciascun indicatore. Gli stadi inferiori indicano uno sviluppo precoce, quelli intermedi la maturazione adolescenziale, mentre quelli superiori risultati maturi o quasi maturi.',
16
+ },
17
+ {
18
+ name: 'Interpreta l\'intervallo, non solo l\'età centrale',
19
+ text: 'Considera congiuntamente i valori minimo, probabile e massimo. La valutazione forense dell\'età deve essere espressa come un intervallo, data l\'elevata variabilità dello sviluppo biologico individuale.',
20
+ },
21
+ {
22
+ name: 'Verifica eventuali discrepanze tra gli indicatori',
23
+ text: 'Se gli stadi dentali, scheletrici e del terzo molare indicano intervalli di età divergenti, tratta il risultato come esplorativo e raccogli ulteriori prove prima di formulare conclusioni.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Questo stimatore può determinare la maggiore età legale?',
30
+ answer: 'No. Si tratta di un calcolatore di screening destinato a fini educativi e di triage. La determinazione legale dell\'età richiede protocolli locali validati, il parere di esperti qualificati, una documentazione d\'identità rigorosa e il rispetto degli standard giurisdizionali specifici.',
31
+ },
32
+ {
33
+ question: 'Perché il risultato mostra un intervallo di età?',
34
+ answer: 'L\'eruzione dentale, la fusione scheletrica e lo sviluppo del terzo molare variano significativamente in base ad ascendenza, nutrizione, stato di salute, sesso, popolazione di riferimento e metodo di imaging. Un intervallo è più accurato e trasparente rispetto a una singola stima puntuale.',
35
+ },
36
+ {
37
+ question: 'Cosa si intende per "Prove miste"?',
38
+ answer: 'La modalità "Prove miste" bilancia l\'apporto dello sviluppo dentale, della maturità scheletrica e dello stadio del terzo molare. Utilizzala quando nessun singolo indicatore risulta chiaramente più affidabile degli altri per il caso in esame.',
39
+ },
40
+ {
41
+ question: 'I terzi molari sono affidabili in ogni caso?',
42
+ answer: 'I terzi molari sono utili nella tarda adolescenza e nella giovane età adulta, ma presentano un\'elevata variabilità. Agenesie, patologie, differenze popolazionali e la qualità radiografica possono limitarne considerevolmente il valore diagnostico.',
43
+ },
44
+ {
45
+ question: 'Questo strumento può essere utilizzato per casi reali?',
46
+ answer: 'Esclusivamente come ausilio preliminare. I casi reali richiedono l\'impiego di metodi validati, dati di riferimento calibrati, revisione indipendente e una rendicontazione trasparente di tutte le incertezze e le limitazioni del caso.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ caseBoard: 'Pannello del caso forense',
56
+ controls: 'Controlli età forense',
57
+ results: 'Risultati età forense',
58
+ maturityProfile: 'Profilo di maturità dinamico',
59
+ screeningOnly: 'Stima di screening',
60
+ evidenceType: 'Enfasi delle prove',
61
+ mixedEvidence: 'Prove miste',
62
+ dentalPriority: 'Priorità dentale',
63
+ skeletalPriority: 'Priorità scheletrica',
64
+ dentalStage: 'Stadio sviluppo dentale',
65
+ epiphysealStage: 'Stadio fusione epifisaria',
66
+ thirdMolarStage: 'Stadio del terzo molare',
67
+ minimumAge: 'Minimo',
68
+ likelyAge: 'Probabile',
69
+ maximumAge: 'Massimo',
70
+ maturityScore: 'Punteggio di maturità',
71
+ stageLabel: 'Stadio',
72
+ ageUnit: 'anni',
73
+ dentalShort: 'Dentale',
74
+ boneShort: 'Osseo',
75
+ molarShort: 'Molare',
76
+ dentalStageHelp: 'Formazione di corona, radice e apice.',
77
+ epiphysealStageHelp: 'Chiusura della cartilagine di accrescimento e fusione scheletrica.',
78
+ molarStageHelp: 'Mineralizzazione del terzo molare e chiusura dell\'apice.',
79
+ dentalStage0: 'Assente',
80
+ dentalStage1: 'Cuspide',
81
+ dentalStage2: 'Corona',
82
+ dentalStage3: 'Inizio radice',
83
+ dentalStage4: 'Radice metà',
84
+ dentalStage5: 'Radice lunga',
85
+ dentalStage6: 'Apice stretto',
86
+ dentalStage7: 'Apice in chiusura',
87
+ dentalStage8: 'Completa',
88
+ epiphysealStage0: 'Aperta',
89
+ epiphysealStage1: 'Margine',
90
+ epiphysealStage2: 'Restringimento',
91
+ epiphysealStage3: 'Ponte',
92
+ epiphysealStage4: 'Metà fusa',
93
+ epiphysealStage5: 'Quasi fusa',
94
+ epiphysealStage6: 'Solo linea',
95
+ epiphysealStage7: 'Quasi chiusa',
96
+ epiphysealStage8: 'Chiusa',
97
+ molarStage0: 'Assente',
98
+ molarStage1: 'Cuspide',
99
+ molarStage2: 'Inizio corona',
100
+ molarStage3: 'Corona completa',
101
+ molarStage4: 'Inizio radice',
102
+ molarStage5: 'Radice metà',
103
+ molarStage6: 'Radice lunga',
104
+ molarStage7: 'Apice in chiusura',
105
+ molarStage8: 'Completa',
106
+ confidenceexploratory: 'Esplorativo',
107
+ confidencemoderate: 'Moderato',
108
+ confidencestrong: 'Forte',
109
+ noteTriage: 'Utilizzare come stima di triage, non come determinazione legale dell\'età.',
110
+ noteFinalAssessment: 'La valutazione forense finale dovrebbe integrare radiologia, esame clinico, anamnesi documentata e standard giurisdizionali specifici.',
111
+ noteWideInterval: 'Gli indicatori divergono per più di quattro anni; l\'intervallo è stato ampliato.',
112
+ },
113
+ seo: [
114
+ {
115
+ type: 'title',
116
+ text: 'Stimatore dell\'età forense: calcolatore di screening dentale, scheletrico e del terzo molare',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Utilizza questo stimatore dell\'età forense per organizzare in modo rapido e trasparente i reperti di maturità biologica prima di una valutazione formale. Il calcolatore integra sviluppo dentale, fusione epifisaria e stadio del terzo molare per fornire un intervallo di età stimato. Risponde alle ricerche tipiche come <strong>calcolatore stima età forense</strong>, <strong>valutazione età dentale</strong> e <strong>stima età maturità scheletrica</strong>, chiarendo il significato degli indicatori e la gestione dell\'incertezza.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'I risultati sono presentati come <strong>età minima, probabile e massima</strong>. Una stima puntuale singola sarebbe fuorviante a causa dell\'ampia variabilità biologica. Questo strumento va considerato come un ausilio di screening strutturato, non come una conclusione giuridica definitiva.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Significato degli indicatori di maturità',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Gli stadi (0-8) forniscono un\'astrazione pratica per confrontare sistemi biologici diversi. Lo stadio 0 indica una maturità assente o molto precoce, lo stadio 8 una maturità completa. Questi stadi facilitano il confronto incrociato senza essere vincolati a un singolo metodo clinico.',
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Indicatore', 'Descrizione', 'Contesto', 'Attenzione'],
139
+ rows: [
140
+ ['Sviluppo dentale', 'Formazione ed eruzione (esclusi terzi molari).', 'Indicatore primario per bambini e adolescenti.', 'Biais possibili da malattie dentali o differenze di popolazione.'],
141
+ ['Fusione epifisaria', 'Chiusura progressiva delle cartilagini di accrescimento.', 'Indicatore chiave per fine adolescenza e giovane età adulta.', 'Dipende criticamente dall\'osso analizzato, dal sesso e dallo stato endocrino.'],
142
+ ['Stadio terzo molare', 'Formazione e maturazione dei denti del giudizio.', 'Cruciale per la valutazione tardo-adolescenziale.', 'Alta variabilità; richiede verifica di agenesie e inclusioni.'],
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Interpretazione dell\'intervallo di età',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'L\'<strong>età probabile</strong> rappresenta la stima centrale ponderata. I valori <strong>minimo</strong> e <strong>massimo</strong> definiscono la banda di incertezza pratica. La convergenza degli indicatori restringe tale banda, mentre segnali contrastanti la allargano, riducendo il grado di confidenza.',
153
+ },
154
+ {
155
+ type: 'table',
156
+ headers: ['Schema dei risultati', 'Suggerimento', 'Azione consigliata'],
157
+ rows: [
158
+ ['Intervallo stretto / Confidenza forte', 'Gli indicatori concordano.', 'Documenta le fonti e valuta se è necessaria una validazione formale.'],
159
+ ['Intervallo moderato', 'Discrepanze o peso dell\'evidenza impattano la stima.', 'Verifica qualità dell\'immagine e stadi assegnati.'],
160
+ ['Intervallo esplorativo ampio', 'Indicatori in conflitto.', 'Non concludere solo sulla base di questo; cerca dati aggiuntivi o una revisione specialistica.'],
161
+ ],
162
+ },
163
+ {
164
+ type: 'title',
165
+ text: 'Scelta della modalità di prova',
166
+ level: 3,
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Le <strong>prove miste</strong> sono il default per un triage equilibrato. Scegli <strong>priorità dentale</strong> per dati dentali eccezionalmente completi. Scegli <strong>priorità scheletrica</strong> se l\'evidenza radiografica ossea è la più solida. Queste modalità non migliorano la qualità dei dati deboli, ma regolano solo la ponderazione matematica.',
171
+ },
172
+ {
173
+ type: 'list',
174
+ items: [
175
+ '<strong>Priorità dentale:</strong> se il quadro dentale è chiaro e i terzi molari sono presenti.',
176
+ '<strong>Priorità scheletrica:</strong> se la fusione epifisaria è il reperto meglio documentato.',
177
+ '<strong>Prove miste:</strong> ideale per una panoramica iniziale equilibrata.',
178
+ '<strong>Indice di confidenza:</strong> monitoralo per rilevare discrepanze prima di sovrainterpretare.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Limiti forensi',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'paragraph',
188
+ html: 'La stima dell\'età è un supporto, mai una prova d\'identità. In ambito migratorio, penale o di identificazione vittime, l\'approccio deve essere multidisciplinare. Ogni rapporto deve dettagliare metodo, popolazione di riferimento, qualifiche dell\'osservatore e limitazioni note.',
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Lo strumento serve per <strong>educazione, triage e comunicazione trasparente</strong>. Sottolineiamo perché le conclusioni forensi impongono cautela e perché soglie critiche (come i 18 anni) non possono basarsi esclusivamente su un calcolatore automatizzato.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Check-list per il rapporto forense',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'list',
201
+ items: [
202
+ '<strong>Fonte dei reperti:</strong> Documenta se basati su esame clinico, ortopantomografia o imaging scheletrico (mano-polso, clavicola, ecc.).',
203
+ '<strong>Dati mancanti/deboli:</strong> Indica chiaramente assenze, bassa qualità radiografica o anomalie.',
204
+ '<strong>Validazione:</strong> Assicurati che i metodi scelti siano riconosciuti nella giurisdizione di riferimento.',
205
+ '<strong>Incertezza:</strong> Esprimi sempre un intervallo; evita linguaggi che implichino un\'età cronologica esatta.',
206
+ '<strong>Revisione specialistica:</strong> I casi critici vanno sempre sottoposti a odontologi forensi, radiologi o antropologi.',
207
+ ],
208
+ },
209
+ ],
210
+ faq,
211
+ bibliography,
212
+ howTo,
213
+ schemas: [
214
+ {
215
+ '@context': 'https://schema.org',
216
+ '@type': 'SoftwareApplication',
217
+ name: title,
218
+ description,
219
+ applicationCategory: 'ForensicApplication',
220
+ operatingSystem: 'Any',
221
+ },
222
+ {
223
+ '@context': 'https://schema.org',
224
+ '@type': 'FAQPage',
225
+ mainEntity: faq.map((item) => ({
226
+ '@type': 'Question',
227
+ name: item.question,
228
+ acceptedAnswer: {
229
+ '@type': 'Answer',
230
+ text: item.answer,
231
+ },
232
+ })),
233
+ },
234
+ {
235
+ '@context': 'https://schema.org',
236
+ '@type': 'HowTo',
237
+ name: title,
238
+ step: howTo.map((step) => ({
239
+ '@type': 'HowToStep',
240
+ name: step.name,
241
+ text: step.text,
242
+ })),
243
+ },
244
+ ],
245
+ };