Edit locales/.json in the main resource to change panel and in-game text. Select the language with Config.locale in config/settings.lua.
Select an installed language#
Choose the language code matching an installed JSON filename, such as en or tr. Preserve it as a Lua string. Restart the main resource after changing the selection.
Keep the English file complete because Restaurant uses it for missing translations. A broken English file can prevent startup. To add a language, use the same JSON structure as English.
Edit or add a catalog#
- Back up the existing locale file.
- For a new language, start from the complete English key structure.
- Translate values while preserving key names and nesting.
- Preserve named placeholders, plural branches and required parameter names.
- Validate JSON syntax, select the code and restart the main resource.
- Test the actual panel and world prompts that use the changed text.
Editing translation text does not require a UI rebuild. Restart the main resource, then check the selected language in game.
Preserve the meaning of controls#
Keep the distinction between Escape leaving retained work, X explicitly discarding it and RMB's product-specific undo/secondary action. A shorter translation must not turn these into the same generic Cancel instruction.
Keep key labels and named values visible. A message such as a missing ingredient must retain both the material label and amount. Do not remove a placeholder because the surrounding translated sentence is shorter.
Change the currency display#
All Restaurant currency displays use common.currencyAmount. Edit that locale value to change the displayed symbol/format consistently across balances, prices, charts, menus, totals and Supply labels. Preserve its amount placeholder.
Changing the currency text keeps existing money amounts and accounts unchanged. To change payment behavior, check your business settings and provider1.
Names versus translations#
The language file supplies preset names. Names you enter for restaurants, recipes or locations stay as typed and do not change with the reader's language.
Mobile spawn-point labels also stay as typed. Item metadata2 is not a place to configure translations.
Diagnose missing text#
For missing text, check the selected language code, filename, JSON structure and placeholders. Restart after editing. If the panel still reports a translation-loading error, keep the error and check the main resource's startup output.
Check F8 for the error as well as the visible notification. Use Access Problems if the panel cannot finish loading.
Example and visible check#
The delivered Config.locale is 'en'. To select Turkish, set Config.locale = 'tr' in config/settings.lua, keep locales/tr.json valid and restart main. Check Create Restaurant, a world prompt and one validation message.
The delivered English value of common.currencyAmount is "${amount}". When editing the corresponding JSON value, preserve {amount}; for example use "€{amount}". This changes display after restart, not account balances or already saved prices. Keep each language's own currency display consistent if several catalogs are maintained.
Footnotes
-
An installed framework, inventory or interaction system used by Restaurant. Read the definition. ↩
-
Extra details saved with an inventory item, such as its material, quantity and restaurant. Read the definition. ↩