@jjlmoya/utils-textiles 1.20.0 → 1.22.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 (209) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +76 -76
  3. package/src/category/i18n/en.ts +76 -76
  4. package/src/category/i18n/es.ts +76 -76
  5. package/src/category/i18n/fr.ts +76 -76
  6. package/src/category/i18n/id.ts +76 -76
  7. package/src/category/i18n/it.ts +76 -76
  8. package/src/category/i18n/ja.ts +76 -76
  9. package/src/category/i18n/ko.ts +76 -76
  10. package/src/category/i18n/nl.ts +76 -76
  11. package/src/category/i18n/pl.ts +76 -76
  12. package/src/category/i18n/pt.ts +76 -76
  13. package/src/category/i18n/ru.ts +76 -76
  14. package/src/category/i18n/sv.ts +76 -76
  15. package/src/category/i18n/zh.ts +76 -76
  16. package/src/category/index.ts +2 -0
  17. package/src/category/seo.astro +1 -1
  18. package/src/components/PreviewNavSidebar.astro +1 -1
  19. package/src/components/PreviewToolbar.astro +1 -1
  20. package/src/data.ts +1 -1
  21. package/src/entries.ts +4 -1
  22. package/src/env.d.ts +1 -1
  23. package/src/index.ts +1 -1
  24. package/src/layouts/PreviewLayout.astro +113 -113
  25. package/src/pages/index.astro +1 -1
  26. package/src/tests/faq_count.test.ts +19 -19
  27. package/src/tests/i18n_coverage.test.ts +4 -2
  28. package/src/tests/locale_spelling.test.ts +44 -0
  29. package/src/tests/mocks/astro_mock.js +1 -1
  30. package/src/tests/no_en_dash.test.ts +70 -70
  31. package/src/tests/no_h1_in_components.test.ts +1 -1
  32. package/src/tests/seo_length.test.ts +22 -22
  33. package/src/tests/seo_translation_completeness.test.ts +69 -0
  34. package/src/tests/spanish_leakage.test.ts +175 -153
  35. package/src/tests/tool_validation.test.ts +17 -17
  36. package/src/tool/burnTest/i18n/es.ts +211 -211
  37. package/src/tool/burnTest/i18n/fr.ts +211 -211
  38. package/src/tool/burnTest/i18n/ja.ts +211 -211
  39. package/src/tool/burnTest/i18n/ko.ts +211 -211
  40. package/src/tool/burnTest/i18n/pl.ts +211 -211
  41. package/src/tool/burnTest/i18n/ru.ts +211 -211
  42. package/src/tool/burnTest/i18n/sv.ts +211 -211
  43. package/src/tool/burnTest/i18n/zh.ts +211 -211
  44. package/src/tool/burnTest/seo.astro +15 -15
  45. package/src/tool/clothingSizeConverter/i18n/de.ts +348 -348
  46. package/src/tool/clothingSizeConverter/i18n/en.ts +348 -348
  47. package/src/tool/clothingSizeConverter/i18n/fr.ts +348 -348
  48. package/src/tool/clothingSizeConverter/i18n/ja.ts +348 -348
  49. package/src/tool/clothingSizeConverter/i18n/ko.ts +348 -348
  50. package/src/tool/clothingSizeConverter/i18n/nl.ts +348 -348
  51. package/src/tool/clothingSizeConverter/i18n/pl.ts +348 -348
  52. package/src/tool/clothingSizeConverter/i18n/ru.ts +348 -348
  53. package/src/tool/clothingSizeConverter/i18n/sv.ts +348 -348
  54. package/src/tool/clothingSizeConverter/i18n/tr.ts +348 -348
  55. package/src/tool/clothingSizeConverter/i18n/zh.ts +348 -348
  56. package/src/tool/clothingSizeConverter/seo.astro +15 -15
  57. package/src/tool/embroideryStitchPricingEstimator/bibliography.astro +6 -0
  58. package/src/tool/embroideryStitchPricingEstimator/bibliography.ts +12 -0
  59. package/src/tool/embroideryStitchPricingEstimator/component.astro +111 -0
  60. package/src/tool/embroideryStitchPricingEstimator/controller.ts +111 -0
  61. package/src/tool/embroideryStitchPricingEstimator/dom-views.ts +94 -0
  62. package/src/tool/embroideryStitchPricingEstimator/embroidery-stitch-count-pricing-estimator.css +438 -0
  63. package/src/tool/embroideryStitchPricingEstimator/entry.ts +29 -0
  64. package/src/tool/embroideryStitchPricingEstimator/evaluator.ts +22 -0
  65. package/src/tool/embroideryStitchPricingEstimator/i18n/de.ts +38 -0
  66. package/src/tool/embroideryStitchPricingEstimator/i18n/en.ts +194 -0
  67. package/src/tool/embroideryStitchPricingEstimator/i18n/es.ts +38 -0
  68. package/src/tool/embroideryStitchPricingEstimator/i18n/fr.ts +38 -0
  69. package/src/tool/embroideryStitchPricingEstimator/i18n/id.ts +38 -0
  70. package/src/tool/embroideryStitchPricingEstimator/i18n/it.ts +38 -0
  71. package/src/tool/embroideryStitchPricingEstimator/i18n/ja.ts +38 -0
  72. package/src/tool/embroideryStitchPricingEstimator/i18n/ko.ts +38 -0
  73. package/src/tool/embroideryStitchPricingEstimator/i18n/nl.ts +38 -0
  74. package/src/tool/embroideryStitchPricingEstimator/i18n/pl.ts +38 -0
  75. package/src/tool/embroideryStitchPricingEstimator/i18n/pt.ts +38 -0
  76. package/src/tool/embroideryStitchPricingEstimator/i18n/ru.ts +38 -0
  77. package/src/tool/embroideryStitchPricingEstimator/i18n/sv.ts +38 -0
  78. package/src/tool/embroideryStitchPricingEstimator/i18n/tr.ts +38 -0
  79. package/src/tool/embroideryStitchPricingEstimator/i18n/zh.ts +38 -0
  80. package/src/tool/embroideryStitchPricingEstimator/index.ts +11 -0
  81. package/src/tool/embroideryStitchPricingEstimator/logic.test.ts +40 -0
  82. package/src/tool/embroideryStitchPricingEstimator/logic.ts +86 -0
  83. package/src/tool/embroideryStitchPricingEstimator/seo.astro +15 -0
  84. package/src/tool/embroideryStitchPricingEstimator/storage.ts +20 -0
  85. package/src/tool/embroideryStitchPricingEstimator/ui.ts +53 -0
  86. package/src/tool/fabricProjectCalculator/i18n/de.ts +236 -236
  87. package/src/tool/fabricProjectCalculator/i18n/ja.ts +236 -236
  88. package/src/tool/fabricProjectCalculator/i18n/ko.ts +236 -236
  89. package/src/tool/fabricProjectCalculator/i18n/nl.ts +236 -236
  90. package/src/tool/fabricProjectCalculator/i18n/pl.ts +236 -236
  91. package/src/tool/fabricProjectCalculator/i18n/ru.ts +236 -236
  92. package/src/tool/fabricProjectCalculator/i18n/sv.ts +236 -236
  93. package/src/tool/fabricProjectCalculator/i18n/tr.ts +236 -236
  94. package/src/tool/fabricProjectCalculator/i18n/zh.ts +236 -236
  95. package/src/tool/fabricProjectCalculator/seo.astro +15 -15
  96. package/src/tool/fabricTruth/i18n/de.ts +268 -268
  97. package/src/tool/fabricTruth/i18n/en.ts +268 -268
  98. package/src/tool/fabricTruth/i18n/es.ts +302 -302
  99. package/src/tool/fabricTruth/i18n/fr.ts +268 -268
  100. package/src/tool/fabricTruth/i18n/id.ts +268 -268
  101. package/src/tool/fabricTruth/i18n/it.ts +268 -268
  102. package/src/tool/fabricTruth/i18n/ja.ts +268 -268
  103. package/src/tool/fabricTruth/i18n/ko.ts +268 -268
  104. package/src/tool/fabricTruth/i18n/nl.ts +268 -268
  105. package/src/tool/fabricTruth/i18n/pl.ts +268 -268
  106. package/src/tool/fabricTruth/i18n/pt.ts +268 -268
  107. package/src/tool/fabricTruth/i18n/ru.ts +268 -268
  108. package/src/tool/fabricTruth/i18n/sv.ts +268 -268
  109. package/src/tool/fabricTruth/i18n/tr.ts +268 -268
  110. package/src/tool/fabricTruth/i18n/zh.ts +272 -272
  111. package/src/tool/fabricTruth/seo.astro +15 -15
  112. package/src/tool/fiberPrep/i18n/de.ts +215 -215
  113. package/src/tool/fiberPrep/i18n/fr.ts +215 -215
  114. package/src/tool/fiberPrep/i18n/ja.ts +215 -215
  115. package/src/tool/fiberPrep/i18n/ko.ts +215 -215
  116. package/src/tool/fiberPrep/i18n/nl.ts +215 -215
  117. package/src/tool/fiberPrep/i18n/pl.ts +215 -215
  118. package/src/tool/fiberPrep/i18n/ru.ts +215 -215
  119. package/src/tool/fiberPrep/i18n/sv.ts +215 -215
  120. package/src/tool/fiberPrep/i18n/tr.ts +215 -215
  121. package/src/tool/fiberPrep/i18n/zh.ts +215 -215
  122. package/src/tool/fiberPrep/seo.astro +15 -15
  123. package/src/tool/knittingGauge/i18n/de.ts +224 -224
  124. package/src/tool/knittingGauge/i18n/ja.ts +224 -224
  125. package/src/tool/knittingGauge/i18n/ko.ts +224 -224
  126. package/src/tool/knittingGauge/i18n/pl.ts +224 -224
  127. package/src/tool/knittingGauge/i18n/ru.ts +224 -224
  128. package/src/tool/knittingGauge/i18n/tr.ts +224 -224
  129. package/src/tool/knittingGauge/i18n/zh.ts +224 -224
  130. package/src/tool/knittingGauge/seo.astro +15 -15
  131. package/src/tool/laundryGuide/i18n/de.ts +271 -271
  132. package/src/tool/laundryGuide/i18n/en.ts +271 -271
  133. package/src/tool/laundryGuide/i18n/es.ts +271 -271
  134. package/src/tool/laundryGuide/i18n/fr.ts +255 -255
  135. package/src/tool/laundryGuide/i18n/id.ts +271 -271
  136. package/src/tool/laundryGuide/i18n/it.ts +271 -271
  137. package/src/tool/laundryGuide/i18n/ja.ts +271 -271
  138. package/src/tool/laundryGuide/i18n/ko.ts +271 -271
  139. package/src/tool/laundryGuide/i18n/nl.ts +271 -271
  140. package/src/tool/laundryGuide/i18n/pl.ts +271 -271
  141. package/src/tool/laundryGuide/i18n/pt.ts +271 -271
  142. package/src/tool/laundryGuide/i18n/ru.ts +271 -271
  143. package/src/tool/laundryGuide/i18n/sv.ts +271 -271
  144. package/src/tool/laundryGuide/i18n/tr.ts +271 -271
  145. package/src/tool/laundryGuide/i18n/zh.ts +271 -271
  146. package/src/tool/laundryGuide/seo.astro +15 -15
  147. package/src/tool/needleConverter/i18n/de.ts +202 -202
  148. package/src/tool/needleConverter/i18n/es.ts +207 -207
  149. package/src/tool/needleConverter/i18n/fr.ts +207 -207
  150. package/src/tool/needleConverter/i18n/ja.ts +202 -202
  151. package/src/tool/needleConverter/i18n/ko.ts +202 -202
  152. package/src/tool/needleConverter/i18n/nl.ts +202 -202
  153. package/src/tool/needleConverter/i18n/pl.ts +202 -202
  154. package/src/tool/needleConverter/i18n/ru.ts +202 -202
  155. package/src/tool/needleConverter/i18n/sv.ts +202 -202
  156. package/src/tool/needleConverter/i18n/tr.ts +202 -202
  157. package/src/tool/needleConverter/i18n/zh.ts +202 -202
  158. package/src/tool/needleConverter/seo.astro +15 -15
  159. package/src/tool/sewingPatternScaler/component.astro +236 -236
  160. package/src/tool/sewingPatternScaler/i18n/fr.ts +170 -170
  161. package/src/tool/sewingPatternScaler/i18n/ja.ts +114 -114
  162. package/src/tool/sewingPatternScaler/i18n/ko.ts +114 -114
  163. package/src/tool/sewingPatternScaler/i18n/nl.ts +114 -114
  164. package/src/tool/sewingPatternScaler/i18n/pl.ts +114 -114
  165. package/src/tool/sewingPatternScaler/i18n/ru.ts +114 -114
  166. package/src/tool/sewingPatternScaler/i18n/sv.ts +114 -114
  167. package/src/tool/sewingPatternScaler/i18n/tr.ts +114 -114
  168. package/src/tool/sewingPatternScaler/i18n/zh.ts +114 -114
  169. package/src/tool/sewingPatternScaler/seo.astro +15 -15
  170. package/src/tool/shoeSizeConverter/i18n/fr.ts +183 -183
  171. package/src/tool/shoeSizeConverter/i18n/ja.ts +179 -179
  172. package/src/tool/shoeSizeConverter/i18n/ko.ts +179 -179
  173. package/src/tool/shoeSizeConverter/i18n/nl.ts +179 -179
  174. package/src/tool/shoeSizeConverter/i18n/pl.ts +179 -179
  175. package/src/tool/shoeSizeConverter/i18n/ru.ts +179 -179
  176. package/src/tool/shoeSizeConverter/i18n/sv.ts +179 -179
  177. package/src/tool/shoeSizeConverter/i18n/tr.ts +179 -179
  178. package/src/tool/shoeSizeConverter/i18n/zh.ts +179 -179
  179. package/src/tool/shoeSizeConverter/seo.astro +15 -15
  180. package/src/tool/stainChemistry/bibliography.ts +16 -16
  181. package/src/tool/stainChemistry/i18n/de.ts +286 -286
  182. package/src/tool/stainChemistry/i18n/en.ts +289 -289
  183. package/src/tool/stainChemistry/i18n/es.ts +286 -286
  184. package/src/tool/stainChemistry/i18n/fr.ts +296 -296
  185. package/src/tool/stainChemistry/i18n/id.ts +286 -286
  186. package/src/tool/stainChemistry/i18n/it.ts +286 -286
  187. package/src/tool/stainChemistry/i18n/ja.ts +286 -286
  188. package/src/tool/stainChemistry/i18n/ko.ts +283 -283
  189. package/src/tool/stainChemistry/i18n/nl.ts +286 -286
  190. package/src/tool/stainChemistry/i18n/pl.ts +286 -286
  191. package/src/tool/stainChemistry/i18n/pt.ts +286 -286
  192. package/src/tool/stainChemistry/i18n/ru.ts +286 -286
  193. package/src/tool/stainChemistry/i18n/sv.ts +286 -286
  194. package/src/tool/stainChemistry/i18n/tr.ts +286 -286
  195. package/src/tool/stainChemistry/i18n/zh.ts +281 -281
  196. package/src/tool/stainChemistry/seo.astro +15 -15
  197. package/src/tool/yarnCalculator/i18n/de.ts +296 -296
  198. package/src/tool/yarnCalculator/i18n/es.ts +296 -296
  199. package/src/tool/yarnCalculator/i18n/fr.ts +296 -296
  200. package/src/tool/yarnCalculator/i18n/ja.ts +296 -296
  201. package/src/tool/yarnCalculator/i18n/ko.ts +296 -296
  202. package/src/tool/yarnCalculator/i18n/nl.ts +296 -296
  203. package/src/tool/yarnCalculator/i18n/pl.ts +296 -296
  204. package/src/tool/yarnCalculator/i18n/ru.ts +296 -296
  205. package/src/tool/yarnCalculator/i18n/sv.ts +296 -296
  206. package/src/tool/yarnCalculator/i18n/tr.ts +296 -296
  207. package/src/tool/yarnCalculator/i18n/zh.ts +295 -295
  208. package/src/tool/yarnCalculator/seo.astro +15 -15
  209. package/src/tools.ts +2 -2
