@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.
Files changed (179) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +76 -0
  3. package/src/category/i18n/fr.ts +33 -30
  4. package/src/category/i18n/id.ts +76 -0
  5. package/src/category/i18n/it.ts +76 -0
  6. package/src/category/i18n/ja.ts +76 -0
  7. package/src/category/i18n/ko.ts +76 -0
  8. package/src/category/i18n/nl.ts +76 -0
  9. package/src/category/i18n/pl.ts +76 -0
  10. package/src/category/i18n/pt.ts +76 -0
  11. package/src/category/i18n/ru.ts +76 -0
  12. package/src/category/i18n/sv.ts +76 -0
  13. package/src/category/i18n/tr.ts +76 -0
  14. package/src/category/i18n/zh.ts +76 -0
  15. package/src/category/index.ts +39 -7
  16. package/src/index.ts +12 -12
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/schemas_fulfillment.test.ts +23 -0
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tests/title_quality.test.ts +55 -0
  21. package/src/tool/burnTest/i18n/de.ts +225 -0
  22. package/src/tool/burnTest/i18n/id.ts +225 -0
  23. package/src/tool/burnTest/i18n/it.ts +225 -0
  24. package/src/tool/burnTest/i18n/ja.ts +225 -0
  25. package/src/tool/burnTest/i18n/ko.ts +225 -0
  26. package/src/tool/burnTest/i18n/nl.ts +225 -0
  27. package/src/tool/burnTest/i18n/pl.ts +225 -0
  28. package/src/tool/burnTest/i18n/pt.ts +225 -0
  29. package/src/tool/burnTest/i18n/ru.ts +225 -0
  30. package/src/tool/burnTest/i18n/sv.ts +225 -0
  31. package/src/tool/burnTest/i18n/tr.ts +225 -0
  32. package/src/tool/burnTest/i18n/zh.ts +225 -0
  33. package/src/tool/burnTest/index.ts +15 -7
  34. package/src/tool/clothingSizeConverter/i18n/de.ts +356 -0
  35. package/src/tool/clothingSizeConverter/i18n/id.ts +356 -0
  36. package/src/tool/clothingSizeConverter/i18n/it.ts +356 -0
  37. package/src/tool/clothingSizeConverter/i18n/ja.ts +356 -0
  38. package/src/tool/clothingSizeConverter/i18n/ko.ts +356 -0
  39. package/src/tool/clothingSizeConverter/i18n/nl.ts +356 -0
  40. package/src/tool/clothingSizeConverter/i18n/pl.ts +356 -0
  41. package/src/tool/clothingSizeConverter/i18n/pt.ts +356 -0
  42. package/src/tool/clothingSizeConverter/i18n/ru.ts +356 -0
  43. package/src/tool/clothingSizeConverter/i18n/sv.ts +356 -0
  44. package/src/tool/clothingSizeConverter/i18n/tr.ts +356 -0
  45. package/src/tool/clothingSizeConverter/i18n/zh.ts +356 -0
  46. package/src/tool/clothingSizeConverter/index.ts +15 -7
  47. package/src/tool/fabricProjectCalculator/i18n/de.ts +250 -0
  48. package/src/tool/fabricProjectCalculator/i18n/id.ts +250 -0
  49. package/src/tool/fabricProjectCalculator/i18n/it.ts +250 -0
  50. package/src/tool/fabricProjectCalculator/i18n/ja.ts +250 -0
  51. package/src/tool/fabricProjectCalculator/i18n/ko.ts +250 -0
  52. package/src/tool/fabricProjectCalculator/i18n/nl.ts +250 -0
  53. package/src/tool/fabricProjectCalculator/i18n/pl.ts +250 -0
  54. package/src/tool/fabricProjectCalculator/i18n/pt.ts +250 -0
  55. package/src/tool/fabricProjectCalculator/i18n/ru.ts +250 -0
  56. package/src/tool/fabricProjectCalculator/i18n/sv.ts +250 -0
  57. package/src/tool/fabricProjectCalculator/i18n/tr.ts +250 -0
  58. package/src/tool/fabricProjectCalculator/i18n/zh.ts +250 -0
  59. package/src/tool/fabricProjectCalculator/index.ts +15 -7
  60. package/src/tool/fabricTruth/i18n/de.ts +282 -0
  61. package/src/tool/fabricTruth/i18n/en.ts +1 -1
  62. package/src/tool/fabricTruth/i18n/fr.ts +1 -1
  63. package/src/tool/fabricTruth/i18n/id.ts +282 -0
  64. package/src/tool/fabricTruth/i18n/it.ts +282 -0
  65. package/src/tool/fabricTruth/i18n/ja.ts +282 -0
  66. package/src/tool/fabricTruth/i18n/ko.ts +282 -0
  67. package/src/tool/fabricTruth/i18n/nl.ts +282 -0
  68. package/src/tool/fabricTruth/i18n/pl.ts +282 -0
  69. package/src/tool/fabricTruth/i18n/pt.ts +282 -0
  70. package/src/tool/fabricTruth/i18n/ru.ts +282 -0
  71. package/src/tool/fabricTruth/i18n/sv.ts +282 -0
  72. package/src/tool/fabricTruth/i18n/tr.ts +282 -0
  73. package/src/tool/fabricTruth/i18n/zh.ts +286 -0
  74. package/src/tool/fabricTruth/index.ts +15 -7
  75. package/src/tool/fiberPrep/i18n/de.ts +225 -0
  76. package/src/tool/fiberPrep/i18n/id.ts +225 -0
  77. package/src/tool/fiberPrep/i18n/it.ts +225 -0
  78. package/src/tool/fiberPrep/i18n/ja.ts +225 -0
  79. package/src/tool/fiberPrep/i18n/ko.ts +225 -0
  80. package/src/tool/fiberPrep/i18n/nl.ts +225 -0
  81. package/src/tool/fiberPrep/i18n/pl.ts +225 -0
  82. package/src/tool/fiberPrep/i18n/pt.ts +225 -0
  83. package/src/tool/fiberPrep/i18n/ru.ts +225 -0
  84. package/src/tool/fiberPrep/i18n/sv.ts +225 -0
  85. package/src/tool/fiberPrep/i18n/tr.ts +225 -0
  86. package/src/tool/fiberPrep/i18n/zh.ts +225 -0
  87. package/src/tool/fiberPrep/index.ts +15 -7
  88. package/src/tool/knittingGauge/i18n/de.ts +234 -0
  89. package/src/tool/knittingGauge/i18n/id.ts +234 -0
  90. package/src/tool/knittingGauge/i18n/it.ts +234 -0
  91. package/src/tool/knittingGauge/i18n/ja.ts +234 -0
  92. package/src/tool/knittingGauge/i18n/ko.ts +234 -0
  93. package/src/tool/knittingGauge/i18n/nl.ts +234 -0
  94. package/src/tool/knittingGauge/i18n/pl.ts +234 -0
  95. package/src/tool/knittingGauge/i18n/pt.ts +234 -0
  96. package/src/tool/knittingGauge/i18n/ru.ts +234 -0
  97. package/src/tool/knittingGauge/i18n/sv.ts +234 -0
  98. package/src/tool/knittingGauge/i18n/tr.ts +234 -0
  99. package/src/tool/knittingGauge/i18n/zh.ts +234 -0
  100. package/src/tool/knittingGauge/index.ts +15 -7
  101. package/src/tool/laundryGuide/i18n/de.ts +275 -0
  102. package/src/tool/laundryGuide/i18n/id.ts +275 -0
  103. package/src/tool/laundryGuide/i18n/it.ts +275 -0
  104. package/src/tool/laundryGuide/i18n/ja.ts +275 -0
  105. package/src/tool/laundryGuide/i18n/ko.ts +275 -0
  106. package/src/tool/laundryGuide/i18n/nl.ts +275 -0
  107. package/src/tool/laundryGuide/i18n/pl.ts +275 -0
  108. package/src/tool/laundryGuide/i18n/pt.ts +275 -0
  109. package/src/tool/laundryGuide/i18n/ru.ts +275 -0
  110. package/src/tool/laundryGuide/i18n/sv.ts +275 -0
  111. package/src/tool/laundryGuide/i18n/tr.ts +275 -0
  112. package/src/tool/laundryGuide/i18n/zh.ts +275 -0
  113. package/src/tool/laundryGuide/index.ts +15 -7
  114. package/src/tool/needleConverter/i18n/de.ts +212 -0
  115. package/src/tool/needleConverter/i18n/id.ts +212 -0
  116. package/src/tool/needleConverter/i18n/it.ts +212 -0
  117. package/src/tool/needleConverter/i18n/ja.ts +212 -0
  118. package/src/tool/needleConverter/i18n/ko.ts +212 -0
  119. package/src/tool/needleConverter/i18n/nl.ts +212 -0
  120. package/src/tool/needleConverter/i18n/pl.ts +212 -0
  121. package/src/tool/needleConverter/i18n/pt.ts +212 -0
  122. package/src/tool/needleConverter/i18n/ru.ts +212 -0
  123. package/src/tool/needleConverter/i18n/sv.ts +212 -0
  124. package/src/tool/needleConverter/i18n/tr.ts +212 -0
  125. package/src/tool/needleConverter/i18n/zh.ts +212 -0
  126. package/src/tool/needleConverter/index.ts +15 -7
  127. package/src/tool/sewingPatternScaler/i18n/de.ts +227 -0
  128. package/src/tool/sewingPatternScaler/i18n/id.ts +227 -0
  129. package/src/tool/sewingPatternScaler/i18n/it.ts +227 -0
  130. package/src/tool/sewingPatternScaler/i18n/ja.ts +227 -0
  131. package/src/tool/sewingPatternScaler/i18n/ko.ts +227 -0
  132. package/src/tool/sewingPatternScaler/i18n/nl.ts +227 -0
  133. package/src/tool/sewingPatternScaler/i18n/pl.ts +227 -0
  134. package/src/tool/sewingPatternScaler/i18n/pt.ts +227 -0
  135. package/src/tool/sewingPatternScaler/i18n/ru.ts +227 -0
  136. package/src/tool/sewingPatternScaler/i18n/sv.ts +227 -0
  137. package/src/tool/sewingPatternScaler/i18n/tr.ts +227 -0
  138. package/src/tool/sewingPatternScaler/i18n/zh.ts +227 -0
  139. package/src/tool/sewingPatternScaler/index.ts +15 -7
  140. package/src/tool/shoeSizeConverter/i18n/de.ts +184 -0
  141. package/src/tool/shoeSizeConverter/i18n/id.ts +184 -0
  142. package/src/tool/shoeSizeConverter/i18n/it.ts +184 -0
  143. package/src/tool/shoeSizeConverter/i18n/ja.ts +184 -0
  144. package/src/tool/shoeSizeConverter/i18n/ko.ts +184 -0
  145. package/src/tool/shoeSizeConverter/i18n/nl.ts +184 -0
  146. package/src/tool/shoeSizeConverter/i18n/pl.ts +184 -0
  147. package/src/tool/shoeSizeConverter/i18n/pt.ts +184 -0
  148. package/src/tool/shoeSizeConverter/i18n/ru.ts +184 -0
  149. package/src/tool/shoeSizeConverter/i18n/sv.ts +184 -0
  150. package/src/tool/shoeSizeConverter/i18n/tr.ts +184 -0
  151. package/src/tool/shoeSizeConverter/i18n/zh.ts +184 -0
  152. package/src/tool/shoeSizeConverter/index.ts +15 -7
  153. package/src/tool/stainChemistry/i18n/de.ts +300 -0
  154. package/src/tool/stainChemistry/i18n/id.ts +300 -0
  155. package/src/tool/stainChemistry/i18n/it.ts +300 -0
  156. package/src/tool/stainChemistry/i18n/ja.ts +300 -0
  157. package/src/tool/stainChemistry/i18n/ko.ts +297 -0
  158. package/src/tool/stainChemistry/i18n/nl.ts +300 -0
  159. package/src/tool/stainChemistry/i18n/pl.ts +300 -0
  160. package/src/tool/stainChemistry/i18n/pt.ts +300 -0
  161. package/src/tool/stainChemistry/i18n/ru.ts +300 -0
  162. package/src/tool/stainChemistry/i18n/sv.ts +300 -0
  163. package/src/tool/stainChemistry/i18n/tr.ts +300 -0
  164. package/src/tool/stainChemistry/i18n/zh.ts +295 -0
  165. package/src/tool/stainChemistry/index.ts +15 -7
  166. package/src/tool/yarnCalculator/i18n/de.ts +310 -0
  167. package/src/tool/yarnCalculator/i18n/id.ts +310 -0
  168. package/src/tool/yarnCalculator/i18n/it.ts +310 -0
  169. package/src/tool/yarnCalculator/i18n/ja.ts +310 -0
  170. package/src/tool/yarnCalculator/i18n/ko.ts +310 -0
  171. package/src/tool/yarnCalculator/i18n/nl.ts +310 -0
  172. package/src/tool/yarnCalculator/i18n/pl.ts +310 -0
  173. package/src/tool/yarnCalculator/i18n/pt.ts +310 -0
  174. package/src/tool/yarnCalculator/i18n/ru.ts +310 -0
  175. package/src/tool/yarnCalculator/i18n/sv.ts +310 -0
  176. package/src/tool/yarnCalculator/i18n/tr.ts +310 -0
  177. package/src/tool/yarnCalculator/i18n/zh.ts +309 -0
  178. package/src/tool/yarnCalculator/index.ts +15 -7
  179. package/src/types.ts +1 -1
