Lang Menu
Lang Menu показывает языки интерфейса списком: код заглавными и название, текущий — с подложкой. Клик по пункту зовёт onswitch с кодом; переключение локали — у продукта. Пункты повторяют геометрию Menu, поэтому список встаёт в панель User Menu или Popover.
Статус: experimental · в системе с 2026-09 · интерактивность: always (всегда)
Когда использовать
- Выбор языка интерфейса в меню пользователя или на экране входа.
Не использовать:
- Язык — одно поле формы среди других — это Select.
- Языков два — это Segmented Control.
Альтернативы:
Три языка
Английский, русский и испанский; текущий выделен.
<!--
🟢
Три языка списком: текущий выделен, клик переключает.
-->
<script>
import { t } from "$lib/spec/demo-lang.svelte.js";
import LangMenu from "$lib/ui/LangMenu.svelte";
let locale = $state("ru");
const locales = { en: "English", ru: t("Русский"), es: "Español" };
</script>
<div style="width: 240px;">
<LangMenu {locales} {locale} onswitch={(code) => (locale = code)} />
</div>