Сценарий
Многоязычный статический сайт
Вы строите на Astro, хотите десять языков и не хотите тяжёлой среды выполнения, чтобы их отдать.
Проблема
- Клиентский i18n добавляет вес и мигание при первой отрисовке.
- Держать десять деревьев файлов в согласии вручную превращается в профессию.
- Каждая правка текста запускает полную пересборку и деплой.
Что меняет Sonenta
@sonenta/astroзабирает бандлы на сборке и вставляет их в статический HTML. Ноль клиентского JavaScript.- Виртуальный модуль
sonenta:i18nотдаёт каталоги, с запасным путём на язык-источник. - Варианты по экранам приходят наложением с CDN, без второго дерева для поддержки.
Эта страница и есть доказательство: sonenta.com работает на этом, на 13 языках. Текст, который вы читаете, был получен с CDN в момент сборки.
С чего начать
// astro.config.mjs
import sonenta from "@sonenta/astro";
export default defineConfig({
integrations: [
sonenta({ project: "proj_xxx", version: "main",
locales: ["fr","en","es"], defaultLocale: "fr" }),
],
});
// dans un composant : zéro JavaScript client
import { getT } from "sonenta:i18n"; Известные ограничения
- Бандлы заморожены на сборке. Опубликовать перевод после этого потребует новой сборки статического сайта, в отличие от приложения, которое грузит во время работы.
- Подмножества шрифтов и настройки по системам письма остаются на вас. Sonenta отдаёт текст, а не типографику.
До последнего слова.
Готовы адаптировать ваш продукт под каждого пользователя?
Начните бесплатно за несколько минут. Без банковской карты, без обязательств, и ваши экспорты всегда открыты.