@jjlmoya/utils-textiles 1.4.0 → 1.6.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 (181) 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 +1 -1
  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_language_code_format.test.ts +23 -0
  20. package/src/tests/slug_uniqueness.test.ts +81 -0
  21. package/src/tests/title_quality.test.ts +55 -0
  22. package/src/tool/burnTest/i18n/de.ts +225 -0
  23. package/src/tool/burnTest/i18n/id.ts +225 -0
  24. package/src/tool/burnTest/i18n/it.ts +225 -0
  25. package/src/tool/burnTest/i18n/ja.ts +225 -0
  26. package/src/tool/burnTest/i18n/ko.ts +225 -0
  27. package/src/tool/burnTest/i18n/nl.ts +225 -0
  28. package/src/tool/burnTest/i18n/pl.ts +225 -0
  29. package/src/tool/burnTest/i18n/pt.ts +225 -0
  30. package/src/tool/burnTest/i18n/ru.ts +225 -0
  31. package/src/tool/burnTest/i18n/sv.ts +225 -0
  32. package/src/tool/burnTest/i18n/tr.ts +225 -0
  33. package/src/tool/burnTest/i18n/zh.ts +225 -0
  34. package/src/tool/burnTest/index.ts +15 -7
  35. package/src/tool/clothingSizeConverter/i18n/de.ts +356 -0
  36. package/src/tool/clothingSizeConverter/i18n/id.ts +356 -0
  37. package/src/tool/clothingSizeConverter/i18n/it.ts +356 -0
  38. package/src/tool/clothingSizeConverter/i18n/ja.ts +356 -0
  39. package/src/tool/clothingSizeConverter/i18n/ko.ts +356 -0
  40. package/src/tool/clothingSizeConverter/i18n/nl.ts +356 -0
  41. package/src/tool/clothingSizeConverter/i18n/pl.ts +356 -0
  42. package/src/tool/clothingSizeConverter/i18n/pt.ts +356 -0
  43. package/src/tool/clothingSizeConverter/i18n/ru.ts +356 -0
  44. package/src/tool/clothingSizeConverter/i18n/sv.ts +356 -0
  45. package/src/tool/clothingSizeConverter/i18n/tr.ts +356 -0
  46. package/src/tool/clothingSizeConverter/i18n/zh.ts +356 -0
  47. package/src/tool/clothingSizeConverter/index.ts +15 -7
  48. package/src/tool/fabricProjectCalculator/i18n/de.ts +250 -0
  49. package/src/tool/fabricProjectCalculator/i18n/id.ts +250 -0
  50. package/src/tool/fabricProjectCalculator/i18n/it.ts +250 -0
  51. package/src/tool/fabricProjectCalculator/i18n/ja.ts +250 -0
  52. package/src/tool/fabricProjectCalculator/i18n/ko.ts +250 -0
  53. package/src/tool/fabricProjectCalculator/i18n/nl.ts +250 -0
  54. package/src/tool/fabricProjectCalculator/i18n/pl.ts +250 -0
  55. package/src/tool/fabricProjectCalculator/i18n/pt.ts +250 -0
  56. package/src/tool/fabricProjectCalculator/i18n/ru.ts +250 -0
  57. package/src/tool/fabricProjectCalculator/i18n/sv.ts +250 -0
  58. package/src/tool/fabricProjectCalculator/i18n/tr.ts +250 -0
  59. package/src/tool/fabricProjectCalculator/i18n/zh.ts +250 -0
  60. package/src/tool/fabricProjectCalculator/index.ts +15 -7
  61. package/src/tool/fabricTruth/i18n/de.ts +282 -0
  62. package/src/tool/fabricTruth/i18n/en.ts +1 -1
  63. package/src/tool/fabricTruth/i18n/fr.ts +1 -1
  64. package/src/tool/fabricTruth/i18n/id.ts +282 -0
  65. package/src/tool/fabricTruth/i18n/it.ts +282 -0
  66. package/src/tool/fabricTruth/i18n/ja.ts +282 -0
  67. package/src/tool/fabricTruth/i18n/ko.ts +282 -0
  68. package/src/tool/fabricTruth/i18n/nl.ts +282 -0
  69. package/src/tool/fabricTruth/i18n/pl.ts +282 -0
  70. package/src/tool/fabricTruth/i18n/pt.ts +282 -0
  71. package/src/tool/fabricTruth/i18n/ru.ts +282 -0
  72. package/src/tool/fabricTruth/i18n/sv.ts +282 -0
  73. package/src/tool/fabricTruth/i18n/tr.ts +282 -0
  74. package/src/tool/fabricTruth/i18n/zh.ts +286 -0
  75. package/src/tool/fabricTruth/index.ts +15 -7
  76. package/src/tool/fiberPrep/i18n/de.ts +225 -0
  77. package/src/tool/fiberPrep/i18n/id.ts +225 -0
  78. package/src/tool/fiberPrep/i18n/it.ts +225 -0
  79. package/src/tool/fiberPrep/i18n/ja.ts +225 -0
  80. package/src/tool/fiberPrep/i18n/ko.ts +225 -0
  81. package/src/tool/fiberPrep/i18n/nl.ts +225 -0
  82. package/src/tool/fiberPrep/i18n/pl.ts +225 -0
  83. package/src/tool/fiberPrep/i18n/pt.ts +225 -0
  84. package/src/tool/fiberPrep/i18n/ru.ts +225 -0
  85. package/src/tool/fiberPrep/i18n/sv.ts +225 -0
  86. package/src/tool/fiberPrep/i18n/tr.ts +225 -0
  87. package/src/tool/fiberPrep/i18n/zh.ts +225 -0
  88. package/src/tool/fiberPrep/index.ts +15 -7
  89. package/src/tool/knittingGauge/i18n/de.ts +234 -0
  90. package/src/tool/knittingGauge/i18n/id.ts +234 -0
  91. package/src/tool/knittingGauge/i18n/it.ts +234 -0
  92. package/src/tool/knittingGauge/i18n/ja.ts +234 -0
  93. package/src/tool/knittingGauge/i18n/ko.ts +234 -0
  94. package/src/tool/knittingGauge/i18n/nl.ts +234 -0
  95. package/src/tool/knittingGauge/i18n/pl.ts +234 -0
  96. package/src/tool/knittingGauge/i18n/pt.ts +234 -0
  97. package/src/tool/knittingGauge/i18n/ru.ts +234 -0
  98. package/src/tool/knittingGauge/i18n/sv.ts +234 -0
  99. package/src/tool/knittingGauge/i18n/tr.ts +234 -0
  100. package/src/tool/knittingGauge/i18n/zh.ts +234 -0
  101. package/src/tool/knittingGauge/index.ts +15 -7
  102. package/src/tool/laundryGuide/i18n/de.ts +275 -0
  103. package/src/tool/laundryGuide/i18n/id.ts +275 -0
  104. package/src/tool/laundryGuide/i18n/it.ts +275 -0
  105. package/src/tool/laundryGuide/i18n/ja.ts +275 -0
  106. package/src/tool/laundryGuide/i18n/ko.ts +275 -0
  107. package/src/tool/laundryGuide/i18n/nl.ts +275 -0
  108. package/src/tool/laundryGuide/i18n/pl.ts +275 -0
  109. package/src/tool/laundryGuide/i18n/pt.ts +275 -0
  110. package/src/tool/laundryGuide/i18n/ru.ts +275 -0
  111. package/src/tool/laundryGuide/i18n/sv.ts +275 -0
  112. package/src/tool/laundryGuide/i18n/tr.ts +275 -0
  113. package/src/tool/laundryGuide/i18n/zh.ts +275 -0
  114. package/src/tool/laundryGuide/index.ts +15 -7
  115. package/src/tool/needleConverter/i18n/de.ts +212 -0
  116. package/src/tool/needleConverter/i18n/id.ts +212 -0
  117. package/src/tool/needleConverter/i18n/it.ts +212 -0
  118. package/src/tool/needleConverter/i18n/ja.ts +212 -0
  119. package/src/tool/needleConverter/i18n/ko.ts +212 -0
  120. package/src/tool/needleConverter/i18n/nl.ts +212 -0
  121. package/src/tool/needleConverter/i18n/pl.ts +212 -0
  122. package/src/tool/needleConverter/i18n/pt.ts +212 -0
  123. package/src/tool/needleConverter/i18n/ru.ts +212 -0
  124. package/src/tool/needleConverter/i18n/sv.ts +212 -0
  125. package/src/tool/needleConverter/i18n/tr.ts +212 -0
  126. package/src/tool/needleConverter/i18n/zh.ts +212 -0
  127. package/src/tool/needleConverter/index.ts +15 -7
  128. package/src/tool/sewingPatternScaler/i18n/de.ts +227 -0
  129. package/src/tool/sewingPatternScaler/i18n/id.ts +227 -0
  130. package/src/tool/sewingPatternScaler/i18n/it.ts +227 -0
  131. package/src/tool/sewingPatternScaler/i18n/ja.ts +227 -0
  132. package/src/tool/sewingPatternScaler/i18n/ko.ts +227 -0
  133. package/src/tool/sewingPatternScaler/i18n/nl.ts +227 -0
  134. package/src/tool/sewingPatternScaler/i18n/pl.ts +227 -0
  135. package/src/tool/sewingPatternScaler/i18n/pt.ts +227 -0
  136. package/src/tool/sewingPatternScaler/i18n/ru.ts +227 -0
  137. package/src/tool/sewingPatternScaler/i18n/sv.ts +227 -0
  138. package/src/tool/sewingPatternScaler/i18n/tr.ts +227 -0
  139. package/src/tool/sewingPatternScaler/i18n/zh.ts +227 -0
  140. package/src/tool/sewingPatternScaler/index.ts +15 -7
  141. package/src/tool/shoeSizeConverter/i18n/de.ts +184 -0
  142. package/src/tool/shoeSizeConverter/i18n/id.ts +184 -0
  143. package/src/tool/shoeSizeConverter/i18n/it.ts +184 -0
  144. package/src/tool/shoeSizeConverter/i18n/ja.ts +184 -0
  145. package/src/tool/shoeSizeConverter/i18n/ko.ts +184 -0
  146. package/src/tool/shoeSizeConverter/i18n/nl.ts +184 -0
  147. package/src/tool/shoeSizeConverter/i18n/pl.ts +184 -0
  148. package/src/tool/shoeSizeConverter/i18n/pt.ts +184 -0
  149. package/src/tool/shoeSizeConverter/i18n/ru.ts +184 -0
  150. package/src/tool/shoeSizeConverter/i18n/sv.ts +184 -0
  151. package/src/tool/shoeSizeConverter/i18n/tr.ts +184 -0
  152. package/src/tool/shoeSizeConverter/i18n/zh.ts +184 -0
  153. package/src/tool/shoeSizeConverter/index.ts +15 -7
  154. package/src/tool/stainChemistry/i18n/de.ts +300 -0
  155. package/src/tool/stainChemistry/i18n/id.ts +300 -0
  156. package/src/tool/stainChemistry/i18n/it.ts +300 -0
  157. package/src/tool/stainChemistry/i18n/ja.ts +300 -0
  158. package/src/tool/stainChemistry/i18n/ko.ts +297 -0
  159. package/src/tool/stainChemistry/i18n/nl.ts +300 -0
  160. package/src/tool/stainChemistry/i18n/pl.ts +300 -0
  161. package/src/tool/stainChemistry/i18n/pt.ts +300 -0
  162. package/src/tool/stainChemistry/i18n/ru.ts +300 -0
  163. package/src/tool/stainChemistry/i18n/sv.ts +300 -0
  164. package/src/tool/stainChemistry/i18n/tr.ts +300 -0
  165. package/src/tool/stainChemistry/i18n/zh.ts +295 -0
  166. package/src/tool/stainChemistry/index.ts +15 -7
  167. package/src/tool/yarnCalculator/i18n/de.ts +310 -0
  168. package/src/tool/yarnCalculator/i18n/id.ts +310 -0
  169. package/src/tool/yarnCalculator/i18n/it.ts +310 -0
  170. package/src/tool/yarnCalculator/i18n/ja.ts +310 -0
  171. package/src/tool/yarnCalculator/i18n/ko.ts +310 -0
  172. package/src/tool/yarnCalculator/i18n/nl.ts +310 -0
  173. package/src/tool/yarnCalculator/i18n/pl.ts +310 -0
  174. package/src/tool/yarnCalculator/i18n/pt.ts +310 -0
  175. package/src/tool/yarnCalculator/i18n/ru.ts +310 -0
  176. package/src/tool/yarnCalculator/i18n/sv.ts +310 -0
  177. package/src/tool/yarnCalculator/i18n/tr.ts +310 -0
  178. package/src/tool/yarnCalculator/i18n/zh.ts +309 -0
  179. package/src/tool/yarnCalculator/index.ts +15 -7
  180. package/src/tools.ts +2 -0
  181. package/src/types.ts +1 -1
