@jjlmoya/utils-textiles 1.3.0 → 1.5.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 +59 -58
- package/src/category/i18n/de.ts +76 -0
- package/src/category/i18n/fr.ts +33 -30
- package/src/category/i18n/id.ts +76 -0
- package/src/category/i18n/it.ts +76 -0
- package/src/category/i18n/ja.ts +76 -0
- package/src/category/i18n/ko.ts +76 -0
- package/src/category/i18n/nl.ts +76 -0
- package/src/category/i18n/pl.ts +76 -0
- package/src/category/i18n/pt.ts +76 -0
- package/src/category/i18n/ru.ts +76 -0
- package/src/category/i18n/sv.ts +76 -0
- package/src/category/i18n/tr.ts +76 -0
- package/src/category/i18n/zh.ts +76 -0
- package/src/category/index.ts +39 -7
- package/src/index.ts +12 -12
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/burnTest/i18n/de.ts +225 -0
- package/src/tool/burnTest/i18n/id.ts +225 -0
- package/src/tool/burnTest/i18n/it.ts +225 -0
- package/src/tool/burnTest/i18n/ja.ts +225 -0
- package/src/tool/burnTest/i18n/ko.ts +225 -0
- package/src/tool/burnTest/i18n/nl.ts +225 -0
- package/src/tool/burnTest/i18n/pl.ts +225 -0
- package/src/tool/burnTest/i18n/pt.ts +225 -0
- package/src/tool/burnTest/i18n/ru.ts +225 -0
- package/src/tool/burnTest/i18n/sv.ts +225 -0
- package/src/tool/burnTest/i18n/tr.ts +225 -0
- package/src/tool/burnTest/i18n/zh.ts +225 -0
- package/src/tool/burnTest/index.ts +15 -7
- package/src/tool/clothingSizeConverter/i18n/de.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/id.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/it.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ja.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ko.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/nl.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/pl.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/pt.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/ru.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/sv.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/tr.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/zh.ts +356 -0
- package/src/tool/clothingSizeConverter/index.ts +15 -7
- package/src/tool/fabricProjectCalculator/i18n/de.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/id.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/it.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ja.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ko.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/nl.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/pl.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/pt.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/ru.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/sv.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/tr.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/zh.ts +250 -0
- package/src/tool/fabricProjectCalculator/index.ts +15 -7
- package/src/tool/fabricTruth/i18n/de.ts +282 -0
- package/src/tool/fabricTruth/i18n/en.ts +1 -1
- package/src/tool/fabricTruth/i18n/fr.ts +1 -1
- package/src/tool/fabricTruth/i18n/id.ts +282 -0
- package/src/tool/fabricTruth/i18n/it.ts +282 -0
- package/src/tool/fabricTruth/i18n/ja.ts +282 -0
- package/src/tool/fabricTruth/i18n/ko.ts +282 -0
- package/src/tool/fabricTruth/i18n/nl.ts +282 -0
- package/src/tool/fabricTruth/i18n/pl.ts +282 -0
- package/src/tool/fabricTruth/i18n/pt.ts +282 -0
- package/src/tool/fabricTruth/i18n/ru.ts +282 -0
- package/src/tool/fabricTruth/i18n/sv.ts +282 -0
- package/src/tool/fabricTruth/i18n/tr.ts +282 -0
- package/src/tool/fabricTruth/i18n/zh.ts +286 -0
- package/src/tool/fabricTruth/index.ts +15 -7
- package/src/tool/fiberPrep/i18n/de.ts +225 -0
- package/src/tool/fiberPrep/i18n/id.ts +225 -0
- package/src/tool/fiberPrep/i18n/it.ts +225 -0
- package/src/tool/fiberPrep/i18n/ja.ts +225 -0
- package/src/tool/fiberPrep/i18n/ko.ts +225 -0
- package/src/tool/fiberPrep/i18n/nl.ts +225 -0
- package/src/tool/fiberPrep/i18n/pl.ts +225 -0
- package/src/tool/fiberPrep/i18n/pt.ts +225 -0
- package/src/tool/fiberPrep/i18n/ru.ts +225 -0
- package/src/tool/fiberPrep/i18n/sv.ts +225 -0
- package/src/tool/fiberPrep/i18n/tr.ts +225 -0
- package/src/tool/fiberPrep/i18n/zh.ts +225 -0
- package/src/tool/fiberPrep/index.ts +15 -7
- package/src/tool/knittingGauge/i18n/de.ts +234 -0
- package/src/tool/knittingGauge/i18n/id.ts +234 -0
- package/src/tool/knittingGauge/i18n/it.ts +234 -0
- package/src/tool/knittingGauge/i18n/ja.ts +234 -0
- package/src/tool/knittingGauge/i18n/ko.ts +234 -0
- package/src/tool/knittingGauge/i18n/nl.ts +234 -0
- package/src/tool/knittingGauge/i18n/pl.ts +234 -0
- package/src/tool/knittingGauge/i18n/pt.ts +234 -0
- package/src/tool/knittingGauge/i18n/ru.ts +234 -0
- package/src/tool/knittingGauge/i18n/sv.ts +234 -0
- package/src/tool/knittingGauge/i18n/tr.ts +234 -0
- package/src/tool/knittingGauge/i18n/zh.ts +234 -0
- package/src/tool/knittingGauge/index.ts +15 -7
- package/src/tool/laundryGuide/i18n/de.ts +275 -0
- package/src/tool/laundryGuide/i18n/id.ts +275 -0
- package/src/tool/laundryGuide/i18n/it.ts +275 -0
- package/src/tool/laundryGuide/i18n/ja.ts +275 -0
- package/src/tool/laundryGuide/i18n/ko.ts +275 -0
- package/src/tool/laundryGuide/i18n/nl.ts +275 -0
- package/src/tool/laundryGuide/i18n/pl.ts +275 -0
- package/src/tool/laundryGuide/i18n/pt.ts +275 -0
- package/src/tool/laundryGuide/i18n/ru.ts +275 -0
- package/src/tool/laundryGuide/i18n/sv.ts +275 -0
- package/src/tool/laundryGuide/i18n/tr.ts +275 -0
- package/src/tool/laundryGuide/i18n/zh.ts +275 -0
- package/src/tool/laundryGuide/index.ts +15 -7
- package/src/tool/needleConverter/i18n/de.ts +212 -0
- package/src/tool/needleConverter/i18n/id.ts +212 -0
- package/src/tool/needleConverter/i18n/it.ts +212 -0
- package/src/tool/needleConverter/i18n/ja.ts +212 -0
- package/src/tool/needleConverter/i18n/ko.ts +212 -0
- package/src/tool/needleConverter/i18n/nl.ts +212 -0
- package/src/tool/needleConverter/i18n/pl.ts +212 -0
- package/src/tool/needleConverter/i18n/pt.ts +212 -0
- package/src/tool/needleConverter/i18n/ru.ts +212 -0
- package/src/tool/needleConverter/i18n/sv.ts +212 -0
- package/src/tool/needleConverter/i18n/tr.ts +212 -0
- package/src/tool/needleConverter/i18n/zh.ts +212 -0
- package/src/tool/needleConverter/index.ts +15 -7
- package/src/tool/sewingPatternScaler/i18n/de.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/id.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/it.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ja.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ko.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/nl.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/pl.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/pt.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/ru.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/sv.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/tr.ts +227 -0
- package/src/tool/sewingPatternScaler/i18n/zh.ts +227 -0
- package/src/tool/sewingPatternScaler/index.ts +15 -7
- package/src/tool/shoeSizeConverter/i18n/de.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/id.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/it.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ja.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ko.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/nl.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/pl.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/pt.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/ru.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/sv.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/tr.ts +184 -0
- package/src/tool/shoeSizeConverter/i18n/zh.ts +184 -0
- package/src/tool/shoeSizeConverter/index.ts +15 -7
- package/src/tool/stainChemistry/i18n/de.ts +300 -0
- package/src/tool/stainChemistry/i18n/id.ts +300 -0
- package/src/tool/stainChemistry/i18n/it.ts +300 -0
- package/src/tool/stainChemistry/i18n/ja.ts +300 -0
- package/src/tool/stainChemistry/i18n/ko.ts +297 -0
- package/src/tool/stainChemistry/i18n/nl.ts +300 -0
- package/src/tool/stainChemistry/i18n/pl.ts +300 -0
- package/src/tool/stainChemistry/i18n/pt.ts +300 -0
- package/src/tool/stainChemistry/i18n/ru.ts +300 -0
- package/src/tool/stainChemistry/i18n/sv.ts +300 -0
- package/src/tool/stainChemistry/i18n/tr.ts +300 -0
- package/src/tool/stainChemistry/i18n/zh.ts +295 -0
- package/src/tool/stainChemistry/index.ts +15 -7
- package/src/tool/yarnCalculator/i18n/de.ts +310 -0
- package/src/tool/yarnCalculator/i18n/id.ts +310 -0
- package/src/tool/yarnCalculator/i18n/it.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ja.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ko.ts +310 -0
- package/src/tool/yarnCalculator/i18n/nl.ts +310 -0
- package/src/tool/yarnCalculator/i18n/pl.ts +310 -0
- package/src/tool/yarnCalculator/i18n/pt.ts +310 -0
- package/src/tool/yarnCalculator/i18n/ru.ts +310 -0
- package/src/tool/yarnCalculator/i18n/sv.ts +310 -0
- package/src/tool/yarnCalculator/i18n/tr.ts +310 -0
- package/src/tool/yarnCalculator/i18n/zh.ts +309 -0
- package/src/tool/yarnCalculator/index.ts +15 -7
- package/src/types.ts +1 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { BurnTestUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'test-spalania-tekstyliow';
|
|
6
|
+
const title = 'Test Spalania Tekstyliów';
|
|
7
|
+
const description =
|
|
8
|
+
'Zidentyfikuj rzeczywisty skład dowolnej tkaniny, analizując jej zachowanie podczas spalania. Naukowo odróżnij bawełnę, wełnę, jedwab i materiały syntetyczne.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Czy wykonanie testu spalania w domu jest bezpieczne?',
|
|
13
|
+
answer:
|
|
14
|
+
'Tak, o ile zachowasz szczególne środki ostrożności: używaj metalowej pęsety, pracuj na powierzchni ognioodpornej (ceramicznej lub metalowej), miej pod ręką wodę i wykonuj test w dobrze wentylowanym miejscu. Potrzebujesz tylko małej próbki 1x1 cm lub kilku nici.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Jak pachnie bawełna podczas spalania?',
|
|
18
|
+
answer:
|
|
19
|
+
'Bawełna to czysta celuloza. Podczas spalania pachnie dokładnie jak palony papier lub suche liście. Powstały popiół jest szary, bardzo drobny i rozsypuje się pod wpływem dotyku.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Co oznacza twarda, czarna kulka na końcu włókna?',
|
|
23
|
+
answer:
|
|
24
|
+
'To jednoznaczny znak obecności włókna syntetycznego (plastiku), takiego jak poliester lub nylon. Podczas topnienia polimer zbija się w plastikową perłę, która się nie kruszy, w przeciwieństwie do popiołu z włókien naturalnych.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Dlaczego wełna śmierdzi podczas spalania?',
|
|
28
|
+
answer:
|
|
29
|
+
'Wełna i jedwab to białka zwierzęce zawierające siarkę. W kontakcie z ogniem wydzielają przenikliwy zapach palonych włosów lub piór. To najprostszy sposób na odróżnienie ich od włókien roślinnych.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Pobierz reprezentatywną próbkę',
|
|
36
|
+
text: 'Wytnij mały kwadrat z tkaniny lub, jeszcze lepiej, wyciągnij kilka nici zarówno z osnowy (pionowej), jak i wątku (poziomego).',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Obserwuj zbliżanie do płomienia',
|
|
40
|
+
text: 'Powoli zbliżaj włókno do ognia, nie dotykając go. Obserwuj, czy się kurczy, topi, czy natychmiast zajmuje ogniem.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Analizuj rodzaj płomienia i dymu',
|
|
44
|
+
text: 'Zwróć uwagę, czy płomień jest stały, czy sam gaśnie, oraz czy dym jest biały, czarny, czy w ogóle go nie ma.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Oceń pozostałość i zapach',
|
|
48
|
+
text: 'Po ostygnięciu dotknij powstałego popiołu lub kulki i sprawdź zapach (papieru, włosów lub chemiczny), aby potwierdzić rodzinę włókien.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'pl',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const flame = {
|
|
86
|
+
cellulosic: 'Pali się SZYBKO i JASNO (żółty płomień). Nie topi się. Pali się dalej po odsunięciu.',
|
|
87
|
+
protein: 'Pali się POWOLI, skwierczy i KURCZY SIĘ przed płomieniem. Gaśnie samo po odsunięciu.',
|
|
88
|
+
synthetic: 'TOPI SIĘ i gwałtownie kurczy, kapie jak roztopiony plastik. Płomień kopcący.',
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const odor = {
|
|
92
|
+
paper: 'Palony papier, drewno, suche liście.',
|
|
93
|
+
hair: 'Palone włosy, palony róg, pióra.',
|
|
94
|
+
chemical_sweet: 'Chemiczny AROMATYCZNY (słodki, owocowy).',
|
|
95
|
+
chemical_fishy: 'Chemiczny KWAŚNY (ryba, pieczone mięso).',
|
|
96
|
+
vegetable: 'Gotowane warzywa (seler).',
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const residue = {
|
|
100
|
+
ash_soft: 'Drobny SZARY/CZARNY popiół, miękki i lotny (rozsypuje się przy dotknięciu).',
|
|
101
|
+
ash_shape: 'SZARY popiół zachowuje kształt włókna (kruchy).',
|
|
102
|
+
bead_crushable: 'Pusta/krucha czarna masa (łatwo miażdży się w palcach).',
|
|
103
|
+
bead_hard: 'TWARDA i szklista perła. Niemożliwa do przełamania w palcach.',
|
|
104
|
+
bead_irregular: 'TWARDA i nieregularna czarna masa.',
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const smoke = {
|
|
108
|
+
white_gray: 'Biały / Jasnoszary.',
|
|
109
|
+
gray: 'Średnioszary.',
|
|
110
|
+
black: 'Gęsty, ciemny CZARNY dym.',
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const content: ToolLocaleContent<BurnTestUI> = {
|
|
114
|
+
slug,
|
|
115
|
+
title,
|
|
116
|
+
description,
|
|
117
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
118
|
+
faq: faqData,
|
|
119
|
+
bibliographyTitle: 'Bibliografia',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{
|
|
122
|
+
name: 'AATCC TM20: Fiber Analysis - Qualitative',
|
|
123
|
+
url: 'https://members.aatcc.org/store/tm20/485/',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Textile Fibers: Identification and Testing - NIST',
|
|
127
|
+
url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
|
|
131
|
+
url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
howTo: howToData,
|
|
135
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
136
|
+
seo: [
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Kryminalistyka Włókna',
|
|
140
|
+
level: 2,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Test spalania to najszybsza i najbardziej precyzyjna metoda analityczna pozwalająca odróżnić polimery naturalne od syntetycznych bez użycia mikroskopu elektronowego. Poprzez poddanie włókna działaniu ciepła, jego zachowanie na poziomie molekularnym ujawnia jego pochodzenie: od celulozy roślinnej po białka zwierzęce czy pochodne ropy naftowej.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'card',
|
|
148
|
+
title: 'Włókna Celulozowe',
|
|
149
|
+
icon: 'mdi:leaf',
|
|
150
|
+
html: '<strong>Bawełna</strong> i <strong>Len</strong> palą się szybko bez topnienia. Pachną jak palony papier, ponieważ pochodzą z drewna lub roślin, pozostawiając lotny szary popiół, który rozprasza się przy dmuchnięciu.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'card',
|
|
154
|
+
title: 'Włókna Białkowe',
|
|
155
|
+
icon: 'mdi:sheep',
|
|
156
|
+
html: '<strong>Wełna</strong> i <strong>Jedwab</strong> odsuwają się od płomienia. Ich charakterystyczny zapach palonych włosów wskazuje na obecność siarki i keratyny. Pozostałością jest czarna kulka, która miażdży się przy dotknięciu.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'card',
|
|
160
|
+
title: 'Włókna Syntetyczne',
|
|
161
|
+
icon: 'mdi:bottle-soda-classic',
|
|
162
|
+
html: '<strong>Poliester</strong> i <strong>Nylon</strong> to w zasadzie tworzywa sztuczne. Topią się, tworząc gorącą kroplę, która twardnieje w szklistą perłę niemożliwą do przełamania, o ostrym chemicznym zapachu.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Matryca Dowodów Chemicznych',
|
|
167
|
+
level: 2,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Precyzyjna analiza wymaga zestawienia co najmniej trzech dowodów. Zapach jest najbardziej wiarygodnym wskaźnikiem przy identyfikacji mieszanek: jeśli „lniana” tkanina wydziela lekki plastikowy aromat i pozostawia twarde resztki, oznacza to niezadeklarowaną domieszkę poliestru.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'tip',
|
|
175
|
+
title: 'Laboratoryjny Protokół Bezpieczeństwa',
|
|
176
|
+
html: '<strong>Krytyczna wentylacja:</strong> Włókna syntetyczne podczas spalania uwalniają toksyczne gazy. Nigdy nie wykonuj tego testu w zamkniętych pomieszczeniach.<br><strong>Natychmiastowe gaszenie:</strong> Zawsze miej obok pojemnik z wodą. Niektóre włókna syntetyczne mogą się topić i przywierać do skóry.',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
ui: {
|
|
180
|
+
investigationLabel: 'DOCHODZENIE',
|
|
181
|
+
stepPrefix: 'KROK',
|
|
182
|
+
stepCompleted: 'ANALIZA ZAKOŃCZONA',
|
|
183
|
+
resetLabel: 'RESTART',
|
|
184
|
+
positiveId: 'IDENTYFIKACJA POZYTYWNA',
|
|
185
|
+
flameLabel: 'Zachowanie Płomienia',
|
|
186
|
+
odorLabel: 'Ślad Zapachowy',
|
|
187
|
+
residueLabel: 'Pozostałość',
|
|
188
|
+
identifiedAs: 'Próbka zidentyfikowana pozytywnie jako',
|
|
189
|
+
safetyTitle: 'Protokół Bezpieczeństwa',
|
|
190
|
+
safetyText:
|
|
191
|
+
'Wykonuj ten test w wentylowanym miejscu, na ognioodpornej powierzchni. Używaj metalowej pęsety i miej pod ręką wodę.',
|
|
192
|
+
questions: {
|
|
193
|
+
flame: 'Zachowanie w płomieniu?',
|
|
194
|
+
odor: 'Charakterystyczny zapach?',
|
|
195
|
+
residue: 'Końcowa pozostałość?',
|
|
196
|
+
smoke: 'Rodzaj dymu?',
|
|
197
|
+
},
|
|
198
|
+
fiberData: {
|
|
199
|
+
cotton: { name: 'Bawełna', icon: 'mdi:tshirt-crew', color: '#60A5FA', description: 'Naturalne włókno roślinne, miękkie i oddychające. Król podstawowej garderoby.' },
|
|
200
|
+
linen: { name: 'Len', icon: 'mdi:leaf', color: '#A7F3D0', description: 'Bardzo mocne włókno roślinne, chłodne i z charakterystycznym gnieceniem.' },
|
|
201
|
+
wool: { name: 'Wełna / Merino', icon: 'mdi:sheep', color: '#FCD34D', description: 'Białkowe włókno zwierzęce, doskonały izolator termiczny i elastyczne.' },
|
|
202
|
+
silk: { name: 'Jedwab', icon: 'mdi:ticket-percent', color: '#F472B6', description: 'Zwierzęce włókno ciągłe. Naturalny połysk i suchy chwyt.' },
|
|
203
|
+
cashmere: { name: 'Kaszmir', icon: 'mdi:crown', color: '#F59E0B', description: 'Luksusowe włókno z kóz kaszmirskich. Ekstremalnie miękkie, lekkie i ciepłe.' },
|
|
204
|
+
mohair: { name: 'Mohair', icon: 'mdi:shimmer', color: '#14B8A6', description: '„Diamentowe włókno” z kóz angorskich. Naturalny połysk, bardzo wytrzymałe.' },
|
|
205
|
+
angora: { name: 'Angora', icon: 'mdi:rabbit', color: '#F9FAFB', description: 'Sierść krolika angorskiego. Znana z puszystego efektu „halo” i ekstremalnej lekkości.' },
|
|
206
|
+
alpaca: { name: 'Alpaka', icon: 'mdi:image-filter-hdr', color: '#9F7AEA', description: 'Skarb Andów. Włókno puste w środku, termiczne, hipoalergiczne i jedwabiste.' },
|
|
207
|
+
polyester: { name: 'Poliester', icon: 'mdi:oil', color: '#94A3B8', description: 'Syntetyczne włókno na bazie ropy naftowej. Wytrzymałe, nie gniecie się, nie oddycha.' },
|
|
208
|
+
nylon: { name: 'Nylon (Poliamid)', icon: 'mdi:parachute', color: '#2DD4BF', description: 'Bardzo wytrzymałe włókno syntetyczne na rozciąganie i ścieranie.' },
|
|
209
|
+
acrylic: { name: 'Akryl', icon: 'mdi:resize', color: '#450A0A', description: 'Syntetyczna imitacja wełny. Miękki, ciepły, ma tendencję do kulkowania się.' },
|
|
210
|
+
},
|
|
211
|
+
burnTestData: [
|
|
212
|
+
{ fiberId: 'cotton', flame: flame.cellulosic, odor: odor.paper, smoke: smoke.white_gray, residue: residue.ash_soft },
|
|
213
|
+
{ fiberId: 'linen', flame: flame.cellulosic, odor: odor.paper, smoke: smoke.white_gray, residue: residue.ash_shape },
|
|
214
|
+
{ fiberId: 'wool', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
215
|
+
{ fiberId: 'silk', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
216
|
+
{ fiberId: 'cashmere', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
217
|
+
{ fiberId: 'mohair', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
218
|
+
{ fiberId: 'angora', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
219
|
+
{ fiberId: 'alpaca', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
220
|
+
{ fiberId: 'polyester', flame: flame.synthetic, odor: odor.chemical_sweet, smoke: smoke.black, residue: residue.bead_hard },
|
|
221
|
+
{ fiberId: 'nylon', flame: flame.synthetic, odor: odor.vegetable, smoke: smoke.white_gray, residue: residue.bead_hard },
|
|
222
|
+
{ fiberId: 'acrylic', flame: flame.synthetic, odor: odor.chemical_fishy, smoke: smoke.black, residue: residue.bead_irregular },
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
};
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { BurnTestUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'teste-combustao-textil';
|
|
6
|
+
const title = 'Teste de Combustão Têxtil';
|
|
7
|
+
const description =
|
|
8
|
+
'Identifique a composição real de qualquer tecido através da análise do seu comportamento de queima. Diferencie algodão, lã, seda e sintéticos com rigor científico.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'É seguro realizar um teste de combustão em casa?',
|
|
13
|
+
answer:
|
|
14
|
+
'Sim, desde que tome precauções extremas: use pinças metálicas, trabalhe sobre uma superfície ignífuga (cerâmica ou metal), tenha água por perto e realize o teste num local ventilado. Apenas necessita de uma pequena amostra de 1x1 cm ou alguns fios.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Como cheira o algodão ao queimar?',
|
|
18
|
+
answer:
|
|
19
|
+
'O algodão é celulose pura. Ao queimar, cheira exatamente como papel queimado ou folhas secas. A cinza resultante é cinzenta, muito fina e desfaz-se ao toque.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'O que indica uma bola preta e dura no final da fibra?',
|
|
23
|
+
answer:
|
|
24
|
+
'É o sinal inequívoco de uma fibra sintética (plástico), como o poliéster ou o nylon. Ao fundir-se, o polímero aglutina-se numa pérola plástica que não se desmorona, ao contrário das cinzas das fibras naturais.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Porque é que a lã cheira mal ao queimar?',
|
|
28
|
+
answer:
|
|
29
|
+
'A lã e a seda são proteínas animais que contêm enxofre. Ao entrar em contacto com o fogo, emitem um odor penetrante a cabelo queimado ou penas queimadas. É a forma mais fácil de as diferenciar das fibras vegetais.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Extrair uma amostra representativa',
|
|
36
|
+
text: 'Corte um pequeno quadrado do tecido ou, melhor ainda, extraia alguns fios tanto da urdidura (vertical) como da trama (horizontal).',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Observar a aproximação à chama',
|
|
40
|
+
text: 'Aproxime a fibra lentamente do fogo sem lhe tocar. Observe se encolhe, se funde ou se pega fogo imediatamente.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Analisar o tipo de chama e fumo',
|
|
44
|
+
text: 'Repare se a chama é constante ou se apaga sozinha, e se o fumo é branco, preto ou inexistente.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Avaliar o resíduo e o odor',
|
|
48
|
+
text: 'Uma vez fria, toque na cinza ou pérola resultante e perceba o odor (papel, cabelo ou químico) para confirmar a família da fibra.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'pt',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const flame = {
|
|
86
|
+
cellulosic: 'Arde RÁPIDO e com BRILHO (chama amarela). Não funde. Continua a arder ao retirar.',
|
|
87
|
+
protein: 'Arde LENTAMENTE, crepita e ENCOLHE afastando-se da chama. Autoextingue-se ao retirar.',
|
|
88
|
+
synthetic: 'FUNDE-SE e contrai-se rapidamente, goteja como plástico derretido. Chama fumarenta.',
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const odor = {
|
|
92
|
+
paper: 'Papel queimado, madeira, folhas secas.',
|
|
93
|
+
hair: 'Cabelo queimado, corno queimado, penas.',
|
|
94
|
+
chemical_sweet: 'Químico AROMÁTICO (doce, frutado).',
|
|
95
|
+
chemical_fishy: 'Químico AZEDO (peixe, carne assada).',
|
|
96
|
+
vegetable: 'Vegetais cozidos (aipo).',
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const residue = {
|
|
100
|
+
ash_soft: 'Cinza CINZENTA/PRETA fina, suave e volátil (desfaz-se ao tocar).',
|
|
101
|
+
ash_shape: 'Cinza CINZENTA mantém a forma da fibra (friável).',
|
|
102
|
+
bead_crushable: 'Massa negra oca/quebradiça (pulveriza-se facilmente com os dedos).',
|
|
103
|
+
bead_hard: 'Bola DURA e vítrea. Impossível de partir com os dedos.',
|
|
104
|
+
bead_irregular: 'Massa negra DURA e irregular.',
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const smoke = {
|
|
108
|
+
white_gray: 'Branco / Cinzento claro.',
|
|
109
|
+
gray: 'Cinzento médio.',
|
|
110
|
+
black: 'Preto DENSO e escuro.',
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const content: ToolLocaleContent<BurnTestUI> = {
|
|
114
|
+
slug,
|
|
115
|
+
title,
|
|
116
|
+
description,
|
|
117
|
+
faqTitle: 'Perguntas Frequentes',
|
|
118
|
+
faq: faqData,
|
|
119
|
+
bibliographyTitle: 'Bibliografia',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{
|
|
122
|
+
name: 'AATCC TM20: Fiber Analysis - Qualitative',
|
|
123
|
+
url: 'https://members.aatcc.org/store/tm20/485/',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Textile Fibers: Identification and Testing - NIST',
|
|
127
|
+
url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
|
|
131
|
+
url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
howTo: howToData,
|
|
135
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
136
|
+
seo: [
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'A Ciência Forense do Filamento',
|
|
140
|
+
level: 2,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'O teste de combustão é o método analítico mais rápido e preciso para diferenciar polímeros naturais de sintéticos sem recorrer a microscópio eletrónico. Ao submeter uma fibra ao calor, o seu comportamento molecular revela a sua origem: desde a celulose vegetal até às proteínas animais ou aos derivados do petróleo.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'card',
|
|
148
|
+
title: 'Fibras Celulósicas',
|
|
149
|
+
icon: 'mdi:leaf',
|
|
150
|
+
html: 'O <strong>Algodão</strong> e o <strong>Linho</strong> ardem rapidamente sem fundir. Cheiram a papel queimado porque procedem da madeira ou plantas, deixando uma cinza cinzenta volátil que se espalha ao soprar.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'card',
|
|
154
|
+
title: 'Fibras Proteicas',
|
|
155
|
+
icon: 'mdi:sheep',
|
|
156
|
+
html: 'A <strong>Lã</strong> e a <strong>Seda</strong> afastam-se da chama. O seu odor característico a cabelo queimado indica a presença de enxofre e queratina. O resíduo é uma conta negra que se pulveriza ao tocar.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'card',
|
|
160
|
+
title: 'Fibras Sintéticas',
|
|
161
|
+
icon: 'mdi:bottle-soda-classic',
|
|
162
|
+
html: 'O <strong>Poliéster</strong> e o <strong>Nylon</strong> são essencialmente plásticos. Fundem-se formando uma gota quente que endurece numa bola vítrea impossível de partir, com um odor químico punzante.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Matriz de Evidência Química',
|
|
167
|
+
level: 2,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Uma análise precisa requer cruzar pelo menos três evidências. O odor é o indicador mais fiável para identificar misturas: se um tecido de "linho" desprende um leve aroma plástico e deixa resíduos duros, indica uma mistura com poliéster não declarada.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'tip',
|
|
175
|
+
title: 'Protocolo de Segurança de Laboratório',
|
|
176
|
+
html: '<strong>Ventilação crítica:</strong> As fibras sintéticas libertam gases tóxicos ao arder. Nunca realize este teste em espaços fechados.<br><strong>Extinção imediata:</strong> Tenha sempre um recipiente com água ao lado. Algumas fibras sintéticas podem fundir-se e aderir à pele.',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
ui: {
|
|
180
|
+
investigationLabel: 'INVESTIGAÇÃO',
|
|
181
|
+
stepPrefix: 'PASSO',
|
|
182
|
+
stepCompleted: 'ANÁLISE COMPLETADA',
|
|
183
|
+
resetLabel: 'REINICIAR',
|
|
184
|
+
positiveId: 'IDENTIFICAÇÃO POSITIVA',
|
|
185
|
+
flameLabel: 'Comportamento Chama',
|
|
186
|
+
odorLabel: 'Rasto Olfativo',
|
|
187
|
+
residueLabel: 'Resíduo',
|
|
188
|
+
identifiedAs: 'Amostra identificada positivamente como',
|
|
189
|
+
safetyTitle: 'Protocolo de Segurança',
|
|
190
|
+
safetyText:
|
|
191
|
+
'Realize este teste num local ventilado, sobre uma superfície ignífuga. Use pinças metálicas e mantenha água por perto.',
|
|
192
|
+
questions: {
|
|
193
|
+
flame: 'Comportamento ante a chama?',
|
|
194
|
+
odor: 'Odor característico?',
|
|
195
|
+
residue: 'Resíduo final?',
|
|
196
|
+
smoke: 'Tipo de fumo?',
|
|
197
|
+
},
|
|
198
|
+
fiberData: {
|
|
199
|
+
cotton: { name: 'Algodão', icon: 'mdi:tshirt-crew', color: '#60A5FA', description: 'Fibra vegetal natural, suave e respirável. O rei dos básicos.' },
|
|
200
|
+
linen: { name: 'Linho', icon: 'mdi:leaf', color: '#A7F3D0', description: 'Fibra vegetal muito forte, fresca e com ruga característica.' },
|
|
201
|
+
wool: { name: 'Lã / Merino', icon: 'mdi:sheep', color: '#FCD34D', description: 'Fibra animal proteica, isolante térmico excelente e elástica.' },
|
|
202
|
+
silk: { name: 'Seda', icon: 'mdi:ticket-percent', color: '#F472B6', description: 'Fibra animal de filamento contínuo. Brilho natural e tacto seco.' },
|
|
203
|
+
cashmere: { name: 'Caxemira', icon: 'mdi:crown', color: '#F59E0B', description: 'Fibra de luxo de cabra de Caxemira. Extremamente suave, leve e quente.' },
|
|
204
|
+
mohair: { name: 'Mohair', icon: 'mdi:shimmer', color: '#14B8A6', description: 'A "fibra de diamante" da cabra de Angora. Brilho natural, muito resistente.' },
|
|
205
|
+
angora: { name: 'Angora', icon: 'mdi:rabbit', color: '#F9FAFB', description: 'Pelo do coelho de Angora. Conhecido pelo seu efeito "halo" fofo e extrema leveza.' },
|
|
206
|
+
alpaca: { name: 'Alpaca', icon: 'mdi:image-filter-hdr', color: '#9F7AEA', description: 'Tesouro dos Andes. Fibra oca, térmica, hipoalergénica e sedosa.' },
|
|
207
|
+
polyester: { name: 'Poliéster', icon: 'mdi:oil', color: '#94A3B8', description: 'Fibra sintética de petróleo. Resistente, não enruga, não respira.' },
|
|
208
|
+
nylon: { name: 'Nylon (Poliamida)', icon: 'mdi:parachute', color: '#2DD4BF', description: 'Sintética muito resistente a tração e abrasão.' },
|
|
209
|
+
acrylic: { name: 'Acrílico', icon: 'mdi:resize', color: '#450A0A', description: 'Sintético imitação lã. Suave, quente, faz borbotos.' },
|
|
210
|
+
},
|
|
211
|
+
burnTestData: [
|
|
212
|
+
{ fiberId: 'cotton', flame: flame.cellulosic, odor: odor.paper, smoke: smoke.white_gray, residue: residue.ash_soft },
|
|
213
|
+
{ fiberId: 'linen', flame: flame.cellulosic, odor: odor.paper, smoke: smoke.white_gray, residue: residue.ash_shape },
|
|
214
|
+
{ fiberId: 'wool', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
215
|
+
{ fiberId: 'silk', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
216
|
+
{ fiberId: 'cashmere', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
217
|
+
{ fiberId: 'mohair', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
218
|
+
{ fiberId: 'angora', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
219
|
+
{ fiberId: 'alpaca', flame: flame.protein, odor: odor.hair, smoke: smoke.gray, residue: residue.bead_crushable },
|
|
220
|
+
{ fiberId: 'polyester', flame: flame.synthetic, odor: odor.chemical_sweet, smoke: smoke.black, residue: residue.bead_hard },
|
|
221
|
+
{ fiberId: 'nylon', flame: flame.synthetic, odor: odor.vegetable, smoke: smoke.white_gray, residue: residue.bead_hard },
|
|
222
|
+
{ fiberId: 'acrylic', flame: flame.synthetic, odor: odor.chemical_fishy, smoke: smoke.black, residue: residue.bead_irregular },
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
};
|