@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.
- package/package.json +1 -1
- package/src/category/i18n/de.ts +76 -76
- package/src/category/i18n/en.ts +76 -76
- package/src/category/i18n/es.ts +76 -76
- package/src/category/i18n/fr.ts +76 -76
- package/src/category/i18n/id.ts +76 -76
- package/src/category/i18n/it.ts +76 -76
- package/src/category/i18n/ja.ts +76 -76
- package/src/category/i18n/ko.ts +76 -76
- package/src/category/i18n/nl.ts +76 -76
- package/src/category/i18n/pl.ts +76 -76
- package/src/category/i18n/pt.ts +76 -76
- package/src/category/i18n/ru.ts +76 -76
- package/src/category/i18n/sv.ts +76 -76
- package/src/category/i18n/zh.ts +76 -76
- package/src/category/index.ts +2 -0
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +4 -1
- package/src/env.d.ts +1 -1
- package/src/index.ts +1 -1
- package/src/layouts/PreviewLayout.astro +113 -113
- package/src/pages/index.astro +1 -1
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +4 -2
- package/src/tests/locale_spelling.test.ts +44 -0
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_en_dash.test.ts +70 -70
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_length.test.ts +22 -22
- package/src/tests/seo_translation_completeness.test.ts +69 -0
- package/src/tests/spanish_leakage.test.ts +175 -153
- package/src/tests/tool_validation.test.ts +17 -17
- package/src/tool/burnTest/i18n/es.ts +211 -211
- package/src/tool/burnTest/i18n/fr.ts +211 -211
- package/src/tool/burnTest/i18n/ja.ts +211 -211
- package/src/tool/burnTest/i18n/ko.ts +211 -211
- package/src/tool/burnTest/i18n/pl.ts +211 -211
- package/src/tool/burnTest/i18n/ru.ts +211 -211
- package/src/tool/burnTest/i18n/sv.ts +211 -211
- package/src/tool/burnTest/i18n/zh.ts +211 -211
- package/src/tool/burnTest/seo.astro +15 -15
- package/src/tool/clothingSizeConverter/i18n/de.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/en.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/fr.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ja.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ko.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/nl.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/pl.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ru.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/sv.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/tr.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/zh.ts +348 -348
- package/src/tool/clothingSizeConverter/seo.astro +15 -15
- package/src/tool/embroideryStitchPricingEstimator/bibliography.astro +6 -0
- package/src/tool/embroideryStitchPricingEstimator/bibliography.ts +12 -0
- package/src/tool/embroideryStitchPricingEstimator/component.astro +111 -0
- package/src/tool/embroideryStitchPricingEstimator/controller.ts +111 -0
- package/src/tool/embroideryStitchPricingEstimator/dom-views.ts +94 -0
- package/src/tool/embroideryStitchPricingEstimator/embroidery-stitch-count-pricing-estimator.css +438 -0
- package/src/tool/embroideryStitchPricingEstimator/entry.ts +29 -0
- package/src/tool/embroideryStitchPricingEstimator/evaluator.ts +22 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/de.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/en.ts +194 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/es.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/fr.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/id.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/it.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ja.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ko.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/nl.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/pl.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/pt.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ru.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/sv.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/tr.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/zh.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/index.ts +11 -0
- package/src/tool/embroideryStitchPricingEstimator/logic.test.ts +40 -0
- package/src/tool/embroideryStitchPricingEstimator/logic.ts +86 -0
- package/src/tool/embroideryStitchPricingEstimator/seo.astro +15 -0
- package/src/tool/embroideryStitchPricingEstimator/storage.ts +20 -0
- package/src/tool/embroideryStitchPricingEstimator/ui.ts +53 -0
- package/src/tool/fabricProjectCalculator/i18n/de.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ja.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ko.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/nl.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/pl.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ru.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/sv.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/tr.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/zh.ts +236 -236
- package/src/tool/fabricProjectCalculator/seo.astro +15 -15
- package/src/tool/fabricTruth/i18n/de.ts +268 -268
- package/src/tool/fabricTruth/i18n/en.ts +268 -268
- package/src/tool/fabricTruth/i18n/es.ts +302 -302
- package/src/tool/fabricTruth/i18n/fr.ts +268 -268
- package/src/tool/fabricTruth/i18n/id.ts +268 -268
- package/src/tool/fabricTruth/i18n/it.ts +268 -268
- package/src/tool/fabricTruth/i18n/ja.ts +268 -268
- package/src/tool/fabricTruth/i18n/ko.ts +268 -268
- package/src/tool/fabricTruth/i18n/nl.ts +268 -268
- package/src/tool/fabricTruth/i18n/pl.ts +268 -268
- package/src/tool/fabricTruth/i18n/pt.ts +268 -268
- package/src/tool/fabricTruth/i18n/ru.ts +268 -268
- package/src/tool/fabricTruth/i18n/sv.ts +268 -268
- package/src/tool/fabricTruth/i18n/tr.ts +268 -268
- package/src/tool/fabricTruth/i18n/zh.ts +272 -272
- package/src/tool/fabricTruth/seo.astro +15 -15
- package/src/tool/fiberPrep/i18n/de.ts +215 -215
- package/src/tool/fiberPrep/i18n/fr.ts +215 -215
- package/src/tool/fiberPrep/i18n/ja.ts +215 -215
- package/src/tool/fiberPrep/i18n/ko.ts +215 -215
- package/src/tool/fiberPrep/i18n/nl.ts +215 -215
- package/src/tool/fiberPrep/i18n/pl.ts +215 -215
- package/src/tool/fiberPrep/i18n/ru.ts +215 -215
- package/src/tool/fiberPrep/i18n/sv.ts +215 -215
- package/src/tool/fiberPrep/i18n/tr.ts +215 -215
- package/src/tool/fiberPrep/i18n/zh.ts +215 -215
- package/src/tool/fiberPrep/seo.astro +15 -15
- package/src/tool/knittingGauge/i18n/de.ts +224 -224
- package/src/tool/knittingGauge/i18n/ja.ts +224 -224
- package/src/tool/knittingGauge/i18n/ko.ts +224 -224
- package/src/tool/knittingGauge/i18n/pl.ts +224 -224
- package/src/tool/knittingGauge/i18n/ru.ts +224 -224
- package/src/tool/knittingGauge/i18n/tr.ts +224 -224
- package/src/tool/knittingGauge/i18n/zh.ts +224 -224
- package/src/tool/knittingGauge/seo.astro +15 -15
- package/src/tool/laundryGuide/i18n/de.ts +271 -271
- package/src/tool/laundryGuide/i18n/en.ts +271 -271
- package/src/tool/laundryGuide/i18n/es.ts +271 -271
- package/src/tool/laundryGuide/i18n/fr.ts +255 -255
- package/src/tool/laundryGuide/i18n/id.ts +271 -271
- package/src/tool/laundryGuide/i18n/it.ts +271 -271
- package/src/tool/laundryGuide/i18n/ja.ts +271 -271
- package/src/tool/laundryGuide/i18n/ko.ts +271 -271
- package/src/tool/laundryGuide/i18n/nl.ts +271 -271
- package/src/tool/laundryGuide/i18n/pl.ts +271 -271
- package/src/tool/laundryGuide/i18n/pt.ts +271 -271
- package/src/tool/laundryGuide/i18n/ru.ts +271 -271
- package/src/tool/laundryGuide/i18n/sv.ts +271 -271
- package/src/tool/laundryGuide/i18n/tr.ts +271 -271
- package/src/tool/laundryGuide/i18n/zh.ts +271 -271
- package/src/tool/laundryGuide/seo.astro +15 -15
- package/src/tool/needleConverter/i18n/de.ts +202 -202
- package/src/tool/needleConverter/i18n/es.ts +207 -207
- package/src/tool/needleConverter/i18n/fr.ts +207 -207
- package/src/tool/needleConverter/i18n/ja.ts +202 -202
- package/src/tool/needleConverter/i18n/ko.ts +202 -202
- package/src/tool/needleConverter/i18n/nl.ts +202 -202
- package/src/tool/needleConverter/i18n/pl.ts +202 -202
- package/src/tool/needleConverter/i18n/ru.ts +202 -202
- package/src/tool/needleConverter/i18n/sv.ts +202 -202
- package/src/tool/needleConverter/i18n/tr.ts +202 -202
- package/src/tool/needleConverter/i18n/zh.ts +202 -202
- package/src/tool/needleConverter/seo.astro +15 -15
- package/src/tool/sewingPatternScaler/component.astro +236 -236
- package/src/tool/sewingPatternScaler/i18n/fr.ts +170 -170
- package/src/tool/sewingPatternScaler/i18n/ja.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/ko.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/nl.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/pl.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/ru.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/sv.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/tr.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/zh.ts +114 -114
- package/src/tool/sewingPatternScaler/seo.astro +15 -15
- package/src/tool/shoeSizeConverter/i18n/fr.ts +183 -183
- package/src/tool/shoeSizeConverter/i18n/ja.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/ko.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/nl.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/pl.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/ru.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/sv.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/tr.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/zh.ts +179 -179
- package/src/tool/shoeSizeConverter/seo.astro +15 -15
- package/src/tool/stainChemistry/bibliography.ts +16 -16
- package/src/tool/stainChemistry/i18n/de.ts +286 -286
- package/src/tool/stainChemistry/i18n/en.ts +289 -289
- package/src/tool/stainChemistry/i18n/es.ts +286 -286
- package/src/tool/stainChemistry/i18n/fr.ts +296 -296
- package/src/tool/stainChemistry/i18n/id.ts +286 -286
- package/src/tool/stainChemistry/i18n/it.ts +286 -286
- package/src/tool/stainChemistry/i18n/ja.ts +286 -286
- package/src/tool/stainChemistry/i18n/ko.ts +283 -283
- package/src/tool/stainChemistry/i18n/nl.ts +286 -286
- package/src/tool/stainChemistry/i18n/pl.ts +286 -286
- package/src/tool/stainChemistry/i18n/pt.ts +286 -286
- package/src/tool/stainChemistry/i18n/ru.ts +286 -286
- package/src/tool/stainChemistry/i18n/sv.ts +286 -286
- package/src/tool/stainChemistry/i18n/tr.ts +286 -286
- package/src/tool/stainChemistry/i18n/zh.ts +281 -281
- package/src/tool/stainChemistry/seo.astro +15 -15
- package/src/tool/yarnCalculator/i18n/de.ts +296 -296
- package/src/tool/yarnCalculator/i18n/es.ts +296 -296
- package/src/tool/yarnCalculator/i18n/fr.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ja.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ko.ts +296 -296
- package/src/tool/yarnCalculator/i18n/nl.ts +296 -296
- package/src/tool/yarnCalculator/i18n/pl.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ru.ts +296 -296
- package/src/tool/yarnCalculator/i18n/sv.ts +296 -296
- package/src/tool/yarnCalculator/i18n/tr.ts +296 -296
- package/src/tool/yarnCalculator/i18n/zh.ts +295 -295
- package/src/tool/yarnCalculator/seo.astro +15 -15
- package/src/tools.ts +2 -2
|
@@ -1,215 +1,215 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import { bibliography } from '../bibliography';
|
|
4
|
-
import type { FiberPrepUI } from '../ui';
|
|
5
|
-
|
|
6
|
-
const slug = 'fiber-preparation-natural-dyeing';
|
|
7
|
-
const title = '染前纤维预处理';
|
|
8
|
-
const description =
|
|
9
|
-
'天然染色前的 WOF 计算器、媒染方案和升温程序,适用于羊毛、丝绸和棉纤维的预准备。';
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: '什么是 WOF (Weight of Fiber)?',
|
|
14
|
-
answer:
|
|
15
|
-
'WOF 是计算所需染料或媒染剂量的标准系统。它基于纤维的干重。例如,对于 100 克羊毛,使用 100% WOF 的洋葱皮意味着您需要 100 克洋葱皮。',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: '为什么必须进行媒染?',
|
|
19
|
-
answer:
|
|
20
|
-
'媒染剂(如明矾)在纺织纤维和天然色素之间起着化学桥梁的作用。没有这种桥梁,大多数染料将无法固着,并在第一次洗涤时消失(日晒牢度和摩擦牢度较差)。',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: '处理动物纤维和植物纤维有什么区别?',
|
|
24
|
-
answer:
|
|
25
|
-
'动物纤维(羊毛等蛋白质纤维)单独使用明矾的效果非常好。植物纤维(棉或麻等纤维素纤维)则需要先经过单宁处理,以"诱导"纤维接受金属媒染剂。',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: '染色中的"升温程序(Thermal Ramp)"是什么?',
|
|
29
|
-
answer:
|
|
30
|
-
'它是指染浴温度的逐渐升高(约每分钟 1-2°C)。这对避免热冲击至关重要,特别是对于羊毛,如果温度变化过快,会发生缩绒(毡化),导致纤维板结。',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const howToData = [
|
|
35
|
-
{
|
|
36
|
-
name: '精炼与清洗',
|
|
37
|
-
text: '使用中性洗涤剂清洗纤维,去除阻碍媒染剂均匀渗透的油脂、蜡质或工业浆料。',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: '称量干纤维重量',
|
|
41
|
-
text: '获取干燥材料的准确重量。该值是所有 WOF (Weight of Fiber) 计算的基础。',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: '计算与媒染浴',
|
|
45
|
-
text: '将媒染剂(如 15% WOF 的明矾)溶解在热水中并浸入纤维,按照方案保持恒温。',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: '熟成与漂洗',
|
|
49
|
-
text: '让媒染后的纤维静置(最好是 24 小时),使金属离子在进入最终染浴前深度固着。',
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
-
'@context': 'https://schema.org',
|
|
55
|
-
'@type': 'FAQPage',
|
|
56
|
-
mainEntity: faqData.map((item) => ({
|
|
57
|
-
'@type': 'Question',
|
|
58
|
-
name: item.question,
|
|
59
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
-
})),
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const howToSchema: WithContext<HowTo> = {
|
|
64
|
-
'@context': 'https://schema.org',
|
|
65
|
-
'@type': 'HowTo',
|
|
66
|
-
name: title,
|
|
67
|
-
description,
|
|
68
|
-
step: howToData.map((step) => ({
|
|
69
|
-
'@type': 'HowToStep',
|
|
70
|
-
name: step.name,
|
|
71
|
-
text: step.text,
|
|
72
|
-
})),
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
-
'@context': 'https://schema.org',
|
|
77
|
-
'@type': 'SoftwareApplication',
|
|
78
|
-
name: title,
|
|
79
|
-
description,
|
|
80
|
-
applicationCategory: 'UtilityApplication',
|
|
81
|
-
operatingSystem: 'All',
|
|
82
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
-
inLanguage: 'zh',
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
export const content: ToolLocaleContent<FiberPrepUI> = {
|
|
87
|
-
slug,
|
|
88
|
-
title,
|
|
89
|
-
description,
|
|
90
|
-
faq: faqData,
|
|
91
|
-
bibliography: bibliography,
|
|
92
|
-
howTo: howToData,
|
|
93
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
-
seo: [
|
|
95
|
-
{
|
|
96
|
-
type: 'title',
|
|
97
|
-
text: '媒染背后的科学',
|
|
98
|
-
level: 2,
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
type: 'paragraph',
|
|
102
|
-
html: '为染色准备纤维不仅仅是清洗。这是一个分子水平上的化学工程过程,称为媒染。这个词源于拉丁语 <i>mordere</i>(咬),其功能是充当纤维和色素之间的化学桥梁。没有这座桥梁,大多数天然染料只会在第一次漂洗时就被冲掉。',
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
type: 'card',
|
|
106
|
-
title: '核心概念',
|
|
107
|
-
icon: 'mdi:molecule',
|
|
108
|
-
html: '媒染剂具有可用的价态,可以同时抓紧纤维聚合物和染料分子。',
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'title',
|
|
112
|
-
text: '纤维差异化',
|
|
113
|
-
level: 2,
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'card',
|
|
117
|
-
title: '蛋白质纤维:羊毛与丝绸',
|
|
118
|
-
icon: 'mdi:sheep',
|
|
119
|
-
html: '这些纤维由氨基酸链组成,对金属具有极高的天然亲和力。热量使纤维鳞片张开,允许明矾盐深度渗透。使用<strong>酒石粉(Cream of Tartar)</strong>至关重要,它可以维持酸性 pH 值,从而保持纤维的柔软度。',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'card',
|
|
123
|
-
title: '纤维素纤维:棉与麻',
|
|
124
|
-
icon: 'mdi:leaf',
|
|
125
|
-
html: '纤维素没有容易结合的位点。这就是为什么我们使用<strong>两步法方案</strong>:首先是附着在纤维素上的单宁,然后是附着在单宁上的明矾。如果没有这种预处理,颜色会显得苍白且不耐洗。',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: 'title',
|
|
129
|
-
text: '染浴控制:WOF、温度与 pH',
|
|
130
|
-
level: 2,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'paragraph',
|
|
134
|
-
html: '为了获得专业且可重复的结果,<strong>WOF (Weight of Fabric)</strong> 概念是准则。一切都按纤维干重的百分比来衡量。过量的媒染剂会使纤维饱和,使其变得粗糙或留下金属沉积物,从而改变最终颜色。',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
type: 'tip',
|
|
138
|
-
title: '升温程序',
|
|
139
|
-
html: '热量起着催化剂的作用,加速化学反应。然而,羊毛温度的突然变化会导致鳞片永久性地相互勾连,导致织物毡化和缩水。',
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
type: 'tip',
|
|
143
|
-
title: 'pH 因素',
|
|
144
|
-
html: '许多天然染料都是活的 pH 指示剂。pH 值影响盐类的溶解度和纤维的保存。如果染浴过于碱性,丝绸可能会失去光泽。使用柠檬酸或碳酸钙调节 pH 值是基础性的工作。',
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
type: 'title',
|
|
148
|
-
text: '物质与安全',
|
|
149
|
-
level: 2,
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: 'card',
|
|
153
|
-
title: '明矾(钾明矾)',
|
|
154
|
-
icon: 'mdi:bottle-tonic-skull',
|
|
155
|
-
html: '通用媒染剂,无色且高效。蛋白质纤维的参考媒染剂。',
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
type: 'card',
|
|
159
|
-
title: '酒石粉 (Cream of Tartar)',
|
|
160
|
-
icon: 'mdi:spoon-sugar',
|
|
161
|
-
html: '助剂,可提高动物纤维的固着力和柔软度。保持酸性 pH 值。',
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
type: 'tip',
|
|
165
|
-
title: '安全守则',
|
|
166
|
-
html: '染色锅具需专用,严禁用于烹饪食物。<br>处理粉末状媒染剂时请佩戴手套和口罩。<br>确保持续通风以避免蒸汽积聚。',
|
|
167
|
-
},
|
|
168
|
-
],
|
|
169
|
-
ui: {
|
|
170
|
-
profileTitle: '选择类型',
|
|
171
|
-
profileDesc: '化学方案根据纤维的分子来源进行划分',
|
|
172
|
-
proteinTitle: '蛋白质纤维',
|
|
173
|
-
proteinOrigin: '动物来源',
|
|
174
|
-
proteinDesc: '羊毛、丝绸、羊驼毛、马海毛或羊绒。需要控制温度和酸性 pH 环境。',
|
|
175
|
-
cellulosicTitle: '纤维素纤维',
|
|
176
|
-
cellulosicOrigin: '植物来源',
|
|
177
|
-
cellulosicDesc: '棉、麻、大麻或黄麻。需要使用单宁进行预媒染以固着色素。',
|
|
178
|
-
wofTitle: 'WOF 计算器',
|
|
179
|
-
weightLabel: '干衣重量 (g)',
|
|
180
|
-
weightUnit: 'g',
|
|
181
|
-
wofEmptyMsg: '选择一个类型以启用计算',
|
|
182
|
-
alumLabel: '明矾',
|
|
183
|
-
cremLabel: '酒石粉',
|
|
184
|
-
ironLabel: '铁剂(慎用)',
|
|
185
|
-
rampTitle: '升温程序',
|
|
186
|
-
rampEmptyTitle: '等待选择',
|
|
187
|
-
rampEmptyDesc: '选择一种纤维以查看热循环',
|
|
188
|
-
phTitle: 'pH 稳定剂',
|
|
189
|
-
phDesc: '颜色饱和度的关键因素',
|
|
190
|
-
phVolumeLabel: '染浴体积 (L)',
|
|
191
|
-
phSliderLabel: '当前 pH',
|
|
192
|
-
phAcidLabel: '酸性 (1)',
|
|
193
|
-
phAlkalineLabel: '碱性 (14)',
|
|
194
|
-
phEmptyMsg: '选择一个类型以启用稳定剂',
|
|
195
|
-
phStrings: {
|
|
196
|
-
optimal: '最佳 pH',
|
|
197
|
-
raisePrefix: '添加碳酸钙或纯碱。约',
|
|
198
|
-
raiseSuffix: 'g 以升高至',
|
|
199
|
-
lowerPrefix: '添加柠檬酸或醋。约',
|
|
200
|
-
lowerSuffix: 'ml 以降低至',
|
|
201
|
-
},
|
|
202
|
-
proteinFibers: [
|
|
203
|
-
{ id: 'wool', name: '羊毛 / 美利奴', icon: 'mdi:sheep' },
|
|
204
|
-
{ id: 'silk', name: '丝绸', icon: 'mdi:ticket-percent' },
|
|
205
|
-
{ id: 'cashmere', name: '羊绒', icon: 'mdi:crown' },
|
|
206
|
-
{ id: 'mohair', name: '马海毛', icon: 'mdi:shimmer' },
|
|
207
|
-
{ id: 'angora', name: '安哥拉免毛', icon: 'mdi:rabbit' },
|
|
208
|
-
{ id: 'alpaca', name: '羊驼毛', icon: 'mdi:image-filter-hdr' },
|
|
209
|
-
],
|
|
210
|
-
cellulosicFibers: [
|
|
211
|
-
{ id: 'cotton', name: '棉', icon: 'mdi:tshirt-crew' },
|
|
212
|
-
{ id: 'linen', name: '亚麻', icon: 'mdi:leaf' },
|
|
213
|
-
],
|
|
214
|
-
},
|
|
215
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { FiberPrepUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'fiber-preparation-natural-dyeing';
|
|
7
|
+
const title = '染前纤维预处理';
|
|
8
|
+
const description =
|
|
9
|
+
'天然染色前的 WOF 计算器、媒染方案和升温程序,适用于羊毛、丝绸和棉纤维的预准备。';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: '什么是 WOF (Weight of Fiber)?',
|
|
14
|
+
answer:
|
|
15
|
+
'WOF 是计算所需染料或媒染剂量的标准系统。它基于纤维的干重。例如,对于 100 克羊毛,使用 100% WOF 的洋葱皮意味着您需要 100 克洋葱皮。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: '为什么必须进行媒染?',
|
|
19
|
+
answer:
|
|
20
|
+
'媒染剂(如明矾)在纺织纤维和天然色素之间起着化学桥梁的作用。没有这种桥梁,大多数染料将无法固着,并在第一次洗涤时消失(日晒牢度和摩擦牢度较差)。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '处理动物纤维和植物纤维有什么区别?',
|
|
24
|
+
answer:
|
|
25
|
+
'动物纤维(羊毛等蛋白质纤维)单独使用明矾的效果非常好。植物纤维(棉或麻等纤维素纤维)则需要先经过单宁处理,以"诱导"纤维接受金属媒染剂。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '染色中的"升温程序(Thermal Ramp)"是什么?',
|
|
29
|
+
answer:
|
|
30
|
+
'它是指染浴温度的逐渐升高(约每分钟 1-2°C)。这对避免热冲击至关重要,特别是对于羊毛,如果温度变化过快,会发生缩绒(毡化),导致纤维板结。',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: '精炼与清洗',
|
|
37
|
+
text: '使用中性洗涤剂清洗纤维,去除阻碍媒染剂均匀渗透的油脂、蜡质或工业浆料。',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '称量干纤维重量',
|
|
41
|
+
text: '获取干燥材料的准确重量。该值是所有 WOF (Weight of Fiber) 计算的基础。',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: '计算与媒染浴',
|
|
45
|
+
text: '将媒染剂(如 15% WOF 的明矾)溶解在热水中并浸入纤维,按照方案保持恒温。',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: '熟成与漂洗',
|
|
49
|
+
text: '让媒染后的纤维静置(最好是 24 小时),使金属离子在进入最终染浴前深度固着。',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'zh',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<FiberPrepUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography: bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: '媒染背后的科学',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: '为染色准备纤维不仅仅是清洗。这是一个分子水平上的化学工程过程,称为媒染。这个词源于拉丁语 <i>mordere</i>(咬),其功能是充当纤维和色素之间的化学桥梁。没有这座桥梁,大多数天然染料只会在第一次漂洗时就被冲掉。',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'card',
|
|
106
|
+
title: '核心概念',
|
|
107
|
+
icon: 'mdi:molecule',
|
|
108
|
+
html: '媒染剂具有可用的价态,可以同时抓紧纤维聚合物和染料分子。',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: '纤维差异化',
|
|
113
|
+
level: 2,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'card',
|
|
117
|
+
title: '蛋白质纤维:羊毛与丝绸',
|
|
118
|
+
icon: 'mdi:sheep',
|
|
119
|
+
html: '这些纤维由氨基酸链组成,对金属具有极高的天然亲和力。热量使纤维鳞片张开,允许明矾盐深度渗透。使用<strong>酒石粉(Cream of Tartar)</strong>至关重要,它可以维持酸性 pH 值,从而保持纤维的柔软度。',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'card',
|
|
123
|
+
title: '纤维素纤维:棉与麻',
|
|
124
|
+
icon: 'mdi:leaf',
|
|
125
|
+
html: '纤维素没有容易结合的位点。这就是为什么我们使用<strong>两步法方案</strong>:首先是附着在纤维素上的单宁,然后是附着在单宁上的明矾。如果没有这种预处理,颜色会显得苍白且不耐洗。',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: '染浴控制:WOF、温度与 pH',
|
|
130
|
+
level: 2,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: '为了获得专业且可重复的结果,<strong>WOF (Weight of Fabric)</strong> 概念是准则。一切都按纤维干重的百分比来衡量。过量的媒染剂会使纤维饱和,使其变得粗糙或留下金属沉积物,从而改变最终颜色。',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'tip',
|
|
138
|
+
title: '升温程序',
|
|
139
|
+
html: '热量起着催化剂的作用,加速化学反应。然而,羊毛温度的突然变化会导致鳞片永久性地相互勾连,导致织物毡化和缩水。',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'tip',
|
|
143
|
+
title: 'pH 因素',
|
|
144
|
+
html: '许多天然染料都是活的 pH 指示剂。pH 值影响盐类的溶解度和纤维的保存。如果染浴过于碱性,丝绸可能会失去光泽。使用柠檬酸或碳酸钙调节 pH 值是基础性的工作。',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '物质与安全',
|
|
149
|
+
level: 2,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'card',
|
|
153
|
+
title: '明矾(钾明矾)',
|
|
154
|
+
icon: 'mdi:bottle-tonic-skull',
|
|
155
|
+
html: '通用媒染剂,无色且高效。蛋白质纤维的参考媒染剂。',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'card',
|
|
159
|
+
title: '酒石粉 (Cream of Tartar)',
|
|
160
|
+
icon: 'mdi:spoon-sugar',
|
|
161
|
+
html: '助剂,可提高动物纤维的固着力和柔软度。保持酸性 pH 值。',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'tip',
|
|
165
|
+
title: '安全守则',
|
|
166
|
+
html: '染色锅具需专用,严禁用于烹饪食物。<br>处理粉末状媒染剂时请佩戴手套和口罩。<br>确保持续通风以避免蒸汽积聚。',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
ui: {
|
|
170
|
+
profileTitle: '选择类型',
|
|
171
|
+
profileDesc: '化学方案根据纤维的分子来源进行划分',
|
|
172
|
+
proteinTitle: '蛋白质纤维',
|
|
173
|
+
proteinOrigin: '动物来源',
|
|
174
|
+
proteinDesc: '羊毛、丝绸、羊驼毛、马海毛或羊绒。需要控制温度和酸性 pH 环境。',
|
|
175
|
+
cellulosicTitle: '纤维素纤维',
|
|
176
|
+
cellulosicOrigin: '植物来源',
|
|
177
|
+
cellulosicDesc: '棉、麻、大麻或黄麻。需要使用单宁进行预媒染以固着色素。',
|
|
178
|
+
wofTitle: 'WOF 计算器',
|
|
179
|
+
weightLabel: '干衣重量 (g)',
|
|
180
|
+
weightUnit: 'g',
|
|
181
|
+
wofEmptyMsg: '选择一个类型以启用计算',
|
|
182
|
+
alumLabel: '明矾',
|
|
183
|
+
cremLabel: '酒石粉',
|
|
184
|
+
ironLabel: '铁剂(慎用)',
|
|
185
|
+
rampTitle: '升温程序',
|
|
186
|
+
rampEmptyTitle: '等待选择',
|
|
187
|
+
rampEmptyDesc: '选择一种纤维以查看热循环',
|
|
188
|
+
phTitle: 'pH 稳定剂',
|
|
189
|
+
phDesc: '颜色饱和度的关键因素',
|
|
190
|
+
phVolumeLabel: '染浴体积 (L)',
|
|
191
|
+
phSliderLabel: '当前 pH',
|
|
192
|
+
phAcidLabel: '酸性 (1)',
|
|
193
|
+
phAlkalineLabel: '碱性 (14)',
|
|
194
|
+
phEmptyMsg: '选择一个类型以启用稳定剂',
|
|
195
|
+
phStrings: {
|
|
196
|
+
optimal: '最佳 pH',
|
|
197
|
+
raisePrefix: '添加碳酸钙或纯碱。约',
|
|
198
|
+
raiseSuffix: 'g 以升高至',
|
|
199
|
+
lowerPrefix: '添加柠檬酸或醋。约',
|
|
200
|
+
lowerSuffix: 'ml 以降低至',
|
|
201
|
+
},
|
|
202
|
+
proteinFibers: [
|
|
203
|
+
{ id: 'wool', name: '羊毛 / 美利奴', icon: 'mdi:sheep' },
|
|
204
|
+
{ id: 'silk', name: '丝绸', icon: 'mdi:ticket-percent' },
|
|
205
|
+
{ id: 'cashmere', name: '羊绒', icon: 'mdi:crown' },
|
|
206
|
+
{ id: 'mohair', name: '马海毛', icon: 'mdi:shimmer' },
|
|
207
|
+
{ id: 'angora', name: '安哥拉免毛', icon: 'mdi:rabbit' },
|
|
208
|
+
{ id: 'alpaca', name: '羊驼毛', icon: 'mdi:image-filter-hdr' },
|
|
209
|
+
],
|
|
210
|
+
cellulosicFibers: [
|
|
211
|
+
{ id: 'cotton', name: '棉', icon: 'mdi:tshirt-crew' },
|
|
212
|
+
{ id: 'linen', name: '亚麻', icon: 'mdi:leaf' },
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { fiberPrep } 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 fiberPrep.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 { fiberPrep } 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 fiberPrep.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|