@jjlmoya/utils-cooking 1.12.0 → 1.14.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 (182) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +94 -0
  3. package/src/category/i18n/id.ts +94 -0
  4. package/src/category/i18n/it.ts +94 -0
  5. package/src/category/i18n/ja.ts +94 -0
  6. package/src/category/i18n/ko.ts +94 -0
  7. package/src/category/i18n/nl.ts +94 -0
  8. package/src/category/i18n/pl.ts +94 -0
  9. package/src/category/i18n/pt.ts +94 -0
  10. package/src/category/i18n/ru.ts +94 -0
  11. package/src/category/i18n/sv.ts +94 -0
  12. package/src/category/i18n/tr.ts +94 -0
  13. package/src/category/i18n/zh.ts +94 -0
  14. package/src/category/index.ts +12 -0
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +1 -1
  18. package/src/tests/slug_language_code_format.test.ts +23 -0
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tests/title_quality.test.ts +1 -1
  21. package/src/tool/american-kitchen-converter/i18n/de.ts +356 -0
  22. package/src/tool/american-kitchen-converter/i18n/id.ts +356 -0
  23. package/src/tool/american-kitchen-converter/i18n/it.ts +356 -0
  24. package/src/tool/american-kitchen-converter/i18n/ja.ts +356 -0
  25. package/src/tool/american-kitchen-converter/i18n/ko.ts +356 -0
  26. package/src/tool/american-kitchen-converter/i18n/nl.ts +356 -0
  27. package/src/tool/american-kitchen-converter/i18n/pl.ts +356 -0
  28. package/src/tool/american-kitchen-converter/i18n/pt.ts +356 -0
  29. package/src/tool/american-kitchen-converter/i18n/ru.ts +356 -0
  30. package/src/tool/american-kitchen-converter/i18n/sv.ts +356 -0
  31. package/src/tool/american-kitchen-converter/i18n/tr.ts +356 -0
  32. package/src/tool/american-kitchen-converter/i18n/zh.ts +356 -0
  33. package/src/tool/american-kitchen-converter/index.ts +12 -0
  34. package/src/tool/banana-ripeness/i18n/de.ts +248 -0
  35. package/src/tool/banana-ripeness/i18n/fr.ts +1 -1
  36. package/src/tool/banana-ripeness/i18n/id.ts +248 -0
  37. package/src/tool/banana-ripeness/i18n/it.ts +248 -0
  38. package/src/tool/banana-ripeness/i18n/ja.ts +248 -0
  39. package/src/tool/banana-ripeness/i18n/ko.ts +248 -0
  40. package/src/tool/banana-ripeness/i18n/nl.ts +248 -0
  41. package/src/tool/banana-ripeness/i18n/pl.ts +248 -0
  42. package/src/tool/banana-ripeness/i18n/pt.ts +248 -0
  43. package/src/tool/banana-ripeness/i18n/ru.ts +248 -0
  44. package/src/tool/banana-ripeness/i18n/sv.ts +248 -0
  45. package/src/tool/banana-ripeness/i18n/tr.ts +248 -0
  46. package/src/tool/banana-ripeness/i18n/zh.ts +248 -0
  47. package/src/tool/banana-ripeness/index.ts +12 -0
  48. package/src/tool/brine/i18n/de.ts +253 -0
  49. package/src/tool/brine/i18n/id.ts +253 -0
  50. package/src/tool/brine/i18n/it.ts +253 -0
  51. package/src/tool/brine/i18n/ja.ts +253 -0
  52. package/src/tool/brine/i18n/ko.ts +253 -0
  53. package/src/tool/brine/i18n/nl.ts +253 -0
  54. package/src/tool/brine/i18n/pl.ts +253 -0
  55. package/src/tool/brine/i18n/pt.ts +253 -0
  56. package/src/tool/brine/i18n/ru.ts +253 -0
  57. package/src/tool/brine/i18n/sv.ts +253 -0
  58. package/src/tool/brine/i18n/tr.ts +253 -0
  59. package/src/tool/brine/i18n/zh.ts +253 -0
  60. package/src/tool/brine/index.ts +12 -0
  61. package/src/tool/cookware-guide/i18n/de.ts +200 -0
  62. package/src/tool/cookware-guide/i18n/fr.ts +3 -3
  63. package/src/tool/cookware-guide/i18n/id.ts +200 -0
  64. package/src/tool/cookware-guide/i18n/it.ts +200 -0
  65. package/src/tool/cookware-guide/i18n/ja.ts +200 -0
  66. package/src/tool/cookware-guide/i18n/ko.ts +200 -0
  67. package/src/tool/cookware-guide/i18n/nl.ts +200 -0
  68. package/src/tool/cookware-guide/i18n/pl.ts +200 -0
  69. package/src/tool/cookware-guide/i18n/pt.ts +200 -0
  70. package/src/tool/cookware-guide/i18n/ru.ts +200 -0
  71. package/src/tool/cookware-guide/i18n/sv.ts +200 -0
  72. package/src/tool/cookware-guide/i18n/tr.ts +200 -0
  73. package/src/tool/cookware-guide/i18n/zh.ts +200 -0
  74. package/src/tool/cookware-guide/index.ts +12 -0
  75. package/src/tool/egg-timer/i18n/de.ts +252 -0
  76. package/src/tool/egg-timer/i18n/id.ts +252 -0
  77. package/src/tool/egg-timer/i18n/it.ts +252 -0
  78. package/src/tool/egg-timer/i18n/ja.ts +252 -0
  79. package/src/tool/egg-timer/i18n/ko.ts +252 -0
  80. package/src/tool/egg-timer/i18n/nl.ts +252 -0
  81. package/src/tool/egg-timer/i18n/pl.ts +252 -0
  82. package/src/tool/egg-timer/i18n/pt.ts +252 -0
  83. package/src/tool/egg-timer/i18n/ru.ts +252 -0
  84. package/src/tool/egg-timer/i18n/sv.ts +252 -0
  85. package/src/tool/egg-timer/i18n/tr.ts +252 -0
  86. package/src/tool/egg-timer/i18n/zh.ts +252 -0
  87. package/src/tool/egg-timer/index.ts +12 -0
  88. package/src/tool/ingredient-rescaler/i18n/de.ts +244 -0
  89. package/src/tool/ingredient-rescaler/i18n/es.ts +95 -95
  90. package/src/tool/ingredient-rescaler/i18n/id.ts +244 -0
  91. package/src/tool/ingredient-rescaler/i18n/it.ts +244 -0
  92. package/src/tool/ingredient-rescaler/i18n/ja.ts +244 -0
  93. package/src/tool/ingredient-rescaler/i18n/ko.ts +244 -0
  94. package/src/tool/ingredient-rescaler/i18n/nl.ts +244 -0
  95. package/src/tool/ingredient-rescaler/i18n/pl.ts +244 -0
  96. package/src/tool/ingredient-rescaler/i18n/pt.ts +244 -0
  97. package/src/tool/ingredient-rescaler/i18n/ru.ts +244 -0
  98. package/src/tool/ingredient-rescaler/i18n/sv.ts +244 -0
  99. package/src/tool/ingredient-rescaler/i18n/tr.ts +244 -0
  100. package/src/tool/ingredient-rescaler/i18n/zh.ts +244 -0
  101. package/src/tool/ingredient-rescaler/index.ts +12 -0
  102. package/src/tool/kitchen-timer/i18n/de.ts +174 -0
  103. package/src/tool/kitchen-timer/i18n/id.ts +170 -0
  104. package/src/tool/kitchen-timer/i18n/it.ts +174 -0
  105. package/src/tool/kitchen-timer/i18n/ja.ts +170 -0
  106. package/src/tool/kitchen-timer/i18n/ko.ts +170 -0
  107. package/src/tool/kitchen-timer/i18n/nl.ts +174 -0
  108. package/src/tool/kitchen-timer/i18n/pl.ts +170 -0
  109. package/src/tool/kitchen-timer/i18n/pt.ts +174 -0
  110. package/src/tool/kitchen-timer/i18n/ru.ts +170 -0
  111. package/src/tool/kitchen-timer/i18n/sv.ts +170 -0
  112. package/src/tool/kitchen-timer/i18n/tr.ts +170 -0
  113. package/src/tool/kitchen-timer/i18n/zh.ts +170 -0
  114. package/src/tool/kitchen-timer/index.ts +12 -0
  115. package/src/tool/meringue-peak/i18n/de.ts +221 -0
  116. package/src/tool/meringue-peak/i18n/id.ts +209 -0
  117. package/src/tool/meringue-peak/i18n/it.ts +210 -0
  118. package/src/tool/meringue-peak/i18n/ja.ts +210 -0
  119. package/src/tool/meringue-peak/i18n/ko.ts +210 -0
  120. package/src/tool/meringue-peak/i18n/nl.ts +210 -0
  121. package/src/tool/meringue-peak/i18n/pl.ts +210 -0
  122. package/src/tool/meringue-peak/i18n/pt.ts +210 -0
  123. package/src/tool/meringue-peak/i18n/ru.ts +210 -0
  124. package/src/tool/meringue-peak/i18n/sv.ts +210 -0
  125. package/src/tool/meringue-peak/i18n/tr.ts +210 -0
  126. package/src/tool/meringue-peak/i18n/zh.ts +210 -0
  127. package/src/tool/meringue-peak/index.ts +12 -0
  128. package/src/tool/mold-scaler/i18n/de.ts +183 -0
  129. package/src/tool/mold-scaler/i18n/id.ts +169 -0
  130. package/src/tool/mold-scaler/i18n/it.ts +170 -0
  131. package/src/tool/mold-scaler/i18n/ja.ts +170 -0
  132. package/src/tool/mold-scaler/i18n/ko.ts +170 -0
  133. package/src/tool/mold-scaler/i18n/nl.ts +170 -0
  134. package/src/tool/mold-scaler/i18n/pl.ts +170 -0
  135. package/src/tool/mold-scaler/i18n/pt.ts +170 -0
  136. package/src/tool/mold-scaler/i18n/ru.ts +170 -0
  137. package/src/tool/mold-scaler/i18n/sv.ts +170 -0
  138. package/src/tool/mold-scaler/i18n/tr.ts +170 -0
  139. package/src/tool/mold-scaler/i18n/zh.ts +170 -0
  140. package/src/tool/mold-scaler/index.ts +12 -0
  141. package/src/tool/pizza/i18n/de.ts +168 -0
  142. package/src/tool/pizza/i18n/es.ts +228 -228
  143. package/src/tool/pizza/i18n/fr.ts +1 -1
  144. package/src/tool/pizza/i18n/id.ts +125 -0
  145. package/src/tool/pizza/i18n/it.ts +172 -0
  146. package/src/tool/pizza/i18n/ja.ts +125 -0
  147. package/src/tool/pizza/i18n/ko.ts +125 -0
  148. package/src/tool/pizza/i18n/nl.ts +164 -0
  149. package/src/tool/pizza/i18n/pl.ts +125 -0
  150. package/src/tool/pizza/i18n/pt.ts +168 -0
  151. package/src/tool/pizza/i18n/ru.ts +151 -0
  152. package/src/tool/pizza/i18n/sv.ts +164 -0
  153. package/src/tool/pizza/i18n/tr.ts +125 -0
  154. package/src/tool/pizza/i18n/zh.ts +125 -0
  155. package/src/tool/pizza/index.ts +12 -0
  156. package/src/tool/roux-guide/i18n/de.ts +165 -0
  157. package/src/tool/roux-guide/i18n/es.ts +172 -172
  158. package/src/tool/roux-guide/i18n/id.ts +139 -0
  159. package/src/tool/roux-guide/i18n/it.ts +165 -0
  160. package/src/tool/roux-guide/i18n/ja.ts +139 -0
  161. package/src/tool/roux-guide/i18n/ko.ts +139 -0
  162. package/src/tool/roux-guide/i18n/nl.ts +165 -0
  163. package/src/tool/roux-guide/i18n/pl.ts +139 -0
  164. package/src/tool/roux-guide/i18n/pt.ts +165 -0
  165. package/src/tool/roux-guide/i18n/ru.ts +139 -0
  166. package/src/tool/roux-guide/i18n/sv.ts +139 -0
  167. package/src/tool/roux-guide/i18n/tr.ts +139 -0
  168. package/src/tool/roux-guide/i18n/zh.ts +139 -0
  169. package/src/tool/roux-guide/index.ts +12 -0
  170. package/src/tool/sourdough-calculator/i18n/de.ts +142 -0
  171. package/src/tool/sourdough-calculator/i18n/id.ts +116 -0
  172. package/src/tool/sourdough-calculator/i18n/it.ts +142 -0
  173. package/src/tool/sourdough-calculator/i18n/ja.ts +116 -0
  174. package/src/tool/sourdough-calculator/i18n/ko.ts +116 -0
  175. package/src/tool/sourdough-calculator/i18n/nl.ts +116 -0
  176. package/src/tool/sourdough-calculator/i18n/pl.ts +116 -0
  177. package/src/tool/sourdough-calculator/i18n/pt.ts +142 -0
  178. package/src/tool/sourdough-calculator/i18n/ru.ts +116 -0
  179. package/src/tool/sourdough-calculator/i18n/sv.ts +116 -0
  180. package/src/tool/sourdough-calculator/i18n/tr.ts +116 -0
  181. package/src/tool/sourdough-calculator/i18n/zh.ts +116 -0
  182. package/src/tool/sourdough-calculator/index.ts +12 -0
