@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.
- package/package.json +2 -1
- 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/seo_length.test.ts +3 -34
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/tool_validation.test.ts +4 -4
- package/src/tool/alcoholClearance/i18n/de.ts +205 -0
- 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/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/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/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/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,222 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
2
|
+
import type { CocktailBalancerUI, CocktailBalancerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'coquetel-equilibrado';
|
|
5
|
+
const title = 'Cocktail Balancer: A Lei do Ácido';
|
|
6
|
+
const description = 'Calcule o equilíbrio perfeito entre doce e ácido para seus coquetéis. Domine a proporção áurea da mixologia.';
|
|
7
|
+
|
|
8
|
+
const ui: CocktailBalancerUI = {
|
|
9
|
+
title: 'Cocktail Balancer',
|
|
10
|
+
presetsBtn: 'Receitas',
|
|
11
|
+
saveBtn: 'Salvar',
|
|
12
|
+
resetBtn: 'Redefinir',
|
|
13
|
+
emptyStateTitle: 'Seu Banco de Trabalho está Vazio',
|
|
14
|
+
emptyStateDescription: 'Adicione ingredientes para analisar o equilíbrio do seu coquetel em tempo real.',
|
|
15
|
+
addBtn: 'Adicionar Ingrediente',
|
|
16
|
+
addMoreBtn: 'Adicionar Outro Ingrediente',
|
|
17
|
+
flavorProfileTitle: 'Perfil de Sabor',
|
|
18
|
+
volLabel: 'Volume',
|
|
19
|
+
sugarLabel: 'Açúcar',
|
|
20
|
+
colorLabel: 'Cor',
|
|
21
|
+
sourLawTitle: 'Lei do Ácido',
|
|
22
|
+
acidDryLabel: 'Ácido (Seco)',
|
|
23
|
+
balanceLabel: 'Equilíbrio',
|
|
24
|
+
sweetLabel: 'Doce',
|
|
25
|
+
aiSuggestionTitle: 'Sugestão de IA',
|
|
26
|
+
addIngredientTitle: 'Adicionar Ingrediente',
|
|
27
|
+
searchPlaceholder: 'Pesquisar rum, limão, xarope...',
|
|
28
|
+
presetsTitle: 'Receitas e Predefinições',
|
|
29
|
+
savedSectionTitle: 'Meus Salvos',
|
|
30
|
+
classicsSectionTitle: 'Clássicos',
|
|
31
|
+
confirmDeleteTitle: 'Apagar tudo?',
|
|
32
|
+
confirmDeleteText: 'Isso removerá todos os ingredientes do seu banco de trabalho. Esta ação não pode ser desfeita.',
|
|
33
|
+
cancelBtn: 'Cancelar',
|
|
34
|
+
deleteBtn: 'Apagar',
|
|
35
|
+
verdictSpiritSeco: 'Destilado / Seco',
|
|
36
|
+
verdictSoloDulce: 'Apenas Doce (Old Fashioned)',
|
|
37
|
+
verdictMuyAcido: 'Muito Ácido / Muito Seco',
|
|
38
|
+
verdictAcido: 'Ácido / Azedo',
|
|
39
|
+
verdictEquilibrado: 'Equilibrado (Ácido)',
|
|
40
|
+
verdictDulce: 'Doce / Comercial',
|
|
41
|
+
verdictEmpalagoso: 'Muito Doce',
|
|
42
|
+
fixAddBitters: 'Falta Amargura',
|
|
43
|
+
fixAddSugar: 'Muito Ácido',
|
|
44
|
+
fixAddAcid: 'Muito Doce'
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const faqTitle = 'Perguntas Frequentes';
|
|
48
|
+
const bibliographyTitle = 'Bibliografia e Fontes';
|
|
49
|
+
|
|
50
|
+
const faq: CocktailBalancerLocaleContent['faq'] = [
|
|
51
|
+
{
|
|
52
|
+
question: "O que é a 'Lei do Ácido'?",
|
|
53
|
+
answer: "É a proporção áurea da mixologia que equilibra três elementos: a base forte (destilado), o ácido (cítricos) e o doce (xaropes). Uma receita clássica geralmente segue a proporção 2:1:1 (Forte:Ácido:Doce), embora isso varie dependendo da potência e densidade.",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
question: "Como a diluição afeta o equilíbrio do coquetel?",
|
|
57
|
+
answer: "O gelo não apenas resfria; adiciona água (diluição) que abre os aromas do destilado e suaviza os picos de acidez e doçura. Um coquetel equilibrado no shaker pode se tornar desequilibrado se deixado muito tempo com gelo no copo.",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
question: "Por que meus coquetéis caseiros não têm gosto como os de um bar?",
|
|
61
|
+
answer: "Geralmente é devido à falta de equilíbrio entre o açúcar e o pH dos cítricos. Os limões variam em acidez dependendo da estação. Nosso calculador ajuda você a ajustar a quantidade exata de xarope com base no volume de suco usado.",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
question: "O que são graus Brix e por que são importantes em coquetéis?",
|
|
65
|
+
answer: "Brix é uma escala que mede a quantidade de açúcar dissolvido em um líquido. Um xarope simples (1:1) fica em torno de 50 °Brix; um xarope rico (2:1) ultrapassa 66 °Brix. Quanto maior o Brix, mais corpo e doçura ele contribui por unidade de volume. Saber disso permite que você troque xaropes em uma receita sem quebrar o equilíbrio.",
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const howTo: CocktailBalancerLocaleContent['howTo'] = [
|
|
70
|
+
{
|
|
71
|
+
name: "Selecione a base alcoólica",
|
|
72
|
+
text: "Escolha o destilado principal (Gim, Rum, Whiskey) do nosso banco de dados para conhecer seu corpo e contribuição alcoólica.",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "Digite o agente ácido",
|
|
76
|
+
text: "Adicione o volume de suco de limão, lima ou toranja. A calculadora analisará o impacto do pH na mistura.",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "Ajuste o componente doce",
|
|
80
|
+
text: "Digite o tipo de xarope (simples, 2:1, agave) e observe o indicador de equilíbrio se mover em tempo real.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "Serviço perfeito",
|
|
84
|
+
text: "Revise o veredito final da ferramenta: a proporção ácida, o ABV estimado após diluição e as sugestões de correção. Sirva com gelo fresco e ajuste os cítricos ou xarope ao gosto.",
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
const bibliography: CocktailBalancerLocaleContent['bibliography'] = [
|
|
89
|
+
{
|
|
90
|
+
name: "Liquid Intelligence: The Art and Science of the Perfect Cocktail",
|
|
91
|
+
url: "https://www.indigo.ca/en-ca/liquid-intelligence-the-art-and-science-of-the-perfect-cocktail/9780393089035.html",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "Cocktails: The Science of Shaking",
|
|
95
|
+
url: "https://cookingissues.com/2009/07/22/cocktails-the-science-of-shaking/",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "Cocktail Balance - Difford's Guide",
|
|
99
|
+
url: "https://www.diffordsguide.com/encyclopedia/1066/cocktails/cocktail-balance",
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
|
|
103
|
+
const seo: CocktailBalancerLocaleContent['seo'] = [
|
|
104
|
+
{
|
|
105
|
+
type: 'title',
|
|
106
|
+
text: 'Engenharia Molecular e Equilíbrio de Líquidos',
|
|
107
|
+
level: 2
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Bem-vindo ao laboratório digital onde a intuição encontra a matemática. Esta ferramenta não é um simples livro de receitas; é um <strong>simulador físico-químico avançado</strong> projetado para desconstruir e analisar a estrutura molecular dos seus coquetéis em tempo real. Cada gota de cítrico, cada medida de destilado, cada grama de xarope interage de acordo com leis químicas imutáveis que determinam se sua bebida será uma obra-prima ou um fracasso decepcionante.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'stats',
|
|
115
|
+
items: [
|
|
116
|
+
{ label: 'Lima', value: '~6% Ácido', icon: 'mdi:fruit-citrus' },
|
|
117
|
+
{ label: 'Limão', value: '~6% Ácido', icon: 'mdi:fruit-citrus' },
|
|
118
|
+
{ label: 'Toranja', value: '~1-2% Ácido', icon: 'mdi:fruit-citrus' }
|
|
119
|
+
],
|
|
120
|
+
columns: 3
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'card',
|
|
124
|
+
title: 'A Ciência da Acidez',
|
|
125
|
+
icon: 'mdi:fruit-citrus',
|
|
126
|
+
html: 'A acidez não é apenas um sabor; é a espinha dorsal estrutural de qualquer coquetel equilibrado. Sem a acidez correta, uma bebida fica plana, unidimensional e esquecível. Nosso algoritmo distingue a acidez titulável de uma lima persa versus um limão Eureka, levando em conta variações sazonais do pH dos cítricos que podem deslocar sua receita por um ponto de equilíbrio inteiro no paladar.'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'card',
|
|
130
|
+
title: 'Controle de Brix (Doçura)',
|
|
131
|
+
icon: 'mdi:spoon-sugar',
|
|
132
|
+
html: 'O corpo e a textura do seu coquetel dependem inteiramente do açúcar dissolvido. Um xarope simples (1:1) se comporta muito diferente de um xarope rico (2:1), mel ou néctar de agave. Cada adoçante tem um grau Brix e viscosidade diferentes que afetam como a bebida reveste a língua. Nossa calculadora calcula os gramas exatos de açúcar dissolvido para prever a textura final da boca e a percepção de doçura.'
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'card',
|
|
136
|
+
title: 'Termodinâmica e Diluição',
|
|
137
|
+
icon: 'mdi:water-percent',
|
|
138
|
+
html: 'Um coquetel agitado dilui 25-40% dependendo da temperatura do gelo, técnica de agitação e duração. Essa adição de água não é um defeito; é um ingrediente essencial que abre aromas e suaviza a borda do álcool. Nossa calculadora estima o ABV final após diluição, para que você possa projetar bebidas com a potência e equilíbrio de sabor exatamente pretendidos.'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Além da Proporção Básica',
|
|
143
|
+
level: 2
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'paragraph',
|
|
147
|
+
html: 'Muitos bartenders aprendem a regra clássica 2:1:1 (2 partes destilado, 1 parte ácido, 1 parte doce) e a tratam como verdade universal. No entanto, <strong>a química é muito mais nuançada</strong>. Um limão da Sicília contém acidez diferente de uma lima do México. Um triple sec como Cointreau se comporta radicalmente diferente de um Curaçao azul. A mesma receita pode saborear perfeitamente equilibrada uma semana e brutalmente ácida a próxima, simplesmente por variação de fruta sazonal.'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'paragraph',
|
|
151
|
+
html: 'Este balanceador rompe essas barreiras simplistas. Ao inserir seus ingredientes específicos, você consulta um banco de dados vivo que ajusta dinamicamente vetores de acidez e doçura para oferecer um mapa sensorial preciso de sua criação. Pare de adivinhar e comece a projetar seus coquetéis com o mesmo rigor científico que os bartenders em estabelecimentos de classe mundial usam em cada serviço.'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'summary',
|
|
155
|
+
title: 'Para quem é esta ferramenta?',
|
|
156
|
+
items: [
|
|
157
|
+
'Bartenders Profissionais: Padronize receitas e crie menus assinados com consistência reproduzível.',
|
|
158
|
+
'Entusiastas Domésticos: Pare de adivinhar e comece a entender por que seus coquetéis têm sucesso ou falham.',
|
|
159
|
+
'Desenvolvedores de Bebidas: Prototipe rapidamente novos conceitos de sabor antes de execuções de produção caras.'
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'diagnostic',
|
|
164
|
+
title: 'A Zona Dourada',
|
|
165
|
+
icon: 'mdi:star',
|
|
166
|
+
variant: 'success',
|
|
167
|
+
badge: 'Objetivo',
|
|
168
|
+
html: 'Este é o objetivo final: um pH controlado onde o açúcar neutraliza a agressão do ácido sem mascarar os óleos essenciais e compostos aromáticos do destilado base. Este equilíbrio preciso é onde vivem os clássicos imortais — a Daiquiri, a Margarita, o Sidecar — bebidas que sobreviveram a décadas porque obedecem às leis fundamentais da química do sabor.'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
title: 'Dica de Especialista: Sempre Use Cítricos Frescos',
|
|
173
|
+
html: 'Sempre esprema os cítricos no último momento. O suco de limão e lima oxidam rapidamente, perdendo a acidez viva em 20-30 minutos após a extração. Um coquetel feito com suco verdadeiramente fresco sempre terá um brilho e vitalidade no paladar que nenhum produto engarrafado pode replicar. Use frutas em temperatura ambiente para maximizar o rendimento do suco.'
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
|
|
177
|
+
const schemas: CocktailBalancerLocaleContent['schemas'] = [
|
|
178
|
+
{
|
|
179
|
+
'@context': 'https://schema.org',
|
|
180
|
+
'@type': 'FAQPage',
|
|
181
|
+
mainEntity: faq.map((item) => ({
|
|
182
|
+
'@type': 'Question',
|
|
183
|
+
name: item.question,
|
|
184
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
185
|
+
})),
|
|
186
|
+
} as WithContext<FAQPage>,
|
|
187
|
+
{
|
|
188
|
+
'@context': 'https://schema.org',
|
|
189
|
+
'@type': 'HowTo',
|
|
190
|
+
name: title,
|
|
191
|
+
description: description,
|
|
192
|
+
step: howTo.map((step, i) => ({
|
|
193
|
+
'@type': 'HowToStep',
|
|
194
|
+
position: i + 1,
|
|
195
|
+
name: step.name,
|
|
196
|
+
text: step.text,
|
|
197
|
+
})),
|
|
198
|
+
} as WithContext<HowTo>,
|
|
199
|
+
{
|
|
200
|
+
'@context': 'https://schema.org',
|
|
201
|
+
'@type': 'SoftwareApplication',
|
|
202
|
+
name: title,
|
|
203
|
+
description: description,
|
|
204
|
+
applicationCategory: 'UtilityApplication',
|
|
205
|
+
operatingSystem: 'Web',
|
|
206
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
207
|
+
} as WithContext<SoftwareApplication>,
|
|
208
|
+
];
|
|
209
|
+
|
|
210
|
+
export const content: CocktailBalancerLocaleContent = {
|
|
211
|
+
slug,
|
|
212
|
+
title,
|
|
213
|
+
description,
|
|
214
|
+
ui,
|
|
215
|
+
seo,
|
|
216
|
+
faqTitle,
|
|
217
|
+
faq,
|
|
218
|
+
bibliographyTitle,
|
|
219
|
+
bibliography,
|
|
220
|
+
howTo,
|
|
221
|
+
schemas,
|
|
222
|
+
};
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
2
|
+
import type { CocktailBalancerUI, CocktailBalancerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'koktejl-balansirovka';
|
|
5
|
+
const title = 'Балансир Коктейлей: Закон Кислоты';
|
|
6
|
+
const description = 'Вычислите идеальный баланс между сладким и кислым для ваших коктейлей. Овладейте золотым сечением миксологии.';
|
|
7
|
+
|
|
8
|
+
const ui: CocktailBalancerUI = {
|
|
9
|
+
title: 'Балансир Коктейлей',
|
|
10
|
+
presetsBtn: 'Рецепты',
|
|
11
|
+
saveBtn: 'Сохранить',
|
|
12
|
+
resetBtn: 'Сброс',
|
|
13
|
+
emptyStateTitle: 'Ваш Рабочий Стол Пуст',
|
|
14
|
+
emptyStateDescription: 'Добавьте ингредиенты, чтобы анализировать баланс вашего коктейля в реальном времени.',
|
|
15
|
+
addBtn: 'Добавить Ингредиент',
|
|
16
|
+
addMoreBtn: 'Добавить Еще Один Ингредиент',
|
|
17
|
+
flavorProfileTitle: 'Профиль Вкуса',
|
|
18
|
+
volLabel: 'Объем',
|
|
19
|
+
sugarLabel: 'Сахар',
|
|
20
|
+
colorLabel: 'Цвет',
|
|
21
|
+
sourLawTitle: 'Закон Кислоты',
|
|
22
|
+
acidDryLabel: 'Кислота (Сухая)',
|
|
23
|
+
balanceLabel: 'Баланс',
|
|
24
|
+
sweetLabel: 'Сладкий',
|
|
25
|
+
aiSuggestionTitle: 'Рекомендация ИИ',
|
|
26
|
+
addIngredientTitle: 'Добавить Ингредиент',
|
|
27
|
+
searchPlaceholder: 'Поиск рома, лайма, сиропа...',
|
|
28
|
+
presetsTitle: 'Рецепты и Предустановки',
|
|
29
|
+
savedSectionTitle: 'Мои Сохраненные',
|
|
30
|
+
classicsSectionTitle: 'Классика',
|
|
31
|
+
confirmDeleteTitle: 'Удалить все?',
|
|
32
|
+
confirmDeleteText: 'Это удалит все ингредиенты с вашего рабочего стола. Это действие невозможно отменить.',
|
|
33
|
+
cancelBtn: 'Отмена',
|
|
34
|
+
deleteBtn: 'Удалить',
|
|
35
|
+
verdictSpiritSeco: 'Крепкие / Сухие',
|
|
36
|
+
verdictSoloDulce: 'Только Сладкий (Old Fashioned)',
|
|
37
|
+
verdictMuyAcido: 'Слишком Кислый / Очень Сухой',
|
|
38
|
+
verdictAcido: 'Кислый / Терпкий',
|
|
39
|
+
verdictEquilibrado: 'Сбалансированный (Кислый)',
|
|
40
|
+
verdictDulce: 'Сладкий / Коммерческий',
|
|
41
|
+
verdictEmpalagoso: 'Слишком Сладкий',
|
|
42
|
+
fixAddBitters: 'Не хватает Горечи',
|
|
43
|
+
fixAddSugar: 'Слишком Кислый',
|
|
44
|
+
fixAddAcid: 'Слишком Сладкий'
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const faqTitle = 'Часто Задаваемые Вопросы';
|
|
48
|
+
const bibliographyTitle = 'Библиография и Источники';
|
|
49
|
+
|
|
50
|
+
const faq: CocktailBalancerLocaleContent['faq'] = [
|
|
51
|
+
{
|
|
52
|
+
question: "Что такое 'Закон Кислоты'?",
|
|
53
|
+
answer: "Это золотое сечение миксологии, которое уравновешивает три элемента: крепкую основу (спирт), кислоту (цитрусовые) и сладость (сиропы). Классический рецепт обычно следует пропорции 2:1:1 (Крепкий:Кислый:Сладкий), хотя это варьируется в зависимости от крепости и плотности.",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
question: "Как разбавление влияет на баланс коктейля?",
|
|
57
|
+
answer: "Лед не только охлаждает; он добавляет воду (разбавление), которая раскрывает ароматы спирта и смягчает пики кислотности и сладости. Сбалансированный коктейль в шейкере может стать несбалансированным, если слишком долго остаётся со льдом в стакане.",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
question: "Почему мои домашние коктейли не имеют вкуса как в баре?",
|
|
61
|
+
answer: "Это обычно из-за недостатка баланса между сахаром и pH цитрусовых. Лимоны варьируются в кислотности в зависимости от сезона. Наш калькулятор помогает вам отрегулировать точное количество сиропа на основе объема использованного сока.",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
question: "Что такое градусы Брикса и почему они важны в коктейлях?",
|
|
65
|
+
answer: "Брикс — это шкала, которая измеряет количество растворённого сахара в жидкости. Простой сироп (1:1) находится около 50 °Brix; богатый сироп (2:1) превышает 66 °Brix. Чем выше Брикс, тем больше тела и сладости он вносит на единицу объема. Знание этого позволяет вам менять сиропы в рецепте без нарушения баланса.",
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const howTo: CocktailBalancerLocaleContent['howTo'] = [
|
|
70
|
+
{
|
|
71
|
+
name: "Выберите спиртовую основу",
|
|
72
|
+
text: "Выберите основной спирт (Джин, Ром, Виски) из нашей базы данных, чтобы узнать его плотность и содержание алкоголя.",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "Введите кислотный агент",
|
|
76
|
+
text: "Добавьте объем лимонного, лаймового или грейпфрутового сока. Калькулятор проанализирует влияние pH на смесь.",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "Отрегулируйте сладкий компонент",
|
|
80
|
+
text: "Введите тип сиропа (простой, 2:1, агава) и наблюдайте, как индикатор баланса движется в реальном времени.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "Идеальная подача",
|
|
84
|
+
text: "Проверьте окончательный вердикт инструмента: соотношение кислоты, предполагаемый ABV после разбавления и предложения по коррекции. Подавайте со свежим льдом и отрегулируйте цитрусовые или сироп по вкусу.",
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
const bibliography: CocktailBalancerLocaleContent['bibliography'] = [
|
|
89
|
+
{
|
|
90
|
+
name: "Liquid Intelligence: The Art and Science of the Perfect Cocktail",
|
|
91
|
+
url: "https://www.indigo.ca/en-ca/liquid-intelligence-the-art-and-science-of-the-perfect-cocktail/9780393089035.html",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "Cocktails: The Science of Shaking",
|
|
95
|
+
url: "https://cookingissues.com/2009/07/22/cocktails-the-science-of-shaking/",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "Cocktail Balance - Difford's Guide",
|
|
99
|
+
url: "https://www.diffordsguide.com/encyclopedia/1066/cocktails/cocktail-balance",
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
|
|
103
|
+
const seo: CocktailBalancerLocaleContent['seo'] = [
|
|
104
|
+
{
|
|
105
|
+
type: 'title',
|
|
106
|
+
text: 'Молекулярная Инженерия и Баланс Жидкостей',
|
|
107
|
+
level: 2
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Добро пожаловать в цифровую лабораторию, где интуиция встречается с математикой. Этот инструмент — не просто сборник рецептов; это <strong>передовой физико-химический симулятор</strong>, разработанный для декonstruktion и анализа молекулярной структуры ваших коктейлей в реальном времени. Каждая капля цитруса, каждая порция спирта, каждый грамм сиропа взаимодействует в соответствии с неизменяемыми законами химии, которые определяют, будет ли ваш напиток шедевром или разочаровывающей неудачей.'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'stats',
|
|
115
|
+
items: [
|
|
116
|
+
{ label: 'Лайм', value: '~6% Кислота', icon: 'mdi:fruit-citrus' },
|
|
117
|
+
{ label: 'Лимон', value: '~6% Кислота', icon: 'mdi:fruit-citrus' },
|
|
118
|
+
{ label: 'Грейпфрут', value: '~1-2% Кислота', icon: 'mdi:fruit-citrus' }
|
|
119
|
+
],
|
|
120
|
+
columns: 3
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'card',
|
|
124
|
+
title: 'Наука о Кислотности',
|
|
125
|
+
icon: 'mdi:fruit-citrus',
|
|
126
|
+
html: 'Кислотность — это не просто вкус; это структурный позвоночник любого сбалансированного коктейля. Без надлежащей кислотности напиток становится плоским, одномерным и забываемым. Наш алгоритм различает титруемую кислотность персидского лайма и лимона Eureka, учитывая сезонные колебания pH цитрусовых, которые могут сместить вашу рецепту на целый балансовый пункт во вкусовом восприятии.'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'card',
|
|
130
|
+
title: 'Контроль Брикса (Сладость)',
|
|
131
|
+
icon: 'mdi:spoon-sugar',
|
|
132
|
+
html: 'Плотность и текстура вашего коктейля полностью зависят от растворённого сахара. Простой сироп (1:1) ведёт себя совершенно иначе, чем богатый сироп (2:1), мёд или нектар агавы. Каждый подсластитель имеет различную степень Брикса и вязкость, которые влияют на то, как напиток обволакивает язык. Наш калькулятор вычисляет точное количество граммов растворённого сахара для прогнозирования окончательной текстуры во рту и восприятия сладости.'
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'card',
|
|
136
|
+
title: 'Термодинамика и Разбавление',
|
|
137
|
+
icon: 'mdi:water-percent',
|
|
138
|
+
html: 'Взбитый коктейль разбавляется на 25-40% в зависимости от температуры льда, техники встряхивания и продолжительности. Это добавление воды — не недостаток; это необходимый ингредиент, который раскрывает ароматы и смягчает спиртовой край. Наш калькулятор оценивает финальный ABV после разбавления, чтобы вы могли разрабатывать напитки с точно предусмотренной крепостью и вкусовым балансом.'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'За Пределами Базовой Пропорции',
|
|
143
|
+
level: 2
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'paragraph',
|
|
147
|
+
html: 'Многие бармены учат классическое правило 2:1:1 (2 части спирта, 1 часть кислоты, 1 часть сладости) и рассматривают его как универсальную истину. Однако <strong>химия намного более нюансирована</strong>. Сицилийский лимон содержит другую кислотность, чем мексиканский лайм. Triple sec типа Cointreau ведёт себя радикально иначе, чем Blue Curaçao. Один и тот же рецепт может казаться идеально сбалансированным одну неделю и жестоко кислым в следующую, просто из-за сезонных колебаний фруктов.'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'paragraph',
|
|
151
|
+
html: 'Этот балансир преодолевает такие упрощенные барьеры. Вводя ваши конкретные ингредиенты, вы обращаетесь к живой базе данных, которая динамически регулирует векторы кислотности и сладости, предлагая точную сенсорную карту вашего творения. Прекратите угадывать и начните разрабатывать коктейли с той же научной строгостью, которую барменов в учреждениях мирового класса используют на каждой смене.'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'summary',
|
|
155
|
+
title: 'Для кого этот инструмент?',
|
|
156
|
+
items: [
|
|
157
|
+
'Профессиональные бармены: Стандартизируйте рецепты и создавайте фирменные меню с воспроизводимой согласованностью.',
|
|
158
|
+
'Домашние энтузиасты: Прекратите угадывать и начните понимать, почему ваши коктейли удаются или терпят неудачу.',
|
|
159
|
+
'Разработчики напитков: Быстро создавайте прототипы новых концепций вкуса перед дорогостоящими производственными циклами.'
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'diagnostic',
|
|
164
|
+
title: 'Золотая Зона',
|
|
165
|
+
icon: 'mdi:star',
|
|
166
|
+
variant: 'success',
|
|
167
|
+
badge: 'Цель',
|
|
168
|
+
html: 'Это конечная цель: контролируемый pH, в котором сахар нейтрализует агрессию кислоты, не маскируя эфирные масла и ароматические соединения базового спирта. Этот точный баланс — место, где живут бессмертные классики — Дайкири, Маргарита, Сайдкар — напитки, которые пережили десятилетия, потому что они подчиняются фундаментальным законам химии вкуса.'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
title: 'Совет Эксперта: Всегда Используйте Свежие Цитрусовые',
|
|
173
|
+
html: 'Всегда выжимайте цитрусовые в последний момент. Лимонный и лаймовый сок быстро окисляются, теряя живую кислотность в течение 20-30 минут после выжима. Коктейль, приготовленный из действительно свежего сока, всегда будет иметь яркость и живость во вкусовом восприятии, которую не может воспроизвести никакой готовый продукт. Используйте фрукты комнатной температуры, чтобы максимизировать выход сока.'
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
|
|
177
|
+
const schemas: CocktailBalancerLocaleContent['schemas'] = [
|
|
178
|
+
{
|
|
179
|
+
'@context': 'https://schema.org',
|
|
180
|
+
'@type': 'FAQPage',
|
|
181
|
+
mainEntity: faq.map((item) => ({
|
|
182
|
+
'@type': 'Question',
|
|
183
|
+
name: item.question,
|
|
184
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
185
|
+
})),
|
|
186
|
+
} as WithContext<FAQPage>,
|
|
187
|
+
{
|
|
188
|
+
'@context': 'https://schema.org',
|
|
189
|
+
'@type': 'HowTo',
|
|
190
|
+
name: title,
|
|
191
|
+
description: description,
|
|
192
|
+
step: howTo.map((step, i) => ({
|
|
193
|
+
'@type': 'HowToStep',
|
|
194
|
+
position: i + 1,
|
|
195
|
+
name: step.name,
|
|
196
|
+
text: step.text,
|
|
197
|
+
})),
|
|
198
|
+
} as WithContext<HowTo>,
|
|
199
|
+
{
|
|
200
|
+
'@context': 'https://schema.org',
|
|
201
|
+
'@type': 'SoftwareApplication',
|
|
202
|
+
name: title,
|
|
203
|
+
description: description,
|
|
204
|
+
applicationCategory: 'UtilityApplication',
|
|
205
|
+
operatingSystem: 'Web',
|
|
206
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
207
|
+
} as WithContext<SoftwareApplication>,
|
|
208
|
+
];
|
|
209
|
+
|
|
210
|
+
export const content: CocktailBalancerLocaleContent = {
|
|
211
|
+
slug,
|
|
212
|
+
title,
|
|
213
|
+
description,
|
|
214
|
+
ui,
|
|
215
|
+
seo,
|
|
216
|
+
faqTitle,
|
|
217
|
+
faq,
|
|
218
|
+
bibliographyTitle,
|
|
219
|
+
bibliography,
|
|
220
|
+
howTo,
|
|
221
|
+
schemas,
|
|
222
|
+
};
|