Vue SSR отдаёт одну локаль
Документ это английский, русский или немецкий. Не все три. Смена языка это новый URL, а не второй словарь в куче.
Этот сайт это Vue SSR, не SPA. Первый HTML должен быть той страницей, которую видят и краулер, и посетитель. И он должен совпадать с локалью в URL. Старый entry на каждый рендер импортировал en, ru и de, потом выбирал одну. Node держал две другие в изоляте. Сериализованное состояние повторяло те же три словаря, чтобы клиент менял язык без навигации.
Язык без навигации никто не менял. Лишний JSON лежал в документе и в куче. Контейнер vue после тихого утра сидел около 700 МБ.
Что entry грузит сейчас
SSR-сервер грузит сообщения только локали запроса. Клиент гидрирует эту таблицу. Смена языка бьёт в новый URL и новый документ. Так роутер уже работает с en, ru и de.
Форматированные даты попадают в сериализованное состояние. Клиент не считает их на mount. Это убрало hydration warning и расхождение локали сразу. Статические области, которые не слушают i18n, остаются только серверными.
За чем следить
Пропущенный ключ сообщения теперь падает в одной локали, не в трёх. Сиды по-прежнему несут все три языка, поэтому форма, которая сохраняет только активную локаль, всё ещё баг. Процесс vue перезапускается по потолку памяти, та же идея, что pm.max_requests у PHP-FPM.
Куча на прогретом воркере села около 180 МБ. Из первого HTML ушли словари, которые не нужны. Страница выглядит так же. Она просто перестала возить два языка, которые никто не просил.
