@jjlmoya/utils-cooking 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +94 -0
- package/src/category/i18n/id.ts +94 -0
- package/src/category/i18n/it.ts +94 -0
- package/src/category/i18n/ja.ts +94 -0
- package/src/category/i18n/ko.ts +94 -0
- package/src/category/i18n/nl.ts +94 -0
- package/src/category/i18n/pl.ts +94 -0
- package/src/category/i18n/pt.ts +94 -0
- package/src/category/i18n/ru.ts +94 -0
- package/src/category/i18n/sv.ts +94 -0
- package/src/category/i18n/tr.ts +94 -0
- package/src/category/i18n/zh.ts +94 -0
- package/src/category/index.ts +12 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tool/american-kitchen-converter/i18n/de.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/id.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/it.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/ja.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/ko.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/nl.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/pl.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/pt.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/ru.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/sv.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/tr.ts +356 -0
- package/src/tool/american-kitchen-converter/i18n/zh.ts +356 -0
- package/src/tool/american-kitchen-converter/index.ts +12 -0
- package/src/tool/banana-ripeness/i18n/de.ts +248 -0
- package/src/tool/banana-ripeness/i18n/id.ts +248 -0
- package/src/tool/banana-ripeness/i18n/it.ts +248 -0
- package/src/tool/banana-ripeness/i18n/ja.ts +248 -0
- package/src/tool/banana-ripeness/i18n/ko.ts +248 -0
- package/src/tool/banana-ripeness/i18n/nl.ts +248 -0
- package/src/tool/banana-ripeness/i18n/pl.ts +248 -0
- package/src/tool/banana-ripeness/i18n/pt.ts +248 -0
- package/src/tool/banana-ripeness/i18n/ru.ts +248 -0
- package/src/tool/banana-ripeness/i18n/sv.ts +248 -0
- package/src/tool/banana-ripeness/i18n/tr.ts +248 -0
- package/src/tool/banana-ripeness/i18n/zh.ts +248 -0
- package/src/tool/banana-ripeness/index.ts +12 -0
- package/src/tool/brine/i18n/de.ts +253 -0
- package/src/tool/brine/i18n/id.ts +253 -0
- package/src/tool/brine/i18n/it.ts +253 -0
- package/src/tool/brine/i18n/ja.ts +253 -0
- package/src/tool/brine/i18n/ko.ts +253 -0
- package/src/tool/brine/i18n/nl.ts +253 -0
- package/src/tool/brine/i18n/pl.ts +253 -0
- package/src/tool/brine/i18n/pt.ts +253 -0
- package/src/tool/brine/i18n/ru.ts +253 -0
- package/src/tool/brine/i18n/sv.ts +253 -0
- package/src/tool/brine/i18n/tr.ts +253 -0
- package/src/tool/brine/i18n/zh.ts +253 -0
- package/src/tool/brine/index.ts +12 -0
- package/src/tool/cookware-guide/i18n/de.ts +200 -0
- package/src/tool/cookware-guide/i18n/fr.ts +2 -2
- package/src/tool/cookware-guide/i18n/id.ts +200 -0
- package/src/tool/cookware-guide/i18n/it.ts +200 -0
- package/src/tool/cookware-guide/i18n/ja.ts +200 -0
- package/src/tool/cookware-guide/i18n/ko.ts +200 -0
- package/src/tool/cookware-guide/i18n/nl.ts +200 -0
- package/src/tool/cookware-guide/i18n/pl.ts +200 -0
- package/src/tool/cookware-guide/i18n/pt.ts +200 -0
- package/src/tool/cookware-guide/i18n/ru.ts +200 -0
- package/src/tool/cookware-guide/i18n/sv.ts +200 -0
- package/src/tool/cookware-guide/i18n/tr.ts +200 -0
- package/src/tool/cookware-guide/i18n/zh.ts +200 -0
- package/src/tool/cookware-guide/index.ts +12 -0
- package/src/tool/egg-timer/i18n/de.ts +252 -0
- package/src/tool/egg-timer/i18n/id.ts +252 -0
- package/src/tool/egg-timer/i18n/it.ts +252 -0
- package/src/tool/egg-timer/i18n/ja.ts +252 -0
- package/src/tool/egg-timer/i18n/ko.ts +252 -0
- package/src/tool/egg-timer/i18n/nl.ts +252 -0
- package/src/tool/egg-timer/i18n/pl.ts +252 -0
- package/src/tool/egg-timer/i18n/pt.ts +252 -0
- package/src/tool/egg-timer/i18n/ru.ts +252 -0
- package/src/tool/egg-timer/i18n/sv.ts +252 -0
- package/src/tool/egg-timer/i18n/tr.ts +252 -0
- package/src/tool/egg-timer/i18n/zh.ts +252 -0
- package/src/tool/egg-timer/index.ts +12 -0
- package/src/tool/ingredient-rescaler/i18n/de.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/id.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/it.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/ja.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/ko.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/nl.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/pl.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/pt.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/ru.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/sv.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/tr.ts +244 -0
- package/src/tool/ingredient-rescaler/i18n/zh.ts +244 -0
- package/src/tool/ingredient-rescaler/index.ts +12 -0
- package/src/tool/kitchen-timer/i18n/de.ts +174 -0
- package/src/tool/kitchen-timer/i18n/id.ts +170 -0
- package/src/tool/kitchen-timer/i18n/it.ts +174 -0
- package/src/tool/kitchen-timer/i18n/ja.ts +170 -0
- package/src/tool/kitchen-timer/i18n/ko.ts +170 -0
- package/src/tool/kitchen-timer/i18n/nl.ts +174 -0
- package/src/tool/kitchen-timer/i18n/pl.ts +170 -0
- package/src/tool/kitchen-timer/i18n/pt.ts +174 -0
- package/src/tool/kitchen-timer/i18n/ru.ts +170 -0
- package/src/tool/kitchen-timer/i18n/sv.ts +170 -0
- package/src/tool/kitchen-timer/i18n/tr.ts +170 -0
- package/src/tool/kitchen-timer/i18n/zh.ts +170 -0
- package/src/tool/kitchen-timer/index.ts +12 -0
- package/src/tool/meringue-peak/i18n/de.ts +221 -0
- package/src/tool/meringue-peak/i18n/id.ts +209 -0
- package/src/tool/meringue-peak/i18n/it.ts +210 -0
- package/src/tool/meringue-peak/i18n/ja.ts +210 -0
- package/src/tool/meringue-peak/i18n/ko.ts +210 -0
- package/src/tool/meringue-peak/i18n/nl.ts +210 -0
- package/src/tool/meringue-peak/i18n/pl.ts +210 -0
- package/src/tool/meringue-peak/i18n/pt.ts +210 -0
- package/src/tool/meringue-peak/i18n/ru.ts +210 -0
- package/src/tool/meringue-peak/i18n/sv.ts +210 -0
- package/src/tool/meringue-peak/i18n/tr.ts +210 -0
- package/src/tool/meringue-peak/i18n/zh.ts +210 -0
- package/src/tool/meringue-peak/index.ts +12 -0
- package/src/tool/mold-scaler/i18n/de.ts +183 -0
- package/src/tool/mold-scaler/i18n/id.ts +169 -0
- package/src/tool/mold-scaler/i18n/it.ts +170 -0
- package/src/tool/mold-scaler/i18n/ja.ts +170 -0
- package/src/tool/mold-scaler/i18n/ko.ts +170 -0
- package/src/tool/mold-scaler/i18n/nl.ts +170 -0
- package/src/tool/mold-scaler/i18n/pl.ts +170 -0
- package/src/tool/mold-scaler/i18n/pt.ts +170 -0
- package/src/tool/mold-scaler/i18n/ru.ts +170 -0
- package/src/tool/mold-scaler/i18n/sv.ts +170 -0
- package/src/tool/mold-scaler/i18n/tr.ts +170 -0
- package/src/tool/mold-scaler/i18n/zh.ts +170 -0
- package/src/tool/mold-scaler/index.ts +12 -0
- package/src/tool/pizza/i18n/de.ts +168 -0
- package/src/tool/pizza/i18n/id.ts +125 -0
- package/src/tool/pizza/i18n/it.ts +172 -0
- package/src/tool/pizza/i18n/ja.ts +125 -0
- package/src/tool/pizza/i18n/ko.ts +125 -0
- package/src/tool/pizza/i18n/nl.ts +164 -0
- package/src/tool/pizza/i18n/pl.ts +125 -0
- package/src/tool/pizza/i18n/pt.ts +168 -0
- package/src/tool/pizza/i18n/ru.ts +151 -0
- package/src/tool/pizza/i18n/sv.ts +164 -0
- package/src/tool/pizza/i18n/tr.ts +125 -0
- package/src/tool/pizza/i18n/zh.ts +125 -0
- package/src/tool/pizza/index.ts +12 -0
- package/src/tool/roux-guide/i18n/de.ts +165 -0
- package/src/tool/roux-guide/i18n/id.ts +139 -0
- package/src/tool/roux-guide/i18n/it.ts +165 -0
- package/src/tool/roux-guide/i18n/ja.ts +139 -0
- package/src/tool/roux-guide/i18n/ko.ts +139 -0
- package/src/tool/roux-guide/i18n/nl.ts +165 -0
- package/src/tool/roux-guide/i18n/pl.ts +139 -0
- package/src/tool/roux-guide/i18n/pt.ts +165 -0
- package/src/tool/roux-guide/i18n/ru.ts +139 -0
- package/src/tool/roux-guide/i18n/sv.ts +139 -0
- package/src/tool/roux-guide/i18n/tr.ts +139 -0
- package/src/tool/roux-guide/i18n/zh.ts +139 -0
- package/src/tool/roux-guide/index.ts +12 -0
- package/src/tool/sourdough-calculator/i18n/de.ts +142 -0
- package/src/tool/sourdough-calculator/i18n/id.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/it.ts +142 -0
- package/src/tool/sourdough-calculator/i18n/ja.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/ko.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/nl.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/pl.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/pt.ts +142 -0
- package/src/tool/sourdough-calculator/i18n/ru.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/sv.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/tr.ts +116 -0
- package/src/tool/sourdough-calculator/i18n/zh.ts +116 -0
- package/src/tool/sourdough-calculator/index.ts +12 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
|
|
3
|
+
const title = '食材缩放器 食谱份量调整';
|
|
4
|
+
const description = '根据份量自动缩放食谱。通过乘算或减算快速计算精确的食材用量,无需复杂换算。';
|
|
5
|
+
|
|
6
|
+
const faq = [
|
|
7
|
+
{
|
|
8
|
+
question: '为什么我的转换系数包含小数点?',
|
|
9
|
+
answer: '因为烹饪比例并不总是整数。如果你将 4 人份的食谱缩放到 7 人份,系数正是 1.75。食材将乘以该数字,即使产生分数也比随意舍入更精确。',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
question: '输入“1/2 茶勺盐”会发生什么?',
|
|
13
|
+
answer: '工具会优先识别数字。它将“1”识别为数量,将“/2”识别为单位的一部分。结果将是“0.5”,并进行正确的缩放。对于类似“1/2”的分数,建议直接输入“0.5”或通过除法逻辑识别。',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: '我应该对最终结果进行四舍五入吗?',
|
|
17
|
+
answer: '这取决于食材。面粉类可以;但对于酵母或香料,精确度略次要(建议缩放到理论值的 75%)。关于鸡蛋:如果得到 2.3,建议使用 2 个全蛋 + 第 3 个鸡蛋的一部分(称重),或根据菜品情况舍入为 2。',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: '更改份量后结果没有变化,为什么?',
|
|
21
|
+
answer: '请确保食材列表框中有内容。如果为空,则无法进行缩放。同时检查你的食材前是否有可识别的数字(如“500g”、“1/2 茶勺”)。',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: '它支持英制单位(盎司、杯)吗?',
|
|
25
|
+
answer: '技术上是支持的,工具读取数字并进行缩放。但由于“杯”等体积单位的一致性较差,建议缩放前先转换为克。',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const howTo = [
|
|
30
|
+
{
|
|
31
|
+
name: '输入份量',
|
|
32
|
+
text: '在“原始”字段输入食谱设计的初始人数。在“目标”字段输入你实际要烹饪的人数。',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: '粘贴食材清单',
|
|
36
|
+
text: '直接复制并粘贴清单。每行一个食材。工具会自动识别开头的数字(500g, 1/2, 2.5)并自动缩放。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '根据环境调整',
|
|
40
|
+
text: '结果在数学上是精确的,但烹饪是艺术。香料建议缩放到 75%。大量制作时,酵母用量通常少于理论值。注意:烹饪时间从不随比例缩放。',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const faqSchema = {
|
|
45
|
+
'@context': 'https://schema.org',
|
|
46
|
+
'@type': 'FAQPage',
|
|
47
|
+
mainEntity: faq.map((item) => ({
|
|
48
|
+
'@type': 'Question',
|
|
49
|
+
name: item.question,
|
|
50
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
51
|
+
})),
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const howToSchema = {
|
|
55
|
+
'@context': 'https://schema.org',
|
|
56
|
+
'@type': 'HowTo',
|
|
57
|
+
name: title,
|
|
58
|
+
description,
|
|
59
|
+
step: howTo.map((step) => ({
|
|
60
|
+
'@type': 'HowToStep',
|
|
61
|
+
name: step.name,
|
|
62
|
+
text: step.text,
|
|
63
|
+
})),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const appSchema = {
|
|
67
|
+
'@context': 'https://schema.org',
|
|
68
|
+
'@type': 'SoftwareApplication',
|
|
69
|
+
name: title,
|
|
70
|
+
description,
|
|
71
|
+
applicationCategory: 'UtilitiesApplication',
|
|
72
|
+
operatingSystem: 'All',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent = {
|
|
76
|
+
slug: 'ingredient-rescaler',
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui: {
|
|
80
|
+
servings: '份量',
|
|
81
|
+
original: '原始',
|
|
82
|
+
desired: '目标',
|
|
83
|
+
multiplyingFactor: '转换倍数',
|
|
84
|
+
ingredientsList: '食材清单',
|
|
85
|
+
pasteHere: '在此粘贴你的清单',
|
|
86
|
+
exampleLine1: '例:',
|
|
87
|
+
exampleLine2: '500g 面粉',
|
|
88
|
+
exampleLine3: '300ml 水',
|
|
89
|
+
exampleLine4: '10g 盐',
|
|
90
|
+
result: '计算结果',
|
|
91
|
+
copy: '复制',
|
|
92
|
+
copied: '已复制',
|
|
93
|
+
emptyState: '调整后的食材将显示在这里...',
|
|
94
|
+
defaultIngredient1: '200g 面粉',
|
|
95
|
+
defaultIngredient2: '100ml 牛奶',
|
|
96
|
+
defaultIngredient3: '2 个鸡蛋',
|
|
97
|
+
},
|
|
98
|
+
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,
|
|
116
|
+
seo: [
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: '食谱缩放与转换大师指南',
|
|
120
|
+
level: 2,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '<strong>食材缩放</strong>是专业厨房中最关键且最易出错的任务之一。它不仅仅是数字的乘算,更涉及理解食物的化学和物理属性在体积和表面积变化时如何反应。',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'stats',
|
|
128
|
+
columns: 4,
|
|
129
|
+
items: [
|
|
130
|
+
{
|
|
131
|
+
value: 'x1.75',
|
|
132
|
+
label: '4人变7人系数',
|
|
133
|
+
icon: 'mdi:calculator',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
value: '75%',
|
|
137
|
+
label: '香料调整比例',
|
|
138
|
+
icon: 'mdi:shaker-outline',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
value: '0%',
|
|
142
|
+
label: '时间不参与缩放',
|
|
143
|
+
icon: 'mdi:timer-off',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
value: '100g',
|
|
147
|
+
label: '参考基准单位',
|
|
148
|
+
icon: 'mdi:weight-gram',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'title',
|
|
154
|
+
text: '线性缩放与环境缩放的区别',
|
|
155
|
+
level: 3,
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'comparative',
|
|
159
|
+
columns: 2,
|
|
160
|
+
items: [
|
|
161
|
+
{
|
|
162
|
+
title: '数学线性缩放',
|
|
163
|
+
icon: 'mdi:math-log',
|
|
164
|
+
description: '将所有数值直接乘以计算出的转换系数。',
|
|
165
|
+
points: [
|
|
166
|
+
'最适合面粉和基础液体',
|
|
167
|
+
'精密精细烘焙的理想选择',
|
|
168
|
+
'适用于小范围变化 (x2, x0.5)',
|
|
169
|
+
'易于自动化精确计算',
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
title: '厨房环境缩放',
|
|
174
|
+
icon: 'mdi:chef-hat',
|
|
175
|
+
description: '基于风味饱和度和水分蒸发率进行比例微调。',
|
|
176
|
+
highlight: true,
|
|
177
|
+
points: [
|
|
178
|
+
'防止由于比例过大导致盐和香料过重',
|
|
179
|
+
'考虑容器表面积带来的蒸发差异',
|
|
180
|
+
'根据面团质量调整酵母活性',
|
|
181
|
+
'需要主厨的经验和主观判断',
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'title',
|
|
188
|
+
text: '基于用餐人数的转换系数',
|
|
189
|
+
level: 3,
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'table',
|
|
193
|
+
headers: ['原始份量', '目标份量', '系数 (FC)', '调整难度'],
|
|
194
|
+
rows: [
|
|
195
|
+
['2 人份', '4 人份', 'x 2.0', '低 (线性)'],
|
|
196
|
+
['4 人份', '6 人份', 'x 1.5', '低 (线性)'],
|
|
197
|
+
['4 人份', '10 人份', 'x 2.5', '中 (留意香料)'],
|
|
198
|
+
['4 人份', '25 人份', 'x 6.25', '高 (环境调整)'],
|
|
199
|
+
],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
type: 'diagnostic',
|
|
203
|
+
variant: 'warning',
|
|
204
|
+
title: '翻倍烹饪时的常见陷阱',
|
|
205
|
+
html: '如果你发现缩放后口味过重(尤其是辣味或咸味),请将这些特定食材的缩放比例降至理论值的 75%。切勿翻倍烹饪时间;核心温度取决于食材厚度而非总重。',
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
type: 'title',
|
|
209
|
+
text: '标准化术语表',
|
|
210
|
+
level: 3,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
type: 'glossary',
|
|
214
|
+
items: [
|
|
215
|
+
{
|
|
216
|
+
term: '转换系数 (Conversion Factor)',
|
|
217
|
+
definition: '所有食材乘以的常数:目标用量 / 原始用量。',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
term: '烹饪损耗',
|
|
221
|
+
definition: '由于蒸发或油脂流失导致的食材重量减少,非完全线性变化。',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
term: '毛重 vs 净重',
|
|
225
|
+
definition: '食材处理前后的重量。我们始终基于原始食谱重量缩放。',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
term: '产出率 (Yield)',
|
|
229
|
+
definition: '经过缩放和烹饪后最终成品的总重量或总量。',
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
type: 'tip',
|
|
235
|
+
title: '溶打鸡蛋的小技巧',
|
|
236
|
+
html: '如果计算得出 2.3 个鸡蛋,请打散一个蛋并称重,仅取其 30% 比例。这是保持高级西点精确度的唯一方法。',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
type: 'paragraph',
|
|
240
|
+
html: '本工具简化了数学运算,让你能百分之百投入到最重要的事:创意与风味。',
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
schemas: [appSchema, faqSchema, howToSchema],
|
|
244
|
+
};
|
|
@@ -13,6 +13,18 @@ export const ingredientRescaler: CookingToolEntry = {
|
|
|
13
13
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
14
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
15
15
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
16
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
17
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
18
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
19
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
20
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
21
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
22
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
23
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
24
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
25
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
26
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
27
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
16
28
|
},
|
|
17
29
|
};
|
|
18
30
|
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
|
|
3
|
+
const title = "Multi Küchen Timer";
|
|
4
|
+
const description = "Verwalten Sie mehrere Garzeiten gleichzeitig. Unabhängige Alarme, ideal für Köche und die Organisation in der Küche (Mise en Place).";
|
|
5
|
+
const faq = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Wie viele Timer kann ich erstellen?',
|
|
8
|
+
answer: 'Unbegrenzt viele. Fügen Sie mit der Schaltfläche "+" so viele hinzu, wie Sie benötigen. Ideal für das gleichzeitige Kochen mehrerer Gerichte: Nudeln kochen, Sauce reduzieren, Fleisch ruhen lassen und der Ofen läuft – alles auf einmal.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Warum ist die Ruhezeit bei Fleisch wichtig?',
|
|
12
|
+
answer: 'Wenn Sie Fleisch direkt vom Feuer schneiden, entweicht der Saft auf den Teller. Lassen Sie es 5-10 Minuten ruhen, entspannen sich die Fasern und der Saft verteilt sich neu. Ergebnis: saftiges statt trockenes Fleisch. Ruhen ist passives Garen.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Funktioniert es bei gesperrtem Bildschirm?',
|
|
16
|
+
answer: 'Ja, aber Sie müssen Benachrichtigungsberechtigungen erteilen. Die Timer laufen im Hintergrund weiter und benachrichtigen Sie mit Ton und Browser-Benachrichtigung, auch wenn Sie den Tab wechseln oder das Handy sperren.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Was ist die lebensmittelrelevante "Gefahrenzone"?',
|
|
20
|
+
answer: 'Zwischen 5°C und 65°C vermehren sich Bakterien schnell. Gekochte Lebensmittel sollten nicht länger als 2 Stunden in dieser Zone bleiben (1 Stunde, wenn es >30°C ist). Nutzen Sie einen Timer, um das Abkühlen vor dem Kühlen zu kontrollieren.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
const howTo = [
|
|
24
|
+
{
|
|
25
|
+
name: 'Mehrere Timer erstellen',
|
|
26
|
+
text: 'Nutzen Sie die "+"-Schaltfläche, um so viele Timer wie nötig hinzuzufügen. Ideal für die Koordination mehrerer Gerichte.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Jeden Timer anpassen',
|
|
30
|
+
text: 'Ändern Sie den Namen jedes Timers, um zu wissen, was gerade gart: "Ofen", "Reis", "Sauce" usw.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Über das mobile Dock steuern',
|
|
34
|
+
text: 'Auf Mobilgeräten erscheinen aktive Timer in einem schiebbaren Dock am unteren Rand. Dort können Sie direkt pausieren oder neu starten.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Benachrichtigungen erhalten',
|
|
38
|
+
text: 'Erlauben Sie Benachrichtigungen, damit der Browser Sie warnt, wenn die Zeit abgelaufen ist, auch wenn Sie den Tab wechseln.',
|
|
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: 'kuechen-timer',
|
|
76
|
+
title: 'Multi Küchen Timer',
|
|
77
|
+
description: 'Verwalten Sie mehrere Garzeiten gleichzeitig. Unabhängige Alarme, ideal für Köche und die Organisation in der Küche (Mise en Place).',
|
|
78
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
79
|
+
bibliographyTitle: 'Referenzen',
|
|
80
|
+
ui: {
|
|
81
|
+
addTimer: 'Timer hinzufügen',
|
|
82
|
+
stopAll: 'Alle stoppen',
|
|
83
|
+
defaultName: 'Timer',
|
|
84
|
+
newTimerName: 'Neuer Timer',
|
|
85
|
+
timerDefault1: 'Timer 1',
|
|
86
|
+
timerDefault2: 'Timer 2',
|
|
87
|
+
timerDefault3: 'Timer 3',
|
|
88
|
+
label: 'Bezeichnung',
|
|
89
|
+
hours: 'Std',
|
|
90
|
+
minutes: 'Min',
|
|
91
|
+
seconds: 'Sek',
|
|
92
|
+
ready: 'Fertig',
|
|
93
|
+
start: 'Start',
|
|
94
|
+
pause: 'Pause',
|
|
95
|
+
reset: 'Reset',
|
|
96
|
+
addOneMin: '+1 Min',
|
|
97
|
+
addFiveMin: '+5 Min',
|
|
98
|
+
statusReady: 'Bereit',
|
|
99
|
+
statusRunning: 'Läuft',
|
|
100
|
+
statusPaused: 'Pausiert',
|
|
101
|
+
statusFinished: 'ZEIT UM!',
|
|
102
|
+
finishNotification: 'Timer beendet für',
|
|
103
|
+
},
|
|
104
|
+
faq,
|
|
105
|
+
bibliography: [
|
|
106
|
+
{
|
|
107
|
+
name: 'Lebensmittelsicherheit: USDA Guidelines',
|
|
108
|
+
url: 'https://www.fsis.usda.gov/',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'Mise en Place - Die Profiküche',
|
|
112
|
+
url: 'https://www.escoffier.edu/',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo,
|
|
116
|
+
seo: [
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Zeitmanagement in der Küche',
|
|
120
|
+
level: 2,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'In der Profiküche geht es nicht nur um Rezepte, sondern um das <strong>präzise Zeitmanagement</strong>. Das französische Konzept <em>"Mise en Place"</em> (alles an seinem Platz) umfasst Zeit als eine wesentliche Zutat. Ein Steak, das 5 Minuten ruht, verteilt seinen Saft neu und wird zart.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'paragraph',
|
|
128
|
+
html: 'Dieser <strong>Multi-Timer</strong> wurde für Hobbyköche und Profis entwickelt, die gleichzeitig mehrere Prozesse koordinieren müssen: kochende Nudeln, der Braten im Ofen und die Saucenreduktion.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Die Rolle von Temperatur und Zeit',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'table',
|
|
137
|
+
headers: ['Lebensmittel', 'Garstufe', 'Zeit', 'Vorteil'],
|
|
138
|
+
rows: [
|
|
139
|
+
['Weiches Ei', 'Flüssiges Eigelb', '3-4 Min', 'Zarte Proteine, leicht verdaulich'],
|
|
140
|
+
['Wachsweiches Ei', 'Cremiges Eigelb', '5-6 Min', 'Perfekte Texturbalance'],
|
|
141
|
+
['Hartes Ei', 'Vollständig gestockt', '9-11 Min', 'Maximale Konsistenz'],
|
|
142
|
+
['Fleisch - Anbraten', 'Hohe Hitze', '1-2 Min/Seite', 'Maillard-Reaktion, Aroma'],
|
|
143
|
+
['Fleisch - Ruhen', 'Ruhephase', '5-20 Min', 'Saftverteilung'],
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Lebensmittelsicherheit: Die Gefahrenzone',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Zeit beeinflusst nicht nur die Qualität, sondern auch die Sicherheit. Bakterien vermehren sich am schnellsten zwischen 5°C und 65°C. Gekochte Speisen sollten nicht länger als <strong>2 Stunden</strong> in diesem Bereich bleiben.',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Profi-Tipps zur Organisation',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'list',
|
|
162
|
+
items: [
|
|
163
|
+
'<strong>Endzeiten staffeln:</strong> Wenn alles gleichzeitig fertig wird, geraten Sie beim Anrichten unter Stress.',
|
|
164
|
+
'<strong>Restwärme nutzen:</strong> Schalten Sie Nudeln oder Gemüse 1-2 Minuten früher aus.',
|
|
165
|
+
'<strong>Timer benennen:</strong> Benutzen Sie die Benennungsfunktion für "Ofen", "Reis" oder "Sauce".',
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: 'tip',
|
|
170
|
+
html: '<strong>Profi-Tipp:</strong> Zeitpräzision unterscheidet den Küchenchef vom Hobbykoch. Verlassen Sie sich nicht nur auf Ihr Gefühl, sondern nutzen Sie die Technik für konstante Ergebnisse.',
|
|
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 = "Pengatur Waktu Dapur Ganda";
|
|
4
|
+
const description = "Kelola beberapa waktu memasak secara bersamaan. Alarm independen, ideal untuk koki dan organisasi dapur (Mise en Place).";
|
|
5
|
+
const faq = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Berapa banyak timer yang bisa saya buat?',
|
|
8
|
+
answer: 'Tak terbatas. Tambahkan sebanyak yang Anda butuhkan dengan tombol "+". Ideal untuk memasak beberapa hidangan sekaligus: merebus pasta, mereduksi saus, mendiamkan daging, dan oven yang menyala – semuanya sekaligus.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Mengapa waktu istirahat penting untuk daging?',
|
|
12
|
+
answer: 'Saat Anda memotong daging yang baru saja diangkat dari api, sarinya akan keluar ke piring. Jika didiamkan 5-10 menit, serat-seratnya akan rileks dan sarinya akan terdistribusi kembali. Hasilnya: daging yang juicy, bukan kering.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Apakah ini berfungsi dengan layar terkunci?',
|
|
16
|
+
answer: 'Ya, tetapi Anda perlu memberikan izin notifikasi. Timer tetap berjalan di latar belakang dan akan memberi tahu Anda dengan suara dan notifikasi browser meskipun Anda berpindah tab atau mengunci ponsel.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Apa itu "Zona Bahaya" makanan?',
|
|
20
|
+
answer: 'Antara 5°C dan 65°C bakteri berkembang biak dengan cepat. Makanan matang tidak boleh berada di zona ini lebih dari 2 jam (1 jam jika suhu >30°C). Gunakan timer untuk memantau pendinginan.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
const howTo = [
|
|
24
|
+
{
|
|
25
|
+
name: 'Buat beberapa timer',
|
|
26
|
+
text: 'Gunakan tombol "+" untuk menambah timer sebanyak yang Anda butuhkan untuk mengatur berbagai hidangan.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Personalisasi setiap timer',
|
|
30
|
+
text: 'Ubah nama setiap timer untuk mengidentifikasi apa yang sedang dimasak: "Oven", "Nasi", "Saus", dll.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Kontrol dari dock seluler',
|
|
34
|
+
text: 'Di ponsel, timer yang aktif muncul di dock yang dapat digeser di bagian bawah. Jeda atau mulai ulang langsung dari sana.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Dapatkan notifikasi',
|
|
38
|
+
text: 'Izinkan notifikasi agar browser memperingatkan Anda saat waktu habis.',
|
|
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: 'pengatur-waktu-dapur',
|
|
76
|
+
title: 'Pengatur Waktu Dapur Ganda',
|
|
77
|
+
description: 'Kelola beberapa waktu memasak secara bersamaan. Alarm independen, ideal untuk koki dan organisasi dapur (Mise en Place).',
|
|
78
|
+
faqTitle: 'Pertanyaan Umum',
|
|
79
|
+
bibliographyTitle: 'Referensi',
|
|
80
|
+
ui: {
|
|
81
|
+
addTimer: 'Tambah Timer',
|
|
82
|
+
stopAll: 'Hentikan Semua',
|
|
83
|
+
defaultName: 'Timer',
|
|
84
|
+
newTimerName: 'Timer Baru',
|
|
85
|
+
timerDefault1: 'Timer 1',
|
|
86
|
+
timerDefault2: 'Timer 2',
|
|
87
|
+
timerDefault3: 'Timer 3',
|
|
88
|
+
label: 'Label',
|
|
89
|
+
hours: 'Jam',
|
|
90
|
+
minutes: 'Menit',
|
|
91
|
+
seconds: 'Detik',
|
|
92
|
+
ready: 'Siap',
|
|
93
|
+
start: 'Mulai',
|
|
94
|
+
pause: 'Jeda',
|
|
95
|
+
reset: 'Reset',
|
|
96
|
+
addOneMin: '+1 mnt',
|
|
97
|
+
addFiveMin: '+5 mnt',
|
|
98
|
+
statusReady: 'Siap',
|
|
99
|
+
statusRunning: 'Berjalan',
|
|
100
|
+
statusPaused: 'Dijeda',
|
|
101
|
+
statusFinished: 'WAKTU HABIS!',
|
|
102
|
+
finishNotification: 'Timer Selesai untuk',
|
|
103
|
+
},
|
|
104
|
+
faq,
|
|
105
|
+
bibliography: [
|
|
106
|
+
{
|
|
107
|
+
name: 'Keamanan Pangan: USDA Guidelines',
|
|
108
|
+
url: 'https://www.fsis.usda.gov/',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'Mise en Place - Dapur Profesional',
|
|
112
|
+
url: 'https://www.escoffier.edu/',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo,
|
|
116
|
+
seo: [
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Penguasaan Waktu di Dapur',
|
|
120
|
+
level: 2,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Memasak profesional bukan hanya tentang resep, tetapi tentang <strong>manajemen waktu yang tepat</strong>. Konsep Prancis <em>"Mise en Place"</em> menyertakan waktu sebagai bahan yang sangat penting.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: 'Peran Suhu dan Waktu',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'table',
|
|
133
|
+
headers: ['Makanan', 'Tingkat Kematangan', 'Waktu', 'Manfaat'],
|
|
134
|
+
rows: [
|
|
135
|
+
['Telur Setengah Matang', 'Kuning cair', '3-4 mnt', 'Protein lembut'],
|
|
136
|
+
['Telur Mollet', 'Kuning krem', '5-6 mnt', 'Keseimbangan tekstur'],
|
|
137
|
+
['Telur Matang', 'Padat', '9-11 mnt', 'Konsistensi maksimal'],
|
|
138
|
+
['Daging - Searing', 'Suhu tinggi', '1-2 mnt/sisi', 'Reaksi Maillard'],
|
|
139
|
+
['Daging - Istirahat', 'Istirahat', '5-20 mnt', 'Distribusi sari daging'],
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'title',
|
|
144
|
+
text: 'Keamanan Pangan: Zona Bahaya',
|
|
145
|
+
level: 3,
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'paragraph',
|
|
149
|
+
html: 'Waktu tidak hanya mempengaruhi kualitas, tetapi juga keamanan. "Zona Bahaya" bakteri adalah antara 5°C dan 65°C. Makanan matang tidak boleh didiamkan di rentang ini lebih dari <strong>2 jam</strong>.',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
text: 'Tips Organisasi Profesional',
|
|
154
|
+
level: 3,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'list',
|
|
158
|
+
items: [
|
|
159
|
+
'<strong>Atur waktu penyelesaian:</strong> Jika semuanya selesai bersamaan, Anda akan kewalahan saat menyajikan.',
|
|
160
|
+
'<strong>Gunakan panas sisa:</strong> Matikan api 1-2 menit sebelum timer berbunyi.',
|
|
161
|
+
'<strong>Beri nama timer Anda:</strong> Gunakan label untuk "Oven", "Nasi", atau "Saus".',
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'tip',
|
|
166
|
+
html: '<strong>Tips profesional:</strong> Presisi waktu membedakan koki dari pemasak rumahan. Gunakan teknologi untuk menjamin konsistensi.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
170
|
+
};
|