@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.
- package/package.json +69 -0
- package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
- package/scripts/postinstall.mjs +27 -0
- package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
- package/src/category/i18n/de.ts +55 -0
- package/src/category/i18n/en.ts +55 -0
- package/src/category/i18n/es.ts +55 -0
- package/src/category/i18n/fr.ts +55 -0
- package/src/category/i18n/id.ts +55 -0
- package/src/category/i18n/it.ts +55 -0
- package/src/category/i18n/ja.ts +56 -0
- package/src/category/i18n/ko.ts +56 -0
- package/src/category/i18n/nl.ts +55 -0
- package/src/category/i18n/pl.ts +55 -0
- package/src/category/i18n/pt.ts +55 -0
- package/src/category/i18n/ru.ts +55 -0
- package/src/category/i18n/sv.ts +55 -0
- package/src/category/i18n/tr.ts +55 -0
- package/src/category/i18n/zh.ts +56 -0
- package/src/category/index.ts +48 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +10 -0
- package/src/entries.ts +48 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +29 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +162 -0
- package/src/pages/[locale].astro +261 -0
- package/src/pages/index.astro +3 -0
- package/src/tests/diacritics_density.test.ts +140 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +24 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/seo_length.test.ts +46 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/slug_language_code_format.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +16 -0
- package/src/tests/widmark.test.ts +28 -0
- package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
- package/src/tool/forensic-age-estimator/component.astro +321 -0
- package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
- package/src/tool/forensic-age-estimator/entry.ts +32 -0
- package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
- package/src/tool/forensic-age-estimator/index.ts +11 -0
- package/src/tool/forensic-age-estimator/logic.ts +81 -0
- package/src/tool/forensic-age-estimator/seo.astro +15 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
- package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
- package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
- package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
- package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
- package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
- package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
- package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
- package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
- package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
- package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
- package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
- package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
- package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
- package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
- package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
- package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
- package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
- package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
- package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
- package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
- package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
- package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
- package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
- package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
- package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
- package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
- package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
- package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
- package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
- package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
- package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
- package/src/tool/forensic-sex-determinator/component.astro +463 -0
- package/src/tool/forensic-sex-determinator/entry.ts +32 -0
- package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
- package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
- package/src/tool/forensic-sex-determinator/index.ts +11 -0
- package/src/tool/forensic-sex-determinator/logic.ts +89 -0
- package/src/tool/forensic-sex-determinator/seo.astro +15 -0
- package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
- package/src/tool/forensic-stature-estimator/component.astro +49 -0
- package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
- package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
- package/src/tool/forensic-stature-estimator/entry.ts +32 -0
- package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
- package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
- package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
- package/src/tool/forensic-stature-estimator/index.ts +11 -0
- package/src/tool/forensic-stature-estimator/logic.ts +119 -0
- package/src/tool/forensic-stature-estimator/script.ts +288 -0
- package/src/tool/forensic-stature-estimator/seo.astro +15 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
- package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
- package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
- package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
- package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
- package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
- package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
- package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
- package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
- package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
- package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
- package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
- package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
- package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
- package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
- package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
- package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
- package/src/tools.ts +27 -0
- package/src/types.ts +70 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'forensisk-kroppslangdsbedamning-trotter-gleser-kalkylator';
|
|
5
|
+
const title = 'Forensisk Kroppslängdsbedömare';
|
|
6
|
+
const description = 'Uppskatta en individs levande kroppslängd från mänskliga långa ben med Trotter och Glesers regressionsekvationer under hänsyn till biologiskt kön, ursprung och ålderskorrigering.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Välj ben och variabler',
|
|
11
|
+
text: 'Välj det specifika långa benet som ska mätas (Femur, Tibia, Humerus, Fibula, Radius eller Ulna) tillsammans med biologiskt kön, ursprungsgrupp och individens ålder.'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Bestäm benets längd',
|
|
15
|
+
text: 'Justera det skjutbara skjutmåttet på det virtuella osteometriska bordet för att ange benets maximala längd i centimeter.'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Beräkna kroppslängd',
|
|
19
|
+
text: 'Kalkylatorn tillämpar motsvarande Trotter-Gleser-regressionsformler och drar av 0,06 cm per år för individer över 30 år.'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Tolka intervall och felmarginaler',
|
|
23
|
+
text: 'Granska den uppskattade längden, standardfelet (SEE) och det 95-procentiga prediktionsintervallet.'
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Hur fungerar regressionsformlerna från Trotter och Gleser?',
|
|
31
|
+
answer: 'Ekvationerna använder linjär regression för att modellera korrelationen mellan levande kroppslängd och maximallängden på långa ben. Kalkylatorn tillämpar populations- och könsspecifika kofaktorer.'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Varför kräver verktyget biologiskt kön och ursprung?',
|
|
36
|
+
answer: 'Mänskliga kroppsproportioner varierar mellan kön och geografiska populationer. Män har generellt andra förhållanden mellan lemlängd och kroppslängd än kvinnor.'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Varför finns det en ålderskorrigeringsfaktor?',
|
|
41
|
+
answer: 'Kroppslängden minskar gradvis efter tidig vuxenålder på grund av att ryggradens diskar pressas samman. Trotter och Gleser rekommenderade att dra av 0,06 cm för varje år över 30.'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Vad är standardfelet för uppskattningen (SEE)?',
|
|
46
|
+
answer: 'SEE representerar standardavvikelsen för residualerna i regressionsmodellen och visar den typiska avvikelsen från regressionslinjen.'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Vilka långa ben ger de mest exakta uppskattningarna?',
|
|
51
|
+
answer: 'Ben i de nedre lemmarna - särskilt femur och tibia - ger de mest exakta uppskattningarna eftersom de direkt bidrar till en persons höjd. Övre lemmar har högre felmarginaler.'
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
title: 'Forensisk Kroppslängdsbedömare',
|
|
61
|
+
desc: 'Simulera mätningar på ett osteometriskt bord och beräkna levande kroppslängd med linjär regression.',
|
|
62
|
+
configTitle: 'Osteometrisk Konfiguration',
|
|
63
|
+
boneLabel: 'Benpreparat',
|
|
64
|
+
lengthLabel: 'Benlängd',
|
|
65
|
+
unitLabel: 'Systemenhet',
|
|
66
|
+
metricOption: 'Metrisk (cm)',
|
|
67
|
+
imperialOption: 'Imperial (tum)',
|
|
68
|
+
sexLabel: 'Biologiskt Kön',
|
|
69
|
+
ancestryLabel: 'Ursprungsgrupp',
|
|
70
|
+
ageLabel: 'Ålder vid dödsfall (år)',
|
|
71
|
+
maleOption: 'Man',
|
|
72
|
+
femaleOption: 'Kvinna',
|
|
73
|
+
whiteOption: 'Vit / Kaukasisk',
|
|
74
|
+
blackOption: 'Svart / Afroamerikan',
|
|
75
|
+
asianOption: 'Asiat / Mongolid',
|
|
76
|
+
femurName: 'Femur (Lårben)',
|
|
77
|
+
tibiaName: 'Tibia (Skenben)',
|
|
78
|
+
humerusName: 'Humerus (Överarmsben)',
|
|
79
|
+
fibulaName: 'Fibula (Vadben)',
|
|
80
|
+
radiusName: 'Radius (Strålben)',
|
|
81
|
+
ulnaName: 'Ulna (Armbågsben)',
|
|
82
|
+
resultsTitle: 'Resultat för kroppslängdsbedömning',
|
|
83
|
+
estimateLabel: 'Uppskattad Kroppslängd',
|
|
84
|
+
errorLabel: 'Standardfel (SEE)',
|
|
85
|
+
rangeLabel: '95% Prediktionsintervall',
|
|
86
|
+
formulaLabel: 'Regressionsformel',
|
|
87
|
+
formulaBoneFactor: 'Benfaktor',
|
|
88
|
+
formulaConstant: 'Konstant',
|
|
89
|
+
formulaAgeCorrection: 'Ålderskorrigering',
|
|
90
|
+
formulaStdError: 'Standardfel (SEE)',
|
|
91
|
+
fallbackAlert: 'Det finns ingen direkt Trotter-Gleser-formel för asiatiska kvinnor; referensformler för vita kvinnor används som ett forensiskt komplement.',
|
|
92
|
+
boardInstructions: 'Dra skjutmåttet eller använd inmatningsfälten för att mäta benet.',
|
|
93
|
+
rulerLabelMetric: 'Metrisk skala (mm)',
|
|
94
|
+
rulerLabelImperial: 'Imperial skala (in)',
|
|
95
|
+
unitsCm: 'cm',
|
|
96
|
+
unitsInches: 'in',
|
|
97
|
+
unitsFtIn: 'ft/in'
|
|
98
|
+
},
|
|
99
|
+
seo: [
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Omfattande guide till kroppslängdsbedömning inom forensisk antropologi',
|
|
103
|
+
level: 2
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html: 'Uppskattning av kroppslängd är en grundläggande del av biologisk profilering inom fysisk antropologi, bioarkeologi och forensisk vetenskap. När skelettdelar hittas hjälper rekonstruktionen av individens levande höjd utredare att matcha mot register över försvunna personer. Kroppslängden uppskattas genom att mäta maximallängden på långa ben, vilka korrelerar starkt med kroppshöjden.'
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Denna digitala osteometriska simulator gör det möjligt för studenter och forskare att utforska de linjära regressionsmodeller som utvecklades av Mildred Trotter och Goldine C. Gleser. Genom att konfigurera parametrar som bentyp, biologiskt kön, ursprung och ålder kan användaren studera hur kroppsproportioner påverkar formlerna.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Att förstå Trotter-Glesers regressionsformler',
|
|
116
|
+
level: 3
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Mildred Trotter och Goldine C. Gleser publicerade sina regressionsformler under 1950-talet baserat på data från militära dödsfall och anatomiska samlingar. Ekvationerna har formen: Kroppslängd = (Lutning × Benlängd) + Konstant ± Standardfel. Separata formler används för kön och ursprung.'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'table',
|
|
124
|
+
headers: ['Benpreparat', 'Regressionsmodell vita män', 'Regressionsmodell vita kvinnor', 'Forensisk nytta & Tillförlitlighet'],
|
|
125
|
+
rows: [
|
|
126
|
+
['Femur (Lårben)', 'Kroppslängd = 2.32 × Femur + 65.53 ± 3.94 cm', 'Kroppslängd = 2.47 × Femur + 54.10 ± 3.72 cm', 'Högst tillförlitlighet. Femur är det huvudsakliga viktbärande benet i nedre extremiteten.'],
|
|
127
|
+
['Tibia (Skenben)', 'Kroppslängd = 2.42 × Tibia + 81.93 ± 4.00 cm', 'Kroppslängd = 2.90 × Tibia + 61.53 ± 3.66 cm', 'Hög tillförlitlighet. Det är viktigt att mäta utan den mediala malleolen för att stämma överens med Trotters protokoll.'],
|
|
128
|
+
['Fibula (Vadben)', 'Kroppslängd = 2.60 × Fibula + 75.50 ± 3.86 cm', 'Kroppslängd = 2.93 × Fibula + 59.61 ± 3.57 cm', 'Mycket tillförlitlig, men fibula är tunn och ofta fragmenterad i historiska fynd.'],
|
|
129
|
+
['Humerus (Överarmsben)', 'Kroppslängd = 2.89 × Humerus + 78.10 ± 4.57 cm', 'Kroppslängd = 3.36 × Humerus + 57.97 ± 4.45 cm', 'Måttlig tillförlitlighet. Övre lemmar bär inte vikt och uppvisar större standardavvikelser.'],
|
|
130
|
+
['Radius (Strålben)', 'Kroppslängd = 3.79 × Radius + 79.42 ± 4.66 cm', 'Kroppslängd = 4.74 × Radius + 54.93 ± 4.45 cm', 'Lägre tillförlitlighet på grund av stor individuell variation i underarmens proportioner.']
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: 'Åldersrelaterad längdminskning och korrigeringar',
|
|
136
|
+
level: 3
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'paragraph',
|
|
140
|
+
html: 'Kroppslängden är inte konstant genom livet. Från 30 års ålder sker en gradvis minskning av längden på grund av disksammanpressning och förändrad kroppshållning. Trotter och Gleser rekommenderade att dra av 0,06 cm för varje år över 30: Längdförlust = 0,06 × (Ålder - 30).'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'title',
|
|
144
|
+
text: 'Metodologiska avvikelser och tibia-mätprotokoll',
|
|
145
|
+
level: 3
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'paragraph',
|
|
149
|
+
html: 'Ett välkänt problem rör mätningen av skenbenet (tibia). I Trotters studie från 1952 mättes skenbenet utan den mediala malleolen, medan den inkluderades i studien 1958. Att tillämpa 1952 års formler på en tibia som mätts med malleolen leder till en systematisk överskattning.'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
text: 'Sekulära trender och historiska referensdata',
|
|
154
|
+
level: 3
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Eftersom Trotter och Glesers referensdata kommer från personer födda under sena 1800-talet och tidiga 1900-talet, speglar formlerna dåtida levnadsvillkor. Nutida generationer är generellt längre (sekulär trend). Moderna forensiker kompletterar därför ofta formlerna med moderna verktyg som FORDISC.'
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
faq,
|
|
162
|
+
bibliography,
|
|
163
|
+
howTo,
|
|
164
|
+
schemas: [
|
|
165
|
+
{
|
|
166
|
+
'@context': 'https://schema.org',
|
|
167
|
+
'@type': 'SoftwareApplication',
|
|
168
|
+
name: title,
|
|
169
|
+
description,
|
|
170
|
+
applicationCategory: 'ForensicApplication',
|
|
171
|
+
operatingSystem: 'Any'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
'@context': 'https://schema.org',
|
|
175
|
+
'@type': 'FAQPage',
|
|
176
|
+
mainEntity: faq.map((item) => ({
|
|
177
|
+
'@type': 'Question',
|
|
178
|
+
name: item.question,
|
|
179
|
+
acceptedAnswer: {
|
|
180
|
+
'@type': 'Answer',
|
|
181
|
+
text: item.answer
|
|
182
|
+
}
|
|
183
|
+
}))
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'HowTo',
|
|
188
|
+
name: title,
|
|
189
|
+
step: howTo.map((step) => ({
|
|
190
|
+
'@type': 'HowToStep',
|
|
191
|
+
name: step.name,
|
|
192
|
+
text: step.text
|
|
193
|
+
}))
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'adli-boy-uzunlugu-tahmin-edici-trotter-gleser-hesaplayici';
|
|
5
|
+
const title = 'Adli Boy Uzunluğu Tahmin Edici';
|
|
6
|
+
const description = 'Biyolojik cinsiyet, soy ve yaş düzeltmesini dahil ederek Trotter ve Gleser regresyon denklemlerini kullanarak insan uzun kemiklerinden yaşayan boy uzunluğunu tahmin edin.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Kemik ve değişkenleri seçin',
|
|
11
|
+
text: 'Ölçülecek spesifik uzun kemiği (Femur, Tibia, Humerus, Fibula, Radius veya Ulna) ve bireyin biyolojik cinsiyetini, soy grubunu ve yaşını seçin.'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Kemik uzunluğunu belirleyin',
|
|
15
|
+
text: 'Kemik örneğinin santimetre cinsinden maksimum uzunluğunu belirtmek için sanal osteometrik tahta üzerindeki kayar kumpası ayarlayın.'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Tahmini boy uzunluğunu hesaplayın',
|
|
19
|
+
text: 'Hesaplayıcı, 30 yaşın üzerindeki bireyler için her yıl için 0.06 cm çıkararak ilgili Trotter-Gleser regresyon denklemlerini uygular.'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Aralıkları ve hataları yorumlayın',
|
|
23
|
+
text: 'Popülasyon değişkenliğini hesaba katmak için tahmini boy uzunluğunu, Tahminin Standart Hatasını (SEE) ve %95 tahmin aralığını inceleyin.'
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Trotter ve Gleser regresyon denklemleri nasıl çalışır?',
|
|
31
|
+
answer: 'Denklemler, yaşayan boy uzunluğu ile uzun kemiklerin maksimum uzunluğu arasındaki korelasyonu modellemek için doğrusal regresyon kullanır. Kemik uzunluğu girildiğinde, hesaplayıcı spesifik katsayıları uygular.'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Araç neden biyolojik cinsiyet ve soy bilgisi gerektiriyor?',
|
|
36
|
+
answer: 'İnsan vücut oranları cinsiyete ve coğrafi popülasyonlara göre değişir. Erkekler genel olarak kadınlardan farklı uzuv-boy oranlarına sahiptir.'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Boy uzunluğu tahmininde neden yaş düzeltme faktörü var?',
|
|
41
|
+
answer: 'Yaşayan boy uzunluğu, intervertebral disklerin sıkışması ve duruş değişiklikleri nedeniyle erken yetişkinlikten sonra kademeli olarak azalır. Trotter ve Gleser, 30 yaşından sonraki her yıl için 0.06 cm çıkarılmasını önermiştir.'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Tahminin Standart Hatası (SEE) nedir?',
|
|
46
|
+
answer: 'SEE, regresyon modelindeki kalıntıların standart sapmasını temsil eder. Belirli bir kemik için tahmin edilen boyun doğruluğunun bir ölçüsünü sağlar.'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Hangi uzun kemikler en doğru boy tahminlerini sağlar?',
|
|
51
|
+
answer: 'Alt uzuv kemikleri - özellikle femur ve tibia - doğrudan boy uzunluğuna katkıda bulundukları için en doğru boy tahminlerini sağlar. Üst uzuv kemiklerinin standart hataları daha yüksektir.'
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
title: 'Adli Boy Uzunluğu Tahmin Edici',
|
|
61
|
+
desc: 'Osteometrik tahta ölçümlerini simüle edin ve doğrusal regresyon kullanarak yaşayan boy uzunluğunu hesaplayın.',
|
|
62
|
+
configTitle: 'Osteometrik Yapılandırma',
|
|
63
|
+
boneLabel: 'Kemik Örneği',
|
|
64
|
+
lengthLabel: 'Kemik Uzunluğu',
|
|
65
|
+
unitLabel: 'Sistem Birimi',
|
|
66
|
+
metricOption: 'Metrik (cm)',
|
|
67
|
+
imperialOption: 'İmparatorluk (inç)',
|
|
68
|
+
sexLabel: 'Biyolojik Cinsiyet',
|
|
69
|
+
ancestryLabel: 'Soy Grubu',
|
|
70
|
+
ageLabel: 'Ölüm Yaşı (yıl)',
|
|
71
|
+
maleOption: 'Erkek',
|
|
72
|
+
femaleOption: 'Kadın',
|
|
73
|
+
whiteOption: 'Beyaz / Kafkas',
|
|
74
|
+
blackOption: 'Siyah / Afro-Amerikan',
|
|
75
|
+
asianOption: 'Asyalı / Moğoloid',
|
|
76
|
+
femurName: 'Femur (Uyluk kemiği)',
|
|
77
|
+
tibiaName: 'Tibia (Kaval kemiği)',
|
|
78
|
+
humerusName: 'Humerus (Pazı kemiği)',
|
|
79
|
+
fibulaName: 'Fibula (Baldır kemiği)',
|
|
80
|
+
radiusName: 'Radius (Döner kemik)',
|
|
81
|
+
ulnaName: 'Ulna (Dirsek kemiği)',
|
|
82
|
+
resultsTitle: 'Boy Uzunluğu Tahmin Sonuçları',
|
|
83
|
+
estimateLabel: 'Tahmini Boy Uzunluğu',
|
|
84
|
+
errorLabel: 'Standart Hata (SEE)',
|
|
85
|
+
rangeLabel: '%95 Tahmin Aralığı',
|
|
86
|
+
formulaLabel: 'Regresyon Denklemi',
|
|
87
|
+
formulaBoneFactor: 'Kemik Faktörü',
|
|
88
|
+
formulaConstant: 'Sabit',
|
|
89
|
+
formulaAgeCorrection: 'Yaş Düzeltmesi',
|
|
90
|
+
formulaStdError: 'Standart Hata (SEE)',
|
|
91
|
+
fallbackAlert: 'Asyalı kadınlar için doğrudan bir Trotter-Gleser denklemi mevcut değildir; adli bir alternatif olarak Beyaz kadın referans denklemleri kullanılmaktadır.',
|
|
92
|
+
boardInstructions: 'Kemiği ölçmek için kumpas kolunu sürükleyin veya girişleri kullanın.',
|
|
93
|
+
rulerLabelMetric: 'Metrik Ölçek (mm)',
|
|
94
|
+
rulerLabelImperial: 'İmparatorluk Ölçeği (in)',
|
|
95
|
+
unitsCm: 'cm',
|
|
96
|
+
unitsInches: 'in',
|
|
97
|
+
unitsFtIn: 'ft/in'
|
|
98
|
+
},
|
|
99
|
+
seo: [
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Adli Antropolojide Boy Uzunluğu Tahminine İlişkin Kapsamlı Kılavuz',
|
|
103
|
+
level: 2
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html: 'Boy uzunluğu tahmini, fiziksel antropoloji, biyoarkeoloji ve adli tıp bilimlerinde biyolojik profil çıkarmanın temel bir bileşenidir. İskelet kalıntıları bulunduğunda, bireyin yaşayan boyunun yeniden yapılandırılması, araştırmacıların kayıp kişilerin kayıtlarıyla çapraz referans yapmasına yardımcı olur. Boy uzunluğu, genetik ve çevresel faktörlere bağlı iskelet oranları nedeniyle toplam boy ile yakından ilişkili olan uzun kemiklerin maksimum uzunluğu ölçülerek tahmin edilir.'
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Bu dijital osteometrik tahta simülatörü, öğrencilerin ve uygulayıcıların Mildred Trotter ve Goldine C. Gleser tarafından geliştirilen doğrusal regresyon modellerini keşfetmelerine olanak tanır. Kemik tipi, biyolojik cinsiyet, soy ve ölüm yaşı gibi değişkenleri yapılandırarak kullanıcılar vücut oranlarının tahmin üzerindeki etkisini analiz edebilir.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Trotter-Gleser Regresyon Formüllerini Anlamak',
|
|
116
|
+
level: 3
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Mildred Trotter ve Goldine C. Gleser temel boy uzunluğu tahmin denklemlerini 1952 ve 1958 yıllarında yayımlamışlardır. Matematiksel denklemler doğrusal formdadır: Boy Uzunluğu = (Eğim × Kemik Uzunluğu) + Sabit ± Standart Hata. Kemik-boy oranları gruplar arasında değiştiğinden cinsiyet ve soya göre ayrı denklemler kullanılır.'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'table',
|
|
124
|
+
headers: ['Uzun Kemik Örneği', 'Beyaz Erkek Regresyon Modeli', 'Beyaz Kadın Regresyon Modeli', 'Adli Fayda ve Güvenilirlik'],
|
|
125
|
+
rows: [
|
|
126
|
+
['Femur (Uyluk Kemiği)', 'Boy = 2.32 × Femur + 65.53 ± 3.94 cm', 'Boy = 2.47 × Femur + 54.10 ± 3.72 cm', 'En yüksek genel güvenilirlik. Femur, vücut boyuyla doğrudan ilişkili olan birincil ağırlık taşıyan alt uzuv kemiğidir.'],
|
|
127
|
+
['Tibia (Kaval Kemiği)', 'Boy = 2.42 × Tibia + 81.93 ± 4.00 cm', 'Boy = 2.90 × Tibia + 61.53 ± 3.66 cm', 'Yüksek güvenilirlik. Trotter\'ın iç malleolü hariç tutan orijinal protokolüne uymak için dikkat edilmelidir.'],
|
|
128
|
+
['Fibula (Baldır Kemiği)', 'Boy = 2.60 × Fibula + 75.50 ± 3.86 cm', 'Boy = 2.93 × Fibula + 59.61 ± 3.57 cm', 'Oldukça güvenilirdir ancak fibula incedir ve arkeolojik bağlamlarda sıklıkla parçalanır veya kaybolur.'],
|
|
129
|
+
['Humerus (Pazı Kemiği)', 'Boy = 2.89 × Humerus + 78.10 ± 4.57 cm', 'Boy = 3.36 × Humerus + 57.97 ± 4.45 cm', 'Orta düzeyde güvenilirlik. Üst uzuv kemikleri ağırlık taşımaz ve daha yüksek standart hatalara sahiptir.'],
|
|
130
|
+
['Radius (Döner Kemik)', 'Boy = 3.79 × Radius + 79.42 ± 4.66 cm', 'Boy = 4.74 × Radius + 54.93 ± 4.45 cm', 'Düşük güvenilirlik. Ön kol kemikleri boy uzunluğuna oranla önemli gelişimsel farklılıklar gösterir.']
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: 'Yaşa Bağlı Boy Azalması ve Ölüm Sonrası Düzeltmeler',
|
|
136
|
+
level: 3
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'paragraph',
|
|
140
|
+
html: 'Yaşayan boy uzunluğu yetişkinlik boyunca durağan değildir. 30 yaşından itibaren insan vücudunda intervertebral disklerin sıkışması ve postural değişiklikler nedeniyle boy azalması başlar. Trotter ve Gleser, 30 yaşından sonraki her yıl için 0.06 cm çıkarılmasını önermiştir: Boy Kaybı = 0.06 × (Yaş - 30).'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'title',
|
|
144
|
+
text: 'Metodolojik Farklılıklar ve Tibia Ölçüm Protokolleri',
|
|
145
|
+
level: 3
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'paragraph',
|
|
149
|
+
html: 'Adli antropolojide iyi bilinen bir metodolojik sorun, Trotter\'ın tibia ölçümleriyle ilgilidir. 1952 çalışmasında tibia iç malleol hariç tutularak ölçülmüş, ancak 1958 çalışmasında protokol değiştirilmiştir. 1952 denklemlerini malleol dahil ölçülen bir tibiaya uygulamak sistematik boy fazla tahminine yol açar.'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
text: 'Seküler Eğilimler ve Tarihsel Referans Verilerinin Uygulanabilirliği',
|
|
154
|
+
level: 3
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Trotter ve Gleser\'in referans örnekleri 19. yüzyılın sonlarında ve 20. yüzyılın başlarında doğduğundan, denklemleri o dönemin beslenme koşullarını yansıtır. Geçtiğimiz yüzyılda popülasyonlar daha uzun boy ortalamalarına yol açan seküler eğilimler yaşamıştır. Bu nedenle modern vakalarda FORDISC gibi modern referans sistemleri de tercih edilir.'
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
faq,
|
|
162
|
+
bibliography,
|
|
163
|
+
howTo,
|
|
164
|
+
schemas: [
|
|
165
|
+
{
|
|
166
|
+
'@context': 'https://schema.org',
|
|
167
|
+
'@type': 'SoftwareApplication',
|
|
168
|
+
name: title,
|
|
169
|
+
description,
|
|
170
|
+
applicationCategory: 'ForensicApplication',
|
|
171
|
+
operatingSystem: 'Any'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
'@context': 'https://schema.org',
|
|
175
|
+
'@type': 'FAQPage',
|
|
176
|
+
mainEntity: faq.map((item) => ({
|
|
177
|
+
'@type': 'Question',
|
|
178
|
+
name: item.question,
|
|
179
|
+
acceptedAnswer: {
|
|
180
|
+
'@type': 'Answer',
|
|
181
|
+
text: item.answer
|
|
182
|
+
}
|
|
183
|
+
}))
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'HowTo',
|
|
188
|
+
name: title,
|
|
189
|
+
step: howTo.map((step) => ({
|
|
190
|
+
'@type': 'HowToStep',
|
|
191
|
+
name: step.name,
|
|
192
|
+
text: step.text
|
|
193
|
+
}))
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'forensic-stature-estimation-skeletal-remains-trotter-gleser-calculator';
|
|
5
|
+
const title = '法医身高推定计算器';
|
|
6
|
+
const description = '根据 Mildred Trotter 和 Goldine Gleser 的线性回归方程,结合生物学性别、祖先群体和年龄校正,从人类长骨测量值推定生前身高。';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '选择骨骼和变量',
|
|
11
|
+
text: '选择要测量的特定长骨(股骨、胫骨、肱骨、腓骨、桡骨或尺骨),以及个体的生物学性别、祖先群体和死亡年龄。'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: '测定骨骼长度',
|
|
15
|
+
text: '在虚拟骨度板上调整滑动卡尺,以厘米为单位设定长骨标本的最大长度。'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: '计算推定身高',
|
|
19
|
+
text: '计算器自动应用相应的 Trotter-Gleser 回归方程,对 30 岁以上的个体每年扣减 0.06 厘米。'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: '解读区间和误差',
|
|
23
|
+
text: '查看推定身高、估算标准误差 (SEE) 和 95% 预测区间,以考虑群体变异性。'
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Trotter 和 Gleser 回归方程是如何运作的?',
|
|
31
|
+
answer: '这些方程使用线性回归来模拟生前身高与长骨最大长度之间的相关性。输入骨骼长度后,计算器应用特定的人群斜率和常数。'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: '为什么需要输入性别和祖先?',
|
|
36
|
+
answer: '人类的身体比例因性别和地理人群而异。男性的肢体与身高比例通常与女性不同,不同祖先群体也表现出独特发育比例。'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: '为什么身高推定中需要年龄校正?',
|
|
41
|
+
answer: '成年早期过后,由于椎间盘压缩和姿势改变,人的身高会逐渐缩短。Trotter 和 Gleser 建议对 30 岁以后的年龄每年扣减 0.06 厘米。'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: '什么是估算标准误差 (SEE)?',
|
|
46
|
+
answer: 'SEE 代表回归模型中残差的标准差,用于衡量特定骨骼预测身高的精确度。'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: '哪些长骨能提供最准确的身高推定?',
|
|
51
|
+
answer: '下肢骨(尤其是股骨和胫骨)能提供最准确的身高估计,因为它们直接构成人体的站立高度。上肢骨的标准误差较大。'
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
title: '法医身高推定计算器',
|
|
61
|
+
desc: '模拟骨度板测量,并使用线性回归法推算生前身高。',
|
|
62
|
+
configTitle: '骨测量配置',
|
|
63
|
+
boneLabel: '骨骼标本',
|
|
64
|
+
lengthLabel: '骨骼长度',
|
|
65
|
+
unitLabel: '单位系统',
|
|
66
|
+
metricOption: '公制 (cm)',
|
|
67
|
+
imperialOption: '英制 (in)',
|
|
68
|
+
sexLabel: '生物学性别',
|
|
69
|
+
ancestryLabel: '祖先群体',
|
|
70
|
+
ageLabel: '死亡 age (岁)',
|
|
71
|
+
maleOption: '男性',
|
|
72
|
+
femaleOption: '女性',
|
|
73
|
+
whiteOption: '白人 / 高加索人',
|
|
74
|
+
blackOption: '黑人 / 非裔美国人',
|
|
75
|
+
asianOption: '亚洲人 / 蒙古人种',
|
|
76
|
+
femurName: '股骨 (大腿骨)',
|
|
77
|
+
tibiaName: '胫骨 (小腿骨)',
|
|
78
|
+
humerusName: '肱骨 (上臂骨)',
|
|
79
|
+
fibulaName: '腓骨 (小腿外侧骨)',
|
|
80
|
+
radiusName: '桡骨 (前臂外侧骨)',
|
|
81
|
+
ulnaName: '尺骨 (前臂内侧骨)',
|
|
82
|
+
resultsTitle: '身高推定结果',
|
|
83
|
+
estimateLabel: '推定身高',
|
|
84
|
+
errorLabel: '标准误差 (SEE)',
|
|
85
|
+
rangeLabel: '95% 预测区间',
|
|
86
|
+
formulaLabel: '回归方程',
|
|
87
|
+
formulaBoneFactor: '骨骼因子',
|
|
88
|
+
formulaConstant: '常数',
|
|
89
|
+
formulaAgeCorrection: '年龄校正',
|
|
90
|
+
formulaStdError: '标准误差 (SEE)',
|
|
91
|
+
fallbackAlert: '目前没有针对亚洲女性的直接 Trotter-Gleser 回归方程;已使用白人女性的参考方程作为法医学替代参考。',
|
|
92
|
+
boardInstructions: '拖动卡尺手柄或使用输入框来测量骨骼长度。',
|
|
93
|
+
rulerLabelMetric: '公制刻度 (mm)',
|
|
94
|
+
rulerLabelImperial: '英制刻度 (in)',
|
|
95
|
+
unitsCm: '厘米',
|
|
96
|
+
unitsInches: '英寸',
|
|
97
|
+
unitsFtIn: '英尺/英寸'
|
|
98
|
+
},
|
|
99
|
+
seo: [
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: '法医人类学中身高推定方法的全面指南',
|
|
103
|
+
level: 2
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html: '身高推定是体质人类学、生物考古学和法医学中建立生物学特征的关键环节。在发现骨骼遗骸时,重建死者的生前身高有助于调查人员与失踪人员记录进行比对。通过测量与身高密切相关的长骨最大长度来推定身高。'
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: '本数字骨度板模拟器旨在帮助学生和从业人员研究由 Mildred Trotter 和 Goldine C. Gleser 建立的线性回归模型。'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: '理解 Trotter-Gleser 回归公式',
|
|
116
|
+
level: 3
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Mildred Trotter 和 Goldine C. Gleser 分别于 1952 年和 1958 年发表了其经典的身高推定公式。公式形式为:身高 = (斜率 × 骨长) + 常数 ± 标准误差。针对不同的性别和祖先群体使用不同的公式。'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'table',
|
|
124
|
+
headers: ['长骨标本', '白人男性回归模型', '白人女性回归模型', '法医学实用性与可靠性'],
|
|
125
|
+
rows: [
|
|
126
|
+
['股骨 (Femur)', '身高 = 2.32 × 股骨 + 65.53 ± 3.94 厘米', '身高 = 2.47 × 股骨 + 54.10 ± 3.72 厘米', '可靠性最高。股骨是下肢主要的负重骨,与身高直接相关。'],
|
|
127
|
+
['胫骨 (Tibia)', '身高 = 2.42 × 胫骨 + 81.93 ± 4.00 厘米', '身高 = 2.90 × 胫骨 + 61.53 ± 3.66 厘米', '可靠性高。必须注意遵循 Trotter 的原始测量规范,即不包括内踝。'],
|
|
128
|
+
['腓骨 (Fibula)', '身高 = 2.60 × 腓骨 + 75.50 ± 3.86 厘米', '身高 = 2.93 × 腓骨 + 59.61 ± 3.57 厘米', '十分可靠,但在考古遗骸中腓骨较细,经常发生碎裂或缺失。'],
|
|
129
|
+
['肱骨 (Humerus)', '身高 = 2.89 × 肱骨 + 78.10 ± 4.57 厘米', '身高 = 3.36 × 肱骨 + 57.97 ± 4.45 厘米', '可靠性中等。上肢骨不负重,标准误差较大。'],
|
|
130
|
+
['桡骨 (Radius)', '身高 = 3.79 × 桡骨 + 79.42 ± 4.66 厘米', '身高 = 4.74 × 桡骨 + 54.93 ± 4.45 厘米', '可靠性较低。前臂骨骼的发育比例个体差异较大。']
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: '年龄相关身高萎缩与生前校正',
|
|
136
|
+
level: 3
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'paragraph',
|
|
140
|
+
html: '成人的身高在生命后期并非静止不变。从 30 岁起,由于椎间盘受压等生理变化,人的身高会逐渐变矮。Trotter 和 Gleser 建议对 30 岁以后的年龄每年扣减 0.06 厘米:身高丧失量 = 0.06 × (年龄 - 30)。'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'title',
|
|
144
|
+
text: '胫骨测量规范的方法学差异',
|
|
145
|
+
level: 3
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'paragraph',
|
|
149
|
+
html: '法医人类学中一个广为人知的方法学问题是 Trotter 对胫骨的测量。在 1952 年的研究中,测量不包括内踝,而在 1958 年的后续研究中则包括了内踝。如果将 1952 年公式应用到包含内踝测得 invest 的胫骨上,会导致系统性偏高。'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
text: '长期趋势与历史参考数据的局限性',
|
|
154
|
+
level: 3
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Trotter-Gleser 的样本多出生于 19 世纪末和 20 世纪初,反映了当时的营养水平。在过去一个世纪中,随着膳食营养的改善,人类的平均身高有所增加(即长期趋高趋势)。因此,在现代法医实务中,常配合 FORDISC 等现代数据库进行分析。'
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
faq,
|
|
162
|
+
bibliography,
|
|
163
|
+
howTo,
|
|
164
|
+
schemas: [
|
|
165
|
+
{
|
|
166
|
+
'@context': 'https://schema.org',
|
|
167
|
+
'@type': 'SoftwareApplication',
|
|
168
|
+
name: title,
|
|
169
|
+
description,
|
|
170
|
+
applicationCategory: 'ForensicApplication',
|
|
171
|
+
operatingSystem: 'Any'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
'@context': 'https://schema.org',
|
|
175
|
+
'@type': 'FAQPage',
|
|
176
|
+
mainEntity: faq.map((item) => ({
|
|
177
|
+
'@type': 'Question',
|
|
178
|
+
name: item.question,
|
|
179
|
+
acceptedAnswer: {
|
|
180
|
+
'@type': 'Answer',
|
|
181
|
+
text: item.answer
|
|
182
|
+
}
|
|
183
|
+
}))
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'HowTo',
|
|
188
|
+
name: title,
|
|
189
|
+
step: howTo.map((step) => ({
|
|
190
|
+
'@type': 'HowToStep',
|
|
191
|
+
name: step.name,
|
|
192
|
+
text: step.text
|
|
193
|
+
}))
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { forensicStatureEstimator } from './entry';
|
|
2
|
+
import type { ToolDefinition } from '../../types';
|
|
3
|
+
|
|
4
|
+
export * from './entry';
|
|
5
|
+
|
|
6
|
+
export const FORENSIC_STATURE_ESTIMATOR_TOOL: ToolDefinition = {
|
|
7
|
+
entry: forensicStatureEstimator,
|
|
8
|
+
Component: () => import('./component.astro'),
|
|
9
|
+
SEOComponent: () => import('./seo.astro'),
|
|
10
|
+
BibliographyComponent: () => import('./bibliography.astro')
|
|
11
|
+
};
|