@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,187 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { PartyKegUI, PartyKegLocaleContent } from '../index';
3
+
4
+ const slug = 'party-stock-calculator';
5
+ const title = 'パーティービール計算機:結婚式と誕生日のための1人あたりの量';
6
+ const description = 'ゲスト数、期間、気温に基づいて必要なビールと氷の量を計算する無料ツール。結婚式、誕生日、屋外イベントに最適です。';
7
+
8
+ const ui: PartyKegUI = {
9
+ calcStockTitle: 'ストック計算機',
10
+ beerIceSub: 'イベント用ビール&氷',
11
+ guestsLabel: 'ゲスト',
12
+ durationLabel: '期間',
13
+ hoursUnit: '時間',
14
+ intensityLabel: '強度',
15
+ chillLabel: 'チル',
16
+ standardLabel: 'スタンダード',
17
+ partyLabel: 'パーティー',
18
+ tempLabel: '温度',
19
+ estimatedVolLabel: '推定容量',
20
+ kegsLabel: '樽',
21
+ iceRequiredLabel: '必要な氷',
22
+ bagsLabel: '袋',
23
+ visualizationTitle: 'ストック可視化',
24
+ optimalMsg: '最適な状態',
25
+ highMeltMsg: '高い融解が検出されました',
26
+ highEfficiencyMsg: '寒冷/高効率'
27
+ };
28
+
29
+ const faqTitle = 'よくある質問';
30
+ const bibliographyTitle = '参考文献とソース';
31
+
32
+ const faq: PartyKegLocaleContent['faq'] = [
33
+ {
34
+ question: "4時間で1人がビールを何杯飲みますか?",
35
+ answer: "平均して、4時間のイベントの場合、1人あたり5杯のビールを計算してください。これは最初の1時間に2杯、残りの1時間に1杯を前提としています。",
36
+ },
37
+ {
38
+ question: "100杯のビールのために氷はどのくらい必要ですか?",
39
+ answer: "約15~20キログラムの氷(7~10袋)が必要です。実用的なルールは、通常の条件下では1リットルの飲料あたり0.75 kgの氷です。夏または25°C以上の屋外では、1リットルあたり1 kgに増やしてください。周囲の熱は融解を加速し、予想より早く氷がなくなってしまいます。",
40
+ },
41
+ {
42
+ question: "標準樽とパーティー樽の違いは何ですか?",
43
+ answer: "標準的な商用樽は50リットル収容し、約200杯分(250ml各)になります。パーティー樽(ミニ樽)は通常5リットル収容します。約20杯分です。これらのサイズを知ることで、計算機のリットル出力を購入する必要があるコンテナの数に変換するのに役立ちます。",
44
+ },
45
+ {
46
+ question: "ビールがすでに冷えているのに、なぜこんなに氷が必要ですか?",
47
+ answer: "冷却と維持は2つの別々のプロセスだからです。缶を25°Cから4°Cに持ってくるには、氷の潜熱融解が消費されます。約334 kJ/kg。冷たくなると、氷は環境熱を相殺するために機能し続けます。35°Cの夏の日には、クーラーへの熱伝達は2~3時間ごとに1リットルの飲料あたり1 kgの氷を融かす可能性があります。だからこそ、パーティーの前に飲み物を事前に冷やすことで、氷の総消費量が半分になります。",
48
+ },
49
+ ];
50
+
51
+ const howTo: PartyKegLocaleContent['howTo'] = [
52
+ {
53
+ name: "ゲスト数を見積もる",
54
+ text: "何人の人が参加するかを定義してください。当社の計算機は、統計的消費平均に基づいて数量を調整します。",
55
+ },
56
+ {
57
+ name: "期間と強度を定義する",
58
+ text: "イベントが何時間続くか、そしてパーティーの'フロー'(チル、スタンダード、または激しい)を示してください。",
59
+ },
60
+ {
61
+ name: "周囲温度に合わせて調整する",
62
+ text: "屋外温度は氷の計算の鍵です。熱いほど、補う必要がある融解率が高くなります。",
63
+ },
64
+ ];
65
+
66
+ const bibliography: PartyKegLocaleContent['bibliography'] = [
67
+ {
68
+ name: "Event Planning: Alcohol & Bar Calculations - Spruce Eats",
69
+ url: "https://www.thespruceeats.com/stock-your-bar-for-a-party-760394",
70
+ },
71
+ {
72
+ name: "Thermodynamics of Ice Melting - Engineering Toolbox",
73
+ url: "https://www.engineeringtoolbox.com/saturated-ice-steam-d_970.html",
74
+ },
75
+ ];
76
+
77
+ const seo: PartyKegLocaleContent['seo'] = [
78
+ {
79
+ type: 'title',
80
+ text: 'パーティーに必要なビールと氷の量は?',
81
+ level: 2
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: 'あらゆるイベントを企画するときの百万ドルの質問:<strong>何リットルのビールを買うべき?</strong> 不足は災いですが、買いすぎは不要な出費です。このツールは正確なアルコール量を計算するのに役立ちます。最も重要なことに、<strong>何袋の氷</strong>が必要かを計算します。プロのケータリング業者やイベントプランナーは統計的消費モデルを使用しています。今、あなたも無料でこれを実行できます。'
86
+ },
87
+ {
88
+ type: 'title',
89
+ text: '1人あたりの消費式',
90
+ level: 2
91
+ },
92
+ {
93
+ type: 'paragraph',
94
+ html: '必要なアルコールを見積もるために、プロのケータリング業者は「時間単位の消費率」に基づいた式を使用します。これは正確な科学ではありませんが、統計によれば、標準的なパーティーでは、1人あたり1時間に約1.5単位が消費されます。周囲温度、食物の入手可能性、イベントの社会的エネルギーなどの要因はすべて、このベース数を変更します。'
95
+ },
96
+ {
97
+ type: 'stats',
98
+ items: [
99
+ { label: 'チル消費', value: '1杯/時間', icon: 'mdi:tea-outline' },
100
+ { label: 'スタンダードパーティー', value: '1.5杯/時間', icon: 'mdi:glass-mug-variant' },
101
+ { label: 'ウェディング/フェスティバル', value: '2.5+杯/時間', icon: 'mdi:fire' }
102
+ ],
103
+ columns: 3
104
+ },
105
+ {
106
+ type: 'diagnostic',
107
+ title: '氷の物理学',
108
+ icon: 'mdi:snowflake-thermometer',
109
+ variant: 'warning',
110
+ badge: '熱力学',
111
+ html: '氷を計算するのはほとんどのホストが失敗する場所です。氷は2つの機能を果たします。冷却(25°Cから4°Cにビールを持ってくる)と維持(周囲の熱と戦う)。30°C以上の温度では、融解速度が2倍になります。直射日光の下で氷の袋がいっぱいになると、20分以内になくなる可能性があり、パーティーがピークに達する前に飲み物が温かくなります。'
112
+ },
113
+ {
114
+ type: 'tip',
115
+ title: '氷を節約するプロのコツ',
116
+ html: '氷を追加する前に、樽と缶を日陰に保管してください。飲み物が太陽の中で温かい場合、最初の氷の袋の50%は、潜熱を交換するだけで10分以内に消えます。事前に冷却した飲み物から始めて、実際に購入する必要がある氷の量を劇的に減らしてください。'
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'ロジスティックス参考データ',
121
+ level: 2
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: '標準50L樽は約200杯分を生成します。典型的な氷の袋の重さは2 kgです。これらの数字を知ることで、イベントに必要な輸送と保管を最後の瞬間の驚きなしに計画できます。輸送中の氷の融解を考慮に入れてください。夏の30分のドライブは、パーティーが始まる前に袋全体を費やす可能性があります。'
126
+ },
127
+ {
128
+ type: 'summary',
129
+ title: 'このツールは誰のためのものですか?',
130
+ items: [
131
+ 'プライベートパーティーのホスト:推測を止めて、次の祝いに正確に必要なものを自信を持って購入してください。',
132
+ 'イベントプランナー:正確な消費モデルを使用してクライアントに見積もりを提供し、バーロジスティクスを専門的に計画してください。',
133
+ '会場マネージャー:異なるゲスト数で繰り返し発生するイベント全体で在庫計算を標準化します。'
134
+ ]
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'しばしば見落とされる変数は<strong>ゲストのドロップアウト率</strong>です。ほとんどのパーティーでは、10~15%のゲストが早めに出発し、10%が飲まないかもしれません。計算機は、不足することはなくても、巨大な余剰を残さないように、保守的なバッファを適用します。これらの調整を理解すると、特定のグループとコンテキストの見積もりを微調整するのに役立ちます。購入時は常に端数を切り上げてください。開いたバレルは通常返却できません。小さな余剰は常にパーティーの最中に飲み物がなくなるより良いです。'
139
+ }
140
+ ];
141
+
142
+ const schemas: PartyKegLocaleContent['schemas'] = [
143
+ {
144
+ '@context': 'https://schema.org',
145
+ '@type': 'FAQPage',
146
+ mainEntity: faq.map((item) => ({
147
+ '@type': 'Question',
148
+ name: item.question,
149
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
150
+ })),
151
+ } as WithContext<FAQPage>,
152
+ {
153
+ '@context': 'https://schema.org',
154
+ '@type': 'HowTo',
155
+ name: title,
156
+ description: description,
157
+ step: howTo.map((step, i) => ({
158
+ '@type': 'HowToStep',
159
+ position: i + 1,
160
+ name: step.name,
161
+ text: step.text,
162
+ })),
163
+ } as WithContext<HowTo>,
164
+ {
165
+ '@context': 'https://schema.org',
166
+ '@type': 'SoftwareApplication',
167
+ name: title,
168
+ description: description,
169
+ applicationCategory: 'UtilityApplication',
170
+ operatingSystem: 'Web',
171
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
172
+ } as WithContext<SoftwareApplication>,
173
+ ];
174
+
175
+ export const content: PartyKegLocaleContent = {
176
+ slug,
177
+ title,
178
+ description,
179
+ ui,
180
+ seo,
181
+ faqTitle,
182
+ faq,
183
+ bibliographyTitle,
184
+ bibliography,
185
+ howTo,
186
+ schemas,
187
+ };
@@ -0,0 +1,187 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { PartyKegUI, PartyKegLocaleContent } from '../index';
3
+
4
+ const slug = 'party-stock-calculator';
5
+ const title = '파티 맥주 계산기: 결혼식 및 생일을위한 1인당 수량';
6
+ const description = '손님, 기간 및 온도에 따라 필요한 맥주와 얼음의 양을 계산하는 무료 도구입니다. 결혼식, 생일 및 야외 행사에 완벽합니다.';
7
+
8
+ const ui: PartyKegUI = {
9
+ calcStockTitle: '재고 계산기',
10
+ beerIceSub: '행사용 맥주 및 얼음',
11
+ guestsLabel: '손님',
12
+ durationLabel: '기간',
13
+ hoursUnit: '시간',
14
+ intensityLabel: '강도',
15
+ chillLabel: 'Chill',
16
+ standardLabel: 'Standard',
17
+ partyLabel: 'Party',
18
+ tempLabel: '온도',
19
+ estimatedVolLabel: '예상 용량',
20
+ kegsLabel: '통',
21
+ iceRequiredLabel: '필요한 얼음',
22
+ bagsLabel: '봉지',
23
+ visualizationTitle: '재고 시각화',
24
+ optimalMsg: '최적 조건',
25
+ highMeltMsg: '높은 융해 감지됨',
26
+ highEfficiencyMsg: '추운/높은 효율'
27
+ };
28
+
29
+ const faqTitle = '자주 묻는 질문';
30
+ const bibliographyTitle = '참고 문헌 및 소스';
31
+
32
+ const faq: PartyKegLocaleContent['faq'] = [
33
+ {
34
+ question: "4시간 동안 1인이 몇 잔의 맥주를 마시나요?",
35
+ answer: "평균적으로 4시간 행사의 경우 1인당 5잔의 맥주를 계산하세요. 이는 첫 번째 시간에 2잔, 나머지 각 시간에 1잔을 가정합니다.",
36
+ },
37
+ {
38
+ question: "100잔의 맥주에 필요한 얼음은 얼마나 되나요?",
39
+ answer: "약 15~20킬로그램의 얼음(7~10봉지)이 필요합니다. 실제 규칙은 일반적인 조건에서 음료 1리터당 0.75kg의 얼음입니다. 여름이나 25°C 이상의 야외에서는 1리터당 1kg으로 늘리세요. 주변 열이 융해를 가속화하면 예상보다 훨씬 빨리 얼음이 떨어집니다.",
40
+ },
41
+ {
42
+ question: "표준 통과 파티 통의 차이점은 무엇인가요?",
43
+ answer: "표준 상용 통은 50리터를 담고 약 200인분(각 250ml)을 생산합니다. 파티 통(미니통)은 일반적으로 5리터를 담습니다(약 20인분). 이러한 크기를 알면 계산기의 리터 출력을 구매해야 할 컨테이너 수로 변환하는 데 도움이 됩니다.",
44
+ },
45
+ {
46
+ question: "맥주가 이미 차가운데 왜 이렇게 많은 얼음이 필요한가요?",
47
+ answer: "냉각과 유지는 두 가지 별개의 과정이기 때문입니다. 캔을 25°C에서 4°C로 옮기는 것은 얼음의 잠재 융해열을 소비합니다. 약 334kJ/kg입니다. 차가워지면 얼음은 계속 주변 열을 상쇄하기 위해 작동합니다. 35°C의 여름날에는 쿨러로의 열 전달이 2~3시간마다 음료 1리터당 1kg의 얼음을 녹일 수 있습니다. 그래서 파티 전에 음료를 미리 식혀놓으면 전체 얼음 소비량이 절반으로 줄어드는 것입니다.",
48
+ },
49
+ ];
50
+
51
+ const howTo: PartyKegLocaleContent['howTo'] = [
52
+ {
53
+ name: "손님 수를 추정하세요",
54
+ text: "참석할 인원을 정의하세요. 당사 계산기는 통계적 소비 평균에 따라 수량을 조정합니다.",
55
+ },
56
+ {
57
+ name: "기간과 강도를 정의하세요",
58
+ text: "행사가 몇 시간 지속될 것인지, 파티의 '흐름'(차분함, 표준, 또는 강렬함)을 표시하세요.",
59
+ },
60
+ {
61
+ name: "주변 온도에 맞게 조정하세요",
62
+ text: "야외 온도는 얼음 계산의 핵심입니다. 열을 보충해야 하는 융해 속도가 높을수록 더워집니다.",
63
+ },
64
+ ];
65
+
66
+ const bibliography: PartyKegLocaleContent['bibliography'] = [
67
+ {
68
+ name: "Event Planning: Alcohol & Bar Calculations - Spruce Eats",
69
+ url: "https://www.thespruceeats.com/stock-your-bar-for-a-party-760394",
70
+ },
71
+ {
72
+ name: "Thermodynamics of Ice Melting - Engineering Toolbox",
73
+ url: "https://www.engineeringtoolbox.com/saturated-ice-steam-d_970.html",
74
+ },
75
+ ];
76
+
77
+ const seo: PartyKegLocaleContent['seo'] = [
78
+ {
79
+ type: 'title',
80
+ text: '내 파티를 위해 맥주와 얼음이 얼마나 필요한가요?',
81
+ level: 2
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: '행사를 계획할 때의 백만 달러 질문: <strong>맥주 몇 리터를 구매해야 하나요?</strong> 부족하면 재앙이지만 과도하게 구매하는 것은 불필요한 지출입니다. 이 도구는 정확한 알코올 양을 계산하는 데 도움이 됩니다. 가장 중요한 것은 <strong>얼음 몇 봉지</strong>가 필요한지를 계산합니다. 전문 케이터링 업체와 행사 기획자는 통계적 소비 모델을 사용합니다. 이제 무료로 같은 방식을 사용할 수 있습니다.'
86
+ },
87
+ {
88
+ type: 'title',
89
+ text: '1인당 소비 공식',
90
+ level: 2
91
+ },
92
+ {
93
+ type: 'paragraph',
94
+ html: '필요한 알코올을 추정하기 위해 전문 케이터링 업체는 "시간당 소비율"을 기반으로 한 공식을 사용합니다. 정확한 과학은 아니지만 통계에 따르면 표준 파티에서는 1인당 약 1.5단위가 시간당 소비됩니다. 주변 온도, 음식 이용 가능성, 행사의 사회적 에너지와 같은 요소들은 모두 이 기본 수치를 변경합니다.'
95
+ },
96
+ {
97
+ type: 'stats',
98
+ items: [
99
+ { label: '차분한 소비', value: '1잔/시간', icon: 'mdi:tea-outline' },
100
+ { label: '표준 파티', value: '1.5잔/시간', icon: 'mdi:glass-mug-variant' },
101
+ { label: '결혼식/축제', value: '2.5+잔/시간', icon: 'mdi:fire' }
102
+ ],
103
+ columns: 3
104
+ },
105
+ {
106
+ type: 'diagnostic',
107
+ title: '얼음의 물리학',
108
+ icon: 'mdi:snowflake-thermometer',
109
+ variant: 'warning',
110
+ badge: '열역학',
111
+ html: '얼음 계산은 대부분의 호스트가 실패하는 곳입니다. 얼음은 두 가지 기능을 수행합니다: 냉각(맥주를 25°C에서 4°C로)과 유지(주변 열과 싸우기). 30°C 이상의 온도에서는 융해 속도가 두 배가 됩니다. 직사광선 아래 얼음 봉지가 20분 이내에 사라져서 파티가 정점에 도달하기 전에 음료가 따뜻해질 수 있습니다.'
112
+ },
113
+ {
114
+ type: 'tip',
115
+ title: '얼음 절약을 위한 전문가 팁',
116
+ html: '얼음을 추가하기 전에 통과 캔을 그늘에 보관하세요. 햇빛 아래 음료가 따뜻하면, 첫 번째 얼음 봉지의 50%가 단순히 잠재열을 교환하면서 10분 내에 소실됩니다. 미리 차갑게 식힌 음료로 시작하면 실제로 구매해야 할 얼음의 양을 드라마틱하게 줄일 수 있습니다.'
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: '물류를 위한 참고 데이터',
121
+ level: 2
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: '표준 50L 통은 약 200인분을 생산합니다. 일반적인 얼음 봉지의 무게는 2kg입니다. 이러한 숫자를 알면 최후의 순간 놀라움 없이 행사에 필요한 운송 및 보관을 계획할 수 있습니다. 운송 중 얼음 융해를 고려하세요. 여름의 30분 운전이 파티 시작 전에 전체 봉지를 사용할 수 있습니다.'
126
+ },
127
+ {
128
+ type: 'summary',
129
+ title: '이 도구는 누구를 위한 것인가요?',
130
+ items: [
131
+ '개인 파티 호스트: 추측을 멈추고 다음 축하 행사에 필요한 것을 정확히 자신감 있게 구매하세요.',
132
+ '행사 기획자: 정확한 소비 모델을 사용하여 고객에게 견적을 제시하고 바 물류를 전문적으로 계획하세요.',
133
+ '장소 관리자: 다양한 손님 수를 가진 반복되는 행사 전체에서 재고 계산을 표준화하세요.'
134
+ ]
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: '흔히 간과되는 변수는 <strong>손님 탈락률</strong>입니다. 대부분의 파티에서는 10~15% 손님이 조기 퇴장하고 10%는 음료를 마시지 않을 수 있습니다. 계산기는 부족하지 않으면서도 엄청난 잉여를 남기지 않도록 보수적인 완충을 적용합니다. 이러한 조정을 이해하면 특정 그룹과 상황에 맞게 추정치를 미세 조정하는 데 도움이 됩니다. 구매할 때 항상 올림하세요. 개봉된 통은 반환할 수 없습니다. 작은 잉여가 파티 한복판에 음료가 떨어지는 것보다 항상 낫습니다.'
139
+ }
140
+ ];
141
+
142
+ const schemas: PartyKegLocaleContent['schemas'] = [
143
+ {
144
+ '@context': 'https://schema.org',
145
+ '@type': 'FAQPage',
146
+ mainEntity: faq.map((item) => ({
147
+ '@type': 'Question',
148
+ name: item.question,
149
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
150
+ })),
151
+ } as WithContext<FAQPage>,
152
+ {
153
+ '@context': 'https://schema.org',
154
+ '@type': 'HowTo',
155
+ name: title,
156
+ description: description,
157
+ step: howTo.map((step, i) => ({
158
+ '@type': 'HowToStep',
159
+ position: i + 1,
160
+ name: step.name,
161
+ text: step.text,
162
+ })),
163
+ } as WithContext<HowTo>,
164
+ {
165
+ '@context': 'https://schema.org',
166
+ '@type': 'SoftwareApplication',
167
+ name: title,
168
+ description: description,
169
+ applicationCategory: 'UtilityApplication',
170
+ operatingSystem: 'Web',
171
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
172
+ } as WithContext<SoftwareApplication>,
173
+ ];
174
+
175
+ export const content: PartyKegLocaleContent = {
176
+ slug,
177
+ title,
178
+ description,
179
+ ui,
180
+ seo,
181
+ faqTitle,
182
+ faq,
183
+ bibliographyTitle,
184
+ bibliography,
185
+ howTo,
186
+ schemas,
187
+ };
@@ -0,0 +1,187 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { PartyKegUI, PartyKegLocaleContent } from '../index';
3
+
4
+ const slug = 'bier-ijsrekenmachine-feest';
5
+ const title = 'Bier ijsrekenmachine: Hoeveelheid per Persoon voor Bruiloften en Verjaardagen';
6
+ const description = 'Gratis tool om te berekenen hoeveel bier en ijs je nodig hebt op basis van gasten, duur en temperatuur. Perfect voor bruiloften, verjaardagen en buitenevenementen.';
7
+
8
+ const ui: PartyKegUI = {
9
+ calcStockTitle: 'Voorraadcalculator',
10
+ beerIceSub: 'Bier & Ijs voor Evenementen',
11
+ guestsLabel: 'Gasten',
12
+ durationLabel: 'Duur',
13
+ hoursUnit: 'Uren',
14
+ intensityLabel: 'Intensiteit',
15
+ chillLabel: 'Chill',
16
+ standardLabel: 'Standard',
17
+ partyLabel: 'Party',
18
+ tempLabel: 'Temperatuur',
19
+ estimatedVolLabel: 'Geschatte Hoeveelheid',
20
+ kegsLabel: 'Vaten',
21
+ iceRequiredLabel: 'Ijs Nodig',
22
+ bagsLabel: 'Zakken',
23
+ visualizationTitle: 'Voorraadvisualisatie',
24
+ optimalMsg: 'Optimale Voorwaarden',
25
+ highMeltMsg: 'Hoog Smeltingspercentage Gedetecteerd',
26
+ highEfficiencyMsg: 'Koud / Hoge Efficiëntie'
27
+ };
28
+
29
+ const faqTitle = 'Veelgestelde Vragen';
30
+ const bibliographyTitle = 'Bibliografie en Bronnen';
31
+
32
+ const faq: PartyKegLocaleContent['faq'] = [
33
+ {
34
+ question: "Hoeveel bier drinkt een persoon in 4 uur?",
35
+ answer: "Reken gemiddeld op 5 bieren per persoon voor een 4-uurs evenement. Dit gaat uit van 2 drankjes in het eerste uur en 1 voor elk resterend uur.",
36
+ },
37
+ {
38
+ question: "Hoeveel ijs heb ik nodig voor 100 bieren?",
39
+ answer: "Je hebt ongeveer 15–20 kilogram ijs nodig (7–10 zakken). De praktische regel is 0,75 kg ijs per liter drank onder normale omstandigheden. In de zomer of buiten boven 25°C moet je tot 1 kg per liter gaan: omgevingswarmte versnelt de smelt en je loopt ijs veel sneller uit dan verwacht.",
40
+ },
41
+ {
42
+ question: "Wat is het verschil tussen een standaardvat en een festvat?",
43
+ answer: "Een standaard handelsvat bevat 50 liter, wat ongeveer 200 porties (250 ml elk) oplevert. Een festvat (minivat) bevat meestal 5 liter — ongeveer 20 porties. Deze maten kennen helpt je om de liter-uitkomst van de calculator om te zetten naar het aantal containers dat je moet kopen.",
44
+ },
45
+ {
46
+ question: "Waarom heb ik zoveel ijs nodig als het bier al koud is?",
47
+ answer: "Omdat afkoelen en onderhouden twee aparte processen zijn. Een blikje van 25°C naar 4°C brengen verbruikt de latente smeltingswarmte van ijs: ongeveer 334 kJ/kg. Eenmaal koud, blijft ijs werken om omgevingswarmte tegen te gaan. Op een zomerdag van 35°C kunnen warmteoverdrachten naar de koelbox ongeveer 1 kg ijs per liter drank elke 2–3 uur smelten. Daarom halveert je drank voorkelen voor het feest je totale ijsverbruik.",
48
+ },
49
+ ];
50
+
51
+ const howTo: PartyKegLocaleContent['howTo'] = [
52
+ {
53
+ name: "Schat het aantal gasten",
54
+ text: "Bepaal hoeveel mensen zullen deelnemen. Onze calculator past de hoeveelheden aan op basis van statistische verbruiksgemiddelden.",
55
+ },
56
+ {
57
+ name: "Bepaal duur en intensiteit",
58
+ text: "Geef aan hoeveel uur het evenement duurt en wat de 'flow' van het feest is (chill, standaard of intens).",
59
+ },
60
+ {
61
+ name: "Pas je aan omgevingstemperatuur aan",
62
+ text: "Buitentemperatuur is cruciaal voor de ijsberekening. Hoe warmer, hoe hoger de smeltingssnelheid die we moeten compenseren.",
63
+ },
64
+ ];
65
+
66
+ const bibliography: PartyKegLocaleContent['bibliography'] = [
67
+ {
68
+ name: "Event Planning: Alcohol & Bar Calculations - Spruce Eats",
69
+ url: "https://www.thespruceeats.com/stock-your-bar-for-a-party-760394",
70
+ },
71
+ {
72
+ name: "Thermodynamics of Ice Melting - Engineering Toolbox",
73
+ url: "https://www.engineeringtoolbox.com/saturated-ice-steam-d_970.html",
74
+ },
75
+ ];
76
+
77
+ const seo: PartyKegLocaleContent['seo'] = [
78
+ {
79
+ type: 'title',
80
+ text: 'Hoeveel Bier en Ijs heb ik Nodig voor Mijn Feest?',
81
+ level: 2
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: 'De miljoenenvraag bij het organiseren van een evenement: <strong>Hoeveel liter bier moet ik kopen?</strong> Te weinig is een ramp, maar overkopen is onnodige uitgave. Deze tool helpt je de exacte hoeveelheid alcohol te berekenen en, het allerbelangrijkste, <strong>hoeveel ijszakken</strong> je nodig hebt om alles koud te houden. Professionele cateraars en evenementenplanners gebruiken statistische verbruiksmodellen — en nu kun je dat ook, gratis.'
86
+ },
87
+ {
88
+ type: 'title',
89
+ text: 'De Verbruiksformule Per Persoon',
90
+ level: 2
91
+ },
92
+ {
93
+ type: 'paragraph',
94
+ html: 'Om de benodigde alcohol in te schatten, gebruiken professionele cateraars een formule gebaseerd op "Verbruikssnelheid per Uur". Het is geen exacte wetenschap, maar statistieken tonen aan dat op een standaardfeest ongeveer 1,5 eenheden per uur per persoon wordt geconsumeerd. Factoren als omgevingstemperatuur, voedselaanbod en de sociale energie van het evenement veranderen dit basisgetal allemaal.'
95
+ },
96
+ {
97
+ type: 'stats',
98
+ items: [
99
+ { label: 'Chill-verbruik', value: '1 drankje/uur', icon: 'mdi:tea-outline' },
100
+ { label: 'Standaardfeest', value: '1,5 drankjes/uur', icon: 'mdi:glass-mug-variant' },
101
+ { label: 'Bruiloft / Festival', value: '2,5+ drankjes/uur', icon: 'mdi:fire' }
102
+ ],
103
+ columns: 3
104
+ },
105
+ {
106
+ type: 'diagnostic',
107
+ title: 'De Fysica van Ijs',
108
+ icon: 'mdi:snowflake-thermometer',
109
+ variant: 'warning',
110
+ badge: 'Thermodynamica',
111
+ html: 'IJsberekening is waar de meeste gastheren falen. Ijs vervult twee functies: Afkoelen (bier van 25°C naar 4°C) en Onderhoud (tegen omgevingswarmte vechten). Bij temperaturen boven 30°C verdubbelt de smeltingssnelheid. Een volle ijszak in direct zonlicht kan binnen 20 minuten weg zijn, waardoor je drank warm wordt voordat het feest op zijn hoogtepunt is.'
112
+ },
113
+ {
114
+ type: 'tip',
115
+ title: 'Professioneel Advies om Ijs te Besparen',
116
+ html: 'Houd vaten en blikjes in de schaduw voordat je ijs toevoegt. Als drank in de zon warm is, sterft de eerste 50% van je ijszak in 10 minuten simpel door latente warmte uit te wisselen. Begin met voorafgekoelde dranken om drastisch het ijs dat je echt moet kopen te verminderen.'
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Referentiegegevens voor Logistiek',
121
+ level: 2
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Een standaard 50L-vat levert ongeveer 200 porties op. Een typische ijszak weegt 2 kg. Met deze getallen kun je het vervoer en de opslag voor je evenement plannen zonder laatste moment verrassingen. Houdt rekening met ijssmelt tijdens transport — een 30-minutenrit in de zomer kan je een hele zak kosten voordat het feest begint.'
126
+ },
127
+ {
128
+ type: 'summary',
129
+ title: 'Voor wie is deze tool?',
130
+ items: [
131
+ 'Privéfeestgastheren: Stop met gokken en koop zelfverzekerd precies wat je nodig hebt voor je volgende vieringen.',
132
+ 'Evenementenplanners: Gebruik nauwkeurige verbruiksmodellen om klanten te quoten en barbevoorraad professioneel in te plannen.',
133
+ 'Venuebeheerders: Standaardiseer voorraadbereking over terugkerende evenementen met verschillende gastenantal.'
134
+ ]
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Een vaak over het hoofd gezien variabele is <strong>gastenuitvalpercentage</strong>. Bij de meeste feesten vertrekken 10–15% van de gasten eerder en 10% drinkt misschien helemaal niet. De calculator past een voorzichtig buffer toe, zodat je nooit tekortschiet, maar ook niet met enorme overschotten zit. Begrijpen van deze aanpassingen helpt je de schatting voor je specifieke groep en context bij te stellen. Rond altijd naar boven af bij aankoop, omdat geopende vaten normaal niet kunnen worden geretourneerd. Een klein overschot is altijd beter dan halverwege het feest zonder drank zitten.'
139
+ }
140
+ ];
141
+
142
+ const schemas: PartyKegLocaleContent['schemas'] = [
143
+ {
144
+ '@context': 'https://schema.org',
145
+ '@type': 'FAQPage',
146
+ mainEntity: faq.map((item) => ({
147
+ '@type': 'Question',
148
+ name: item.question,
149
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
150
+ })),
151
+ } as WithContext<FAQPage>,
152
+ {
153
+ '@context': 'https://schema.org',
154
+ '@type': 'HowTo',
155
+ name: title,
156
+ description: description,
157
+ step: howTo.map((step, i) => ({
158
+ '@type': 'HowToStep',
159
+ position: i + 1,
160
+ name: step.name,
161
+ text: step.text,
162
+ })),
163
+ } as WithContext<HowTo>,
164
+ {
165
+ '@context': 'https://schema.org',
166
+ '@type': 'SoftwareApplication',
167
+ name: title,
168
+ description: description,
169
+ applicationCategory: 'UtilityApplication',
170
+ operatingSystem: 'Web',
171
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
172
+ } as WithContext<SoftwareApplication>,
173
+ ];
174
+
175
+ export const content: PartyKegLocaleContent = {
176
+ slug,
177
+ title,
178
+ description,
179
+ ui,
180
+ seo,
181
+ faqTitle,
182
+ faq,
183
+ bibliographyTitle,
184
+ bibliography,
185
+ howTo,
186
+ schemas,
187
+ };