@jjlmoya/utils-diy 1.2.0 → 1.4.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 (189) 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/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +2 -2
  18. package/src/tests/seo_length.test.ts +3 -0
  19. package/src/tests/slug_uniqueness.test.ts +58 -0
  20. package/src/tool/balusterCalculator/i18n/de.ts +264 -0
  21. package/src/tool/balusterCalculator/i18n/id.ts +264 -0
  22. package/src/tool/balusterCalculator/i18n/it.ts +264 -0
  23. package/src/tool/balusterCalculator/i18n/ja.ts +264 -0
  24. package/src/tool/balusterCalculator/i18n/ko.ts +264 -0
  25. package/src/tool/balusterCalculator/i18n/nl.ts +264 -0
  26. package/src/tool/balusterCalculator/i18n/pl.ts +264 -0
  27. package/src/tool/balusterCalculator/i18n/pt.ts +264 -0
  28. package/src/tool/balusterCalculator/i18n/ru.ts +264 -0
  29. package/src/tool/balusterCalculator/i18n/sv.ts +264 -0
  30. package/src/tool/balusterCalculator/i18n/tr.ts +264 -0
  31. package/src/tool/balusterCalculator/i18n/zh.ts +264 -0
  32. package/src/tool/balusterCalculator/index.ts +15 -7
  33. package/src/tool/clayCalculator/i18n/de.ts +183 -0
  34. package/src/tool/clayCalculator/i18n/id.ts +183 -0
  35. package/src/tool/clayCalculator/i18n/it.ts +183 -0
  36. package/src/tool/clayCalculator/i18n/ja.ts +182 -0
  37. package/src/tool/clayCalculator/i18n/ko.ts +183 -0
  38. package/src/tool/clayCalculator/i18n/nl.ts +183 -0
  39. package/src/tool/clayCalculator/i18n/pl.ts +183 -0
  40. package/src/tool/clayCalculator/i18n/pt.ts +183 -0
  41. package/src/tool/clayCalculator/i18n/ru.ts +183 -0
  42. package/src/tool/clayCalculator/i18n/sv.ts +183 -0
  43. package/src/tool/clayCalculator/i18n/tr.ts +183 -0
  44. package/src/tool/clayCalculator/i18n/zh.ts +183 -0
  45. package/src/tool/clayCalculator/index.ts +15 -7
  46. package/src/tool/concreteCalculator/i18n/de.ts +201 -0
  47. package/src/tool/concreteCalculator/i18n/id.ts +201 -0
  48. package/src/tool/concreteCalculator/i18n/it.ts +201 -0
  49. package/src/tool/concreteCalculator/i18n/ja.ts +201 -0
  50. package/src/tool/concreteCalculator/i18n/ko.ts +201 -0
  51. package/src/tool/concreteCalculator/i18n/nl.ts +201 -0
  52. package/src/tool/concreteCalculator/i18n/pl.ts +201 -0
  53. package/src/tool/concreteCalculator/i18n/pt.ts +201 -0
  54. package/src/tool/concreteCalculator/i18n/ru.ts +201 -0
  55. package/src/tool/concreteCalculator/i18n/sv.ts +201 -0
  56. package/src/tool/concreteCalculator/i18n/tr.ts +201 -0
  57. package/src/tool/concreteCalculator/i18n/zh.ts +201 -0
  58. package/src/tool/concreteCalculator/index.ts +17 -5
  59. package/src/tool/cutOptimizer/i18n/de.ts +178 -0
  60. package/src/tool/cutOptimizer/i18n/id.ts +178 -0
  61. package/src/tool/cutOptimizer/i18n/it.ts +178 -0
  62. package/src/tool/cutOptimizer/i18n/ja.ts +178 -0
  63. package/src/tool/cutOptimizer/i18n/ko.ts +178 -0
  64. package/src/tool/cutOptimizer/i18n/nl.ts +178 -0
  65. package/src/tool/cutOptimizer/i18n/pl.ts +178 -0
  66. package/src/tool/cutOptimizer/i18n/pt.ts +178 -0
  67. package/src/tool/cutOptimizer/i18n/ru.ts +178 -0
  68. package/src/tool/cutOptimizer/i18n/sv.ts +178 -0
  69. package/src/tool/cutOptimizer/i18n/tr.ts +178 -0
  70. package/src/tool/cutOptimizer/i18n/zh.ts +178 -0
  71. package/src/tool/cutOptimizer/index.ts +17 -5
  72. package/src/tool/drillCalculator/i18n/de.ts +137 -0
  73. package/src/tool/drillCalculator/i18n/id.ts +137 -0
  74. package/src/tool/drillCalculator/i18n/it.ts +137 -0
  75. package/src/tool/drillCalculator/i18n/ja.ts +137 -0
  76. package/src/tool/drillCalculator/i18n/ko.ts +137 -0
  77. package/src/tool/drillCalculator/i18n/nl.ts +137 -0
  78. package/src/tool/drillCalculator/i18n/pl.ts +137 -0
  79. package/src/tool/drillCalculator/i18n/pt.ts +137 -0
  80. package/src/tool/drillCalculator/i18n/ru.ts +137 -0
  81. package/src/tool/drillCalculator/i18n/sv.ts +137 -0
  82. package/src/tool/drillCalculator/i18n/tr.ts +137 -0
  83. package/src/tool/drillCalculator/i18n/zh.ts +137 -0
  84. package/src/tool/drillCalculator/index.ts +17 -5
  85. package/src/tool/drillSharpener/i18n/de.ts +120 -0
  86. package/src/tool/drillSharpener/i18n/id.ts +120 -0
  87. package/src/tool/drillSharpener/i18n/it.ts +120 -0
  88. package/src/tool/drillSharpener/i18n/ja.ts +120 -0
  89. package/src/tool/drillSharpener/i18n/ko.ts +120 -0
  90. package/src/tool/drillSharpener/i18n/nl.ts +120 -0
  91. package/src/tool/drillSharpener/i18n/pl.ts +120 -0
  92. package/src/tool/drillSharpener/i18n/pt.ts +120 -0
  93. package/src/tool/drillSharpener/i18n/ru.ts +120 -0
  94. package/src/tool/drillSharpener/i18n/sv.ts +120 -0
  95. package/src/tool/drillSharpener/i18n/tr.ts +120 -0
  96. package/src/tool/drillSharpener/i18n/zh.ts +120 -0
  97. package/src/tool/drillSharpener/index.ts +17 -5
  98. package/src/tool/epoxyCalculator/i18n/de.ts +118 -0
  99. package/src/tool/epoxyCalculator/i18n/id.ts +118 -0
  100. package/src/tool/epoxyCalculator/i18n/it.ts +118 -0
  101. package/src/tool/epoxyCalculator/i18n/ja.ts +118 -0
  102. package/src/tool/epoxyCalculator/i18n/ko.ts +118 -0
  103. package/src/tool/epoxyCalculator/i18n/nl.ts +118 -0
  104. package/src/tool/epoxyCalculator/i18n/pl.ts +118 -0
  105. package/src/tool/epoxyCalculator/i18n/pt.ts +118 -0
  106. package/src/tool/epoxyCalculator/i18n/ru.ts +118 -0
  107. package/src/tool/epoxyCalculator/i18n/sv.ts +118 -0
  108. package/src/tool/epoxyCalculator/i18n/tr.ts +118 -0
  109. package/src/tool/epoxyCalculator/i18n/zh.ts +118 -0
  110. package/src/tool/epoxyCalculator/index.ts +15 -7
  111. package/src/tool/furnitureFit/i18n/de.ts +113 -0
  112. package/src/tool/furnitureFit/i18n/id.ts +113 -0
  113. package/src/tool/furnitureFit/i18n/it.ts +113 -0
  114. package/src/tool/furnitureFit/i18n/ja.ts +113 -0
  115. package/src/tool/furnitureFit/i18n/ko.ts +113 -0
  116. package/src/tool/furnitureFit/i18n/nl.ts +113 -0
  117. package/src/tool/furnitureFit/i18n/pl.ts +113 -0
  118. package/src/tool/furnitureFit/i18n/pt.ts +113 -0
  119. package/src/tool/furnitureFit/i18n/ru.ts +113 -0
  120. package/src/tool/furnitureFit/i18n/sv.ts +113 -0
  121. package/src/tool/furnitureFit/i18n/tr.ts +113 -0
  122. package/src/tool/furnitureFit/i18n/zh.ts +113 -0
  123. package/src/tool/furnitureFit/index.ts +17 -5
  124. package/src/tool/mortarCalculator/i18n/de.ts +129 -0
  125. package/src/tool/mortarCalculator/i18n/id.ts +129 -0
  126. package/src/tool/mortarCalculator/i18n/it.ts +129 -0
  127. package/src/tool/mortarCalculator/i18n/ja.ts +129 -0
  128. package/src/tool/mortarCalculator/i18n/ko.ts +129 -0
  129. package/src/tool/mortarCalculator/i18n/nl.ts +129 -0
  130. package/src/tool/mortarCalculator/i18n/pl.ts +129 -0
  131. package/src/tool/mortarCalculator/i18n/pt.ts +129 -0
  132. package/src/tool/mortarCalculator/i18n/ru.ts +129 -0
  133. package/src/tool/mortarCalculator/i18n/sv.ts +129 -0
  134. package/src/tool/mortarCalculator/i18n/tr.ts +129 -0
  135. package/src/tool/mortarCalculator/i18n/zh.ts +129 -0
  136. package/src/tool/mortarCalculator/index.ts +17 -5
  137. package/src/tool/passepartoutCalculator/i18n/de.ts +108 -0
  138. package/src/tool/passepartoutCalculator/i18n/id.ts +108 -0
  139. package/src/tool/passepartoutCalculator/i18n/it.ts +108 -0
  140. package/src/tool/passepartoutCalculator/i18n/ja.ts +108 -0
  141. package/src/tool/passepartoutCalculator/i18n/ko.ts +108 -0
  142. package/src/tool/passepartoutCalculator/i18n/nl.ts +108 -0
  143. package/src/tool/passepartoutCalculator/i18n/pl.ts +108 -0
  144. package/src/tool/passepartoutCalculator/i18n/pt.ts +108 -0
  145. package/src/tool/passepartoutCalculator/i18n/ru.ts +108 -0
  146. package/src/tool/passepartoutCalculator/i18n/sv.ts +108 -0
  147. package/src/tool/passepartoutCalculator/i18n/tr.ts +108 -0
  148. package/src/tool/passepartoutCalculator/i18n/zh.ts +108 -0
  149. package/src/tool/passepartoutCalculator/index.ts +17 -5
  150. package/src/tool/stairCalculator/i18n/de.ts +144 -0
  151. package/src/tool/stairCalculator/i18n/id.ts +144 -0
  152. package/src/tool/stairCalculator/i18n/it.ts +144 -0
  153. package/src/tool/stairCalculator/i18n/ja.ts +144 -0
  154. package/src/tool/stairCalculator/i18n/ko.ts +144 -0
  155. package/src/tool/stairCalculator/i18n/nl.ts +144 -0
  156. package/src/tool/stairCalculator/i18n/pl.ts +144 -0
  157. package/src/tool/stairCalculator/i18n/pt.ts +144 -0
  158. package/src/tool/stairCalculator/i18n/ru.ts +144 -0
  159. package/src/tool/stairCalculator/i18n/sv.ts +144 -0
  160. package/src/tool/stairCalculator/i18n/tr.ts +144 -0
  161. package/src/tool/stairCalculator/i18n/zh.ts +144 -0
  162. package/src/tool/stairCalculator/index.ts +17 -5
  163. package/src/tool/thermalExpansionCalculator/i18n/de.ts +132 -0
  164. package/src/tool/thermalExpansionCalculator/i18n/id.ts +130 -0
  165. package/src/tool/thermalExpansionCalculator/i18n/it.ts +130 -0
  166. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +130 -0
  167. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +130 -0
  168. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +130 -0
  169. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +130 -0
  170. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +130 -0
  171. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +130 -0
  172. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +130 -0
  173. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +130 -0
  174. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +130 -0
  175. package/src/tool/thermalExpansionCalculator/index.ts +17 -5
  176. package/src/tool/voltageDropCalculator/i18n/de.ts +112 -0
  177. package/src/tool/voltageDropCalculator/i18n/id.ts +110 -0
  178. package/src/tool/voltageDropCalculator/i18n/it.ts +110 -0
  179. package/src/tool/voltageDropCalculator/i18n/ja.ts +110 -0
  180. package/src/tool/voltageDropCalculator/i18n/ko.ts +110 -0
  181. package/src/tool/voltageDropCalculator/i18n/nl.ts +110 -0
  182. package/src/tool/voltageDropCalculator/i18n/pl.ts +110 -0
  183. package/src/tool/voltageDropCalculator/i18n/pt.ts +110 -0
  184. package/src/tool/voltageDropCalculator/i18n/ru.ts +110 -0
  185. package/src/tool/voltageDropCalculator/i18n/sv.ts +110 -0
  186. package/src/tool/voltageDropCalculator/i18n/tr.ts +110 -0
  187. package/src/tool/voltageDropCalculator/i18n/zh.ts +110 -0
  188. package/src/tool/voltageDropCalculator/index.ts +17 -5
  189. package/src/types.ts +1 -1
