The tourist who does not understand the menu orders the easiest thing — or leaves. A second language is not a luxury: it is direct sales on the coast, in large cities and in neighbourhoods with many foreign visitors. A “menu please” in August is not solved by translating from memory between two tickets. Printed trilingual cards go stale the first time fish per kilo moves; the English PDF in a drawer is already a different menu from the Spanish one on the table.
A digital menu with a language switcher lets the guest pick a flag and see names and descriptions you actually maintain. You keep one menu in the panel; translations are stored per dish and per category. The QR on the table does not change. The guest does not install an app. In CartaDigitalizada the public URL is the slug; extra languages do not mean extra codes. Free uses a single language (the one you set as default). Multilingual is Premium (9,99 €/month, 7,99 € on annual billing). Basic (4,99 €/month, 3,99 € annual equivalent) does not unlock extra locales — the language block shows a lock, like the menu background, not a 404.
Common mistakes
- Printed menu only in Spanish and the server translating from memory at peak.
- English PDF out of date compared with the Spanish card — different prices, missing specials, allergens only in one language.
- Relying on live Google Translate (slow, and often wrong with dish names and “a la plancha”).
- Printing three languages on paper and only one staying current when fish prices move.
- Translating house names into forced equivalents (“grandma’s bravas” becoming a generic “spicy potatoes”) instead of translating the description and the allergens.
Do not treat Instagram Highlights or a WhatsApp PDF as the English menu. They vanish, they are not per-dish, and they are never in sync with sold-out. Do not point a second QR at a second Drive file; guests mix the codes and you reprint both.
What works better
One digital menu, one slug, a selector on the public page. The guest chooses a flag or language and sees translated names and descriptions. Preference can be stored in a cookie for the next visit (menu_lang_{slug}) and can also follow ?lang=. In CartaDigitalizada the switcher uses PNG flags, not “ES”-style letters that sometimes break as regional-indicator emoji on Windows. The menu language does not have to match the SaaS landing: a venue in Jávea can keep the product site in Spanish and the menu in Spanish + English + French.
Allergens (14 EU plus optional vegan) and dietary tags (gluten-free, vegetarian, vegan, spicy, km0, organic, lactose-free, halal) show as icons. An icon for cereals/gluten is understood on any beach even when the visitor barely reads the language. Icons do not replace legal wording or a server confirming a severe allergy; they cut the twenty “does this have bread?” questions per service. Update the same day if the recipe changes. Legacy aliases when saving (gluten → cereals, lactosa → dairy) help if you migrate from another tool.
Start with the essentials
You do not need to translate 80 dishes on day one. Prioritise categories, allergens and the 15 best sellers. Add the rest over the week. Free is one language. Premium extra locales have a cap; you translate only the extras you actually enabled, not every language the landing supports. Until you press “Save languages” in the panel, the server only accepts translations for extras already stored. Filling twenty fields and leaving without saving looks like “it does not work”. Hidden inputs for locales you have not enabled are disabled so they are not submitted as junk.
Keep proper names of house dishes if they are part of the brand. Translate the description, heat level and allergens. The tourist wants to know if it is spicy, not a laboured equivalent of “patatas bravas de la abuela”. Search on the public menu still helps when the list grows; featured dishes (recommended / new) sit in a strip at the top so a visitor who will not scroll still sees something they can order.
Reservations and language
If you turn on reservations (Premium), the guest email can go in the language they booked in. The owner is notified in Spanish. That avoids “I did not understand the confirmation” in August. The public form at /{slug}/reservar follows the active menu locale. Slots, capacity, lead time, optional auto-confirm and closed weekdays live in reservation settings — this is not a hotel channel manager or OTA allotment. Enterprise (299 € + 29 €/month) is a custom website project; do not confuse it with multilingual on the table. Time clock (11,99 €/year) is a separate staff app, not something the diner uses.
Ratings and the path to Google reviews work in every language the guest can read enough to tap stars. Dish sharing (/{slug}?plato=… plus lang= when multilingual) sends a current plate, not a photo of a laminated card. The diner list (Basic+) is useful with mixed groups: each person ticks dishes on their phone without needing to parse a Spanish paper bill.
Coast, city and season
In high season the second language pays for itself: less table time explaining the menu and fewer returned dishes. In low season you can leave the translations published; they do not occupy paper in the storeroom. If you close in November, the hours notice covers the closure without deleting English. The QR still points at the same slug. Dropping to Free reverts the template to Classic and clears the daily special; extra locales are a Premium gate — the lock is visible in the panel, same pattern as background and theme.
Daily special (Basic+) can have its own page or a header banner. Translate the title and the included courses if tourists eat lunch from that board. Currency on the menu is independent of Stripe: you may show euros to guests while you pay the SaaS in euros; do not mix “from 4,99 €” software prices into the public card. Templates: Free is Classic only; Premium unlocks all four (Classic, Modern, Elegant, Dark premium — the last one is the wine-cellar layout with optional cellar/grape/pairing fields). Customisable QR (Premium) changes look, not the destination URL.
How to publish without chaos
- Fix the venue’s main language (floor and kitchen). That is the default locale on the restaurant, not the landing locale.
- Add one extra (almost always English) and translate categories plus the top 15. Save languages before you type the rest.
- Review allergens: the icon does not replace legal text, but it does replace “gluten?” at every table. Check the 14 EU list plus vegan if you use it.
- Test the selector on a real phone and reload: it should remember the language. Try
?lang=and a dish deep link together. - Show the team where the flag is; if they do not see it, they will not offer it. Use the public demos so they recognise the switcher.
- Open the menu on 4G with venue Wi-Fi off. Confirm sold-out and hours notice still make sense in the second language.
- If you take reservations, book a test slot and read the guest email in that locale; the owner copy stays in Spanish.
No email verification is required to enter the panel, so you can publish translations the same day you enable Premium. The guest still does not install anything. If scanning is weak, fix QR size (4–5 cm, light background, quiet zone) before you blame the language. A second language on a PDF nobody can pinch-zoom is still a PDF. Put the translations behind the same stable code you already have on the table.