@@ -0,0 +1,300 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { StainChemistryUI } from '../ui';
4
+
5
+ const slug = 'protocollo-chimico-macchie-tessili';
6
+ const title = 'Protocollo Chimico di Rimozione Macchie Tessili';
7
+ const description =
8
+ 'Protocolli scientifici per eliminare le macchie in base al tipo di fibra e alla natura chimica della macchia. Percarbonato, enzimi, solventi: il metodo corretto per ogni caso.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Posso usare la candeggina al posto del percarbonato?',
13
+ answer:
14
+ "La candeggina (ipoclorito di sodio) è altamente corrosiva. Degrada le fibre rendendole ingiallite e fragili. Il percarbonato sbianca tramite l'ossigeno attivo, rispettando la struttura molecolare naturale.",
15
+ },
16
+ {
17
+ question: "Perché l'aceto aiuta con gli odori?",
18
+ answer:
19
+ "Gli odori corporei sono solitamente alcalini. L'acido acetico dell'aceto li neutralizza, trasformandoli in sali inodori che vengono eliminati completamente durante il risciacquo.",
20
+ },
21
+ {
22
+ question: "Devo sempre usare acqua fredda per il sangue?",
23
+ answer:
24
+ "Sì. Il calore coagula le proteine del sangue, fissandolo alla fibra in modo permanente. L'acqua fredda mantiene la macchia in uno stato solubile e permette agli agenti enzimatici di agire efficacemente.",
25
+ },
26
+ {
27
+ question: 'Cosa succede se applico acetone su un capo in acetato?',
28
+ answer:
29
+ "L'acetone scioglie il triacetato e l'acetato. Le fibre di acetato sono cellulosa esterificata con acido acetico e sono completamente solubili in acetone. Il risultato sarebbe la distruzione irreversibile del tessuto.",
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Identificare il tipo di fibra',
36
+ text: "Consulta l'etichetta interna del capo per sapere se si tratta di fibra naturale, sintetica o nobile (lana, seta, cashmere).",
37
+ },
38
+ {
39
+ name: 'Selezionare la fibra nello strumento',
40
+ text: 'Scegli il materiale corrispondente nel primo selettore.',
41
+ },
42
+ {
43
+ name: 'Selezionare il tipo di macchia',
44
+ text: 'Indica se la macchia è organica (vino, frutta), proteica (sangue), grassa o sintetica (inchiostro).',
45
+ },
46
+ {
47
+ name: 'Applicare il protocollo indicato',
48
+ text: 'Segui le istruzioni su agente, temperatura e metodo. Presta particolare attenzione alle avvertenze di cautela critica.',
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: 'it',
83
+ };
84
+
85
+ export const content: ToolLocaleContent<StainChemistryUI> = {
86
+ slug,
87
+ title,
88
+ description,
89
+ ui: {
90
+ toolTitle: 'Protocollo Chimico Macchie',
91
+ fiberLabel: '1. Fibra',
92
+ selectFiberPlaceholder: 'Seleziona il tessuto...',
93
+ stainLabel: '2. Macchia',
94
+ selectStainPlaceholder: 'Cosa è successo?',
95
+ molecularDiagnosis: 'Diagnosi Molecolare',
96
+ requiredAgent: 'Agente Richiesto',
97
+ thermalCondition: 'Condizione Termale',
98
+ temperature: 'Temperatura',
99
+ cleaningInstructions: 'Istruzioni di Pulizia',
100
+ criticalWarning: 'Cautela Critica',
101
+ criticalWarningLabel: 'ATTENZIONE',
102
+ technicalNote: 'Nota tecnica',
103
+ technicalNoteText:
104
+ 'Valida sempre la solidità della tintura in una zona non visibile prima di procedere con il trattamento chimico completo.',
105
+ systemDiagnosis: 'Sistema di Diagnosi',
106
+ systemDiagnosisDesc:
107
+ 'Configura i parametri tessili per ottenere la tabella di marcia per la pulizia',
108
+ delicatePercarbonateWarning:
109
+ 'RISCHIO DI DEGRADAZIONE MOLECOLARE. Fibre animali altamente sensibili al percarbonato. Effettuare test in zona non visibile.',
110
+ fiberData: {
111
+ cotton: { name: 'Cotone', family: 'natural', isNoble: false },
112
+ linen: { name: 'Lino', family: 'natural', isNoble: true },
113
+ wool: { name: 'Lana / Merino', family: 'natural', isNoble: true },
114
+ silk: { name: 'Seta', family: 'natural', isNoble: true },
115
+ cashmere: { name: 'Cashmere', family: 'natural', isNoble: true },
116
+ mohair: { name: 'Mohair', family: 'natural', isNoble: true },
117
+ angora: { name: 'Angora', family: 'natural', isNoble: true },
118
+ alpaca: { name: 'Alpaca', family: 'natural', isNoble: true },
119
+ polyester: { name: 'Poliestere', family: 'synthetic', isNoble: false },
120
+ viscose: { name: 'Viscosa / Rayon', family: 'artificial', isNoble: false },
121
+ nylon: { name: 'Nylon (Poliammide)', family: 'synthetic', isNoble: false },
122
+ acrylic: { name: 'Acrilico', family: 'synthetic', isNoble: false },
123
+ },
124
+ agents: {
125
+ percarbonate: {
126
+ name: 'Percarbonato di Sodio',
127
+ description: 'Sbiancante ossigenato biodegradabile. Rilascia ossigeno attivo quando si scioglie.',
128
+ warning: 'Evitare su fibre proteiche (seta, lana) ad alte concentrazioni.',
129
+ },
130
+ isopropyl: {
131
+ name: 'Alcol Isopropilico',
132
+ description: 'Solvente efficace per pigmenti e grassi leggeri.',
133
+ warning: 'Può danneggiare la lucentezza delle sete e sciogliere alcuni acrilici se non diluito.',
134
+ },
135
+ acetone: {
136
+ name: 'Acetone',
137
+ description: 'Solvente potente per lacche e colle.',
138
+ warning: 'PROIBITO su acetati e triacetati (scioglie la fibra).',
139
+ },
140
+ enzyme: {
141
+ name: 'Detergente Enzimatico',
142
+ description: 'Contiene proteasi che rompono le macchie biologiche.',
143
+ warning: 'Usare con cautela su lana e seta (sono proteine).',
144
+ },
145
+ vinegar: {
146
+ name: 'Aceto Bianco',
147
+ description: 'Acido acetico blando per neutralizzare gli odori e fissare i colori.',
148
+ },
149
+ },
150
+ stains: [
151
+ {
152
+ id: 'wine',
153
+ name: 'Vino Rosso / Frutta',
154
+ protocols: {
155
+ natural: { agentId: 'percarbonate', temperature: '40–60°C', method: 'Ammollo prolungato' },
156
+ synthetic: { agentId: 'percarbonate', temperature: '40°C', method: 'Pasta diretta' },
157
+ delicate: {
158
+ agentId: 'vinegar',
159
+ temperature: 'Fredda',
160
+ method: 'Risciacquo con acqua gasata e aceto',
161
+ notes: 'Non strofinare',
162
+ },
163
+ },
164
+ },
165
+ {
166
+ id: 'blood',
167
+ name: 'Sangue',
168
+ protocols: {
169
+ natural: {
170
+ agentId: 'enzyme',
171
+ temperature: 'Fredda',
172
+ method: 'Ammollo in acqua salata e poi enzima',
173
+ },
174
+ synthetic: { agentId: 'enzyme', temperature: 'Fredda', method: 'Applicazione diretta' },
175
+ delicate: {
176
+ agentId: 'vinegar',
177
+ temperature: 'Fredda',
178
+ method: 'Risciacquo immediato, evitare calore',
179
+ },
180
+ },
181
+ },
182
+ {
183
+ id: 'grease',
184
+ name: 'Grasso / Olio',
185
+ protocols: {
186
+ natural: {
187
+ agentId: 'isopropyl',
188
+ temperature: '40°C',
189
+ method: 'Sciogliere con alcol e poi lavare',
190
+ },
191
+ synthetic: {
192
+ agentId: 'isopropyl',
193
+ temperature: '40°C',
194
+ method: 'Mettere carta assorbente sotto',
195
+ },
196
+ delicate: { agentId: 'isopropyl', temperature: 'Fredda', method: 'Diluire alcol al 50%' },
197
+ },
198
+ },
199
+ {
200
+ id: 'ink',
201
+ name: 'Inchiostro / Pennarello',
202
+ protocols: {
203
+ natural: {
204
+ agentId: 'isopropyl',
205
+ temperature: 'Ambiente',
206
+ method: 'Tamponare dall\'esterno verso l\'interno',
207
+ },
208
+ synthetic: {
209
+ agentId: 'isopropyl',
210
+ temperature: 'Ambiente',
211
+ method: 'Cautela con la dispersione',
212
+ },
213
+ delicate: {
214
+ agentId: 'isopropyl',
215
+ temperature: 'Fredda',
216
+ method: 'Diluire e provare in zona nascosta',
217
+ },
218
+ },
219
+ },
220
+ ],
221
+ },
222
+ seo: [
223
+ {
224
+ type: 'title',
225
+ text: 'La Chimica Dietro la Pulizia Tessile',
226
+ level: 2,
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'Non tutte le macchie sono uguali, e non tutte le fibre reagiscono allo stesso modo agli stessi agenti chimici. La differenza tra salvare un capo e distruggerlo sta nel capire la natura molecolare della macchia e la struttura della fibra.',
231
+ },
232
+ {
233
+ type: 'card',
234
+ title: '01 — Ossidazione Controllata',
235
+ icon: 'mdi:atom',
236
+ html: 'Il <strong>percarbonato di sodio</strong> rilascia ossigeno attivo che rompe i doppi legami dei cromofori (le molecole responsabili del colore della macchia), rendendoli incolori e solubili in acqua. È il metodo più efficace per le macchie organiche.',
237
+ },
238
+ {
239
+ type: 'card',
240
+ title: '02 — Solubilizzazione tramite Solventi',
241
+ icon: 'mdi:flask-outline',
242
+ html: "Macchie come l'olio o l'inchiostro non sono solubili in acqua. Solventi come l'<strong>alcol isopropilico</strong> o l'<strong>acetone</strong> riducono la tensione superficiale e attirano le molecole non polari della macchia, permettendo loro di trasferirsi su un mezzo di supporto.",
243
+ },
244
+ {
245
+ type: 'title',
246
+ text: 'Sovranità sulle Fibre: Perché il Tipo Conta',
247
+ level: 2,
248
+ },
249
+ {
250
+ type: 'paragraph',
251
+ html: 'Non tutte le fibre "mangiano" allo stesso modo. La <strong>seta e la lana</strong> sono proteine (fibroina e cheratina). Se applichi un detergente enzimatico progettato per "mangiare proteine" (macchie di sangue o uovo) senza controllo, il detergente inizierà a degradare la fibra stessa, distruggendo la lucentezza e la struttura del tessuto.',
252
+ },
253
+ {
254
+ type: 'title',
255
+ text: 'Il Pericolo del Calore',
256
+ level: 2,
257
+ },
258
+ {
259
+ type: 'paragraph',
260
+ html: 'Uno degli errori più comuni è usare acqua calda per "ammorbidire" una macchia di sangue. Chimicamente, il calore produce la <strong>coagulazione delle proteine</strong> della macchia, fissandole permanentemente alla struttura porosa della fibra. Le macchie di proteine devono essere trattate sempre con acqua fredda.',
261
+ },
262
+ {
263
+ type: 'tip',
264
+ title: 'Protocollo di Emergenza: Vino Rosso',
265
+ html: "<strong>A. Assorbimento passivo:</strong> Tamponare con carta assorbente, mai strofinare per evitare l'espansione meccanica.<br><strong>B. Neutralizzazione osmotica:</strong> Coprire con sale fino per attirare il liquido verso l'esterno del nucleo della fibra.<br><strong>C. Azione chimica:</strong> Applicare una pasta di percarbonato e acqua a 40°C se la fibra è resistente al calore.",
266
+ },
267
+ {
268
+ type: 'title',
269
+ text: 'Solventi Specifici e Precauzioni',
270
+ level: 2,
271
+ },
272
+ {
273
+ type: 'paragraph',
274
+ html: "L'<strong>acetone</strong> è un solvente eccezionale per lacche per unghie o colle, ma è distruttivo per l'<strong>acetato</strong>. Essendo fibre derivate dalla cellulosa ma trattate chimicamente, l'acetone letteralmente scioglie il tessuto.",
275
+ },
276
+ {
277
+ type: 'paragraph',
278
+ html: "L'<strong>alcol isopropilico</strong> è più stabile, ma sui sintetici tinti può trascinare il pigmento stesso. Raccomandiamo sempre la 'prova dell'orlo' in una zona non visibile prima del trattamento principale.",
279
+ },
280
+ ],
281
+ faqTitle: 'Domande Frequenti',
282
+ faq: faqData,
283
+ bibliographyTitle: 'Bibliografia',
284
+ bibliography: [
285
+ {
286
+ name: 'AATCC - Association for Advancing Color Technology and Chemistry',
287
+ url: 'https://www.aatcc.org',
288
+ },
289
+ {
290
+ name: 'Kissa, E. — Textile Auxiliaries',
291
+ url: 'https://www.springer.com/gp/book/9783642057328',
292
+ },
293
+ {
294
+ name: 'ISO 105 — Textiles: Tests for Colour Fastness',
295
+ url: 'https://www.iso.org/standard/72682.html',
296
+ },
297
+ ],
298
+ howTo: howToData,
299
+ schemas: [faqSchema, howToSchema, appSchema],
300
+ };
@@ -0,0 +1,300 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { StainChemistryUI } from '../ui';
4
+
5
+ const slug = 'stain-chemical-protocol';
6
+ const title = '繊維(テキスタイル)染み抜き科学プロトコル';
7
+ const description =
8
+ '繊維の種類とシミの化学的性質に基づいた科学的な染み抜き手順。過炭酸塩、酵素、溶剤など、ケースごとの正しい方法を紹介します。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '過炭酸ナトリウムの代わりに塩素系漂白剤を使ってもいいですか?',
13
+ answer:
14
+ '塩素系漂白剤(次亜塩素酸ナトリウム)は腐食性が非常に高いです。繊維を劣化させ、黄ばみや脆化の原因になります。過炭酸塩は活性酸素によって漂白するため、繊維本来の分子構造を保護します。',
15
+ },
16
+ {
17
+ question: 'なぜお酢は消臭に効果があるのですか?',
18
+ answer:
19
+ '体臭は通常、アルカリ性です。お酢に含まれる酢酸がこれらを中和し、無臭の塩に変えるため、すすぎの段階で完全に除去されます。',
20
+ },
21
+ {
22
+ question: '血のシミには常に冷水を使うべきですか?',
23
+ answer:
24
+ 'はい。熱は血液中のタンパク質を凝固させ、繊維に永久的に定着させてしまいます。冷水はシミを溶けやすい状態に保ち、酵素剤が効果的に作用するのを助けます。',
25
+ },
26
+ {
27
+ question: 'アセテートの服にアセトンを使ったらどうなりますか?',
28
+ answer:
29
+ 'アセトンはトリアセテートやアセテートを溶かします。アセテート繊維は、セルロースを酢酸でエステル化したもので、アセトンに完全に溶解します。その結果、生地は修復不可能なほど破壊されます。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '繊維の種類を確認する',
36
+ text: '服の内側のタグで、天然繊維、合成繊維、または獣毛(ウール、シルク、カシミヤ)のいずれであるかを確認します。',
37
+ },
38
+ {
39
+ name: 'ツールで繊維を選択する',
40
+ text: '最初の選択項目で該当する素材を選びます。',
41
+ },
42
+ {
43
+ name: 'シミの種類を選択する',
44
+ text: 'シミが有機系(ワイン、果物)、タンパク質(血液)、脂質、または合成系(インク)のどれであるかを指定します。',
45
+ },
46
+ {
47
+ name: '指示されたプロトコルを実行する',
48
+ text: '使用薬剤、温度、方法についての指示に従います。特に重要な注意事項に細心の注意を払ってください。',
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: 'ja',
83
+ };
84
+
85
+ export const content: ToolLocaleContent<StainChemistryUI> = {
86
+ slug,
87
+ title,
88
+ description,
89
+ ui: {
90
+ toolTitle: '染み抜き科学プロトコル',
91
+ fiberLabel: '1. 繊維の種類',
92
+ selectFiberPlaceholder: '生地を選択してください...',
93
+ stainLabel: '2. シミの原因',
94
+ selectStainPlaceholder: '何が付きましたか?',
95
+ molecularDiagnosis: '分子診断',
96
+ requiredAgent: '必要な薬剤',
97
+ thermalCondition: '温度条件',
98
+ temperature: '温度',
99
+ cleaningInstructions: '洗浄手順',
100
+ criticalWarning: '重要な注意事項',
101
+ criticalWarningLabel: '注意',
102
+ technicalNote: '技術解説',
103
+ technicalNoteText:
104
+ '本格的な化学処理を行う前に、必ず目立たない場所で色落ちテストを行ってください。',
105
+ systemDiagnosis: '診断システム',
106
+ systemDiagnosisDesc:
107
+ '洗浄ロードマップを取得するために繊維のパラメータを設定してください',
108
+ delicatePercarbonateWarning:
109
+ '分子劣化のリスクあり。動物性繊維は過炭酸塩に対して非常に敏感です。必ず目立たない場所でテストしてください。',
110
+ fiberData: {
111
+ cotton: { name: '綿(コットン)', family: 'natural', isNoble: false },
112
+ linen: { name: '麻(リネン)', family: 'natural', isNoble: true },
113
+ wool: { name: '羊毛(ウール)', family: 'natural', isNoble: true },
114
+ silk: { name: '絹(シルク)', family: 'natural', isNoble: true },
115
+ cashmere: { name: 'カシミヤ', family: 'natural', isNoble: true },
116
+ mohair: { name: 'モヘア', family: 'natural', isNoble: true },
117
+ angora: { name: 'アンゴラ', family: 'natural', isNoble: true },
118
+ alpaca: { name: 'アルパカ', family: 'natural', isNoble: true },
119
+ polyester: { name: 'ポリエステル', family: 'synthetic', isNoble: false },
120
+ viscose: { name: 'ビスコース / レーヨン', family: 'artificial', isNoble: false },
121
+ nylon: { name: 'ナイロン(ポリアミド)', family: 'synthetic', isNoble: false },
122
+ acrylic: { name: 'アクリル', family: 'synthetic', isNoble: false },
123
+ },
124
+ agents: {
125
+ percarbonate: {
126
+ name: '過炭酸ナトリウム',
127
+ description: '生分解性の酸素系漂白剤。水に溶けると活性酸素を放出します。',
128
+ warning: '高濃度の場合、タンパク質繊維(シルク、ウール)への使用は避けてください。',
129
+ },
130
+ isopropyl: {
131
+ name: 'イソプロピルアルコール',
132
+ description: '色素や軽度の脂質に効果的な溶剤。',
133
+ warning: 'シルクの光沢を損なったり、希釈しないと一部のアクリルを溶かしたりすることがあります。',
134
+ },
135
+ acetone: {
136
+ name: 'アセトン',
137
+ description: 'ラッカーや接着剤に強力な効果を発揮する溶剤。',
138
+ warning: 'アセテートおよびトリアセテートには使用禁止(繊維を溶かします)。',
139
+ },
140
+ enzyme: {
141
+ name: '酵素入り洗剤',
142
+ description: '生物由来のシミを分解するプロテアーゼを含みます。',
143
+ warning: 'ウールやシルク(これらもタンパク質です)への使用には注意が必要です。',
144
+ },
145
+ vinegar: {
146
+ name: 'ホワイトビネガー(白酢)',
147
+ description: '消臭や色止めに効果のある穏やかな酢酸。',
148
+ },
149
+ },
150
+ stains: [
151
+ {
152
+ id: 'wine',
153
+ name: '赤ワイン / 果物',
154
+ protocols: {
155
+ natural: { agentId: 'percarbonate', temperature: '40–60°C', method: '長時間のつけ置き' },
156
+ synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '直接ペーストを塗布' },
157
+ delicate: {
158
+ agentId: 'vinegar',
159
+ temperature: '冷水',
160
+ method: '炭酸水とお酢ですすぐ',
161
+ notes: 'こすらないこと',
162
+ },
163
+ },
164
+ },
165
+ {
166
+ id: 'blood',
167
+ name: '血液',
168
+ protocols: {
169
+ natural: {
170
+ agentId: 'enzyme',
171
+ temperature: '冷水',
172
+ method: '塩水につけ置いた後、酵素剤を使用',
173
+ },
174
+ synthetic: { agentId: 'enzyme', temperature: '冷水', method: '直接塗布' },
175
+ delicate: {
176
+ agentId: 'vinegar',
177
+ temperature: '冷水',
178
+ method: 'すぐにすすぎ、熱を避ける',
179
+ },
180
+ },
181
+ },
182
+ {
183
+ id: 'grease',
184
+ name: '脂質 / オイル',
185
+ protocols: {
186
+ natural: {
187
+ agentId: 'isopropyl',
188
+ temperature: '40°C',
189
+ method: 'アルコールで溶かしてから洗濯する',
190
+ },
191
+ synthetic: {
192
+ agentId: 'isopropyl',
193
+ temperature: '40°C',
194
+ method: '下に吸水性の高い紙を敷く',
195
+ },
196
+ delicate: { agentId: 'isopropyl', temperature: '冷水', method: 'アルコールを50%に希釈' },
197
+ },
198
+ },
199
+ {
200
+ id: 'ink',
201
+ name: 'インク / マーカー',
202
+ protocols: {
203
+ natural: {
204
+ agentId: 'isopropyl',
205
+ temperature: '常温',
206
+ method: '外側から内側へ向かって叩き出す',
207
+ },
208
+ synthetic: {
209
+ agentId: 'isopropyl',
210
+ temperature: '常温',
211
+ method: 'シミの広がりに注意する',
212
+ },
213
+ delicate: {
214
+ agentId: 'isopropyl',
215
+ temperature: '冷水',
216
+ method: '希釈して目立たない場所でテストする',
217
+ },
218
+ },
219
+ },
220
+ ],
221
+ },
222
+ seo: [
223
+ {
224
+ type: 'title',
225
+ text: 'テキスタイル洗浄の背後にある化学',
226
+ level: 2,
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'すべてのシミが同じではなく、すべての繊維が同じ化学剤に対して同じように反応するわけでもありません。服を救えるか破壊してしまうかの違いは、シミの分子特性と繊維の構造を理解しているかどうかにあります。',
231
+ },
232
+ {
233
+ type: 'card',
234
+ title: '01 — 制御された酸化作用',
235
+ icon: 'mdi:atom',
236
+ html: '<strong>過炭酸ナトリウム</strong>は活性酸素を放出し、色素分子(シミの色の原因)の二重結合を切断することで、シミを無色化し水に溶けやすくします。有機系のシミに最も効果的な方法です。',
237
+ },
238
+ {
239
+ type: 'card',
240
+ title: '02 — 溶剤による溶解作用',
241
+ icon: 'mdi:flask-outline',
242
+ html: 'オイルやインクのようなシミは水に溶けません。<strong>イソプロピルアルコール</strong>や<strong>アセトン</strong>のような溶剤は、表面張力を下げてシミの非極性分子を引きつけ、支持媒体へと移動させることができます。',
243
+ },
244
+ {
245
+ type: 'title',
246
+ text: '繊維の支配権:なぜ種類が重要なのか',
247
+ level: 2,
248
+ },
249
+ {
250
+ type: 'paragraph',
251
+ html: 'すべての繊維が同じように「分解」されるわけではありません。<strong>シルクとウール</strong>はタンパク質(フィブロインとケラチン)です。もし、タンパク質を分解するように設計された酵素洗剤(血液や卵などの汚れ用)を無計画に使うと、洗剤が繊維自体を劣化させ始め、生地の光沢や構造を破壊してしまいます。',
252
+ },
253
+ {
254
+ type: 'title',
255
+ text: '熱の危険性',
256
+ level: 2,
257
+ },
258
+ {
259
+ type: 'paragraph',
260
+ html: '最も多い間違いの一つは、血液のシミを「ふやかす」ために熱いお湯を使うことです。化学的には、熱はシミの<strong>タンパク質を凝固</strong>させ、繊維の多孔質な構造に永久的に定着させてしまいます。タンパク質系のシミは必ず冷水で処理してください。',
261
+ },
262
+ {
263
+ type: 'tip',
264
+ title: '緊急プロトコル:赤ワイン',
265
+ html: '<strong>A. 受動的な吸収:</strong> 吸水性の紙で叩く(広げないように絶対にこすらない)。<br><strong>B. 浸透圧による中和:</strong> 微細な塩で覆い、繊維の核心から液体を引き出す。<br><strong>C. 化学的作用:</strong> 繊維が耐熱性であれば、40℃の温水で過炭酸塩のペーストを塗布する。',
266
+ },
267
+ {
268
+ type: 'title',
269
+ text: '特定の溶剤と注意事項',
270
+ level: 2,
271
+ },
272
+ {
273
+ type: 'paragraph',
274
+ html: '<strong>アセトン</strong>はマニキュアや接着剤を除去する非常に優れた溶剤ですが、<strong>アセテート</strong>には破壊的です。セルロース由来ながら化学処理された繊維であるため、アセトンは文字通り生地を溶解させます。',
275
+ },
276
+ {
277
+ type: 'paragraph',
278
+ html: '<strong>イソプロピルアルコール</strong>はより安定していますが、染められた合成繊維では顔料そのものを引き抜いてしまうことがあります。本処理の前に必ず「縫い代テスト」などの目立たない場所での確認を推奨します。',
279
+ },
280
+ ],
281
+ faqTitle: 'よくある質問',
282
+ faq: faqData,
283
+ bibliographyTitle: '参考文献',
284
+ bibliography: [
285
+ {
286
+ name: 'AATCC - Association for Advancing Color Technology and Chemistry',
287
+ url: 'https://www.aatcc.org',
288
+ },
289
+ {
290
+ name: 'Kissa, E. — Textile Auxiliaries',
291
+ url: 'https://www.springer.com/gp/book/9783642057328',
292
+ },
293
+ {
294
+ name: 'ISO 105 — Textiles: Tests for Colour Fastness',
295
+ url: 'https://www.iso.org/standard/72682.html',
296
+ },
297
+ ],
298
+ howTo: howToData,
299
+ schemas: [faqSchema, howToSchema, appSchema],
300
+ };