@@ -0,0 +1,286 @@
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 = 'fabric-truthfulness';
6
+ const title = '织物真相:纤维质量分析';
7
+ const description = '通过分析衣服的成分,探索其真实的品质。是天然棉还是昂贵的塑料?科学进行纤维分析。';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '时尚界的“洗绿”(Greenwashing)是指什么?',
12
+ answer:
13
+ '这是一种营销手法,品牌在没有真实证据的情况下使用“环保”或“可持续”等词汇。分析纤维的实际成分是验证一件衣服究竟是天然的还是合成的唯一方法。',
14
+ },
15
+ {
16
+ question: '为什么涤纶(聚酯纤维)的品质通常被认为低于棉?',
17
+ answer:
18
+ '涤纶本质上是塑料(PET)。虽然耐穿,但不透气,容易由于细菌滋生而产生异味,且每次洗涤都会产生微塑料。而棉或亚麻等天然纤维具有更好的体温调节功能。',
19
+ },
20
+ {
21
+ question: '我的衣服里含有氨纶(弹性纤维)坏处大吗?',
22
+ answer:
23
+ '少量(1-5%)的氨纶(莱卡)可以提供舒适度和合身感。然而,它使衣物的回收变得极其困难,因为它将塑料与天然纤维混合在一起,这通常是“快时尚”产品的标志。',
24
+ },
25
+ {
26
+ question: '如何通过标签识别高品质衣物?',
27
+ answer:
28
+ '寻找单一材料成分(如 100% 棉、100% 羊毛)。复杂的混纺通常是为了降低生产成本,并在动听的商业名称下隐藏合成纤维。',
29
+ },
30
+ ];
31
+
32
+ const howToData = [
33
+ {
34
+ name: '找到内侧洗标',
35
+ text: '寻找衣服内侧边缝或衣领处的白色成分洗标。',
36
+ },
37
+ {
38
+ name: '识别成分名称',
39
+ text: '读取每种纤维的百分比(例如:70% 棉,30% 聚酯纤维)。',
40
+ },
41
+ {
42
+ name: '在分析工具中输入数据',
43
+ text: '将纤维比例输入我们的工具,以获取技术质量评分。',
44
+ },
45
+ {
46
+ name: '解读诊断报告',
47
+ text: '查看生成的报告,了解您的衣服是否透气、耐穿,或者由于含有合成成分是否需要特殊护理。',
48
+ },
49
+ ];
50
+
51
+ const faqSchema: WithContext<FAQPage> = {
52
+ '@context': 'https://schema.org',
53
+ '@type': 'FAQPage',
54
+ mainEntity: faqData.map((item) => ({
55
+ '@type': 'Question',
56
+ name: item.question,
57
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
58
+ })),
59
+ };
60
+
61
+ const howToSchema: WithContext<HowTo> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'HowTo',
64
+ name: title,
65
+ description: description,
66
+ step: howToData.map((step) => ({
67
+ '@type': 'HowToStep',
68
+ name: step.name,
69
+ text: step.text,
70
+ })),
71
+ };
72
+
73
+ const appSchema: WithContext<SoftwareApplication> = {
74
+ '@context': 'https://schema.org',
75
+ '@type': 'SoftwareApplication',
76
+ name: title,
77
+ description: description,
78
+ applicationCategory: 'UtilityApplication',
79
+ operatingSystem: 'All',
80
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
81
+ inLanguage: 'zh',
82
+ };
83
+
84
+ export const content: ToolLocaleContent<FabricTruthUI> = {
85
+ slug,
86
+ title,
87
+ description,
88
+ ui: {
89
+ toolTitle: '织物真相',
90
+ addFiber: '添加纤维',
91
+ total: '总计',
92
+ composition: '成分分析',
93
+ description: '照实输入您衣服标签上的百分比,揭开其品质的真相。',
94
+ verdict: '诊断结论',
95
+ breathability: '透气性',
96
+ durability: '耐用度',
97
+ warmth: '保暖性',
98
+ careWarning: '特殊护理提示',
99
+ specialCareWarning: '标准洗涤:请始终遵循实物标签上的说明。',
100
+ validationError: '成分总和必须恰好为 100% 才能查看结论',
101
+ actualTotal: '当前比例',
102
+ missingLabel: '尚欠',
103
+ disclaimer: '透气性、耐用度和保暖性数据是基于每种纤维类型的行业平均值的估算。',
104
+ careWarnings: {
105
+ delicate: '非常娇贵:冷水手洗。不可烘干。避免用力拧干。',
106
+ wool: '羊毛 / 高级兽毛:使用专用程序冷水洗涤。平铺晾干以防变形。不可烘干。',
107
+ linen: '亚麻:极易起皱。洗后微湿时熨烫效果最佳。',
108
+ semisynthetic: '半合成纤维:湿润时强力下降。请小心洗涤,不可强力脱水。',
109
+ standard: '标准洗涤:请始终遵循实物标签上的说明。',
110
+ },
111
+ fiberData: {
112
+ cotton: {
113
+ name: '棉',
114
+ family: 'natural',
115
+ breathability: 9,
116
+ durability: 7,
117
+ warmth: 4,
118
+ isNoble: false,
119
+ },
120
+ linen: {
121
+ name: '亚麻',
122
+ family: 'natural',
123
+ breathability: 10,
124
+ durability: 9,
125
+ warmth: 2,
126
+ isNoble: true,
127
+ },
128
+ wool: {
129
+ name: '羊毛 / 美利奴',
130
+ family: 'natural',
131
+ breathability: 8,
132
+ durability: 6,
133
+ warmth: 10,
134
+ isNoble: true,
135
+ },
136
+ silk: {
137
+ name: '真丝',
138
+ family: 'natural',
139
+ breathability: 7,
140
+ durability: 5,
141
+ warmth: 6,
142
+ isNoble: true,
143
+ },
144
+ cashmere: {
145
+ name: '羊绒',
146
+ family: 'natural',
147
+ breathability: 9,
148
+ durability: 5,
149
+ warmth: 10,
150
+ isNoble: true,
151
+ },
152
+ mohair: {
153
+ name: '马海毛',
154
+ family: 'natural',
155
+ breathability: 8,
156
+ durability: 9,
157
+ warmth: 9,
158
+ isNoble: true,
159
+ },
160
+ angora: {
161
+ name: '安哥拉兔毛',
162
+ family: 'natural',
163
+ breathability: 8,
164
+ durability: 4,
165
+ warmth: 10,
166
+ isNoble: true,
167
+ },
168
+ alpaca: {
169
+ name: '羊驼毛',
170
+ family: 'natural',
171
+ breathability: 9,
172
+ durability: 8,
173
+ warmth: 10,
174
+ isNoble: true,
175
+ },
176
+ polyester: {
177
+ name: '聚酯纤维 (涤纶)',
178
+ family: 'synthetic',
179
+ breathability: 2,
180
+ durability: 10,
181
+ warmth: 5,
182
+ isNoble: false,
183
+ },
184
+ viscose: {
185
+ name: '粘胶纤维 / 人造棉',
186
+ family: 'artificial',
187
+ breathability: 8,
188
+ durability: 4,
189
+ warmth: 3,
190
+ isNoble: false,
191
+ },
192
+ nylon: {
193
+ name: '尼龙 (锦纶)',
194
+ family: 'synthetic',
195
+ breathability: 3,
196
+ durability: 10,
197
+ warmth: 4,
198
+ isNoble: false,
199
+ },
200
+ acrylic: {
201
+ name: '腈纶 (人造羊毛)',
202
+ family: 'synthetic',
203
+ breathability: 4,
204
+ durability: 6,
205
+ warmth: 8,
206
+ isNoble: false,
207
+ },
208
+ },
209
+ verdicts: {
210
+ plasticy: {
211
+ label: '昂贵的塑料',
212
+ description: '这件衣服的大部分成分是石油。请做好出汗和快速起球的心理准备。',
213
+ },
214
+ hook: {
215
+ label: '营销噱头',
216
+ description: '那一点点百分比的高级纤维仅仅是为了写在标签上。你几乎感受不到它的任何好处。',
217
+ },
218
+ fragile: {
219
+ label: '柔软但娇弱',
220
+ description: '触感非常舒适,但洗涤时需格外小心:它极易变形和缩水。',
221
+ },
222
+ natural: {
223
+ label: '天然品质',
224
+ description: '透气且耐穿的衣物。非常适合敏感性肌肤及长期穿着。',
225
+ },
226
+ technical: {
227
+ label: '功能性 / 超合成衣物',
228
+ description: '除非是专门的运动服,否则你是在为纯塑料买单。',
229
+ },
230
+ luxury: {
231
+ label: '真材实料',
232
+ description: '这是一项对舒适与耐用的投资。请给予它应有的妥善护理。',
233
+ },
234
+ balanced: {
235
+ label: '平衡混纺',
236
+ description: '一种功能性的组合,通常旨在平衡生产成本与耐穿性。',
237
+ },
238
+ },
239
+ },
240
+ seo: [
241
+ { type: 'title', text: '洗标背后的真相:面料成分大师指南', level: 2 },
242
+ { type: 'paragraph', html: '您是否曾经纳闷,为什么那件名牌 T 恤会让您流这么多汗?或者为什么那件“羊毛”毛衣扎得让人无法忍受?答案不在于设计,而在于其纤维的化学成分。' },
243
+ { type: 'paragraph', html: '在<strong>快时尚</strong>(Fast Fashion)主导的世界里,面料的高品质往往在短暂的美学面前退居其次。然而,了解面料成分是进行智能、耐用且亲肤消费的唯一途径。我们的<strong>织物真相</strong>工具通过分析官方百分比,揭示您面对的是一件高品质衣物,还是一块经过加工的塑料。' },
244
+ { type: 'title', text: '我们的分析方法', level: 2 },
245
+ { type: 'paragraph', html: '我们采用基于欧洲和北美行业标准的加权算法,从三个核心维度进行评估:' },
246
+ { type: 'list', items: ['<strong>透气性:</strong> 纤维允许水蒸气和空气通过的能力。', '<strong>耐用度:</strong> 抗磨损、抗拉伸以及抗<strong>起球</strong>(pilling)的能力。', '<strong>热效率:</strong> 保温或提供机械凉爽感的能力。'] },
247
+ { type: 'tip', title: '重要提示', html: '法律要求在欧盟和美国销售的所有衣物必须按百分比由高到低列出其成分。如果一件衣服没有标签或标签模糊不清,请务必保持警惕:它很可能不符合最低的面料安全标准。' },
248
+ { type: 'title', text: '零售业中的常见“套路”', level: 2 },
249
+ { type: 'paragraph', html: '为了提高平庸衣物的感知价值,存在着非常老练的营销技巧。在这里,我们教您如何识别它们:' },
250
+ { type: 'card', title: '高级纤维诱饵', icon: 'mdi:alert', html: '您会看到大字写着“含羊绒”或“含真丝”的标签。查看成分表时,却发现含有 3% 的真丝和 97% 的聚酯纤维。这 3% 既不提供柔软度,也不提供光泽或保暖性;它唯一的用途就是让品牌能够提价 20%。' },
251
+ { type: 'card', title: '“环保粘胶”的神话', icon: 'mdi:leaf', html: '尽管粘胶纤维来源于纤维素(木材),但其目前的制造过程通常具有高度污染性,最终产出的纤维在变湿后强度会剧烈下降。除非是 <strong>莱赛尔(Lyocell)</strong> 或 <strong>天丝(Tencel)</strong>,否则其耐用性非常有限。' },
252
+ { type: 'title', text: '按分类深度分析', level: 2 },
253
+ { type: 'title', text: '1. 天然纤维(引以为傲的有机物)', level: 3 },
254
+ { type: 'paragraph', html: '这些是行业的金标准。长绒<strong>棉</strong>(如皮马棉或埃及棉)提供恒久的柔软。<strong>亚麻</strong>从科学角度而言是炎热天气的最佳选择,因为其分子结构可以排斥热量并吸收湿气。<strong>羊毛</strong>和<strong>工业大麻</strong>(Hemp)是天然抗菌剂,不容易保留异味,因此不需要频繁洗涤。' },
255
+ { type: 'title', text: '2. 半合成纤维(混合体)', level: 3 },
256
+ { type: 'paragraph', html: '这包括 <strong>粘胶纤维</strong>、<strong>人造丝</strong> 和 <strong>莫代尔</strong>。它们的手感像丝绸,但价格接近棉花。它们非常适合垂坠感强的衣物,但非常“吸水”:吸收大量水分且干燥缓慢,如果不注意护理,可能会滋生霉菌。<strong>莱赛尔(天丝)</strong> 是该组中的高端环保版本,具有闭环生产周期和更高的抗性。' },
257
+ { type: 'title', text: '3. 合成纤维(纺制塑料)', level: 3 },
258
+ { type: 'paragraph', html: '<strong>聚酯纤维</strong>(涤纶)是市场之王。它价格便宜,不皱,而且是永恒的(字面意思,需要 200 年才能分解)。问题在于它不透气。它在面料和您的皮肤之间创造了一个潮湿的微气候,是细菌繁殖的理想温床。<strong>腈纶</strong>是羊毛的廉价仿制品:虽然保暖,但会产生大量静电,且洗两次就会起满球。' },
259
+ { type: 'title', text: '面料持久建议', level: 2 },
260
+ { type: 'paragraph', html: '即使是世界上最好的衣服,也可能在一次不当洗涤中毁掉。以下是通用的黄金法则:' },
261
+ { type: 'tip', title: '冷水是您的好朋友', html: '90% 的衣物不需要超过 30°C 的水温。高温会降解弹性纤维并使天然纤维缩水。' },
262
+ { type: 'tip', title: '少即是多(洗涤剂)', html: '过多的洗涤剂会留下残留物,从而吸附污垢并使衣物变硬。' },
263
+ { type: 'tip', title: '烘干机:微妙的敌人', html: '您在烘干机滤网中看到的毛絮,实际上是由于摩擦和热量从您衣服上脱落下来的纤维碎片。' },
264
+ { type: 'tip', title: '反面洗涤', html: '保护颜色和绣花免受滚筒和其他衣物的磨擦。' },
265
+ { type: 'paragraph', html: '“买得少一点,选得好一点,穿得久一点。” —— 这个分析工具是您迈向理性、高品质衣橱的第一步。' },
266
+ ],
267
+ faqTitle: '常见问题',
268
+ faq: faqData,
269
+ bibliographyTitle: '参考文献',
270
+ bibliography: [
271
+ {
272
+ name: 'FTC - 纺织纤维产品指南',
273
+ url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
274
+ },
275
+ {
276
+ name: '欧盟委员会 - 纺织品法规',
277
+ url: 'https://ec.europa.eu/growth/tools-databases/nando/',
278
+ },
279
+ {
280
+ name: 'ISO 3758:2012 - 纺织品维护标签符号',
281
+ url: 'https://www.iso.org/standard/60465.html',
282
+ },
283
+ ],
284
+ howTo: howToData,
285
+ schemas: [faqSchema, howToSchema, appSchema],
286
+ };
@@ -7,10 +7,6 @@ import type { FabricTruthUI } from './ui';
7
7
 
