Páginas

Existem algumas partes em cada página. Esses incluem o layout, o conteúdo e as opções de idioma.

O layout é o HTML que envolve o conteúdo. Inclui o cabeçalho, o rodapé e quaisquer outros elementos que sejam consistentes em todas as páginas. Esse layout é definido em outra página como uma função TypeScript.

O conteúdo é o HTML que é exclusivo para cada página. Definimos isso conforme mostrado abaixo. Certifique se de incluir chamadas para i18Next.t conforme apropriado para suportar traduções.

As opções de idioma são os diferentes idiomas disponíveis na página. Definimos isso no início. Ele conecta a rota e a função da página individual. A tradução de URLs é tratada dentro disso.

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 -->
    `,
  });
}