@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 = "マルチキッチンタイマー";
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
  addTimer: 'タイマーを追加',
82
82
  stopAll: 'すべて停止',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: '時間です!',
102
102
  finishNotification: 'タイマーが終了しました:',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: '食品安全基準: USDA ガイドライン',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'ミザンプラス - プロの厨房管理',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>プロのコツ:</strong> 時間の正確さは、シェフと素人を分ける大きな境界線です。感覚に頼りすぎず、正確なツールを使って一貫した美味しさを保証しましょう。',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -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 = "여러 요리 시간을 동시에 관리하세요. 독립적인 알람 기능으로 셰프와 전문적인 주방 관리(Mise en Place)에 적합합니다.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: '멀티 주방 타이머',
77
78
  description: '여러 요리 시간을 동시에 관리하세요. 독립적인 알람 기능으로 셰프와 전문적인 주방 관리(Mise en Place)에 적합합니다.',
78
79
  faqTitle: '자주 묻는 질문',
79
- bibliographyTitle: '참고 문헌',
80
80
  ui: {
81
81
  addTimer: '타이머 추가',
82
82
  stopAll: '모두 중지',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: '시간 종료!',
102
102
  finishNotification: '타이머가 완료되었습니다: ',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: '식품 안전: USDA 가이드라인',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: '미장플라스(Mise en Place) - 전문 주방 이론',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>전문가 제언:</strong> 시간의 정밀함은 전문 셰프와 일반 요리사를 가르는 차이점입니다. 감각에만 의존하지 말고 정확한 도구를 사용하여 일관성 있는 맛을 유지하세요.',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Meervoudige Keukentimer";
4
5
  const description = "Beheer meerdere kooktijden gelijktijdig. Onafhankelijke alarmen, ideaal voor chefs en organisatie in de keuken (Mise en Place).";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Meervoudige Keukentimer',
77
78
  description: 'Beheer meerdere kooktijden gelijktijdig. Onafhankelijke alarmen, ideaal voor chefs en organisatie in de keuken (Mise en Place).',
78
79
  faqTitle: 'Veelgestelde Vragen',
79
- bibliographyTitle: 'Referenties',
80
80
  ui: {
81
81
  addTimer: 'Timer Toevoegen',
82
82
  stopAll: 'Alles Stoppen',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'TIJD!',
102
102
  finishNotification: 'Timer voltooid voor',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Voedselveiligheid: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - De Professionele Keuken',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -170,5 +159,6 @@ export const content: ToolLocaleContent = {
170
159
  html: '<strong>Profi-tip:</strong> precisie in tijd onderscheidt een chef-kok van een hobbykok. Gebruik technologie voor constante resultaten.',
171
160
  },
172
161
  ],
162
+ bibliography,
173
163
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
174
164
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Multiminutnik Kuchenny";
4
5
  const description = "Zarządzaj wieloma czasami gotowania jednocześnie. Niezależne alarmy, idealne dla szefów kuchni i organizacji pracy (Mise en Place).";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Multiminutnik Kuchenny',
77
78
  description: 'Zarządzaj wieloma czasami gotowania jednocześnie. Niezależne alarmy, idealne dla szefów kuchni i organizacji pracy (Mise en Place).',
78
79
  faqTitle: 'Często Zadawane Pytania',
79
- bibliographyTitle: 'Referencje',
80
80
  ui: {
81
81
  addTimer: 'Dodaj Minutnik',
82
82
  stopAll: 'Zatrzymaj Wszystkie',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'CZAS!',
102
102
  finishNotification: 'Minutnik zakończony dla',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Bezpieczeństwo Żywności: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - Profesjonalna Kuchnia',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>Porada eksperta:</strong> precyzja czasu odróżnia szefa kuchni od amatora. Używaj technologii, by zagwarantować powtarzalność.',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Temporizador de Cozinha Múltiplo";
4
5
  const description = "Gere múltiplos tempos de cozedura simultaneamente. Alarmes independentes, ideal para chefs e organização na cozinha (Mise en Place).";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Temporizador de Cozinha Múltiplo',
77
78
  description: 'Gere múltiplos tempos de cozedura simultaneamente. Alarmes independentes, ideal para chefs e organização na cozinha (Mise en Place).',
78
79
  faqTitle: 'Perguntas Frequentes',
79
- bibliographyTitle: 'Referências',
80
80
  ui: {
81
81
  addTimer: 'Adicionar Temporizador',
82
82
  stopAll: 'Parar Todos',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'TEMPO!',
102
102
  finishNotification: 'Temporizador Terminado para',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Segurança Alimentar: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - A Cozinha Profissional',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -170,5 +159,6 @@ export const content: ToolLocaleContent = {
170
159
  html: '<strong>Conselho profissional:</strong> a precisão do tempo é o que diferencia um chef de um cozinheiro amador. Use a tecnologia para garantir consistência.',
171
160
  },
172
161
  ],
