@jjlmoya/utils-diy 1.3.0 → 1.5.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 (193) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +12 -0
  3. package/src/category/i18n/id.ts +12 -0
  4. package/src/category/i18n/it.ts +12 -0
  5. package/src/category/i18n/ja.ts +12 -0
  6. package/src/category/i18n/ko.ts +12 -0
  7. package/src/category/i18n/nl.ts +12 -0
  8. package/src/category/i18n/pl.ts +12 -0
  9. package/src/category/i18n/pt.ts +12 -0
  10. package/src/category/i18n/ru.ts +12 -0
  11. package/src/category/i18n/sv.ts +12 -0
  12. package/src/category/i18n/tr.ts +12 -0
  13. package/src/category/i18n/zh.ts +12 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/index.ts +1 -1
  16. package/src/tests/category_validation.test.ts +18 -0
  17. package/src/tests/faq_count.test.ts +1 -1
  18. package/src/tests/i18n_coverage.test.ts +36 -0
  19. package/src/tests/locale_completeness.test.ts +2 -2
  20. package/src/tests/seo_length.test.ts +3 -0
  21. package/src/tests/slug_language_code_format.test.ts +23 -0
  22. package/src/tests/slug_uniqueness.test.ts +81 -0
  23. package/src/tool/balusterCalculator/i18n/de.ts +264 -0
  24. package/src/tool/balusterCalculator/i18n/id.ts +264 -0
  25. package/src/tool/balusterCalculator/i18n/it.ts +264 -0
  26. package/src/tool/balusterCalculator/i18n/ja.ts +264 -0
  27. package/src/tool/balusterCalculator/i18n/ko.ts +264 -0
  28. package/src/tool/balusterCalculator/i18n/nl.ts +264 -0
  29. package/src/tool/balusterCalculator/i18n/pl.ts +264 -0
  30. package/src/tool/balusterCalculator/i18n/pt.ts +264 -0
  31. package/src/tool/balusterCalculator/i18n/ru.ts +264 -0
  32. package/src/tool/balusterCalculator/i18n/sv.ts +264 -0
  33. package/src/tool/balusterCalculator/i18n/tr.ts +264 -0
  34. package/src/tool/balusterCalculator/i18n/zh.ts +264 -0
  35. package/src/tool/balusterCalculator/index.ts +15 -7
  36. package/src/tool/clayCalculator/i18n/de.ts +183 -0
  37. package/src/tool/clayCalculator/i18n/id.ts +183 -0
  38. package/src/tool/clayCalculator/i18n/it.ts +183 -0
  39. package/src/tool/clayCalculator/i18n/ja.ts +182 -0
  40. package/src/tool/clayCalculator/i18n/ko.ts +183 -0
  41. package/src/tool/clayCalculator/i18n/nl.ts +183 -0
  42. package/src/tool/clayCalculator/i18n/pl.ts +183 -0
  43. package/src/tool/clayCalculator/i18n/pt.ts +183 -0
  44. package/src/tool/clayCalculator/i18n/ru.ts +183 -0
  45. package/src/tool/clayCalculator/i18n/sv.ts +183 -0
  46. package/src/tool/clayCalculator/i18n/tr.ts +183 -0
  47. package/src/tool/clayCalculator/i18n/zh.ts +183 -0
  48. package/src/tool/clayCalculator/index.ts +15 -7
  49. package/src/tool/concreteCalculator/i18n/de.ts +201 -0
  50. package/src/tool/concreteCalculator/i18n/id.ts +201 -0
  51. package/src/tool/concreteCalculator/i18n/it.ts +201 -0
  52. package/src/tool/concreteCalculator/i18n/ja.ts +201 -0
  53. package/src/tool/concreteCalculator/i18n/ko.ts +201 -0
  54. package/src/tool/concreteCalculator/i18n/nl.ts +201 -0
  55. package/src/tool/concreteCalculator/i18n/pl.ts +201 -0
  56. package/src/tool/concreteCalculator/i18n/pt.ts +201 -0
  57. package/src/tool/concreteCalculator/i18n/ru.ts +201 -0
  58. package/src/tool/concreteCalculator/i18n/sv.ts +201 -0
  59. package/src/tool/concreteCalculator/i18n/tr.ts +201 -0
  60. package/src/tool/concreteCalculator/i18n/zh.ts +201 -0
  61. package/src/tool/concreteCalculator/index.ts +17 -5
  62. package/src/tool/cutOptimizer/i18n/de.ts +178 -0
  63. package/src/tool/cutOptimizer/i18n/id.ts +178 -0
  64. package/src/tool/cutOptimizer/i18n/it.ts +178 -0
  65. package/src/tool/cutOptimizer/i18n/ja.ts +178 -0
  66. package/src/tool/cutOptimizer/i18n/ko.ts +178 -0
  67. package/src/tool/cutOptimizer/i18n/nl.ts +178 -0
  68. package/src/tool/cutOptimizer/i18n/pl.ts +178 -0
  69. package/src/tool/cutOptimizer/i18n/pt.ts +178 -0
  70. package/src/tool/cutOptimizer/i18n/ru.ts +178 -0
  71. package/src/tool/cutOptimizer/i18n/sv.ts +178 -0
  72. package/src/tool/cutOptimizer/i18n/tr.ts +178 -0
  73. package/src/tool/cutOptimizer/i18n/zh.ts +178 -0
  74. package/src/tool/cutOptimizer/index.ts +17 -5
  75. package/src/tool/drillCalculator/i18n/de.ts +137 -0
  76. package/src/tool/drillCalculator/i18n/id.ts +137 -0
  77. package/src/tool/drillCalculator/i18n/it.ts +137 -0
  78. package/src/tool/drillCalculator/i18n/ja.ts +137 -0
  79. package/src/tool/drillCalculator/i18n/ko.ts +137 -0
  80. package/src/tool/drillCalculator/i18n/nl.ts +137 -0
  81. package/src/tool/drillCalculator/i18n/pl.ts +137 -0
  82. package/src/tool/drillCalculator/i18n/pt.ts +137 -0
  83. package/src/tool/drillCalculator/i18n/ru.ts +137 -0
  84. package/src/tool/drillCalculator/i18n/sv.ts +137 -0
  85. package/src/tool/drillCalculator/i18n/tr.ts +137 -0
  86. package/src/tool/drillCalculator/i18n/zh.ts +137 -0
  87. package/src/tool/drillCalculator/index.ts +17 -5
  88. package/src/tool/drillSharpener/i18n/de.ts +120 -0
  89. package/src/tool/drillSharpener/i18n/id.ts +120 -0
  90. package/src/tool/drillSharpener/i18n/it.ts +120 -0
  91. package/src/tool/drillSharpener/i18n/ja.ts +120 -0
  92. package/src/tool/drillSharpener/i18n/ko.ts +120 -0
  93. package/src/tool/drillSharpener/i18n/nl.ts +120 -0
  94. package/src/tool/drillSharpener/i18n/pl.ts +120 -0
  95. package/src/tool/drillSharpener/i18n/pt.ts +120 -0
  96. package/src/tool/drillSharpener/i18n/ru.ts +120 -0
  97. package/src/tool/drillSharpener/i18n/sv.ts +120 -0
  98. package/src/tool/drillSharpener/i18n/tr.ts +120 -0
  99. package/src/tool/drillSharpener/i18n/zh.ts +120 -0
  100. package/src/tool/drillSharpener/index.ts +17 -5
  101. package/src/tool/epoxyCalculator/i18n/de.ts +118 -0
  102. package/src/tool/epoxyCalculator/i18n/id.ts +118 -0
  103. package/src/tool/epoxyCalculator/i18n/it.ts +118 -0
  104. package/src/tool/epoxyCalculator/i18n/ja.ts +118 -0
  105. package/src/tool/epoxyCalculator/i18n/ko.ts +118 -0
  106. package/src/tool/epoxyCalculator/i18n/nl.ts +118 -0
  107. package/src/tool/epoxyCalculator/i18n/pl.ts +118 -0
  108. package/src/tool/epoxyCalculator/i18n/pt.ts +118 -0
  109. package/src/tool/epoxyCalculator/i18n/ru.ts +118 -0
  110. package/src/tool/epoxyCalculator/i18n/sv.ts +118 -0
  111. package/src/tool/epoxyCalculator/i18n/tr.ts +118 -0
  112. package/src/tool/epoxyCalculator/i18n/zh.ts +118 -0
  113. package/src/tool/epoxyCalculator/index.ts +15 -7
  114. package/src/tool/furnitureFit/i18n/de.ts +113 -0
  115. package/src/tool/furnitureFit/i18n/id.ts +113 -0
  116. package/src/tool/furnitureFit/i18n/it.ts +113 -0
  117. package/src/tool/furnitureFit/i18n/ja.ts +113 -0
  118. package/src/tool/furnitureFit/i18n/ko.ts +113 -0
  119. package/src/tool/furnitureFit/i18n/nl.ts +113 -0
  120. package/src/tool/furnitureFit/i18n/pl.ts +113 -0
  121. package/src/tool/furnitureFit/i18n/pt.ts +113 -0
  122. package/src/tool/furnitureFit/i18n/ru.ts +113 -0
  123. package/src/tool/furnitureFit/i18n/sv.ts +113 -0
  124. package/src/tool/furnitureFit/i18n/tr.ts +113 -0
  125. package/src/tool/furnitureFit/i18n/zh.ts +113 -0
  126. package/src/tool/furnitureFit/index.ts +17 -5
  127. package/src/tool/mortarCalculator/i18n/de.ts +129 -0
  128. package/src/tool/mortarCalculator/i18n/id.ts +129 -0
  129. package/src/tool/mortarCalculator/i18n/it.ts +129 -0
  130. package/src/tool/mortarCalculator/i18n/ja.ts +129 -0
  131. package/src/tool/mortarCalculator/i18n/ko.ts +129 -0
  132. package/src/tool/mortarCalculator/i18n/nl.ts +129 -0
  133. package/src/tool/mortarCalculator/i18n/pl.ts +129 -0
  134. package/src/tool/mortarCalculator/i18n/pt.ts +129 -0
  135. package/src/tool/mortarCalculator/i18n/ru.ts +129 -0
  136. package/src/tool/mortarCalculator/i18n/sv.ts +129 -0
  137. package/src/tool/mortarCalculator/i18n/tr.ts +129 -0
  138. package/src/tool/mortarCalculator/i18n/zh.ts +129 -0
  139. package/src/tool/mortarCalculator/index.ts +17 -5
  140. package/src/tool/passepartoutCalculator/i18n/de.ts +108 -0
  141. package/src/tool/passepartoutCalculator/i18n/id.ts +108 -0
  142. package/src/tool/passepartoutCalculator/i18n/it.ts +108 -0
  143. package/src/tool/passepartoutCalculator/i18n/ja.ts +108 -0
  144. package/src/tool/passepartoutCalculator/i18n/ko.ts +108 -0
  145. package/src/tool/passepartoutCalculator/i18n/nl.ts +108 -0
  146. package/src/tool/passepartoutCalculator/i18n/pl.ts +108 -0
  147. package/src/tool/passepartoutCalculator/i18n/pt.ts +108 -0
  148. package/src/tool/passepartoutCalculator/i18n/ru.ts +108 -0
  149. package/src/tool/passepartoutCalculator/i18n/sv.ts +108 -0
  150. package/src/tool/passepartoutCalculator/i18n/tr.ts +108 -0
  151. package/src/tool/passepartoutCalculator/i18n/zh.ts +108 -0
  152. package/src/tool/passepartoutCalculator/index.ts +17 -5
  153. package/src/tool/stairCalculator/i18n/de.ts +144 -0
  154. package/src/tool/stairCalculator/i18n/id.ts +144 -0
  155. package/src/tool/stairCalculator/i18n/it.ts +144 -0
  156. package/src/tool/stairCalculator/i18n/ja.ts +144 -0
  157. package/src/tool/stairCalculator/i18n/ko.ts +144 -0
  158. package/src/tool/stairCalculator/i18n/nl.ts +144 -0
  159. package/src/tool/stairCalculator/i18n/pl.ts +144 -0
  160. package/src/tool/stairCalculator/i18n/pt.ts +144 -0
  161. package/src/tool/stairCalculator/i18n/ru.ts +144 -0
  162. package/src/tool/stairCalculator/i18n/sv.ts +144 -0
  163. package/src/tool/stairCalculator/i18n/tr.ts +144 -0
  164. package/src/tool/stairCalculator/i18n/zh.ts +144 -0
  165. package/src/tool/stairCalculator/index.ts +17 -5
  166. package/src/tool/thermalExpansionCalculator/i18n/de.ts +132 -0
  167. package/src/tool/thermalExpansionCalculator/i18n/id.ts +130 -0
  168. package/src/tool/thermalExpansionCalculator/i18n/it.ts +130 -0
  169. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +130 -0
  170. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +130 -0
  171. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +130 -0
  172. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +130 -0
  173. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +130 -0
  174. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +130 -0
  175. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +130 -0
  176. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +130 -0
  177. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +130 -0
  178. package/src/tool/thermalExpansionCalculator/index.ts +17 -5
  179. package/src/tool/voltageDropCalculator/i18n/de.ts +112 -0
  180. package/src/tool/voltageDropCalculator/i18n/id.ts +110 -0
  181. package/src/tool/voltageDropCalculator/i18n/it.ts +110 -0
  182. package/src/tool/voltageDropCalculator/i18n/ja.ts +110 -0
  183. package/src/tool/voltageDropCalculator/i18n/ko.ts +110 -0
  184. package/src/tool/voltageDropCalculator/i18n/nl.ts +110 -0
  185. package/src/tool/voltageDropCalculator/i18n/pl.ts +110 -0
  186. package/src/tool/voltageDropCalculator/i18n/pt.ts +110 -0
  187. package/src/tool/voltageDropCalculator/i18n/ru.ts +110 -0
  188. package/src/tool/voltageDropCalculator/i18n/sv.ts +110 -0
  189. package/src/tool/voltageDropCalculator/i18n/tr.ts +110 -0
  190. package/src/tool/voltageDropCalculator/i18n/zh.ts +110 -0
  191. package/src/tool/voltageDropCalculator/index.ts +17 -5
  192. package/src/tools.ts +2 -0
  193. package/src/types.ts +1 -1
