@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,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
+ };
@@ -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 = 'kalkulyator-usadki-gliny';
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
+ 'Создайте тестовую пластину длиной ровно 10 см. Дайте ей высохнуть и измерьте (воздушная усадка). Обожгите ее при конечной температуре и снова измерьте (полная усадка). Разница даст вам точный процент.',
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 см, используйте обратный расчет, чтобы узнать рабочий размер на гончарном круге.',
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: 'ru',
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> Красные глины дают меньшую усадку (8-10%), чем фарфор (12-15%).</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: 'Если вам нужна чашка с конечным диаметром 8 см, а ваша глина дает усадку 12%, вы должны изготовить форму размером <strong>9,1 см</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: 'Начальный размер (мм)',
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: 'мм в итоге',
179
+ labelLossBadge: 'Потеря:',
180
+ labelInitialArea: 'Начальная площадь',
181
+ labelFinalArea: 'Конечная площадь',
182
+ },
183
+ };