162
+ bibliography,
173
163
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
174
164
  };
@@ -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 = "Управляйте несколькими процессами приготовления одновременно. Независимые будильники, идеально для поваров и организации (Mise en Place).";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Многофункциональный кухонный таймер',
77
78
  description: 'Управляйте несколькими процессами одновременно. Независимые будильники, идеально для поваров и организации (Mise en Place).',
78
79
  faqTitle: 'Часто задаваемые вопросы',
79
- bibliographyTitle: 'Ссылки',
80
80
  ui: {
81
81
  addTimer: 'Добавить таймер',
82
82
  stopAll: 'Стоп все',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'ВРЕМЯ!',
102
102
  finishNotification: 'Таймер завершен для',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Пищевая безопасность: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - Профессиональная кухня',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>Совет профи:</strong> точность времени отличает шеф-повара от любителя. Используйте технологии для стабильного результата.',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Multitimer för Kök";
4
5
  const description = "Hantera flera tillagningstider samtidigt. Oberoende larm, idealiskt för kockar och köksorganisation (Mise en Place).";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Multitimer för Kök',
77
78
  description: 'Hantera flera tillagningstider samtidigt. Oberoende larm, idealiskt för kockar och köksorganisation (Mise en Place).',
78
79
  faqTitle: 'Vanliga Frågor',
79
- bibliographyTitle: 'Referenser',
80
80
  ui: {
81
81
  addTimer: 'Lägg till Timer',
82
82
  stopAll: 'Stoppa Alla',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'TIDEN UTE!',
102
102
  finishNotification: 'Timer klar för',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Livsmedelssäkerhet: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - Det Professionella Köket',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>Proffstips:</strong> Precision i tid skiljer en chefskock från en hemmakock. Använd tekniken för att garantera jämna resultat.',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Çoklu Mutfak Zamanlayıcı";
4
5
  const description = "Aynı anda birden fazla pişirme süresini yönetin. Bağımsız alarmlar, şefler ve mutfak organizasyonu (Mise en Place) için ideal.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: 'Çoklu Mutfak Zamanlayıcı',
77
78
  description: 'Aynı anda birden fazla pişirme süresini yönetin. Bağımsız alarmlar, şefler ve mutfak organizasyonu (Mise en Place) için ideal.',
78
79
  faqTitle: 'Sıkça Sorulan Sorular',
79
- bibliographyTitle: 'Referanslar',
80
80
  ui: {
81
81
  addTimer: 'Zamanlayıcı Ekle',
82
82
  stopAll: 'Hepsini Durdur',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: 'SÜRE DOLDU!',
102
102
  finishNotification: 'Zamanlayıcı bitti:',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: 'Gıda Güvenliği: USDA Guidelines',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - Profesyonel Mutfak',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>Profesyonel İpucu:</strong> Zaman hassasiyeti, bir şefi ev aşçısından ayıran şeydir. İstikrarlı sonuçlar için teknolojiyi kullanın.',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -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 = "同时管理多个烹饪时间。独立闹钟设计,专业厨师必备的厨房进度组织工具(Mise en Place)。";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title: '多功能厨房计时器',
77
78
  description: '同时管理多个烹饪时间。独立闹钟设计,专业厨师必备的厨房进度组织工具(Mise en Place)。',
78
79
  faqTitle: '常见问题',
79
- bibliographyTitle: '参考文献',
80
80
  ui: {
81
81
  addTimer: '添加计时器',
82
82
  stopAll: '全部停止',
@@ -101,18 +101,7 @@ export const content: ToolLocaleContent = {
101
101
  statusFinished: '倒计时结束!',
102
102
  finishNotification: '计时任务已完成:',
103
103
  },
104
- faq,
105
- bibliography: [
106
- {
107
- name: '食品安全:USDA(美国农业部)指南',
108
- url: 'https://www.fsis.usda.gov/',
109
- },
110
- {
111
- name: 'Mise en Place - 专业厨房组织理论',
112
- url: 'https://www.escoffier.edu/',
113
- },
114
- ],
115
- howTo,
104
+ faq, howTo,
116
105
  seo: [
117
106
  {
118
107
  type: 'title',
@@ -166,5 +155,6 @@ export const content: ToolLocaleContent = {
166
155
  html: '<strong>主厨建议:</strong> 对时间的精确把控是专业大厨与家庭主夫/主妇的分水岭。依靠科学工具而非感觉,能极大地稳定烹饪水准。',
167
156
  },
168
157
  ],
158
+ bibliography,
169
159
  schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
160
  };
@@ -1,8 +1,15 @@
1
1
  ---
2
2
  import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import { content } from './i18n/es';
3
+ import { KITCHEN_TIMER_TOOL } from './index';
4
+ import type { KnownLocale } from '../../types';
4
5
 
5
- const locale = 'es';
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await KITCHEN_TIMER_TOOL.i18n[locale]?.();
12
+ if (!content) return null;
6
13
  ---
7
14
 
8
- <SEORenderer content={{ sections: content.seo, locale }} />
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,14 @@
1
+ export const bibliography = [
2
+ {
3
+ name: 'Larousse Cocina: Tipos de Merengues y cómo prepararlos',
4
+ url: 'https://laroussecocina.mx/palabra/merengue/',
5
+ },
6
+ {
7
+ name: 'Exploratorium: The Science of Cooking - Egg Science',
8
+ url: 'https://www.exploratorium.edu/explore/cooking/egg-science',
9
+ },
10
+ {
11
+ name: 'Directo al Paladar: Guía completa del Merengue Francés',
12
+ url: 'https://www.directoalpaladar.com/curso-de-cocina/como-hacer-merengue-frances-facil-trucos-consejos-quede-perfecto',
13
+ },
14
+ ];
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Baiser & Eischnee Rechner";
4
5
  const description = "Berechnen Sie die exakte Zuckermenge für französisches, italienisches oder Schweizer Baiser basierend auf dem Gewicht Ihres Eiweißes. Schlagzeiten und Konditor-Tipps.";
@@ -76,7 +77,6 @@ export const content: ToolLocaleContent = {
76
77
  title,
77
78
  description,
78
79
  faqTitle: 'Häufig gestellte Fragen',
79
- bibliographyTitle: 'Quellen und Referenzen',
80
80
  ui: {
81
81
  whitesLabel: 'Gewicht des Eiweißes',
82
82
  whitesPlaceholder: 'z.B. 120',
@@ -113,18 +113,7 @@ export const content: ToolLocaleContent = {
113
113
  invalidWeightError: 'Gültiges Gewicht eingeben',
114
114
  },
115
115
  faq,
116
- howTo,
117
- bibliography: [
118
- {
119
- name: 'Larousse Gastronomique: Baiser-Arten',
120
- url: 'https://laroussecocina.mx/palabra/merengue/',
121
- },
122
- {
123
- name: 'Exploratorium: The Science of Cooking - Egg Science',
124
- url: 'https://www.exploratorium.edu/explore/cooking/egg-science',
125
- },
126
- ],
127
- seo: [
116
+ howTo, seo: [
128
117
  {
129
118
  type: 'title',
130
119
  text: 'Meister Leitfaden für Baiser und Eischnee',
@@ -217,5 +206,6 @@ export const content: ToolLocaleContent = {
217
206
  html: 'Reinigen Sie die Schüssel vor Beginn mit Essig oder Zitrone. Fettspuren verhindern das Steifwerden des Eiweißes.',
218
207
  },
219
208
  ],
209
+ bibliography,
220
210
  schemas: [faqSchema, howToSchema, appSchema],
221
211
  };
@@ -1,4 +1,5 @@
1
1
  import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from '../bibliography';
2
3
 
3
4
  const title = "Professional Meringue Sugar Ratio Calculator";
4
5
  const description = "The simplest but least stable. Whites and sugar whipped cold.";
@@ -159,21 +160,6 @@ export const content: ToolLocaleContent = {
159
160
  text: "Follow the estimated timing guide until you reach that high-gloss, vertical stiff peak.",
160
161
  },
161
162
  ],
162
- bibliographyTitle: "Technical Sources & References",
163
- bibliography: [
164
- {
165
- name: "King Arthur Baking - Meringue Guide",
166
- url: "https://www.kingarthurbaking.com/blog/2015/07/05/meringue-types",
167
- },
168
- {
169
- name: "Exploratorium - The Science of Egg Foam",
170
- url: "https://www.exploratorium.edu/explore/cooking/egg-science",
171
- },
172
- {
173
- name: "Fine Cooking - Mastering the Stiff Peak",
174
- url: "https://www.finecooking.com/",
175
- },
176
- ],
177
163
  seo: [
178
164
  {
179
165
  type: "title",
@@ -328,5 +314,6 @@ export const content: ToolLocaleContent = {
328
314
  html: "Our calculator automates the math so you can focus on whipping until you reach that perfect, high-gloss finish.",
329
315
  },
330
316
  ],
317
+ bibliography,
331
318
  schemas: [faqSchema, howToSchema, appSchema],
332
319
  };