@@ -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
+ };
@@ -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 = 'kalkulator-kurczliwosci-gliny';
6
+ const title = 'Kalkulator Kurczliwości Gliny: Dokładne Wymiary dla Ceramiki';
7
+ const description =
8
+ 'Oblicz kurczliwość gliny podczas suszenia i wypalania. Projektuj wyroby ceramiczne z dokładnymi wymiarami końcowymi.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Dlaczego glina się kurczy?',
13
+ answer:
14
+ 'Glina kurczy się głównie z powodu utraty wody. Najpierw następuje suszenie (odparowanie wody spomiędzy cząsteczek), a następnie wypalanie (usuwanie wody związanej chemicznie i spiekanie cząsteczek).',
15
+ },
16
+ {
17
+ question: 'Jaki jest normalny procent kurczliwości?',
18
+ answer:
19
+ 'Zależy to od masy ceramicznej. Gliniane naczynia (fajans) zazwyczaj kurczą się o 5-10%, podczas gdy kamionka i porcelana mogą osiągnąć 12-15% ze względu na większy stopień zeszklenia.',
20
+ },
21
+ {
22
+ question: 'Jak zmierzyć kurczliwość własnej gliny?',
23
+ answer:
24
+ 'Utwórz płytkę testową o wymiarach dokładnie 10 cm. Pozostaw ją do wyschnięcia i zmierz (kurczliwość podczas suszenia). Wypal ją w docelowej temperaturze i zmierz ponownie (kurczliwość całkowita). Różnica poda Ci dokładny procent.',
25
+ },
26
+ {
27
+ question: 'Co jeśli mój wyrób pęka podczas suszenia?',
28
+ answer:
29
+ 'Zazwyczaj oznacza to zbyt szybkie lub nierównomierne suszenie. Cienkie strefy tracą wodę szybciej niż grube, co generuje napięcia. Przykryj wyroby folią, aby spowolnić ten proces.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Zmierz wyrób na mokro',
36
+ text: 'Pobierz dokładne wymiary wyrobu tuż po toczeniu lub modelowaniu, gdy posiada on jeszcze całą swoją wilgoć.',
37
+ },
38
+ {
39
+ name: 'Wprowadź współczynnik kurczliwości',
40
+ text: 'Poszukaj na opakowaniu gliny procentu kurczliwości całkowitej (suszenie + wypalanie) podanego przez producenta.',
41
+ },
42
+ {
43
+ name: 'Uzyskaj oczekiwane wymiary końcowe',
44
+ text: 'Użyj kalkulatora, aby dowiedzieć się, jakie wymiary będzie miał Twój wyrób po wyjęciu z pieca i odpowiednio zaplanuj dopasowania lub pokrywki.',
45
+ },
46
+ {
47
+ name: 'Obliczenie odwrotne dla celów',
48
+ text: 'Jeśli potrzebujesz, aby Twój wyrób miał na końcu dokładnie X cm, użyj obliczenia odwrotnego, aby wiedzieć, jaki rozmiar powinien mieć na kole.',
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: 'pl',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ClayCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Często Zadawane Pytania',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referencje',
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: 'Fizyka Gliny: Kurczliwość i Ekspansja',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: 'Glina to żywy materiał, który zmienia rozmiar podczas całego procesu ceramicznego. Od momentu uformowania mokrego wyrobu do chwili wyjęcia go z pieca, może on stracić od 8% do 15% swojej pierwotnej wielkości. Obliczenie tej kurczliwości jest kluczowe dla tworzenia przedmiotów o dokładnie takich wymiarach, jakich potrzebujesz.',
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ {
119
+ type: 'card',
120
+ title: 'Fazy Kurczliwości',
121
+ html: '<p><strong>1. Suszenie (Mokre → Suche):</strong> Tracąc wodę, cząsteczki gliny zbliżają się do siebie. Jest to największa kurczliwość (4-8%). Grube wyroby mogą pękać, jeśli schną zbyt szybko.</p><p><strong>2. Wypalanie (Suche → Biskwit):</strong> Pomiędzy 900-1000°C glina przechodzi nieodwracalne zmiany chemiczne. Dodatkowa kurczliwość biskwitu wynosi 2-4%. Wyrób staje się porowaty, ale wytrzymały.</p><p><strong>3. Zeszklenie (Wysoka Temperatura):</strong> Przy 1200-1300°C glina ulega zeszkleniu. Końcowa kurczliwość wynosi 1-3%. Kamionka i porcelana osiągają swoją maksymalną gęstość.</p>',
122
+ },
123
+ {
124
+ type: 'card',
125
+ title: 'Zmienne Wpływające',
126
+ html: '<ul><li><strong>Rodzaj gliny:</strong> Gliny czerwone kurczą się mniej (8-10%) niż porcelany (12-15%).</li><li><strong>Grubość ścianki:</strong> Cienkie ścianki kurczą się bardziej równomiernie niż grube.</li><li><strong>Temperatura wypalania:</strong> Im wyższa temperatura, tym większa kurczliwość i zeszklenie.</li><li><strong>Zawartość szamotu:</strong> Dodanie szamotu (zmielonej, wypalonej już gliny) zmniejsza kurczliwość.</li></ul>',
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Zastosowania Praktyczne',
133
+ level: 2,
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Projektowanie Form',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'Jeśli potrzebujesz filiżanki o końcowej średnicy 8 cm, a Twoja glina kurczy się o 12%, musisz wykonać formę o rozmiarze <strong>9,1 cm</strong>. To obliczenie odwrotne jest krytyczne w produkcji seryjnej.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Pokrywki i Montaże',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Tworząc elementy, które muszą do siebie pasować (imbryk + pokrywka, słoik + pokrywka), oba należy wykonać z tej samej gliny i wypalać razem, aby zagwarantować, że skurczą się jednakowo. Różnica rzędu 1% może zrujnować dopasowanie.',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Rzeźba Monumentalna',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'W dużych obiektach różnica w kurczeniu się grubych i cienkich sekcji może powodować pęknięcia. Doświadczeni ceramicy kompensują to, zostawiając grubsze ścianki w strefach, o których wiedzą, że skurczą się bardziej.',
161
+ },
162
+ ],
163
+ ui: {
164
+ labelInitialSize: 'Rozmiar Początkowy (mm)',
165
+ labelShrinkage: 'Procent Kurczliwości (%)',
166
+ labelLow: 'Niska (Terakota)',
167
+ labelMedium: 'Średnia (Kamionka)',
168
+ labelHigh: 'Wysoka (Porcelana)',
169
+ presetTerracota: 'Terakota (8%)',
170
+ presetGres: 'Kamionka (12%)',
171
+ presetPorcelana: 'Porcelana (15%)',
172
+ labelResult: 'Wynik',
173
+ labelFinalSize: 'Rozmiar Końcowy:',
174
+ labelLoss: 'Całkowita Strata:',
175
+ tipText:
176
+ 'Aby obliczyć rozmiar początkowy potrzebny do uzyskania konkretnego rozmiaru końcowego, podziel pożądany rozmiar przez (1 - kurczliwość/100).',
177
+ labelInitialBadge: 'Początkowy:',
178
+ labelFinalBadge: 'mm końcowy',
179
+ labelLossBadge: 'Strata:',
180
+ labelInitialArea: 'Obszar Początkowy',
181
+ labelFinalArea: 'Obszar Końcowy',
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 = 'calculadora-argila';
6
+ const title = 'Calculadora de Contração de Argila: Dimensões Exatas para Cerâmica';
7
+ const description =
8
+ 'Calcule a contração da argila na secagem e cozedura. Desenhe peças cerâmicas com as dimensões finais exatas.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Por que é que a argila contrai?',
13
+ answer:
14
+ 'A argila contrai principalmente devido à perda de água. Primeiro ocorre a secagem (evaporação da água entre as partículas) e depois a cozedura (eliminação da água quimicamente combinada e sinterização das partículas).',
15
+ },
16
+ {
17
+ question: 'Qual é a percentagem de contração normal?',
18
+ answer:
19
+ 'Depende da pasta cerâmica. O barro comum (faiança) costuma contrair entre 5-10%, enquanto o grés e a porcelana podem chegar aos 12-15% devido à sua maior vitrificação.',
20
+ },
21
+ {
22
+ question: 'Como meço a contração da minha própria argila?',
23
+ answer:
24
+ 'Crie uma placa de teste com exatamente 10 cm. Deixe-a secar e meça-a (contração de secagem). Coza-a à temperatura final e volte a medir (contração total). A diferença dar-lhe-á a percentagem exata.',
25
+ },
26
+ {
27
+ question: 'O que acontece se a minha peça rachar ao secar?',
28
+ answer:
29
+ 'Geralmente indica uma secagem demasiado rápida ou desigual. As zonas finas perdem água antes das grossas, gerando tensões. Cubra as peças com plástico para abrandar o processo.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Medir a peça em húmido',
36
+ text: 'Tome as dimensões exatas da sua peça logo após o trabalho no torno ou modelação, quando ainda tem toda a sua humidade.',
37
+ },
38
+ {
39
+ name: 'Introduzir o coeficiente de contração',
40
+ text: 'Procure na embalagem da sua argila a percentagem de contração total (secagem + cozedura) fornecida pelo fabricante.',
41
+ },
42
+ {
43
+ name: 'Obter dimensões finais esperadas',
44
+ text: 'Use a calculadora para saber quanto medirá a sua peça após passar pelo forno e planeie os seus encaixes ou tampas de acordo.',
45
+ },
46
+ {
47
+ name: 'Cálculo inverso para objetivos',
48
+ text: 'Se precisar que a sua peça meça exactamente X cm no final, use o cálculo inverso para saber que tamanho deve ter no torno.',
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: 'pt',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ClayCalculatorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Perguntas Frequentes',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referências',
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: 'A Física da Argila: Contração e Expansão',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: 'A argila é um material vivo que muda de tamanho durante todo o processo cerâmico. Desde o momento em que molda uma peça húmida até que sai do forno, pode perder entre 8% e 15% do seu tamanho original. Calcular esta contração é fundamental para criar peças com as dimensões exatas de que necessita.',
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ {
119
+ type: 'card',
120
+ title: 'Fases de Contração',
121
+ html: '<p><strong>1. Secagem (Húmido → Seco):</strong> Ao perder água, as partículas de argila aproximam-se. Esta é a maior contração (4-8%). As peças grossas podem rachar se secarem demasiado depressa.</p><p><strong>2. Cozedura (Seco → Chacota):</strong> Entre 900-1000°C, a argila sofre mudanças químicas irreversíveis. Contração adicional de 2-4%. A peça torna-se porosa mas resistente.</p><p><strong>3. Vitrificação (Alta Temperatura):</strong> A 1200-1300°C, a argila vitrifica. Contração final de 1-3%. O grés e a porcelana alcançam a sua densidade máxima.</p>',
122
+ },
123
+ {
124
+ type: 'card',
125
+ title: 'Variáveis que Afetam',
126
+ html: '<ul><li><strong>Tipo de argila:</strong> As argilas vermelhas contraem menos (8-10%) que as porcelanas (12-15%).</li><li><strong>Espessura de parede:</strong> Paredes finas contraem de forma mais uniforme que as grossas.</li><li><strong>Temperatura de cozedura:</strong> Quanto maior a temperatura, maior a contração e vitrificação.</li><li><strong>Conteúdo de chamote:</strong> Adicionar chamote (argila já cozida moída) reduz a contração.</li></ul>',
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Aplicações Práticas',
133
+ level: 2,
134
+ },
135
+ {
136
+ type: 'title',
137
+ text: 'Design de Moldes',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
+ html: 'Se precisar de uma chávena com 8 cm de diâmetro final e a sua argila contrair 12%, deve fazer o molde com <strong>9,1 cm</strong>. Este cálculo inverso é crítico na produção em série.',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Tampas e Assemblagens',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Quando cria peças que devem encaixar (bule + tampa, frasco + tampa), ambas devem ser feitas com a mesma argila e cozidas juntas para garantir que contraiam por igual. Uma diferença de 1% pode arruinar o ajuste.',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Escultura Monumental',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'Em peças grandes, a contração diferencial entre zonas grossas e finas pode causar fendas. Os ceramistas experientes compensam deixando as paredes mais grossas em zonas que sabem que irão contrair mais.',
161
+ },
162
+ ],
163
+ ui: {
164
+ labelInitialSize: 'Tamanho Inicial (mm)',
165
+ labelShrinkage: 'Percentagem de Contração (%)',
166
+ labelLow: 'Baixa (Terracota)',
167
+ labelMedium: 'Média (Grés)',
168
+ labelHigh: 'Alta (Porcelana)',
169
+ presetTerracota: 'Terracota (8%)',
170
+ presetGres: 'Grés (12%)',
171
+ presetPorcelana: 'Porcelana (15%)',
172
+ labelResult: 'Resultado',
173
+ labelFinalSize: 'Tamanho Final:',
174
+ labelLoss: 'Perda Total:',
175
+ tipText:
176
+ 'Para calcular o tamanho inicial necessário para obter um tamanho final específico, divida o tamanho desejado por (1 - contração/100).',
177
+ labelInitialBadge: 'Inicial:',
178
+ labelFinalBadge: 'mm final',
179
+ labelLossBadge: 'Perda:',
180
+ labelInitialArea: 'Área Inicial',
181
+ labelFinalArea: 'Área Final',
182
+ },
183
+ };