@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,236 +1,236 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import { bibliography } from '../bibliography';
4
- import type { FabricProjectCalculatorUI } from '../ui';
5
-
6
- const slug = 'fabric-project-calculator';
7
- const title = '품목별 원단 소요량 계산기';
8
- const description =
9
- '스커트, 바지, 원피스, 셔츠 제작 시 필요한 원단 양을 간단하게 계산하세요. 원단 폭과 사이즈에 맞춘 전문적인 재단 플랜을 제안합니다.';
10
-
11
- const faqData = [
12
- {
13
- question: '스커트를 만드는 데 원단이 얼마나 필요한가요?',
14
- answer:
15
- '원단 폭에 따라 다릅니다. 140-150cm 폭의 원단으로 기본 스커트를 만들 경우 보통 1.20m면 충분합니다. 90-110cm 폭인 경우 2.00m가 필요합니다.',
16
- },
17
- {
18
- question: '원단 폭이 소요량에 어떤 영향을 주나요?',
19
- answer:
20
- '원단 폭이 좁으면 패턴 조각들을 옆으로 나란히 배치할 수 없기 때문에, 조각들을 세로로 배치해야 하므로 보통 두 배의 길이가 필요하게 됩니다.',
21
- },
22
- {
23
- question: '원단을 여유 있게 사는 것이 좋나요?',
24
- answer:
25
- '네, 세탁 후 수축이나 원단 결함, 예상치 못한 시접 등을 고려하여 10%(약 20cm) 정도의 여유를 두는 것이 권장됩니다.',
26
- },
27
- {
28
- question: '푸서(식서) 방향이란 무엇이며 왜 중요한가요?',
29
- answer:
30
- '원단의 변두리(식서)와 평행한 방향을 말합니다. 옷을 입었을 때 형태가 뒤틀리지 않도록 패턴 조각들을 이 방향에 맞춰 배치해야 합니다.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: '의류 품목 선택',
37
- text: '제작하려는 모델(스커트, 바지 등)을 선택하여 기본 소요량 데이터를 불러옵니다.',
38
- },
39
- {
40
- name: '원단 폭 입력',
41
- text: '구매하시려는 원단의 식서에서 식서까지의 폭(90, 115, 140, 150cm)을 측정합니다.',
42
- },
43
- {
44
- name: '사이즈 선택',
45
- text: '사이즈(XS-S, M-L, XL-XXL)에 맞춰 품목의 볼륨을 조절하고 소요량 상수를 재계산합니다.',
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<FabricProjectCalculatorUI> = {
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: '재봉실에서 가장 많이 겪는 고민 중 하나는 특정 프로젝트를 위해 원단을 얼마나 사야 할지 결정하는 것입니다. 원단 소요량은 의류의 디자인, 제작 사이즈, 그리고 무엇보다 원단의 폭(주로 90cm~150cm)이라는 세 가지 요소에 의해 크게 좌우됩니다. 이 계산기는 원단을 너무 많이 사거나 재단 도중에 부족해지는 일을 방지하기 위해 계산을 체계화했습니다.',
103
- },
104
- {
105
- type: 'title',
106
- text: '원피스나 바지에는 원단이 얼마나 필요한가요?',
107
- level: 3,
108
- },
109
- {
110
- type: 'paragraph',
111
- html: '전통적인 계산 방식은 의류의 길이에 소매 길이를 더하고, 안단과 밑단 여유분을 추가하는 것입니다. 하지만 원단 폭이 좁은 경우(90-110cm) 패턴 조각들을 나란히 놓을 수 없어 길이가 두 배로 필요하게 됩니다. 본 도구는 섬유 산업 표준에 따라 이러한 변수들을 자동으로 계산에 반영합니다.',
112
- },
113
- {
114
- type: 'title',
115
- text: '원단 폭별 추정 소요량 (M-L 사이즈 기준)',
116
- level: 3,
117
- },
118
- {
119
- type: 'list',
120
- items: [
121
- '<strong>기본 스커트:</strong> 90cm 폭에서 2.00m · 140/150cm 폭에서 1.20m',
122
- '<strong>긴 바지:</strong> 90cm 폭에서 2.50m · 140/150cm 폭에서 1.50m',
123
- '<strong>긴소매 셔츠:</strong> 90cm 폭에서 2.20m · 140/150cm 폭에서 1.40m',
124
- '<strong>기본 원피스:</strong> 90cm 폭에서 3.50m · 140/150cm 폭에서 2.20m',
125
- ],
126
- },
127
- {
128
- type: 'title',
129
- text: '원단 소요량에 영향을 주는 요인들',
130
- level: 3,
131
- },
132
- {
133
- type: 'list',
134
- items: [
135
- '<strong>무늬 방향 (리피트):</strong> 원단에 일정한 방향의 무늬나 체크무늬(무늬 맞춤이 필요한 경우)가 있다면 원단을 15%에서 20% 정도 더 준비해야 합니다.',
136
- '<strong>재단 방향 (바이어스):</strong> 바이어스 재단이나 풀 스커트(원형 스커트) 등은 각도 때문에 버려지는 부분이 많아 원단 소요량이 훨씬 큽니다.',
137
- '<strong>결 방향:</strong> 벨벳이나 코듀로이 같은 원단은 모든 조각을 같은 방향으로 재단해야 하므로 효율적인 패턴 배치가 제한됩니다.',
138
- '<strong>수축률:</strong> 면, 린넨, 울 같은 천연 섬유는 첫 세탁 후 줄어듭니다. 재단 전 미리 수축시키는 과정(선세탁)이 필수입니다.',
139
- ],
140
- },
141
- {
142
- type: 'tip',
143
- title: '전문가 팁',
144
- html: '<p>큰 무늬나 체크무늬 원단을 사용할 때는 표준 수치만 믿지 마세요. 계산된 총 미터 수에 무늬의 한 리피트(라포르) 분량을 항상 더해서 옆선에서 무늬가 자연스럽게 이어지도록 하세요.</p>',
145
- },
146
- {
147
- type: 'title',
148
- text: '본 계산기의 장점과 유의사항',
149
- level: 3,
150
- },
151
- {
152
- type: 'list',
153
- items: [
154
- '사이즈 조절이 가능한 다양한 원단 폭에 대한 즉각적인 계산.',
155
- '맞춤 설정 가능한 시접 여유분 추정치 포함.',
156
- '원단 위 패턴 배치(마킹)에 대한 시각적 가이드.',
157
- '실제 패턴 배치를 완벽히 대체하지는 않습니다. 플러스 사이즈의 경우 추가적인 수동 조정이 필요할 수 있습니다.',
158
- ],
159
- },
160
- {
161
- type: 'card',
162
- title: '원단 폭',
163
- icon: 'mdi:arrow-expand-horizontal',
164
- html: '원단의 <strong>식서에서 식서까지</strong>의 가로 측정값입니다. 패턴 조각들을 옆으로 나란히 놓을 수 있는지 여부를 결정합니다.',
165
- },
166
- {
167
- type: 'card',
168
- title: '시접',
169
- icon: 'mdi:tape-measure',
170
- html: '패턴 조각의 가장자리와 <strong>재봉선</strong> 사이의 거리입니다. 의류의 경우 표준값은 1.5cm입니다.',
171
- },
172
- {
173
- type: 'card',
174
- title: '식서 (Selvedge)',
175
- icon: 'mdi:content-cut',
176
- html: '원단의 양 가장자리에 <strong>풀리지 않도록</strong> 두껍게 처리된 부분입니다. 올 방향을 나타내며 재단의 기준이 됩니다.',
177
- },
178
- ],
179
- ui: {
180
- sectionProject: '프로젝트',
181
- sectionMaterial: '재료',
182
- labelGarmentType: '의류 품목',
183
- labelSize: '사이즈',
184
- labelFabricWidth: '원단 폭 (cm)',
185
- labelSeamAllowance: '시접 (cm)',
186
- garmentSkirt: '스커트 (기본/A라인)',
187
- garmentPants: '바지',
188
- garmentDress: '원피스',
189
- garmentShirt: '셔츠 / 블라우스',
190
- garmentCoat: '코트 / 재킷',
191
- garmentTote: '토트백',
192
- garmentMerceria: {
193
- skirt: '20cm 지퍼 1개, 단추 1개',
194
- pants: '20cm 지퍼 1개, 단추 1개, 심지 30cm',
195
- dress: '60cm 지퍼 1개, 심지 50cm',
196
- shirt: '단추 7개, 얇은 심지 1m',
197
- coat: '큰 단추 3개, 심지 1.5m, 안감',
198
- tote: '핸들용 웨빙 끈 2m',
199
- },
200
- sizeXS: 'XS-S',
201
- sizeM: 'M-L',
202
- sizeXL: 'XL-XXL',
203
- width90: '90 cm (좁은 폭)',
204
- width115: '115 cm (퀼트용/US)',
205
- width140: '140 cm (유럽 표준 폭)',
206
- width150: '150 cm (광폭/인테리어)',
207
- btnClear: '초기화',
208
- btnShare: '공유하기',
209
- btnCopied: '복사 완료!',
210
- btnCopyList: '준비물 리스트 복사',
211
- resultLabel: '필요 소요량:',
212
- resultUnit: '미터',
213
- shopAdviceFormat: '매장에서 "{m}m"를 구매하세요',
214
- boardEmpty: '배치도를 보려면 품목을 선택하세요',
215
- boardDescFormat: '폭: {w}cm | 길이: {m}m',
216
- merchTitle: '부자재 및 재료',
217
- checklistThread: '어울리는 색상의 실',
218
- warningSerialFormat: '{w}cm 폭 원단에서는 이 사이즈의 패턴 조각들을 나란히 놓을 수 없습니다. 세로 배치 플랜으로 조정되었습니다.',
219
- foldLabel: '⊟ 골선(겹친 부분)',
220
- pieceNames: {
221
- front: '앞판',
222
- back: '뒷판',
223
- waistband: '허리 밴드',
224
- waistbelt: '벨트',
225
- sleeve: '소매',
226
- collar: '칼라',
227
- cuffs: '커프스',
228
- facings: '안단',
229
- lapels: '라펠',
230
- pocket: '주머니',
231
- body: '몸통',
232
- handleA: '핸들 A',
233
- handleB: '핸들 B',
234
- },
235
- },
236
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { FabricProjectCalculatorUI } from '../ui';
5
+
6
+ const slug = 'fabric-project-calculator';
7
+ const title = '품목별 원단 소요량 계산기';
8
+ const description =
9
+ '스커트, 바지, 원피스, 셔츠 제작 시 필요한 원단 양을 간단하게 계산하세요. 원단 폭과 사이즈에 맞춘 전문적인 재단 플랜을 제안합니다.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: '스커트를 만드는 데 원단이 얼마나 필요한가요?',
14
+ answer:
15
+ '원단 폭에 따라 다릅니다. 140-150cm 폭의 원단으로 기본 스커트를 만들 경우 보통 1.20m면 충분합니다. 90-110cm 폭인 경우 2.00m가 필요합니다.',
16
+ },
17
+ {
18
+ question: '원단 폭이 소요량에 어떤 영향을 주나요?',
19
+ answer:
20
+ '원단 폭이 좁으면 패턴 조각들을 옆으로 나란히 배치할 수 없기 때문에, 조각들을 세로로 배치해야 하므로 보통 두 배의 길이가 필요하게 됩니다.',
21
+ },
22
+ {
23
+ question: '원단을 여유 있게 사는 것이 좋나요?',
24
+ answer:
25
+ '네, 세탁 후 수축이나 원단 결함, 예상치 못한 시접 등을 고려하여 10%(약 20cm) 정도의 여유를 두는 것이 권장됩니다.',
26
+ },
27
+ {
28
+ question: '푸서(식서) 방향이란 무엇이며 왜 중요한가요?',
29
+ answer:
30
+ '원단의 변두리(식서)와 평행한 방향을 말합니다. 옷을 입었을 때 형태가 뒤틀리지 않도록 패턴 조각들을 이 방향에 맞춰 배치해야 합니다.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: '의류 품목 선택',
37
+ text: '제작하려는 모델(스커트, 바지 등)을 선택하여 기본 소요량 데이터를 불러옵니다.',
38
+ },
39
+ {
40
+ name: '원단 폭 입력',
41
+ text: '구매하시려는 원단의 식서에서 식서까지의 폭(90, 115, 140, 150cm)을 측정합니다.',
42
+ },
43
+ {
44
+ name: '사이즈 선택',
45
+ text: '사이즈(XS-S, M-L, XL-XXL)에 맞춰 품목의 볼륨을 조절하고 소요량 상수를 재계산합니다.',
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<FabricProjectCalculatorUI> = {
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: '재봉실에서 가장 많이 겪는 고민 중 하나는 특정 프로젝트를 위해 원단을 얼마나 사야 할지 결정하는 것입니다. 원단 소요량은 의류의 디자인, 제작 사이즈, 그리고 무엇보다 원단의 폭(주로 90cm~150cm)이라는 세 가지 요소에 의해 크게 좌우됩니다. 이 계산기는 원단을 너무 많이 사거나 재단 도중에 부족해지는 일을 방지하기 위해 계산을 체계화했습니다.',
103
+ },
104
+ {
105
+ type: 'title',
106
+ text: '원피스나 바지에는 원단이 얼마나 필요한가요?',
107
+ level: 3,
108
+ },
109
+ {
110
+ type: 'paragraph',
111
+ html: '전통적인 계산 방식은 의류의 길이에 소매 길이를 더하고, 안단과 밑단 여유분을 추가하는 것입니다. 하지만 원단 폭이 좁은 경우(90-110cm) 패턴 조각들을 나란히 놓을 수 없어 길이가 두 배로 필요하게 됩니다. 본 도구는 섬유 산업 표준에 따라 이러한 변수들을 자동으로 계산에 반영합니다.',
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: '원단 폭별 추정 소요량 (M-L 사이즈 기준)',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'list',
120
+ items: [
121
+ '<strong>기본 스커트:</strong> 90cm 폭에서 2.00m · 140/150cm 폭에서 1.20m',
122
+ '<strong>긴 바지:</strong> 90cm 폭에서 2.50m · 140/150cm 폭에서 1.50m',
123
+ '<strong>긴소매 셔츠:</strong> 90cm 폭에서 2.20m · 140/150cm 폭에서 1.40m',
124
+ '<strong>기본 원피스:</strong> 90cm 폭에서 3.50m · 140/150cm 폭에서 2.20m',
125
+ ],
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: '원단 소요량에 영향을 주는 요인들',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'list',
134
+ items: [
135
+ '<strong>무늬 방향 (리피트):</strong> 원단에 일정한 방향의 무늬나 체크무늬(무늬 맞춤이 필요한 경우)가 있다면 원단을 15%에서 20% 정도 더 준비해야 합니다.',
136
+ '<strong>재단 방향 (바이어스):</strong> 바이어스 재단이나 풀 스커트(원형 스커트) 등은 각도 때문에 버려지는 부분이 많아 원단 소요량이 훨씬 큽니다.',
137
+ '<strong>결 방향:</strong> 벨벳이나 코듀로이 같은 원단은 모든 조각을 같은 방향으로 재단해야 하므로 효율적인 패턴 배치가 제한됩니다.',
138
+ '<strong>수축률:</strong> 면, 린넨, 울 같은 천연 섬유는 첫 세탁 후 줄어듭니다. 재단 전 미리 수축시키는 과정(선세탁)이 필수입니다.',
139
+ ],
140
+ },
141
+ {
142
+ type: 'tip',
143
+ title: '전문가 팁',
144
+ html: '<p>큰 무늬나 체크무늬 원단을 사용할 때는 표준 수치만 믿지 마세요. 계산된 총 미터 수에 무늬의 한 리피트(라포르) 분량을 항상 더해서 옆선에서 무늬가 자연스럽게 이어지도록 하세요.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '본 계산기의 장점과 유의사항',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '사이즈 조절이 가능한 다양한 원단 폭에 대한 즉각적인 계산.',
155
+ '맞춤 설정 가능한 시접 여유분 추정치 포함.',
156
+ '원단 위 패턴 배치(마킹)에 대한 시각적 가이드.',
157
+ '실제 패턴 배치를 완벽히 대체하지는 않습니다. 플러스 사이즈의 경우 추가적인 수동 조정이 필요할 수 있습니다.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'card',
162
+ title: '원단 폭',
163
+ icon: 'mdi:arrow-expand-horizontal',
164
+ html: '원단의 <strong>식서에서 식서까지</strong>의 가로 측정값입니다. 패턴 조각들을 옆으로 나란히 놓을 수 있는지 여부를 결정합니다.',
165
+ },
166
+ {
167
+ type: 'card',
168
+ title: '시접',
169
+ icon: 'mdi:tape-measure',
170
+ html: '패턴 조각의 가장자리와 <strong>재봉선</strong> 사이의 거리입니다. 의류의 경우 표준값은 1.5cm입니다.',
171
+ },
172
+ {
173
+ type: 'card',
174
+ title: '식서 (Selvedge)',
175
+ icon: 'mdi:content-cut',
176
+ html: '원단의 양 가장자리에 <strong>풀리지 않도록</strong> 두껍게 처리된 부분입니다. 올 방향을 나타내며 재단의 기준이 됩니다.',
177
+ },
178
+ ],
179
+ ui: {
180
+ sectionProject: '프로젝트',
181
+ sectionMaterial: '재료',
182
+ labelGarmentType: '의류 품목',
183
+ labelSize: '사이즈',
184
+ labelFabricWidth: '원단 폭 (cm)',
185
+ labelSeamAllowance: '시접 (cm)',
186
+ garmentSkirt: '스커트 (기본/A라인)',
187
+ garmentPants: '바지',
188
+ garmentDress: '원피스',
189
+ garmentShirt: '셔츠 / 블라우스',
190
+ garmentCoat: '코트 / 재킷',
191
+ garmentTote: '토트백',
192
+ garmentMerceria: {
193
+ skirt: '20cm 지퍼 1개, 단추 1개',
194
+ pants: '20cm 지퍼 1개, 단추 1개, 심지 30cm',
195
+ dress: '60cm 지퍼 1개, 심지 50cm',
196
+ shirt: '단추 7개, 얇은 심지 1m',
197
+ coat: '큰 단추 3개, 심지 1.5m, 안감',
198
+ tote: '핸들용 웨빙 끈 2m',
199
+ },
200
+ sizeXS: 'XS-S',
201
+ sizeM: 'M-L',
202
+ sizeXL: 'XL-XXL',
203
+ width90: '90 cm (좁은 폭)',
204
+ width115: '115 cm (퀼트용/US)',
205
+ width140: '140 cm (유럽 표준 폭)',
206
+ width150: '150 cm (광폭/인테리어)',
207
+ btnClear: '초기화',
208
+ btnShare: '공유하기',
209
+ btnCopied: '복사 완료!',
210
+ btnCopyList: '준비물 리스트 복사',
211
+ resultLabel: '필요 소요량:',
212
+ resultUnit: '미터',
213
+ shopAdviceFormat: '매장에서 "{m}m"를 구매하세요',
214
+ boardEmpty: '배치도를 보려면 품목을 선택하세요',
215
+ boardDescFormat: '폭: {w}cm | 길이: {m}m',
216
+ merchTitle: '부자재 및 재료',
217
+ checklistThread: '어울리는 색상의 실',
218
+ warningSerialFormat: '{w}cm 폭 원단에서는 이 사이즈의 패턴 조각들을 나란히 놓을 수 없습니다. 세로 배치 플랜으로 조정되었습니다.',
219
+ foldLabel: '⊟ 골선(겹친 부분)',
220
+ pieceNames: {
221
+ front: '앞판',
222
+ back: '뒷판',
223
+ waistband: '허리 밴드',
224
+ waistbelt: '벨트',
225
+ sleeve: '소매',
226
+ collar: '칼라',
227
+ cuffs: '커프스',
228
+ facings: '안단',
229
+ lapels: '라펠',
230
+ pocket: '주머니',
231
+ body: '몸통',
232
+ handleA: '핸들 A',
233
+ handleB: '핸들 B',
234
+ },
235
+ },
236
+ };