8
8
  export type FabricTruthLocaleContent = ToolLocaleContent<FabricTruthUI>;
9
9
 
10
- import { content as es } from './i18n/es';
11
- import { content as en } from './i18n/en';
12
- import { content as fr } from './i18n/fr';
13
-
14
10
  export const fabricTruth: TextilesToolEntry<FabricTruthUI> = {
15
11
  id: 'fabric-truth',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const fabricTruth: TextilesToolEntry<FabricTruthUI> = {
18
14
  fg: 'mdi:microscope',
19
15
  },
20
16
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
17
+ es: () => import('./i18n/es').then((m) => m.content),
18
+ en: () => import('./i18n/en').then((m) => m.content),
19
+ fr: () => import('./i18n/fr').then((m) => m.content),
20
+ de: () => import('./i18n/de').then((m) => m.content),
21
+ id: () => import('./i18n/id').then((m) => m.content),
22
+ it: () => import('./i18n/it').then((m) => m.content),
23
+ ja: () => import('./i18n/ja').then((m) => m.content),
24
+ ko: () => import('./i18n/ko').then((m) => m.content),
25
+ nl: () => import('./i18n/nl').then((m) => m.content),
26
+ pl: () => import('./i18n/pl').then((m) => m.content),
27
+ pt: () => import('./i18n/pt').then((m) => m.content),
28
+ ru: () => import('./i18n/ru').then((m) => m.content),
29
+ sv: () => import('./i18n/sv').then((m) => m.content),
30
+ tr: () => import('./i18n/tr').then((m) => m.content),
31
+ zh: () => import('./i18n/zh').then((m) => m.content),
24
32
  },
