Translating menus and signage: why it goes wrong so often
Menus, signs, and labels are the hardest easy translation problem. Short text, no context, high stakes, and a photograph instead of a file.
Menu translation looks like the easiest translation problem there is. Twenty short lines, simple nouns, no argument structure. It is in fact one of the hardest, and the reasons are worth understanding because they generalize to every short-text-in-an-image task: signage, labels, packaging, price lists, warning notices.
Short text starves the model
Translation quality depends heavily on surrounding context, and a menu item gives you almost none. "Ročno" or "Lengua" or "白子" arrive with no sentence around them to disambiguate.
The classic failure is a dish name that is also a common word. Translate the words and you get something confidently wrong — "cold noodles" rendered as a temperature complaint, a regional dish name turned into its literal components. The output is grammatical, fluent, and useless.
The second failure is culinary terms that have no target-language equivalent. There is no English word for dashi that isn't a paragraph. The right answer is usually transliteration plus a short gloss — 出汁 (dashi, a savory stock made from kelp and dried fish) — not a forced translation into something that sounds familiar but means something else.
The stakes are higher than the text length suggests
Allergens are the reason this matters. A mistranslated ingredient is not an inconvenience, it is a medical event. Nut oils, shellfish derivatives, gluten in sauces, dairy hidden in a preparation method — these are exactly the low-context, high-specificity terms that machine translation handles least reliably.
Any menu translation destined for public display needs a human check on the allergen-relevant lines specifically. Not the whole menu — the lines that could hurt someone.
Dietary and religious classifications (halal, kosher, vegetarian in the strict sense) have the same property: a term that is approximately right is wrong.
Then there's the image problem
Menus and signs arrive as photographs, not files. That stacks a second hard problem on top of the first.
Decorative typefaces are common on menus and are exactly what OCR handles worst — script fonts, letterpress textures, chalk on blackboards, text over photographs of food. Add a phone camera at an angle in dim restaurant lighting and the extraction step is doing real work before translation even starts.
Layout matters too, in a way it doesn't for prose. A menu's meaning is partly positional: prices align to items, sections group dishes, a small footnote applies to the section above it. Flatten that to a text stream and the price/dish pairing can shuffle. A translated menu with the wrong prices attached is a commercial problem, not a linguistic one.
For image-based translation where the layout has to survive — photographs, screenshots, scanned pages — this is the specific job that Scanned.to and, in Japanese and Korean, DocTranslator are built around. For quick extraction where you only need the words out of a photo and will handle the rest yourself, ScanRead.ai is the lighter tool. And for the restaurant case end to end — a menu that needs to exist in several languages and stay a menu — AnyMenu is the purpose-built version of this.
What actually works
Give the model context it doesn't have. If your tool accepts a hint — "this is a Korean restaurant menu, seafood-heavy" — supply it. This single step fixes a large share of the dish-name failures.
Transliterate proper dish names, then gloss. Don't translate 비빔밥 into a description. Write bibimbap and explain it in a clause. Diners recognize transliterations; they don't recognize invented English dish names.
Translate ingredient lists literally and dish names loosely. These are opposite jobs and most tools apply one policy to both.
Photograph the menu flat, in even light, straight on. Thirty seconds of care upstream beats any amount of model quality downstream.
Have a native speaker read the allergen lines. Not the whole document. The lines where being wrong is dangerous.
The general lesson
Menus are a useful stress test because they concentrate every weakness of automated translation into one page: minimal context, culturally specific vocabulary, positional meaning, a photographic source, and consequences for errors. A pipeline that handles a menu well will handle almost anything.
A pipeline that handles a menu badly usually fails in the same way everywhere else — fluently, confidently, and without signalling that anything went wrong.
