Languages
listMuseums returns each museum's default language (masterLanguage) and the languages it supports (supportedLanguages). Those are two-letter codes such as da or en.
A seating map, a level, and an entry each carry the language their name is written in (language). translations lists the same name in other languages, so reading an item shows every translation it has.
Create and update
Create and update tools that are translatable take a sibling argument language next to input (not inside input).
- Omit
language(or pass the item's own language on update) to write the museum's default language on the item itself. - Pass
languagewith the text to save a translation in that language. - Empty text in another language removes that translation. The item's own language does not change.
Guests see the name in their own language when a translation exists, otherwise the item's own name.
What to translate
Names guests read should exist in every language the museum supports. When you name or rename a seating map or a level, write it in the museum's default language first, then add each other supported language with an update that passes language.
Entry values that are letters or numbers (A, 3, 12) read the same in every language and need no translation. Translate an entry only when its value is a word.
When the user names a language ("call it Row in English"), save just that translation and leave the other names alone.
Template node text uses the same idea: updateTemplateNode / setTemplateOption take language for text and email subjects. Template text defaults to en when language is omitted.