@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,282 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { FabricTruthUI } from '../ui';
4
+
5
+ const slug = 'kejujuran-tekstil-analisis-serat';
6
+ const title = 'Kejujuran Tekstil: Analisis Kualitas Serat';
7
+ const description = 'Temukan kualitas asli pakaian Anda dengan menganalisis komposisinya. Apakah ini katun asli atau plastik mahal? Analisis serat ilmiah.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Apa itu "Greenwashing" dalam dunia fashion?',
12
+ answer: 'Ini adalah teknik pemasaran di mana merek menggunakan istilah seperti "Ekologis" atau "Berkelanjutan" tanpa bukti nyata. Menganalisis komposisi serat yang sebenarnya adalah satu-satunya cara untuk memverifikasi apakah pakaian tersebut benar-benar alami atau sintetis.',
13
+ },
14
+ {
15
+ question: 'Mengapa polister seringkali dianggap berkualitas lebih rendah daripada katun?',
16
+ answer: 'Poliester adalah plastik (PET). Meskipun tahan lama, ia tidak menyerap keringat, memicu bau tidak sedap karena bakteri, dan menghasilkan mikroplastik di setiap pencucian. Serat alami seperti katun atau linen menawarkan regulasi termal yang lebih baik.',
17
+ },
18
+ {
19
+ question: 'Apakah buruk jika pakaian saya mengandung elastane?',
20
+ answer: 'Dalam jumlah kecil (1-5%), elastane (Lycra) memberikan kenyamanan dan kesesuaian bentuk. Namun, ia sangat menyulitkan daur ulang pakaian karena mencampur plastik dengan serat alami, yang seringkali mengindikasikan produk "fast fashion".',
21
+ },
22
+ {
23
+ question: 'Bagaimana cara mendeteksi pakaian berkualitas tinggi melalui labelnya?',
24
+ answer: 'Carilah komposisi monomaterial (100% Katun, 100% Wol). Campuran kompleks sering digunakan untuk menekan biaya produksi dan menyembunyikan serat sintetis di bawah nama dagang yang menarik.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Temukan label bagian dalam',
31
+ text: 'Cari label komposisi berwarna putih yang biasanya ada di bagian samping dalam atau di kerah pakaian Anda.',
32
+ },
33
+ {
34
+ name: 'Identifikasi komponen',
35
+ text: 'Baca persentase setiap serat (misal: 70% Katun, 30% Poliester).',
36
+ },
37
+ {
38
+ name: 'Masukkan data ke alat analisis',
39
+ text: 'Tulis proporsi serat ke dalam alat kami untuk mendapatkan skor kualitas teknis.',
40
+ },
41
+ {
42
+ name: 'Interpretasikan diagnosis',
43
+ text: 'Tinjau laporan yang dihasilkan untuk memahami apakah pakaian Anda menyerap keringat, tahan lama, atau memerlukan perawatan khusus karena komposisi sintetisnya.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description: description,
62
+ step: howToData.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description: description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
77
+ inLanguage: 'id',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<FabricTruthUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ ui: {
85
+ toolTitle: 'Kejujuran Tekstil',
86
+ addFiber: 'Tambah Serat',
87
+ total: 'Total',
88
+ composition: 'Analisis Komposisi',
89
+ description: 'Masukkan persentase apa adanya seperti yang tertera pada label pakaian Anda untuk mengungkap kebenaran tentang kualitasnya.',
90
+ verdict: 'Putusan',
91
+ breathability: 'Daya Serap Keringat',
92
+ durability: 'Ketahanan',
93
+ warmth: 'Kehangatan',
94
+ careWarning: 'Peringatan Perawatan Khusus',
95
+ specialCareWarning: 'PENCUCIAN STANDAR: Selalu ikuti instruksi pada label fisik.',
96
+ validationError: 'Komposisi harus berjumlah tepat 100% untuk melihat putusan',
97
+ actualTotal: 'Aktual',
98
+ missingLabel: 'kurang',
99
+ disclaimer: 'Data daya serap, ketahanan, dan kehangatan adalah estimasi berdasarkan rata-rata industri untuk setiap jenis serat.',
100
+ careWarnings: {
101
+ delicate: 'SANGAT HALUS: Cuci dengan tangan menggunakan air dingin. Jangan gunakan mesin pengering. Hindari memeras terlalu kuat.',
102
+ wool: 'WOL / BULU MULIA: Cuci menggunakan air dingin dengan program khusus. Jemur mendatar untuk menghindari perubahan bentuk. Jangan gunakan mesin pengering.',
103
+ linen: 'LINEN: Cenderung mudah kusut. Setrika dalam kondisi agak lembap untuk hasil terbaik.',
104
+ semisynthetic: 'SEMI-SINTETIS: Melemah saat basah. Rawat dengan hati-hati dan jangan gunakan pengering putar (centrifuge) yang kuat.',
105
+ standard: 'PENCUCIAN STANDAR: Selalu ikuti instruksi pada label fisik.',
106
+ },
107
+ fiberData: {
108
+ cotton: {
109
+ name: 'Katun',
110
+ family: 'natural',
111
+ breathability: 9,
112
+ durability: 7,
113
+ warmth: 4,
114
+ isNoble: false,
115
+ },
116
+ linen: {
117
+ name: 'Linen',
118
+ family: 'natural',
119
+ breathability: 10,
120
+ durability: 9,
121
+ warmth: 2,
122
+ isNoble: true,
123
+ },
124
+ wool: {
125
+ name: 'Wol / Merino',
126
+ family: 'natural',
127
+ breathability: 8,
128
+ durability: 6,
129
+ warmth: 10,
130
+ isNoble: true,
131
+ },
132
+ silk: {
133
+ name: 'Sutra',
134
+ family: 'natural',
135
+ breathability: 7,
136
+ durability: 5,
137
+ warmth: 6,
138
+ isNoble: true,
139
+ },
140
+ cashmere: {
141
+ name: 'Cashmere',
142
+ family: 'natural',
143
+ breathability: 9,
144
+ durability: 5,
145
+ warmth: 10,
146
+ isNoble: true,
147
+ },
148
+ mohair: {
149
+ name: 'Mohair',
150
+ family: 'natural',
151
+ breathability: 8,
152
+ durability: 9,
153
+ warmth: 9,
154
+ isNoble: true,
155
+ },
156
+ angora: {
157
+ name: 'Angora',
158
+ family: 'natural',
159
+ breathability: 8,
160
+ durability: 4,
161
+ warmth: 10,
162
+ isNoble: true,
163
+ },
164
+ alpaca: {
165
+ name: 'Alpaca',
166
+ family: 'natural',
167
+ breathability: 9,
168
+ durability: 8,
169
+ warmth: 10,
170
+ isNoble: true,
171
+ },
172
+ polyester: {
173
+ name: 'Poliester',
174
+ family: 'synthetic',
175
+ breathability: 2,
176
+ durability: 10,
177
+ warmth: 5,
178
+ isNoble: false,
179
+ },
180
+ viscose: {
181
+ name: 'Viscose / Rayon',
182
+ family: 'artificial',
183
+ breathability: 8,
184
+ durability: 4,
185
+ warmth: 3,
186
+ isNoble: false,
187
+ },
188
+ nylon: {
189
+ name: 'Nilon (Polyamide)',
190
+ family: 'synthetic',
191
+ breathability: 3,
192
+ durability: 10,
193
+ warmth: 4,
194
+ isNoble: false,
195
+ },
196
+ acrylic: {
197
+ name: 'Akrilik',
198
+ family: 'synthetic',
199
+ breathability: 4,
200
+ durability: 6,
201
+ warmth: 8,
202
+ isNoble: false,
203
+ },
204
+ },
205
+ verdicts: {
206
+ plasticy: {
207
+ label: 'Plastik Mahal',
208
+ description: 'Sebagian besar pakaian ini adalah minyak bumi. Bersiaplah untuk berkeringat dan munculnya bola-bola benang (pilling) dengan cepat.',
209
+ },
210
+ hook: {
211
+ label: 'Umpan Pemasaran',
212
+ description: 'Persentase kecil serat mulia itu ada di sana hanya untuk dicantumkan di label. Anda tidak akan merasakan manfaatnya.',
213
+ },
214
+ fragile: {
215
+ label: 'Lembut tapi Rapuh',
216
+ description: 'Sangat nyaman saat disentuh, tetapi hati-hati saat mencucinya: cenderung mudah berubah bentuk dan menyusut.',
217
+ },
218
+ natural: {
219
+ label: 'Kualitas Alami',
220
+ description: 'Pakaian yang menyerap keringat dan tahan lama. Ideal untuk kulit sensitif dan penggunaan jangka panjang.',
221
+ },
222
+ technical: {
223
+ label: 'Pakaian Teknis / Ultra-Sintetis',
224
+ description: 'Kecuali ini pakaian olahraga khusus, Anda membayar untuk plastik murni.',
225
+ },
226
+ luxury: {
227
+ label: 'Kemewahan Nyata',
228
+ description: 'Investasi dalam kenyamanan dan daya tahan. Perlakukan dengan rasa hormat yang layak diterimanya.',
229
+ },
230
+ balanced: {
231
+ label: 'Campuran Seimbang',
232
+ description: 'Kombinasi fungsional, kemungkinan besar berupaya mencari keseimbangan antara biaya dan ketahanan.',
233
+ },
234
+ },
235
+ },
236
+ seo: [
237
+ { type: 'title', text: 'Kebenaran di Balik Label: Panduan Utama Komposisi Tekstil', level: 2 },
238
+ { type: 'paragraph', html: 'Pernahkah Anda bertanya-tanya mengapa kaos bermerek itu membuat Anda sangat berkeringat, atau mengapa sweter "wol" itu terasa gatal sekali? Jawabannya bukan pada desainnya, melainkan pada kimia seratnya.' },
239
+ { type: 'paragraph', html: 'Di dunia yang didominasi oleh <strong>Fast Fashion</strong>, kualitas kain telah dikesampingkan demi estetika sesaat. Namun, memahami komposisi tekstil adalah satu-satunya cara untuk melakukan pembelian yang cerdas, tahan lama, dan ramah bagi kulit Anda. Alat <strong>Kejujuran Tekstil</strong> kami menganalisis persentase resmi untuk mengungkap apakah Anda menghadapi pakaian berkualitas atau sekadar balok plastik hasil olahan.' },
240
+ { type: 'title', text: 'Metodologi Kami', level: 2 },
241
+ { type: 'paragraph', html: 'Kami menggunakan algoritme berbobot berdasarkan tiga pilar utama yang diambil dari standar industri Eropa dan Amerika Utara:' },
242
+ { type: 'list', items: ['<strong>Daya Serap Keringat:</strong> Kemampuan serat untuk memungkinkan uap air dan udara lewat.', '<strong>Ketahanan:</strong> Ketahanan terhadap abrasi, tarikan, dan pembentukan <strong>pilling</strong> (bola benang).', '<strong>Efisiensi Termal:</strong> Kemampuan untuk menahan panas atau memberikan kesejukan mekanis.'] },
243
+ { type: 'tip', title: 'Penting', html: 'Hukum mewajibkan semua pakaian yang dijual di UE dan AS untuk mencantumkan komponennya dalam urutan persentase yang menurun. Jika pakaian tidak memiliki label atau label tidak terbaca, waspadalah: kemungkinan besar ia tidak memenuhi standar keamanan tekstil minimum.' },
244
+ { type: 'title', text: '"Tipuan" Umum dalam Ritel', level: 2 },
245
+ { type: 'paragraph', html: 'Terdapat teknik pemasaran yang sangat halus yang dirancang untuk meningkatkan persepsi nilai dari pakaian yang biasa saja. Berikut cara mendeteksinya:' },
246
+ { type: 'card', title: 'Umpan Serat Mulia', icon: 'mdi:alert', html: 'Anda akan melihat label yang bertuliskan "DENGAN CASHMERE" atau "DENGAN SUTRA" dengan huruf besar. Saat melihat komposisinya, Anda menemukan 3% sutra dan 97% poliester. 3% itu tidak memberikan kelembutan, kilau, maupun kehangatan; itu hanya berfungsi agar merek bisa menaikkan harga sebesar 20%.' },
247
+ { type: 'card', title: 'Mitos "Viscose Ekologis"', icon: 'mdi:leaf', html: 'Meskipun viscose berasal dari selulosa (kayu), proses pembuatannya saat ini seringkali sangat mencemari dan hasil akhirnya adalah serat yang melemah drastis saat basah. Kecuali jika ia adalah <strong>Lyocell</strong> atau <strong>Tencel</strong>, ketahanannya terbatas.' },
248
+ { type: 'title', text: 'Analisis Mendalam Berdasarkan Kategori', level: 2 },
249
+ { type: 'title', text: '1. Serat Alami (Bangga Organik)', level: 3 },
250
+ { type: 'paragraph', html: 'Mereka adalah standar emas. <strong>Katun</strong> serat panjang (seperti Pima atau Mesir) menawarkan kelembutan abadi. <strong>Linen</strong> secara ilmiah adalah serat terbaik untuk cuaca panas karena struktur molekulnya yang menolak panas dan menyerap kelembapan. <strong>Wol</strong> dan <strong>Hemp</strong> (Ganja) adalah antibakteri alami; tidak perlu dicuci terlalu sering karena tidak menahan bau.' },
251
+ { type: 'title', text: '2. Serat Semi-Sintetis (Si Hibrida)', level: 3 },
252
+ { type: 'paragraph', html: 'Di sini kita menemukan <strong>Viscose</strong>, <strong>Rayon</strong>, dan <strong>Modal</strong>. Terasa seperti sutra tetapi seharga katun. Sangat baik untuk pakaian dengan drape (jatuh kain) yang bagus, tetapi mereka "haus": menyerap banyak air dan lama kering, yang dapat memicu munculnya jamur jika tidak dirawat. <strong>Lyocell (Tencel)</strong> adalah versi premium dan berkelanjutan dari kelompok ini, dengan siklus produksi tertutup dan ketahanan yang lebih baik.' },
253
+ { type: 'title', text: '3. Serat Sintetis (Plastik yang Dipintal)', level: 3 },
254
+ { type: 'paragraph', html: '<strong>Poliester</strong> adalah raja pasar. Murah, tidak mudah kusut, dan abadi (secara harfiah, butuh 200 tahun untuk terurai). Masalahnya adalah ia tidak bernapas. Ia menciptakan mikroklimat lembap antara kain dan kulit Anda, tempat berkembang biak yang ideal bagi bakteri. <strong>Akrilik</strong> adalah imitasi murah dari wol: hangat, tetapi menghasilkan banyak listrik statis dan penuh dengan bola benang dalam dua kali pencucian.' },
255
+ { type: 'title', text: 'Kiat Bertahan Hidup Tekstil', level: 2 },
256
+ { type: 'paragraph', html: 'Bahkan pakaian terbaik di dunia pun bisa hancur hanya dengan satu kali pencucian yang tidak tepat. Berikut adalah aturan emas universal:' },
257
+ { type: 'tip', title: 'Air Dingin Adalah Teman Anda', html: '90% pakaian tidak membutuhkan suhu lebih dari 30°C. Panas merusak serat elastis dan menyusutkan serat alami.' },
258
+ { type: 'tip', title: 'Sedikit Lebih Baik (Deterjen)', html: 'Kelebihan sabun meninggalkan residu yang menarik kotoran dan membuat pakaian terasa kaku.' },
259
+ { type: 'tip', title: 'Pengering Mesin: Musuh yang Halus', html: 'Serat halus yang Anda lihat di filter pengering adalah bagian dari pakaian Anda yang terlepas karena gesekan dan panas.' },
260
+ { type: 'tip', title: 'Cuci dengan Posisi Terbalik', html: 'Melindungi warna dan sulaman dari gesekan dengan drum mesin cuci dan pakaian lainnya.' },
261
+ { type: 'paragraph', html: '"Beli lebih sedikit, pilih lebih baik, dan buat bertahan lama." — Alat analisis ini adalah langkah pertama Anda menuju lemari pakaian yang sadar dan berkualitas tinggi.' },
262
+ ],
263
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
264
+ faq: faqData,
265
+ bibliographyTitle: 'Referensi',
266
+ bibliography: [
267
+ {
268
+ name: 'FTC - Panduan Pelabelan Tekstil',
269
+ url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
+ },
271
+ {
272
+ name: 'Komisi Eropa - Regulasi Tekstil',
273
+ url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
+ },
275
+ {
276
+ name: 'ISO 3758:2012 - Simbol Perawatan Tekstil',
277
+ url: 'https://www.iso.org/standard/60465.html',
278
+ },
279
+ ],
280
+ howTo: howToData,
281
+ schemas: [faqSchema, howToSchema, appSchema],
282
+ };
@@ -0,0 +1,282 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { FabricTruthUI } from '../ui';
4
+
5
+ const slug = 'veridicita-tessile-analisi-fibre';
6
+ const title = 'Veridicità Tessile: Analisi della Qualità delle Fibre';
7
+ const description = 'Scopri la vera qualità dei tuoi capi analizzandone la composizione. È vero cotone o plastica costosa? Analisi scientifica delle fibre.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Cos\'è il "Greenwashing" nella moda?',
12
+ answer: 'È una tecnica di marketing in cui i marchi usano termini come "Ecologico" o "Sostenibile" senza prove reali. Analizzare la reale composizione delle fibre è l\'unico modo per verificare se un capo è davvero naturale o sintetico.',
13
+ },
14
+ {
15
+ question: 'Perché il poliestere è spesso di qualità inferiore rispetto al cotone?',
16
+ answer: 'Il poliestere è una plastica (PET). Sebbene sia durevole, non traspira, favorisce il cattivo odore dovuto ai batteri e genera microplastiche a ogni lavaggio. Le fibre naturali come il cotone o il lino offrono una migliore regolazione termica.',
17
+ },
18
+ {
19
+ question: 'È un male se i miei vestiti contengono elastan?',
20
+ answer: 'In piccole quantità (1-5%), l\'elastan (Lycra) conferisce comfort e vestibilità. Tuttavia, rende estremamente difficile il riciclo del capo mescolando plastica con fibre naturali, il che spesso indica un capo di "fast fashion".',
21
+ },
22
+ {
23
+ question: 'Come individuare un capo di alta qualità dall\'etichetta?',
24
+ answer: 'Cerca composizioni monomateriale (100% Cotone, 100% Lana). Le miscele complesse sono spesso usate per ridurre i costi di produzione e nascondono fibre sintetiche sotto nomi commerciali accattivanti.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Individuare l\'etichetta interna',
31
+ text: 'Cerca l\'etichetta bianca della composizione che di solito si trova sul lato interno o sul colletto del capo.',
32
+ },
33
+ {
34
+ name: 'Identificare i componenti',
35
+ text: 'Leggi le percentuali di ogni fibra (es. 70% Cotone, 30% Poliestere).',
36
+ },
37
+ {
38
+ name: 'Inserire i dati nell\'analizzatore',
39
+ text: 'Scrivi le proporzioni delle fibre nel nostro strumento per ottenere un punteggio tecnico di qualità.',
40
+ },
41
+ {
42
+ name: 'Interpretare la diagnosi',
43
+ text: 'Controlla il rapporto generato per capire se il tuo capo è traspirante, durevole o se richiede cure speciali per la sua composizione sintetica.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description: description,
62
+ step: howToData.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description: description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
77
+ inLanguage: 'it',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<FabricTruthUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ ui: {
85
+ toolTitle: 'Veridicità Tessile',
86
+ addFiber: 'Aggiungi Fibra',
87
+ total: 'Totale',
88
+ composition: 'Analisi della Composizione',
89
+ description: 'Inserisci le percentuali così come appaiono sull\'etichetta del tuo capo per scoprire la verità sulla sua qualità.',
90
+ verdict: 'Verdetto',
91
+ breathability: 'Traspirabilità',
92
+ durability: 'Durabilità',
93
+ warmth: 'Calore',
94
+ careWarning: 'Avviso di Cure Speciali',
95
+ specialCareWarning: 'LAVAGGIO STANDARD: Segui sempre le istruzioni dell\'etichetta fisica.',
96
+ validationError: 'La composizione deve sommare esattamente il 100% per vedere il verdetto',
97
+ actualTotal: 'Attuale',
98
+ missingLabel: 'mancano',
99
+ disclaimer: 'I dati di traspirabilità, durabilità e calore sono stime basate su medie del settore per ogni tipo di fibra.',
100
+ careWarnings: {
101
+ delicate: 'MOLTO DELICATO: Lavare a mano in acqua fredda. Non usare l\'asciugatrice. Evitare di strizzare con forza.',
102
+ wool: 'LANA / PELO PREGIATO: Lavare in acqua fredda con programma speciale. Asciugare in piano per evitare deformazioni. Non usare l\'asciugatrice.',
103
+ linen: 'LINO: Tende a stropicciarsi molto. Stirare leggermente umido per risultati migliori.',
104
+ semisynthetic: 'SEMISINTETICI: Si indebolisce se bagnato. Trattare con cura e non centrifugare forte.',
105
+ standard: 'LAVAGGIO STANDARD: Segui sempre le istruzioni dell\'etichetta fisica.',
106
+ },
107
+ fiberData: {
108
+ cotton: {
109
+ name: 'Cotone',
110
+ family: 'natural',
111
+ breathability: 9,
112
+ durability: 7,
113
+ warmth: 4,
114
+ isNoble: false,
115
+ },
116
+ linen: {
117
+ name: 'Lino',
118
+ family: 'natural',
119
+ breathability: 10,
120
+ durability: 9,
121
+ warmth: 2,
122
+ isNoble: true,
123
+ },
124
+ wool: {
125
+ name: 'Lana / Merino',
126
+ family: 'natural',
127
+ breathability: 8,
128
+ durability: 6,
129
+ warmth: 10,
130
+ isNoble: true,
131
+ },
132
+ silk: {
133
+ name: 'Seta',
134
+ family: 'natural',
135
+ breathability: 7,
136
+ durability: 5,
137
+ warmth: 6,
138
+ isNoble: true,
139
+ },
140
+ cashmere: {
141
+ name: 'Cashmere',
142
+ family: 'natural',
143
+ breathability: 9,
144
+ durability: 5,
145
+ warmth: 10,
146
+ isNoble: true,
147
+ },
148
+ mohair: {
149
+ name: 'Mohair',
150
+ family: 'natural',
151
+ breathability: 8,
152
+ durability: 9,
153
+ warmth: 9,
154
+ isNoble: true,
155
+ },
156
+ angora: {
157
+ name: 'Angora',
158
+ family: 'natural',
159
+ breathability: 8,
160
+ durability: 4,
161
+ warmth: 10,
162
+ isNoble: true,
163
+ },
164
+ alpaca: {
165
+ name: 'Alpaca',
166
+ family: 'natural',
167
+ breathability: 9,
168
+ durability: 8,
169
+ warmth: 10,
170
+ isNoble: true,
171
+ },
172
+ polyester: {
173
+ name: 'Poliestere',
174
+ family: 'synthetic',
175
+ breathability: 2,
176
+ durability: 10,
177
+ warmth: 5,
178
+ isNoble: false,
179
+ },
180
+ viscose: {
181
+ name: 'Viscosa / Rayon',
182
+ family: 'artificial',
183
+ breathability: 8,
184
+ durability: 4,
185
+ warmth: 3,
186
+ isNoble: false,
187
+ },
188
+ nylon: {
189
+ name: 'Nylon (Poliammide)',
190
+ family: 'synthetic',
191
+ breathability: 3,
192
+ durability: 10,
193
+ warmth: 4,
194
+ isNoble: false,
195
+ },
196
+ acrylic: {
197
+ name: 'Acrilico',
198
+ family: 'synthetic',
199
+ breathability: 4,
200
+ durability: 6,
201
+ warmth: 8,
202
+ isNoble: false,
203
+ },
204
+ },
205
+ verdicts: {
206
+ plasticy: {
207
+ label: 'Plastica Costosa',
208
+ description: 'La maggior parte di questo capo è petrolio. Preparati a sudare e alla comparsa rapida di pallini (pilling).',
209
+ },
210
+ hook: {
211
+ label: 'Esca di Marketing',
212
+ description: 'Quella piccola percentuale di fibra pregiata è lì solo per essere scritta in etichetta. Non ne noterai i benefici.',
213
+ },
214
+ fragile: {
215
+ label: 'Morbido ma Fragile',
216
+ description: 'Molto piacevole al tatto, ma attenzione al lavaggio: tende a deformarsi e restringersi con facilità.',
217
+ },
218
+ natural: {
219
+ label: 'Qualità Naturale',
220
+ description: 'Capo traspirante e durevole. Ideale per pelli sensibili e uso prolungato.',
221
+ },
222
+ technical: {
223
+ label: 'Capo Tecnico / Ultra-Sintetico',
224
+ description: 'A meno che non sia abbigliamento sportivo specifico, stai pagando per pura plastica.',
225
+ },
226
+ luxury: {
227
+ label: 'Lusso Reale',
228
+ description: 'Un investimento in comfort e durabilità. Trattalo con il rispetto che merita.',
229
+ },
230
+ balanced: {
231
+ label: 'Miscela Equilibrata',
232
+ description: 'Una combinazione funzionale, probabilmente volta a bilanciare costi e durabilità.',
233
+ },
234
+ },
235
+ },
236
+ seo: [
237
+ { type: 'title', text: 'La Verità Dietro l\'Etichetta: Guida Maestra alla Composizione Tessile', level: 2 },
238
+ { type: 'paragraph', html: 'Ti sei mai chiesto perché quella maglietta di marca ti fa sudare così tanto, o perché quel maglione "di lana" punge in modo insopportabile? La risposta non è nel design, ma nella chimica delle sue fibre.' },
239
+ { type: 'paragraph', html: 'In un mondo dominato dal <strong>Fast Fashion</strong>, la qualità dei tessuti è passata in secondo piano rispetto all\'estetica effimera. Tuttavia, capire la composizione tessile è l\'unico modo per fare un acquisto intelligente, duraturo e rispettoso della tua pelle. Il nostro strumento di <strong>Veridicità Tessile</strong> analizza le percentuali ufficiali per rivelarti se sei di fronte a un capo di qualità o a un semplice blocco di plastica lavorata.' },
240
+ { type: 'title', text: 'La Nostra Metodologia', level: 2 },
241
+ { type: 'paragraph', html: 'Utilizziamo un algoritmo ponderato basato su tre pilastri fondamentali tratti dagli standard industriali europei e nordamericani:' },
242
+ { type: 'list', items: ['<strong>Traspirabilità:</strong> Capacità della fibra di permettere il passaggio del vapore acqueo e dell\'aria.', '<strong>Durabilità:</strong> Resistenza all\'abrasione, alla trazione e alla formazione di <strong>pilling</strong> (pallini).', '<strong>Efficienza Termica:</strong> Capacità di ritensione del calore o freschezza meccanica.'] },
243
+ { type: 'tip', title: 'Importante', html: 'La legge richiede che tutti i capi venduti in UE e USA elenchino i propri componenti in ordine decrescente di percentuale. Se un capo non ha l\'etichetta o questa è illeggibile, diffida: è probabile che non rispetti gli standard minimi di sicurezza tessile.' },
244
+ { type: 'title', text: 'Gli "Inganni" Comuni nel Retail', level: 2 },
245
+ { type: 'paragraph', html: 'Esistono tecniche di marketing molto raffinate progettate per elevare il valore percepito di un capo mediocre. Ecco come rilevarle:' },
246
+ { type: 'card', title: 'L\'Esca della Fibra Pregiata', icon: 'mdi:alert', html: 'Vedrai etichette che dicono "CON CASHMERE" o "CON SETA" a grandi lettere. Guardando la composizione, scopri un 3% di seta e un 97% di poliestere. Quel 3% non apporta morbidezza, né lucentezza, né calore; serve solo perché il marchio possa alzare il prezzo del 20%.' },
247
+ { type: 'card', title: 'Il Mito della "Viscosa Ecologica"', icon: 'mdi:leaf', html: 'Sebbene la viscosa provenga dalla cellulosa (legno), il suo attuale processo di fabbricazione è spesso altamente inquinante e il risultato finale è una fibra che si indebolisce drasticamente bagnandosi. A meno che non sia <strong>Lyocell</strong> o <strong>Tencel</strong>, la sua durabilità è limitata.' },
248
+ { type: 'title', text: 'Analisi Approfondita per Categorie', level: 2 },
249
+ { type: 'title', text: '1. Fibre Naturali (Orgogliosamente Organiche)', level: 3 },
250
+ { type: 'paragraph', html: 'Sono lo standard di riferimento. Il <strong>Cotone</strong> a fibra lunga (come il Pima o l\'Egiziano) offre una morbidezza eterna. Il <strong>Lino</strong> è, scientificamente, la migliore fibra per il caldo grazie alla sua struttura molecolare che respinge il calore e assorbe l\'umidità. La <strong>Lana</strong> e la <strong>Canapa</strong> sono antibatterici naturali; non hanno bisogno di essere lavati così spesso perché non trattengono gli odori.' },
251
+ { type: 'title', text: '2. Fibre Semi-Sintetiche (L\'Ibrido)', level: 3 },
252
+ { type: 'paragraph', html: 'Qui troviamo la <strong>Viscosa</strong>, il <strong>Rayon</strong> e il <strong>Modal</strong>. Si sentono come seta ma costano come cotone. Sono eccellenti per capi con molto drappeggio, ma sono "assetati": assorbono molta acqua e impiegano tempo ad asciugare, il che può favorire la comparsa di muffa se non curati. Il <strong>Lyocell (Tencel)</strong> è la versione premium e sostenibile di questo gruppo, con un ciclo di produzione chiuso e maggiore resistenza.' },
253
+ { type: 'title', text: '3. Fibre Sintetiche (Plastiche Filate)', level: 3 },
254
+ { type: 'paragraph', html: 'Il <strong>Poliestere</strong> è il re del mercato. È economico, non si stropiccia ed è eterno (letteralmente, ci vorranno 200 anni per decomporsi). Il problema è che non respira. Crea un microclima umido tra il tessuto e la tua pelle, l\'ambiente ideale per i batteri. L\'<strong>Acrilico</strong> è l\'imitazione economica della lana: scalda, ma genera molta elettricità statica e si riempie di pallini in due lavaggi.' },
255
+ { type: 'title', text: 'Consigli di Sopravvivenza Tessile', level: 2 },
256
+ { type: 'paragraph', html: 'Persino il miglior capo al mondo può essere rovinato da un solo lavaggio inadeguato. Ecco le regole d\'oro universali:' },
257
+ { type: 'tip', title: 'L\'Acqua Fredda è tua Amica', html: 'Il 90% dei capi non necessita di più di 30°C. Il calore degrada le fibre elastiche e restringe quelle naturali.' },
258
+ { type: 'tip', title: 'Meno è Meglio (Detersivo)', html: 'L\'eccesso di sapone lascia residui che attirano sporco e rendono i vestiti rigidi.' },
259
+ { type: 'tip', title: 'Asciugatrice: Il Nemico Sottile', html: 'I pelucchi che vedi nel filtro dell\'asciugatrice sono pezzi dei tuoi vestiti che si sono staccati per la frizione e il calore.' },
260
+ { type: 'tip', title: 'Lavaggio al Rovescio', html: 'Protegge il colore e i ricami dallo sfregamento con il cestello e altri capi.' },
261
+ { type: 'paragraph', html: '"Comprare meno, scegliere meglio e farlo durare." — Questo analizzatore è il tuo primo passo verso un armadio consapevole e di alta qualità.' },
262
+ ],
263
+ faqTitle: 'Domande Frequenti',
264
+ faq: faqData,
265
+ bibliographyTitle: 'Bibliografia',
266
+ bibliography: [
267
+ {
268
+ name: 'FTC - Guida all\'Etichettatura Tessile',
269
+ url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
+ },
271
+ {
272
+ name: 'Commissione Europea - Regolamentazione Tessile',
273
+ url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
+ },
275
+ {
276
+ name: 'ISO 3758:2012 - Simboli di Manutenzione Tessile',
277
+ url: 'https://www.iso.org/standard/60465.html',
278
+ },
279
+ ],
280
+ howTo: howToData,
281
+ schemas: [faqSchema, howToSchema, appSchema],
282
+ };