All files / app/i18n appServerSideTranslations.ts

66.66% Statements 4/6
100% Branches 0/0
0% Functions 0/1
66.66% Lines 4/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221x 1x   1x   1x                                
import nextI18nextConfig from "next-i18next.config";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
 
import { CONNECTIONS, GLOBAL, MESSAGES, NOTIFICATIONS, PROFILE } from "./namespaces";
 
const APP_SHELL_NAMESPACES = [GLOBAL, NOTIFICATIONS, PROFILE, CONNECTIONS, MESSAGES];
 
/**
 * Drop-in replacement for serverSideTranslations that always includes the
 * namespaces required by app-shell components (_app renders ProfileSheet,
 * AppRoute renders the navigation and PushNotificationBanner). Without this,
 * navigating between pages that have different namespace sets causes
 * translation keys to flash in those components.
 */
export async function appServerSideTranslations(locale: string, namespacesRequired: string[]) {
  return serverSideTranslations(
    locale,
    [...new Set([...namespacesRequired, ...APP_SHELL_NAMESPACES])],
    nextI18nextConfig,
  );
}