@@ -1,271 +1,271 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import { bibliography } from '../bibliography';
4
-
5
- const slug = 'laundry-guide';
6
- const title = '纺织品护理指南:如何洗涤每种纤维类型';
7
- const description = '关于洗涤和护理棉、羊毛、丝绸、亚麻及合成纤维的科学指南。通过精确的说明防止缩水、褪色和损坏。';
8
-
9
- const faqData = [
10
- {
11
- question: '如何防止衣服褪色?',
12
- answer: '使用冷水(最高 30°C)洗涤,将衣服翻到反面洗涤,使用深色衣物专用洗涤剂,并在晾晒时避免阳光直射。',
13
- },
14
- {
15
- question: '羊毛可以用洗衣机洗吗?',
16
- answer: '可以,但只能使用羊毛模式(冷水、柔和搅动)。使用羊毛专用洗涤剂,切勿使用普通洗涤模式。',
17
- },
18
- {
19
- question: '为什么我的丝绸衣服会有水渍?',
20
- answer: '丝绸对水中的矿物质有反应。在最后一次漂洗时使用蒸留水,或者用纯丝绸布料轻轻擦拭污渍。',
21
- },
22
- ];
23
-
24
- const howToData = [
25
- { name: '检查标签', text: '洗涤前务必阅读衣服标签上的护理说明。' },
26
- { name: '按纤维类型分类', text: '尽可能将天然纤维与合成纤维分开洗涤。' },
27
- { name: '选择水温', text: '娇贵面料使用冷水,只有坚固耐磨的材质才使用热水。' },
28
- ];
29
-
30
- const faqSchema: WithContext<FAQPage> = {
31
- '@context': 'https://schema.org',
32
- '@type': 'FAQPage',
33
- mainEntity: faqData.map((item) => ({
34
- '@type': 'Question',
35
- name: item.question,
36
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
37
- })),
38
- };
39
-
40
- const howToSchema: WithContext<HowTo> = {
41
- '@context': 'https://schema.org',
42
- '@type': 'HowTo',
43
- name: title,
44
- description: description,
45
- step: howToData.map((step) => ({
46
- '@type': 'HowToStep',
47
- name: step.name,
48
- text: step.text,
49
- })),
50
- };
51
-
52
- const appSchema: WithContext<SoftwareApplication> = {
53
- '@context': 'https://schema.org',
54
- '@type': 'SoftwareApplication',
55
- name: title,
56
- description: description,
57
- applicationCategory: 'UtilityApplication',
58
- operatingSystem: 'All',
59
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
60
- inLanguage: 'zh',
61
- };
62
-
63
- export const content: ToolLocaleContent = {
64
- slug,
65
- title,
66
- description,
67
- ui: {
68
- selectMaterialTitle: '选择材质',
69
- selectMaterialPrompt: '选择一种面料查看其护理指南',
70
- careInstructions: '高级维护说明',
71
- maxTemp: '最高温度',
72
- ironing: '熨烫',
73
- drying: '干燥',
74
- avoidLabel: '严禁事项',
75
- sosLabel: '保养建议',
76
- textileData: {
77
- cotton: {
78
- name: "棉",
79
- description: "天然植物纤维,柔软透气。基础款之王。",
80
- family: "natural",
81
- origin: "棉花植株的蒴果",
82
- breathability: 9,
83
- durability: 7,
84
- warmth: 4,
85
- washing: "冷水或温水(高温会缩水)。允许强力脱水。",
86
- drying: "烘干机中温烘干或自然晾干。",
87
- ironing: "趁湿时用蒸汽高温熨烫。",
88
- donts: ["长时间保持潮湿(会发霉)", "过度使用漂白剂(会削弱纤维)"],
89
- sos: "缩水了?泡在加了护发素的温水中,然后轻轻拉伸。",
90
- icon: "mdi:tshirt-crew",
91
- color: "#60A5FA",
92
- maxTemp: "40-60°C",
93
- isNoble: false,
94
- },
95
- linen: {
96
- name: "亚麻",
97
- description: "非常坚韧的植物纤维,凉爽且具有特征性的褶皱。",
98
- family: "natural",
99
- origin: "亚麻植株的茎",
100
- breathability: 10,
101
- durability: 9,
102
- warmth: 2,
103
- washing: "轻柔模式,不要装得太满(需要足够的水以免纤维折断)。",
104
- drying: "自然晾干。严禁烘干(会破坏纤维)。",
105
- ironing: "最高温熨烫,务必在衣服还很湿的时候进行。",
106
- donts: ["强力脱水", "总是在同一个位置折叠(会导致纤维折断)"],
107
- sos: "熨烫导致发亮?用蘸有白醋的布擦拭。",
108
- icon: "mdi:leaf",
109
- color: "#A7F3D0",
110
- maxTemp: "60°C",
111
- isNoble: true,
112
- },
113
- wool: {
114
- name: "羊毛 / 美利奴",
115
- description: "蛋白质类动物纤维,极佳的隔热性和弹性。",
116
- family: "natural",
117
- origin: "绵羊毛",
118
- breathability: 8,
119
- durability: 6,
120
- warmth: 10,
121
- washing: "手洗或羊毛模式。使用中性皂。严禁用热水(会毡化)。",
122
- drying: "平铺在毛巾上干燥。切勿悬挂(会变形)。",
123
- ironing: "垂直蒸汽或在上面垫布中温熨烫。",
124
- donts: ["热水", "揉搓或拧干", "漂白剂(会溶解羊毛)"],
125
- sos: "毡化了?几乎无法恢复,但用柔顺剂浸泡可能稍微缓解。",
126
- icon: "mdi:sheep",
127
- color: "#FCD34D",
128
- maxTemp: "30°C",
129
- isNoble: true,
130
- },
131
- silk: {
132
- name: "丝绸",
133
- description: "连续长丝动物纤维。具有天然光泽和干爽手感。",
134
- family: "natural",
135
- origin: "蚕茧",
136
- breathability: 7,
137
- durability: 5,
138
- warmth: 6,
139
- washing: "用中性洗发水冷水手洗。不可拧干。",
140
- drying: "用毛巾卷起吸干水分。在阴凉处晾干。",
141
- ironing: "低温熨烫,翻到反面且不要直接喷蒸汽。",
142
- donts: ["阳光直射(会灼伤纤维)", "香水/止汗剂(会留渍)", "水滴(会形成水渍圈)"],
143
- sos: "有水渍?用丝绸织物互相对擦试试。",
144
- icon: "mdi:ticket-percent",
145
- color: "#F472B6",
146
- maxTemp: "20°C",
147
- isNoble: true,
148
- },
149
- cashmere: {
150
- name: "羊绒",
151
- description: "来自山羊的奢侈纤维。极其柔软温暖。",
152
- family: "natural",
153
- origin: "克什米尔山羊的细软底毛",
154
- breathability: 9,
155
- durability: 5,
156
- warmth: 10,
157
- washing: "严格要求用婴儿洗发水手洗。冷水。切勿揉搓。",
158
- drying: "平铺在毛巾上并整理形状。严禁悬挂。",
159
- ironing: "不接触衣物的垂直蒸汽,或垫布温和熨烫。",
160
- donts: ["洗衣机(包括羊毛程序)", "柔顺剂", "持续摩擦(容易起球)"],
161
- sos: "起球了?使用专用毛球梳或用手拆除。",
162
- icon: "mdi:crown",
163
- color: "#F59E0B",
164
- maxTemp: "20°C",
165
- isNoble: true,
166
- },
167
- polyester: {
168
- name: "聚酯纤维(涤纶)",
169
- description: "石油合成纤维。耐磨,不皱,但不透气。",
170
- family: "synthetic",
171
- origin: "石油衍生物聚合物",
172
- breathability: 2,
173
- durability: 10,
174
- warmth: 5,
175
- washing: "温水/冷水。基本耐受各种方式,但容易吸附异味和油脂。",
176
- drying: "烘干机低温或自然干燥。干燥速度非常快。",
177
- ironing: "低温/中温熨烫。注意,会熔化。",
178
- donts: ["过热", "柔顺剂(会形成蜡质层,吸附更多异味)"],
179
- sos: "顽固异味?洗涤前在加了醋的水中浸泡。",
180
- icon: "mdi:oil",
181
- color: "#94A3B8",
182
- maxTemp: "40°C",
183
- isNoble: false,
184
- },
185
- viscose: {
186
- name: "粘胶纤维 / 人造棉",
187
- description: "由再生纤维素制成的半合成纤维。具有丝绸手感,吸水性强。",
188
- family: "artificial",
189
- origin: "化学处理的木浆",
190
- breathability: 8,
191
- durability: 4,
192
- warmth: 3,
193
- washing: "冷水轻柔模式。湿透时纤维变得非常脆弱。",
194
- drying: "平铺或用带垫衣架悬挂。不可烘干。",
195
- ironing: "中温,翻到反面。如果可能,避免直接蒸汽。",
196
- donts: ["湿润时拧干(会撕裂)", "长时间浸泡"],
197
- sos: "缩水变硬了?使用大量蒸汽熨烫以舒缓纤维。",
198
- icon: "mdi:forest",
199
- color: "#C084FC",
200
- maxTemp: "30°C",
201
- isNoble: false,
202
- },
203
- nylon: {
204
- name: "尼龙(锦纶)",
205
- description: "耐拉伸和耐磨性极强的合成纤维。",
206
- family: "synthetic",
207
- origin: "石油衍生物(聚酰胺)",
208
- breathability: 3,
209
- durability: 10,
210
- warmth: 4,
211
- washing: "普通循环。注意避免混洗(尼龙容易吸附其他颜料)。",
212
- drying: "自然干燥。烘干机低温。",
213
- ironing: "极低温。极易受热熔化。",
214
- donts: ["漂白剂(会发黄)", "阳光直射晾晒"],
215
- sos: "发灰了?使用氧漂剂洗涤。",
216
- icon: "mdi:parachute",
217
- color: "#2DD4BF",
218
- maxTemp: "40°C",
219
- isNoble: false,
220
- },
221
- acrylic: {
222
- name: "腈纶",
223
- description: "仿羊毛合成纤维。柔软温暖,容易起球。",
224
- family: "synthetic",
225
- origin: "聚丙烯腈",
226
- breathability: 4,
227
- durability: 6,
228
- warmth: 8,
229
- washing: "温水。多放柔顺剂以防止静电。",
230
- drying: "自然干燥。热量会导致衣服永久变形。",
231
- ironing: "不可熨烫",
232
- donts: ["柔顺剂(时间长了会损坏纤维)", "强力拧干", "热源"],
233
- sos: "失去弹性了?这是不可逆的(纤维已损坏)。",
234
- icon: "mdi:resize",
235
- color: "#450A0A",
236
- maxTemp: "30°C",
237
- isNoble: false,
238
- },
239
- },
240
- },
241
- seo: [
242
- { type: 'title', text: '纺织品护理大师:延长衣物寿命的科学指南', level: 2 },
243
- { type: 'paragraph', html: '你有多少衣服是在不知不觉中洗坏的?羊毛意外缩水,棉布褪色,丝绸上永远洗不掉的渍迹。大多数人洗衣服时并不了解每种纤维都有特定的需求。' },
244
- { type: 'paragraph', html: '我们的<strong>纺织品洗涤指南</strong>为您提供基于衣物实际成分的科学说明。它不是通用的建议,而是具体的科学方案。' },
245
- { type: 'title', text: '为什么传统洗涤方法会失败', level: 2 },
246
- { type: 'paragraph', html: '你的祖母可能习惯用热水和强力肥皂洗涤一切。这对于 50 年代的厚棉床单行得通,但纺织世界已经变了。现代纤维 - - 从<strong>莱赛尔 (Lyocell)</strong> 到 <strong>氨纶 (Elastane)</strong> - - 需要完全不同的护理方案。' },
247
- { type: 'list', items: ['<strong>棉</strong> 耐高温但需要轻柔循环以防缩水。', '<strong>丝绸</strong> 在 30°C 以上容易受损,且建议使用蒸留水。', '<strong>羊毛</strong> 如果用普通洗衣机洗涤可能会变得像石头一样硬。', '<strong>合成纤维</strong> 虽然好打理,但容易产生静电且极易起球。'] },
248
- { type: 'title', text: '按纤维类型划分的护理方案', level: 2 },
249
- { type: 'title', text: '棉:耐操型', level: 3 },
250
- { type: 'paragraph', html: '棉布很宽容,能承受 40-60°C 的水温。真正的敌人是氯(会削弱纤维)和高温烘干(会导致永久缩水)。准则:务必翻面洗涤以保护颜色。' },
251
- { type: 'title', text: '丝绸:贵妇型', level: 3 },
252
- { type: 'paragraph', html: '丝绸需要冷水(最高 30°C)、温和洗涤剂,如果可能的话最后用蒸留水漂洗。问题在于:自来水中的矿物质会留下沉积物,使丝绸看起来暗淡粗糙。解决方法:在最后一步漂洗时使用蒸留水。' },
253
- { type: 'title', text: '羊毛:娇贵型', level: 3 },
254
- { type: 'paragraph', html: '羊毛是由蛋白质组成的,就像你的头发。最高洗涤温度 30°C,并使用羊毛专用洗涤剂。千万不要使用标准模式:机械搅动会使其发生不可逆的缩水。金科玉律:务必平铺晾干,严禁悬挂(会拉长)。' },
255
- { type: 'title', text: '合成纤维:省心型', level: 3 },
256
- { type: 'paragraph', html: '涤纶、腈纶和尼龙都很耐穿,可以承受 40°C 的温水。唯一的敌人是静电,它会使衣物带电。窍门:添加柔顺剂或在烘干机中使用烘干纸。' },
257
- { type: 'title', text: '关于干燥的残酷真相', level: 2 },
258
- { type: 'paragraph', html: '90% 的衣物损坏发生在干燥过程,而非洗涤过程。原因如下:' },
259
- { type: 'card', title: '过滤网里的绒毛', icon: 'mdi:alert', html: '你在烘干机过滤网上看到的绒毛其实是从衣服上<strong>脱落的纤维</strong>。每一次烘干都在慢慢摧毁你的衣服。合成纤维更糟:几周内就会起球。' },
260
- { type: 'card', title: '无声的缩水', icon: 'mdi:warning', html: '烘干机的热量会使大多数天然纤维永久缩水。烘干一次缩水 5% 的衣服永远无法恢复原状。' },
261
- { type: 'tip', title: '最佳烘干实践', html: '尽可能自然晾干。如果必须使用烘干机,请使用低温档,并在衣服还有轻微湿气时取出。' },
262
- { type: 'title', text: '去渍:生存指南', level: 2 },
263
- { type: 'paragraph', html: '不同纤维对化学品的反应不同。棉布上的红酒渍用冷水处理;丝绸则需要蒸留水和一块干净的丝绸布。以下是基本原则:' },
264
- { type: 'list', items: ['<strong>油脂:</strong> 洗涤前使用干皂,严禁用热水(会固化污渍)。', '<strong>墨水/圆珠笔:</strong> 合成纤维用异丙醇;天然纤维用冷水。', '<strong>血迹:</strong> 务必使用冷水。热量会使其永久固化。', '<strong>红酒/饮料:</strong> 立即冷水冲洗,然后撒盐吸收。'] },
265
- { type: 'paragraph', html: '"少买,优选,使之长久。" 护理得当的衣服可以穿几十年,护理不当的只能穿几个月。' },
266
- ],
267
- faq: faqData,
268
- bibliography: bibliography,
269
- howTo: howToData,
270
- schemas: [faqSchema, howToSchema, appSchema],
271
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'laundry-guide';
6
+ const title = '纺织品护理指南:如何洗涤每种纤维类型';
7
+ const description = '关于洗涤和护理棉、羊毛、丝绸、亚麻及合成纤维的科学指南。通过精确的说明防止缩水、褪色和损坏。';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '如何防止衣服褪色?',
12
+ answer: '使用冷水(最高 30°C)洗涤,将衣服翻到反面洗涤,使用深色衣物专用洗涤剂,并在晾晒时避免阳光直射。',
13
+ },
14
+ {
15
+ question: '羊毛可以用洗衣机洗吗?',
16
+ answer: '可以,但只能使用羊毛模式(冷水、柔和搅动)。使用羊毛专用洗涤剂,切勿使用普通洗涤模式。',
17
+ },
18
+ {
19
+ question: '为什么我的丝绸衣服会有水渍?',
20
+ answer: '丝绸对水中的矿物质有反应。在最后一次漂洗时使用蒸留水,或者用纯丝绸布料轻轻擦拭污渍。',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: '检查标签', text: '洗涤前务必阅读衣服标签上的护理说明。' },
26
+ { name: '按纤维类型分类', text: '尽可能将天然纤维与合成纤维分开洗涤。' },
27
+ { name: '选择水温', text: '娇贵面料使用冷水,只有坚固耐磨的材质才使用热水。' },
28
+ ];
29
+
30
+ const faqSchema: WithContext<FAQPage> = {
31
+ '@context': 'https://schema.org',
32
+ '@type': 'FAQPage',
33
+ mainEntity: faqData.map((item) => ({
34
+ '@type': 'Question',
35
+ name: item.question,
36
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
37
+ })),
38
+ };
39
+
40
+ const howToSchema: WithContext<HowTo> = {
41
+ '@context': 'https://schema.org',
42
+ '@type': 'HowTo',
43
+ name: title,
44
+ description: description,
45
+ step: howToData.map((step) => ({
46
+ '@type': 'HowToStep',
47
+ name: step.name,
48
+ text: step.text,
49
+ })),
50
+ };
51
+
52
+ const appSchema: WithContext<SoftwareApplication> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'SoftwareApplication',
55
+ name: title,
56
+ description: description,
57
+ applicationCategory: 'UtilityApplication',
58
+ operatingSystem: 'All',
59
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
60
+ inLanguage: 'zh',
61
+ };
62
+
63
+ export const content: ToolLocaleContent = {
64
+ slug,
65
+ title,
66
+ description,
67
+ ui: {
68
+ selectMaterialTitle: '选择材质',
69
+ selectMaterialPrompt: '选择一种面料查看其护理指南',
70
+ careInstructions: '高级维护说明',
71
+ maxTemp: '最高温度',
72
+ ironing: '熨烫',
73
+ drying: '干燥',
74
+ avoidLabel: '严禁事项',
75
+ sosLabel: '保养建议',
76
+ textileData: {
77
+ cotton: {
78
+ name: "棉",
79
+ description: "天然植物纤维,柔软透气。基础款之王。",
80
+ family: "natural",
81
+ origin: "棉花植株的蒴果",
82
+ breathability: 9,
83
+ durability: 7,
84
+ warmth: 4,
85
+ washing: "冷水或温水(高温会缩水)。允许强力脱水。",
86
+ drying: "烘干机中温烘干或自然晾干。",
87
+ ironing: "趁湿时用蒸汽高温熨烫。",
88
+ donts: ["长时间保持潮湿(会发霉)", "过度使用漂白剂(会削弱纤维)"],
89
+ sos: "缩水了?泡在加了护发素的温水中,然后轻轻拉伸。",
90
+ icon: "mdi:tshirt-crew",
91
+ color: "#60A5FA",
92
+ maxTemp: "40-60°C",
93
+ isNoble: false,
94
+ },
95
+ linen: {
96
+ name: "亚麻",
97
+ description: "非常坚韧的植物纤维,凉爽且具有特征性的褶皱。",
98
+ family: "natural",
99
+ origin: "亚麻植株的茎",
100
+ breathability: 10,
101
+ durability: 9,
102
+ warmth: 2,
103
+ washing: "轻柔模式,不要装得太满(需要足够的水以免纤维折断)。",
104
+ drying: "自然晾干。严禁烘干(会破坏纤维)。",
105
+ ironing: "最高温熨烫,务必在衣服还很湿的时候进行。",
106
+ donts: ["强力脱水", "总是在同一个位置折叠(会导致纤维折断)"],
107
+ sos: "熨烫导致发亮?用蘸有白醋的布擦拭。",
108
+ icon: "mdi:leaf",
109
+ color: "#A7F3D0",
110
+ maxTemp: "60°C",
111
+ isNoble: true,
112
+ },
113
+ wool: {
114
+ name: "羊毛 / 美利奴",
115
+ description: "蛋白质类动物纤维,极佳的隔热性和弹性。",
116
+ family: "natural",
117
+ origin: "绵羊毛",
118
+ breathability: 8,
119
+ durability: 6,
120
+ warmth: 10,
121
+ washing: "手洗或羊毛模式。使用中性皂。严禁用热水(会毡化)。",
122
+ drying: "平铺在毛巾上干燥。切勿悬挂(会变形)。",
123
+ ironing: "垂直蒸汽或在上面垫布中温熨烫。",
124
+ donts: ["热水", "揉搓或拧干", "漂白剂(会溶解羊毛)"],
125
+ sos: "毡化了?几乎无法恢复,但用柔顺剂浸泡可能稍微缓解。",
126
+ icon: "mdi:sheep",
127
+ color: "#FCD34D",
128
+ maxTemp: "30°C",
129
+ isNoble: true,
130
+ },
131
+ silk: {
132
+ name: "丝绸",
133
+ description: "连续长丝动物纤维。具有天然光泽和干爽手感。",
134
+ family: "natural",
135
+ origin: "蚕茧",
136
+ breathability: 7,
137
+ durability: 5,
138
+ warmth: 6,
139
+ washing: "用中性洗发水冷水手洗。不可拧干。",
140
+ drying: "用毛巾卷起吸干水分。在阴凉处晾干。",
141
+ ironing: "低温熨烫,翻到反面且不要直接喷蒸汽。",
142
+ donts: ["阳光直射(会灼伤纤维)", "香水/止汗剂(会留渍)", "水滴(会形成水渍圈)"],
143
+ sos: "有水渍?用丝绸织物互相对擦试试。",
144
+ icon: "mdi:ticket-percent",
145
+ color: "#F472B6",
146
+ maxTemp: "20°C",
147
+ isNoble: true,
148
+ },
149
+ cashmere: {
150
+ name: "羊绒",
151
+ description: "来自山羊的奢侈纤维。极其柔软温暖。",
152
+ family: "natural",
153
+ origin: "克什米尔山羊的细软底毛",
154
+ breathability: 9,
155
+ durability: 5,
156
+ warmth: 10,
157
+ washing: "严格要求用婴儿洗发水手洗。冷水。切勿揉搓。",
158
+ drying: "平铺在毛巾上并整理形状。严禁悬挂。",
159
+ ironing: "不接触衣物的垂直蒸汽,或垫布温和熨烫。",
160
+ donts: ["洗衣机(包括羊毛程序)", "柔顺剂", "持续摩擦(容易起球)"],
161
+ sos: "起球了?使用专用毛球梳或用手拆除。",
162
+ icon: "mdi:crown",
163
+ color: "#F59E0B",
164
+ maxTemp: "20°C",
165
+ isNoble: true,
166
+ },
167
+ polyester: {
168
+ name: "聚酯纤维(涤纶)",
169
+ description: "石油合成纤维。耐磨,不皱,但不透气。",
170
+ family: "synthetic",
171
+ origin: "石油衍生物聚合物",
172
+ breathability: 2,
173
+ durability: 10,
174
+ warmth: 5,
175
+ washing: "温水/冷水。基本耐受各种方式,但容易吸附异味和油脂。",
176
+ drying: "烘干机低温或自然干燥。干燥速度非常快。",
177
+ ironing: "低温/中温熨烫。注意,会熔化。",
178
+ donts: ["过热", "柔顺剂(会形成蜡质层,吸附更多异味)"],
179
+ sos: "顽固异味?洗涤前在加了醋的水中浸泡。",
180
+ icon: "mdi:oil",
181
+ color: "#94A3B8",
182
+ maxTemp: "40°C",
183
+ isNoble: false,
184
+ },
185
+ viscose: {
186
+ name: "粘胶纤维 / 人造棉",
187
+ description: "由再生纤维素制成的半合成纤维。具有丝绸手感,吸水性强。",
188
+ family: "artificial",
189
+ origin: "化学处理的木浆",
190
+ breathability: 8,
191
+ durability: 4,
192
+ warmth: 3,
193
+ washing: "冷水轻柔模式。湿透时纤维变得非常脆弱。",
194
+ drying: "平铺或用带垫衣架悬挂。不可烘干。",
195
+ ironing: "中温,翻到反面。如果可能,避免直接蒸汽。",
196
+ donts: ["湿润时拧干(会撕裂)", "长时间浸泡"],
197
+ sos: "缩水变硬了?使用大量蒸汽熨烫以舒缓纤维。",
198
+ icon: "mdi:forest",
199
+ color: "#C084FC",
200
+ maxTemp: "30°C",
201
+ isNoble: false,
202
+ },
203
+ nylon: {
204
+ name: "尼龙(锦纶)",
205
+ description: "耐拉伸和耐磨性极强的合成纤维。",
206
+ family: "synthetic",
207
+ origin: "石油衍生物(聚酰胺)",
208
+ breathability: 3,
209
+ durability: 10,
210
+ warmth: 4,
211
+ washing: "普通循环。注意避免混洗(尼龙容易吸附其他颜料)。",
212
+ drying: "自然干燥。烘干机低温。",
213
+ ironing: "极低温。极易受热熔化。",
214
+ donts: ["漂白剂(会发黄)", "阳光直射晾晒"],
215
+ sos: "发灰了?使用氧漂剂洗涤。",
216
+ icon: "mdi:parachute",
217
+ color: "#2DD4BF",
218
+ maxTemp: "40°C",
219
+ isNoble: false,
220
+ },
221
+ acrylic: {
222
+ name: "腈纶",
223
+ description: "仿羊毛合成纤维。柔软温暖,容易起球。",
224
+ family: "synthetic",
225
+ origin: "聚丙烯腈",
226
+ breathability: 4,
227
+ durability: 6,
228
+ warmth: 8,
229
+ washing: "温水。多放柔顺剂以防止静电。",
230
+ drying: "自然干燥。热量会导致衣服永久变形。",
231
+ ironing: "不可熨烫",
232
+ donts: ["柔顺剂(时间长了会损坏纤维)", "强力拧干", "热源"],
233
+ sos: "失去弹性了?这是不可逆的(纤维已损坏)。",
234
+ icon: "mdi:resize",
235
+ color: "#450A0A",
236
+ maxTemp: "30°C",
237
+ isNoble: false,
238
+ },
239
+ },
240
+ },
241
+ seo: [
242
+ { type: 'title', text: '纺织品护理大师:延长衣物寿命的科学指南', level: 2 },
243
+ { type: 'paragraph', html: '你有多少衣服是在不知不觉中洗坏的?羊毛意外缩水,棉布褪色,丝绸上永远洗不掉的渍迹。大多数人洗衣服时并不了解每种纤维都有特定的需求。' },
244
+ { type: 'paragraph', html: '我们的<strong>纺织品洗涤指南</strong>为您提供基于衣物实际成分的科学说明。它不是通用的建议,而是具体的科学方案。' },
245
+ { type: 'title', text: '为什么传统洗涤方法会失败', level: 2 },
246
+ { type: 'paragraph', html: '你的祖母可能习惯用热水和强力肥皂洗涤一切。这对于 50 年代的厚棉床单行得通,但纺织世界已经变了。现代纤维 - - 从<strong>莱赛尔 (Lyocell)</strong> 到 <strong>氨纶 (Elastane)</strong> - - 需要完全不同的护理方案。' },
247
+ { type: 'list', items: ['<strong>棉</strong> 耐高温但需要轻柔循环以防缩水。', '<strong>丝绸</strong> 在 30°C 以上容易受损,且建议使用蒸留水。', '<strong>羊毛</strong> 如果用普通洗衣机洗涤可能会变得像石头一样硬。', '<strong>合成纤维</strong> 虽然好打理,但容易产生静电且极易起球。'] },
248
+ { type: 'title', text: '按纤维类型划分的护理方案', level: 2 },
249
+ { type: 'title', text: '棉:耐操型', level: 3 },
250
+ { type: 'paragraph', html: '棉布很宽容,能承受 40-60°C 的水温。真正的敌人是氯(会削弱纤维)和高温烘干(会导致永久缩水)。准则:务必翻面洗涤以保护颜色。' },
251
+ { type: 'title', text: '丝绸:贵妇型', level: 3 },
252
+ { type: 'paragraph', html: '丝绸需要冷水(最高 30°C)、温和洗涤剂,如果可能的话最后用蒸留水漂洗。问题在于:自来水中的矿物质会留下沉积物,使丝绸看起来暗淡粗糙。解决方法:在最后一步漂洗时使用蒸留水。' },
253
+ { type: 'title', text: '羊毛:娇贵型', level: 3 },
254
+ { type: 'paragraph', html: '羊毛是由蛋白质组成的,就像你的头发。最高洗涤温度 30°C,并使用羊毛专用洗涤剂。千万不要使用标准模式:机械搅动会使其发生不可逆的缩水。金科玉律:务必平铺晾干,严禁悬挂(会拉长)。' },
255
+ { type: 'title', text: '合成纤维:省心型', level: 3 },
256
+ { type: 'paragraph', html: '涤纶、腈纶和尼龙都很耐穿,可以承受 40°C 的温水。唯一的敌人是静电,它会使衣物带电。窍门:添加柔顺剂或在烘干机中使用烘干纸。' },
257
+ { type: 'title', text: '关于干燥的残酷真相', level: 2 },
258
+ { type: 'paragraph', html: '90% 的衣物损坏发生在干燥过程,而非洗涤过程。原因如下:' },
259
+ { type: 'card', title: '过滤网里的绒毛', icon: 'mdi:alert', html: '你在烘干机过滤网上看到的绒毛其实是从衣服上<strong>脱落的纤维</strong>。每一次烘干都在慢慢摧毁你的衣服。合成纤维更糟:几周内就会起球。' },
260
+ { type: 'card', title: '无声的缩水', icon: 'mdi:warning', html: '烘干机的热量会使大多数天然纤维永久缩水。烘干一次缩水 5% 的衣服永远无法恢复原状。' },
261
+ { type: 'tip', title: '最佳烘干实践', html: '尽可能自然晾干。如果必须使用烘干机,请使用低温档,并在衣服还有轻微湿气时取出。' },
262
+ { type: 'title', text: '去渍:生存指南', level: 2 },
263
+ { type: 'paragraph', html: '不同纤维对化学品的反应不同。棉布上的红酒渍用冷水处理;丝绸则需要蒸留水和一块干净的丝绸布。以下是基本原则:' },
264
+ { type: 'list', items: ['<strong>油脂:</strong> 洗涤前使用干皂,严禁用热水(会固化污渍)。', '<strong>墨水/圆珠笔:</strong> 合成纤维用异丙醇;天然纤维用冷水。', '<strong>血迹:</strong> 务必使用冷水。热量会使其永久固化。', '<strong>红酒/饮料:</strong> 立即冷水冲洗,然后撒盐吸收。'] },
265
+ { type: 'paragraph', html: '"少买,优选,使之长久。" 护理得当的衣服可以穿几十年,护理不当的只能穿几个月。' },
266
+ ],
267
+ faq: faqData,
268
+ bibliography: bibliography,
269
+ howTo: howToData,
270
+ schemas: [faqSchema, howToSchema, appSchema],
271
+ };
@@ -1,15 +1,15 @@
1
- ---
2
- import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import { laundryGuide } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await laundryGuide.i18n[locale]?.();
12
- if (!content) return null;
13
- ---
14
-
15
- {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { laundryGuide } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await laundryGuide.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}