---
title: "Multilingual sites"
description: "The three independent switches (frontend locales, content localization, Admin languages) and where to configure each."
requested_language: hu
language: en
translation_notice: "This page isn't translated yet"
url: https://docs.systhema.app/hu/guides/multilingual
version: unreleased (main)
docs_index: https://docs.systhema.app/hu/llms.txt
---
> This page isn't translated yet. Showing English.


A multilingual Systhema site is built from independent switches. Turn on only what the site needs: a site can serve several languages from one CMS language, or keep the Admin in English while content is translated.

## The three switches

| Switch               | What it does                                                                           | Where you configure it                                                               | Guide                                                               |
| -------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| Frontend locales     | Routes, links, `<html lang>` and UI messages per locale, with prefix or domain routing | `locales` in `systhema.config.ts`, defined with `defineSysthemaLocales`              | [Frontend locales](https://docs.systhema.app/hu/nextjs/locales.md)                      |
| Content localization | Stores content fields per locale in Payload                                            | Follows the same `locales`; `localization.policy` decides which fields are localized | [Content localization](https://docs.systhema.app/hu/payload/localization.md)            |
| Admin languages      | The language of the Payload Admin interface                                            | The `translations` plugin option of `withSysthema()`                                 | [Admin translations](https://docs.systhema.app/hu/payload/localization/admin-translations.md) |

`systhema.config.ts` is the one source of truth for locales. Payload projects project that value into content localization, so the frontend and CMS can share the same supported locales. Retain `locales: systhemaConfig.locales` in the Payload plugin options. Admin languages are separate: they control the editing interface, not the content.

## Two more content switches

- **Field policy.** `localization.policy` decides which fields are per-locale and which are shared. See [Field policy](https://docs.systhema.app/hu/payload/localization/field-policy.md).
- **Per-locale publishing.** `localization.localizeStatus`, on by default with locales, lets one locale be published while another stays a draft. See [Per-locale publishing](https://docs.systhema.app/hu/payload/localization/per-locale-publishing.md).

## Turning locales on

On a Payload project, `systhema setup locales` writes the locale contract into `systhema.config.ts` and runs the locale migration; see [systhema setup](https://docs.systhema.app/hu/cli/setup.md#locales). A site that already has content needs the reviewed data migration in [Localizing an existing site](https://docs.systhema.app/hu/payload/localization/migrating-existing-site.md).
