@jjlmoya/utils-diy 1.11.0 → 1.13.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 (273) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +2 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +7 -9
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/balusterCalculator/bibliography.astro +2 -10
  11. package/src/tool/balusterCalculator/bibliography.ts +16 -0
  12. package/src/tool/balusterCalculator/i18n/de.ts +2 -15
  13. package/src/tool/balusterCalculator/i18n/en.ts +2 -15
  14. package/src/tool/balusterCalculator/i18n/es.ts +2 -15
  15. package/src/tool/balusterCalculator/i18n/fr.ts +2 -15
  16. package/src/tool/balusterCalculator/i18n/id.ts +2 -15
  17. package/src/tool/balusterCalculator/i18n/it.ts +2 -15
  18. package/src/tool/balusterCalculator/i18n/ja.ts +2 -15
  19. package/src/tool/balusterCalculator/i18n/ko.ts +2 -15
  20. package/src/tool/balusterCalculator/i18n/nl.ts +2 -15
  21. package/src/tool/balusterCalculator/i18n/pl.ts +2 -15
  22. package/src/tool/balusterCalculator/i18n/pt.ts +2 -15
  23. package/src/tool/balusterCalculator/i18n/ru.ts +2 -15
  24. package/src/tool/balusterCalculator/i18n/sv.ts +2 -15
  25. package/src/tool/balusterCalculator/i18n/tr.ts +2 -15
  26. package/src/tool/balusterCalculator/i18n/zh.ts +2 -15
  27. package/src/tool/balusterCalculator/seo.astro +1 -1
  28. package/src/tool/clayCalculator/bibliography.astro +2 -10
  29. package/src/tool/clayCalculator/bibliography.ts +12 -0
  30. package/src/tool/clayCalculator/i18n/de.ts +2 -11
  31. package/src/tool/clayCalculator/i18n/en.ts +2 -11
  32. package/src/tool/clayCalculator/i18n/es.ts +2 -11
  33. package/src/tool/clayCalculator/i18n/fr.ts +2 -11
  34. package/src/tool/clayCalculator/i18n/id.ts +2 -11
  35. package/src/tool/clayCalculator/i18n/it.ts +2 -11
  36. package/src/tool/clayCalculator/i18n/ja.ts +2 -11
  37. package/src/tool/clayCalculator/i18n/ko.ts +2 -11
  38. package/src/tool/clayCalculator/i18n/nl.ts +2 -11
  39. package/src/tool/clayCalculator/i18n/pl.ts +2 -11
  40. package/src/tool/clayCalculator/i18n/pt.ts +2 -11
  41. package/src/tool/clayCalculator/i18n/ru.ts +2 -11
  42. package/src/tool/clayCalculator/i18n/sv.ts +2 -11
  43. package/src/tool/clayCalculator/i18n/tr.ts +2 -11
  44. package/src/tool/clayCalculator/i18n/zh.ts +2 -11
  45. package/src/tool/clayCalculator/seo.astro +1 -1
  46. package/src/tool/concreteCalculator/bibliography.astro +2 -9
  47. package/src/tool/concreteCalculator/bibliography.ts +7 -0
  48. package/src/tool/concreteCalculator/i18n/de.ts +2 -15
  49. package/src/tool/concreteCalculator/i18n/en.ts +2 -15
  50. package/src/tool/concreteCalculator/i18n/es.ts +2 -15
  51. package/src/tool/concreteCalculator/i18n/fr.ts +2 -15
  52. package/src/tool/concreteCalculator/i18n/id.ts +2 -15
  53. package/src/tool/concreteCalculator/i18n/it.ts +2 -15
  54. package/src/tool/concreteCalculator/i18n/ja.ts +2 -15
  55. package/src/tool/concreteCalculator/i18n/ko.ts +2 -15
  56. package/src/tool/concreteCalculator/i18n/nl.ts +2 -15
  57. package/src/tool/concreteCalculator/i18n/pl.ts +2 -15
  58. package/src/tool/concreteCalculator/i18n/pt.ts +2 -15
  59. package/src/tool/concreteCalculator/i18n/ru.ts +2 -15
  60. package/src/tool/concreteCalculator/i18n/sv.ts +2 -15
  61. package/src/tool/concreteCalculator/i18n/tr.ts +2 -15
  62. package/src/tool/concreteCalculator/i18n/zh.ts +2 -15
  63. package/src/tool/concreteCalculator/seo.astro +2 -1
  64. package/src/tool/cutOptimizer/bibliography.astro +2 -9
  65. package/src/tool/cutOptimizer/bibliography.ts +12 -0
  66. package/src/tool/cutOptimizer/i18n/de.ts +2 -11
  67. package/src/tool/cutOptimizer/i18n/en.ts +2 -11
  68. package/src/tool/cutOptimizer/i18n/es.ts +2 -11
  69. package/src/tool/cutOptimizer/i18n/fr.ts +2 -11
  70. package/src/tool/cutOptimizer/i18n/id.ts +2 -11
  71. package/src/tool/cutOptimizer/i18n/it.ts +2 -11
  72. package/src/tool/cutOptimizer/i18n/ja.ts +2 -11
  73. package/src/tool/cutOptimizer/i18n/ko.ts +2 -11
  74. package/src/tool/cutOptimizer/i18n/nl.ts +2 -11
  75. package/src/tool/cutOptimizer/i18n/pl.ts +2 -11
  76. package/src/tool/cutOptimizer/i18n/pt.ts +2 -11
  77. package/src/tool/cutOptimizer/i18n/ru.ts +2 -11
  78. package/src/tool/cutOptimizer/i18n/sv.ts +2 -11
  79. package/src/tool/cutOptimizer/i18n/tr.ts +2 -11
  80. package/src/tool/cutOptimizer/i18n/zh.ts +2 -11
  81. package/src/tool/cutOptimizer/seo.astro +2 -1
  82. package/src/tool/drillCalculator/bibliography.astro +2 -9
  83. package/src/tool/drillCalculator/bibliography.ts +12 -0
  84. package/src/tool/drillCalculator/i18n/de.ts +2 -5
  85. package/src/tool/drillCalculator/i18n/en.ts +2 -5
  86. package/src/tool/drillCalculator/i18n/es.ts +2 -5
  87. package/src/tool/drillCalculator/i18n/fr.ts +2 -5
  88. package/src/tool/drillCalculator/i18n/id.ts +2 -5
  89. package/src/tool/drillCalculator/i18n/it.ts +2 -5
  90. package/src/tool/drillCalculator/i18n/ja.ts +2 -5
  91. package/src/tool/drillCalculator/i18n/ko.ts +2 -5
  92. package/src/tool/drillCalculator/i18n/nl.ts +2 -5
  93. package/src/tool/drillCalculator/i18n/pl.ts +2 -5
  94. package/src/tool/drillCalculator/i18n/pt.ts +2 -5
  95. package/src/tool/drillCalculator/i18n/ru.ts +2 -5
  96. package/src/tool/drillCalculator/i18n/sv.ts +2 -5
  97. package/src/tool/drillCalculator/i18n/tr.ts +2 -5
  98. package/src/tool/drillCalculator/i18n/zh.ts +2 -5
  99. package/src/tool/drillCalculator/seo.astro +2 -1
  100. package/src/tool/drillSharpener/bibliography.astro +2 -9
  101. package/src/tool/drillSharpener/bibliography.ts +16 -0
  102. package/src/tool/drillSharpener/i18n/de.ts +2 -5
  103. package/src/tool/drillSharpener/i18n/en.ts +2 -6
  104. package/src/tool/drillSharpener/i18n/es.ts +2 -6
  105. package/src/tool/drillSharpener/i18n/fr.ts +2 -6
  106. package/src/tool/drillSharpener/i18n/id.ts +2 -5
  107. package/src/tool/drillSharpener/i18n/it.ts +2 -5
  108. package/src/tool/drillSharpener/i18n/ja.ts +2 -5
  109. package/src/tool/drillSharpener/i18n/ko.ts +2 -5
  110. package/src/tool/drillSharpener/i18n/nl.ts +2 -5
  111. package/src/tool/drillSharpener/i18n/pl.ts +2 -5
  112. package/src/tool/drillSharpener/i18n/pt.ts +2 -5
  113. package/src/tool/drillSharpener/i18n/ru.ts +2 -5
  114. package/src/tool/drillSharpener/i18n/sv.ts +2 -5
  115. package/src/tool/drillSharpener/i18n/tr.ts +2 -5
  116. package/src/tool/drillSharpener/i18n/zh.ts +2 -5
  117. package/src/tool/drillSharpener/seo.astro +2 -1
  118. package/src/tool/epoxyCalculator/bibliography.astro +2 -10
  119. package/src/tool/epoxyCalculator/bibliography.ts +20 -0
  120. package/src/tool/epoxyCalculator/i18n/de.ts +2 -5
  121. package/src/tool/epoxyCalculator/i18n/en.ts +2 -19
  122. package/src/tool/epoxyCalculator/i18n/es.ts +2 -19
  123. package/src/tool/epoxyCalculator/i18n/fr.ts +2 -19
  124. package/src/tool/epoxyCalculator/i18n/id.ts +2 -5
  125. package/src/tool/epoxyCalculator/i18n/it.ts +2 -5
  126. package/src/tool/epoxyCalculator/i18n/ja.ts +2 -5
  127. package/src/tool/epoxyCalculator/i18n/ko.ts +2 -5
  128. package/src/tool/epoxyCalculator/i18n/nl.ts +2 -5
  129. package/src/tool/epoxyCalculator/i18n/pl.ts +2 -5
  130. package/src/tool/epoxyCalculator/i18n/pt.ts +2 -5
  131. package/src/tool/epoxyCalculator/i18n/ru.ts +2 -5
  132. package/src/tool/epoxyCalculator/i18n/sv.ts +2 -5
  133. package/src/tool/epoxyCalculator/i18n/tr.ts +2 -5
  134. package/src/tool/epoxyCalculator/i18n/zh.ts +2 -5
  135. package/src/tool/epoxyCalculator/seo.astro +1 -1
  136. package/src/tool/furnitureFit/bibliography.astro +2 -9
  137. package/src/tool/furnitureFit/bibliography.ts +12 -0
  138. package/src/tool/furnitureFit/i18n/de.ts +2 -5
  139. package/src/tool/furnitureFit/i18n/en.ts +2 -5
  140. package/src/tool/furnitureFit/i18n/es.ts +2 -5
  141. package/src/tool/furnitureFit/i18n/fr.ts +2 -5
  142. package/src/tool/furnitureFit/i18n/id.ts +2 -5
  143. package/src/tool/furnitureFit/i18n/it.ts +2 -5
  144. package/src/tool/furnitureFit/i18n/ja.ts +2 -5
  145. package/src/tool/furnitureFit/i18n/ko.ts +2 -5
  146. package/src/tool/furnitureFit/i18n/nl.ts +2 -5
  147. package/src/tool/furnitureFit/i18n/pl.ts +2 -5
  148. package/src/tool/furnitureFit/i18n/pt.ts +2 -5
  149. package/src/tool/furnitureFit/i18n/ru.ts +2 -5
  150. package/src/tool/furnitureFit/i18n/sv.ts +2 -5
  151. package/src/tool/furnitureFit/i18n/tr.ts +2 -5
  152. package/src/tool/furnitureFit/i18n/zh.ts +2 -5
  153. package/src/tool/furnitureFit/seo.astro +2 -1
  154. package/src/tool/mortarCalculator/bibliography.astro +2 -9
  155. package/src/tool/mortarCalculator/bibliography.ts +20 -0
  156. package/src/tool/mortarCalculator/i18n/de.ts +2 -5
  157. package/src/tool/mortarCalculator/i18n/en.ts +2 -19
  158. package/src/tool/mortarCalculator/i18n/es.ts +2 -19
  159. package/src/tool/mortarCalculator/i18n/fr.ts +2 -19
  160. package/src/tool/mortarCalculator/i18n/id.ts +2 -5
  161. package/src/tool/mortarCalculator/i18n/it.ts +2 -5
  162. package/src/tool/mortarCalculator/i18n/ja.ts +2 -5
  163. package/src/tool/mortarCalculator/i18n/ko.ts +2 -5
  164. package/src/tool/mortarCalculator/i18n/nl.ts +2 -5
  165. package/src/tool/mortarCalculator/i18n/pl.ts +2 -5
  166. package/src/tool/mortarCalculator/i18n/pt.ts +2 -5
  167. package/src/tool/mortarCalculator/i18n/ru.ts +2 -5
  168. package/src/tool/mortarCalculator/i18n/sv.ts +2 -5
  169. package/src/tool/mortarCalculator/i18n/tr.ts +2 -5
  170. package/src/tool/mortarCalculator/i18n/zh.ts +2 -5
  171. package/src/tool/mortarCalculator/seo.astro +2 -1
  172. package/src/tool/passepartoutCalculator/bibliography.astro +2 -9
  173. package/src/tool/passepartoutCalculator/bibliography.ts +16 -0
  174. package/src/tool/passepartoutCalculator/i18n/de.ts +2 -6
  175. package/src/tool/passepartoutCalculator/i18n/en.ts +2 -15
  176. package/src/tool/passepartoutCalculator/i18n/es.ts +2 -15
  177. package/src/tool/passepartoutCalculator/i18n/fr.ts +2 -15
  178. package/src/tool/passepartoutCalculator/i18n/id.ts +2 -6
  179. package/src/tool/passepartoutCalculator/i18n/it.ts +2 -6
  180. package/src/tool/passepartoutCalculator/i18n/ja.ts +2 -6
  181. package/src/tool/passepartoutCalculator/i18n/ko.ts +2 -6
  182. package/src/tool/passepartoutCalculator/i18n/nl.ts +2 -6
  183. package/src/tool/passepartoutCalculator/i18n/pl.ts +2 -6
  184. package/src/tool/passepartoutCalculator/i18n/pt.ts +2 -6
  185. package/src/tool/passepartoutCalculator/i18n/ru.ts +2 -6
  186. package/src/tool/passepartoutCalculator/i18n/sv.ts +2 -6
  187. package/src/tool/passepartoutCalculator/i18n/tr.ts +2 -6
  188. package/src/tool/passepartoutCalculator/i18n/zh.ts +2 -6
  189. package/src/tool/passepartoutCalculator/seo.astro +2 -1
  190. package/src/tool/stairCalculator/bibliography.astro +2 -9
  191. package/src/tool/stairCalculator/bibliography.ts +16 -0
  192. package/src/tool/stairCalculator/i18n/de.ts +2 -5
  193. package/src/tool/stairCalculator/i18n/en.ts +2 -6
  194. package/src/tool/stairCalculator/i18n/es.ts +2 -6
  195. package/src/tool/stairCalculator/i18n/fr.ts +2 -6
  196. package/src/tool/stairCalculator/i18n/id.ts +2 -5
  197. package/src/tool/stairCalculator/i18n/it.ts +2 -5
  198. package/src/tool/stairCalculator/i18n/ja.ts +2 -5
  199. package/src/tool/stairCalculator/i18n/ko.ts +2 -5
  200. package/src/tool/stairCalculator/i18n/nl.ts +2 -5
  201. package/src/tool/stairCalculator/i18n/pl.ts +2 -5
  202. package/src/tool/stairCalculator/i18n/pt.ts +2 -5
  203. package/src/tool/stairCalculator/i18n/ru.ts +2 -5
  204. package/src/tool/stairCalculator/i18n/sv.ts +2 -5
  205. package/src/tool/stairCalculator/i18n/tr.ts +2 -5
  206. package/src/tool/stairCalculator/i18n/zh.ts +2 -5
  207. package/src/tool/stairCalculator/seo.astro +2 -1
  208. package/src/tool/thermalExpansionCalculator/bibliography.astro +2 -9
  209. package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -0
  210. package/src/tool/thermalExpansionCalculator/i18n/de.ts +2 -6
  211. package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -6
  212. package/src/tool/thermalExpansionCalculator/i18n/es.ts +2 -6
  213. package/src/tool/thermalExpansionCalculator/i18n/fr.ts +2 -6
  214. package/src/tool/thermalExpansionCalculator/i18n/id.ts +2 -6
  215. package/src/tool/thermalExpansionCalculator/i18n/it.ts +2 -6
  216. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +2 -6
  217. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +2 -6
  218. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +2 -6
  219. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +2 -6
  220. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +2 -6
  221. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +2 -6
  222. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +2 -6
  223. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +2 -6
  224. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +2 -6
  225. package/src/tool/thermalExpansionCalculator/seo.astro +2 -1
  226. package/src/tool/voltageDropCalculator/bibliography.astro +2 -9
  227. package/src/tool/voltageDropCalculator/bibliography.ts +16 -0
  228. package/src/tool/voltageDropCalculator/i18n/de.ts +2 -5
  229. package/src/tool/voltageDropCalculator/i18n/en.ts +2 -6
  230. package/src/tool/voltageDropCalculator/i18n/es.ts +2 -6
  231. package/src/tool/voltageDropCalculator/i18n/fr.ts +2 -6
  232. package/src/tool/voltageDropCalculator/i18n/id.ts +2 -5
  233. package/src/tool/voltageDropCalculator/i18n/it.ts +2 -5
  234. package/src/tool/voltageDropCalculator/i18n/ja.ts +2 -5
  235. package/src/tool/voltageDropCalculator/i18n/ko.ts +2 -5
  236. package/src/tool/voltageDropCalculator/i18n/nl.ts +2 -5
  237. package/src/tool/voltageDropCalculator/i18n/pl.ts +2 -5
  238. package/src/tool/voltageDropCalculator/i18n/pt.ts +2 -5
  239. package/src/tool/voltageDropCalculator/i18n/ru.ts +2 -5
  240. package/src/tool/voltageDropCalculator/i18n/sv.ts +2 -5
  241. package/src/tool/voltageDropCalculator/i18n/tr.ts +2 -5
  242. package/src/tool/voltageDropCalculator/i18n/zh.ts +2 -5
  243. package/src/tool/voltageDropCalculator/seo.astro +2 -1
  244. package/src/tool/workshopFractionConverter/bibliography.astro +6 -0
  245. package/src/tool/workshopFractionConverter/bibliography.ts +12 -0
  246. package/src/tool/workshopFractionConverter/client.ts +183 -0
  247. package/src/tool/workshopFractionConverter/component.astro +226 -0
  248. package/src/tool/workshopFractionConverter/converter.ts +110 -0
  249. package/src/tool/workshopFractionConverter/engine.ts +223 -0
  250. package/src/tool/workshopFractionConverter/entry.ts +24 -0
  251. package/src/tool/workshopFractionConverter/i18n/de.ts +147 -0
  252. package/src/tool/workshopFractionConverter/i18n/en.ts +147 -0
  253. package/src/tool/workshopFractionConverter/i18n/es.ts +147 -0
  254. package/src/tool/workshopFractionConverter/i18n/fr.ts +147 -0
  255. package/src/tool/workshopFractionConverter/i18n/id.ts +147 -0
  256. package/src/tool/workshopFractionConverter/i18n/it.ts +147 -0
  257. package/src/tool/workshopFractionConverter/i18n/ja.ts +147 -0
  258. package/src/tool/workshopFractionConverter/i18n/ko.ts +147 -0
  259. package/src/tool/workshopFractionConverter/i18n/nl.ts +147 -0
  260. package/src/tool/workshopFractionConverter/i18n/pl.ts +147 -0
  261. package/src/tool/workshopFractionConverter/i18n/pt.ts +147 -0
  262. package/src/tool/workshopFractionConverter/i18n/ru.ts +147 -0
  263. package/src/tool/workshopFractionConverter/i18n/sv.ts +147 -0
  264. package/src/tool/workshopFractionConverter/i18n/tr.ts +147 -0
  265. package/src/tool/workshopFractionConverter/i18n/zh.ts +147 -0
  266. package/src/tool/workshopFractionConverter/index.ts +11 -0
  267. package/src/tool/workshopFractionConverter/seo.astro +15 -0
  268. package/src/tool/workshopFractionConverter/types-client.ts +89 -0
  269. package/src/tool/workshopFractionConverter/ui-updater.ts +94 -0
  270. package/src/tool/workshopFractionConverter/ui.ts +38 -0
  271. package/src/tool/workshopFractionConverter/workshop-fraction-converter.css +563 -0
  272. package/src/tools.ts +2 -1
  273. package/src/types.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'cut-optimizer';