25
33
  };
26
34
 
@@ -0,0 +1,225 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { FiberPrepUI } from '../ui';
4
+
5
+ const slug = 'faservorbereitung-pigmentierung';
6
+ const title = 'Faservorbereitung für die Pigmentierung';
7
+ const description =
8
+ 'WOF-Rechner, Beizprotokolle und thermische Rampen zur Vorbereitung von Wolle, Seide und Baumwolle vor dem natürlichen Färben.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Was ist WOF (Weight of Fiber)?',
13
+ answer:
14
+ 'WOF ist das Standardsystem zur Berechnung der Menge an benötigtem Pigment oder Beizmittel. Es basiert auf dem Trockengewicht der Faser. Zum Beispiel bedeutet 100% WOF Zwiebelschalen für 100g Wolle, dass Sie 100g Zwiebelschalen benötigen.',
15
+ },
16
+ {
17
+ question: 'Warum ist das Beizen notwendig?',
18
+ answer:
19
+ 'Das Beizmittel (wie Alaun) fungiert als chemische Brücke zwischen der Textilfaser und dem natürlichen Pigment. Ohne dieses würden die meisten Farbstoffe nicht fixiert und beim ersten Waschen ausgewaschen werden (geringe Licht- und Reibechtheit).',
20
+ },
21
+ {
22
+ question: 'Was ist der Unterschied zwischen der Vorbereitung von tierischen und pflanzlichen Fasern?',
23
+ answer:
24
+ 'Tierische Fasern (Proteinfasern wie Wolle) nehmen Alaun allein sehr gut an. Pflanzliche Fasern (Zellulosefasern wie Baumwolle oder Leinen) erfordern einen vorherigen Schritt mit Tanninen, um die Faser "auszutricksen", damit sie das metallische Beizmittel annimmt.',
25
+ },
26
+ {
27
+ question: 'Was ist die thermische Rampe beim Färben?',
28
+ answer:
29
+ 'Es handelt sich um den schrittweisen Temperaturanstieg (ca. 1-2°C pro Minute) des Färbebads. Dies ist entscheidend, um einen Thermoschock zu vermeiden, insbesondere bei Wolle, die verfilzen kann, wenn sich die Temperatur zu abrupt ändert.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Reinigung und Abkochen',
36
+ text: 'Waschen Sie die Faser mit einem neutralen Reinigungsmittel, um Öle, Wachse oder industrielle Stärken zu entfernen, die das gleichmäßige Eindringen der Beize verhindern.',
37
+ },
38
+ {
39
+ name: 'Wiegen der trockenen Faser',
40
+ text: 'Ermitteln Sie das genaue Gewicht des trockenen Materials. Dieser Wert ist die Basis für alle WOF-Berechnungen (Weight of Fiber).',
41
+ },
42
+ {
43
+ name: 'Berechnung und Beizbad',
44
+ text: 'Lösen Sie das Beizmittel (z.B. Kaliumalaun mit 15% WOF) in heißem Wasser auf und tauchen Sie die Faser ein, wobei die Temperatur gemäß Protokoll konstant gehalten wird.',
45
+ },
46
+ {
47
+ name: 'Reifung und Spülen',
48
+ text: 'Lassen Sie die gebeizte Faser ruhen (vorzugsweise 24 Stunden), damit sich das Metall tief fixieren kann, bevor Sie zum eigentlichen Färbebad übergehen.',
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: 'de',
83
+ };
84
+
85
+ export const content: ToolLocaleContent<FiberPrepUI> = {
86
+ slug,
87
+ title,
88
+ description,
89
+ faqTitle: 'Häufig gestellte Fragen',
90
+ faq: faqData,
91
+ bibliographyTitle: 'Bibliographie',
92
+ bibliography: [
93
+ {
94
+ name: 'La Escuela Artesana - Taller de Tintes Naturales sobre Lana',
95
+ url: 'https://laescuelaartesana.com/taller-de-tintes-naturales-sobre-lana/',
96
+ },
97
+ {
98
+ name: 'Tatiana Sarasa (@tatianasarasa) - Artista Textil y Tintes Naturales',
99
+ url: 'https://www.instagram.com/tatianasarasa/',
100
+ },
101
+ ],
102
+ howTo: howToData,
103
+ schemas: [faqSchema, howToSchema, appSchema],
104
+ seo: [
105
+ {
106
+ type: 'title',
107
+ text: 'Die Wissenschaft hinter dem Beizen',
108
+ level: 2,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Die Vorbereitung einer Faser für das Färben ist mehr als nur Waschen. Es ist ein chemischer Ingenieursprozess auf molekularer Ebene, der als Beizen bezeichnet wird. Das Wort stammt vom lateinischen <i>mordere</i> (beißen), und seine Funktion besteht darin, als chemische Brücke zwischen der Faser und dem Pigment zu fungieren. Ohne diese Brücke würden die meisten natürlichen Farbstoffe einfach beim ersten Spülen ausgewaschen werden.',
113
+ },
114
+ {
115
+ type: 'card',
116
+ title: 'Schlüsselkonzept',
117
+ icon: 'mdi:molecule',
118
+ html: 'Die Beize verfügt über freie Valenzen, die sich gleichzeitig an die Polymere der Faser und an den Farbstoff binden.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Differenzierung der Fasern',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'card',
127
+ title: 'Proteinfasern: Wolle und Seide',
128
+ icon: 'mdi:sheep',
129
+ html: 'Diese Fasern bestehen aus Aminosäureketten mit einer sehr hohen natürlichen Affinität zu Metallen. Die Wärme öffnet die Schuppenschicht, sodass Alaunsalze tief eindringen können. Die Verwendung von <strong>Weinstein</strong> ist entscheidend, um den sauren pH-Wert aufrechterhalten, der die Weichheit bewahrt.',
130
+ },
131
+ {
132
+ type: 'card',
133
+ title: 'Zellulosefasern: Baumwolle und Leinen',
134
+ icon: 'mdi:leaf',
135
+ html: 'Zellulose hat keine leicht verfügbaren Bindungsstellen. Daher verwenden wir das <strong>Zweistufenprotokoll</strong>: Zuerst binden sich Tannine an die Zellulose, dann bindet sich das Alaun an diese Tannine. Ohne diese Vorbehandlung wird die Farbe blass und wenig beständig ausfallen.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Die Kontrolle des Bades: WOF, Temperatur und pH-Wert',
140
+ level: 2,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Um professionelle und wiederholbare Ergebnisse zu erzielen, ist das Konzept des <strong>WOF (Weight of Fabric)</strong> das Gesetz. Alles wird als Prozentsatz des Trockengewichts der Faser gemessen. Ein Übermaß an Beizmittel kann die Faser sättigen und sie rau hinterlassen oder metallische Ablagerungen bilden, die die endgültige Farbe verändern.',
145
+ },
146
+ {
147
+ type: 'tip',
148
+ title: 'Die thermische Rampe',
149
+ html: 'Wärme wirkt als Katalysator und beschleunigt die chemische Reaktion. Ein abrupter Temperaturwechsel bei Wolle kann jedoch dazu führen, dass sich die Schuppen dauerhaft ineinander verhaken, was zu einem verfilzten und geschrumpften Gewebe führt.',
150
+ },
151
+ {
152
+ type: 'tip',
153
+ title: 'Der pH Faktor',
154
+ html: 'Viele natürliche Farbstoffe sind lebendige pH-Indikatoren. Der pH-Wert beeinflusst die Löslichkeit der Salze und den Erhalt der Faser. Seide kann ihren Glanz verlieren, wenn das Bad zu alkalisch ist. Die Einstellung des pH-Werts mit Zitronensäure oder Calciumcarbonat ist von grundlegender Bedeutung.',
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Substanzen und Sicherheit',
159
+ level: 2,
160
+ },
161
+ {
162
+ type: 'card',
163
+ title: 'Kaliumalaun',
164
+ icon: 'mdi:bottle-tonic-skull',
165
+ html: 'Universalbeize, farblos und hochwirksam. Die Referenz für Proteinfasern.',
166
+ },
167
+ {
168
+ type: 'card',
169
+ title: 'Weinstein (Cremor Tartari)',
170
+ icon: 'mdi:spoon-sugar',
171
+ html: 'Hilfsmittel, das die Fixierung und Weichheit in tierischen Fasern verbessert. Hält den pH-Wert im sauren Bereich.',
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: 'Sicherheitsprotokoll',
176
+ html: 'Verwenden Sie Töpfe ausschließlich zum Färben, niemals für Lebensmittel.<br>Verwenden Sie Handschuhe und eine Maske beim Umgang mit Beizmitteln in Pulverform.<br>Sorgen Sie für ständige Belüftung, um die Ansammlung von Dämpfen zu vermeiden.',
177
+ },
178
+ ],
179
+ ui: {
180
+ profileTitle: 'Profilauswahl',
181
+ profileDesc: 'Das chemische Protokoll unterteilt sich nach dem molekularen Ursprung der Faser',
182
+ proteinTitle: 'Proteinfasern',
183
+ proteinOrigin: 'Tierischer Ursprung',
184
+ proteinDesc: 'Wolle, Seide, Alpaka, Mohair oder Kaschmir. Erfordern kontrollierte Temperaturen und sauren pH-Wert.',
185
+ cellulosicTitle: 'Zellulosefasern',
186
+ cellulosicOrigin: 'Pflanzlicher Ursprung',
187
+ cellulosicDesc: 'Baumwolle, Leinen, Hanf oder Jute. Erfordern Vorbeizen mit Tanninen zur Fixierung des Pigments.',
188
+ wofTitle: 'WOF-Rechner',
189
+ weightLabel: 'Trockengewicht des Kleidungsstücks (g)',
190
+ weightUnit: 'g',
191
+ wofEmptyMsg: 'Wählen Sie ein Profil aus, um Berechnungen zu aktivieren',
192
+ alumLabel: 'Alaun',
193
+ cremLabel: 'Weinstein',
194
+ ironLabel: 'Eisen (Vorsicht)',
195
+ rampTitle: 'Thermische Rampe',
196
+ rampEmptyTitle: 'Warten auf Auswahl',
197
+ rampEmptyDesc: 'Wählen Sie eine Faser aus, um den thermischen Zyklus zu sehen',
198
+ phTitle: 'pH-Stabilisator',
199
+ phDesc: 'Kritischer Faktor für die Farbsättigung',
200
+ phVolumeLabel: 'Badvolumen (L)',
201
+ phSliderLabel: 'Aktueller pH-Wert',
202
+ phAcidLabel: 'Sauer (1)',
203
+ phAlkalineLabel: 'Alkalisch (14)',
204
+ phEmptyMsg: 'Wählen Sie ein Profil aus, um den Stabilisator zu aktivieren',
205
+ phStrings: {
206
+ optimal: 'Optimaler pH-Wert',
207
+ raisePrefix: 'Calciumcarbonat oder Soda Ash hinzufügen. Ca.',
208
+ raiseSuffix: 'g zum Erhöhen auf',
209
+ lowerPrefix: 'Zitronensäure oder Essig hinzufügen. Ca.',
210
+ lowerSuffix: 'ml zum Senken auf',
211
+ },
212
+ proteinFibers: [
213
+ { id: 'wool', name: 'Wolle / Merino', icon: 'mdi:sheep' },
214
+ { id: 'silk', name: 'Seide', icon: 'mdi:ticket-percent' },
215
+ { id: 'cashmere', name: 'Kaschmir', icon: 'mdi:crown' },
216
+ { id: 'mohair', name: 'Mohair', icon: 'mdi:shimmer' },
217
+ { id: 'angora', name: 'Angora', icon: 'mdi:rabbit' },
218
+ { id: 'alpaca', name: 'Alpaka', icon: 'mdi:image-filter-hdr' },
219
+ ],
220
+ cellulosicFibers: [
221
+ { id: 'cotton', name: 'Baumwolle', icon: 'mdi:tshirt-crew' },
222
+ { id: 'linen', name: 'Leinen', icon: 'mdi:leaf' },
223
+ ],
224
+ },
225
+ };