import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';
import { uiTranslations } from 'fumadocs-ui/i18n';
import { i18n } from './i18n';
import { SignOutButton } from '@/components/sign-out-button';
import { appName, gitConfig } from './shared';

/**
 * `displayName` est le nom de la langue tel qu'il apparait dans le selecteur.
 * Sans lui, Fumadocs retombe sur la chaine litterale "English" pour toute
 * langue (`fumadocs-ui/dist/i18n.js:16`) : le menu affichait donc deux fois
 * "English", pour l'anglais et pour le thai.
 *
 * Le reste du chrome (recherche, sommaire) n'a pas de traduction thaie :
 * `@fumadocs/language` ne fournit que le chinois. Les libelles restent donc en
 * anglais en mode thai, ce qui est sans consequence sur le contenu. Les
 * chaines s'ajoutent ici a cote de `displayName` le jour ou quelqu'un les
 * fournit.
 */
export const translations = i18n
  .translations()
  .extend(uiTranslations())
  .add({
    en: { displayName: 'English' },
    th: { displayName: 'ไทย' },
  });

export function baseOptions(locale: string): BaseLayoutProps {
  return {
    nav: {
      title: appName,
      url: `/${locale}`,
    },
    githubUrl: `https://github.com/${gitConfig.user}/${gitConfig.repo}`,
    links: [
      {
        type: 'custom',
        secondary: true,
        children: <SignOutButton />,
      },
    ],
  };
}
