@jjlmoya/utils-alcohol 1.14.0 → 1.16.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 (78) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/id.ts +28 -0
  3. package/src/category/i18n/sv.ts +19 -0
  4. package/src/category/index.ts +2 -0
  5. package/src/tests/faq_count.test.ts +12 -10
  6. package/src/tests/i18n_coverage.test.ts +36 -0
  7. package/src/tests/locale_completeness.test.ts +42 -0
  8. package/src/tests/no_h1_in_components.test.ts +48 -0
  9. package/src/tests/seo_length.test.ts +3 -34
  10. package/src/tests/slug_uniqueness.test.ts +81 -0
  11. package/src/tests/tool_validation.test.ts +4 -4
  12. package/src/tool/alcoholClearance/i18n/de.ts +205 -0
  13. package/src/tool/alcoholClearance/i18n/id.ts +205 -0
  14. package/src/tool/alcoholClearance/i18n/it.ts +180 -0
  15. package/src/tool/alcoholClearance/i18n/ja.ts +205 -0
  16. package/src/tool/alcoholClearance/i18n/ko.ts +205 -0
  17. package/src/tool/alcoholClearance/i18n/nl.ts +205 -0
  18. package/src/tool/alcoholClearance/i18n/pl.ts +205 -0
  19. package/src/tool/alcoholClearance/i18n/pt.ts +205 -0
  20. package/src/tool/alcoholClearance/i18n/ru.ts +205 -0
  21. package/src/tool/alcoholClearance/i18n/sv.ts +205 -0
  22. package/src/tool/alcoholClearance/i18n/tr.ts +180 -0
  23. package/src/tool/alcoholClearance/i18n/zh.ts +205 -0
  24. package/src/tool/alcoholClearance/index.ts +13 -1
  25. package/src/tool/beerCooler/i18n/de.ts +197 -0
  26. package/src/tool/beerCooler/i18n/id.ts +197 -0
  27. package/src/tool/beerCooler/i18n/it.ts +197 -0
  28. package/src/tool/beerCooler/i18n/ja.ts +197 -0
  29. package/src/tool/beerCooler/i18n/ko.ts +197 -0
  30. package/src/tool/beerCooler/i18n/nl.ts +197 -0
  31. package/src/tool/beerCooler/i18n/pl.ts +197 -0
  32. package/src/tool/beerCooler/i18n/pt.ts +197 -0
  33. package/src/tool/beerCooler/i18n/ru.ts +197 -0
  34. package/src/tool/beerCooler/i18n/sv.ts +197 -0
  35. package/src/tool/beerCooler/i18n/tr.ts +197 -0
  36. package/src/tool/beerCooler/i18n/zh.ts +197 -0
  37. package/src/tool/beerCooler/index.ts +13 -1
  38. package/src/tool/carbonationCalculator/i18n/de.ts +200 -0
  39. package/src/tool/carbonationCalculator/i18n/id.ts +200 -0
  40. package/src/tool/carbonationCalculator/i18n/it.ts +200 -0
  41. package/src/tool/carbonationCalculator/i18n/ja.ts +200 -0
  42. package/src/tool/carbonationCalculator/i18n/ko.ts +200 -0
  43. package/src/tool/carbonationCalculator/i18n/nl.ts +200 -0
  44. package/src/tool/carbonationCalculator/i18n/pl.ts +200 -0
  45. package/src/tool/carbonationCalculator/i18n/pt.ts +200 -0
  46. package/src/tool/carbonationCalculator/i18n/ru.ts +200 -0
  47. package/src/tool/carbonationCalculator/i18n/sv.ts +200 -0
  48. package/src/tool/carbonationCalculator/i18n/tr.ts +200 -0
  49. package/src/tool/carbonationCalculator/i18n/zh.ts +200 -0
  50. package/src/tool/carbonationCalculator/index.ts +13 -1
  51. package/src/tool/cocktailBalancer/i18n/de.ts +222 -0
  52. package/src/tool/cocktailBalancer/i18n/id.ts +222 -0
  53. package/src/tool/cocktailBalancer/i18n/it.ts +222 -0
  54. package/src/tool/cocktailBalancer/i18n/ja.ts +222 -0
  55. package/src/tool/cocktailBalancer/i18n/ko.ts +222 -0
  56. package/src/tool/cocktailBalancer/i18n/nl.ts +222 -0
  57. package/src/tool/cocktailBalancer/i18n/pl.ts +222 -0
  58. package/src/tool/cocktailBalancer/i18n/pt.ts +222 -0
  59. package/src/tool/cocktailBalancer/i18n/ru.ts +222 -0
  60. package/src/tool/cocktailBalancer/i18n/sv.ts +222 -0
  61. package/src/tool/cocktailBalancer/i18n/tr.ts +222 -0
  62. package/src/tool/cocktailBalancer/i18n/zh.ts +222 -0
  63. package/src/tool/cocktailBalancer/index.ts +13 -1
  64. package/src/tool/partyKeg/i18n/de.ts +187 -0
  65. package/src/tool/partyKeg/i18n/id.ts +187 -0
  66. package/src/tool/partyKeg/i18n/it.ts +187 -0
  67. package/src/tool/partyKeg/i18n/ja.ts +187 -0
  68. package/src/tool/partyKeg/i18n/ko.ts +187 -0
  69. package/src/tool/partyKeg/i18n/nl.ts +187 -0
  70. package/src/tool/partyKeg/i18n/pl.ts +187 -0
  71. package/src/tool/partyKeg/i18n/pt.ts +187 -0
  72. package/src/tool/partyKeg/i18n/ru.ts +187 -0
  73. package/src/tool/partyKeg/i18n/sv.ts +187 -0
  74. package/src/tool/partyKeg/i18n/tr.ts +187 -0
  75. package/src/tool/partyKeg/i18n/zh.ts +187 -0
  76. package/src/tool/partyKeg/index.ts +13 -1
  77. package/src/types.ts +1 -1
  78. package/src/tests/content_mandatory.test.ts +0 -32
