@jjlmoya/utils-cooking 1.24.0 → 1.25.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 (249) hide show
  1. package/package.json +1 -1
  2. package/src/entries.ts +3 -1
  3. package/src/index.ts +1 -0
  4. package/src/pages/[locale]/[slug].astro +56 -19
  5. package/src/tests/i18n-titles.test.ts +5 -17
  6. package/src/tests/locale_completeness.test.ts +2 -13
  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/american-kitchen-converter/bibliography.astro +3 -3
  11. package/src/tool/american-kitchen-converter/bibliography.ts +10 -0
  12. package/src/tool/american-kitchen-converter/i18n/de.ts +2 -11
  13. package/src/tool/american-kitchen-converter/i18n/en.ts +2 -11
  14. package/src/tool/american-kitchen-converter/i18n/es.ts +40 -49
  15. package/src/tool/american-kitchen-converter/i18n/fr.ts +2 -21
  16. package/src/tool/american-kitchen-converter/i18n/id.ts +2 -11
  17. package/src/tool/american-kitchen-converter/i18n/it.ts +2 -11
  18. package/src/tool/american-kitchen-converter/i18n/ja.ts +2 -11
  19. package/src/tool/american-kitchen-converter/i18n/ko.ts +2 -11
  20. package/src/tool/american-kitchen-converter/i18n/nl.ts +2 -11
  21. package/src/tool/american-kitchen-converter/i18n/pl.ts +2 -11
  22. package/src/tool/american-kitchen-converter/i18n/pt.ts +2 -11
  23. package/src/tool/american-kitchen-converter/i18n/ru.ts +2 -11
  24. package/src/tool/american-kitchen-converter/i18n/sv.ts +2 -11
  25. package/src/tool/american-kitchen-converter/i18n/tr.ts +2 -11
  26. package/src/tool/american-kitchen-converter/i18n/zh.ts +2 -11
  27. package/src/tool/american-kitchen-converter/seo.astro +11 -4
  28. package/src/tool/banana-ripeness/bibliography.astro +3 -3
  29. package/src/tool/banana-ripeness/bibliography.ts +10 -0
  30. package/src/tool/banana-ripeness/i18n/de.ts +2 -15
  31. package/src/tool/banana-ripeness/i18n/en.ts +36 -49
  32. package/src/tool/banana-ripeness/i18n/es.ts +36 -49
  33. package/src/tool/banana-ripeness/i18n/fr.ts +36 -49
  34. package/src/tool/banana-ripeness/i18n/id.ts +2 -15
  35. package/src/tool/banana-ripeness/i18n/it.ts +2 -15
  36. package/src/tool/banana-ripeness/i18n/ja.ts +2 -15
  37. package/src/tool/banana-ripeness/i18n/ko.ts +2 -15
  38. package/src/tool/banana-ripeness/i18n/nl.ts +2 -15
  39. package/src/tool/banana-ripeness/i18n/pl.ts +2 -15
  40. package/src/tool/banana-ripeness/i18n/pt.ts +2 -15
  41. package/src/tool/banana-ripeness/i18n/ru.ts +2 -15
  42. package/src/tool/banana-ripeness/i18n/sv.ts +2 -15
  43. package/src/tool/banana-ripeness/i18n/tr.ts +2 -15
  44. package/src/tool/banana-ripeness/i18n/zh.ts +2 -15
  45. package/src/tool/banana-ripeness/seo.astro +10 -3
  46. package/src/tool/brine/bibliography.astro +3 -3
  47. package/src/tool/brine/bibliography.ts +6 -0
  48. package/src/tool/brine/i18n/de.ts +4 -19
  49. package/src/tool/brine/i18n/en.ts +3 -17
  50. package/src/tool/brine/i18n/es.ts +4 -19
  51. package/src/tool/brine/i18n/fr.ts +3 -17
  52. package/src/tool/brine/i18n/id.ts +4 -19
  53. package/src/tool/brine/i18n/it.ts +4 -19
  54. package/src/tool/brine/i18n/ja.ts +4 -19
  55. package/src/tool/brine/i18n/ko.ts +4 -19
  56. package/src/tool/brine/i18n/nl.ts +4 -19
  57. package/src/tool/brine/i18n/pl.ts +4 -19
  58. package/src/tool/brine/i18n/pt.ts +4 -19
  59. package/src/tool/brine/i18n/ru.ts +4 -19
  60. package/src/tool/brine/i18n/sv.ts +4 -19
  61. package/src/tool/brine/i18n/tr.ts +4 -19
  62. package/src/tool/brine/i18n/zh.ts +4 -19
  63. package/src/tool/brine/seo.astro +11 -4
  64. package/src/tool/cookware-guide/bibliography.astro +2 -2
  65. package/src/tool/cookware-guide/bibliography.ts +10 -0
  66. package/src/tool/cookware-guide/i18n/de.ts +3 -17
  67. package/src/tool/cookware-guide/i18n/en.ts +3 -17
  68. package/src/tool/cookware-guide/i18n/es.ts +3 -17
  69. package/src/tool/cookware-guide/i18n/fr.ts +3 -17
  70. package/src/tool/cookware-guide/i18n/id.ts +3 -17
  71. package/src/tool/cookware-guide/i18n/it.ts +3 -17
  72. package/src/tool/cookware-guide/i18n/ja.ts +3 -17
  73. package/src/tool/cookware-guide/i18n/ko.ts +3 -17
  74. package/src/tool/cookware-guide/i18n/nl.ts +3 -17
  75. package/src/tool/cookware-guide/i18n/pl.ts +3 -17
  76. package/src/tool/cookware-guide/i18n/pt.ts +3 -17
  77. package/src/tool/cookware-guide/i18n/ru.ts +3 -17
  78. package/src/tool/cookware-guide/i18n/sv.ts +3 -17
  79. package/src/tool/cookware-guide/i18n/tr.ts +3 -17
  80. package/src/tool/cookware-guide/i18n/zh.ts +3 -17
  81. package/src/tool/cookware-guide/seo.astro +11 -4
  82. package/src/tool/egg-timer/bibliography.astro +3 -11
  83. package/src/tool/egg-timer/bibliography.ts +10 -0
  84. package/src/tool/egg-timer/i18n/de.ts +3 -17
  85. package/src/tool/egg-timer/i18n/en.ts +2 -15
  86. package/src/tool/egg-timer/i18n/es.ts +127 -141
  87. package/src/tool/egg-timer/i18n/fr.ts +2 -15
  88. package/src/tool/egg-timer/i18n/id.ts +4 -18
  89. package/src/tool/egg-timer/i18n/it.ts +3 -17
  90. package/src/tool/egg-timer/i18n/ja.ts +3 -17
  91. package/src/tool/egg-timer/i18n/ko.ts +3 -17
  92. package/src/tool/egg-timer/i18n/nl.ts +3 -17
  93. package/src/tool/egg-timer/i18n/pl.ts +3 -17
  94. package/src/tool/egg-timer/i18n/pt.ts +3 -17
  95. package/src/tool/egg-timer/i18n/ru.ts +3 -17
  96. package/src/tool/egg-timer/i18n/sv.ts +3 -17
  97. package/src/tool/egg-timer/i18n/tr.ts +3 -17
  98. package/src/tool/egg-timer/i18n/zh.ts +3 -17
  99. package/src/tool/egg-timer/seo.astro +6 -30
  100. package/src/tool/ingredient-rescaler/bibliography.astro +3 -3
  101. package/src/tool/ingredient-rescaler/bibliography.ts +6 -0
  102. package/src/tool/ingredient-rescaler/i18n/de.ts +3 -17
  103. package/src/tool/ingredient-rescaler/i18n/en.ts +3 -18
  104. package/src/tool/ingredient-rescaler/i18n/es.ts +4 -19
  105. package/src/tool/ingredient-rescaler/i18n/fr.ts +2 -15
  106. package/src/tool/ingredient-rescaler/i18n/id.ts +3 -17
  107. package/src/tool/ingredient-rescaler/i18n/it.ts +3 -17
  108. package/src/tool/ingredient-rescaler/i18n/ja.ts +3 -17
  109. package/src/tool/ingredient-rescaler/i18n/ko.ts +3 -17
  110. package/src/tool/ingredient-rescaler/i18n/nl.ts +3 -17
  111. package/src/tool/ingredient-rescaler/i18n/pl.ts +3 -17
  112. package/src/tool/ingredient-rescaler/i18n/pt.ts +3 -17
  113. package/src/tool/ingredient-rescaler/i18n/ru.ts +3 -17
  114. package/src/tool/ingredient-rescaler/i18n/sv.ts +3 -17
  115. package/src/tool/ingredient-rescaler/i18n/tr.ts +3 -17
  116. package/src/tool/ingredient-rescaler/i18n/zh.ts +3 -17
  117. package/src/tool/ingredient-rescaler/seo.astro +11 -4
  118. package/src/tool/kitchen-timer/bibliography.astro +3 -3
  119. package/src/tool/kitchen-timer/bibliography.ts +10 -0
  120. package/src/tool/kitchen-timer/i18n/de.ts +3 -13
  121. package/src/tool/kitchen-timer/i18n/en.ts +6 -22
  122. package/src/tool/kitchen-timer/i18n/es.ts +6 -22
  123. package/src/tool/kitchen-timer/i18n/fr.ts +6 -22
  124. package/src/tool/kitchen-timer/i18n/id.ts +3 -13
  125. package/src/tool/kitchen-timer/i18n/it.ts +3 -13
  126. package/src/tool/kitchen-timer/i18n/ja.ts +3 -13
  127. package/src/tool/kitchen-timer/i18n/ko.ts +3 -13
  128. package/src/tool/kitchen-timer/i18n/nl.ts +3 -13
  129. package/src/tool/kitchen-timer/i18n/pl.ts +3 -13
  130. package/src/tool/kitchen-timer/i18n/pt.ts +3 -13
  131. package/src/tool/kitchen-timer/i18n/ru.ts +3 -13
  132. package/src/tool/kitchen-timer/i18n/sv.ts +3 -13
  133. package/src/tool/kitchen-timer/i18n/tr.ts +3 -13
  134. package/src/tool/kitchen-timer/i18n/zh.ts +3 -13
  135. package/src/tool/kitchen-timer/seo.astro +10 -3
  136. package/src/tool/meringue-peak/bibliography.astro +3 -3
  137. package/src/tool/meringue-peak/bibliography.ts +14 -0
  138. package/src/tool/meringue-peak/i18n/de.ts +3 -13
  139. package/src/tool/meringue-peak/i18n/en.ts +2 -15
  140. package/src/tool/meringue-peak/i18n/es.ts +135 -149
  141. package/src/tool/meringue-peak/i18n/fr.ts +2 -15
  142. package/src/tool/meringue-peak/i18n/id.ts +3 -13
  143. package/src/tool/meringue-peak/i18n/it.ts +3 -13
  144. package/src/tool/meringue-peak/i18n/ja.ts +3 -13
  145. package/src/tool/meringue-peak/i18n/ko.ts +3 -13
  146. package/src/tool/meringue-peak/i18n/nl.ts +3 -13
  147. package/src/tool/meringue-peak/i18n/pl.ts +3 -13
  148. package/src/tool/meringue-peak/i18n/pt.ts +3 -13
  149. package/src/tool/meringue-peak/i18n/ru.ts +3 -13
  150. package/src/tool/meringue-peak/i18n/sv.ts +3 -13
  151. package/src/tool/meringue-peak/i18n/tr.ts +3 -13
  152. package/src/tool/meringue-peak/i18n/zh.ts +3 -13
  153. package/src/tool/meringue-peak/seo.astro +10 -3
  154. package/src/tool/mold-scaler/bibliography.astro +3 -3
  155. package/src/tool/mold-scaler/bibliography.ts +10 -0
  156. package/src/tool/mold-scaler/i18n/de.ts +5 -17
  157. package/src/tool/mold-scaler/i18n/en.ts +5 -20
  158. package/src/tool/mold-scaler/i18n/es.ts +5 -20
  159. package/src/tool/mold-scaler/i18n/fr.ts +5 -20
  160. package/src/tool/mold-scaler/i18n/id.ts +5 -17
  161. package/src/tool/mold-scaler/i18n/it.ts +5 -17
  162. package/src/tool/mold-scaler/i18n/ja.ts +5 -17
  163. package/src/tool/mold-scaler/i18n/ko.ts +5 -17
  164. package/src/tool/mold-scaler/i18n/nl.ts +5 -17
  165. package/src/tool/mold-scaler/i18n/pl.ts +5 -17
  166. package/src/tool/mold-scaler/i18n/pt.ts +5 -17
  167. package/src/tool/mold-scaler/i18n/ru.ts +5 -17
  168. package/src/tool/mold-scaler/i18n/sv.ts +5 -17
  169. package/src/tool/mold-scaler/i18n/tr.ts +5 -17
  170. package/src/tool/mold-scaler/i18n/zh.ts +5 -17
  171. package/src/tool/mold-scaler/seo.astro +10 -3
  172. package/src/tool/pizza/bibliography.astro +3 -3
  173. package/src/tool/pizza/bibliography.ts +18 -0
  174. package/src/tool/pizza/i18n/de.ts +3 -13
  175. package/src/tool/pizza/i18n/en.ts +58 -75
  176. package/src/tool/pizza/i18n/es.ts +2 -20
  177. package/src/tool/pizza/i18n/fr.ts +58 -75
  178. package/src/tool/pizza/i18n/id.ts +3 -9
  179. package/src/tool/pizza/i18n/it.ts +3 -13
  180. package/src/tool/pizza/i18n/ja.ts +3 -9
  181. package/src/tool/pizza/i18n/ko.ts +3 -9
  182. package/src/tool/pizza/i18n/nl.ts +3 -9
  183. package/src/tool/pizza/i18n/pl.ts +3 -9
  184. package/src/tool/pizza/i18n/pt.ts +3 -9
  185. package/src/tool/pizza/i18n/ru.ts +28 -34
  186. package/src/tool/pizza/i18n/sv.ts +3 -9
  187. package/src/tool/pizza/i18n/tr.ts +3 -9
  188. package/src/tool/pizza/i18n/zh.ts +3 -9
  189. package/src/tool/pizza/seo.astro +11 -4
  190. package/src/tool/roux-guide/bibliography.astro +3 -3
  191. package/src/tool/roux-guide/bibliography.ts +14 -0
  192. package/src/tool/roux-guide/i18n/de.ts +3 -9
  193. package/src/tool/roux-guide/i18n/en.ts +2 -15
  194. package/src/tool/roux-guide/i18n/es.ts +3 -17
  195. package/src/tool/roux-guide/i18n/fr.ts +2 -15
  196. package/src/tool/roux-guide/i18n/id.ts +3 -9
  197. package/src/tool/roux-guide/i18n/it.ts +3 -9
  198. package/src/tool/roux-guide/i18n/ja.ts +3 -9
  199. package/src/tool/roux-guide/i18n/ko.ts +3 -9
  200. package/src/tool/roux-guide/i18n/nl.ts +3 -9
  201. package/src/tool/roux-guide/i18n/pl.ts +3 -9
  202. package/src/tool/roux-guide/i18n/pt.ts +3 -9
  203. package/src/tool/roux-guide/i18n/ru.ts +3 -9
  204. package/src/tool/roux-guide/i18n/sv.ts +3 -9
  205. package/src/tool/roux-guide/i18n/tr.ts +3 -9
  206. package/src/tool/roux-guide/i18n/zh.ts +3 -9
  207. package/src/tool/roux-guide/seo.astro +11 -4
  208. package/src/tool/sourdough-calculator/bibliography.astro +3 -3
  209. package/src/tool/sourdough-calculator/bibliography.ts +14 -0
  210. package/src/tool/sourdough-calculator/i18n/de.ts +3 -9
  211. package/src/tool/sourdough-calculator/i18n/en.ts +3 -17
  212. package/src/tool/sourdough-calculator/i18n/es.ts +4 -18
  213. package/src/tool/sourdough-calculator/i18n/fr.ts +2 -15
  214. package/src/tool/sourdough-calculator/i18n/id.ts +3 -9
  215. package/src/tool/sourdough-calculator/i18n/it.ts +3 -9
  216. package/src/tool/sourdough-calculator/i18n/ja.ts +3 -9
  217. package/src/tool/sourdough-calculator/i18n/ko.ts +3 -9
  218. package/src/tool/sourdough-calculator/i18n/nl.ts +3 -9
  219. package/src/tool/sourdough-calculator/i18n/pl.ts +3 -9
  220. package/src/tool/sourdough-calculator/i18n/pt.ts +3 -9
  221. package/src/tool/sourdough-calculator/i18n/ru.ts +3 -9
  222. package/src/tool/sourdough-calculator/i18n/sv.ts +3 -9
  223. package/src/tool/sourdough-calculator/i18n/tr.ts +3 -9
  224. package/src/tool/sourdough-calculator/i18n/zh.ts +3 -9
  225. package/src/tool/sourdough-calculator/seo.astro +11 -4
  226. package/src/tool/yeast-converter/bibliography.astro +6 -0
  227. package/src/tool/yeast-converter/bibliography.ts +6 -0
  228. package/src/tool/yeast-converter/component.astro +96 -0
  229. package/src/tool/yeast-converter/entry.ts +26 -0
  230. package/src/tool/yeast-converter/i18n/de.ts +235 -0
  231. package/src/tool/yeast-converter/i18n/en.ts +234 -0
  232. package/src/tool/yeast-converter/i18n/es.ts +235 -0
  233. package/src/tool/yeast-converter/i18n/fr.ts +235 -0
  234. package/src/tool/yeast-converter/i18n/id.ts +235 -0
  235. package/src/tool/yeast-converter/i18n/it.ts +235 -0
  236. package/src/tool/yeast-converter/i18n/ja.ts +235 -0
  237. package/src/tool/yeast-converter/i18n/ko.ts +235 -0
  238. package/src/tool/yeast-converter/i18n/nl.ts +235 -0
  239. package/src/tool/yeast-converter/i18n/pl.ts +235 -0
  240. package/src/tool/yeast-converter/i18n/pt.ts +235 -0
  241. package/src/tool/yeast-converter/i18n/ru.ts +235 -0
  242. package/src/tool/yeast-converter/i18n/sv.ts +235 -0
  243. package/src/tool/yeast-converter/i18n/tr.ts +235 -0
  244. package/src/tool/yeast-converter/i18n/zh.ts +235 -0
  245. package/src/tool/yeast-converter/index.ts +11 -0
  246. package/src/tool/yeast-converter/init.ts +277 -0
  247. package/src/tool/yeast-converter/seo.astro +15 -0
  248. package/src/tool/yeast-converter/yeast-converter-fresh-dry-sourdough-starter.css +388 -0
  249. package/src/tools.ts +2 -0
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Wetenschappelijke Eierwekker";
4
5
  const description = "Thermodynamische rekenhulp voor het perfect koken van eieren op basis van hoogte, temperatuur en grootte.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Wetenschappelijke Eierwekker",