@@ -0,0 +1,174 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "Meervoudige Keukentimer";
4
+ const description = "Beheer meerdere kooktijden gelijktijdig. Onafhankelijke alarmen, ideaal voor chefs en organisatie in de keuken (Mise en Place).";
5
+ const faq = [
6
+ {
7
+ question: 'Hoeveel timers kan ik maken?',
8
+ answer: 'Onbeperkt. Voeg er zoveel toe als je nodig hebt met de "+"-knop. Ideaal voor het gelijktijdig koken van meerdere gerechten: pasta koken, saus inkoken, vlees laten rusten en de oven aan – alles tegelijk.',
9
+ },
10
+ {
11
+ question: 'Waarom is rusttijd belangrijk voor vlees?',
12
+ answer: 'Als je vlees snijdt dat net van het vuur komt, ontsnappen de sappen naar het bord. Als je het 5-10 minuten laat rusten, ontspannen de vezels en worden de sappen herverdeeld. Resultaat: sappig vlees in plaats van droog.',
13
+ },
14
+ {
15
+ question: 'Werkt het met een vergrendeld scherm?',
16
+ answer: 'Ja, maar je moet toestemming geven voor meldingen. De timers blijven op de achtergrond lopen en waarschuwen je met geluid en browsernotificaties, zelfs als je van tabblad wisselt of je mobiel vergrendelt.',
17
+ },
18
+ {
19
+ question: 'Wat is de bacteriële "Gevarenzone"?',
20
+ answer: 'Tussen 5°C en 65°C vermenigvuldigen bacteriën zich snel. Gekookt voedsel mag niet langer dan 2 uur in deze zone blijven (1 uur als het warmer is dan 30°C). Gebruik een timer om het afkoelen te controleren.',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: 'Maak meerdere timers',
26
+ text: 'Gebruik de "+"-knop om zoveel timers toe te voegen als nodig. Ideaal voor het coördineren van meerdere gerechten.',
27
+ },
28
+ {
29
+ name: 'Personaliseer elke timer',
30
+ text: 'Verander de naam van elke timer om te weten wat er kookt: "Oven", "Rijst", "Saus", enz.',
31
+ },
32
+ {
33
+ name: 'Bedien via het mobiele dock',
34
+ text: 'Op mobiel verschijnen actieve timers in een schuifbaar dock onderaan. Pauzeer of herstart direct vanaf daar.',
35
+ },
36
+ {
37
+ name: 'Ontvang meldingen',
38
+ text: 'Geef toestemming voor meldingen zodat de browser je waarschuwt wanneer de tijd om is.',
39
+ },
40
+ ];
41
+
42
+ const faqSchema = {
43
+ '@context': 'https://schema.org',
44
+ '@type': 'FAQPage',
45
+ mainEntity: faq.map((item) => ({
46
+ '@type': 'Question',
47
+ name: item.question,
48
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
49
+ })),
50
+ };
51
+
52
+ const howToSchema = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'HowTo',
55
+ name: title,
56
+ description,
57
+ step: howTo.map((step) => ({
58
+ '@type': 'HowToStep',
59
+ name: step.name,
60
+ text: step.text,
61
+ })),
62
+ };
63
+
64
+ const appSchema = {
65
+ '@context': 'https://schema.org',
66
+ '@type': 'SoftwareApplication',
67
+ name: title,
68
+ description,
69
+ applicationCategory: 'UtilitiesApplication',
70
+ operatingSystem: 'Web',
71
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
72
+ };
73
+
74
+ export const content: ToolLocaleContent = {
75
+ slug: 'keukentimer',
76
+ title: 'Meervoudige Keukentimer',
77
+ description: 'Beheer meerdere kooktijden gelijktijdig. Onafhankelijke alarmen, ideaal voor chefs en organisatie in de keuken (Mise en Place).',
78
+ faqTitle: 'Veelgestelde Vragen',
79
+ bibliographyTitle: 'Referenties',
80
+ ui: {
81
+ addTimer: 'Timer Toevoegen',
82
+ stopAll: 'Alles Stoppen',
83
+ defaultName: 'Timer',
84
+ newTimerName: 'Nieuwe Timer',
85
+ timerDefault1: 'Timer 1',
86
+ timerDefault2: 'Timer 2',
87
+ timerDefault3: 'Timer 3',
88
+ label: 'Label',
89
+ hours: 'Uren',
90
+ minutes: 'Min',
91
+ seconds: 'Sec',
92
+ ready: 'Klaar',
93
+ start: 'Start',
94
+ pause: 'Pauze',
95
+ reset: 'Reset',
96
+ addOneMin: '+1 min',
97
+ addFiveMin: '+5 min',
98
+ statusReady: 'Klaar',
99
+ statusRunning: 'Loopt',
100
+ statusPaused: 'Gepauzeerd',
101
+ statusFinished: 'TIJD!',
102
+ finishNotification: 'Timer voltooid voor',
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,
116
+ seo: [
117
+ {
118
+ type: 'title',
119
+ text: 'Tijdmanagement in de Keuken',
120
+ level: 2,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'De professionele keuken draait om <strong>nauwkeurig tijdbeheer</strong>. Het Franse concept <em>"Mise en Place"</em> omvat tijd als een essentieel ingrediënt.',
125
+ },
126
+ {
127
+ type: 'paragraph',
128
+ html: 'Deze <strong>Multi-Timer</strong> is ontworpen voor hobbykoks en professionals die meerdere gerechten tegelijkertijd moeten coördineren.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'De Rol van Temperatuur en Tijd',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'table',
137
+ headers: ['Voedsel', 'Gaarheid', 'Tijd', 'Voordeel'],
138
+ rows: [
139
+ ['Zachtgekookt ei', 'Vloeibaar eigeel', '3-4 min', 'Zachte eiwitten'],
140
+ ['Halfzacht ei', 'Romig eigeel', '5-6 min', 'Perfecte balans'],
141
+ ['Hardgekookt ei', 'Volledig gestold', '9-11 min', 'Maximale stevigheid'],
142
+ ['Vlees - Schroei', 'Hoge hitte', '1-2 min/kant', 'Maillard-reactie'],
143
+ ['Vlees - Rusten', 'Rustfase', '5-20 min', 'Sapverdeling'],
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Voedselveiligheid: De Gevarenzone',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Tijd beïnvloedt ook de veiligheid. De bacteriële "Gevarenzone" ligt tussen 5°C en 65°C. Voedsel mag hier niet langer dan <strong>2 uur</strong> blijven.',
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Professionele Organisatiewerken',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'list',
162
+ items: [
163
+ '<strong>Spreid de eindtijden:</strong> als alles tegelijk klaar is, raak je gestrest bij het opdienen.',
164
+ '<strong>Gebruik restwarmte:</strong> zet het vuur 1-2 minuten eerder uit.',
165
+ '<strong>Geef timers een naam:</strong> gebruik labels voor "Oven", "Rijst" of "Saus".',
166
+ ],
167
+ },
168
+ {
169
+ type: 'tip',
170
+ html: '<strong>Profi-tip:</strong> precisie in tijd onderscheidt een chef-kok van een hobbykok. Gebruik technologie voor constante resultaten.',
171
+ },
172
+ ],
173
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
174
+ };
@@ -0,0 +1,170 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "Multiminutnik Kuchenny";
4
+ const description = "Zarządzaj wieloma czasami gotowania jednocześnie. Niezależne alarmy, idealne dla szefów kuchni i organizacji pracy (Mise en Place).";
5
+ const faq = [
6
+ {
7
+ question: 'Ile minutników mogę stworzyć?',
8
+ answer: 'Nieograniczoną liczbę. Dodaj tyle, ile potrzebujesz przyciskiem "+". Idealne do gotowania kilku potraw naraz: gotujący się makaron, redukujący się sos, odpoczywające mięso i pracujący piekarnik – wszystko jednocześnie.',
9
+ },
10
+ {
11
+ question: 'Dlaczego odpoczynek mięsa jest ważny?',
12
+ answer: 'Gdy kroisz mięso prosto z ognia, soki uciekają na talerz. Jeśli dasz mu odpocząć 5-10 minut, włókna rozluźnią się, a soki rozprzestrzenią ponownie. Wynik: soczyste mięso zamiast suchego.',
13
+ },
14
+ {
15
+ question: 'Czy działa przy zablokowanym ekranie?',
16
+ answer: 'Tak, ale musisz zezwolić na powiadomienia. Minutniki działają w tle i powiadomią Cię dźwiękiem oraz komunikatem przeglądarki, nawet jeśli zmienisz kartę lub zablokujesz telefon.',
17
+ },
18
+ {
19
+ question: 'Co to jest spożywcza "Czerwona Strefa"?',
20
+ answer: 'Między 5°C a 65°C bakterie mnożą się błyskawicznie. Gotowe jedzenie nie powinno przebywać w tej strefie dłużej niż 2 godziny (1 godzinę, jeśli jest powyżej 30°C). Użyj minutnika, by kontrolować czas chłodzenia.',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: 'Twórz wiele minutników',
26
+ text: 'Użyj przycisku "+", aby dodać tyle minutników, ile potrzebujesz do koordynacji potraw.',
27
+ },
28
+ {
29
+ name: 'Personalizuj każdy minutnik',
30
+ text: 'Zmień nazwę każdego minutnika, aby wiedzieć, co mierzy: "Piekarnik", "Ryż", "Sos" itp.',
31
+ },
32
+ {
33
+ name: 'Steruj z mobilnego doku',
34
+ text: 'Na komórkach aktywne minutniki pojawiają się w przesuwanym doku na dole. Wstrzymuj lub resetuj bezpośrednio tam.',
35
+ },
36
+ {
37
+ name: 'Otrzymuj powiadomienia',
38
+ text: 'Zezwól na powiadomienia, aby przeglądarka ostrzegła Cię, gdy czas dobiegnie końca.',
39
+ },
40
+ ];
41
+
42
+ const faqSchema = {
43
+ '@context': 'https://schema.org',
44
+ '@type': 'FAQPage',
45
+ mainEntity: faq.map((item) => ({
46
+ '@type': 'Question',
47
+ name: item.question,
48
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
49
+ })),
50
+ };
51
+
52
+ const howToSchema = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'HowTo',
55
+ name: title,
56
+ description,
57
+ step: howTo.map((step) => ({
58
+ '@type': 'HowToStep',
59
+ name: step.name,
60
+ text: step.text,
61
+ })),
62
+ };
63
+
64
+ const appSchema = {
65
+ '@context': 'https://schema.org',
66
+ '@type': 'SoftwareApplication',
67
+ name: title,
68
+ description,
69
+ applicationCategory: 'UtilitiesApplication',
70
+ operatingSystem: 'Web',
71
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
72
+ };
73
+
74
+ export const content: ToolLocaleContent = {
75
+ slug: 'minutnik-kuchenny',
76
+ title: 'Multiminutnik Kuchenny',
77
+ description: 'Zarządzaj wieloma czasami gotowania jednocześnie. Niezależne alarmy, idealne dla szefów kuchni i organizacji pracy (Mise en Place).',
78
+ faqTitle: 'Często Zadawane Pytania',
79
+ bibliographyTitle: 'Referencje',
80
+ ui: {
81
+ addTimer: 'Dodaj Minutnik',
82
+ stopAll: 'Zatrzymaj Wszystkie',
83
+ defaultName: 'Minutnik',
84
+ newTimerName: 'Nowy Minutnik',
85
+ timerDefault1: 'Minutnik 1',
86
+ timerDefault2: 'Minutnik 2',
87
+ timerDefault3: 'Minutnik 3',
88
+ label: 'Etykieta',
89
+ hours: 'Godz',
90
+ minutes: 'Min',
91
+ seconds: 'Sek',
92
+ ready: 'Gotowy',
93
+ start: 'Start',
94
+ pause: 'Pauza',
95
+ reset: 'Reset',
96
+ addOneMin: '+1 min',
97
+ addFiveMin: '+5 min',
98
+ statusReady: 'Gotowy',
99
+ statusRunning: 'Działa',
100
+ statusPaused: 'Wstrzymany',
101
+ statusFinished: 'CZAS!',
102
+ finishNotification: 'Minutnik zakończony dla',
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,
116
+ seo: [
117
+ {
118
+ type: 'title',
119
+ text: 'Mistrzostwo Czasu w Kuchni',
120
+ level: 2,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Profesjonalne gotowanie to nie tylko przepisy, ale <strong>precyzyjne zarządzanie czasem</strong>. Francuska koncepcja <em>"Mise en Place"</em> (wszystko na swoim miejscu) traktuje czas jako brakujący składnik.',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Rola Temperatury i Czasu',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'table',
133
+ headers: ['Produkt', 'Stopień ugotowania', 'Czas', 'Korzyść'],
134
+ rows: [
135
+ ['Jajka na miękko', 'Płynne żółtko', '3-4 min', 'Delikatne białko'],
136
+ ['Jajka Mollet', 'Kremowe żółtko', '5-6 min', 'Idealny balans'],
137
+ ['Jajka na twardo', 'Ścięte', '9-11 min', 'Maksymalna gęstość'],
138
+ ['Mięso - Smażenie', 'Wysoka temp.', '1-2 min/strona', 'Reakcja Maillarda'],
139
+ ['Mięso - Odpoczynek', 'Odpoczynek', '5-20 min', 'Rozkład soków'],
140
+ ],
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Bezpieczeństwo Żywności: Strefa Niebezpieczeństwa',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Czas wpływa również na bezpieczeństwo. Bakteryjna "Strefa Niebezpieczeństwa" to 5°C do 65°C. Jedzenie nie powinno przebywać w niej dłużej niż <strong>2 godziny</strong>.',
150
+ },
151
+ {
152
+ type: 'title',
153
+ text: 'Porady Dotyczące Organizacji',
154
+ level: 3,
155
+ },
156
+ {
157
+ type: 'list',
158
+ items: [
159
+ '<strong>Stopniuj czasy zakończenia:</strong> jeśli wszystko skończy się naraz, spanikujesz przy nakładaniu.',
160
+ '<strong>Użyj ciepła resztkowego:</strong> wyłącz ogień 1-2 minuty przed dzwonkiem.',
161
+ '<strong>Nazwij minutniki:</strong> użyj etykiet dla "Piekarnika", "Ryżu" lub "Sosu".',
162
+ ],
163
+ },
164
+ {
165
+ type: 'tip',
166
+ html: '<strong>Porada eksperta:</strong> precyzja czasu odróżnia szefa kuchni od amatora. Używaj technologii, by zagwarantować powtarzalność.',
167
+ },
168
+ ],
169
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
170
+ };
@@ -0,0 +1,174 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "Temporizador de Cozinha Múltiplo";
4
+ const description = "Gere múltiplos tempos de cozedura simultaneamente. Alarmes independentes, ideal para chefs e organização na cozinha (Mise en Place).";
5
+ const faq = [
6
+ {
7
+ question: 'Quantos temporizadores posso criar?',
8
+ answer: 'Ilimitados. Adicione tantos quantos precisar com o botão "+". Ideal para cozinhar vários pratos simultaneamente: massa a ferver, molho a reduzir, carne a repousar e forno ligado, tudo ao mesmo tempo.',
9
+ },
10
+ {
11
+ question: 'Por que é importante o tempo de repouso nas carnes?',
12
+ answer: 'Quando corta carne acabada de sair do lume, os sucos escapam para o prato. Se repousar 5-10 minutos, as fibras relaxam e os sucos redistribuem-se. Resultado: carne suculenta em vez de seca. O repouso é cozedura passiva.',
13
+ },
14
+ {
15
+ question: 'Funciona com o ecrã bloqueado?',
16
+ answer: 'Sim, mas precisa de dar permissões de notificações. Os temporizadores continuam a correr em segundo plano e avisá-lo-ão com som e notificação do navegador mesmo que mude de separador ou bloqueie o telemóvel.',
17
+ },
18
+ {
19
+ question: 'O que é a "Zona de Perigo" alimentar?',
20
+ answer: 'Entre 5°C e 65°C as bactérias multiplicam-se rapidamente. Os alimentos cozinhados não devem estar nesta zona mais de 2 horas (1 hora se estiver >30°C). Use um temporizador para controlar o arrefecimento antes de refrigerar.',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: 'Crie múltiplos temporizadores',
26
+ text: 'Use o botão "+" para adicionar tantos temporizadores quantos precisar. Ideal para orquestrar vários pratos simultaneamente.',
27
+ },
28
+ {
29
+ name: 'Personalize cada temporizador',
30
+ text: 'Altere o nome de cada temporizador para identificar o que está a cozinhar: "Forno", "Arroz", "Molho", etc.',
31
+ },
32
+ {
33
+ name: 'Controle pelo dock móvel',
34
+ text: 'Nos telemóveis, os temporizadores ativos aparecem num dock deslizante na parte inferior. Pause ou reinicie diretamente por aí.',
35
+ },
36
+ {
37
+ name: 'Receba notificações',
38
+ text: 'Autorize notificações para que o navegador o avise quando o tempo terminar, mesmo que mude de separador.',
39
+ },
40
+ ];
41
+
42
+ const faqSchema = {
43
+ '@context': 'https://schema.org',
44
+ '@type': 'FAQPage',
45
+ mainEntity: faq.map((item) => ({
46
+ '@type': 'Question',
47
+ name: item.question,
48
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
49
+ })),
50
+ };
51
+
52
+ const howToSchema = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'HowTo',
55
+ name: title,
56
+ description,
57
+ step: howTo.map((step) => ({
58
+ '@type': 'HowToStep',
59
+ name: step.name,
60
+ text: step.text,
61
+ })),
62
+ };
63
+
64
+ const appSchema = {
65
+ '@context': 'https://schema.org',
66
+ '@type': 'SoftwareApplication',
67
+ name: title,
68
+ description,
69
+ applicationCategory: 'UtilitiesApplication',
70
+ operatingSystem: 'Web',
71
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
72
+ };
73
+
74
+ export const content: ToolLocaleContent = {
75
+ slug: 'temporizador-cozinha',
76
+ title: 'Temporizador de Cozinha Múltiplo',
77
+ description: 'Gere múltiplos tempos de cozedura simultaneamente. Alarmes independentes, ideal para chefs e organização na cozinha (Mise en Place).',
78
+ faqTitle: 'Perguntas Frequentes',
79
+ bibliographyTitle: 'Referências',
80
+ ui: {
81
+ addTimer: 'Adicionar Temporizador',
82
+ stopAll: 'Parar Todos',
83
+ defaultName: 'Temporizador',
84
+ newTimerName: 'Novo Temporizador',
85
+ timerDefault1: 'Temporizador 1',
86
+ timerDefault2: 'Temporizador 2',
87
+ timerDefault3: 'Temporizador 3',
88
+ label: 'Etiqueta',
89
+ hours: 'Horas',
90
+ minutes: 'Min',
91
+ seconds: 'Seg',
92
+ ready: 'Pronto',
93
+ start: 'Iniciar',
94
+ pause: 'Pausar',
95
+ reset: 'Reset',
96
+ addOneMin: '+1 min',
97
+ addFiveMin: '+5 min',
98
+ statusReady: 'Pronto',
99
+ statusRunning: 'A correr',
100
+ statusPaused: 'Pausado',
101
+ statusFinished: 'TEMPO!',
102
+ finishNotification: 'Temporizador Terminado para',
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,
116
+ seo: [
117
+ {
118
+ type: 'title',
119
+ text: 'Maestria Temporal na Cozinha',
120
+ level: 2,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'A cozinha profissional não se baseia apenas em receitas, mas na <strong>gestão precisa do tempo</strong>. O conceito francês <em>"Mise en Place"</em> (tudo no seu lugar) inclui o tempo como um ingrediente fundamental.',
125
+ },
126
+ {
127
+ type: 'paragraph',
128
+ html: 'Esta ferramenta de <strong>Temporizador Múltiplo</strong> foi desenhada para chefs caseiros e profissionais que precisam de orquestrar uma sinfonia de pratos simultaneamente.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'O Papel da Temperatura e do Tempo',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'table',
137
+ headers: ['Alimento', 'Ponto de Cozedura', 'Tempo', 'Benefício'],
138
+ rows: [
139
+ ['Ovos escalfados', 'Gema líquida', '3-4 min', 'Proteína suave'],
140
+ ['Ovos Mollet', 'Gema densa', '5-6 min', 'Equilíbrio de textura'],
141
+ ['Ovos Cozidos', 'Totalmente cozido', '9-11 min', 'Máxima consistência'],
142
+ ['Carnes - Selar', 'Alta temperatura', '1-2 min/lado', 'Reação de Maillard'],
143
+ ['Carnes - Repouso', 'Repouso', '5-20 min', 'Redistribuição de sucos'],
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Segurança Alimentar: A Zona de Perigo',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'O tempo não afeta apenas a qualidade, mas a segurança. A "Zona de Perigo" bacteriana situa-se entre os 5°C e os 65°C. Os alimentos cozinhados não devem permanecer nesta gama por mais de <strong>2 horas</strong>.',
154
+ },
155
+ {
156
+ type: 'title',
157
+ text: 'Conselhos Profissionais de Organização',
158
+ level: 3,
159
+ },
160
+ {
161
+ type: 'list',
162
+ items: [
163
+ '<strong>Escalone os tempos:</strong> se tudo terminar ao mesmo tempo, ficará sobrecarregado ao empratar.',
164
+ '<strong>Use o calor residual:</strong> desligue o lume 1-2 minutos antes de o temporizador soar.',
165
+ '<strong>Nomeie os temporizadores:</strong> use as etiquetas para "Forno", "Arroz" ou "Molho".',
166
+ ],
167
+ },
168
+ {
169
+ type: 'tip',
170
+ 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
+ },
172
+ ],
173
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
174
+ };