95 lines
3.1 KiB
TypeScript
95 lines
3.1 KiB
TypeScript
import type { Language } from '@/domain/language/entities';
|
||
|
||
const EN: Record<string, string> = {
|
||
"street-food": "Street Food & Starters",
|
||
"vegetarian": "Vegetarian",
|
||
"meat": "Meat",
|
||
"burger-sandwich": "Burger & Sandwich",
|
||
"chicken": "Chicken",
|
||
"pizza": "Pizza",
|
||
"naan-roll": "Naan Roll",
|
||
"sweets": "Sweets / Mithai",
|
||
"drinks": "Drinks"
|
||
};
|
||
|
||
const LOCALIZED: Partial<Record<Language, Record<string, string>>> = {
|
||
"sv": {
|
||
"street-food": "Gatumat & Förrätter",
|
||
"vegetarian": "Vegetariskt",
|
||
"meat": "Kött",
|
||
"burger-sandwich": "Burgare & Smörgås",
|
||
"chicken": "Kyckling",
|
||
"pizza": "Pizza",
|
||
"naan-roll": "Naanrulle",
|
||
"sweets": "Sötsaker / Mithai",
|
||
"drinks": "Drycker"
|
||
},
|
||
"ar": {
|
||
"street-food": "طعام الشارع والمقبلات",
|
||
"vegetarian": "نباتي",
|
||
"meat": "لحوم",
|
||
"burger-sandwich": "برغر وساندويتش",
|
||
"chicken": "دجاج",
|
||
"pizza": "بيتزا",
|
||
"naan-roll": "رول نان",
|
||
"sweets": "حلويات / ميثاي",
|
||
"drinks": "مشروبات"
|
||
},
|
||
"tr": {
|
||
"street-food": "Sokak Yemeği ve Başlangıçlar",
|
||
"vegetarian": "Vejetaryen",
|
||
"meat": "Et",
|
||
"burger-sandwich": "Burger ve Sandviç",
|
||
"chicken": "Tavuk",
|
||
"pizza": "Pizza",
|
||
"naan-roll": "Naan Dürüm",
|
||
"sweets": "Tatlılar / Mithai",
|
||
"drinks": "İçecekler"
|
||
},
|
||
"hi": {
|
||
"street-food": "स्ट्रीट फूड और स्टार्टर्स",
|
||
"vegetarian": "शाकाहारी",
|
||
"meat": "मांस",
|
||
"burger-sandwich": "बर्गर और सैंडविच",
|
||
"chicken": "चिकन",
|
||
"pizza": "पिज़्ज़ा",
|
||
"naan-roll": "नान रोल",
|
||
"sweets": "मिठाइयाँ / मिठाई",
|
||
"drinks": "पेय"
|
||
},
|
||
"ur": {
|
||
"street-food": "اسٹریٹ فوڈ اور سٹارٹرز",
|
||
"vegetarian": "سبزی خور",
|
||
"meat": "گوشت",
|
||
"burger-sandwich": "برگر اور سینڈوچ",
|
||
"chicken": "چکن",
|
||
"pizza": "پیزا",
|
||
"naan-roll": "نان رول",
|
||
"sweets": "مٹھائیاں / مٹھائی",
|
||
"drinks": "مشروبات"
|
||
}
|
||
};
|
||
|
||
const INCLUSION_CATEGORIES = new Set(['meat', 'chicken', 'vegetarian']);
|
||
|
||
const DISH_INCLUSION_NOTE_EN = '1x Naan or Rice included';
|
||
|
||
const DISH_INCLUSION_NOTE_LOCALIZED: Partial<Record<Language, string>> = {
|
||
sv: '1x Naan eller ris ingår',
|
||
ar: '1x نان أو أرز مشمول',
|
||
tr: '1x Naan veya pilav dahil',
|
||
hi: '1x नान या चावल शामिल',
|
||
ur: '1x نان یا چاول شامل',
|
||
};
|
||
|
||
export function getCategoryName(lang: Language, categoryId: string, fallback: string): string {
|
||
if (lang === 'en') return EN[categoryId] ?? fallback;
|
||
return LOCALIZED[lang]?.[categoryId] ?? EN[categoryId] ?? fallback;
|
||
}
|
||
|
||
export function getMenuItemInclusionNote(lang: Language, categoryId: string): string | undefined {
|
||
if (!INCLUSION_CATEGORIES.has(categoryId)) return undefined;
|
||
if (lang === 'en') return DISH_INCLUSION_NOTE_EN;
|
||
return DISH_INCLUSION_NOTE_LOCALIZED[lang] ?? DISH_INCLUSION_NOTE_EN;
|
||
}
|