77
78
  description: "Thermodynamische rekenhulp voor het perfect koken van eieren op basis van hoogte, temperatuur en grootte.",
78
79
  faqTitle: "Veelgestelde Vragen",
79
- bibliographyTitle: "Wetenschappelijke Referenties",
80
80
  ui: {
81
81
  parameters: "Parameters",
82
82
  initial_temperature: "Begintemperatuur",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Hardgekookt",
95
95
  hard_description: "Volledig gaar, stevige dooier.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'Onze eierwekker gebruikt de Charles Williams-vergelijking om elke seconde aan te passen op basis van je exacte locatie en koelkastruimte.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Naukowy Minutnik do Jajek";
4
5
  const description = "Kalkulator termodynamiczny do idealnego gotowania jajek na podstawie wysokości, temperatury i rozmiaru.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Naukowy Minutnik do Jajek",
77
78
  description: "Kalkulator termodynamiczny do idealnego gotowania jajek na podstawie wysokości, temperatury i rozmiaru.",
78
79
  faqTitle: "Często Zadawane Pytania",
79
- bibliographyTitle: "Referencje Naukowe",
80
80
  ui: {
81
81
  parameters: "Parametry",
82
82
  initial_temperature: "Temperatura Początkowa",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Na twardo",
95
95
  hard_description: "Całkowicie ugotowane, stałe żółtko.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'Nasz minutnik wykorzystuje równanie Charlesa Williamsa, aby dopasować każdą sekundę do Twojej lokalizacji i temperatury w lodówce.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Cronômetro de Ovos Científico";
4
5
  const description = "Calculadora termodinâmica para a cozedura perfeita de ovos baseada em altitude, temperatura e tamanho.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Cronômetro de Ovos Científico",
77
78
  description: "Calculadora termodinâmica para a cozedura perfeita de ovos baseada em altitude, temperatura e tamanho.",
78
79
  faqTitle: "Perguntas Frequentes",
79
- bibliographyTitle: "Referências Científicas",
80
80
  ui: {
81
81
  parameters: "Parâmetros",
82
82
  initial_temperature: "Temperatura Inicial",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Cozido/Duro",
95
95
  hard_description: "Totalmente cozido, gema firme.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'O nosso cronômetro utiliza a equação de Charles Williams para ajustar cada segundo segundo a tua localização exacta.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Научный таймер для варки яиц";
4
5
  const description = "Термодинамический калькулятор для идеальной варки яиц с учетом высоты над уровнем моря, температуры яиц и их размера.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Научный таймер для варки яиц",
77
78
  description: "Термодинамический калькулятор для идеальной варки яиц с учетом высоты над уровнем моря, температуры яиц и их размера.",
78
79
  faqTitle: "Часто задаваемые вопросы",
79
- bibliographyTitle: "Научные источники",
80
80
  ui: {
81
81
  parameters: "Параметры",
82
82
  initial_temperature: "Начальная температура",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Вкрутую",
95
95
  hard_description: "Полностью сварено, плотный желток.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'Наш таймер использует уравнение Чарльза Уильямса для корректировки каждой секунды в соответствии с вашим местоположением и температурой в холодильнике.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Vetenskapligt Äggur";
4
5
  const description = "Termodynamisk kalkylator för perfekt kokta ägg baserat på höjd, temperatur och storlek.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Vetenskapligt Äggur",
77
78
  description: "Termodynamisk kalkylator för perfekt kokta ägg baserat på höjd, temperatur och storlek.",
78
79
  faqTitle: "Vanliga Frågor",
79
- bibliographyTitle: "Vetenskapliga Referenser",
80
80
  ui: {
81
81
  parameters: "Parametrar",
82
82
  initial_temperature: "Starttemperatur",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Hårdkokt",
95
95
  hard_description: "Helt tillagat, fast gula.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'Vårt äggur använder Charles Williams ekvation för att justera varje sekund baserat på din exakta plats och kylskåpstemperatur.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Bilimsel Yumurta Zamanlayıcı";
4
5
  const description = "Rakım, sıcaklık ve boyuta göre mükemmel yumurta pişirme için termodinamik hesaplayıcı.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "Bilimsel Yumurta Zamanlayıcı",
77
78
  description: "Rakım, sıcaklık ve boyuta göre mükemmel yumurta pişirme için termodinamik hesaplayıcı.",
78
79
  faqTitle: "Sıkça Sorulan Sorular",
79
- bibliographyTitle: "Bilimsel Kaynaklar",
80
80
  ui: {
81
81
  parameters: "Parametreler",
82
82
  initial_temperature: "Başlangıç Sıcaklığı",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "Katı",
95
95
  hard_description: "Tamamen pişmiş, katı sarı kısım.",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: 'Zamanlayıcımız, her saniyeyi tam konumunuza ve buzdolabı durumunuza göre ayarlamak için Charles Williams denklemini kullanır.',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "科学鸡蛋计时器";
4
5
  const description = "根据海拔、温度和大小,通过热力学公式计算出最完美的鸡蛋煮制时间。";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: "科学鸡蛋计时器",
77
78
  description: "根据海拔、温度和大小,通过热力学公式计算出最完美的鸡蛋煮制时间。",
78
79
  faqTitle: "常见问题",
79
- bibliographyTitle: "科学参考文献",
80
80
  ui: {
81
81
  parameters: "煮蛋参数",
82
82
  initial_temperature: "初始温度",
@@ -94,22 +94,7 @@ export const content: ToolLocaleContent = {
94
94
  hard_cooked: "全熟蛋",
95
95
  hard_description: "完全煮熟,蛋黄结实。",
96
96
  },
97
- faq,
98
- bibliography: [
99
- {
100
- name: "The Science of Boiling an Egg - Charles D. H. Williams",
101
- url: "https://newton.ex.ac.uk/teaching/CDHW/Egg/",
102
- },
103
- {
104
- name: "The Food Lab: The Science of the Best Hard Boiled Eggs - J. Kenji López-Alt",
105
- url: "https://www.seriouseats.com/the-food-lab-hard-boiled-eggs-recipe",
106
- },
107
- {
108
- name: "The Food Lab: Perfect Soft Boiled Eggs",
109
- url: "https://www.seriouseats.com/soft-boiled-eggs-recipe",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: 'title',
@@ -248,5 +233,6 @@ export const content: ToolLocaleContent = {
248
233
  html: '我们的计时器采用查尔斯·威廉姆斯(Charles Williams)方程,根据您的精确位置和鸡蛋初始状态进行秒级精准调整。',
249
234
  },
250
235
  ],
236
+ bibliography,
251
237
  schemas: [faqSchema, howToSchema, appSchema],
252
238
  };
@@ -1,39 +1,15 @@
1
1
  ---
2
- import { SEOArticle, SEOTitle, SEOList, SEOTip, SEOTable } from "@jjlmoya/utils-shared";
3
- import { eggTimer } from "./index";
4
- import type { KnownLocale } from "../../types";
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { EGG_TIMER_TOOL } from './index';
4
+ import type { KnownLocale } from '../../types';
5
5
 
6
6
  interface Props {
7
7
  locale?: KnownLocale;
8
8
  }
9
9
 
10
- const { locale = "es" } = Astro.props;
11
- const content = await eggTimer.i18n[locale]?.();
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await EGG_TIMER_TOOL.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
14
 
15
- <SEOArticle>
16
- {content.seo.map((section: any) => {
17
- if (section.type === "title") {
18
- return <SEOTitle title={section.text} level={section.level || 2} />;
19
- }
20
- if (section.type === "paragraph") {
21
- return <p set:html={section.html} />;
22
- }
23
- if (section.type === "list") {
24
- return <SEOList items={section.items} />;
25
- }
26
- if (section.type === "code") {
27
- return <pre><code set:text={section.text} /></pre>;
28
- }
29
- if (section.type === "table") {
30
- return (
31
- <SEOTable headers={section.headers} rows={section.rows} />
32
- );
33
- }
34
- if (section.type === "tip") {
35
- return <SEOTip title="Consejos">{section.html}</SEOTip>;
36
- }
37
- return null;
38
- })}
39
- </SEOArticle>
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,6 +1,6 @@
1
1
  ---
2
- import { Bibliography } from '@jjlmoya/utils-shared';
3
- import { content } from './i18n/es';
2
+ import { Bibliography as BibliographyComponent } from '@jjlmoya/utils-shared';
3
+ import { bibliography } from './bibliography';
4
4
  ---
5
5
 
6
- <Bibliography links={content.bibliography} />
6
+ <BibliographyComponent links={bibliography} />
@@ -0,0 +1,6 @@
1
+ export const bibliography = [
2
+ {
3
+ name: 'Learning to predict ingredient quantities from recipe contexts',
4
+ url: 'https://www.sciencedirect.com/science/article/abs/pii/S0957417423005432',
5
+ },
6
+ ];
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = 'Zutaten Rechner & Rezept Anpassung';
4
5
  const description = 'Skalieren Sie Rezepte automatisch basierend auf der Portionenanzahl. Berechnen Sie exakte Mengen durch Multiplizieren oder Reduzieren Ihres Rezepts.';
@@ -96,23 +97,7 @@ export const content: ToolLocaleContent = {
96
97
  defaultIngredient3: '2 Eier',
97
98
  },
98
99
  faqTitle: 'Häufig gestellte Fragen',
99
- faq,
100
- bibliographyTitle: 'Bibliografie',
101
- bibliography: [
102
- {
103
- name: 'Harold McGee - On Food and Cooking: The Science and Lore of the Kitchen',
104
- url: 'https://en.wikipedia.org/wiki/Harold_McGee',
105
- },
106
- {
107
- name: 'The Flavor Bible by Karen Page and Andrew Dornenburg',
108
- url: 'https://www.flavorprints.com/',
109
- },
110
- {
111
- name: 'Modernist Cuisine - Wissenschaftliche Skalierungstechniken',
112
- url: 'https://www.modernistcuisine.com/',
113
- },
114
- ],
115
- howTo,
100
+ faq, howTo,
116
101
  seo: [
117
102
  {
118
103
  type: 'title',
@@ -240,5 +225,6 @@ export const content: ToolLocaleContent = {
240
225
  html: 'Unser Tool vereinfacht die Mathematik, damit Sie Ihre Energie dem widmen können, was wirklich zählt: Kreativität und Geschmack.',
241
226
  },
242
227
  ],
228
+ bibliography,
243
229
  schemas: [appSchema, faqSchema, howToSchema],
244
230
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = 'Professional Recipe Ingredient Scaler';
4
5
  const description =
@@ -93,23 +94,7 @@ export const content: ToolLocaleContent = {
93
94
  defaultIngredient3: "2 Eggs",
94
95
  },
95
96
  faqTitle: "Frequently Asked Questions",
96
- faq,
97
- bibliographyTitle: "Bibliography & Resources",
98
- bibliography: [
99
- {
100
- name: "Harold McGee - On Food and Cooking",
101
- url: "https://en.wikipedia.org/wiki/Harold_McGee",
102
- },
103
- {
104
- name: "The Flavor Bible - Page & Dornenburg",
105
- url: "https://www.flavorprints.com/",
106
- },
107
- {
108
- name: "Modernist Cuisine - Scaling Techniques",
109
- url: "https://www.modernistcuisine.com/",
110
- },
111
- ],
112
- howTo,
97
+ faq, howTo,
113
98
  seo: [
114
99
  {
115
100
  type: "title",
@@ -237,6 +222,6 @@ export const content: ToolLocaleContent = {
237
222
  html: "Our tool simplifies the math so you can focus on what truly matters: creativity and flavor.",
238
223
  },
239
224
  ],
240
-
225
+ bibliography,
241
226
  schemas: [appSchema, faqSchema, howToSchema],
242
227
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = 'Escalador de Ingredientes Ajuste de Recetas';
4
5
  const description = 'Escala recetas automáticamente según el número de raciones. Calcula las cantidades exactas de ingredientes multiplicando o reduciendo tu receta sin complicaciones.';
@@ -96,23 +97,7 @@ export const content: ToolLocaleContent = {
96
97
  defaultIngredient3: '2 Huevos',
97
98
  },
98
99
  faqTitle: 'Preguntas Frecuentes',
99
- faq,
100
- bibliographyTitle: 'Bibliografía',
101
- bibliography: [
102
- {
103
- name: 'Harold McGee - On Food and Cooking: The Science and Lore of the Kitchen',
104
- url: 'https://en.wikipedia.org/wiki/Harold_McGee',
105
- },
106
- {
107
- name: 'The Flavor Bible by Karen Page and Andrew Dornenburg',
108
- url: 'https://www.flavorprints.com/',
109
- },
110
- {
111
- name: 'Modernist Cuisine - Técnicas de escalado científico',
112
- url: 'https://www.modernistcuisine.com/',
113
- },
114
- ],
115
- howTo,
100
+ faq, howTo,
116
101
  seo: [
117
102
  {
118
103
  type: 'title',
@@ -240,6 +225,6 @@ export const content: ToolLocaleContent = {
240
225
  html: 'Nuestra herramienta simplifica la matemática para que puedas dedicar tu energía a lo que realmente importa: la creatividad y el sabor.',
241
226
  },
242
227
  ],
243
-
244
- schemas: [appSchema, faqSchema, howToSchema],
228
+ bibliography,
229
+ schemas: [appSchema, faqSchema, howToSchema],
245
230
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Convertisseur de Portions et Ingrédients Professionnel";
4
5
  const description = "Multiplication directe de toutes les valeurs par le facteur de conversion calculé.";
@@ -132,21 +133,6 @@ export const content: ToolLocaleContent = {
132
133
  text: "Le calcul est exact, mais la cuisine est intuitive. Réduisez les épices à 75%. Ne multipliez jamais les temps de cuisson par le même facteur.",
133
134
  },
134
135
  ],
135
- bibliographyTitle: "Bibliographie et Ressources Professionnelles",
136
- bibliography: [
137
- {
138
- name: "Harold McGee - On Food and Cooking",
139
- url: "https://en.wikipedia.org/wiki/Harold_McGee",
140
- },
141
- {
142
- name: "The Flavor Bible - Page & Dornenburg",
143
- url: "https://www.flavorprints.com/",
144
- },
145
- {
146
- name: "Modernist Cuisine - Techniques de mise à l'échelle",
147
- url: "https://www.modernistcuisine.com/",
148
- },
149
- ],
150
136
  seo: [
151
137
  {
152
138
  type: "title",
@@ -274,5 +260,6 @@ export const content: ToolLocaleContent = {
274
260
  html: "Notre outil simplifie les calculs pour vous permettre de vous concentrer sur l'essentiel : la créativité et le goût.",
275
261
  },
276
262
  ],
263
+ bibliography,
277
264
  schemas: [faqSchema, howToSchema, appSchema],
278
265
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = 'Pengatur Takaran Bahan & Resep';
4
5
  const description = 'Ubah skala resep secara otomatis berdasarkan jumlah porsi. Hitung jumlah bahan yang tepat dengan mengalikan atau mengurangi resep Anda tanpa repot.';
@@ -96,23 +97,7 @@ export const content: ToolLocaleContent = {
96
97
  defaultIngredient3: '2 Telur',
97
98
  },
98
99
  faqTitle: 'Pertanyaan yang Sering Diajukan',
99
- faq,
100
- bibliographyTitle: 'Bibliografi',
101
- bibliography: [
102
- {
103
- name: 'Harold McGee - On Food and Cooking: The Science and Lore of the Kitchen',
104
- url: 'https://en.wikipedia.org/wiki/Harold_McGee',
105
- },
106
- {
107
- name: 'The Flavor Bible by Karen Page and Andrew Dornenburg',
108
- url: 'https://www.flavorprints.com/',
109
- },
110
- {
111
- name: 'Modernist Cuisine - Teknik penskalaan ilmiah',
112
- url: 'https://www.modernistcuisine.com/',
113
- },
114
- ],
115
- howTo,
100
+ faq, howTo,
116
101
  seo: [
117
102
  {
118
103
  type: 'title',
@@ -240,5 +225,6 @@ export const content: ToolLocaleContent = {
240
225
  html: 'Alat kami menyederhanakan matematika agar Anda dapat mencurahkan energi untuk hal yang benar-benar penting: kreativitas dan rasa.',
241
226
  },
242
227
  ],
228
+ bibliography,
243
229
  schemas: [appSchema, faqSchema, howToSchema],
244
230
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = 'Calcolatore Dosi Ingredienti e Ricette';
4
5
  const description = 'Scala le ricette automaticamente in base al numero di porzioni. Calcola le quantità esatte degli ingredienti moltiplicando o riducendo la tua ricetta senza complicazioni.';
@@ -96,23 +97,7 @@ export const content: ToolLocaleContent = {
96
97
  defaultIngredient3: '2 Uova',
97
98
  },
98
99
  faqTitle: 'Domande Frequenti',
99
- faq,
100
- bibliographyTitle: 'Bibliografia',
101
- bibliography: [
102
- {
103
- name: 'Harold McGee - On Food and Cooking: The Science and Lore of the Kitchen',
104
- url: 'https://en.wikipedia.org/wiki/Harold_McGee',
105
- },
106
- {
107
- name: 'The Flavor Bible by Karen Page and Andrew Dornenburg',
108
- url: 'https://www.flavorprints.com/',
109
- },
110
- {
111
- name: 'Modernist Cuisine - Tecniche di scaling scientifico',
112
- url: 'https://www.modernistcuisine.com/',
113
- },
114
- ],
115
- howTo,
100
+ faq, howTo,
116
101
  seo: [
117
102
  {
118
103
  type: 'title',
@@ -240,5 +225,6 @@ export const content: ToolLocaleContent = {
240
225
  html: 'Il nostro strumento semplifica la matematica per lasciarti dedicare a ciò che conta davvero: creatività e sapore.',
241
226
  },
242
227
  ],
228
+ bibliography,
243
229
  schemas: [appSchema, faqSchema, howToSchema],
244
230
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = '材料スケーラー レシピ分量調整';
4
5
  const description = '人数(人前)に合わせてレシピの分量を自動的にスケール調整します。レシピを倍増または縮小する際の正確な材料の分量を簡単に計算できます。';
@@ -96,23 +97,7 @@ export const content: ToolLocaleContent = {
96
97
  defaultIngredient3: '2個 卵',
97
98
  },
98
99
  faqTitle: 'よくある質問',
99
- faq,
100
- bibliographyTitle: '参考文献',
101
- bibliography: [
102
- {
103
- name: 'Harold McGee - On Food and Cooking (料理の科学)',
104
- url: 'https://en.wikipedia.org/wiki/Harold_McGee',
105
- },
106
- {
107
- name: 'The Flavor Bible by Karen Page and Andrew Dornenburg',
108
- url: 'https://www.flavorprints.com/',
109
- },
110
- {
111
- name: 'Modernist Cuisine - 科学的スケーリング技術',
112
- url: 'https://www.modernistcuisine.com/',
113
- },
114
- ],
115
- howTo,
100
+ faq, howTo,
116
101
  seo: [
117
102
  {
118
103
  type: 'title',
@@ -240,5 +225,6 @@ export const content: ToolLocaleContent = {
240
225
  html: '当ツールは数学的な計算を簡素化し、あなたが最も重要な「創造性と味」にエネルギーを注げるようサポートします。',
241
226
  },
242
227
  ],
228
+ bibliography,
243
229
  schemas: [appSchema, faqSchema, howToSchema],
244
230
  };