@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,222 @@
1
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
+ import type { CocktailBalancerUI, CocktailBalancerLocaleContent } from '../index';
3
+
4
+ const slug = 'koktail-seimbang';
5
+ const title = 'Cocktail Balancer: Hukum Asam';
6
+ const description = 'Hitung keseimbangan sempurna antara manis dan asam untuk koktail Anda. Kuasai rasio emas mixologi.';
7
+
8
+ const ui: CocktailBalancerUI = {
9
+ title: 'Cocktail Balancer',
10
+ presetsBtn: 'Resep',
11
+ saveBtn: 'Simpan',
12
+ resetBtn: 'Setel Ulang',
13
+ emptyStateTitle: 'Meja Kerja Anda Kosong',
14
+ emptyStateDescription: 'Tambahkan bahan untuk menganalisis keseimbangan koktail Anda secara real-time.',
15
+ addBtn: 'Tambah Bahan',
16
+ addMoreBtn: 'Tambah Bahan Lagi',
17
+ flavorProfileTitle: 'Profil Rasa',
18
+ volLabel: 'Volume',
19
+ sugarLabel: 'Gula',
20
+ colorLabel: 'Warna',
21
+ sourLawTitle: 'Hukum Asam',
22
+ acidDryLabel: 'Asam (Kering)',
23
+ balanceLabel: 'Keseimbangan',
24
+ sweetLabel: 'Manis',
25
+ aiSuggestionTitle: 'Saran AI',
26
+ addIngredientTitle: 'Tambah Bahan',
27
+ searchPlaceholder: 'Cari rum, jeruk nipis, sirup...',
28
+ presetsTitle: 'Resep & Preset',
29
+ savedSectionTitle: 'Tersimpan Saya',
30
+ classicsSectionTitle: 'Klasik',
31
+ confirmDeleteTitle: 'Hapus semuanya?',
32
+ confirmDeleteText: 'Ini akan menghapus semua bahan dari meja kerja Anda. Tindakan ini tidak dapat dibatalkan.',
33
+ cancelBtn: 'Batal',
34
+ deleteBtn: 'Hapus',
35
+ verdictSpiritSeco: 'Beralkohol / Kering',
36
+ verdictSoloDulce: 'Hanya Manis (Old Fashioned)',
37
+ verdictMuyAcido: 'Terlalu Asam / Sangat Kering',
38
+ verdictAcido: 'Asam / Tart',
39
+ verdictEquilibrado: 'Seimbang (Asam)',
40
+ verdictDulce: 'Manis / Komersial',
41
+ verdictEmpalagoso: 'Terlalu Manis',
42
+ fixAddBitters: 'Rasa Pahit Kurang',
43
+ fixAddSugar: 'Terlalu Asam',
44
+ fixAddAcid: 'Terlalu Manis'
45
+ };
46
+
47
+ const faqTitle = 'Pertanyaan yang Sering Diajukan';
48
+ const bibliographyTitle = 'Bibliografi & Sumber';
49
+
50
+ const faq: CocktailBalancerLocaleContent['faq'] = [
51
+ {
52
+ question: "Apa itu 'Hukum Asam'?",
53
+ answer: "Ini adalah rasio emas mixologi yang menyeimbangkan tiga elemen: basis kuat (alkohol), asam (jeruk), dan manis (sirup). Resep klasik biasanya mengikuti rasio 2:1:1 (Kuat:Asam:Manis), meskipun ini bervariasi tergantung kekuatan dan kepadatan.",
54
+ },
55
+ {
56
+ question: "Bagaimana pengenceran memengaruhi keseimbangan koktail?",
57
+ answer: "Es tidak hanya mendinginkan; ia menambahkan air (pengenceran) yang membuka aroma dari alkohol dan melembutkan puncak asam dan manis. Koktail yang seimbang di shaker dapat menjadi tidak seimbang jika dibiarkan terlalu lama dengan es di gelas.",
58
+ },
59
+ {
60
+ question: "Mengapa koktail buatan saya tidak terasa seperti yang di bar?",
61
+ answer: "Biasanya karena kurangnya keseimbangan antara gula dan pH dari jeruk. Lemon bervariasi dalam asam tergantung musim. Kalkulator kami membantu Anda menyesuaikan jumlah pasti sirup berdasarkan volume jus yang digunakan.",
62
+ },
63
+ {
64
+ question: "Apa itu derajat Brix dan mengapa penting untuk koktail?",
65
+ answer: "Brix adalah skala yang mengukur jumlah gula terlarut dalam cairan. Sirup sederhana (1:1) berada sekitar 50 °Brix; Sirup Kaya (2:1) melebihi 66 °Brix. Semakin tinggi Brix, semakin banyak badan dan manis yang disumbangkannya per unit volume. Mengetahui ini memungkinkan Anda menukar sirup dalam resep tanpa merusak keseimbangan.",
66
+ },
67
+ ];
68
+
69
+ const howTo: CocktailBalancerLocaleContent['howTo'] = [
70
+ {
71
+ name: "Pilih basis alkohol",
72
+ text: "Pilih alkohol utama (Gin, Rum, Whiskey) dari basis data kami untuk mengetahui badan dan kontribusi alkoholnya.",
73
+ },
74
+ {
75
+ name: "Masukkan agen asam",
76
+ text: "Tambahkan volume jus lemon, jeruk nipis, atau grapefruit. Kalkulator akan menganalisis dampak pH pada campuran.",
77
+ },
78
+ {
79
+ name: "Sesuaikan komponen manis",
80
+ text: "Masukkan jenis sirup (sederhana, 2:1, agave) dan tonton indikator keseimbangan bergerak secara real-time.",
81
+ },
82
+ {
83
+ name: "Penyajian sempurna",
84
+ text: "Tinjau putusan akhir alat: rasio asam, ABV perkiraan setelah pengenceran, dan saran koreksi. Sajikan dengan es segar dan sesuaikan jeruk atau sirup sesuai selera.",
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: 'Teknik Molekuler & Keseimbangan Cairan',
107
+ level: 2
108
+ },
109
+ {
110
+ type: 'paragraph',
111
+ html: 'Selamat datang di laboratorium digital di mana intuisi bertemu matematika. Alat ini bukan sekadar buku resep sederhana; ini adalah <strong>simulator fisiko-kimia canggih</strong> yang dirancang untuk mengurai dan menganalisis struktur molekuler koktail Anda secara real-time. Setiap tetes jeruk, setiap ukuran alkohol, setiap gram sirup berinteraksi menurut hukum kimia yang tidak dapat diubah yang menentukan apakah minuman Anda akan menjadi mahakarya atau kegagalan yang mengecewakan.'
112
+ },
113
+ {
114
+ type: 'stats',
115
+ items: [
116
+ { label: 'Jeruk Nipis', value: '~6% Asam', icon: 'mdi:fruit-citrus' },
117
+ { label: 'Lemon', value: '~6% Asam', icon: 'mdi:fruit-citrus' },
118
+ { label: 'Grapefruit', value: '~1-2% Asam', icon: 'mdi:fruit-citrus' }
119
+ ],
120
+ columns: 3
121
+ },
122
+ {
123
+ type: 'card',
124
+ title: 'Ilmu Pengetahuan Asam',
125
+ icon: 'mdi:fruit-citrus',
126
+ html: 'Asam bukan hanya rasa; ini adalah tulang punggung struktural dari setiap koktail yang seimbang. Tanpa asam yang tepat, minuman menjadi datar, satu dimensi, dan mudah dilupakan. Algoritma kami membedakan asam titrat dari jeruk nipis Persia versus lemon Eureka, memperhitungkan variasi pH jeruk musiman yang dapat menggeser resep Anda satu titik keseimbangan penuh di langit-langit mulut.'
127
+ },
128
+ {
129
+ type: 'card',
130
+ title: 'Kontrol Brix (Manis)',
131
+ icon: 'mdi:spoon-sugar',
132
+ html: 'Badan dan tekstur koktail Anda sepenuhnya tergantung pada gula terlarut. Sirup Sederhana (1:1) berperilaku sangat berbeda dari Sirup Kaya (2:1), madu, atau nektar agave. Setiap pemanis memiliki derajat Brix dan viskositas yang berbeda yang memengaruhi cara minuman melapisi lidah. Kalkulator kami menghitung gram persis gula terlarut untuk memprediksi tekstur mulut akhir dan persepsi manis.'
133
+ },
134
+ {
135
+ type: 'card',
136
+ title: 'Termodinamika dan Pengenceran',
137
+ icon: 'mdi:water-percent',
138
+ html: 'Koktail yang dikocok encer 25-40% tergantung pada suhu es, teknik pengocok, dan durasi. Penambahan air ini bukan cacat; itu adalah bahan penting yang membuka aroma dan melunakkan tepi alkohol. Kalkulator kami memperkirakan ABV Akhir setelah pengenceran, sehingga Anda dapat mendesain minuman dengan kekuatan dan keseimbangan rasa yang tepat.'
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Melampaui Rasio Dasar',
143
+ level: 2
144
+ },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'Banyak bartender mempelajari aturan klasik 2:1:1 (2 bagian alkohol, 1 bagian asam, 1 bagian manis) dan memperlakukannya sebagai kebenaran universal. Namun, <strong>kimia jauh lebih bernuansa</strong>. Lemon dari Sisilia mengandung asam berbeda dari jeruk nipis dari Meksiko. Triple sec seperti Cointreau berperilaku secara radikal berbeda dari Curaçao biru. Resep yang sama dapat terasa sempurna seimbang satu minggu dan brutal asam berikutnya, hanya karena variasi buah musiman.'
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Penyeimbang ini melampaui hambatan sederhana itu. Dengan memasukkan bahan spesifik Anda, Anda berkonsultasi dengan database hidup yang secara dinamis menyesuaikan vektor asam dan manis untuk menawarkan peta indrawi yang tepat dari kreasi Anda. Berhenti menebak dan mulai merekayasa koktail Anda dengan ketelitian ilmiah yang sama yang digunakan bartender di tempat-tempat kelas dunia setiap layanan.'
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: 'Untuk siapa alat ini?',
156
+ items: [
157
+ 'Bartender Profesional: Standardisasi resep dan buat menu tanda tangan dengan konsistensi yang dapat direproduksi.',
158
+ 'Penggemar Rumah: Berhenti menebak dan mulai memahami mengapa koktail Anda berhasil atau gagal.',
159
+ 'Pengembang Minuman: Prototipe dengan cepat konsep rasa baru sebelum jalankan produksi yang mahal.'
160
+ ]
161
+ },
162
+ {
163
+ type: 'diagnostic',
164
+ title: 'Zona Emas',
165
+ icon: 'mdi:star',
166
+ variant: 'success',
167
+ badge: 'Tujuan',
168
+ html: 'Ini adalah tujuan akhir: pH yang terkontrol di mana gula menetralkan agresi asam tanpa menutupi minyak esensial dan senyawa aromatik dari alkohol dasar. Keseimbangan yang tepat ini adalah tempat di mana klasik abadi tinggal — Daiquiri, Margarita, Sidecar — minuman yang telah bertahan beberapa dekade karena mematuhi hukum fundamental kimia rasa.'
169
+ },
170
+ {
171
+ type: 'tip',
172
+ title: 'Tips Ahli: Selalu Gunakan Jeruk Segar',
173
+ html: 'Selalu peras jeruk pada saat terakhir. Jus lemon dan jeruk nipis teroksidasi dengan cepat, kehilangan asam hidup dalam 20-30 menit setelah diperas. Koktail yang dibuat dengan jus yang benar-benar segar akan selalu memiliki kecerahan dan vitalitas di langit-langit mulut yang tidak dapat direplikasi produk botol apa pun. Gunakan buah pada suhu kamar untuk memaksimalkan hasil jus.'
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 = 'cocktail-equilibrato';
5
+ const title = 'Cocktail Balancer: La Legge dell\'Acido';
6
+ const description = 'Calcola il perfetto equilibrio tra dolce e acido per i tuoi cocktail. Padroneggia il rapporto aureo della mixologia.';
7
+
8
+ const ui: CocktailBalancerUI = {
9
+ title: 'Cocktail Balancer',
10
+ presetsBtn: 'Ricette',
11
+ saveBtn: 'Salva',
12
+ resetBtn: 'Ripristina',
13
+ emptyStateTitle: 'Il Tuo Banco di Lavoro è Vuoto',
14
+ emptyStateDescription: 'Aggiungi ingredienti per analizzare l\'equilibrio del tuo cocktail in tempo reale.',
15
+ addBtn: 'Aggiungi Ingrediente',
16
+ addMoreBtn: 'Aggiungi un Altro Ingrediente',
17
+ flavorProfileTitle: 'Profilo Gustativo',
18
+ volLabel: 'Volume',
19
+ sugarLabel: 'Zucchero',
20
+ colorLabel: 'Colore',
21
+ sourLawTitle: 'Legge dell\'Acido',
22
+ acidDryLabel: 'Acido (Secco)',
23
+ balanceLabel: 'Equilibrio',
24
+ sweetLabel: 'Dolce',
25
+ aiSuggestionTitle: 'Suggerimento IA',
26
+ addIngredientTitle: 'Aggiungi Ingrediente',
27
+ searchPlaceholder: 'Cerca rum, lime, sciroppo...',
28
+ presetsTitle: 'Ricette e Preset',
29
+ savedSectionTitle: 'I Miei Salvati',
30
+ classicsSectionTitle: 'Classici',
31
+ confirmDeleteTitle: 'Eliminare tutto?',
32
+ confirmDeleteText: 'Questo rimuoverà tutti gli ingredienti dal tuo banco di lavoro. Questa azione non può essere annullata.',
33
+ cancelBtn: 'Annulla',
34
+ deleteBtn: 'Elimina',
35
+ verdictSpiritSeco: 'Spiritoso / Secco',
36
+ verdictSoloDulce: 'Solo Dolce (Old Fashioned)',
37
+ verdictMuyAcido: 'Troppo Acido / Osso Secco',
38
+ verdictAcido: 'Acido / Agro',
39
+ verdictEquilibrado: 'Equilibrato (Acido)',
40
+ verdictDulce: 'Dolce / Commerciale',
41
+ verdictEmpalagoso: 'Troppo Dolce',
42
+ fixAddBitters: 'Manca l\'Amaro',
43
+ fixAddSugar: 'Troppo Acido',
44
+ fixAddAcid: 'Troppo Dolce'
45
+ };
46
+
47
+ const faqTitle = 'Domande Frequenti';
48
+ const bibliographyTitle = 'Bibliografia e Fonti';
49
+
50
+ const faq: CocktailBalancerLocaleContent['faq'] = [
51
+ {
52
+ question: "Cos'è la 'Legge dell'Acido'?",
53
+ answer: "È il rapporto aureo della mixologia che equilibra tre elementi: la base forte (spirito), l'acido (agrumi) e il dolce (sciroppi). Una ricetta classica di solito segue il rapporto 2:1:1 (Forte:Acido:Dolce), sebbene questo vari a seconda della forza e della densità.",
54
+ },
55
+ {
56
+ question: "Come la diluizione influisce l'equilibrio del cocktail?",
57
+ answer: "Il ghiaccio non solo raffredda; aggiunge acqua (diluizione) che apre gli aromi dello spirito e ammorbidisce i picchi di acidità e dolcezza. Un cocktail equilibrato nello shaker può diventare squilibrato se lasciato troppo a lungo con ghiaccio nel bicchiere.",
58
+ },
59
+ {
60
+ question: "Perché i miei cocktail fatti in casa non sanno come quelli al bar?",
61
+ answer: "Di solito è dovuto alla mancanza di equilibrio tra zucchero e il pH degli agrumi. I limoni variano di acidità a seconda della stagione. Il nostro calcolatore ti aiuta ad adattare la quantità esatta di sciroppo in base al volume di succo utilizzato.",
62
+ },
63
+ {
64
+ question: "Cosa sono i gradi Brix e perché sono importanti nei cocktail?",
65
+ answer: "Brix è una scala che misura la quantità di zucchero disciolto in un liquido. Uno sciroppo semplice (1:1) si attesta intorno a 50 °Brix; uno sciroppo ricco (2:1) supera 66 °Brix. Più alto è il Brix, più corpo e dolcezza apporta per unità di volume. Sapere questo ti consente di scambiare gli sciroppi in una ricetta senza rompere l'equilibrio.",
66
+ },
67
+ ];
68
+
69
+ const howTo: CocktailBalancerLocaleContent['howTo'] = [
70
+ {
71
+ name: "Seleziona la base alcolica",
72
+ text: "Scegli lo spirito principale (Gin, Rum, Whiskey) dal nostro database per conoscerne il corpo e il contributo alcolico.",
73
+ },
74
+ {
75
+ name: "Inserisci l'agente acido",
76
+ text: "Aggiungi il volume di succo di limone, lime o pompelmo. Il calcolatore analizzerà l'impatto del pH sulla miscela.",
77
+ },
78
+ {
79
+ name: "Regola il componente dolce",
80
+ text: "Inserisci il tipo di sciroppo (semplice, 2:1, agave) e osserva l'indicatore di equilibrio muoversi in tempo reale.",
81
+ },
82
+ {
83
+ name: "Servizio perfetto",
84
+ text: "Esamina il verdetto finale dello strumento: il rapporto acido, l'ABV stimato dopo diluizione e i suggerimenti di correzione. Servi con ghiaccio fresco e regola gli agrumi o lo sciroppo secondo il gusto.",
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: 'Ingegneria Molecolare e Equilibrio dei Liquidi',
107
+ level: 2
108
+ },
109
+ {
110
+ type: 'paragraph',
111
+ html: 'Benvenuto nel laboratorio digitale dove l\'intuizione incontra la matematica. Questo strumento non è un semplice libro di ricette; è un <strong>simulatore fisico-chimico avanzato</strong> progettato per decostruire e analizzare la struttura molecolare dei tuoi cocktail in tempo reale. Ogni goccia di agrume, ogni misura di spirito, ogni grammo di sciroppo interagisce secondo leggi chimiche immutabili che determinano se la tua bevanda sarà un capolavoro o un fallimento deludente.'
112
+ },
113
+ {
114
+ type: 'stats',
115
+ items: [
116
+ { label: 'Lime', value: '~6% Acido', icon: 'mdi:fruit-citrus' },
117
+ { label: 'Limone', value: '~6% Acido', icon: 'mdi:fruit-citrus' },
118
+ { label: 'Pompelmo', value: '~1-2% Acido', icon: 'mdi:fruit-citrus' }
119
+ ],
120
+ columns: 3
121
+ },
122
+ {
123
+ type: 'card',
124
+ title: 'La Scienza dell\'Acidità',
125
+ icon: 'mdi:fruit-citrus',
126
+ html: 'L\'acidità non è solo un gusto; è la spina dorsale strutturale di qualsiasi cocktail equilibrato. Senza la giusta acidità, una bevanda diventa piatta, unidimensionale e dimenticabile. Il nostro algoritmo distingue l\'acidità titolabile di una lime persiana rispetto a un limone Eureka, tenendo conto delle variazioni stagionali del pH degli agrumi che possono spostare la tua ricetta di un intero punto di equilibrio al palato.'
127
+ },
128
+ {
129
+ type: 'card',
130
+ title: 'Controllo Brix (Dolcezza)',
131
+ icon: 'mdi:spoon-sugar',
132
+ html: 'Il corpo e la texture del tuo cocktail dipendono interamente dallo zucchero disciolto. Uno sciroppo semplice (1:1) si comporta molto diversamente da uno sciroppo ricco (2:1), miele o nettare d\'agave. Ogni dolcificante ha un grado Brix e una viscosità diversi che influenzano il modo in cui la bevanda riveste la lingua. Il nostro calcolatore calcola i grammi esatti di zucchero disciolto per prevedere la texture finale della bocca e la percezione della dolcezza.'
133
+ },
134
+ {
135
+ type: 'card',
136
+ title: 'Termodinamica e Diluizione',
137
+ icon: 'mdi:water-percent',
138
+ html: 'Un cocktail agitato si diluisce dal 25-40% a seconda della temperatura del ghiaccio, della tecnica di agitazione e della durata. Questa aggiunta d\'acqua non è un difetto; è un ingrediente essenziale che apre gli aromi e ammorbidisce il bordo dell\'alcol. Il nostro calcolatore stima l\'ABV finale dopo la diluizione, così puoi progettare bevande con la forza e l\'equilibrio di sapore esattamente intesi.'
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Al di Là del Rapporto di Base',
143
+ level: 2
144
+ },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'Molti baristi imparano la regola classica 2:1:1 (2 parti spirito, 1 parte acido, 1 parte dolce) e la trattano come verità universale. Tuttavia, <strong>la chimica è molto più sfumata</strong>. Un limone dalla Sicilia contiene un\'acidità diversa da una lime dal Messico. Un triple sec come Cointreau si comporta radicalmente diverso da un Blue Curaçao. La stessa ricetta può assaggiare perfettamente equilibrata una settimana e brutalmente acida la prossima, semplicemente a causa della variazione di frutta stagionale.'
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Questo bilanciatore supera quelle barriere semplicistiche. Inserendo i tuoi ingredienti specifici, consulti un database vivente che regola dinamicamente i vettori di acidità e dolcezza per offrire una mappa sensoriale precisa della tua creazione. Smetti di indovinare e inizia a progettare i tuoi cocktail con lo stesso rigore scientifico che i baristi dei migliori stabilimenti utilizzano in ogni servizio.'
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: 'Per chi è questo strumento?',
156
+ items: [
157
+ 'Baristi Professionisti: Standardizza le ricette e crea menu signature con consistenza riproducibile.',
158
+ 'Appassionati Casalinghi: Smetti di indovinare e inizia a capire perché i tuoi cocktail hanno successo o falliscono.',
159
+ 'Sviluppatori di Bevande: Prototipa rapidamente nuovi concetti di sapore prima di costose esecuzioni di produzione.'
160
+ ]
161
+ },
162
+ {
163
+ type: 'diagnostic',
164
+ title: 'La Zona d\'Oro',
165
+ icon: 'mdi:star',
166
+ variant: 'success',
167
+ badge: 'Obiettivo',
168
+ html: 'Questo è l\'obiettivo finale: un pH controllato in cui lo zucchero neutralizza l\'aggressione dell\'acido senza mascherare gli oli essenziali e i composti aromatici dello spirito di base. Questo equilibrio preciso è dove vivono i classici immortali — il Daiquiri, la Margarita, il Sidecar — bevande che hanno resistito ai decenni perché obbediscono alle leggi fondamentali della chimica del sapore.'
169
+ },
170
+ {
171
+ type: 'tip',
172
+ title: 'Consiglio da Esperto: Usa Sempre Agrumi Freschi',
173
+ html: 'Spremi sempre gli agrumi all\'ultimo momento. Il succo di limone e lime si ossida rapidamente, perdendo l\'acidità viva entro 20-30 minuti dalla spremitura. Un cocktail preparato con succo veramente fresco avrà sempre una luminosità e una vitalità al palato che nessun prodotto in bottiglia può replicare. Usa frutta a temperatura ambiente per massimizzare la resa del succo.'
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 = 'cocktail-balancer';
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: 'AI提案',
26
+ addIngredientTitle: '材料を追加',
27
+ searchPlaceholder: 'ラム、ライム、シロップを検索...',
28
+ presetsTitle: 'レシピ&プリセット',
29
+ savedSectionTitle: '保存済み',
30
+ classicsSectionTitle: 'クラシック',
31
+ confirmDeleteTitle: 'すべて削除しますか?',
32
+ confirmDeleteText: 'これにより、ワークベンチからすべての材料が削除されます。この操作は元に戻せません。',
33
+ cancelBtn: 'キャンセル',
34
+ deleteBtn: '削除',
35
+ verdictSpiritSeco: 'スピリッツ / ドライ',
36
+ verdictSoloDulce: 'スウィートオンリー(オールドファッション)',
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: "これはミクソロジーの黄金比で、強いベース(スピリッツ)、酸(シトラス)、甘さ(シロップ)の3つの要素を調和させます。古典的なレシピは通常、2:1:1の比率(強い:酸:甘い)に従いますが、これは強度と密度によって異なります。",
54
+ },
55
+ {
56
+ question: "希釈がカクテルのバランスにどのように影響しますか?",
57
+ answer: "氷は冷やすだけでなく、水を加える(希釈)ことでスピリッツの香りを開き、酸味と甘さのピークを柔らかくします。シェイカーで調和したカクテルは、グラスに長く氷が入ったままになると不調和になることがあります。",
58
+ },
59
+ {
60
+ question: "ホームカクテルがバーのようなじゃない理由は何ですか?",
61
+ answer: "通常は砂糖とシトラスのpHのバランスが不足しているからです。レモンは季節によって酸性度が異なります。当社の計算機は、使用されたジュースの量に基づいてシロップの正確な量を調整するのに役立ちます。",
62
+ },
63
+ {
64
+ question: "Brix度とは何ですか?なぜカクテルに重要なのですか?",
65
+ answer: "Brixは液体に溶解した砂糖の量を測定するスケールです。シンプルシロップ(1:1)は約50°Brixですが、リッチシロップ(2:1)は66°Brixを超えます。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: 'intuitionが数学と出会うデジタルラボへようこそ。このツールは単なるレシピ本ではありません。それはあなたのカクテルの分子構造をリアルタイムで解体し、分析するために設計された<strong>高度な物理化学シミュレーター</strong>です。シトラスの1滴、スピリッツの1メジャー、シロップの1グラムは、すべて変わらない化学法則に従って相互作用し、あなたの飲み物が傑作か失望の失敗かを決定します。'
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: '酸性度は単なる風味ではなく、バランスの取れたカクテルの構造的支柱です。適切な酸性度がなければ、飲み物は平らで、1次元的で、忘れられてしまいます。当社のアルゴリズムはペルシャンライムの滴定酸性度とユーレカレモンを区別し、あなたのレシピを口腔内のバランスポイント全体だけシフトできる季節的なシトラスpH変動を考慮しています。'
127
+ },
128
+ {
129
+ type: 'card',
130
+ title: 'Brix制御(甘さ)',
131
+ icon: 'mdi:spoon-sugar',
132
+ html: 'カクテルのボディとテクスチャーは、完全に溶解した砂糖に依存します。シンプルシロップ(1:1)はリッチシロップ(2:1)、蜂蜜、またはアガベネクターとは大きく異なります。各甘味料は異なるBrix度と粘度を持ち、飲み物が舌にどのようにコートするかに影響を与えます。当社の計算機は、溶解した砂糖の正確なグラム数を計算して、最終的なマウスフィールと甘さの知覚を予測します。'
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>。シチリアのレモンはメキシコのライムとは異なる酸性度を含んでいます。Cointreau のようなトリプルセックはブルーキュラソー とはまったく異なる動作をします。同じレシピは1週間完璧にバランスして見え、次に激しく酸性に見え、単に季節的な果物変動のためだけです。'
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
+ };