@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 = 'kalkulator-piwa-lodu-imprezy';
5
+ const title = 'Kalkulator Piwa na Imprezę: Ilość na Osobę na Wesela i Urodziny';
6
+ const description = 'Darmowe narzędzie do obliczenia, ile piwa i lodu potrzebujesz na podstawie liczby gości, czasu trwania i temperatury. Idealne na wesela, urodziny i imprezy na świeżym powietrzu.';
7
+
8
+ const ui: PartyKegUI = {
9
+ calcStockTitle: 'Kalkulator Zapasów',
10
+ beerIceSub: 'Piwo & Lód do Imprez',
11
+ guestsLabel: 'Goście',
12
+ durationLabel: 'Czas Trwania',
13
+ hoursUnit: 'Godziny',
14
+ intensityLabel: 'Intensywność',
15
+ chillLabel: 'Chill',
16
+ standardLabel: 'Standard',
17
+ partyLabel: 'Party',
18
+ tempLabel: 'Temperatura',
19
+ estimatedVolLabel: 'Szacunkowa Objętość',
20
+ kegsLabel: 'Beczki',
21
+ iceRequiredLabel: 'Potrzebny Lód',
22
+ bagsLabel: 'Opakowania',
23
+ visualizationTitle: 'Wizualizacja Zapasów',
24
+ optimalMsg: 'Warunki Optymalne',
25
+ highMeltMsg: 'Wykryto Wysoką Szybkość Topienia',
26
+ highEfficiencyMsg: 'Zimno / Wysoka Efektywność'
27
+ };
28
+
29
+ const faqTitle = 'Часто Задаваемые Вопросы';
30
+ const bibliographyTitle = 'Bibliografia i Źródła';
31
+
32
+ const faq: PartyKegLocaleContent['faq'] = [
33
+ {
34
+ question: "Ile piwa pije jedna osoba w 4 godziny?",
35
+ answer: "Średnio oblicz 5 piw na osobę na imprezę 4-godzinną. Zakłada to 2 napoje w pierwszą godzinę i 1 dla każdej pozostałej godziny.",
36
+ },
37
+ {
38
+ question: "Ile lodu potrzebuję na 100 piw?",
39
+ answer: "Będziesz potrzebować około 15–20 kilogramów lodu (7–10 opakowań). Praktyczną regułą jest 0,75 kg lodu na litr napoju w normalnych warunkach. Latem lub na świeżym powietrzu powyżej 25°C podniesź do 1 kg na litr: ciepło otoczenia przyspiesza topienie i skończy ci się lód znacznie szybciej niż oczekiwano.",
40
+ },
41
+ {
42
+ question: "Jaka jest różnica między zwykłą beczką a beczką imprezową?",
43
+ answer: "Standardowa beczka handlowa zawiera 50 litrów, co daje około 200 porcji (po 250 ml każda). Beczka imprezowa (mini-beczka) zwykle zawiera 5 litrów — około 20 porcji. Znając te rozmiary, możesz przeliczyć wyjście w litrach kalkulatora na liczbę pojemników do zakupienia.",
44
+ },
45
+ {
46
+ question: "Dlaczego potrzebuję tyle lodu, jeśli piwo jest już zimne?",
47
+ answer: "Ponieważ chłodzenie i utrzymanie to dwa oddzielne procesy. Przeniesienie puszki z 25°C do 4°C zużywa utajone ciepło topnienia lodu: około 334 kJ/kg. Gdy już jest zimne, lód nadal pracuje, aby zniweczyć ciepło otoczenia. W letni dzień o temperaturze 35°C przepływ ciepła do chłodziarki może roztopić 1 kg lodu na litr napoju co 2–3 godziny. Dlatego wychłodzenie napojów przed imprezą zmniejsza o połowę całkowite zużycie lodu.",
48
+ },
49
+ ];
50
+
51
+ const howTo: PartyKegLocaleContent['howTo'] = [
52
+ {
53
+ name: "Oszacuj liczbę gości",
54
+ text: "Określ, ile osób będzie uczestniczyć. Nasz kalkulator dostosowuje ilości na podstawie statystycznych średnich konsumpcji.",
55
+ },
56
+ {
57
+ name: "Określ czas trwania i intensywność",
58
+ text: "Wskaż, ile godzin będzie trwać impreza i jaki będzie 'rytm' imprezy (chill, standard lub intensywny).",
59
+ },
60
+ {
61
+ name: "Dostosuj się do temperatury otoczenia",
62
+ text: "Temperatura zewnętrzna jest kluczowa dla obliczenia lodu. Im cieplej, tym wyższa szybkość topienia, którą musimy kompensować.",
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: 'Ile Piwa i Lodu Potrzeguję na Moją Imprezę?',
81
+ level: 2
82
+ },
83
+ {
84
+ type: 'paragraph',
85
+ html: 'Pytanie o milion dolarów przy organizowaniu dowolnej imprezy: <strong>Ile litrów piwa powinienem kupić?</strong> Brak to katastrofa, ale zakupienie za dużo to niepotrzebny wydatek. To narzędzie pomaga obliczyć dokładną ilość alkoholu i, co najważniejsze, <strong>ile opakowań lodu</strong> potrzebujesz, aby wszystko było zimne. Profesjonalni caterzy i organizatorzy imprez korzystają z modeli konsumpcji statystycznej — a teraz ty też możesz, za darmo.'
86
+ },
87
+ {
88
+ type: 'title',
89
+ text: 'Wzór Konsumpcji na Osobę',
90
+ level: 2
91
+ },
92
+ {
93
+ type: 'paragraph',
94
+ html: 'Aby oszacować potrzebny alkohol, profesjonalni caterzy wykorzystują formułę opartą na "Szybkości Konsumpcji Godzinowej". To nie jest nauka ścisła, ale statystyki pokazują, że na standardowej imprezie około 1,5 jednostki są konsumowane na godzinę na osobę. Czynniki takie jak temperatura otoczenia, dostępność jedzenia i energia społeczna imprezy zmieniają tę liczbę bazową.'
95
+ },
96
+ {
97
+ type: 'stats',
98
+ items: [
99
+ { label: 'Konsumpcja Chill', value: '1 napój/godzinę', icon: 'mdi:tea-outline' },
100
+ { label: 'Standardowa Impreza', value: '1,5 napojów/godzinę', icon: 'mdi:glass-mug-variant' },
101
+ { label: 'Wesele / Festiwal', value: '2,5+ napojów/godzinę', icon: 'mdi:fire' }
102
+ ],
103
+ columns: 3
104
+ },
105
+ {
106
+ type: 'diagnostic',
107
+ title: 'Fizyka Lodu',
108
+ icon: 'mdi:snowflake-thermometer',
109
+ variant: 'warning',
110
+ badge: 'Termodynamika',
111
+ html: 'Obliczanie lodu to miejsce, gdzie większość gospodarzy się nie sprawdza. Lód pełni dwie funkcje: Chłodzenie (przeniesienie piwa z 25°C do 4°C) i Utrzymanie (walka z ciepłem otoczenia). W temperaturach powyżej 30°C szybkość topienia podwaja się. Całe opakowanie lodu w bezpośrednim słońcu może zniknąć w mniej niż 20 minut, pozostawiając napoje ciepłe przed szczytem imprezy.'
112
+ },
113
+ {
114
+ type: 'tip',
115
+ title: 'Porada Profesjonalna, Aby Zaoszczędzić Lód',
116
+ html: 'Trzymaj beczki i puszki w cieniu przed dodaniem lodu. Jeśli napoje są ciepłe na słońcu, pierwsze 50% twojego opakowania lodu zniknie w 10 minut poprzez wymianę utajonego ciepła. Zacznij od napojów wychłodzonych z wyprzedzeniem, aby dramatycznie zmniejszyć ilość lodu, którą faktycznie musisz kupić.'
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Dane Referencyjne dla Logistyki',
121
+ level: 2
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Standardowa beczka 50L daje około 200 porcji. Typowe opakowanie lodu waży 2 kg. Znając te liczby, możesz zaplanować transport i przechowywanie potrzebne dla twojej imprezy bez ostatecznych niespodzianek. Weź pod uwagę topnienie lodu podczas transportu — 30-minutowa jazda latem może cię kosztować całe opakowanie przed rozpoczęciem imprezy.'
126
+ },
127
+ {
128
+ type: 'summary',
129
+ title: 'Do Kogo Jest to Narzędzie?',
130
+ items: [
131
+ 'Gospodarze Prywatnych Imprez: Przestań zgadywać i pewnie kup dokładnie to, czego potrzebujesz na następne obchody.',
132
+ 'Organizatorzy Imprez: Użyj dokładnych modeli konsumpcji do wyceny klientów i profesjonalnego planowania logistyki baru.',
133
+ 'Kierownicy Pomieszczeń: Standaryzuj obliczenia zapasów na powtarzające się imprezy z różną liczbą gości.'
134
+ ]
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: 'Często pomijaną zmienną jest <strong>wskaźnik rezygnacji gości</strong>. Na większości imprez 10–15% gości wychodzi wcześnie, a 10% może w ogóle nic nie pić. Kalkulator stosuje konserwatywny bufor, abyś nigdy nie był w stanie niedostatecznym, ale też nie miał ogromnej nadwyżki. Zrozumienie tych dostosowań pomoże ci uszczegółowić oszacowanie dla twojej konkretnej grupy i kontekstu. Zawsze zaokrąglaj w górę podczas zakupu, ponieważ zwrot otwartych beczek zwykle nie jest możliwy. Mała nadwyżka jest zawsze lepsza niż zabrakło piwa w środku imprezy.'
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 = '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-zapasa-pivy';
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
+ };