@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,296 +1,296 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import { bibliography } from '../bibliography';
4
- import type { YarnCalculatorUI } from '../ui';
5
-
6
- const slug = 'yarn-calculator';
7
- const title = '뜨개실 계산기: 실 몇 미터, 몇 볼이 필요할까요?';
8
- const description =
9
- '도안과 사이즈에 따라 대바늘 및 코바늘 프로젝트에 필요한 뜨개실(울, 실) 양을 미터 단위로 정확하게 계산해 드립니다.';
10
-
11
- const faqData = [
12
- {
13
- question: '코바늘(크로셰)이 대바늘(니팅)보다 실을 더 많이 쓰는 이유는 무엇인가요?',
14
- answer:
15
- '코바늘은 매듭과 겹쳐진 루프를 만드는 방식으로 작업하므로, 제곱센티미터당 편물이 더 조밀하고 두껍게 형성됩니다. 평균적으로 코바늘 프로젝트는 동일한 프로젝트를 대바늘(메리야스 뜨기)로 뜰 때보다 실 소비량이 약 25%에서 35% 정도 더 많습니다.',
16
- },
17
- {
18
- question: '서로 다른 염색 로트(Dye Lot)의 실을 사면 어떻게 되나요?',
19
- answer:
20
- '매장에서는 색상이 같아 보이더라도, 염색 과정에서의 미세한 화학적 차이로 인해 완성된 편물에서 눈에 띄는 "줄(색 변화)"이 생길 수 있습니다. 로트 번호가 동일한지 확인하고 필요한 실을 한꺼번에 구매하는 것을 강력히 권장합니다.',
21
- },
22
- {
23
- question: '장력(게이지)이 최종 소비량에 어떤 영향을 미치나요?',
24
- answer:
25
- '느슨하게 뜰수록 한 코에 들어가는 실의 길이(미터)가 늘어납니다. 본인의 게이지가 도안에 적힌 것보다 큰 경우(예: 15코 기준인데 13코가 나오는 경우), 실 소비량은 상당히 늘어납니다. 사전에 게이지를 확인하는 것이 매우 중요합니다.',
26
- },
27
- {
28
- question: '실의 무게만 알고 있을 때 미터수는 어떻게 계산하나요?',
29
- answer:
30
- '길이(미터) 데이터 없이는 계산하기 어렵습니다. 대부분의 실 라벨에는 길이가 표시되어 있습니다. 표시가 없다면 Ravelry와 같은 데이터베이스에서 실 이름으로 검색하여 50g 또는 100g당 정확한 길이를 찾아보세요.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: '프로젝트 선택',
37
- text: '스웨터, 목도리, 모자, 양말, 담요 중에서 선택하여 특정 소비 기준 데이터를 불러옵니다.',
38
- },
39
- {
40
- name: '사이즈 및 실 두께 정의',
41
- text: '최종 치수(S, M, L, XL)와 사용할 실의 두께(Fingering, DK, Worsted, Bulky)를 입력합니다.',
42
- },
43
- {
44
- name: '보정값 활성화',
45
- text: '도안에 꽈배기(케이블)나 복잡한 무늬가 있다면 텍스처 스위치를 켜서 필요한 양을 추가합니다.',
46
- },
47
- {
48
- name: '구매 리스트 확인',
49
- text: '선택한 실 한 볼당 미터수를 입력하면 장바구니에 담아야 할 정확한 개수가 표시됩니다.',
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<YarnCalculatorUI> = {
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: '뜨개질 로지스틱스를 마스터하고 대바늘·코바늘용 정밀 기술 계산기로 실 부족을 방지하세요. 뜨개질하는 사람들에게 가장 큰 공포 중 하나는 <strong>"얀 치킨(Yarn Chicken)"</strong>입니다. 프로젝트의 막바지에 마지막 코를 막기 전에 실이 모자랄 것 같아 조마조마한 순간을 말하죠. 이 계산기는 산업 표준인 길이와 무게 데이터를 기반으로 예측치를 제공하기 위해 개발되었습니다.',
103
- },
104
- {
105
- type: 'stats',
106
- items: [
107
- { value: '+10%', label: '여유 마진', icon: 'mdi:security' },
108
- { value: '미터법', label: '미터 단위 계산', icon: 'mdi:ruler' },
109
- { value: '오프라인', label: '로컬 DB', icon: 'mdi:wifi-off' },
110
- ],
111
- columns: 3,
112
- },
113
- {
114
- type: 'title',
115
- text: '뜨개실 볼의 "무게"가 오해를 부르는 이유',
116
- level: 3,
117
- },
118
- {
119
- type: 'paragraph',
120
- html: '많은 초보자들이 실을 무게(예: "100g짜리 6볼")로만 사려고 하는 실수를 합니다. 하지만 무게는 질량의 단위이지 길이의 단위가 아닙니다. 똑같은 100g이라도 실의 종류에 따라 길이는 천차만별입니다. 예를 들어, 아주 두꺼운 <strong>Bulky</strong> 타입은 80미터 정도일 수 있는 반면, <strong>Fingering / Lace</strong> 타입은 같은 무게에서 450미터가 넘을 수도 있습니다.',
121
- },
122
- {
123
- type: 'paragraph',
124
- html: '따라서 저희 계산기는 항상 <strong>"총 미터수"</strong>를 우선시합니다. 본인의 사이즈와 프로젝트에 필요한 전체 길이가 얼마인지 알게 되면, 사용하려는 실 라벨에 적힌 길이로 나누어 구매해야 할 정확한 볼 개수를 도출해낼 수 있습니다.',
125
- },
126
- {
127
- type: 'title',
128
- text: '실 두께별 표준 미터수 차트',
129
- level: 3,
130
- },
131
- {
132
- type: 'paragraph',
133
- html: '라벨이 손에 없을 경우, 예측을 위해 이 수치들(섬유 100g당 기준)을 참고용으로 사용하세요:',
134
- },
135
- {
136
- type: 'table',
137
- headers: ['실 두께 (Weight)', '대략 미터수 / 100g', '권장 용도', '권장 바늘'],
138
- rows: [
139
- ['<strong>Lace / 0</strong>', '600 - 900m', '레이스 숄, 비침 무늬', '1.5 - 2.5mm'],
140
- ['<strong>Fingering / 1</strong>', '360 - 450m', '양말, 아기 옷', '2.25 - 3.25mm'],
141
- ['<strong>Sport / 2</strong>', '270 - 320m', '가벼운 자켓', '3.25 - 3.75mm'],
142
- ['<strong>DK / 3</strong>', '200 - 250m', '스웨터, 모자', '3.75 - 4.5mm'],
143
- ['<strong>Worsted / 4</strong>', '180 - 220m', '담요, 코트', '4.5 - 5.5mm'],
144
- ['<strong>Bulky / 5</strong>', '100 - 140m', '두꺼운 목도리, 무릎 담요', '6.0 - 8.0mm'],
145
- ],
146
- },
147
- {
148
- type: 'tip',
149
- title: '장력(Gauge)의 요소',
150
- html: '<p>느슨하게 뜰수록 편물이 커지고 촘촘하게 뜰 때보다 실을 더 많이 소비한다는 점을 기억하세요. 저희 계산기는 안전 마진을 적용하고 있지만, 본인의 장력이 유독 느슨하다면 결과값에 5-10% 정도를 더 추가하여 실 부족을 방지하는 것을 고려해 보세요.</p>',
151
- },
152
- {
153
- type: 'title',
154
- text: '실 소비량을 늘리는 변수들',
155
- level: 3,
156
- },
157
- {
158
- type: 'paragraph',
159
- html: '모든 뜨개 방법이 같은 양의 섬유를 소비하는 것은 아닙니다. 디자인을 선택할 때 다음 가산 요인들을 고려하세요:',
160
- },
161
- {
162
- type: 'comparative',
163
- items: [
164
- {
165
- title: '메리야스 뜨기 / 저지',
166
- description: '모든 의류에서 베이스가 되는 소비량이자 최고의 실 효율을 나타냅니다.',
167
- icon: 'mdi:minus-circle-outline',
168
- points: ['초보자에게 이상적', '편물의 자연스러운 드레이프'],
169
- },
170
- {
171
- title: '꽈배기 / 텍스처',
172
- description: '섬유를 교차시키면 편물의 가로폭이 줄어들며, 소비량은 약 25% 증가합니다.',
173
- icon: 'mdi:texture-box',
174
- points: ['더 많은 미터수 필요', '더 조밀하고 무거운 편물'],
175
- pointIcon: 'mdi:alert-circle-outline',
176
- },
177
- {
178
- title: '코바늘 (Crochet)',
179
- description: '코바늘 매듭은 대바늘 뜨기보다 실을 약 30% 더 많이 사용합니다.',
180
- icon: 'mdi:hook',
181
- points: ['빠른 실 소모', '입체적인 질감'],
182
- pointIcon: 'mdi:alert-circle-outline',
183
- },
184
- {
185
- title: '고무뜨기 (Ribbing)',
186
- description: '겉뜨기/안뜨기 구조로 인해 제곱센티미터당 실이 더 많이 들어갑니다.',
187
- icon: 'mdi:unfold-more-horizontal',
188
- points: ['중간 정도의 소비 (+15%)', '높은 신축 회복성'],
189
- },
190
- ],
191
- columns: 2,
192
- },
193
- {
194
- type: 'title',
195
- text: '준비성 철저한 니터를 위한 용어 사전',
196
- level: 3,
197
- },
198
- {
199
- type: 'glossary',
200
- items: [
201
- {
202
- term: '염색 로트 (Dye Lot)',
203
- definition:
204
- '실을 염색한 솥을 식별하는 번호. 로트가 다르면 실 뭉치 상태에서는 몰라도 완성작에서 미세한 색상 차이가 확연히 보일 수 있습니다.',
205
- },
206
- {
207
- term: '스태시 (Stash)',
208
- definition:
209
- '니터가 자택에 보유하고 있는 실 컬렉션. 라벨 없는 자투리 실 무게를 파악하는 것은 소품 프로젝트 계산에 꼭 필요합니다.',
210
- },
211
- {
212
- term: 'Put-up',
213
- definition:
214
- '실이 말려 있는 형태(타래, 볼, 콘 등). 사용 전에 실 감기 도구로 감아야 하는지 여부에 영향을 줍니다.',
215
- },
216
- {
217
- term: '얀 치킨 (Yarn Chicken)',
218
- definition:
219
- '부족해 보이는 양의 실로 편물의 한 구획을 완성하려고 도전하는 일.',
220
- },
221
- ],
222
- },
223
- {
224
- type: 'title',
225
- text: '이 계산기 결과 활용법',
226
- level: 3,
227
- },
228
- {
229
- type: 'paragraph',
230
- html: '도구에서 미터수와 볼 수가 산출되면 다음의 수동 확인 단계를 거치는 것을 권장합니다:',
231
- },
232
- {
233
- type: 'list',
234
- items: [
235
- '<strong>실제 실의 길이 확인:</strong> 모든 100g 볼이 200m인 것은 아닙니다. 라벨에서 이 데이터를 확인하여 최종 계산을 조정하세요.',
236
- '<strong>장식용 길이 추가:</strong> 목도리에 술을 달거나 모자에 방울을 달 예정이라면 총합에 50~80미터를 추가하세요.',
237
- '<strong>게이지 뜨기:</strong> 10x10 cm 샘플을 뜹니다. 정밀 저울로 무게를 재보세요. 만약 20g이고 담요 사이즈가 100x100(100개분)이라면 정확히 2kg의 실이 필요합니다.',
238
- '<strong>항상 같은 로트로 구매:</strong> 계산 결과가 7볼이라면, 로트 차이로 인한 색차이를 막고 잇기용 실을 고려하여 8볼을 구매하는 여유를 두세요.',
239
- ],
240
- },
241
- {
242
- type: 'summary',
243
- title: '실 구매를 위한 전략적 조언',
244
- items: [
245
- '필요한 길이를 확보하기 위해 그램수보다 미터수를 우선시하세요.',
246
- '코바늘은 대바늘보다 실 소비가 훨씬 많으므로 타입 선택을 적절히 조정하세요.',
247
- '조밀한 무늬(꽈배기)는 실 예산을 25% 정도 더 잡아야 합니다.',
248
- '추가 구매가 필요할 때를 대비해 로트 번호가 적힌 라벨을 하나씩 보관해두세요.',
249
- '반드시 떠야 하는 게이지용 편물을 고려해 10%의 여유 마진을 사용하세요.',
250
- ],
251
- },
252
- ],
253
- ui: {
254
- sectionProject: '1. 프로젝트 종류',
255
- sectionSize: '2. 치수 / 사이즈',
256
- sectionWeight: '3. 실 두께',
257
- sectionPattern: '4. 도안 특징',
258
- sectionBall: '5. 뜨개실 데이터',
259
- labelCables: '꽈배기나 조밀한 무늬가 있나요?',
260
- labelGrams: '그램 / 볼',
261
- labelMeters: '미터 / 볼',
262
- weightFine: '가는 실',
263
- weightMedium: '중간 실',
264
- weightThick: '굵은 실',
265
- weightXXL: '초극세사',
266
- projectSweater: '스웨터',
267
- projectScarf: '목도리',
268
- projectHat: '모자',
269
- projectSocks: '양말',
270
- projectBlanket: '담요',
271
- projectCardigan: '가디건',
272
- statPrefix: '예상 총 소비량',
273
- statSuffix: 'M',
274
- statNote: '10% 여유분을 포함하여 계산된 최종 미터수입니다.',
275
- ballsFormatSingular: '{n}볼 구매',
276
- ballsFormatPlural: '{n}볼 구매',
277
- ballsDetailFormat: '개당 {w}g / {m}m',
278
- alertTitle: '전략적 안전수칙:',
279
- alertText:
280
- '이 계산은 실 부족이 발생하지 않도록 이미 배려되어 있습니다. 구매 시 염색 로트(dye lot) 번호가 동일한지 확인하세요.',
281
- schemeSleeveLabel: '소매',
282
- schemeSleeveEach: '각',
283
- schemeBodyLabel: '몸판',
284
- schemeTotalHat: '모자 합계',
285
- schemeTotalFlat: '편물 합계',
286
- schemeTotalSocks: '한 켤레 합계',
287
- sizeLabels: {
288
- sweater: ['S', 'M', 'L', 'XL'],
289
- cardigan: ['S', 'M', 'L', 'XL'],
290
- hat: ['어린이', 'S', 'M', 'L'],
291
- scarf: ['미니', 'M', '대형', '맥시'],
292
- socks: ['어린이', '성인 S', '성인 M', '성인 L'],
293
- blanket: ['베이비', '쇼파용', '싱글', '퀸'],
294
- },
295
- },
296
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { YarnCalculatorUI } from '../ui';
5
+
6
+ const slug = 'yarn-calculator';
7
+ const title = '뜨개실 계산기: 실 몇 미터, 몇 볼이 필요할까요?';
8
+ const description =
9
+ '도안과 사이즈에 따라 대바늘 및 코바늘 프로젝트에 필요한 뜨개실(울, 실) 양을 미터 단위로 정확하게 계산해 드립니다.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: '코바늘(크로셰)이 대바늘(니팅)보다 실을 더 많이 쓰는 이유는 무엇인가요?',
14
+ answer:
15
+ '코바늘은 매듭과 겹쳐진 루프를 만드는 방식으로 작업하므로, 제곱센티미터당 편물이 더 조밀하고 두껍게 형성됩니다. 평균적으로 코바늘 프로젝트는 동일한 프로젝트를 대바늘(메리야스 뜨기)로 뜰 때보다 실 소비량이 약 25%에서 35% 정도 더 많습니다.',
16
+ },
17
+ {
18
+ question: '서로 다른 염색 로트(Dye Lot)의 실을 사면 어떻게 되나요?',
19
+ answer:
20
+ '매장에서는 색상이 같아 보이더라도, 염색 과정에서의 미세한 화학적 차이로 인해 완성된 편물에서 눈에 띄는 "줄(색 변화)"이 생길 수 있습니다. 로트 번호가 동일한지 확인하고 필요한 실을 한꺼번에 구매하는 것을 강력히 권장합니다.',
21
+ },
22
+ {
23
+ question: '장력(게이지)이 최종 소비량에 어떤 영향을 미치나요?',
24
+ answer:
25
+ '느슨하게 뜰수록 한 코에 들어가는 실의 길이(미터)가 늘어납니다. 본인의 게이지가 도안에 적힌 것보다 큰 경우(예: 15코 기준인데 13코가 나오는 경우), 실 소비량은 상당히 늘어납니다. 사전에 게이지를 확인하는 것이 매우 중요합니다.',
26
+ },
27
+ {
28
+ question: '실의 무게만 알고 있을 때 미터수는 어떻게 계산하나요?',
29
+ answer:
30
+ '길이(미터) 데이터 없이는 계산하기 어렵습니다. 대부분의 실 라벨에는 길이가 표시되어 있습니다. 표시가 없다면 Ravelry와 같은 데이터베이스에서 실 이름으로 검색하여 50g 또는 100g당 정확한 길이를 찾아보세요.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: '프로젝트 선택',
37
+ text: '스웨터, 목도리, 모자, 양말, 담요 중에서 선택하여 특정 소비 기준 데이터를 불러옵니다.',
38
+ },
39
+ {
40
+ name: '사이즈 및 실 두께 정의',
41
+ text: '최종 치수(S, M, L, XL)와 사용할 실의 두께(Fingering, DK, Worsted, Bulky)를 입력합니다.',
42
+ },
43
+ {
44
+ name: '보정값 활성화',
45
+ text: '도안에 꽈배기(케이블)나 복잡한 무늬가 있다면 텍스처 스위치를 켜서 필요한 양을 추가합니다.',
46
+ },
47
+ {
48
+ name: '구매 리스트 확인',
49
+ text: '선택한 실 한 볼당 미터수를 입력하면 장바구니에 담아야 할 정확한 개수가 표시됩니다.',
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<YarnCalculatorUI> = {
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: '뜨개질 로지스틱스를 마스터하고 대바늘·코바늘용 정밀 기술 계산기로 실 부족을 방지하세요. 뜨개질하는 사람들에게 가장 큰 공포 중 하나는 <strong>"얀 치킨(Yarn Chicken)"</strong>입니다. 프로젝트의 막바지에 마지막 코를 막기 전에 실이 모자랄 것 같아 조마조마한 순간을 말하죠. 이 계산기는 산업 표준인 길이와 무게 데이터를 기반으로 예측치를 제공하기 위해 개발되었습니다.',
103
+ },
104
+ {
105
+ type: 'stats',
106
+ items: [
107
+ { value: '+10%', label: '여유 마진', icon: 'mdi:security' },
108
+ { value: '미터법', label: '미터 단위 계산', icon: 'mdi:ruler' },
109
+ { value: '오프라인', label: '로컬 DB', icon: 'mdi:wifi-off' },
110
+ ],
111
+ columns: 3,
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: '뜨개실 볼의 "무게"가 오해를 부르는 이유',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: '많은 초보자들이 실을 무게(예: "100g짜리 6볼")로만 사려고 하는 실수를 합니다. 하지만 무게는 질량의 단위이지 길이의 단위가 아닙니다. 똑같은 100g이라도 실의 종류에 따라 길이는 천차만별입니다. 예를 들어, 아주 두꺼운 <strong>Bulky</strong> 타입은 80미터 정도일 수 있는 반면, <strong>Fingering / Lace</strong> 타입은 같은 무게에서 450미터가 넘을 수도 있습니다.',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: '따라서 저희 계산기는 항상 <strong>"총 미터수"</strong>를 우선시합니다. 본인의 사이즈와 프로젝트에 필요한 전체 길이가 얼마인지 알게 되면, 사용하려는 실 라벨에 적힌 길이로 나누어 구매해야 할 정확한 볼 개수를 도출해낼 수 있습니다.',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: '실 두께별 표준 미터수 차트',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '라벨이 손에 없을 경우, 예측을 위해 이 수치들(섬유 100g당 기준)을 참고용으로 사용하세요:',
134
+ },
135
+ {
136
+ type: 'table',
137
+ headers: ['실 두께 (Weight)', '대략 미터수 / 100g', '권장 용도', '권장 바늘'],
138
+ rows: [
139
+ ['<strong>Lace / 0</strong>', '600 - 900m', '레이스 숄, 비침 무늬', '1.5 - 2.5mm'],
140
+ ['<strong>Fingering / 1</strong>', '360 - 450m', '양말, 아기 옷', '2.25 - 3.25mm'],
141
+ ['<strong>Sport / 2</strong>', '270 - 320m', '가벼운 자켓', '3.25 - 3.75mm'],
142
+ ['<strong>DK / 3</strong>', '200 - 250m', '스웨터, 모자', '3.75 - 4.5mm'],
143
+ ['<strong>Worsted / 4</strong>', '180 - 220m', '담요, 코트', '4.5 - 5.5mm'],
144
+ ['<strong>Bulky / 5</strong>', '100 - 140m', '두꺼운 목도리, 무릎 담요', '6.0 - 8.0mm'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'tip',
149
+ title: '장력(Gauge)의 요소',
150
+ html: '<p>느슨하게 뜰수록 편물이 커지고 촘촘하게 뜰 때보다 실을 더 많이 소비한다는 점을 기억하세요. 저희 계산기는 안전 마진을 적용하고 있지만, 본인의 장력이 유독 느슨하다면 결과값에 5-10% 정도를 더 추가하여 실 부족을 방지하는 것을 고려해 보세요.</p>',
151
+ },
152
+ {
153
+ type: 'title',
154
+ text: '실 소비량을 늘리는 변수들',
155
+ level: 3,
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: '모든 뜨개 방법이 같은 양의 섬유를 소비하는 것은 아닙니다. 디자인을 선택할 때 다음 가산 요인들을 고려하세요:',
160
+ },
161
+ {
162
+ type: 'comparative',
163
+ items: [
164
+ {
165
+ title: '메리야스 뜨기 / 저지',
166
+ description: '모든 의류에서 베이스가 되는 소비량이자 최고의 실 효율을 나타냅니다.',
167
+ icon: 'mdi:minus-circle-outline',
168
+ points: ['초보자에게 이상적', '편물의 자연스러운 드레이프'],
169
+ },
170
+ {
171
+ title: '꽈배기 / 텍스처',
172
+ description: '섬유를 교차시키면 편물의 가로폭이 줄어들며, 소비량은 약 25% 증가합니다.',
173
+ icon: 'mdi:texture-box',
174
+ points: ['더 많은 미터수 필요', '더 조밀하고 무거운 편물'],
175
+ pointIcon: 'mdi:alert-circle-outline',
176
+ },
177
+ {
178
+ title: '코바늘 (Crochet)',
179
+ description: '코바늘 매듭은 대바늘 뜨기보다 실을 약 30% 더 많이 사용합니다.',
180
+ icon: 'mdi:hook',
181
+ points: ['빠른 실 소모', '입체적인 질감'],
182
+ pointIcon: 'mdi:alert-circle-outline',
183
+ },
184
+ {
185
+ title: '고무뜨기 (Ribbing)',
186
+ description: '겉뜨기/안뜨기 구조로 인해 제곱센티미터당 실이 더 많이 들어갑니다.',
187
+ icon: 'mdi:unfold-more-horizontal',
188
+ points: ['중간 정도의 소비 (+15%)', '높은 신축 회복성'],
189
+ },
190
+ ],
191
+ columns: 2,
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: '준비성 철저한 니터를 위한 용어 사전',
196
+ level: 3,
197
+ },
198
+ {
199
+ type: 'glossary',
200
+ items: [
201
+ {
202
+ term: '염색 로트 (Dye Lot)',
203
+ definition:
204
+ '실을 염색한 솥을 식별하는 번호. 로트가 다르면 실 뭉치 상태에서는 몰라도 완성작에서 미세한 색상 차이가 확연히 보일 수 있습니다.',
205
+ },
206
+ {
207
+ term: '스태시 (Stash)',
208
+ definition:
209
+ '니터가 자택에 보유하고 있는 실 컬렉션. 라벨 없는 자투리 실 무게를 파악하는 것은 소품 프로젝트 계산에 꼭 필요합니다.',
210
+ },
211
+ {
212
+ term: 'Put-up',
213
+ definition:
214
+ '실이 말려 있는 형태(타래, 볼, 콘 등). 사용 전에 실 감기 도구로 감아야 하는지 여부에 영향을 줍니다.',
215
+ },
216
+ {
217
+ term: '얀 치킨 (Yarn Chicken)',
218
+ definition:
219
+ '부족해 보이는 양의 실로 편물의 한 구획을 완성하려고 도전하는 일.',
220
+ },
221
+ ],
222
+ },
223
+ {
224
+ type: 'title',
225
+ text: '이 계산기 결과 활용법',
226
+ level: 3,
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: '도구에서 미터수와 볼 수가 산출되면 다음의 수동 확인 단계를 거치는 것을 권장합니다:',
231
+ },
232
+ {
233
+ type: 'list',
234
+ items: [
235
+ '<strong>실제 실의 길이 확인:</strong> 모든 100g 볼이 200m인 것은 아닙니다. 라벨에서 이 데이터를 확인하여 최종 계산을 조정하세요.',
236
+ '<strong>장식용 길이 추가:</strong> 목도리에 술을 달거나 모자에 방울을 달 예정이라면 총합에 50~80미터를 추가하세요.',
237
+ '<strong>게이지 뜨기:</strong> 10x10 cm 샘플을 뜹니다. 정밀 저울로 무게를 재보세요. 만약 20g이고 담요 사이즈가 100x100(100개분)이라면 정확히 2kg의 실이 필요합니다.',
238
+ '<strong>항상 같은 로트로 구매:</strong> 계산 결과가 7볼이라면, 로트 차이로 인한 색차이를 막고 잇기용 실을 고려하여 8볼을 구매하는 여유를 두세요.',
239
+ ],
240
+ },
241
+ {
242
+ type: 'summary',
243
+ title: '실 구매를 위한 전략적 조언',
244
+ items: [
245
+ '필요한 길이를 확보하기 위해 그램수보다 미터수를 우선시하세요.',
246
+ '코바늘은 대바늘보다 실 소비가 훨씬 많으므로 타입 선택을 적절히 조정하세요.',
247
+ '조밀한 무늬(꽈배기)는 실 예산을 25% 정도 더 잡아야 합니다.',
248
+ '추가 구매가 필요할 때를 대비해 로트 번호가 적힌 라벨을 하나씩 보관해두세요.',
249
+ '반드시 떠야 하는 게이지용 편물을 고려해 10%의 여유 마진을 사용하세요.',
250
+ ],
251
+ },
252
+ ],
253
+ ui: {
254
+ sectionProject: '1. 프로젝트 종류',
255
+ sectionSize: '2. 치수 / 사이즈',
256
+ sectionWeight: '3. 실 두께',
257
+ sectionPattern: '4. 도안 특징',
258
+ sectionBall: '5. 뜨개실 데이터',
259
+ labelCables: '꽈배기나 조밀한 무늬가 있나요?',
260
+ labelGrams: '그램 / 볼',
261
+ labelMeters: '미터 / 볼',
262
+ weightFine: '가는 실',
263
+ weightMedium: '중간 실',
264
+ weightThick: '굵은 실',
265
+ weightXXL: '초극세사',
266
+ projectSweater: '스웨터',
267
+ projectScarf: '목도리',
268
+ projectHat: '모자',
269
+ projectSocks: '양말',
270
+ projectBlanket: '담요',
271
+ projectCardigan: '가디건',
272
+ statPrefix: '예상 총 소비량',
273
+ statSuffix: 'M',
274
+ statNote: '10% 여유분을 포함하여 계산된 최종 미터수입니다.',
275
+ ballsFormatSingular: '{n}볼 구매',
276
+ ballsFormatPlural: '{n}볼 구매',
277
+ ballsDetailFormat: '개당 {w}g / {m}m',
278
+ alertTitle: '전략적 안전수칙:',
279
+ alertText:
280
+ '이 계산은 실 부족이 발생하지 않도록 이미 배려되어 있습니다. 구매 시 염색 로트(dye lot) 번호가 동일한지 확인하세요.',
281
+ schemeSleeveLabel: '소매',
282
+ schemeSleeveEach: '각',
283
+ schemeBodyLabel: '몸판',
284
+ schemeTotalHat: '모자 합계',
285
+ schemeTotalFlat: '편물 합계',
286
+ schemeTotalSocks: '한 켤레 합계',
287
+ sizeLabels: {
288
+ sweater: ['S', 'M', 'L', 'XL'],
289
+ cardigan: ['S', 'M', 'L', 'XL'],
290
+ hat: ['어린이', 'S', 'M', 'L'],
291
+ scarf: ['미니', 'M', '대형', '맥시'],
292
+ socks: ['어린이', '성인 S', '성인 M', '성인 L'],
293
+ blanket: ['베이비', '쇼파용', '싱글', '퀸'],
294
+ },
295
+ },
296
+ };