@jjlmoya/utils-alcohol 1.13.0 → 1.15.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 +59 -58
- package/src/category/i18n/id.ts +28 -0
- package/src/category/i18n/sv.ts +19 -0
- package/src/category/index.ts +2 -0
- package/src/tests/faq_count.test.ts +12 -10
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +3 -34
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_validation.test.ts +4 -4
- package/src/tool/alcoholClearance/i18n/de.ts +205 -0
- package/src/tool/alcoholClearance/i18n/en.ts +22 -1
- package/src/tool/alcoholClearance/i18n/es.ts +22 -1
- package/src/tool/alcoholClearance/i18n/fr.ts +22 -1
- package/src/tool/alcoholClearance/i18n/id.ts +205 -0
- package/src/tool/alcoholClearance/i18n/it.ts +180 -0
- package/src/tool/alcoholClearance/i18n/ja.ts +205 -0
- package/src/tool/alcoholClearance/i18n/ko.ts +205 -0
- package/src/tool/alcoholClearance/i18n/nl.ts +205 -0
- package/src/tool/alcoholClearance/i18n/pl.ts +205 -0
- package/src/tool/alcoholClearance/i18n/pt.ts +205 -0
- package/src/tool/alcoholClearance/i18n/ru.ts +205 -0
- package/src/tool/alcoholClearance/i18n/sv.ts +205 -0
- package/src/tool/alcoholClearance/i18n/tr.ts +180 -0
- package/src/tool/alcoholClearance/i18n/zh.ts +205 -0
- package/src/tool/alcoholClearance/index.ts +13 -1
- package/src/tool/beerCooler/i18n/de.ts +197 -0
- package/src/tool/beerCooler/i18n/en.ts +25 -4
- package/src/tool/beerCooler/i18n/es.ts +25 -4
- package/src/tool/beerCooler/i18n/fr.ts +25 -4
- package/src/tool/beerCooler/i18n/id.ts +197 -0
- package/src/tool/beerCooler/i18n/it.ts +197 -0
- package/src/tool/beerCooler/i18n/ja.ts +197 -0
- package/src/tool/beerCooler/i18n/ko.ts +197 -0
- package/src/tool/beerCooler/i18n/nl.ts +197 -0
- package/src/tool/beerCooler/i18n/pl.ts +197 -0
- package/src/tool/beerCooler/i18n/pt.ts +197 -0
- package/src/tool/beerCooler/i18n/ru.ts +197 -0
- package/src/tool/beerCooler/i18n/sv.ts +197 -0
- package/src/tool/beerCooler/i18n/tr.ts +197 -0
- package/src/tool/beerCooler/i18n/zh.ts +197 -0
- package/src/tool/beerCooler/index.ts +13 -1
- package/src/tool/carbonationCalculator/i18n/de.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/en.ts +22 -1
- package/src/tool/carbonationCalculator/i18n/es.ts +22 -1
- package/src/tool/carbonationCalculator/i18n/fr.ts +22 -1
- package/src/tool/carbonationCalculator/i18n/id.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/it.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/ja.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/ko.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/nl.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/pl.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/pt.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/ru.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/sv.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/tr.ts +200 -0
- package/src/tool/carbonationCalculator/i18n/zh.ts +200 -0
- package/src/tool/carbonationCalculator/index.ts +13 -1
- package/src/tool/cocktailBalancer/i18n/de.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/en.ts +23 -2
- package/src/tool/cocktailBalancer/i18n/es.ts +23 -2
- package/src/tool/cocktailBalancer/i18n/fr.ts +23 -2
- package/src/tool/cocktailBalancer/i18n/id.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/it.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/ja.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/ko.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/nl.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/pl.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/pt.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/ru.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/sv.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/tr.ts +222 -0
- package/src/tool/cocktailBalancer/i18n/zh.ts +222 -0
- package/src/tool/cocktailBalancer/index.ts +13 -1
- package/src/tool/partyKeg/i18n/de.ts +187 -0
- package/src/tool/partyKeg/i18n/en.ts +22 -1
- package/src/tool/partyKeg/i18n/es.ts +22 -1
- package/src/tool/partyKeg/i18n/fr.ts +23 -2
- package/src/tool/partyKeg/i18n/id.ts +187 -0
- package/src/tool/partyKeg/i18n/it.ts +187 -0
- package/src/tool/partyKeg/i18n/ja.ts +187 -0
- package/src/tool/partyKeg/i18n/ko.ts +187 -0
- package/src/tool/partyKeg/i18n/nl.ts +187 -0
- package/src/tool/partyKeg/i18n/pl.ts +187 -0
- package/src/tool/partyKeg/i18n/pt.ts +187 -0
- package/src/tool/partyKeg/i18n/ru.ts +187 -0
- package/src/tool/partyKeg/i18n/sv.ts +187 -0
- package/src/tool/partyKeg/i18n/tr.ts +187 -0
- package/src/tool/partyKeg/i18n/zh.ts +187 -0
- package/src/tool/partyKeg/index.ts +13 -1
- package/src/types.ts +1 -1
- 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 = 'calculadora-cerveja-gelo-festa';
|
|
5
|
+
const title = 'Calculadora de Cerveja para Festas: Quantidade Por Pessoa para Casamentos e Aniversários';
|
|
6
|
+
const description = 'Ferramenta gratuita para calcular quanto cerveja e gelo você precisa com base em convidados, duração e temperatura. Perfeita para casamentos, aniversários e eventos ao ar livre.';
|
|
7
|
+
|
|
8
|
+
const ui: PartyKegUI = {
|
|
9
|
+
calcStockTitle: 'Calculadora de Estoque',
|
|
10
|
+
beerIceSub: 'Cerveja & Gelo para Eventos',
|
|
11
|
+
guestsLabel: 'Convidados',
|
|
12
|
+
durationLabel: 'Duração',
|
|
13
|
+
hoursUnit: 'Horas',
|
|
14
|
+
intensityLabel: 'Intensidade',
|
|
15
|
+
chillLabel: 'Chill',
|
|
16
|
+
standardLabel: 'Padrão',
|
|
17
|
+
partyLabel: 'Festa',
|
|
18
|
+
tempLabel: 'Temperatura',
|
|
19
|
+
estimatedVolLabel: 'Volume Estimado',
|
|
20
|
+
kegsLabel: 'Barris',
|
|
21
|
+
iceRequiredLabel: 'Gelo Necessário',
|
|
22
|
+
bagsLabel: 'Sacos',
|
|
23
|
+
visualizationTitle: 'Visualização de Estoque',
|
|
24
|
+
optimalMsg: 'Condições Ótimas',
|
|
25
|
+
highMeltMsg: 'Alto Degelo Detectado',
|
|
26
|
+
highEfficiencyMsg: 'Frio / Alta Eficiência'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faqTitle = 'Perguntas Frequentes';
|
|
30
|
+
const bibliographyTitle = 'Bibliografia e Fontes';
|
|
31
|
+
|
|
32
|
+
const faq: PartyKegLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: "Quantas cervejas uma pessoa bebe em 4 horas?",
|
|
35
|
+
answer: "Em média, calcule 5 cervejas por pessoa para um evento de 4 horas. Isso pressupõe 2 bebidas na primeira hora e 1 para cada hora restante.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: "Quanto gelo preciso para 100 cervejas?",
|
|
39
|
+
answer: "Você precisará de aproximadamente 15–20 quilogramas de gelo (7–10 sacos). A regra prática é 0,75 kg de gelo por litro de bebida em condições normais. No verão ou ao ar livre acima de 25°C, aumente para 1 kg por litro: o calor ambiente acelera o derretimento e você ficará sem gelo muito mais rápido do que o esperado.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: "Qual é a diferença entre um barril padrão e um barril de festa?",
|
|
43
|
+
answer: "Um barril comercial padrão contém 50 litros, o que rende aproximadamente 200 porções (250 ml cada). Um barril de festa (mini-barril) geralmente contém 5 litros — cerca de 20 porções. Conhecer esses tamanhos ajuda você a traduzir a saída em litros da calculadora no número de recipientes para comprar.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: "Por que preciso de tanto gelo se as cervejas já estão frias?",
|
|
47
|
+
answer: "Porque resfriar e manter são dois processos separados. Levar uma lata de 25°C para 4°C consome o calor latente de fusão do gelo: cerca de 334 kJ/kg. Depois de frio, o gelo continua trabalhando para neutralizar o calor ambiente. Em um dia de verão a 35°C, a transferência de calor para o refrigerador pode derreter 1 kg de gelo por litro de bebida a cada 2–3 horas. É por isso que o pré-resfriamento das bebidas antes da festa reduz o consumo total de gelo pela metade.",
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: PartyKegLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: "Estime o número de convidados",
|
|
54
|
+
text: "Defina quantas pessoas irão participar. Nossa calculadora ajusta as quantidades com base nas médias estatísticas de consumo.",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "Defina duração e intensidade",
|
|
58
|
+
text: "Indique quantas horas o evento durará e o 'ritmo' da festa (chill, padrão ou intenso).",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Ajuste-se à temperatura ambiente",
|
|
62
|
+
text: "A temperatura externa é fundamental para o cálculo do gelo. Quanto mais quente, maior será a taxa de degelo que precisamos compensar.",
|
|
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: 'Quanto de Cerveja e Gelo Preciso Para Minha Festa?',
|
|
81
|
+
level: 2
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'paragraph',
|
|
85
|
+
html: 'A pergunta de um milhão quando organizando qualquer evento: <strong>Quantos litros de cerveja devo comprar?</strong> Ficar sem é um desastre, mas comprar em excesso é uma despesa desnecessária. Esta ferramenta ajuda você a calcular a quantidade exata de álcool e, o mais importante, <strong>quantos sacos de gelo</strong> você precisa para mantê-lo gelado. Catedores profissionais e planejadores de eventos usam modelos estatísticos de consumo — e agora você também pode, gratuitamente.'
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: 'A Fórmula de Consumo Por Pessoa',
|
|
90
|
+
level: 2
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Para estimar o álcool necessário, catedores profissionais usam uma fórmula baseada na "Taxa de Consumo Horária". Não é uma ciência exata, mas as estatísticas mostram que em uma festa padrão, aproximadamente 1,5 unidades são consumidas por hora por pessoa. Fatores como temperatura ambiente, disponibilidade de alimentos e a energia social do evento, todos mudam esse número base.'
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'stats',
|
|
98
|
+
items: [
|
|
99
|
+
{ label: 'Consumo Chill', value: '1 bebida/hora', icon: 'mdi:tea-outline' },
|
|
100
|
+
{ label: 'Festa Padrão', value: '1,5 bebidas/hora', icon: 'mdi:glass-mug-variant' },
|
|
101
|
+
{ label: 'Casamento / Festival', value: '2,5+ bebidas/hora', icon: 'mdi:fire' }
|
|
102
|
+
],
|
|
103
|
+
columns: 3
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'diagnostic',
|
|
107
|
+
title: 'A Física do Gelo',
|
|
108
|
+
icon: 'mdi:snowflake-thermometer',
|
|
109
|
+
variant: 'warning',
|
|
110
|
+
badge: 'Termodinâmica',
|
|
111
|
+
html: 'Calcular gelo é onde a maioria dos anfitriões falha. O gelo serve duas funções: Resfriamento (levar cerveja de 25°C para 4°C) e Manutenção (lutar contra o calor ambiente). Em temperaturas acima de 30°C, a taxa de derretimento dobra. Um saco de gelo cheio sob o sol direto pode desaparecer em menos de 20 minutos, deixando suas bebidas quentes antes de a festa atingir seu pico.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'tip',
|
|
115
|
+
title: 'Dica Profissional Para Economizar Gelo',
|
|
116
|
+
html: 'Mantenha os barris e latas na sombra antes de adicionar gelo. Se as bebidas estão quentes ao sol, os primeiros 50% do seu saco de gelo morrem em 10 minutos apenas trocando calor latente. Comece com bebidas pré-resfriadas para reduzir drasticamente quanto gelo você realmente precisa comprar.'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Dados de Referência Para Logística',
|
|
121
|
+
level: 2
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Um barril padrão de 50L produz cerca de 200 porções. Um saco de gelo típico pesa 2 kg. Conhecendo esses números, você pode planejar o transporte e armazenamento necessários para seu evento sem surpresas de último minuto. Considere o derretimento do gelo durante o transporte — uma viagem de 30 minutos no verão pode custar um saco inteiro antes de a festa começar.'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'summary',
|
|
129
|
+
title: 'Para Quem Esta Ferramenta É?',
|
|
130
|
+
items: [
|
|
131
|
+
'Anfitriões de Festas Particulares: Pare de adivinhar e confiantemente compre exatamente o que você precisa para sua próxima celebração.',
|
|
132
|
+
'Planejadores de Eventos: Use modelos de consumo precisos para cotar clientes e planejar logística de bar profissionalmente.',
|
|
133
|
+
'Gerentes de Locais: Padronize cálculos de estoque em eventos recorrentes com contagens diferentes de convidados.'
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Uma variável frequentemente negligenciada é a <strong>taxa de desistência de convidados</strong>. Na maioria das festas, 10–15% dos convidados saem mais cedo e 10% podem não beber nada. A calculadora aplica um buffer conservador para que você nunca fique sem, mas também não fica com um excedente enorme. Entender esses ajustes ajuda você a refinar a estimativa para seu grupo e contexto específico. Sempre arredonde para cima na compra, pois barris abertos geralmente não podem ser devolvidos. Um pequeno excesso é sempre preferível a ficar sem bebida no meio da festa.'
|
|
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 = 'kalkulyator-piva-льда-vecherinki';
|
|
5
|
+
const title = 'Калькулятор Пива для Вечеринки: Количество На Человека для Свадеб и Дней Рождения';
|
|
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 часа?",
|
|
35
|
+
answer: "В среднем считайте 5 пив на человека на четырёхчасовое мероприятие. Это подразумевает 2 напитка в первый час и по 1 в каждый последующий час.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: "Сколько льда мне нужно на 100 пив?",
|
|
39
|
+
answer: "Вам понадобится примерно 15–20 килограммов льда (7–10 мешков). Практическое правило: 0,75 кг льда на литр напитка при нормальных условиях. Летом или на открытом воздухе при температуре выше 25°C увеличьте до 1 кг на литр: окружающее тепло ускоряет таяние, и лёд закончится намного раньше ожидаемого.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: "В чём отличие между стандартной бочкой и праздничной бочкой?",
|
|
43
|
+
answer: "Стандартная коммерческая бочка вмещает 50 литров, что даёт примерно 200 порций (по 250 мл каждая). Праздничная бочка (мини-бочка) обычно вмещает 5 литров — около 20 порций. Зная эти размеры, вы сможете пересчитать выходное значение калькулятора в литрах на количество тар для покупки.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: "Почему нужно столько льда, если пиво уже холодное?",
|
|
47
|
+
answer: "Потому что охлаждение и поддержание температуры — два разных процесса. Охладить банку с 25°C до 4°C требует скрытой теплоты плавления льда: около 334 кДж/кг. Как только напиток охладится, лёд продолжает работу, противодействуя тепловому потоку извне. В летний день при 35°C тепловой поток в холодильник может растопить 1 кг льда на литр напитка каждые 2–3 часа. Поэтому предварительное охлаждение напитков перед вечеринкой сокращает общее потребление льда вдвое.",
|
|
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: 'Формула Расчёта на Одного Человека',
|
|
90
|
+
level: 2
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Чтобы оценить нужное количество алкоголя, профессионалы кейтеринга используют формулу, основанную на «Почасовом Коэффициенте Потребления». Это не точная наука, но статистика показывает: на типичной вечеринке в среднем потребляется около 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: 'Стандартная 50-литровая бочка даёт примерно 200 порций. Обычный мешок льда весит 2 кг. Зная эти цифры, вы можете спланировать доставку и хранение для своего мероприятия без сюрпризов в последний момент. Учитывайте таяние льда во время транспортировки — 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 = 'ol-iskalkylator-fest';
|
|
5
|
+
const title = 'Ölkalkylator för Fester: Mängd Per Person för Bröllop och Födelsedagar';
|
|
6
|
+
const description = 'Gratis verktyg för att beräkna hur mycket öl och is du behöver baserat på gäster, varaktighet och temperatur. Perfekt för bröllop, födelsedagar och utomhusevenemang.';
|
|
7
|
+
|
|
8
|
+
const ui: PartyKegUI = {
|
|
9
|
+
calcStockTitle: 'Lagerkalkylator',
|
|
10
|
+
beerIceSub: 'Öl & Is för Event',
|
|
11
|
+
guestsLabel: 'Gäster',
|
|
12
|
+
durationLabel: 'Varaktighet',
|
|
13
|
+
hoursUnit: 'Timmar',
|
|
14
|
+
intensityLabel: 'Intensitet',
|
|
15
|
+
chillLabel: 'Chill',
|
|
16
|
+
standardLabel: 'Standard',
|
|
17
|
+
partyLabel: 'Party',
|
|
18
|
+
tempLabel: 'Temperatur',
|
|
19
|
+
estimatedVolLabel: 'Beräknad Volym',
|
|
20
|
+
kegsLabel: 'Fat',
|
|
21
|
+
iceRequiredLabel: 'Is Behövd',
|
|
22
|
+
bagsLabel: 'Påsar',
|
|
23
|
+
visualizationTitle: 'Lagervisualisering',
|
|
24
|
+
optimalMsg: 'Optimala Förhållanden',
|
|
25
|
+
highMeltMsg: 'Högt Smältningstal Upptäckt',
|
|
26
|
+
highEfficiencyMsg: 'Kall / Hög Effektivitet'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faqTitle = 'Vanliga Frågor';
|
|
30
|
+
const bibliographyTitle = 'Bibliografi och Källor';
|
|
31
|
+
|
|
32
|
+
const faq: PartyKegLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: "Hur mycket öl dricker en person på 4 timmar?",
|
|
35
|
+
answer: "I genomsnitt, räkna med 5 öl per person för ett 4-timmar-event. Det förutsätter 2 drycker första timmen och 1 för varje återstående timme.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: "Hur mycket is behöver jag för 100 öl?",
|
|
39
|
+
answer: "Du behöver ungefär 15–20 kilogram is (7–10 påsar). Praktiska regeln är 0,75 kg is per liter dryck under normala förhållanden. På sommaren eller utomhus över 25°C, öka till 1 kg per liter: omgivningsvärmen påskyndar smältningen och du kommer att få slut på is mycket snabbare än förväntat.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: "Vad är skillnaden mellan ett standardfat och ett festfat?",
|
|
43
|
+
answer: "Ett standard-handelsfat innehåller 50 liter, vilket ger cirka 200 portioner (250 ml var). Ett festfat (mini-fat) innehåller vanligtvis 5 liter — cirka 20 portioner. Att känna till dessa storlekar hjälper dig att omvandla kalkylatorns liter-resultat till antalet behållare du behöver köpa.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: "Varför behöver jag så mycket is om ölen redan är kall?",
|
|
47
|
+
answer: "För att kyling och underhåll är två separata processer. Att föra en burk från 25°C till 4°C förbrukar isens latenta smältvärme: cirka 334 kJ/kg. En gång kall fortsätter isen att arbeta för att kompensera för omgivningsvärmen. En sommardag på 35°C kan värmeavgiven till kylfällan smälta 1 kg is per liter dryck var 2–3:e timme. Det är därför förkyling av dryckerna innan festen halverar din totala isförbrukning.",
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: PartyKegLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: "Uppskatta antal gäster",
|
|
54
|
+
text: "Definiera hur många människor som kommer att deltaga. Vår kalkylator justerar mängderna baserat på statistiska konsumtionsgenomsnitt.",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "Definiera varaktighet och intensitet",
|
|
58
|
+
text: "Ange hur många timmar evenemanget kommer att pågå och 'flödet' på festen (chill, standard eller intensiv).",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Justera för omgivningstemperatur",
|
|
62
|
+
text: "Utomhustemperaturen är nyckeln för isberäkningen. Ju varmare det är, desto högre smältningshastighetsmå vi kompensera för.",
|
|
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: 'Hur Mycket Öl och Is Behöver Jag Till Min Fest?',
|
|
81
|
+
level: 2
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'paragraph',
|
|
85
|
+
html: 'Miljonfrågan när du organiserar något event: <strong>Hur många liter öl ska jag köpa?</strong> För lite är en katastrof, men för mycket är onödiga utgifter. Det här verktyget hjälper dig att beräkna exakt mängd alkohol och, viktigast av allt, <strong>hur många ispåsar</strong> du behöver för att hålla det kallt. Professionella caterare och eventplanerare använder statistiska konsumtionsmodeller — och nu kan du också, helt gratis.'
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: 'Konsumtionsformeln Per Person',
|
|
90
|
+
level: 2
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'För att uppskatta alkoholen som behövs använder professionella caterare en formel baserad på "Konsumtionstakt Per Timme". Det är inte en exakt vetenskap, men statistiken visar att på ett standardfest konsumeras cirka 1,5 enheter per timme per person. Faktorer som omgivningstemperatur, matkvalitet och festavens sociala energi förändrar alla detta basnummer.'
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'stats',
|
|
98
|
+
items: [
|
|
99
|
+
{ label: 'Chill-konsumtion', value: '1 dryck/timme', icon: 'mdi:tea-outline' },
|
|
100
|
+
{ label: 'Standardfest', value: '1,5 drycker/timme', icon: 'mdi:glass-mug-variant' },
|
|
101
|
+
{ label: 'Bröllop / Festival', value: '2,5+ drycker/timme', icon: 'mdi:fire' }
|
|
102
|
+
],
|
|
103
|
+
columns: 3
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'diagnostic',
|
|
107
|
+
title: 'Isens Fysik',
|
|
108
|
+
icon: 'mdi:snowflake-thermometer',
|
|
109
|
+
variant: 'warning',
|
|
110
|
+
badge: 'Termodynamik',
|
|
111
|
+
html: 'Att beräkna is är där de flesta värdinnor misslyckas. Is har två funktioner: Kylning (föra öl från 25°C till 4°C) och Underhål (bekämpa omgivningsvärmen). Vid temperaturer över 30°C fördubblas smälthastigheten. En full ispåse i direktsol kan försvinna på mindre än 20 minuter, vilket gör att dryckerna blir varma innan festen når sin höjdpunkt.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'tip',
|
|
115
|
+
title: 'Proffs Tips för att Spara Is',
|
|
116
|
+
html: 'Håll fat och burkar i skuggan innan du lägger till is. Om dryckerna är varma i solen försvinner de första 50% av din ispåse på 10 minuter genom att bara utbyta latent värme. Börja med förkyld dryck för att drastiskt minska hur mycket is du faktiskt behöver köpa.'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Referensdata för Logistik',
|
|
121
|
+
level: 2
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Ett standard 50L-fat ger cirka 200 portioner. En typisk ispåse väger 2 kg. Med dessa siffror kan du planera den transport och lagring som krävs för ditt event utan sista-minuten-överraskningar. Räkna med issmältning under transport — en 30-minuterstur sommartid kan kosta dig en hel påse innan festen börjar.'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'summary',
|
|
129
|
+
title: 'För Vem Är Det Här Verktyget?',
|
|
130
|
+
items: [
|
|
131
|
+
'Privata Festvärdinnor: Sluta gissa och köp självsäkert exakt vad du behöver till nästa fest.',
|
|
132
|
+
'Eventplanerare: Använd exakta konsumtionsmodeller för att citera kunder och planera barpersonal professionellt.',
|
|
133
|
+
'Lokalbehållare: Standardisera lagerberäkningar över återkommande event med olika gästantal.'
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'En ofta förbisedd variabel är <strong>gästernas bortfallstal</strong>. På de flesta fester går 10–15% av gästerna tidigt och 10% kanske inte dricker alls. Kalkylatorn använder ett försiktigt buffert så att du aldrig blir utan, men också inte sittar med ett enormt överskud. Att förstå dessa justeringar hjälper dig att finjustera uppskattningen för din specifika grupp och kontext. Avrunda alltid uppåt vid köp, eftersom öppnade fat normalt inte kan returneras. Ett litet överskud är alltid bättre än att vara utan dryck mitt i festen.'
|
|
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
|
+
};
|