@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,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는 필요한 염료나 매염제의 양을 계산하기 위한 표준 시스템입니다. 섬유의 건조 중량을 기준으로 합니다. 예를 들어, 양모 100g에 대해 양파 껍질 100% WOF란 100g의 양파 껍질이 필요함을 의미합니다.',
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: 'ko',
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: '이 섬유들은 금속에 대해 매우 높은 자연적 친화력을 가진 아미노산 사슬로 구성되어 있습니다. 열은 섬유의 비늘(스케일)을 열어 명반염이 깊숙이 침투하게 합니다. 부드러움을 유지하기 위한 산성 pH를 유지하기 위해 <strong>주석영(크림 오브 타르타르)</strong> 사용이 필수적입니다.',
120
- },
121
- {
122
- type: 'card',
123
- title: '셀룰로오스 섬유: 면 및 린넨',
124
- icon: 'mdi:leaf',
125
- html: '셀룰로오스는 쉽게 결합할 수 있는 자리가 적습니다. 그래서 우리는 <strong>2단계 프로토콜</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: '주석영 (크림 오브 타르타르)',
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을 넣으면 pH가 다음으로 상승:',
199
- lowerPrefix: '구연산 또는 식초를 추가하세요. 약',
200
- lowerSuffix: 'ml를 넣으면 pH가 다음으로 하락:',
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는 필요한 염료나 매염제의 양을 계산하기 위한 표준 시스템입니다. 섬유의 건조 중량을 기준으로 합니다. 예를 들어, 양모 100g에 대해 양파 껍질 100% WOF란 100g의 양파 껍질이 필요함을 의미합니다.',
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: 'ko',
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: '이 섬유들은 금속에 대해 매우 높은 자연적 친화력을 가진 아미노산 사슬로 구성되어 있습니다. 열은 섬유의 비늘(스케일)을 열어 명반염이 깊숙이 침투하게 합니다. 부드러움을 유지하기 위한 산성 pH를 유지하기 위해 <strong>주석영(크림 오브 타르타르)</strong> 사용이 필수적입니다.',
120
+ },
121
+ {
122
+ type: 'card',
123
+ title: '셀룰로오스 섬유: 면 및 린넨',
124
+ icon: 'mdi:leaf',
125
+ html: '셀룰로오스는 쉽게 결합할 수 있는 자리가 적습니다. 그래서 우리는 <strong>2단계 프로토콜</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: '주석영 (크림 오브 타르타르)',
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을 넣으면 pH가 다음으로 상승:',
199
+ lowerPrefix: '구연산 또는 식초를 추가하세요. 약',
200
+ lowerSuffix: 'ml를 넣으면 pH가 다음으로 하락:',
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
+ };