@@ -0,0 +1,182 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ClayCalculatorUI } from '../ui';
4
+
5
+ const slug = 'clay-shrinkage-calculator';
6
+ const title = '粘土収縮計算機:陶芸のための正確な寸法設計';
7
+ const description =
8
+ '乾燥および焼成時の粘土の収縮を計算します。最終的な寸法を正確に予測して陶器を設計できます。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'なぜ粘土は収縮するのですか?',
13
+ answer:
14
+ '粘土は主に水分を失うことで収縮します。まず乾燥(粒子間の水分の蒸発)が起こり、次に焼成(化学的に結合した水分の除去と粒子の焼結)が起こります。',
15
+ },
16
+ {
17
+ question: '通常の収縮率はどのくらいですか?',
18
+ answer:
19
+ '粘土の種類によって異なります。土器は通常5〜10%ですが、せっ器や磁器はガラス化が進むため、12〜15%に達することがあります。',
20
+ },
21
+ {
22
+ question: '自分の使っている粘土の収縮率を測るには?',
23
+ answer:
24
+ '正確に10cmのテストピースを作ります。それを乾燥させて測定し(乾燥収縮)、最終温度で焼成した後に再度測定します(全収縮)。その差から正確な比率を算出できます。',
25
+ },
26
+ {
27
+ question: '乾燥中に作品がひび割れてしまうのはなぜですか?',
28
+ answer:
29
+ '通常、乾燥が早すぎるか、不均一であることが原因です。薄い部分は厚い部分よりも早く水分を失い、歪みが生じます。作品をビニールで覆い、乾燥を遅らせるようにしてください。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '成形直後の寸法を測る',
36
+ text: 'ろくろや手びねりで作った直後の、まだ水分を十分に含んでいる状態の正確な寸法を記録します。',
37
+ },
38
+ {
39
+ name: '収縮率を入力する',
40
+ text: '粘土のパッケージを確認するか、メーカーが提供している全収縮率(乾燥+焼成)を入力します。',
41
+ },
42
+ {
43
+ name: '完成時の予想寸法を確認する',
44
+ text: '計算機を使用して、窯から出た後の作品のサイズを把握し、嵌め合わせや蓋の設計に役立てます。',
45
+ },
46
+ {
47
+ name: '目標サイズからの逆算',
48
+ text: '最終的に特定のサイズ(例:X cm)に仕上げたい場合は、逆算機能を使用して成形時に必要なサイズを確認します。',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
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: 'ja',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ClayCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'よくある質問',
91
+ faq: faqData,
92
+ bibliographyTitle: 'リファレンス',
93
+ bibliography: [
94
+ {
95
+ name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
+ url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
+ },
98
+ {
99
+ name: 'Ceramic Arts Network - Understanding Shrinkage',
100
+ url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: '粘土の物理学:収縮と膨張',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: '粘土は陶芸のプロセス全体を通じてサイズが変化する「生きた」素材です。湿った状態で成形してから窯から出るまでの間に、元のサイズの8%から15%を失うことがあります。この収縮を計算することは、必要な正確な寸法の作品を作るために不可欠です。',
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ {
119
+ type: 'card',
120
+ title: '収縮の段階',
121
+ html: '<p><strong>1. 乾燥(湿潤 → 乾燥):</strong> 水分を失うことで、粘土の粒子が近づきます。これが最大の収縮段階(4-8%)です。乾燥が早すぎると、厚手の商品はひび割れることがあります。</p><p><strong>2. 焼成(乾燥 → 素焼き):</strong> 900〜1000℃の間で、粘土は不可逆的な化学変化を起こします。さらに2-4%収縮します。作品は多孔質ですが丈夫になります。</p><p><strong>3. ガラス化(高温焼成):</strong> 1200〜1300℃で、粘土はガラス化します。最終的な1-3%の収縮が起こります。せっ器や磁器はこの段階で最大の密度に達します。</p>',
122
+ },
123
+ {
124
+ type: 'card',
125
+ title: '影響を与える要因',
126
+ html: '<ul><li><strong>粘土の種類:</strong> 赤土は磁器(12-15%)よりも収縮が少ない(8-10%)傾向があります。</li><li><strong>肉厚:</strong> 壁面が薄い方が、厚いものよりも均一に収縮します。</li><li><strong>焼成温度:</strong> 温度が高いほど、収縮とガラス化が進みます。</li><li><strong>シャモット含有量:</strong> シャモット(一度焼いて粉砕した粘土)を加えると収縮を抑えられます。</li></ul>',
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '実践的な応用',
133
+ level: 2,
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: '金型・型の設計',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: '最終的に直径8cmのカップが必要で、粘土の収縮率が12%の場合、型は<strong>9.1cm</strong>で作る必要があります。この逆算は量産において非常に重要です。',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: '蓋と嵌め合わせ',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: '嵌め合わせが必要な作品(急須と蓋、保存容器と蓋など)を作る場合、両方を同じ粘土で作る必要があります。1%の収縮率の差でも、製品としての嵌まり具合を台無しにすることがあります。',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: '大型彫刻',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: '大きな作品では、厚い部分と薄い部分の収縮の差がひび割れの原因となります。経験豊富な陶芸家は、収縮が大きいとわかっている部分の壁を厚めに残すことで調整します。',
161
+ },
162
+ ],
163
+ ui: {
164
+ labelInitialSize: '初期サイズ (mm)',
165
+ labelShrinkage: '収縮率 (%)',
166
+ labelLow: '低 (テラコッタ)',
167
+ labelMedium: '中 (せっ器)',
168
+ labelHigh: '高 (磁器)',
169
+ presetTerracota: 'テラコッタ (8%)',
170
+ presetGres: 'せっ器 (12%)',
171
+ presetPorcelana: '磁器 (15%)',
172
+ labelResult: '結果',
173
+ labelFinalSize: '完成サイズ:',
174
+ labelLoss: '合計収縮量:',
175
+ tipText: '特定の完成サイズから必要な初期サイズを計算するには、目標サイズを (1 - 収縮率/100) で割ってください。',
176
+ labelInitialBadge: '初期:',
177
+ labelFinalBadge: 'mm 完成',
178
+ labelLossBadge: '収縮量:',
179
+ labelInitialArea: '初期面積',
180
+ labelFinalArea: '完成面積',
181
+ },
182
+ };
@@ -0,0 +1,183 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ClayCalculatorUI } from '../ui';
4
+
5
+ const slug = 'clay-shrinkage-calculator';
6
+ const title = '점토 수축 계산기: 도예를 위한 정확한 치수 설계';
7
+ const description =
8
+ '건조 및 소성 시 점토의 수축을 계산합니다. 최종 치수를 정확하게 예측하여 도자기 작품을 설계하세요.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '점토는 왜 수축하나요?',
13
+ answer:
14
+ '점토는 주로 수분 손실로 인해 수축합니다. 먼저 건조(입자 사이의 수분 증발)가 일어나고, 그 다음 소성(화학적으로 결합된 수분 제거 및 입자의 소결)이 일어납니다.',
15
+ },
16
+ {
17
+ question: '일반적인 수축률은 어느 정도인가요?',
18
+ answer:
19
+ '점토의 종류에 따라 다릅니다. 도기는 보통 5-10% 수축하는 반면, 석기나 자기는 유리화 정도가 높기 때문에 12-15%까지 수축할 수 있습니다.',
20
+ },
21
+ {
22
+ question: '내가 사용하는 점토의 수축률을 어떻게 측정하나요?',
23
+ answer:
24
+ '정확히 10cm 길이의 테스트 시편을 만듭니다. 그것을 건조시킨 후 측정하고(건조 수축), 최종 온도에서 소성한 후 다시 측정합니다(전체 수축). 그 차이를 통해 정확한 퍼센트를 구할 수 있습니다.',
25
+ },
26
+ {
27
+ question: '건조 중에 작품이 갈라지는 이유는 무엇인가요?',
28
+ answer:
29
+ '보통 건조가 너무 빠르거나 불균일할 때 발생합니다. 얇은 부분은 두꺼운 부분보다 수분을 더 빨리 잃어 응력이 발생합니다. 건조 과정을 늦추기 위해 비닐 등으로 작품을 덮어주세요.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '성형 직후 치수 측정',
36
+ text: '물레 작업이나 성형 직후, 점토가 아직 수분을 머금고 있을 때 작품의 정확한 치수를 측정합니다.',
37
+ },
38
+ {
39
+ name: '수축 계수 입력',
40
+ text: '사용한 점토 패키지에 표시된 제조업체의 전체 수축률(건조+소성)을 확인하여 입력합니다.',
41
+ },
42
+ {
43
+ name: '예상 최종 치수 확인',
44
+ text: '계산기를 사용하여 소성 후 작품의 크기를 파악하고, 이에 맞춰 뚜껑이나 맞물리는 부분을 계획합니다.',
45
+ },
46
+ {
47
+ name: '목표 치수를 위한 역계산',
48
+ text: '최종적으로 원하는 크기가 있다면, 역계산을 통해 성형 시 어느 정도 크기로 만들어야 하는지 확인합니다.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
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<ClayCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: '자주 묻는 질문',
91
+ faq: faqData,
92
+ bibliographyTitle: '참고 자료',
93
+ bibliography: [
94
+ {
95
+ name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
+ url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
+ },
98
+ {
99
+ name: 'Ceramic Arts Network - Understanding Shrinkage',
100
+ url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: '점토의 물리학: 수축과 팽창',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: '점토는 모든 제작 과정 중에 크기가 변하는 살아있는 재료입니다. 젖은 상태에서 성형한 순간부터 가마에서 나올 때까지 원래 크기의 8%에서 15%를 잃을 수 있습니다. 필요한 정확한 치수의 작품을 만들기 위해서는 이러한 수축을 계산하는 것이 필수적입니다.',
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ {
119
+ type: 'card',
120
+ title: '수축 단계',
121
+ html: '<p><strong>1. 건조 (젖은 점토 → 건조 점토):</strong> 수분을 잃으면서 점토 입자들이 서로 가까워집니다. 이것이 가장 큰 수축(4-8%) 단계입니다. 두꺼운 작품은 너무 빨리 건조되면 갈라질 수 있습니다.</p><p><strong>2. 소성 (건조 점토 → 초벌구이):</strong> 900-1000°C 사이에서 점토는 되돌릴 수 없는 화학적 변화를 겪습니다. 2-4%의 추가 수축이 발생하며, 작품은 다공성이지만 튼튼해집니다.</p><p><strong>3. 유리화 (고온 소성):</strong> 1200-1300°C에서 점토가 유리화됩니다. 최종적으로 1-3% 수축하며, 석기와 자기는 이 단계에서 최대 밀도에 도달합니다.</p>',
122
+ },
123
+ {
124
+ type: 'card',
125
+ title: '영향을 미치는 변수들',
126
+ html: '<ul><li><strong>점토 유형:</strong> 적토는 자기(12-15%)보다 수축이 적은 편(8-10%)입니다.</li><li><strong>벽 두께:</strong> 얇은 벽이 두꺼운 벽보다 더 균일하게 수축합니다.</li><li><strong>소성 온도:</strong> 온도가 높을수록 수축과 유리화 정도가 커집니다.</li><li><strong>그로그 함량:</strong> 그로그(이미 구운 점토 가루)를 추가하면 수축이 줄어듭니다.</li></ul>',
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '실제 활용',
133
+ level: 2,
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: '몰드 설계',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: '최종 지름이 8cm인 컵이 필요하고 점토 수축률이 12%라면, 몰드는 <strong>9.1cm</strong>로 제작해야 합니다. 이러한 역계산은 대량 생산에서 매우 중요합니다.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: '뚜껑 및 조립',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: '맞물려야 하는 작품(주전자+뚜껑, 단지+뚜껑 등)을 만들 때는 동일하게 수축하도록 같은 점토로 만들고 함께 구워야 합니다. 1%의 차이만으로도 조립이 불가능해질 수 있습니다.',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: '대형 조각품',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: '큰 작품에서는 두꺼운 부분과 얇은 부분 사이의 수축 차이가 균열을 유발할 수 있습니다. 숙련된 도예가는 수축이 더 많이 일어날 것을 예상되는 부분의 벽을 더 두껍게 남겨 보정합니다.',
161
+ },
162
+ ],
163
+ ui: {
164
+ labelInitialSize: '초기 크기 (mm)',
165
+ labelShrinkage: '수축률 (%)',
166
+ labelLow: '낮음 (테라코타)',
167
+ labelMedium: '중간 (석기)',
168
+ labelHigh: '높음 (자기)',
169
+ presetTerracota: '테라코타 (8%)',
170
+ presetGres: '석기 (12%)',
171
+ presetPorcelana: '자기 (15%)',
172
+ labelResult: '결과',
173
+ labelFinalSize: '최종 크기:',
174
+ labelLoss: '전체 수축량:',
175
+ tipText:
176
+ '특정 최종 크기를 얻기 위해 필요한 초기 크기를 계산하려면, 원하는 크기를 (1 - 수축률/100)으로 나누십시오.',
177
+ labelInitialBadge: '초기:',
178
+ labelFinalBadge: 'mm 최종',
179
+ labelLossBadge: '수축량:',
180
+ labelInitialArea: '초기 면적',
181
+ labelFinalArea: '최종 면적',
182
+ },
183
+ };
@@ -0,0 +1,183 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ClayCalculatorUI } from '../ui';
4
+
5
+ const slug = 'klei-krimp-calculator';
6
+ const title = 'Klei Krimp Calculator: Exacte Afmetingen voor Keramiek';
7
+ const description =
8
+ 'Bereken de krimp van klei tijdens het drogen en bakken. Ontwerp keramiek met de exacte uiteindelijke afmetingen.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Waarom krimpt klei?',
13
+ answer:
14
+ 'Klei krimpt voornamelijk door waterverlies. Eerst vindt het drogen plaats (verdamping van water tussen de deeltjes) en daarna het bakken (verwijdering van chemisch gebonden water en sintering van de deeltjes).',
15
+ },
16
+ {
17
+ question: 'Wat is een normaal krimpstpercentage?',
18
+ answer:
19
+ 'Dit hangt af van de kleisoort. Aardewerk krimpt meestal tussen de 5-10%, terwijl steengoed en porselein een krimp van 12-15% kunnen hebben door hun hogere mate van verglazing.',
20
+ },
21
+ {
22
+ question: 'Hoe meet ik de krimp van mijn eigen klei?',
23
+ answer:
24
+ 'Maak een testplaatje van exact 10 cm. Laat het drogen en meet het op (droogkrimp). Bak het op de uiteindelijke temperatuur en meet het opnieuw (totale krimp). Het verschil geeft je het exacte percentage.',
25
+ },
26
+ {
27
+ question: 'Wat gebeurt er als mijn werkstuk scheurt tijdens het drogen?',
28
+ answer:
29
+ 'Dit duidt meestal op een te snel of ongelijkmatig droogproces. Dunne delen verliezen eerder water dan dikke delen, wat spanningen veroorzaakt. Dek werkstukken af met plastic om het proces te vertragen.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Het werkstuk nat meten',
36
+ text: 'Meet de exacte afmetingen van je werkstuk direct na het draaien of boetseren, wanneer het nog al het vocht bevat.',
37
+ },
38
+ {
39
+ name: 'Krimpcoëfficiënt invoeren',
40
+ text: 'Zoek op de verpakking van je klei naar het totale krimpstpercentage (drogen + bakken) dat door de fabrikant wordt opgegeven.',
41
+ },
42
+ {
43
+ name: 'Verwachte uiteindelijke afmetingen verkrijgen',
44
+ text: 'Gebruik de calculator om te weten hoe groot je werkstuk zal zijn nadat het uit de oven komt en plan je deksels of passende onderdelen.',
45
+ },
46
+ {
47
+ name: 'Omgekeerde berekening voor doelen',
48
+ text: 'Als je wilt dat je werkstuk uiteindelijk exact X cm is, gebruik dan de omgekeerde berekening om te weten hoe groot het op de draaischijf moet zijn.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
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: 'nl',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ClayCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Veelgestelde Vragen',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referenties',
93
+ bibliography: [
94
+ {
95
+ name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
+ url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
+ },
98
+ {
99
+ name: 'Ceramic Arts Network - Understanding Shrinkage',
100
+ url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: 'De Fysica van Klei: Krimp en Expansie',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: 'Klei is een levend materiaal dat gedurende het hele keramische proces van grootte verandert. Vanaf het moment dat je een nat werkstuk vormt totdat het uit de oven komt, kan het tussen de 8% en 15% van zijn oorspronkelijke grootte verliezen. Het berekenen van deze krimp is essentieel om werkstukken te creëren met de exacte afmetingen die je nodig hebt.',
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ {
119
+ type: 'card',
120
+ title: 'Fases van Krimp',
121
+ html: '<p><strong>1. Drogen (Nat → Droog):</strong> Bij het verliezen van water komen de kleideeltjes dichter bij elkaar te liggen. Dit is de grootste krimp (4-8%). Dikke wanden kunnen scheuren als ze te snel drogen.</p><p><strong>2. Bakken (Droog → Biscuit):</strong> Tussen 900-1000°C ondergaat de klei onomkeerbare chemische veranderingen. Extra krimp van 2-4%. Het werkstuk wordt poreus maar stevig.</p><p><strong>3. Verglazing (Hoge Temperatuur):</strong> Op 1200-1300°C verglast de klei. Uiteindelijke krimp van 1-3%. Steengoed en porselein bereiken hun maximale dichtheid.</p>',
122
+ },
123
+ {
124
+ type: 'card',
125
+ title: 'Variabelen van Invloed',
126
+ html: '<ul><li><strong>Kleisoort:</strong> Rode klei krimpt minder (8-10%) dan porselein (12-15%).</li><li><strong>Wanddikte:</strong> Dunne wanden krimpen gelijkmatiger dan dikke wanden.</li><li><strong>Baktemperatuur:</strong> Hoe hoger de temperatuur, hoe groter de krimp en verglazing.</li><li><strong>Chamottegehalte:</strong> Het toevoegen van chamotte (gemalen gebakken klei) vermindert de krimp.</li></ul>',
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Praktische Toepassingen',
133
+ level: 2,
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Ontwerp van Mallen',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'Als je een kopje nodig hebt met een uiteindelijke diameter von 8 cm, en je klei krimpt 12%, dan moet je de mal maken op <strong>9,1 cm</strong>. Deze omgekeerde berekening is cruciaal bij serieproductie.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Deksels en Assemblages',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Wanneer je onderdelen maakt die in elkaar moeten passen (theepot + deksel, pot + deksel), moeten beide van dezelfde klei zijn gemaakt en samen worden gebakken om te garanderen dat ze evenveel krimpen. Een verschil van 1% kan de pasvorm al verpesten.',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Monumentale Sculpturen',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'Bij grote werkstukken kan het verschil in krimp tussen dikke en dunne secties scheuren veroorzaken. Ervaren keramisten compenseren dit door wanden dikker te laten in zones waarvan ze weten dat ze meer zullen krimpen.',
161
+ },
162
+ ],
163
+ ui: {
164
+ labelInitialSize: 'Initiële Grootte (mm)',
165
+ labelShrinkage: 'Krimpstpercentage (%)',
166
+ labelLow: 'Laag (Terracotta)',
167
+ labelMedium: 'Gemiddeld (Steengoed)',
168
+ labelHigh: 'Hoog (Porselein)',
169
+ presetTerracota: 'Terracotta (8%)',
170
+ presetGres: 'Steengoed (12%)',
171
+ presetPorcelana: 'Porselein (15%)',
172
+ labelResult: 'Resultaat',
173
+ labelFinalSize: 'Uiteindelijke Grootte:',
174
+ labelLoss: 'Totaal Verlies:',
175
+ tipText:
176
+ 'Om de benodigde initiële grootte te berekenen voor een specifieke uiteindelijke grootte, deel je de gewenste grootte door (1 - krimp/100).',
177
+ labelInitialBadge: 'Initieel:',
178
+ labelFinalBadge: 'mm eind',
179
+ labelLossBadge: 'Verlies:',
180
+ labelInitialArea: 'Initieel Gebied',
181
+ labelFinalArea: 'Eindgebied',
182
+ },
183
+ };