@jjlmoya/utils-cooking 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/package.json +59 -58
  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/schemas_fulfillment.test.ts +23 -0
  19. package/src/tests/title_quality.test.ts +55 -0
  20. package/src/tool/american-kitchen-converter/i18n/de.ts +356 -0
  21. package/src/tool/american-kitchen-converter/i18n/fr.ts +1 -1
  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/id.ts +248 -0
  36. package/src/tool/banana-ripeness/i18n/it.ts +248 -0
  37. package/src/tool/banana-ripeness/i18n/ja.ts +248 -0
  38. package/src/tool/banana-ripeness/i18n/ko.ts +248 -0
  39. package/src/tool/banana-ripeness/i18n/nl.ts +248 -0
  40. package/src/tool/banana-ripeness/i18n/pl.ts +248 -0
  41. package/src/tool/banana-ripeness/i18n/pt.ts +248 -0
  42. package/src/tool/banana-ripeness/i18n/ru.ts +248 -0
  43. package/src/tool/banana-ripeness/i18n/sv.ts +248 -0
  44. package/src/tool/banana-ripeness/i18n/tr.ts +248 -0
  45. package/src/tool/banana-ripeness/i18n/zh.ts +248 -0
  46. package/src/tool/banana-ripeness/index.ts +12 -0
  47. package/src/tool/brine/i18n/de.ts +253 -0
  48. package/src/tool/brine/i18n/id.ts +253 -0
  49. package/src/tool/brine/i18n/it.ts +253 -0
  50. package/src/tool/brine/i18n/ja.ts +253 -0
  51. package/src/tool/brine/i18n/ko.ts +253 -0
  52. package/src/tool/brine/i18n/nl.ts +253 -0
  53. package/src/tool/brine/i18n/pl.ts +253 -0
  54. package/src/tool/brine/i18n/pt.ts +253 -0
  55. package/src/tool/brine/i18n/ru.ts +253 -0
  56. package/src/tool/brine/i18n/sv.ts +253 -0
  57. package/src/tool/brine/i18n/tr.ts +253 -0
  58. package/src/tool/brine/i18n/zh.ts +253 -0
  59. package/src/tool/brine/index.ts +12 -0
  60. package/src/tool/cookware-guide/i18n/de.ts +200 -0
  61. package/src/tool/cookware-guide/i18n/en.ts +2 -2
  62. package/src/tool/cookware-guide/i18n/es.ts +3 -3
  63. package/src/tool/cookware-guide/i18n/fr.ts +2 -2
  64. package/src/tool/cookware-guide/i18n/id.ts +200 -0
  65. package/src/tool/cookware-guide/i18n/it.ts +200 -0
  66. package/src/tool/cookware-guide/i18n/ja.ts +200 -0
  67. package/src/tool/cookware-guide/i18n/ko.ts +200 -0
  68. package/src/tool/cookware-guide/i18n/nl.ts +200 -0
  69. package/src/tool/cookware-guide/i18n/pl.ts +200 -0
  70. package/src/tool/cookware-guide/i18n/pt.ts +200 -0
  71. package/src/tool/cookware-guide/i18n/ru.ts +200 -0
  72. package/src/tool/cookware-guide/i18n/sv.ts +200 -0
  73. package/src/tool/cookware-guide/i18n/tr.ts +200 -0
  74. package/src/tool/cookware-guide/i18n/zh.ts +200 -0
  75. package/src/tool/cookware-guide/index.ts +12 -0
  76. package/src/tool/egg-timer/i18n/de.ts +252 -0
  77. package/src/tool/egg-timer/i18n/id.ts +252 -0
  78. package/src/tool/egg-timer/i18n/it.ts +252 -0
  79. package/src/tool/egg-timer/i18n/ja.ts +252 -0
  80. package/src/tool/egg-timer/i18n/ko.ts +252 -0
  81. package/src/tool/egg-timer/i18n/nl.ts +252 -0
  82. package/src/tool/egg-timer/i18n/pl.ts +252 -0
  83. package/src/tool/egg-timer/i18n/pt.ts +252 -0
  84. package/src/tool/egg-timer/i18n/ru.ts +252 -0
  85. package/src/tool/egg-timer/i18n/sv.ts +252 -0
  86. package/src/tool/egg-timer/i18n/tr.ts +252 -0
  87. package/src/tool/egg-timer/i18n/zh.ts +252 -0
  88. package/src/tool/egg-timer/index.ts +12 -0
  89. package/src/tool/ingredient-rescaler/i18n/de.ts +244 -0
  90. package/src/tool/ingredient-rescaler/i18n/en.ts +74 -97
  91. package/src/tool/ingredient-rescaler/i18n/es.ts +77 -100
  92. package/src/tool/ingredient-rescaler/i18n/id.ts +244 -0
  93. package/src/tool/ingredient-rescaler/i18n/it.ts +244 -0
  94. package/src/tool/ingredient-rescaler/i18n/ja.ts +244 -0
  95. package/src/tool/ingredient-rescaler/i18n/ko.ts +244 -0
  96. package/src/tool/ingredient-rescaler/i18n/nl.ts +244 -0
  97. package/src/tool/ingredient-rescaler/i18n/pl.ts +244 -0
  98. package/src/tool/ingredient-rescaler/i18n/pt.ts +244 -0
  99. package/src/tool/ingredient-rescaler/i18n/ru.ts +244 -0
  100. package/src/tool/ingredient-rescaler/i18n/sv.ts +244 -0
  101. package/src/tool/ingredient-rescaler/i18n/tr.ts +244 -0
  102. package/src/tool/ingredient-rescaler/i18n/zh.ts +244 -0
  103. package/src/tool/ingredient-rescaler/index.ts +12 -0
  104. package/src/tool/kitchen-timer/i18n/de.ts +174 -0
  105. package/src/tool/kitchen-timer/i18n/id.ts +170 -0
  106. package/src/tool/kitchen-timer/i18n/it.ts +174 -0
  107. package/src/tool/kitchen-timer/i18n/ja.ts +170 -0
  108. package/src/tool/kitchen-timer/i18n/ko.ts +170 -0
  109. package/src/tool/kitchen-timer/i18n/nl.ts +174 -0
  110. package/src/tool/kitchen-timer/i18n/pl.ts +170 -0
  111. package/src/tool/kitchen-timer/i18n/pt.ts +174 -0
  112. package/src/tool/kitchen-timer/i18n/ru.ts +170 -0
  113. package/src/tool/kitchen-timer/i18n/sv.ts +170 -0
  114. package/src/tool/kitchen-timer/i18n/tr.ts +170 -0
  115. package/src/tool/kitchen-timer/i18n/zh.ts +170 -0
  116. package/src/tool/kitchen-timer/index.ts +12 -0
  117. package/src/tool/meringue-peak/i18n/de.ts +221 -0
  118. package/src/tool/meringue-peak/i18n/fr.ts +1 -1
  119. package/src/tool/meringue-peak/i18n/id.ts +209 -0
  120. package/src/tool/meringue-peak/i18n/it.ts +210 -0
  121. package/src/tool/meringue-peak/i18n/ja.ts +210 -0
  122. package/src/tool/meringue-peak/i18n/ko.ts +210 -0
  123. package/src/tool/meringue-peak/i18n/nl.ts +210 -0
  124. package/src/tool/meringue-peak/i18n/pl.ts +210 -0
  125. package/src/tool/meringue-peak/i18n/pt.ts +210 -0
  126. package/src/tool/meringue-peak/i18n/ru.ts +210 -0
  127. package/src/tool/meringue-peak/i18n/sv.ts +210 -0
  128. package/src/tool/meringue-peak/i18n/tr.ts +210 -0
  129. package/src/tool/meringue-peak/i18n/zh.ts +210 -0
  130. package/src/tool/meringue-peak/index.ts +12 -0
  131. package/src/tool/mold-scaler/i18n/de.ts +183 -0
  132. package/src/tool/mold-scaler/i18n/en.ts +87 -60
  133. package/src/tool/mold-scaler/i18n/es.ts +87 -61
  134. package/src/tool/mold-scaler/i18n/fr.ts +97 -69
  135. package/src/tool/mold-scaler/i18n/id.ts +169 -0
  136. package/src/tool/mold-scaler/i18n/it.ts +170 -0
  137. package/src/tool/mold-scaler/i18n/ja.ts +170 -0
  138. package/src/tool/mold-scaler/i18n/ko.ts +170 -0
  139. package/src/tool/mold-scaler/i18n/nl.ts +170 -0
  140. package/src/tool/mold-scaler/i18n/pl.ts +170 -0
  141. package/src/tool/mold-scaler/i18n/pt.ts +170 -0
  142. package/src/tool/mold-scaler/i18n/ru.ts +170 -0
  143. package/src/tool/mold-scaler/i18n/sv.ts +170 -0
  144. package/src/tool/mold-scaler/i18n/tr.ts +170 -0
  145. package/src/tool/mold-scaler/i18n/zh.ts +170 -0
  146. package/src/tool/mold-scaler/index.ts +12 -0
  147. package/src/tool/pizza/i18n/de.ts +168 -0
  148. package/src/tool/pizza/i18n/en.ts +2 -2
  149. package/src/tool/pizza/i18n/es.ts +2 -2
  150. package/src/tool/pizza/i18n/fr.ts +2 -2
  151. package/src/tool/pizza/i18n/id.ts +125 -0
  152. package/src/tool/pizza/i18n/it.ts +172 -0
  153. package/src/tool/pizza/i18n/ja.ts +125 -0
  154. package/src/tool/pizza/i18n/ko.ts +125 -0
  155. package/src/tool/pizza/i18n/nl.ts +164 -0
  156. package/src/tool/pizza/i18n/pl.ts +125 -0
  157. package/src/tool/pizza/i18n/pt.ts +168 -0
  158. package/src/tool/pizza/i18n/ru.ts +151 -0
  159. package/src/tool/pizza/i18n/sv.ts +164 -0
  160. package/src/tool/pizza/i18n/tr.ts +125 -0
  161. package/src/tool/pizza/i18n/zh.ts +125 -0
  162. package/src/tool/pizza/index.ts +12 -0
  163. package/src/tool/roux-guide/i18n/de.ts +165 -0
  164. package/src/tool/roux-guide/i18n/es.ts +1 -1
  165. package/src/tool/roux-guide/i18n/id.ts +139 -0
  166. package/src/tool/roux-guide/i18n/it.ts +165 -0
  167. package/src/tool/roux-guide/i18n/ja.ts +139 -0
  168. package/src/tool/roux-guide/i18n/ko.ts +139 -0
  169. package/src/tool/roux-guide/i18n/nl.ts +165 -0
  170. package/src/tool/roux-guide/i18n/pl.ts +139 -0
  171. package/src/tool/roux-guide/i18n/pt.ts +165 -0
  172. package/src/tool/roux-guide/i18n/ru.ts +139 -0
  173. package/src/tool/roux-guide/i18n/sv.ts +139 -0
  174. package/src/tool/roux-guide/i18n/tr.ts +139 -0
  175. package/src/tool/roux-guide/i18n/zh.ts +139 -0
  176. package/src/tool/roux-guide/index.ts +12 -0
  177. package/src/tool/sourdough-calculator/i18n/de.ts +142 -0
  178. package/src/tool/sourdough-calculator/i18n/es.ts +133 -133
  179. package/src/tool/sourdough-calculator/i18n/id.ts +116 -0
  180. package/src/tool/sourdough-calculator/i18n/it.ts +142 -0
  181. package/src/tool/sourdough-calculator/i18n/ja.ts +116 -0
  182. package/src/tool/sourdough-calculator/i18n/ko.ts +116 -0
  183. package/src/tool/sourdough-calculator/i18n/nl.ts +116 -0
  184. package/src/tool/sourdough-calculator/i18n/pl.ts +116 -0
  185. package/src/tool/sourdough-calculator/i18n/pt.ts +142 -0
  186. package/src/tool/sourdough-calculator/i18n/ru.ts +116 -0
  187. package/src/tool/sourdough-calculator/i18n/sv.ts +116 -0
  188. package/src/tool/sourdough-calculator/i18n/tr.ts +116 -0
  189. package/src/tool/sourdough-calculator/i18n/zh.ts +116 -0
  190. package/src/tool/sourdough-calculator/index.ts +12 -0