@@ -0,0 +1,197 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { BeerCoolerUI, BeerCoolerLocaleContent } from '../index';
3
+
4
+ const slug = 'beer-cooler';
5
+ const title = '뉴턴의 냉각 법칙을 이용한 맥주 냉각 계산기';
6
+ const description = '실제 열역학으로 계산하세요 — 뉴턴의 냉각 법칙 — 맥주가 냉장고나 냉동고에서 완벽한 제공 온도에 도달하는 데 정확히 얼마나 오래 걸리는지 알아보세요.';
7
+
8
+ const ui: BeerCoolerUI = {
9
+ step1Title: '무엇을 냉각하고 있나요?',
10
+ canLabel: '캔',
11
+ aluminumLabel: '알루미늄',
12
+ bottleLabel: '병',
13
+ glassLabel: '유리',
14
+ step2Title: '어디에 놓나요?',
15
+ fridgeLabel: '냉장고',
16
+ freezerLabel: '냉동고',
17
+ step3Title: '온도 미세 조정',
18
+ initialTempLabel: '초기 온도',
19
+ targetTempLabel: '목표 온도',
20
+ glacialLabel: '극저온',
21
+ perfectLabel: '완벽함',
22
+ bodegaLabel: '보데가',
23
+ readyTitle: '준비 완료',
24
+ readyDescription: '용기와 위치를 선택하여 계산합니다.',
25
+ estimatedTimeLabel: '예상 시간',
26
+ methodLabel: '방법',
27
+ containerLabel: '용기',
28
+ alreadyColdLabel: '이미 차가워요!',
29
+ neverColdLabel: '절대 차가워지지 않음'
30
+ };
31
+
32
+ const faqTitle = '자주 묻는 질문';
33
+ const bibliographyTitle = '참고문헌 & 출처';
34
+
35
+ const faq: BeerCoolerLocaleContent['faq'] = [
36
+ {
37
+ question: '이 도구는 냉각 시간을 어떻게 계산하나요?',
38
+ answer: '뉴턴의 냉각 법칙을 적용합니다: T(t) = T_env + (T₀ - T_env) × e^(-kt). 상수 k는 용기의 재료와 냉각 매질에 따라 다릅니다. 냉장고의 알루미늄 캔은 냉동고의 유리 병과 매우 다른 k값을 가집니다. 여기서 사용된 값은 각 조합에 대해 실제 실험으로 보정되었습니다.',
39
+ },
40
+ {
41
+ question: '소금을 넣은 젖은 종이 타올 요령이 정말 작동하나요?',
42
+ answer: '네, 매우 눈에 띕니다. 용기를 소금이 들어있는 젖은 종이 타올로 감싸면 두 가지 이유로 냉각이 가속됩니다. 물의 증발로 추가 열을 제거하고(증발 냉각), 소금이 물의 어는점을 낮춰서 젖은 접촉을 더 오래 유지합니다. 냉동고에 마른 캔을 놓는 것과 비교하면 처음 몇 분 동안 추가로 2-4°C 하강을 얻을 수 있습니다.',
43
+ },
44
+ {
45
+ question: '맥주 스타일별 이상적인 제공 온도는 무엇인가요?',
46
+ answer: '스타일에 따라 다릅니다. 라거와 필스너는 3-7°C가 최적입니다. IPA와 페일 에일은 7-10°C에서 빛납니다. 스타우트, 포터, 복잡한 에일은 더 따뜻하게 12-14°C에서 제공해야 하므로 커피, 초콜릿, 견과류 같은 향료 화합물이 완전히 표현될 수 있습니다.',
47
+ },
48
+ {
49
+ question: '냉동고에 두면 맥주가 폭발할 수 있나요?',
50
+ answer: '예. 알코올과 용해된 설탕은 맥주의 어는점을 순수한 물보다 낮춥니다. 표준 5% 라거는 약 -3°C에서 얼어붙습니다. 물이 결정화되면서 부피가 증가하고 용해된 CO2가 내부 압력을 높여서 용기가 터질 때까지 계속됩니다. 냉동고에 60분 이상 — 특히 유리 병 — 은 정말 위험한 구역입니다. 이 계산기를 사용해서 피해야 합니다.',
51
+ },
52
+ {
53
+ question: '냉각이 너무 빠르면 맥주가 "탈 수" 있나요?',
54
+ answer: '아니요. 맥주를 망치는 "열 충격" 신화는 거짓입니다. 실제로 영향을 줄 수 있는 것은 반복적인 동결과 해동입니다. 이것은 단백질을 파괴하고 액체를 흐릿하게 만듭니다. 또는 직접 UV 빛 노출입니다. 냉동고 또는 얼음물에서의 빠른 냉각은 맛을 해치지 않습니다.',
55
+ },
56
+ ];
57
+
58
+ const howTo: BeerCoolerLocaleContent['howTo'] = [
59
+ {
60
+ name: '용기 선택',
61
+ text: '알루미늄 캔 또는 유리 병 중에서 선택하세요. 재료는 열 전달 속도에 극적으로 영향을 미칩니다.',
62
+ },
63
+ {
64
+ name: '냉각 방법 선택',
65
+ text: '기존 냉장고(4°C) 또는 초고속 프로세스용 냉동고(-18°C)를 사용 중인지 표시합니다.',
66
+ },
67
+ {
68
+ name: '온도 조정',
69
+ text: '음료의 현재 온도(실온)와 원하는 목표 냉각 온도를 정의합니다.',
70
+ },
71
+ ];
72
+
73
+ const bibliography: BeerCoolerLocaleContent['bibliography'] = [
74
+ {
75
+ name: '뉴턴의 냉각 법칙 - Wikipedia',
76
+ url: 'https://en.wikipedia.org/wiki/Newton%27s_law_of_cooling',
77
+ },
78
+ {
79
+ name: '맥주 및 양조의 고급 화학 - American Chemical Society',
80
+ url: 'https://www.acs.org/acs-webinars/library/advanced-chemistry-of-beer-and-brewing.html',
81
+ },
82
+ ];
83
+
84
+ const seo: BeerCoolerLocaleContent['seo'] = [
85
+ {
86
+ type: 'title',
87
+ text: '냉감 및 열역학의 과학',
88
+ level: 2
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: '왜 캔이 병보다 먼저 식을까요? 마법인가요? 아니요, 이것은 실제 <strong>뉴턴의 냉각 법칙</strong>입니다. 이 도구는 음료가 열역학적 완벽성에 도달하는 정확한 순간을 수학적으로 계산합니다. 모든 재료, 모든 환경, 모든 시작 온도는 물리학자와 엔지니어가 산업 시스템의 열 전달을 모델링하는 데 사용하는 동일한 미분 방정식으로 들어갑니다.'
93
+ },
94
+ {
95
+ type: 'diagnostic',
96
+ title: '마스터 공식',
97
+ icon: 'mdi:function-variant',
98
+ variant: 'info',
99
+ badge: '물리학',
100
+ html: 'T(t) = T_env + (T_0 - T_env) * e^(-kt). 이 미분 방정식은 물체의 온도가 그 온도와 환경 온도의 차이에 비례하여 어떻게 변하는지 설명합니다. 상수 k는 용기의 재료와 형태에 따라 다르며, 이것이 캔이 같은 부피의 병보다 더 빨리 식는 이유입니다.'
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: '재료 전쟁: 알루미늄 대 유리',
105
+ level: 2
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: '<strong>알루미늄</strong>의 열 전도율은 약 205 W/(m·K)이지만 <strong>유리</strong>는 겨우 0.8 W/(m·K)에 도달합니다. 금속은 매우 빠르게 냉기를 전달하여 응급 상황에서 이상적인 용기입니다. 하지만 유리는 차가워진 후 더 나은 단열성을 제공하여 소비 중에 이상적인 온도를 더 오래 유지합니다. 이 절충점이 서로 다른 맥주 문화가 각 재료에 대해 다른 선호를 발전시킨 이유입니다.'
110
+ },
111
+ {
112
+ type: 'stats',
113
+ items: [
114
+ { label: '필스너 & 라거', value: '3°C - 7°C', icon: 'mdi:snowflake' },
115
+ { label: 'IPA & 페일 에일', value: '7°C - 10°C', icon: 'mdi:hops' },
116
+ { label: '스타우트 & 포터', value: '12°C - 14°C', icon: 'mdi:beer' }
117
+ ],
118
+ columns: 3
119
+ },
120
+ {
121
+ type: 'card',
122
+ title: '냉동고 위험 구역',
123
+ icon: 'mdi:snowflake-alert',
124
+ html: '알코올과 용해된 설탕 때문에 맥주는 0°C 아래에서 얼어붙습니다. 표준 5% 라거는 약 -3°C에서 얼어붙습니다. 물이 결정화되면서 부피가 증가하고 CO2 압력이 동시에 상승합니다. 결과는 폭력적으로 터질 수 있는 용기입니다. 타이머를 설정하지 않고 냉동고에 맥주를 45분 이상 두지 마세요.'
125
+ },
126
+ {
127
+ type: 'proscons',
128
+ title: '긴급 냉각 요령',
129
+ items: [
130
+ { pro: '젖은 종이 요령: 젖은 종이 타올로 캔을 싸서 냉동합니다. 증발이 냉각을 가속합니다.', con: '' },
131
+ { pro: '북극 염수: 양동이에 물, 얼음, 소금 2큰술을 넣어 -5°C 염수에 도달합니다.', con: '' },
132
+ { pro: '회전 방법: 얼음물에서 병을 회전하여 대류를 강제하고 냉각 시간을 단축합니다.', con: '' },
133
+ { pro: '', con: '타이머 없이 캔을 냉동고 선반에 직접 놓지 마세요. 터진 캔은 지저분하고 위험합니다.' }
134
+ ]
135
+ },
136
+ {
137
+ type: 'tip',
138
+ title: '프로 팁: 잔을 미리 냉각',
139
+ html: '맥주를 따르는 잔은 상당한 열용량을 가지고 있습니다. 따뜻한 잔은 완벽하게 차가운 맥주의 온도를 접촉 시 2-3°C 높일 수 있습니다. 따르기 전에 서빙 잔을 냉동고에 5분 넣거나 냉수로 헹굽니다. 이 간단한 단계는 맥주가 정확히 의도한 맛을 내는 시간을 연장합니다.'
140
+ },
141
+ {
142
+ type: 'title',
143
+ text: '냉각 상수 이해',
144
+ level: 2
145
+ },
146
+ {
147
+ type: 'paragraph',
148
+ html: '뉴턴 방정식의 냉각 상수 k는 고정된 보편적 가치가 아닙니다. 이것은 각 특정 용기와 매질의 경험적 속성입니다. 얇은 알루미늄 캔은 얼음물에서 조용한 냉장고 공기의 두꺼운 유리 병과 극적으로 다른 k를 가집니다. 우리 계산기는 각 용기 유형에 대해 실제 실험으로 보정된 측정 값을 사용하여 전형적인 가정용 냉각 시나리오에 대해 정확도가 몇 분 이내입니다.'
149
+ }
150
+ ];
151
+
152
+ const schemas: BeerCoolerLocaleContent['schemas'] = [
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: faq.map((item) => ({
157
+ '@type': 'Question',
158
+ name: item.question,
159
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
160
+ })),
161
+ } as WithContext<FAQPage>,
162
+ {
163
+ '@context': 'https://schema.org',
164
+ '@type': 'HowTo',
165
+ name: title,
166
+ description: description,
167
+ step: howTo.map((step, i) => ({
168
+ '@type': 'HowToStep',
169
+ position: i + 1,
170
+ name: step.name,
171
+ text: step.text,
172
+ })),
173
+ } as WithContext<HowTo>,
174
+ {
175
+ '@context': 'https://schema.org',
176
+ '@type': 'SoftwareApplication',
177
+ name: title,
178
+ description: description,
179
+ applicationCategory: 'UtilityApplication',
180
+ operatingSystem: 'Web',
181
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
182
+ } as WithContext<SoftwareApplication>,
183
+ ];
184
+
185
+ export const content: BeerCoolerLocaleContent = {
186
+ slug,
187
+ title,
188
+ description,
189
+ ui,
190
+ seo,
191
+ faqTitle,
192
+ faq,
193
+ bibliographyTitle,
194
+ bibliography,
195
+ howTo,
196
+ schemas,
197
+ };
@@ -0,0 +1,197 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { BeerCoolerUI, BeerCoolerLocaleContent } from '../index';
3
+
4
+ const slug = 'bier-koeler';
5
+ const title = 'Bierkoelingscalculator met de Wet van Newton';
6
+ const description = 'Bereken met echte thermodynamica — Wet van Newton voor afkoeling — precies hoe lang je bier nodig heeft om de perfecte serveertemperatuur in de koelkast of vriezer te bereiken.';
7
+
8
+ const ui: BeerCoolerUI = {
9
+ step1Title: 'Wat koel je af?',
10
+ canLabel: 'Blikje',
11
+ aluminumLabel: 'Aluminium',
12
+ bottleLabel: 'Fles',
13
+ glassLabel: 'Glas',
14
+ step2Title: 'Waar zet je het neer?',
15
+ fridgeLabel: 'Koelkast',
16
+ freezerLabel: 'Vriezer',
17
+ step3Title: 'Temperaturen fijnstellen',
18
+ initialTempLabel: 'Begintemperatuur',
19
+ targetTempLabel: 'Doeltemperatuur',
20
+ glacialLabel: 'Ijskoud',
21
+ perfectLabel: 'Perfect',
22
+ bodegaLabel: 'Bodega',
23
+ readyTitle: 'Klaar',
24
+ readyDescription: 'Selecteer container en locatie om te berekenen.',
25
+ estimatedTimeLabel: 'Geschatte tijd',
26
+ methodLabel: 'Methode',
27
+ containerLabel: 'Container',
28
+ alreadyColdLabel: 'Al koud!',
29
+ neverColdLabel: 'Wordt nooit koud'
30
+ };
31
+
32
+ const faqTitle = 'Veelgestelde Vragen';
33
+ const bibliographyTitle = 'Bibliografie & Bronnen';
34
+
35
+ const faq: BeerCoolerLocaleContent['faq'] = [
36
+ {
37
+ question: 'Hoe berekent deze tool de afkoelingstijd?',
38
+ answer: 'Het past de Wet van Newton voor afkoeling toe: T(t) = T_env + (T₀ - T_env) × e^(-kt). De constante k varieert afhankelijk van het materiaal van de container en het koelmiddel. Een aluminium blikje in een koelkast heeft een heel ander k dan een glazen fles in een vriezer. De waarden die hier worden gebruikt, zijn gekalibreerd tegen echte experimenten voor elke combinatie.',
39
+ },
40
+ {
41
+ question: 'Werkt de truc met natte papieren handdoek en zout echt?',
42
+ answer: 'Ja, en zeer opvallend. Het omwikkelen van de container met een vochtige papieren handdoek met zout versnelt de afkoeling om twee redenen: waterverdamping verwijdert extra warmte (verdampingskoeling), en zout verlaagt het vriespunt van water, waardoor het vochtige contact langer actief blijft. Je kunt in de eerste minuten een extra afname van 2–4°C behalen in vergelijking met een droog blikje in de vriezer.',
43
+ },
44
+ {
45
+ question: 'Wat is de ideale serveertemperatuur voor verschillende biersoorten?',
46
+ answer: 'Dat hangt af van het type. Lagers en Pilsners worden het beste geserveerd tussen 3°C en 7°C. IPA\'s en Pale Ales glimmen op 7°C tot 10°C. Stouts, Porters en complexe ales moeten warmer worden geserveerd, tussen 12°C en 14°C, zodat hun geurstoffen — koffie, chocolade, noten — zich volledig kunnen uitten.',
47
+ },
48
+ {
49
+ question: 'Kan mijn bier ontploffen als ik het te lang in de vriezer laat?',
50
+ answer: 'Ja. Alcohol en opgeloste suikers verlagen het vriespunt van bier onder dat van zuiver water: een standaard 5% lager bevriest rond -3°C. Als water kristalliseert, neemt het volume toe en verhoogt opgelost CO2 de interne druk totdat de container bezwijkt. Meer dan 60 minuten in de vriezer — vooral glazen flessen — is echt gevaarlijk. Gebruik deze calculator om het te voorkomen.',
51
+ },
52
+ {
53
+ question: 'Wordt bier "geschokt" als het te snel wordt afgekoeld?',
54
+ answer: 'Nee. De mythe dat bier door "hitteschok" wordt bedorven, is onwaar. Wat het echt kan beïnvloeden is herhaald invriezen en ontdooien — wat eiwitten breekt en de vloeistof troebel maakt — of rechtstreekse UV-lichtblootstelling. Snelle afkoeling in de vriezer of ijswater schaadt de smaak niet.',
55
+ },
56
+ ];
57
+
58
+ const howTo: BeerCoolerLocaleContent['howTo'] = [
59
+ {
60
+ name: 'Selecteer de container',
61
+ text: 'Kies tussen een aluminium blikje of een glazen fles. Het materiaal beïnvloedt de warmteoverdrachtssnelheid drastisch.',
62
+ },
63
+ {
64
+ name: 'Kies de afkoelingsmethode',
65
+ text: 'Geef aan of je een conventionele koelkast (4°C) of een vriezer (-18°C) voor ultrasnel proces gebruikt.',
66
+ },
67
+ {
68
+ name: 'Pas temperaturen aan',
69
+ text: 'Definieer de huidige temperatuur van het drankje (kamertemperatuur) en je gewenste doelkoudetemperatuur.',
70
+ },
71
+ ];
72
+
73
+ const bibliography: BeerCoolerLocaleContent['bibliography'] = [
74
+ {
75
+ name: 'Wet van Newton voor afkoeling - Wikipedia',
76
+ url: 'https://en.wikipedia.org/wiki/Newton%27s_law_of_cooling',
77
+ },
78
+ {
79
+ name: 'Geavanceerde chemie van bier en brouwen - American Chemical Society',
80
+ url: 'https://www.acs.org/acs-webinars/library/advanced-chemistry-of-beer-and-brewing.html',
81
+ },
82
+ ];
83
+
84
+ const seo: BeerCoolerLocaleContent['seo'] = [
85
+ {
86
+ type: 'title',
87
+ text: 'De Wetenschap van Kou en Thermodynamica',
88
+ level: 2
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: 'Waarom koelt het blikje af voor de fles? Is het magie? Nee, het is de <strong>Wet van Newton voor afkoeling</strong> in actie. Deze tool berekent wiskundig het exacte moment waarop je drank thermodynamische perfectie bereikt. Elk materiaal, elke omgeving, elke begintemperatuur voert zich in dezelfde differentiaalvergelijking in die natuurkundigen en ingenieurs gebruiken om warmteoverdracht in industriële systemen te modelleren.'
93
+ },
94
+ {
95
+ type: 'diagnostic',
96
+ title: 'De Hoofdformule',
97
+ icon: 'mdi:function-variant',
98
+ variant: 'info',
99
+ badge: 'Natuurkunde',
100
+ html: 'T(t) = T_env + (T_0 - T_env) * e^(-kt). Deze differentiaalvergelijking beschrijft hoe de temperatuur van een object evenredig verandert met het verschil tussen zijn temperatuur en die van de omgeving. De constante k hangt af van het materiaal en de geometrie van de container, daarom koelt een blikje sneller af dan een fles met hetzelfde volume.'
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Materialenoorlog: Aluminium tegen Glas',
105
+ level: 2
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: '<strong>Aluminium</strong> heeft een thermische geleiding van ~205 W/(m·K), terwijl <strong>glas</strong> nauwelijks 0,8 W/(m·K) bereikt. Metaal brengt kou razendsnel over, waardoor het de ideale container voor noodgevallen is. Glas biedt echter betere isolatie eenmaal koud, waardoor de ideale temperatuur langer behouden blijft tijdens consumptie. Dit compromis verklaart waarom verschillende bierculturen verschillende voorkeur voor elk materiaal hebben ontwikkeld.'
110
+ },
111
+ {
112
+ type: 'stats',
113
+ items: [
114
+ { label: 'Pilsner & Lager', value: '3°C - 7°C', icon: 'mdi:snowflake' },
115
+ { label: 'IPA & Pale Ale', value: '7°C - 10°C', icon: 'mdi:hops' },
116
+ { label: 'Stout & Porter', value: '12°C - 14°C', icon: 'mdi:beer' }
117
+ ],
118
+ columns: 3
119
+ },
120
+ {
121
+ type: 'card',
122
+ title: 'De Vriezergevarzone',
123
+ icon: 'mdi:snowflake-alert',
124
+ html: 'Door alcohol en opgeloste suiker bevriest bier onder 0°C — een standaard 5% lager bevriest rond -3°C. Als water kristalliseert, neemt het volume toe, terwijl CO2-druk tegelijkertijd stijgt. Het resultaat is een container die gewelddadig kan barsten. Laat bier nooit langer dan 45 minuten in de vriezer zonder een timer in te stellen.'
125
+ },
126
+ {
127
+ type: 'proscons',
128
+ title: 'Noodafkoelingstrucjes',
129
+ items: [
130
+ { pro: 'Natte handoektruuk: Wikkel het blikje in natte papieren handdoek in, vrieg dan in — verdamping versnelt afkoeling.', con: '' },
131
+ { pro: 'Arctische zoutwaterbak: Vul een emmer met water, ijs en 2 eetlepels zout om -5°C zoutwaterbak te bereiken.', con: '' },
132
+ { pro: 'Rotatiemethode: Draai de fles in ijswater rond om convectie af te dwingen en afkoelingstijd te verkorten.', con: '' },
133
+ { pro: '', con: 'Plaats geen blikje direct op een vrizerplank zonder timer — gebarsten blikjes zijn rommelig en gevaarlijk.' }
134
+ ]
135
+ },
136
+ {
137
+ type: 'tip',
138
+ title: 'Pro Tip: Voorkoel het Glas',
139
+ html: 'Het glas waarin je bier schenkt, heeft aanzienlijke thermische massa. Een warm glas kan de temperatuur van perfect koud bier bij contact onmiddellijk met 2-3°C verhogen. Zet je serveergas 5 minuten in de vriezer of spoel met koud water. Deze eenvoudige stap verlengt het moment waarop je bier precies naar bedoeling smaakt.'
140
+ },
141
+ {
142
+ type: 'title',
143
+ text: 'De Afkoelingscontante Begrijpen',
144
+ level: 2
145
+ },
146
+ {
147
+ type: 'paragraph',
148
+ html: 'De afkoelingscontante k in de vergelijking van Newton is geen vaste universele waarde — het is een empirische eigenschap van elke specifieke container en medium. Een dun aluminium blikje in ijswater heeft een dramatisch ander k dan een dik glas in stille koelkastlucht. Onze calculator gebruikt gemeten waarden die tegen echte experimenten voor elk containertype zijn gekalibreerd, wat je voorspellingen geeft die voor typische huishoudelijke afkoelingscenario\'s nauwkeurig binnen enkele minuten zijn.'
149
+ }
150
+ ];
151
+
152
+ const schemas: BeerCoolerLocaleContent['schemas'] = [
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: faq.map((item) => ({
157
+ '@type': 'Question',
158
+ name: item.question,
159
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
160
+ })),
161
+ } as WithContext<FAQPage>,
162
+ {
163
+ '@context': 'https://schema.org',
164
+ '@type': 'HowTo',
165
+ name: title,
166
+ description: description,
167
+ step: howTo.map((step, i) => ({
168
+ '@type': 'HowToStep',
169
+ position: i + 1,
170
+ name: step.name,
171
+ text: step.text,
172
+ })),
173
+ } as WithContext<HowTo>,
174
+ {
175
+ '@context': 'https://schema.org',
176
+ '@type': 'SoftwareApplication',
177
+ name: title,
178
+ description: description,
179
+ applicationCategory: 'UtilityApplication',
180
+ operatingSystem: 'Web',
181
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
182
+ } as WithContext<SoftwareApplication>,
183
+ ];
184
+
185
+ export const content: BeerCoolerLocaleContent = {
186
+ slug,
187
+ title,
188
+ description,
189
+ ui,
190
+ seo,
191
+ faqTitle,
192
+ faq,
193
+ bibliographyTitle,
194
+ bibliography,
195
+ howTo,
196
+ schemas,
197
+ };
@@ -0,0 +1,197 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { BeerCoolerUI, BeerCoolerLocaleContent } from '../index';
3
+
4
+ const slug = 'chlodnica-piwa';
5
+ const title = 'Kalkulator Chłodzenia Piwa z Prawem Chłodzenia Newtona';
6
+ const description = 'Oblicz z prawdziwą termodynamiką — Prawo Chłodzenia Newtona — dokładnie, ile czasu twoje piwo potrzebuje, aby osiągnąć doskonałą temperaturę podawania w lodówce lub zamrażalniku.';
7
+
8
+ const ui: BeerCoolerUI = {
9
+ step1Title: 'Co chłodzisz?',
10
+ canLabel: 'Puszka',
11
+ aluminumLabel: 'Aluminium',
12
+ bottleLabel: 'Butelka',
13
+ glassLabel: 'Szkło',
14
+ step2Title: 'Gdzie to kładziesz?',
15
+ fridgeLabel: 'Lodówka',
16
+ freezerLabel: 'Zamrażalnik',
17
+ step3Title: 'Precyzyjnie ustaw temperatury',
18
+ initialTempLabel: 'Temperatura początkowa',
19
+ targetTempLabel: 'Cel chłodu',
20
+ glacialLabel: 'Lodowaty',
21
+ perfectLabel: 'Idealnie',
22
+ bodegaLabel: 'Bodega',
23
+ readyTitle: 'Gotowe',
24
+ readyDescription: 'Wybierz pojemnik i lokalizację, aby obliczyć.',
25
+ estimatedTimeLabel: 'Szacunkowy czas',
26
+ methodLabel: 'Metoda',
27
+ containerLabel: 'Pojemnik',
28
+ alreadyColdLabel: 'Już zimno!',
29
+ neverColdLabel: 'Nigdy się nie zmrozi'
30
+ };
31
+
32
+ const faqTitle = 'Częste Pytania';
33
+ const bibliographyTitle = 'Bibliografia & Źródła';
34
+
35
+ const faq: BeerCoolerLocaleContent['faq'] = [
36
+ {
37
+ question: 'Jak ten narzędzie oblicza czas chłodzenia?',
38
+ answer: 'Stosuje Prawo Chłodzenia Newtona: T(t) = T_env + (T₀ - T_env) × e^(-kt). Stała k zmienia się w zależności od materiału pojemnika i medium chłodzącego. Puszka aluminiowa w lodówce ma bardzo różne k od butelki szklanych w zamrażalniku. Wartości używane tutaj są kalibrowane na podstawie rzeczywistych eksperymentów dla każdej kombinacji.',
39
+ },
40
+ {
41
+ question: 'Czy sztuczka z mokrym papierem toaletowym i solą rzeczywiście działa?',
42
+ answer: 'Tak, i bardzo zauważalnie. Zawinięcie pojemnika w wilgotny papier toaletowy solą przyspiesza chłodzenie z dwóch powodów: parowanie wody usuwa dodatkowe ciepło (chłodzenie parowania), a sól obniża temperaturę zamarzania wody, utrzymując wilgotny kontakt bardziej aktywnym. Możesz uzyskać dodatkowy spadek o 2–4°C w pierwszych minutach w porównaniu z umieszczeniem suchej puszki w zamrażalniku.',
43
+ },
44
+ {
45
+ question: 'Jaka jest idealna temperatura podawania różnych stylów piwa?',
46
+ answer: 'To zależy od stylu. Lagery i Pilzeny najlepiej podaje się między 3°C a 7°C. IPA i Pale Ale błyszczą w temperaturze 7°C do 10°C. Stouty, Portery i złożone ale powinny być podawane cieplejsze, między 12°C a 14°C, aby ich związki aromatyczne — kawa, czekolada, orzechy — mogły się w pełni wyrażać.',
47
+ },
48
+ {
49
+ question: 'Czy moje piwo może eksplodować, jeśli zostawię je w zamrażalniku?',
50
+ answer: 'Tak. Alkohol i rozpuszczony cukier obniżają temperaturę zamarzania piwa poniżej czystej wody: standardowe piwo niskośódów na 5% zamraża się około -3°C. Gdy woda krystalizuje, objętość rośnie, a rozpuszczone CO2 podnosi ciśnienie wewnętrzne, aż pojemnik ulega awarii. Ponad 60 minut w zamrażalniku — szczególnie butelki szklane — jest prawdziwą strefą zagrożenia. Użyj tego kalkulatora, aby tego uniknąć.',
51
+ },
52
+ {
53
+ question: 'Czy piwo "piecze się", jeśli ochładza się zbyt szybko?',
54
+ answer: 'Nie. Mit "szoku termicznego", który niszczy piwo, jest fałszywy. To, co naprawdę może na niego wpłynąć, to powtarzające się zamrażanie i rozmrażanie — które rozbija białka i mętni ciecz — lub bezpośrednia ekspozycja na światło UV. Szybkie chłodzenie w zamrażalniku lub lodowatej wodzie nie szkodzi smakowi.',
55
+ },
56
+ ];
57
+
58
+ const howTo: BeerCoolerLocaleContent['howTo'] = [
59
+ {
60
+ name: 'Wybierz pojemnik',
61
+ text: 'Wybierz między puszkę aluminiową lub butelką szklaną. Materiał drastycznie wpływa na szybkość przenikania ciepła.',
62
+ },
63
+ {
64
+ name: 'Wybierz metodę chłodzenia',
65
+ text: 'Wskaż, czy używasz konwencjonalnej lodówki (4°C) czy zamrażalnika (-18°C) do ultrabystrego procesu.',
66
+ },
67
+ {
68
+ name: 'Dostosuj temperatury',
69
+ text: 'Określ bieżącą temperaturę napoju (temperatura pokojowa) i pożądaną docelową temperaturę chłodu.',
70
+ },
71
+ ];
72
+
73
+ const bibliography: BeerCoolerLocaleContent['bibliography'] = [
74
+ {
75
+ name: 'Prawo Chłodzenia Newtona - Wikipedia',
76
+ url: 'https://en.wikipedia.org/wiki/Newton%27s_law_of_cooling',
77
+ },
78
+ {
79
+ name: 'Zaawansowana chemia piwa i warzenia - American Chemical Society',
80
+ url: 'https://www.acs.org/acs-webinars/library/advanced-chemistry-of-beer-and-brewing.html',
81
+ },
82
+ ];
83
+
84
+ const seo: BeerCoolerLocaleContent['seo'] = [
85
+ {
86
+ type: 'title',
87
+ text: 'Nauka Zimna i Termodynamika',
88
+ level: 2
89
+ },
90
+ {
91
+ type: 'paragraph',
92
+ html: 'Dlaczego puszka zamraża się szybciej niż butelka? To magia? Nie, to <strong>Prawo Chłodzenia Newtona</strong> w akcji. To narzędzie matematycznie oblicza dokładny moment, w którym twój napój osiąga termodynamiczną doskonałość. Każdy materiał, każde otoczenie, każda temperatura początkowa wchodzi w tę samą równanie różniczkowe, które fizycy i inżynierowie używają do modelowania przenikania ciepła w systemach przemysłowych.'
93
+ },
94
+ {
95
+ type: 'diagnostic',
96
+ title: 'Główny Wzór',
97
+ icon: 'mdi:function-variant',
98
+ variant: 'info',
99
+ badge: 'Fizyka',
100
+ html: 'T(t) = T_env + (T_0 - T_env) * e^(-kt). To równanie różniczkowe opisuje, jak temperatura obiektu zmienia się proporcjonalnie do różnicy między jego temperaturą a temperaturą otoczenia. Stała k zależy od materiału i geometrii pojemnika, dlatego puszka chłodzi się szybciej niż butelka tej samej objętości.'
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Wojna Materiałów: Aluminium vs. Szkło',
105
+ level: 2
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: '<strong>Aluminium</strong> ma przewodność cieplną ~205 W/(m·K), podczas gdy <strong>szkło</strong> ledwo osiąga 0,8 W/(m·K). Metal przesyła zimno gwałtownie szybko, co czyni go idealnym pojemnikiem do sytuacji awarii. Jednak szkło zapewnia lepszą izolację po ochłodzeniu, utrzymując idealną temperaturę przez dłuższy czas podczas spożywania. Ten kompromis wyjaśnia, dlaczego różne kultury piwne rozwinęły różne preferencje dla każdego materiału.'
110
+ },
111
+ {
112
+ type: 'stats',
113
+ items: [
114
+ { label: 'Pilzner & Lager', value: '3°C - 7°C', icon: 'mdi:snowflake' },
115
+ { label: 'IPA & Pale Ale', value: '7°C - 10°C', icon: 'mdi:hops' },
116
+ { label: 'Stout & Porter', value: '12°C - 14°C', icon: 'mdi:beer' }
117
+ ],
118
+ columns: 3
119
+ },
120
+ {
121
+ type: 'card',
122
+ title: 'Strefa Zagrożenia Zamrażalniku',
123
+ icon: 'mdi:snowflake-alert',
124
+ html: 'Ze względu na alkohol i rozpuszczony cukier, piwo zamraża się poniżej 0°C — standardowe piwo na 5% zamraża się około -3°C. Gdy woda krystalizuje, objętość rośnie, a ciśnienie CO2 jednocześnie wzrasta. Rezultatem jest pojemnik, który może eksplodować gwałtownie. Nigdy nie zostawiaj piwa w zamrażalniku na dłużej niż 45 minut bez ustawienia timera.'
125
+ },
126
+ {
127
+ type: 'proscons',
128
+ title: 'Sztuczki Chłodzenia Ratunkowego',
129
+ items: [
130
+ { pro: 'Sztuczka Mokrego Papieru: Zawiń puszkę w mokry papier toaletowy, potem zamroź — parowanie przyspiesza chłodzenie.', con: '' },
131
+ { pro: 'Arktyczna Słonawy: Napełnij wiadro wodą, lodem i 2 łyżkami soli, aby osiągnąć solankę -5°C.', con: '' },
132
+ { pro: 'Metoda Rotacji: Obracaj butelkę w lodowatej wodzie, aby wymusić konwekcję i skrócić czas chłodzenia.', con: '' },
133
+ { pro: '', con: 'Nie umieszczaj puszki bezpośrednio na półce zamrażalnika bez timera — pęknięte puszki są bałaganem i niebezpieczne.' }
134
+ ]
135
+ },
136
+ {
137
+ type: 'tip',
138
+ title: 'Porada Pro: Wstępnie Ochłodź Szklankę',
139
+ html: 'Szklanka, w której nalewasz piwo, ma znaczną pojemność cieplną. Ciepła szklanka może zwiększyć temperaturę doskonale zimnego piwa o 2-3°C natychmiast po kontakcie. Postaw szklankę do serwowania w zamrażalniku na 5 minut przed nalaniem lub przepłucz zimną wodą. Ten prosty krok przedłuża czas, w którym piwo smakuje dokładnie tak, jak zamierzone.'
140
+ },
141
+ {
142
+ type: 'title',
143
+ text: 'Zrozumienie Stałej Chłodzenia',
144
+ level: 2
145
+ },
146
+ {
147
+ type: 'paragraph',
148
+ html: 'Stała chłodzenia k w równaniu Newtona nie jest stałą uniwersalną wartością — to empiryczna właściwość każdego konkretnego pojemnika i medium. Cienka puszka aluminiowa w lodowatej wodzie ma dramatycznie różne k od grubej butelki szklenia w spokojnym powietrzu lodówki. Nasz kalkulator używa zmierzonych wartości skalibrowanych do rzeczywistych eksperymentów dla każdego typu pojemnika, co daje ci przewidywania dokładne w ciągu kilku minut dla typowych domowych scenariuszy chłodzenia.'
149
+ }
150
+ ];
151
+
152
+ const schemas: BeerCoolerLocaleContent['schemas'] = [
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: faq.map((item) => ({
157
+ '@type': 'Question',
158
+ name: item.question,
159
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
160
+ })),
161
+ } as WithContext<FAQPage>,
162
+ {
163
+ '@context': 'https://schema.org',
164
+ '@type': 'HowTo',
165
+ name: title,
166
+ description: description,
167
+ step: howTo.map((step, i) => ({
168
+ '@type': 'HowToStep',
169
+ position: i + 1,
170
+ name: step.name,
171
+ text: step.text,
172
+ })),
173
+ } as WithContext<HowTo>,
174
+ {
175
+ '@context': 'https://schema.org',
176
+ '@type': 'SoftwareApplication',
177
+ name: title,
178
+ description: description,
179
+ applicationCategory: 'UtilityApplication',
180
+ operatingSystem: 'Web',
181
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
182
+ } as WithContext<SoftwareApplication>,
183
+ ];
184
+
185
+ export const content: BeerCoolerLocaleContent = {
186
+ slug,
187
+ title,
188
+ description,
189
+ ui,
190
+ seo,
191
+ faqTitle,
192
+ faq,
193
+ bibliographyTitle,
194
+ bibliography,
195
+ howTo,
196
+ schemas,
197
+ };