@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,243 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'simulador-forense-cromatografia-camada-delgada-tlc-tintas';
|
|
5
|
+
const title = 'Simulador Forense de Cromatografia em Camada Delgada (TLC) de Tintas';
|
|
6
|
+
const description = 'Simule a cromatografia em camada delgada de tintas de escrita questionadas, visualize o desenvolvimento da frente do solvente, separe as bandas de corante e calcule os valores exatos de Rf para cada pigmento.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Escolher a tinta questionada ou caneta de comparação',
|
|
11
|
+
text: 'Selecione a tinta da carta de resgate ou o perfil de uma caneta suspeita. Cada tinta contém um grupo diferente de componentes corantes com polaridades e afinidades distintas pela fase estacionária.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Selecionar a fase móvel',
|
|
15
|
+
text: 'Altere o sistema de solventes para ver como a polaridade do solvente altera o desenvolvimento capilar e a migração relativa de cada banda de corante.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Desenvolver a placa de TLC',
|
|
19
|
+
text: 'Mova o controle deslizante de tempo de desenvolvimento e observe a frente do solvente subir pela placa enquanto as bandas separadas aparecem acima da linha de origem.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Ler a tabela de Rf',
|
|
23
|
+
text: 'Compare a distância de cada pigmento com a distância da frente do solvente. O simulador calcula o Rf dividindo la distância do pigmento pela distância da frente do solvente.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'O que significa Rf na cromatografia em camada delgada?',
|
|
31
|
+
answer: 'Rf é o fator de retenção (retention factor): a distância percorrida pelo composto dividida pela distância percorrida pela frente do solvente a partir da mesma linha de origem. É adimensional e varia normalmente entre 0 e 1.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'A TLC pode provar que duas amostras de tinta vieram da mesma caneta?',
|
|
36
|
+
answer: 'Não. A TLC pode mostrar se os padrões de corantes são consistentes ou inconsistentess, mas a atribuição de origem exige métodos de comparação validados, controles, documentação e interpretação de um especialista.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Por que a alteração do solvente altera o padrão das bandas?',
|
|
41
|
+
answer: 'Os corantes distribuem-se de maneira diferente entre a fase estacionária e a fase móvel. Um solvente com melhor afinidade de polaridade pode arrastar um corante para mais longe, aumentando seu valor de Rf.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'O que significa se a linha de origem for importante?',
|
|
46
|
+
answer: 'Tanto a distância da frente do solvente quanto a distância do pigmento devem ser medidas a partir da linha de origem. Medir a partir da base da placa gera valores de Rf incorretos.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
chamberAria: 'Câmara de cromatografia em camada delgada com placa de desenvolvimento',
|
|
56
|
+
rulerAria: 'Régua milimétrica virtual para medir a frente do solvente e as bandas de pigmento',
|
|
57
|
+
rulerMarks: '80,60,40,20,0',
|
|
58
|
+
units: 'Sistema de unidades',
|
|
59
|
+
metric: 'Métrico',
|
|
60
|
+
imperial: 'Imperial',
|
|
61
|
+
unitMillimeter: 'mm',
|
|
62
|
+
unitInch: 'in',
|
|
63
|
+
unitMinute: 'min',
|
|
64
|
+
inkSample: 'Amostra de tinta',
|
|
65
|
+
ransomNote: 'Tinta da nota de resgate questionada',
|
|
66
|
+
bluePen: 'Caneta esferográfica azul apreendida',
|
|
67
|
+
blackPen: 'Caneta esferográfica preta apreendida',
|
|
68
|
+
gelPen: 'Caneta gel apreendida',
|
|
69
|
+
solventSystem: 'Fase móvel',
|
|
70
|
+
ethanolWater: 'Etanol / água',
|
|
71
|
+
butanolAcetic: 'Butanol / ácido acético',
|
|
72
|
+
isopropanolAmmonia: 'Isopropanol / amônia',
|
|
73
|
+
developmentTime: 'Tempo de desenvolvimento',
|
|
74
|
+
frontDistance: 'Caminho do solvente',
|
|
75
|
+
matchScore: 'Semelhança do padrão',
|
|
76
|
+
solventFront: 'Frente do solvente',
|
|
77
|
+
originLine: 'Origem',
|
|
78
|
+
pigment: 'Banda de pigmento',
|
|
79
|
+
pigmentCyanDye: 'corante ciano',
|
|
80
|
+
pigmentVioletDye: 'corante violeta',
|
|
81
|
+
pigmentGrayCarrier: 'veículo cinza',
|
|
82
|
+
pigmentNavyDye: 'corante azul-marinho',
|
|
83
|
+
pigmentYellowDye: 'corante amarelo',
|
|
84
|
+
pigmentRedDye: 'corante vermelho',
|
|
85
|
+
pigmentBlueDye: 'corante azul',
|
|
86
|
+
pigmentDarkBinder: 'aglutinante escuro',
|
|
87
|
+
pigmentTealDye: 'corante verde-azulado',
|
|
88
|
+
pigmentMagentaDye: 'corante magenta',
|
|
89
|
+
pigmentGelBinder: 'aglutinante de gel',
|
|
90
|
+
distance: 'Distância',
|
|
91
|
+
rfValue: 'Valor Rf',
|
|
92
|
+
disclaimer: 'Simulação apenas para fins educativos. A comparação forense de tintas exige documentos originais, métodos laboratoriais validados, padrões de referência e peritos em documentos qualificados.',
|
|
93
|
+
},
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Cromatografia em Camada Delgada para Comparação Forense de Tintas',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'diagnostic',
|
|
102
|
+
variant: 'info',
|
|
103
|
+
icon: 'mdi:test-tube',
|
|
104
|
+
badge: 'Simulador educativo',
|
|
105
|
+
title: 'O que este simulador de tinta TLC ajuda você a entender',
|
|
106
|
+
html: 'Esta ferramenta explica como a <strong>cromatografia em camada delgada de tintas de escrita</strong> pode separar uma linha de tinta visível em várias bandas de corante. Destina-se a estudantes de ciências forenses, aprendizes de exame de documentos e a qualquer pessoa que procure compreender como os valores de Rf são calculados a partir de uma placa de TLC desenvolvida.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'stats',
|
|
110
|
+
columns: 4,
|
|
111
|
+
items: [
|
|
112
|
+
{ value: 'Rf = d banda / d solvente', label: 'fórmula do fator de retenção', icon: 'mdi:division' },
|
|
113
|
+
{ value: '4', label: 'perfis de tinta comparados', icon: 'mdi:pen' },
|
|
114
|
+
{ value: '3', label: 'fases móveis simuladas', icon: 'mdi:flask-outline' },
|
|
115
|
+
{ value: '2', label: 'leituras métricas e imperiais', icon: 'mdi:swap-horizontal' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'summary',
|
|
120
|
+
title: 'Checklist para medições corretas de TLC',
|
|
121
|
+
items: [
|
|
122
|
+
'Marque a linha de origem acima do nível do solvente antes de iniciar o desenvolvimento.',
|
|
123
|
+
'Remova a placa antes que o solvente atinja a borda superior.',
|
|
124
|
+
'Marque a frente do solvente imediatamente, pois ela pode evaporar ou tornar-se difícil de ver.',
|
|
125
|
+
'Meça o percurso do pigmento e o do solvente a partir da mesma linha de origem.',
|
|
126
|
+
'Relate os valores de Rf juntamente com o sistema de solventes, o tipo de placa, as condições de desenvolvimento e os controles.',
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'comparative',
|
|
131
|
+
columns: 2,
|
|
132
|
+
items: [
|
|
133
|
+
{
|
|
134
|
+
title: 'O que a TLC pode apoiar',
|
|
135
|
+
icon: 'mdi:check-circle-outline',
|
|
136
|
+
highlight: true,
|
|
137
|
+
description: 'A TLC pode mostrar se as tintas questionadas e conhecidas têm um comportamento semelhante de separação de corantes sob as mesmas condições.',
|
|
138
|
+
points: ['Comparação de triagem', 'Visualização do padrão de corantes', 'Documentação do Rf', 'Seleção de amostras para testes de confirmação'],
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
title: 'O que a TLC não pode provar sozinha',
|
|
142
|
+
icon: 'mdi:alert-circle-outline',
|
|
143
|
+
description: 'A TLC por si só não pode identificar exclusivamente uma caneta, datar um documento ou provar a autoria.',
|
|
144
|
+
points: ['Sem atribuição de fonte única', 'Sem identificação do escritor', 'Sem conclusão de envelhecimento por padrão', 'Não substitui protocolos validados'],
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['Pergunta comum', 'Conceito de TLC envolvido', 'Resposta detalhada'],
|
|
151
|
+
rows: [
|
|
152
|
+
['Como se calcula o Rf?', 'Distância do corante dividida pela distância da frente do solvente.', 'Meça ambos a partir da linha de origem e depois divida. O resultado não tem unidade.'],
|
|
153
|
+
['Por que as tintas se dividem em cores?', 'Diferentes corantes têm afinidades distintas pelas fases estacionária e móvel.', 'Um único traço escrito pode conter vários corantes que migram a taxas diferentes.'],
|
|
154
|
+
['Podem duas canetas ter o mesmo padrão de TLC?', 'Sim, formulações semelhantes podem produzir padrões muito próximos.', 'A semelhança apoia a consistência, não a individualização a uma única caneta.'],
|
|
155
|
+
['Por que o meu Rf mudou?', 'Solvente, placa, umidade, saturação, temperatura e tamanho da aplicação afetam a migração.', 'Os valores de Rf só são comparáveis quando as condições são controladas e documentadas.'],
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Como o simulador modela a separação',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'paragraph',
|
|
165
|
+
html: 'O modelo trata o movimento da frente do solvente como um processo de ascensão capilar que abranda ao longo do tempo, enquanto a cada corante é atribuído um valor de Rf baseado em duas propriedades simplificadas: a sua afinidade com o solvente em movimento e a sua correspondência de polaridade com a fase móvel selecionada. Isso é intencionadamente educativo e não química de nível de instrumentação, mas preserva a relação essencial que os utilizadores precisam de aprender: o solvente move-se primeiro, os corantes dividem-se entre as fases e o Rf é calculado a partir das distâncias de percurso medidas.',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'A cromatografia em camada delgada é uma técnica analítica amplamente aceita em laboratórios forenses devido à sua simplicidade, rapidez e custo-benefício. No contexto do exame de documentos, é utilizada principalmente para comparar as composições de corante de diferentes amostras de tinta. Os cientistas forenses extraem uma pequena amostra de tinta de um documento questionado utilizando um bisturi ou uma agulha oca, dissolvem-na num solvente adequado como piridina ou metanol, e aplicam-na na placa de TLC juntamente com padrões de tinta de referência.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'Depois de a placa ser desenvolvida numa câmara fechada, os componentes individuais da tinta separam-se com base na sua partilha de distribuição diferencial entre a fase estacionária de gel de sílica e a fase móvel do solvente. O cromatograma resultante fornece uma impressão digital visual da tinta, apresentando bandas de cores distintas a alturas específicas. Os peritos em documentos calculam então o fator de retenção para cada banda de corante visível, ajudando a determinar se a tinta questionada é quimicamente consistente com um instrumento de escrita suspeito ou se corresponde a uma marca e fórmula conhecidas numa base de dados de referência de tintas.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'glossary',
|
|
177
|
+
items: [
|
|
178
|
+
{ term: 'Fase estacionária', definition: 'O revestimento na placa de TLC, normalmente gel de sílica, que interage com os compostos e retarda o seu movimento.' },
|
|
179
|
+
{ term: 'Fase móvel', definition: 'O sistema de solventes que sobe pela placa e arrasta consigo os componentes do corante.' },
|
|
180
|
+
{ term: 'Línea de origem', definition: 'A linha a lápis onde a amostra de tinta é aplicada antes do desenvolvimento.' },
|
|
181
|
+
{ term: 'Frente do solvente', definition: 'O ponto mais alto atingido pela fase móvel antes de a placa ser removida.' },
|
|
182
|
+
{ term: 'Valor Rf', definition: 'O fator de retenção: distância de percurso do composto dividida pela distância de percurso da frente do solvente.' },
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
type: 'tip',
|
|
187
|
+
title: 'Conselho prático de interpretação',
|
|
188
|
+
html: 'No exame forense de documentos, uma divergência pode ser especialmente útil porque pode excluir a formulação de uma caneta candidata. Um padrão de TLC coincidente é uma indicação mais fraca: diz apenas que as amostras são quimicamente consistentes sob aquelas condições, não que tenham vindo necessariamente da mesma caneta.',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: 'proscons',
|
|
192
|
+
title: 'Pontos fortes e limites da comparação de tintas por TLC',
|
|
193
|
+
items: [
|
|
194
|
+
{ pro: 'Rápido, econômico e visualmente intuitivo para separar os corantes das tintas.', con: 'Normalmente destrutivo, pois uma pequena amostra é extraída do documento.' },
|
|
195
|
+
{ pro: 'Os valores de Rf criam uma forma estruturada de comparar amostras questionadas e conhecidas.', con: 'Os valores de Rf mudam quando variam o solvente, a placa, a umidade e as condições de desenvolvimento.' },
|
|
196
|
+
{ pro: 'Útil como método de triagem antes de análises mais avançadas.', con: 'Não pode levar a uma conclusão inequívoca sobre a caneta de origem sem provas adicionais mais amplas.' },
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'diagnostic',
|
|
201
|
+
variant: 'warning',
|
|
202
|
+
icon: 'mdi:scale-balance',
|
|
203
|
+
badge: 'Precaução forense',
|
|
204
|
+
title: 'Não sobrestime a cromatografia de tintas',
|
|
205
|
+
html: 'Uma simulação de navegador não pode examinar papel, idade da tinta, química de extração, qualidade da placa, contaminação ou confirmação instrumental. Utilize-a para aprender a lógica de medição e os limites de interpretação, e confie em métodos validados de exame forense de documentos para as provas reais.',
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
faq,
|
|
209
|
+
bibliography,
|
|
210
|
+
howTo,
|
|
211
|
+
schemas: [
|
|
212
|
+
{
|
|
213
|
+
'@context': 'https://schema.org',
|
|
214
|
+
'@type': 'SoftwareApplication',
|
|
215
|
+
name: title,
|
|
216
|
+
description,
|
|
217
|
+
applicationCategory: 'ForensicApplication',
|
|
218
|
+
operatingSystem: 'Any',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
'@context': 'https://schema.org',
|
|
222
|
+
'@type': 'FAQPage',
|
|
223
|
+
mainEntity: faq.map((item) => ({
|
|
224
|
+
'@type': 'Question',
|
|
225
|
+
name: item.question,
|
|
226
|
+
acceptedAnswer: {
|
|
227
|
+
'@type': 'Answer',
|
|
228
|
+
text: item.answer,
|
|
229
|
+
},
|
|
230
|
+
})),
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
'@context': 'https://schema.org',
|
|
234
|
+
'@type': 'HowTo',
|
|
235
|
+
name: title,
|
|
236
|
+
step: howTo.map((step) => ({
|
|
237
|
+
'@type': 'HowToStep',
|
|
238
|
+
name: step.name,
|
|
239
|
+
text: step.text,
|
|
240
|
+
})),
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
};
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'kriminalisticheskiy-simulyator-khromatografii-chernil-tskh';
|
|
5
|
+
const title = 'Криминалистический симулятор хроматографии чернил (ТСХ)';
|
|
6
|
+
const description = 'Симулируйте тонкослойную хроматографию исследуемых чернил, визуализируйте движение фронта растворителя, разделяйте зоны красителей и рассчитывайте точные значения Rf для каждого пигмента.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Выберите исследуемые чернила или ручку для сравнения',
|
|
11
|
+
text: 'Выберите чернила с записки с требованием выкупа или профиль подозреваемой ручки. Каждые чернила содержат уникальный набор красителей с разной полярностью и сродством к неподвижной фазе.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Выберите подвижную фазу',
|
|
15
|
+
text: 'Измените систему растворителей, чтобы увидеть, как полярность растворителя влияет на капиллярное поднятие и относительное перемещение каждой зоны красителя.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Проявите пластину ТСХ',
|
|
19
|
+
text: 'Перемещайте ползунок времени проявления и наблюдайте, как фронт растворителя поднимается по пластине, а разделенные зоны красителей появляются выше линии старта.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Проанализируйте таблицу значений Rf',
|
|
23
|
+
text: 'Сравните расстояние, пройденное каждым пигментом, с расстоянием, пройденным фронтом растворителя. Симулятор рассчитывает Rf как отношение расстояния пигмента к расстоянию фронта растворителя.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Что означает Rf в тонкослойной хроматографии?',
|
|
31
|
+
answer: 'Rf - это коэффициент удержания (retention factor): расстояние, пройденное веществом, деленное на расстояние, пройденное фронтом растворителя от одной и той же линии старта. Это безразмерная величина, обычно лежащая в диапазоне от 0 до 1.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Может ли ТСХ доказать, что два образца чернил были написаны одной ручкой?',
|
|
36
|
+
answer: 'Нет. ТСХ может показать, совпадают ли паттерны красителей или нет, но установление источника происхождения требует валидированных методов сравнения, контроля, документирования и экспертной оценки.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Почему смена растворителя меняет расположение зон?',
|
|
41
|
+
answer: 'Красители распределяются по-разному между неподвижной и подвижной фазами. Растворитель с более близкой полярностью переносит краситель дальше, увеличивая его значение Rf.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Почему важна линия старта?',
|
|
46
|
+
answer: 'Расстояние фронта растворителя и расстояние пигмента должны измеряться строго от линии старта. Измерение от нижнего края пластины приводит к неверным значениям Rf.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
chamberAria: 'Хроматографическая камера для ТСХ с пластиной',
|
|
56
|
+
rulerAria: 'Виртуальная миллиметровая линейка для измерения фронта растворителя и зон пигментов',
|
|
57
|
+
rulerMarks: '80,60,40,20,0',
|
|
58
|
+
units: 'Система единиц',
|
|
59
|
+
metric: 'Метрическая',
|
|
60
|
+
imperial: 'Имперская',
|
|
61
|
+
unitMillimeter: 'мм',
|
|
62
|
+
unitInch: 'дюйм',
|
|
63
|
+
unitMinute: 'мин',
|
|
64
|
+
inkSample: 'Образец чернил',
|
|
65
|
+
ransomNote: 'Исследуемые чернила с записки',
|
|
66
|
+
bluePen: 'Изъятая синяя шариковая ручка',
|
|
67
|
+
blackPen: 'Изъятая черная шариковая ручка',
|
|
68
|
+
gelPen: 'Изъятая гелевая ручка',
|
|
69
|
+
solventSystem: 'Подвижная фаза',
|
|
70
|
+
ethanolWater: 'Этанол / вода',
|
|
71
|
+
butanolAcetic: 'Бутанол / уксусная кислота',
|
|
72
|
+
isopropanolAmmonia: 'Изопропанол / аммиак',
|
|
73
|
+
developmentTime: 'Время проявления',
|
|
74
|
+
frontDistance: 'Путь растворителя',
|
|
75
|
+
matchScore: 'Сходство паттерна',
|
|
76
|
+
solventFront: 'Фронт растворителя',
|
|
77
|
+
originLine: 'Старт',
|
|
78
|
+
pigment: 'Зона пигмента',
|
|
79
|
+
pigmentCyanDye: 'ционовый краситель',
|
|
80
|
+
pigmentVioletDye: 'фиолетовый краситель',
|
|
81
|
+
pigmentGrayCarrier: 'серый носитель',
|
|
82
|
+
pigmentNavyDye: 'темно-синий краситель',
|
|
83
|
+
pigmentYellowDye: 'желтый краситель',
|
|
84
|
+
pigmentRedDye: 'красный краситель',
|
|
85
|
+
pigmentBlueDye: 'синий краситель',
|
|
86
|
+
pigmentDarkBinder: 'темное связующее',
|
|
87
|
+
pigmentTealDye: 'бирюзовый краситель',
|
|
88
|
+
pigmentMagentaDye: 'пурпурный краситель',
|
|
89
|
+
pigmentGelBinder: 'гелевое связующее',
|
|
90
|
+
distance: 'Расстояние',
|
|
91
|
+
rfValue: 'Значение Rf',
|
|
92
|
+
disclaimer: 'Только для образовательных целей. Криминалистическое исследование чернил требует оригинальных документов, валидированных лабораторных методов, эталонных стандартов и квалифицированных экспертов-почерковедов.',
|
|
93
|
+
},
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Тонкослойная хроматография для криминалистического исследования чернил',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'diagnostic',
|
|
102
|
+
variant: 'info',
|
|
103
|
+
icon: 'mdi:test-tube',
|
|
104
|
+
badge: 'Обучающий симулятор',
|
|
105
|
+
title: 'Что помогает понять этот симулятор ТСХ чернил',
|
|
106
|
+
html: 'Этот инструмент объясняет, как <strong>тонкослойная хроматография чернил</strong> разделяет видимую линию штриха на несколько зон красителей. Он разработан для студентов-криминалистов, начинающих экспертов-документоведов и всех, кто хочет понять, как рассчитываются значения Rf по проявленной пластине ТСХ.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'stats',
|
|
110
|
+
columns: 4,
|
|
111
|
+
items: [
|
|
112
|
+
{ value: 'Rf = d зоны / d фронта', label: 'формула коэффициента удержания', icon: 'mdi:division' },
|
|
113
|
+
{ value: '4', label: 'сравниваемых профиля чернил', icon: 'mdi:pen' },
|
|
114
|
+
{ value: '3', label: 'симулируемых подвижных фазы', icon: 'mdi:flask-outline' },
|
|
115
|
+
{ value: '2', label: 'метрическая и имперская шкалы', icon: 'mdi:swap-horizontal' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'summary',
|
|
120
|
+
title: 'Чек лист для правильного измерения ТСХ',
|
|
121
|
+
items: [
|
|
122
|
+
'Отметьте линию старта карандашом выше уровня растворителя перед началом проявления.',
|
|
123
|
+
'Извлеките пластину до того, как растворитель достигнет верхнего края.',
|
|
124
|
+
'Отметьте фронт растворителя сразу же, так как он испаряется и быстро становится невидимым.',
|
|
125
|
+
'Измеряйте путь пигмента и путь растворителя от одной и той же линии старта.',
|
|
126
|
+
'Указывайте значения Rf вместе с системой растворителей, типом пластины, условиями проявления и контрольными образцами.',
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'comparative',
|
|
131
|
+
columns: 2,
|
|
132
|
+
items: [
|
|
133
|
+
{
|
|
134
|
+
title: 'Что может подтвердить ТСХ',
|
|
135
|
+
icon: 'mdi:check-circle-outline',
|
|
136
|
+
highlight: true,
|
|
137
|
+
description: 'ТСХ может показать, имеют ли исследуемые и эталонные чернила схожий характер разделения красителей в одинаковых условиях.',
|
|
138
|
+
points: ['Сравнительный скрининг', 'Визуализация паттерна красителей', 'Документирование Rf', 'Отбор проб для подтверждающего анализа'],
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
title: 'Что не может доказать ТСХ в одиночку',
|
|
142
|
+
icon: 'mdi:alert-circle-outline',
|
|
143
|
+
description: 'ТСХ сама по себе не может однозначно идентифицировать ручку, датировать документ или доказать авторство.',
|
|
144
|
+
points: ['Отсутствие уникальной идентификации источника', 'Невозможно идентифицировать исполнителя', 'Не позволяет определить возраст штрихов', 'Не заменяет валидированные протоколы'],
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['Частый вопрос', 'Концепция ТСХ', 'Подробный ответ'],
|
|
151
|
+
rows: [
|
|
152
|
+
['Как рассчитывается Rf?', 'Расстояние пигмента, деленное на расстояние фронта растворителя.', 'Измерьте оба расстояния от линии старта, затем разделите. Результат безразмерный.'],
|
|
153
|
+
['Почему чернила разделяются на цвета?', 'Разные красители имеют разное сродство к неподвижной и подвижной фазам.', 'Один штрих может содержать несколько красителей, которые мигрируют с разной скоростью.'],
|
|
154
|
+
['Могут ли две ручки иметь одинаковый паттерн ТСХ?', 'Да, схожие рецептуры чернил могут давать очень похожие хроматограммы.', 'Сходство подтверждает химическую совместимость, но не индивидуализирует ручку.'],
|
|
155
|
+
['Почему изменился мой Rf?', 'Растворитель, пластина, влажность, насыщенность камеры, температура и размер пятна влияют на миграцию.', 'Значения Rf сопоставимы только тогда, когда условия контролируются и документируются.'],
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Как симулятор моделирует разделение',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'paragraph',
|
|
165
|
+
html: 'Модель рассматривает движение фронта растворителя как процесс капиллярного поднятия, который замедляется со временем, в то время как каждому красителю присваивается значение Rf на основе двух упрощенных свойств: его сродства к движущемуся растворителю и соответствия полярности выбранной подвижной фазе. Это сделано в образовательных целях и не заменяет инструментальную химию, но сохраняет ключевую зависимость: растворитель движется первым, красители распределяются между фазами, а Rf рассчитывается на основе измеренных расстояний.',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Тонкослойная хроматография является широко признанным аналитическим методом в судебно-экспертных лабораториях благодаря своей простоте, быстроте и экономичности. В контексте технической экспертизы документов она в основном применяется для сравнения компонентного состава красителей различных образцов чернил. Эксперты извлекают микроштрих чернил из исследуемого документа с помощью скальпеля или полой иглы, растворяют его в подходящем растворителе (например, пиридине или метаноле) и наносят на пластину ТСХ рядом с эталонными образцами чернил.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'После проявления пластины в закрытой камере отдельные компоненты чернил разделяются на основе их различного распределения между неподвижной фазой силикагеля и подвижной фазой растворителя. Полученная хроматограмма служит визуальным "отпечатком пальца" чернил, демонстрируя отчетливые цветные зоны на определенной высоте. Эксперты-документоведы рассчитывают коэффициент удержания для каждой видимой зоны красителя, что помогает установить, соответствуют ли исследуемые чернила по химическому составу подозреваемой ручке или совпадают ли они с известной маркой и рецептурой из справочной базы данных чернил.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'glossary',
|
|
177
|
+
items: [
|
|
178
|
+
{ term: 'Stationary phase', definition: 'Покрытие пластины ТСХ (обычно силикагель), которое взаимодействует с веществами и замедляет их движение.' },
|
|
179
|
+
{ term: 'Mobile phase', definition: 'Система растворителей, которая поднимается по пластине и переносит компоненты красителей.' },
|
|
180
|
+
{ term: 'Origin line', definition: 'Линия, нанесенная карандашом, на которую наносится образец чернил перед началом проявления.' },
|
|
181
|
+
{ term: 'Solvent front', definition: 'Наивысшая точка, достигнутая подвижной фазой до извлечения пластины.' },
|
|
182
|
+
{ term: 'Rf value', definition: 'Коэффициент удержания: расстояние, пройденное веществом, деленное на расстояние, пройденное фронтом растворителя.' },
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
type: 'tip',
|
|
187
|
+
title: 'Практический совет по интерпретации',
|
|
188
|
+
html: 'При технико-криминалистическом исследовании документов различие в хроматограммах особенно ценно, так как оно позволяет исключить исследуемую ручку. Совпадение паттерна ТСХ является менее весомым доказательством: оно говорит лишь о том, что образцы химически совместимы в данных условиях, а не о том, что они выполнены одной ручкой.',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: 'proscons',
|
|
192
|
+
title: 'Преимущества и ограничения исследования чернил методом ТСХ',
|
|
193
|
+
items: [
|
|
194
|
+
{ pro: 'Быстрый, недорогой и наглядный метод разделения красителей чернил.', con: 'Обычно разрушающий метод, так как требуется извлечение микропробы из документа.' },
|
|
195
|
+
{ pro: 'Значения Rf обеспечивают структурированный способ сравнения исследуемых и известных образцов.', con: 'Значения Rf изменяются при изменении растворителя, пластины, влажности и условий проявления.' },
|
|
196
|
+
{ pro: 'Полезен в качестве метода скрининга перед проведением более сложных анализов.', con: 'Не может дать однозначного вывода об источнике без совокупности других доказательств.' },
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'diagnostic',
|
|
201
|
+
variant: 'warning',
|
|
202
|
+
icon: 'mdi:scale-balance',
|
|
203
|
+
badge: 'Криминалистическое предостережение',
|
|
204
|
+
title: 'Не переоценивайте возможности хроматографии чернил',
|
|
205
|
+
html: 'Симуляция в браузере не может оценить бумагу, возраст чернил, химию экстракции, качество пластины, загрязнения или провести инструментальное подтверждение. Используйте ее для понимания логики измерений и пределов интерпретации, а для реальных экспертиз полагайтесь на валидированные методы судебного исследования документов.',
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
faq,
|
|
209
|
+
bibliography,
|
|
210
|
+
howTo,
|
|
211
|
+
schemas: [
|
|
212
|
+
{
|
|
213
|
+
'@context': 'https://schema.org',
|
|
214
|
+
'@type': 'SoftwareApplication',
|
|
215
|
+
name: title,
|
|
216
|
+
description,
|
|
217
|
+
applicationCategory: 'ForensicApplication',
|
|
218
|
+
operatingSystem: 'Any',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
'@context': 'https://schema.org',
|
|
222
|
+
'@type': 'FAQPage',
|
|
223
|
+
mainEntity: faq.map((item) => ({
|
|
224
|
+
'@type': 'Question',
|
|
225
|
+
name: item.question,
|
|
226
|
+
acceptedAnswer: {
|
|
227
|
+
'@type': 'Answer',
|
|
228
|
+
text: item.answer,
|
|
229
|
+
},
|
|
230
|
+
})),
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
'@context': 'https://schema.org',
|
|
234
|
+
'@type': 'HowTo',
|
|
235
|
+
name: title,
|
|
236
|
+
step: howTo.map((step) => ({
|
|
237
|
+
'@type': 'HowToStep',
|
|
238
|
+
name: step.name,
|
|
239
|
+
text: step.text,
|
|
240
|
+
})),
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
};
|