Páginas

Hay algunas partes en cada página. Estos incluyen el diseño, el contenido y las opciones de idioma.

El diseño es el HTML que envuelve el contenido. Incluye el encabezado, el pie de página y cualquier otro elemento que sea consistente en todas las páginas. Ese diseño está definido en otra página como una función de TypeScript.

El contenido es el HTML que es único para cada página. Lo definimos como se muestra a continuación. Asegúrate de incluir llamadas a i18Next.t según sea apropiado para apoyar las traducciones.

Las opciones de idioma son los diferentes idiomas en los que está disponible la página. Las definimos al principio. Conecta la ruta y la función de la página individual. La traducción de las URL se maneja dentro de eso.

TypeScript - pages/ExamplePage.ts
import i18next from "../GlobalSitesCore/i18n";
import { Layout } from "../Layout";
import { RenderProps, renderLanguageFiles } from "../GlobalSitesCore/languages";
import { FileResult } from "../GlobalSitesCore/FileResult";

export async function ExamplePagePages(): Promise<FileResult[]> {
  return renderLanguageFiles({
    subDirectoryInEnglish: undefined,
    fileNameInEnglish: "example-page",
    includeInSitemap: true,
    render: (props) => ExamplePage(props),
  });
}

interface ExamplePageProps extends RenderProps {}

export function ExamplePage(props: ExamplePageProps): string {
  var title = i18next.t(`Example Page`);
  var metaDescription = i18next.t(`This is an example page.`);

  return Layout({
    lang: props.option.code,
    title: title,
    description: metaDescription,
    languageOptions: props.allOptions,
    content: /* HTML */ `
      <h1>${title}</h1>
      <p>${metaDescription}</p>
      <!-- Add more content as needed -->
    `,
  });
}