@@ -0,0 +1,139 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "Meyane (Roux) ve Temel Soslar Rehberi";
4
+ const description = "Etkileşimli Meyane hesaplayıcı. Beşamel, Velouté ve Espanyol soslarını tam oranlarla yapmayı öğrenin. Klasik Fransız mutfağının temeli.";
5
+ const faq = [
6
+ {
7
+ question: 'Meyane (Roux) nedir ve ne işe yarar?',
8
+ answer: 'Kısık ateşte pişirilmiş yağ (genellikle tereyağı) ve un karışımıdır. Beşamel veya Velouté gibi Fransız temel sosları için temel koyulaştırıcı madde olarak kullanılır.',
9
+ },
10
+ {
11
+ question: 'Meyane için ideal oran nedir?',
12
+ answer: 'Standart oran ağırlıkça 1:1\'dir. Örneğin, 50g tereyağı ve 50g un. Bu karışım, istenen yoğunluğa bağlı olarak yaklaşık 1 litre sıvıyı koyulaştırabilir.',
13
+ },
14
+ {
15
+ question: 'Meyane çeşitleri arasındaki fark nedir?',
16
+ answer: 'Beyaz Meyane 2-3 dk pişirilir (Beşamel). Sarı Meyane 5-8 dk (Velouté). Kahverengi Meyane 15-20 dakikaya kadar (Espanyol). Renk arttıkça fındıksı tat artar ancak koyulaştırma gücü azalır.',
17
+ },
18
+ {
19
+ question: 'Topaklanmayı nasıl önlerim?',
20
+ answer: 'Altın kural zıt sıcaklıktır: sıcak meyaneye soğuk sıvı veya soğuk meyaneye sıcak sıvı. Sıvıyı azar azar ekleyin ve sürekli çırpın.',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: 'Sıvı türünü seçin',
26
+ text: 'Süt (Beşamel), beyaz stok (Velouté), kahverengi stok (Espanyol) veya domates arasından seçim yapın.',
27
+ },
28
+ {
29
+ name: 'İstenen yoğunluğu belirleyin',
30
+ text: 'Çorbadan kroket hamuruna kadar. Hesaplayıcı gerekli meyane oranını otomatik olarak ayarlayacaktır.',
31
+ },
32
+ {
33
+ name: 'Sıvı hacmini girin',
34
+ text: 'Koyulaştırmak istediğiniz sıvının ml miktarını belirtin. Hesaplayıcı size tam olarak ne kadar tereyağı ve un kullanacağınızı söyleyecektir.',
35
+ },
36
+ ];
37
+
38
+ const faqSchema = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ };
69
+
70
+ export const content: ToolLocaleContent = {
71
+ slug: 'meyane-rehberi',
72
+ title,
73
+ description,
74
+ faqTitle: 'Sıkça Sorulan Sorular',
75
+ faq,
76
+ bibliographyTitle: 'Kaynakça',
77
+ bibliography: [
78
+ {
79
+ name: 'Larousse Gastronomique',
80
+ url: 'https://www.laroussecocina.com/',
81
+ },
82
+ ],
83
+ howTo,
84
+ seo: [
85
+ {
86
+ type: 'title',
87
+ text: 'Meyane ve Temel Sos Hesaplama Usta Rehberi',
88
+ level: 2,
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: '<strong>Meyane</strong>, klasik Fransız mutfağının yapısal temelidir. Un, tereyağı ve sıvı arasındaki ilişkiyi anlamak, ipeksi bir sos ile topaklanmış bir sıvı arasındaki farktır.',
93
+ },
94
+ ],
95
+ ui: {
96
+ baseLiquid: 'Temel Sıvı',
97
+ volume: 'Hacim',
98
+ ml: 'ml',
99
+ liquidType: 'Sıvı Türü',
100
+ milk: 'Süt',
101
+ lightStock: 'Beyaz Stok',
102
+ darkStock: 'Kahverengi Stok',
103
+ tomato: 'Domates',
104
+ sauceTexture: 'Sos Yoğunluğu',
105
+ soup: 'Çorba / Krema',
106
+ normalSauce: 'Normal Sos',
107
+ thick: 'Koyu / Dolgu',
108
+ croquette: 'Kroket / Hamur',
109
+ rouxMix: 'Meyane Karışımı',
110
+ butter: 'Tereyağı',
111
+ flour: 'Un',
112
+ instructions: 'Talimatlar',
113
+ sauceName: 'Sos Türü',
114
+ ratio: 'Oran',
115
+ chefTip: 'Şefin İpucu',
116
+ white: 'Beyaz',
117
+ blond: 'Sarı',
118
+ brown: 'Kahverengi',
119
+ beurreManied: 'Beurre Manié (Son düzeltmeler için)',
120
+ recipeBechamel: "Beşamel",
121
+ recipeVeloute: "Velouté",
122
+ recipeEspagnole: "Espanyol",
123
+ recipeTomato: "Domates Sosu",
124
+ tipBechamel: "Soğuk süt kullanın. Başlangıçta yavaşça ekleyin veya hızlıca çırpın.",
125
+ tipVeloute: "Tavuk veya balık stoğu kullanın. Meyane bisküvi gibi kokmalıdır.",
126
+ tipEspagnole: "Meyane çikolata renginde olmalı ama yanmamalıdır.",
127
+ tipTomato: "Meyane, domatesin son dokusuna gövde ve yumuşaklık kazandırmaya yardımcı olur.",
128
+ rouxWhiteLabel: "Beyaz Meyane",
129
+ rouxBlondLabel: "Sarı Meyane",
130
+ rouxBrownLabel: "Kahverengi Meyane",
131
+ descWhite: "Sadece çiğ un kokusu gidene kadar pişirin. Renk almasın.",
132
+ descBlond: "Altın sarısı bir renk ve fındıksı bir koku hedefleyin.",
133
+ descBrown: "Çok kısık ateş. Çikolata rengi. %10 daha fazla miktar gerektirir.",
134
+ timeWhite: "2-3 dk",
135
+ timeBlond: "5-8 dk",
136
+ timeBrown: "15-20 dk",
137
+ },
138
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
139
+ };
@@ -0,0 +1,139 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "黄油炒面(Roux)与母酱大师指南";
4
+ const description = "交互式 Roux 计算器。学习以精确比例制作白酱(Bechamel)、天鹅绒酱(Velouté)和褐酱(Espagnole)。法国高等料理的基础。";
5
+ const faq = [
6
+ {
7
+ question: '什么是 Roux,它有什么作用?',
8
+ answer: '它是由油脂(通常是黄油)和面粉低温烹煮而成的混合物。它是法国母酱(如白酱或天鹅绒酱)的基础增稠剂。',
9
+ },
10
+ {
11
+ question: 'Roux 的理想比例是多少?',
12
+ answer: '标准重量比为 1:1。例如,50克黄油和50克面粉。根据所需的浓度,这种混合物大约可以增稠 1 升液体。',
13
+ },
14
+ {
15
+ question: '不同类型的 Roux 有什么区别?',
16
+ answer: '白 Roux 烹煮 2-3 分钟(用于白酱)。金 Roux 烹煮 5-8 分钟(用于天鹅绒酱)。黑/褐 Roux 烹煮长达 15-20 分钟(用于褐酱)。颜色越深,坚果风味越浓,但增稠能力越弱。',
17
+ },
18
+ {
19
+ question: '如何避免结块?',
20
+ answer: '金科玉律是“温度相反”:将冷液体倒入热 Roux 中,或者将热液体倒入冷 Roux 中。徐徐加入液体并用手动打蛋器不断搅拌。',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: '选择液体类型',
26
+ text: '在牛奶(白酱)、淡高汤(天鹅绒酱)、浓高汤(褐酱)或番茄中选择。',
27
+ },
28
+ {
29
+ name: '定义所需浓度',
30
+ text: '从汤品/奶油到炸饼面团。计算器将自动调整所需的 Roux 比例。',
31
+ },
32
+ {
33
+ name: '输入液体体积',
34
+ text: '指定需要增稠的液体毫升数。计算器将确切告知您需要使用多少黄油和面粉。',
35
+ },
36
+ ];
37
+
38
+ const faqSchema = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'CNY' },
68
+ };
69
+
70
+ export const content: ToolLocaleContent = {
71
+ slug: 'roux-guide',
72
+ title,
73
+ description,
74
+ faqTitle: '常见问题',
75
+ faq,
76
+ bibliographyTitle: '参考资料',
77
+ bibliography: [
78
+ {
79
+ name: 'Larousse Gastronomique',
80
+ url: 'https://www.laroussecocina.com/',
81
+ },
82
+ ],
83
+ howTo,
84
+ seo: [
85
+ {
86
+ type: 'title',
87
+ text: 'Roux 与母酱计算大师指南',
88
+ level: 2,
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: '<strong>Roux</strong> 是经典法式料理的结构基础。理解面粉、黄油和液体之间的关系,是制作丝滑酱汁与制作结块或带生粉味液体的区别所在。',
93
+ },
94
+ ],
95
+ ui: {
96
+ baseLiquid: '基础液体',
97
+ volume: '体积',
98
+ ml: 'ml',
99
+ liquidType: '液体类型',
100
+ milk: '牛奶',
101
+ lightStock: '淡高汤',
102
+ darkStock: '浓高汤',
103
+ tomato: '番茄',
104
+ sauceTexture: '酱汁浓度',
105
+ soup: '汤品 / 奶油',
106
+ normalSauce: '常规酱汁',
107
+ thick: '浓稠 / 填充',
108
+ croquette: '炸饼 / 面团',
109
+ rouxMix: 'Roux 混合比例',
110
+ butter: '黄油',
111
+ flour: '面粉',
112
+ instructions: '制作指南',
113
+ sauceName: '酱汁类型',
114
+ ratio: '比例',
115
+ chefTip: '主厨贴士',
116
+ white: '白色',
117
+ blond: '金色',
118
+ brown: '黑色/褐色',
119
+ beurreManied: '面粉黄油块(用于最后微调)',
120
+ recipeBechamel: "白酱",
121
+ recipeVeloute: "天鹅绒酱",
122
+ recipeEspagnole: "褐酱",
123
+ recipeTomato: "番茄酱",
124
+ tipBechamel: "使用冷牛奶。开始时分次加入,如果用力搅拌也可以一次加入。",
125
+ tipVeloute: "使用鸡肉或鱼肉高汤。在加入液体前,Roux 应散发饼干般的香气。",
126
+ tipEspagnole: "Roux 应呈现巧克力色,但注意不要烧焦。",
127
+ tipTomato: "Roux 有助于为番茄酱提供更好的质感和柔滑度。",
128
+ rouxWhiteLabel: "白 Roux",
129
+ rouxBlondLabel: "金 Roux",
130
+ rouxBrownLabel: "黑/褐 Roux",
131
+ descWhite: "煮至生粉味消失即可。不改变颜色。",
132
+ descBlond: "追求浅金色和坚果香气。",
133
+ descBrown: "使用极小火。呈巧克力色。注意:需要多加 10% 的分量。",
134
+ timeWhite: "2-3 分钟",
135
+ timeBlond: "5-8 分钟",
136
+ timeBrown: "15-20 分钟",
137
+ },
138
+ schemas: [faqSchema as any, howToSchema as any, appSchema as any],
139
+ };
@@ -13,6 +13,18 @@ export const rouxGuide: 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,142 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+
3
+ const title = "Sauerteig Rechner: Fermentationsverhältnisse";
4
+ const description = "Berechnen Sie automatisch die Proportionen von Sauerteig, Mehl und Wasser zur Pflege Ihres Ansatzes. Vordefinierte oder benutzerdefinierte Verhältnisse.";
5
+ const faq = [
6
+ {
7
+ question: 'Was bedeutet das Verhältnis 1:1:1?',
8
+ answer: 'Es ist das gängigste Verhältnis für die Pflege bei Raumtemperatur. Es bedeutet 1 Teil Sauerteig, 1 Teil Mehl und 1 Teil Wasser. Sinnvoll bei täglicher Auffrischung.',
9
+ },
10
+ {
11
+ question: 'Wann nutze ich 1:2:2?',
12
+ answer: 'Das Verhältnis 1:2:2 dient der Aktivierung. Es sorgt für eine langsamere, aber vorhersehbare Fermentation. Ideal, wenn der Ansatz kühl gelagert wurde.',
13
+ },
14
+ {
15
+ question: 'Was ist der "Sweet Spot" 1:5:5?',
16
+ answer: 'Das Verhältnis 1:5:5 ist für viele Bäcker der ideale Punkt. Es ermöglicht 8-12 Stunden Fermentation bei Raumtemperatur, bevor der Sauerteig einsatzbereit ist.',
17
+ },
18
+ {
19
+ question: 'Kann ich benutzerdefinierte Verhältnisse verwenden?',
20
+ answer: 'Absolut. Wenn Sie ein spezielles Protokoll haben, können Sie Ihre eigenen Werte eingeben, z.B. 1:10:10 für eine sehr langsame Fermentation.',
21
+ },
22
+ ];
23
+ const howTo = [
24
+ {
25
+ name: 'Benötigte Gesamtmenge eingeben',
26
+ text: 'Geben Sie das Gesamtgewicht des Sauerteigs an, das Sie für Ihr Rezept benötigen (z.B. 300g für ein typisches Brot).',
27
+ },
28
+ {
29
+ name: 'Auffrischungsverhältnis wählen',
30
+ text: 'Wählen Sie aus den vordefinierten Verhältnissen (Pflegen, Aktivieren, Verzögern, Stark, Sweet Spot) oder erstellen Sie ein eigenes.',
31
+ },
32
+ {
33
+ name: 'Exakte Mengen erhalten',
34
+ text: 'Der Rechner zeigt Ihnen, wie viel Anstellgut, Mehl und Wasser Sie benötigen. Mischen Sie diese und lassen Sie sie fermentieren.',
35
+ },
36
+ ];
37
+
38
+ const faqSchema = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ };
69
+
70
+ export const content: ToolLocaleContent = {
71
+ slug: 'sauerteig',
72
+ title,
73
+ description,
74
+ faqTitle: 'Häufig gestellte Fragen',
75
+ faq,
76
+ bibliographyTitle: 'Bibliografie',
77
+ bibliography: [
78
+ {
79
+ name: 'Tartine Bread - Chad Robertson',
80
+ url: 'https://www.penguinrandomhouse.com/books/310016/tartine-bread-by-chad-robertson/',
81
+ },
82
+ ],
83
+ howTo,
84
+ seo: [
85
+ {
86
+ type: 'title',
87
+ text: 'Meisterleitfaden für die Pflege und Auffrischung von Sauerteig',
88
+ level: 2,
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: '<strong>Sauerteig</strong> ist nicht nur eine Zutat, sondern ein lebendiges Ökosystem aus wilden Hefen und Milchsäurebakterien (LAB). Die Gesundheit dieses Ansatzes ist der Schlüssel zu exzellentem Brot.',
93
+ },
94
+ {
95
+ type: 'stats',
96
+ columns: 4,
97
+ items: [
98
+ {
99
+ value: '24-26°C',
100
+ label: 'Optimale Temp.',
101
+ icon: 'mdi:thermometer',
102
+ },
103
+ {
104
+ value: '3.8 - 4.2',
105
+ label: 'Idealer pH-Wert',
106
+ icon: 'mdi:test-tube',
107
+ },
108
+ {
109
+ value: '100%',
110
+ label: 'Std. Hydratation',
111
+ icon: 'mdi:water-percent',
112
+ },
113
+ {
114
+ value: 'x2 - x3',
115
+ label: 'Wachstum im Peak',
116
+ icon: 'mdi:trending-up',
117
+ },
118
+ ],
119
+ },
120
+ ],
121
+ ui: {
122
+ totalAmount: 'Gesamtmenge',
123
+ refreshRatio: 'Auffrischungsverhältnis',
124
+ maintain: 'Pflegen',
125
+ activate: 'Aktivieren',
126
+ retard: 'Verzögern',
127
+ strong: 'Stark',
128
+ sweetSpot: 'Sweet Spot',
129
+ custom: 'Benutzerdefiniert',
130
+ sourdough: 'Sauerteig',
131
+ activeCulture: 'Aktives Anstellgut',
132
+ flour: 'Mehl',
133
+ flourType: 'Type oder Vollkorn',
134
+ water: 'Wasser',
135
+ chlorineFree: 'Chlorfrei',
136
+ todayFormula: 'Heutige Formel',
137
+ hydration: '100% Hydratation',
138
+ totalDough: 'Gesamtgewicht',
139
+ mm: 'ASG',
140
+ },
141
+ schemas: [faqSchema, howToSchema, appSchema],
142
+ };