Halaman

Ada beberapa bagian di setiap halaman. Ini termasuk tata letak, konten, dan opsi bahasa.

Tata letak adalah HTML yang membungkus konten. Ini mencakup header, footer, dan elemen lain yang konsisten di semua halaman. Tata letak itu didefinisikan di halaman lain sebagai fungsi TypeScript.

Konten adalah HTML yang unik untuk setiap halaman. Kami mendefinisikannya seperti yang ditunjukkan di bawah ini. Pastikan untuk menyertakan panggilan ke i18Next.t sesuai kebutuhan untuk mendukung terjemahan.

Opsi bahasa adalah berbagai bahasa di mana halaman ini tersedia. Kami mendefinisikannya di awal. Ini menghubungkan rute dan fungsi halaman individu bersama. Terjemahan URL ditangani di dalamnya.

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