@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,281 +1,281 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import { bibliography } from '../bibliography';
|
|
4
|
-
import type { StainChemistryUI } from '../ui';
|
|
5
|
-
|
|
6
|
-
const slug = 'stain-chemical-protocol';
|
|
7
|
-
const title = '纺织品除渍化学方案';
|
|
8
|
-
const description = '根据纤维类型和污渍的化学性质,提供科学的去污方案。过碳酸盐、酶、溶剂:为每种情况提供正确的方法。';
|
|
9
|
-
|
|
10
|
-
const faqData = [
|
|
11
|
-
{
|
|
12
|
-
question: '我可以用漂白水代替过碳酸钠吗?',
|
|
13
|
-
answer:
|
|
14
|
-
'漂白水(次氯酸钠)具有高度腐蚀性。它会降解纤维,使衣物变黄变脆。过碳酸盐通过活性氧进行漂白,能在保护纤维自然分子结构的同时达到去污效果。',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
question: '为什么醋有助于除味?',
|
|
18
|
-
answer: '由于人体的异味通常呈碱性,醋中的乙酸能中和这些异味,将其转化为无味的盐类,从而在漂洗过程中彻底清除。',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
question: '处理血渍一定要用冷水吗?',
|
|
22
|
-
answer:
|
|
23
|
-
'是的。热量会使血红蛋白凝固,从而使其永久固定在纤维上。冷水能保持污渍处于可溶状态,有利于酶制剂发挥作用。',
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
question: '如果我把丙酮用在醋酯纤维(acetate)衣物上会怎样?',
|
|
27
|
-
answer:
|
|
28
|
-
'丙酮会溶解三醋酯纤维和醋酯纤维。醋酯纤维是纤维素与乙酸酯化而成的,完全溶于丙酮。使用丙酮会导致织物发生不可逆的损毁。',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const howToData = [
|
|
33
|
-
{
|
|
34
|
-
name: '确认纤维类型',
|
|
35
|
-
text: '查看衣物洗涤标签,确认是天然纤维、合成纤维还是高档动物纤维(羊毛、真丝、羊绒)。',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: '在工具中选择纤维',
|
|
39
|
-
text: '在第一个选项中选择对应的材质。',
|
|
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,
|
|
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,
|
|
78
|
-
applicationCategory: 'UtilityApplication',
|
|
79
|
-
operatingSystem: 'All',
|
|
80
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
81
|
-
inLanguage: 'zh',
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export const content: ToolLocaleContent<StainChemistryUI> = {
|
|
85
|
-
slug,
|
|
86
|
-
title,
|
|
87
|
-
description,
|
|
88
|
-
ui: {
|
|
89
|
-
toolTitle: '除渍化学方案',
|
|
90
|
-
fiberLabel: '1. 纤维',
|
|
91
|
-
selectFiberPlaceholder: '选择织物材质...',
|
|
92
|
-
stainLabel: '2. 污渍',
|
|
93
|
-
selectStainPlaceholder: '发生了什么?',
|
|
94
|
-
molecularDiagnosis: '分子诊断',
|
|
95
|
-
requiredAgent: '所需药剂',
|
|
96
|
-
thermalCondition: '温度条件',
|
|
97
|
-
temperature: '温度',
|
|
98
|
-
cleaningInstructions: '清洗说明',
|
|
99
|
-
criticalWarning: '关键警示',
|
|
100
|
-
criticalWarningLabel: '警告',
|
|
101
|
-
technicalNote: '技术注释',
|
|
102
|
-
technicalNoteText: '在进行完整化学预处理前,请务必在衣物隐蔽处进行色牢度测试。',
|
|
103
|
-
systemDiagnosis: '诊断系统',
|
|
104
|
-
systemDiagnosisDesc: '配置纺织品参数以获取清洗路线图',
|
|
105
|
-
delicatePercarbonateWarning: '存在分子降解风险。动物纤维对过碳酸盐高度敏感。请在不显眼处进行测试。',
|
|
106
|
-
fiberData: {
|
|
107
|
-
cotton: { name: '棉', family: 'natural', isNoble: false },
|
|
108
|
-
linen: { name: '亚麻', family: 'natural', isNoble: true },
|
|
109
|
-
wool: { name: '羊毛 / 美利奴', family: 'natural', isNoble: true },
|
|
110
|
-
silk: { name: '真丝', family: 'natural', isNoble: true },
|
|
111
|
-
cashmere: { name: '羊绒', family: 'natural', isNoble: true },
|
|
112
|
-
mohair: { name: '马海毛', family: 'natural', isNoble: true },
|
|
113
|
-
angora: { name: '安哥拉兔毛', family: 'natural', isNoble: true },
|
|
114
|
-
alpaca: { name: '羊驼毛', family: 'natural', isNoble: true },
|
|
115
|
-
polyester: { name: '聚酯纤维(涤纶)', family: 'synthetic', isNoble: false },
|
|
116
|
-
viscose: { name: '粘胶纤维 / 人造丝', family: 'artificial', isNoble: false },
|
|
117
|
-
nylon: { name: '尼龙(聚酰胺纤维)', family: 'synthetic', isNoble: false },
|
|
118
|
-
acrylic: { name: '腈纶', family: 'synthetic', isNoble: false },
|
|
119
|
-
},
|
|
120
|
-
agents: {
|
|
121
|
-
percarbonte: {
|
|
122
|
-
name: '过碳酸钠',
|
|
123
|
-
description: '可生物降解的氧系漂白剂。溶解时释放活性氧。',
|
|
124
|
-
warning: '避免在高浓度下用于蛋白质纤维(真丝、羊毛)。',
|
|
125
|
-
},
|
|
126
|
-
isopropyl: {
|
|
127
|
-
name: '异丙基酒精',
|
|
128
|
-
description: '针对色素和轻度油脂的有效溶剂。',
|
|
129
|
-
warning: '如果不稀释,可能会损伤真丝光泽或溶解某些腈纶织物。',
|
|
130
|
-
},
|
|
131
|
-
acetone: {
|
|
132
|
-
name: '丙酮',
|
|
133
|
-
description: '针对漆类和胶水的强力溶剂。',
|
|
134
|
-
warning: '严禁用于醋酯纤维和三醋酯纤维(会溶解纤维)。',
|
|
135
|
-
},
|
|
136
|
-
enzyme: {
|
|
137
|
-
name: '酶促洗涤剂',
|
|
138
|
-
description: '含有能够分解生物污渍的蛋白酶。',
|
|
139
|
-
warning: '在羊毛和真丝(本身也是蛋白质)上使用时需谨慎。',
|
|
140
|
-
},
|
|
141
|
-
vinegar: {
|
|
142
|
-
name: '白醋',
|
|
143
|
-
description: '用于中和异味和固色的温和乙酸。',
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
stains: [
|
|
147
|
-
{
|
|
148
|
-
id: 'wine',
|
|
149
|
-
name: '红酒 / 水果',
|
|
150
|
-
protocols: {
|
|
151
|
-
natural: { agentId: 'percarbonate', temperature: '40-60°C', method: '长时间浸泡' },
|
|
152
|
-
synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '直接涂抹糊状物' },
|
|
153
|
-
delicate: {
|
|
154
|
-
agentId: 'vinegar',
|
|
155
|
-
temperature: '冷水性能',
|
|
156
|
-
method: '用苏打水和醋冲洗',
|
|
157
|
-
notes: '请勿搓揉',
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
id: 'blood',
|
|
163
|
-
name: '血液',
|
|
164
|
-
protocols: {
|
|
165
|
-
natural: {
|
|
166
|
-
agentId: 'enzyme',
|
|
167
|
-
temperature: '冷水性能',
|
|
168
|
-
method: '先用盐水浸泡,再使用酶制剂',
|
|
169
|
-
},
|
|
170
|
-
synthetic: { agentId: 'enzyme', temperature: '冷水性能', method: '直接涂抹' },
|
|
171
|
-
delicate: {
|
|
172
|
-
agentId: 'vinegar',
|
|
173
|
-
temperature: '冷水性能',
|
|
174
|
-
method: '立即冲洗,避免受热',
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
id: 'grease',
|
|
180
|
-
name: '油脂 / 机油',
|
|
181
|
-
protocols: {
|
|
182
|
-
natural: {
|
|
183
|
-
agentId: 'isopropyl',
|
|
184
|
-
temperature: '40°C',
|
|
185
|
-
method: '先用酒精溶解,再进行洗涤',
|
|
186
|
-
},
|
|
187
|
-
synthetic: {
|
|
188
|
-
agentId: 'isopropyl',
|
|
189
|
-
temperature: '40°C',
|
|
190
|
-
method: '污渍下方垫吸水纸',
|
|
191
|
-
},
|
|
192
|
-
delicate: { agentId: 'isopropyl', temperature: '冷水性能', method: '将酒精稀释至 50%' },
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
id: 'ink',
|
|
197
|
-
name: '墨水 / 马克笔',
|
|
198
|
-
protocols: {
|
|
199
|
-
natural: {
|
|
200
|
-
agentId: 'isopropyl',
|
|
201
|
-
temperature: '室温',
|
|
202
|
-
method: '由外向内点蘸吸附',
|
|
203
|
-
},
|
|
204
|
-
synthetic: {
|
|
205
|
-
agentId: 'isopropyl',
|
|
206
|
-
temperature: '室温',
|
|
207
|
-
method: '需特别小心污渍扩散',
|
|
208
|
-
},
|
|
209
|
-
delicate: {
|
|
210
|
-
agentId: 'isopropyl',
|
|
211
|
-
temperature: '冷水性能',
|
|
212
|
-
method: '稀释并先在隐蔽处测试',
|
|
213
|
-
},
|
|
214
|
-
},
|
|
215
|
-
},
|
|
216
|
-
],
|
|
217
|
-
},
|
|
218
|
-
seo: [
|
|
219
|
-
{
|
|
220
|
-
type: 'title',
|
|
221
|
-
text: '纺织品清洁背后的化学原理',
|
|
222
|
-
level: 2,
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
type: 'paragraph',
|
|
226
|
-
html: '并非所有污渍都是一样的,不同纤维对同一化学药剂的反应也不尽相同。拯救一件衣物还是彻底毁掉它,关键在于理解污渍的分子本质和纤维结构。',
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
type: 'card',
|
|
230
|
-
title: '01: 受控氧化',
|
|
231
|
-
icon: 'mdi:atom',
|
|
232
|
-
html: '<strong>过碳酸钠</strong>释放出的活性氧能断裂发色团(污渍颜色的来源分子)的双键,使其变得无色并可溶于水。这是处理有机污渍最有效的方法。',
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
type: 'card',
|
|
236
|
-
title: '02: 溶剂增溶',
|
|
237
|
-
icon: 'mdi:flask-outline',
|
|
238
|
-
html: '油渍或墨水等污渍不溶于水。<strong>异丙基酒精</strong>或<strong>丙酮</strong>等溶剂能降低表面张力并吸引污渍中的非极性分子,使它们能够转移至承载媒介上。',
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
type: 'title',
|
|
242
|
-
text: '纤维的主宰:为什么材质很重要',
|
|
243
|
-
level: 2,
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
type: 'paragraph',
|
|
247
|
-
html: '并非所有纤维都能经受同样的"侵蚀"。<strong>真丝和羊毛</strong>属于蛋白质(丝蛋白和角蛋白)。如果你盲目使用专为"吞噬蛋白质"(用于处理血渍或蛋渍)设计的酶促洗涤剂,它会开始降解纤维本身,从而破坏织物的光泽和结构。',
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
type: 'title',
|
|
251
|
-
text: '热量的危险性',
|
|
252
|
-
level: 2,
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
type: 'paragraph',
|
|
256
|
-
html: '最常见的错误之一是使用热水来"软化"血渍。从化学角度看,热量会导致污渍中的<strong>蛋白质凝固</strong>,从而使其永久固定在纤维的多孔结构中。蛋白质类污渍必须始终使用冷水处理。',
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
type: 'tip',
|
|
260
|
-
title: '紧急处理方案:红酒渍',
|
|
261
|
-
html: '<strong>A. 被动吸附:</strong>用吸水纸点蘸,严禁搓揉以防污渍发生机械性扩散。<br><strong>B. 渗透中和:</strong>覆盖细盐以将液体从纤维核心引出。<br><strong>C. 化学作用:</strong>如果纤维耐热,可使用 40°C 的过碳酸盐水糊。',
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
type: 'title',
|
|
265
|
-
text: '专用溶剂与预防措施',
|
|
266
|
-
level: 2,
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
type: 'paragraph',
|
|
270
|
-
html: '<strong>丙酮</strong>是处理指甲油或胶水的绝佳溶剂,但会对<strong>醋酯纤维</strong>产生毁灭性打击。由于此类纤维源自纤维素但经过了化学处理,丙酮会直接溶解织物。',
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
type: 'paragraph',
|
|
274
|
-
html: '<strong>异丙基酒精</strong>相对更稳定,但在染色的合成纤维上可能会带走色素本身。我们建议在正式处理前,始终先在"内锁边"等隐蔽区域进行测试。',
|
|
275
|
-
},
|
|
276
|
-
],
|
|
277
|
-
faq: faqData,
|
|
278
|
-
bibliography: bibliography,
|
|
279
|
-
howTo: howToData,
|
|
280
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
281
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
import type { StainChemistryUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'stain-chemical-protocol';
|
|
7
|
+
const title = '纺织品除渍化学方案';
|
|
8
|
+
const description = '根据纤维类型和污渍的化学性质,提供科学的去污方案。过碳酸盐、酶、溶剂:为每种情况提供正确的方法。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '我可以用漂白水代替过碳酸钠吗?',
|
|
13
|
+
answer:
|
|
14
|
+
'漂白水(次氯酸钠)具有高度腐蚀性。它会降解纤维,使衣物变黄变脆。过碳酸盐通过活性氧进行漂白,能在保护纤维自然分子结构的同时达到去污效果。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '为什么醋有助于除味?',
|
|
18
|
+
answer: '由于人体的异味通常呈碱性,醋中的乙酸能中和这些异味,将其转化为无味的盐类,从而在漂洗过程中彻底清除。',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
question: '处理血渍一定要用冷水吗?',
|
|
22
|
+
answer:
|
|
23
|
+
'是的。热量会使血红蛋白凝固,从而使其永久固定在纤维上。冷水能保持污渍处于可溶状态,有利于酶制剂发挥作用。',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
question: '如果我把丙酮用在醋酯纤维(acetate)衣物上会怎样?',
|
|
27
|
+
answer:
|
|
28
|
+
'丙酮会溶解三醋酯纤维和醋酯纤维。醋酯纤维是纤维素与乙酸酯化而成的,完全溶于丙酮。使用丙酮会导致织物发生不可逆的损毁。',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{
|
|
34
|
+
name: '确认纤维类型',
|
|
35
|
+
text: '查看衣物洗涤标签,确认是天然纤维、合成纤维还是高档动物纤维(羊毛、真丝、羊绒)。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '在工具中选择纤维',
|
|
39
|
+
text: '在第一个选项中选择对应的材质。',
|
|
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,
|
|
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,
|
|
78
|
+
applicationCategory: 'UtilityApplication',
|
|
79
|
+
operatingSystem: 'All',
|
|
80
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
81
|
+
inLanguage: 'zh',
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const content: ToolLocaleContent<StainChemistryUI> = {
|
|
85
|
+
slug,
|
|
86
|
+
title,
|
|
87
|
+
description,
|
|
88
|
+
ui: {
|
|
89
|
+
toolTitle: '除渍化学方案',
|
|
90
|
+
fiberLabel: '1. 纤维',
|
|
91
|
+
selectFiberPlaceholder: '选择织物材质...',
|
|
92
|
+
stainLabel: '2. 污渍',
|
|
93
|
+
selectStainPlaceholder: '发生了什么?',
|
|
94
|
+
molecularDiagnosis: '分子诊断',
|
|
95
|
+
requiredAgent: '所需药剂',
|
|
96
|
+
thermalCondition: '温度条件',
|
|
97
|
+
temperature: '温度',
|
|
98
|
+
cleaningInstructions: '清洗说明',
|
|
99
|
+
criticalWarning: '关键警示',
|
|
100
|
+
criticalWarningLabel: '警告',
|
|
101
|
+
technicalNote: '技术注释',
|
|
102
|
+
technicalNoteText: '在进行完整化学预处理前,请务必在衣物隐蔽处进行色牢度测试。',
|
|
103
|
+
systemDiagnosis: '诊断系统',
|
|
104
|
+
systemDiagnosisDesc: '配置纺织品参数以获取清洗路线图',
|
|
105
|
+
delicatePercarbonateWarning: '存在分子降解风险。动物纤维对过碳酸盐高度敏感。请在不显眼处进行测试。',
|
|
106
|
+
fiberData: {
|
|
107
|
+
cotton: { name: '棉', family: 'natural', isNoble: false },
|
|
108
|
+
linen: { name: '亚麻', family: 'natural', isNoble: true },
|
|
109
|
+
wool: { name: '羊毛 / 美利奴', family: 'natural', isNoble: true },
|
|
110
|
+
silk: { name: '真丝', family: 'natural', isNoble: true },
|
|
111
|
+
cashmere: { name: '羊绒', family: 'natural', isNoble: true },
|
|
112
|
+
mohair: { name: '马海毛', family: 'natural', isNoble: true },
|
|
113
|
+
angora: { name: '安哥拉兔毛', family: 'natural', isNoble: true },
|
|
114
|
+
alpaca: { name: '羊驼毛', family: 'natural', isNoble: true },
|
|
115
|
+
polyester: { name: '聚酯纤维(涤纶)', family: 'synthetic', isNoble: false },
|
|
116
|
+
viscose: { name: '粘胶纤维 / 人造丝', family: 'artificial', isNoble: false },
|
|
117
|
+
nylon: { name: '尼龙(聚酰胺纤维)', family: 'synthetic', isNoble: false },
|
|
118
|
+
acrylic: { name: '腈纶', family: 'synthetic', isNoble: false },
|
|
119
|
+
},
|
|
120
|
+
agents: {
|
|
121
|
+
percarbonte: {
|
|
122
|
+
name: '过碳酸钠',
|
|
123
|
+
description: '可生物降解的氧系漂白剂。溶解时释放活性氧。',
|
|
124
|
+
warning: '避免在高浓度下用于蛋白质纤维(真丝、羊毛)。',
|
|
125
|
+
},
|
|
126
|
+
isopropyl: {
|
|
127
|
+
name: '异丙基酒精',
|
|
128
|
+
description: '针对色素和轻度油脂的有效溶剂。',
|
|
129
|
+
warning: '如果不稀释,可能会损伤真丝光泽或溶解某些腈纶织物。',
|
|
130
|
+
},
|
|
131
|
+
acetone: {
|
|
132
|
+
name: '丙酮',
|
|
133
|
+
description: '针对漆类和胶水的强力溶剂。',
|
|
134
|
+
warning: '严禁用于醋酯纤维和三醋酯纤维(会溶解纤维)。',
|
|
135
|
+
},
|
|
136
|
+
enzyme: {
|
|
137
|
+
name: '酶促洗涤剂',
|
|
138
|
+
description: '含有能够分解生物污渍的蛋白酶。',
|
|
139
|
+
warning: '在羊毛和真丝(本身也是蛋白质)上使用时需谨慎。',
|
|
140
|
+
},
|
|
141
|
+
vinegar: {
|
|
142
|
+
name: '白醋',
|
|
143
|
+
description: '用于中和异味和固色的温和乙酸。',
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
stains: [
|
|
147
|
+
{
|
|
148
|
+
id: 'wine',
|
|
149
|
+
name: '红酒 / 水果',
|
|
150
|
+
protocols: {
|
|
151
|
+
natural: { agentId: 'percarbonate', temperature: '40-60°C', method: '长时间浸泡' },
|
|
152
|
+
synthetic: { agentId: 'percarbonate', temperature: '40°C', method: '直接涂抹糊状物' },
|
|
153
|
+
delicate: {
|
|
154
|
+
agentId: 'vinegar',
|
|
155
|
+
temperature: '冷水性能',
|
|
156
|
+
method: '用苏打水和醋冲洗',
|
|
157
|
+
notes: '请勿搓揉',
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: 'blood',
|
|
163
|
+
name: '血液',
|
|
164
|
+
protocols: {
|
|
165
|
+
natural: {
|
|
166
|
+
agentId: 'enzyme',
|
|
167
|
+
temperature: '冷水性能',
|
|
168
|
+
method: '先用盐水浸泡,再使用酶制剂',
|
|
169
|
+
},
|
|
170
|
+
synthetic: { agentId: 'enzyme', temperature: '冷水性能', method: '直接涂抹' },
|
|
171
|
+
delicate: {
|
|
172
|
+
agentId: 'vinegar',
|
|
173
|
+
temperature: '冷水性能',
|
|
174
|
+
method: '立即冲洗,避免受热',
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: 'grease',
|
|
180
|
+
name: '油脂 / 机油',
|
|
181
|
+
protocols: {
|
|
182
|
+
natural: {
|
|
183
|
+
agentId: 'isopropyl',
|
|
184
|
+
temperature: '40°C',
|
|
185
|
+
method: '先用酒精溶解,再进行洗涤',
|
|
186
|
+
},
|
|
187
|
+
synthetic: {
|
|
188
|
+
agentId: 'isopropyl',
|
|
189
|
+
temperature: '40°C',
|
|
190
|
+
method: '污渍下方垫吸水纸',
|
|
191
|
+
},
|
|
192
|
+
delicate: { agentId: 'isopropyl', temperature: '冷水性能', method: '将酒精稀释至 50%' },
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: 'ink',
|
|
197
|
+
name: '墨水 / 马克笔',
|
|
198
|
+
protocols: {
|
|
199
|
+
natural: {
|
|
200
|
+
agentId: 'isopropyl',
|
|
201
|
+
temperature: '室温',
|
|
202
|
+
method: '由外向内点蘸吸附',
|
|
203
|
+
},
|
|
204
|
+
synthetic: {
|
|
205
|
+
agentId: 'isopropyl',
|
|
206
|
+
temperature: '室温',
|
|
207
|
+
method: '需特别小心污渍扩散',
|
|
208
|
+
},
|
|
209
|
+
delicate: {
|
|
210
|
+
agentId: 'isopropyl',
|
|
211
|
+
temperature: '冷水性能',
|
|
212
|
+
method: '稀释并先在隐蔽处测试',
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
seo: [
|
|
219
|
+
{
|
|
220
|
+
type: 'title',
|
|
221
|
+
text: '纺织品清洁背后的化学原理',
|
|
222
|
+
level: 2,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
type: 'paragraph',
|
|
226
|
+
html: '并非所有污渍都是一样的,不同纤维对同一化学药剂的反应也不尽相同。拯救一件衣物还是彻底毁掉它,关键在于理解污渍的分子本质和纤维结构。',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'card',
|
|
230
|
+
title: '01: 受控氧化',
|
|
231
|
+
icon: 'mdi:atom',
|
|
232
|
+
html: '<strong>过碳酸钠</strong>释放出的活性氧能断裂发色团(污渍颜色的来源分子)的双键,使其变得无色并可溶于水。这是处理有机污渍最有效的方法。',
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
type: 'card',
|
|
236
|
+
title: '02: 溶剂增溶',
|
|
237
|
+
icon: 'mdi:flask-outline',
|
|
238
|
+
html: '油渍或墨水等污渍不溶于水。<strong>异丙基酒精</strong>或<strong>丙酮</strong>等溶剂能降低表面张力并吸引污渍中的非极性分子,使它们能够转移至承载媒介上。',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
type: 'title',
|
|
242
|
+
text: '纤维的主宰:为什么材质很重要',
|
|
243
|
+
level: 2,
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: 'paragraph',
|
|
247
|
+
html: '并非所有纤维都能经受同样的"侵蚀"。<strong>真丝和羊毛</strong>属于蛋白质(丝蛋白和角蛋白)。如果你盲目使用专为"吞噬蛋白质"(用于处理血渍或蛋渍)设计的酶促洗涤剂,它会开始降解纤维本身,从而破坏织物的光泽和结构。',
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
type: 'title',
|
|
251
|
+
text: '热量的危险性',
|
|
252
|
+
level: 2,
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
type: 'paragraph',
|
|
256
|
+
html: '最常见的错误之一是使用热水来"软化"血渍。从化学角度看,热量会导致污渍中的<strong>蛋白质凝固</strong>,从而使其永久固定在纤维的多孔结构中。蛋白质类污渍必须始终使用冷水处理。',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
type: 'tip',
|
|
260
|
+
title: '紧急处理方案:红酒渍',
|
|
261
|
+
html: '<strong>A. 被动吸附:</strong>用吸水纸点蘸,严禁搓揉以防污渍发生机械性扩散。<br><strong>B. 渗透中和:</strong>覆盖细盐以将液体从纤维核心引出。<br><strong>C. 化学作用:</strong>如果纤维耐热,可使用 40°C 的过碳酸盐水糊。',
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
type: 'title',
|
|
265
|
+
text: '专用溶剂与预防措施',
|
|
266
|
+
level: 2,
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
type: 'paragraph',
|
|
270
|
+
html: '<strong>丙酮</strong>是处理指甲油或胶水的绝佳溶剂,但会对<strong>醋酯纤维</strong>产生毁灭性打击。由于此类纤维源自纤维素但经过了化学处理,丙酮会直接溶解织物。',
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
type: 'paragraph',
|
|
274
|
+
html: '<strong>异丙基酒精</strong>相对更稳定,但在染色的合成纤维上可能会带走色素本身。我们建议在正式处理前,始终先在"内锁边"等隐蔽区域进行测试。',
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
faq: faqData,
|
|
278
|
+
bibliography: bibliography,
|
|
279
|
+
howTo: howToData,
|
|
280
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
281
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { stainChemistry } 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 stainChemistry.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 { stainChemistry } 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 stainChemistry.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|