6
7
  const title = '목재 및 판재 절단 최적화 계산기';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: '자주 묻는 질문',
91
92
  faq: faqData,
92
- bibliographyTitle: '기술 참고 자료',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'zaagplan-optimalisatie';
6
7
  const title = 'Zaagplan Optimalisatie voor Latten en Platen';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Veelgestelde Vragen',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technische Referenties',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'optymalizator-ciecia';
6
7
  const title = 'Optymalizator Cięcia Listew i Płyt';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Często Zadawane Pytania',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencje Techniczne',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'otimizador-corte';
6
7
  const title = 'Otimizador de Cortes de Ripas e Painéis';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Perguntas Frequentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referências Técnicas',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'optimizator-raskroya';
6
7
  const title = 'Оптимизатор раскроя полотна и досок';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Часто задаваемые вопросы',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Технические справочники',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kapoptimering';
6
7
  const title = 'Kapoptimering för reglar och skivor';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Vanliga frågor',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Tekniska referenser',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kesim-optimizasyonu';
6
7
  const title = 'Çıta ve Panel Kesim Optimizasyonu';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: 'Sıkça Sorulan Sorular',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Teknik Referanslar',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { CutOptimizerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'cut-optimizer';
6
7
  const title = '木材与板材切割优化计算器';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<CutOptimizerUI> = {
89
90
  description,
90
91
  faqTitle: '常见问题',
91
92
  faq: faqData,
92
- bibliographyTitle: '技术参考',
93
- bibliography: [
94
- {
95
- name: 'Cutting Stock Problem: Wikipedia',
96
- url: 'https://en.wikipedia.org/wiki/Cutting_stock_problem',
97
- },
98
- {
99
- name: 'Bin Packing Problem: Wolfram MathWorld',
100
- url: 'https://mathworld.wolfram.com/BinPackingProblem.html',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -6,9 +6,10 @@ import type { KnownLocale } from '../../types';
6
6
  interface Props {
7
7
  locale?: KnownLocale;
8
8
  }
9
+
9
10
  const { locale = 'es' } = Astro.props;
10
11
  const content = await cutOptimizer.i18n[locale]?.();
11
12
  if (!content) return null;
12
13
  ---
13
14
 
14
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,13 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { drillCalculator } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
- const { locale = 'es' } = Astro.props;
10
- const content = await drillCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae',
6
+ url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions',
7
+ },
8
+ {
9
+ name: 'Machine Calculations and Workshop Tables — Machinery Handbook',
10
+ url: 'https://www.google.com/search?q=machinery+handbook+cutting+speeds',
11
+ },
12
+ ];
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drehzahlrechner-bohren-fraesen';
6
7
  const title = 'Drehzahlrechner Bohren und Fräsen';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Häufig gestellte Fragen',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technische Referenzen',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Formeln für Schnittgeschwindigkeit und Vorschub', url: 'https://www.sandvik.coromant.com/de-de/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Tabellenbuch Metall', url: 'https://www.europa-lehrmittel.de/' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = 'Drill and Machining RPM Calculator';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Frequently Asked Questions',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technical References',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Machine Calculations and Workshop Tables — Machinery Handbook', url: 'https://www.google.com/search?q=machinery+handbook+cutting+speeds' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { DrillCalculatorUI } from '../ui';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Preguntas Frecuentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referencias Técnicas',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Máquinas. Cálculos de taller — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-tours-taraudage';
6
7
  const title = 'Calculateur RPM Perçage et Fraisage';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Questions Fréquentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Références Techniques',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Formules de Vitesse de Coupe et d\'Avance', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Calculs d\'usinage et Tables de l\'Atelier — Manuel du Technicien', url: 'https://www.google.com/search?q=calculs+usinage+vitesses+coupe' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-kecepatan-bor-frais';
6
7
  const title = 'Kalkulator RPM Pemesinan dan Bor';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Pertanyaan Umum',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referensi Teknis',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Mesin. Perhitungan Bengkel — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-giri-trapano-fresa';
6
7
  const title = 'Calcolatore RPM Lavorazione e Perforazione';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Domande Frequenti',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Riferimenti Tecnici',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Macchine. Calcoli d\'officina — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '穴あけ・切削回転数計算機';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'よくある質問',
78
79
  faq: faqData,
79
- bibliographyTitle: '技術リファレンス',
80
- bibliography: [
81
- { name: 'サンドビック・コロマント:切削速度・送り計算式', url: 'https://www.sandvik.coromant.com/ja-jp/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '機械工作計算表', url: 'https://www.google.com/search?q=機械工作計算表+Casillas' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '가공 및 드릴 회전수 계산기';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: '자주 묻는 질문',
78
79
  faq: faqData,
79
- bibliographyTitle: '기술 참고 자료',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '기계 공작법 계산표 — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'toerental-rekenmachine-boren-frezen';
6
7
  const title = 'RPM Toerental Calculator voor Boren en Frezen';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Veelgestelde Vragen',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technische Referenties',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Machines. Werkplaatsberekeningen — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-obrotow-wiercenia-frezowania';
6
7
  const title = 'Kalkulator RPM Obróbki i Wiercenia';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Często Zadawane Pytania',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referencje Techniczne',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Poradnik mechanika — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-usinagem-furo';
6
7
  const title = 'Calculadora RPM de Usinagem e Furação';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Perguntas Frequentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referências Técnicas',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Máquinas. Cálculos de oficina — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+faller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-oborotov-sverleniya';
6
7
  const title = 'Калькулятор оборотов (RPM) для сверления и фрезерования';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Часто задаваемые вопросы',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Технические справочники',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Справочник механика — А.Л. Касильяс (A.L. Casillas)', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'varvtalskalkylator-borrning';
6
7
  const title = 'Varvtalskalkylator för borrning och fräsning';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Vanliga frågor',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Tekniska referenser',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Maskiner. Verkstadsberäkningar — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'matkap-devir-hesaplayici';
6
7
  const title = 'İşleme ve Matkap RPM Hesaplayıcı';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Sıkça Sorulan Sorular',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Teknik Referanslar',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Makineler. Atölye Hesaplamaları — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '钻孔与切削转速计算器';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: '常见问题',
78
79
  faq: faqData,
79
- bibliographyTitle: '技术参考',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: 切削速度与进给率公式', url: 'https://www.sandvik.coromant.com/zh-cn/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '机械加工工艺手册', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  seo: [
@@ -6,9 +6,10 @@ import type { KnownLocale } from '../../types';
6
6
  interface Props {
7
7
  locale?: KnownLocale;
8
8
  }
9
+
9
10
  const { locale = 'es' } = Astro.props;
10
11
  const content = await drillCalculator.i18n[locale]?.();
11
12
  if (!content) return null;
12
13
  ---
13
14
 
14
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,13 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { drillSharpener } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
- const { locale = 'es' } = Astro.props;
10
- const content = await drillSharpener.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Workshop Manual - Drill Bit Sharpening (PDF)',
6
+ url: 'https://www.scribd.com/document/486692441/Afilado-Manual-de-Brocas',
7
+ },
8
+ {
9
+ name: 'Metal Technology - Drill Angles',
10
+ url: 'https://en.wikipedia.org/wiki/Drill_bit',
11
+ },
12
+ {
13
+ name: 'Mechanical Workshop Sharpening Standards',
14
+ url: 'https://www.iso.org/',
15
+ },
16
+ ];