初期設定
プロジェクトの作成
npm create astro@latest -- --template yacosta738/astro-cms
設定
1. /src/locales.ts の設定
まず、言語設定ファイルを更新します。
DEFAULT_LOCALE_SETTING
にデフォルトのロケールを設定し、LOCALES_SETTING
に希望するロケールのリストを設定します。これは Starlightの設定に準拠しています。
// サイトのデフォルトロケールを設定します。
export const DEFAULT_LOCALE_SETTING: string = "en";
export const LOCALES_SETTING: LocaleSetting = {
// サポートするロケールを追加または削除します。
en: {
label: "English",
lang: "en-US", // 任意
},
ja: {
label: "日本語",
},
"zh-cn": {
label: "简体中文",
lang: "zh-CN",
},
ar: {
label: "العربية",
dir: "rtl", // 任意
},
};
言語コードに関する情報は以下のリンクを参照してください。
2. astro.config.mjs の設定
site
にあなたのサイトのURLを設定します。
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
import { defineConfig } from 'astro/config';
import { DEFAULT_LOCALE_SETTING, LOCALES_SETTING } from './src/locales';
export default defineConfig({
- site: 'https://astro-cms-dpv.pages.dev',
+ site: 'https://your-site.com',
i18n: {
defaultLocale: DEFAULT_LOCALE_SETTING,
locales: Object.keys(LOCALES_SETTING),
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false,
},
},
...
Astro の詳細な設定オプションについては公式ドキュメントを参照してください。
注: prefixDefaultLocale
と redirectToDefaultLocale
の設定を変更することは推奨されません。Astro i18n Starter ではクライアントサイドのJavascriptでリダイレクトを管理しており、URLにlocaleが含まれていない場合はデフォルトのlocaleにリダイレクトします。例えば、/setup/
は /en/setup/
にリダイレクトされます。
ディレクトリ構造
Astroのディレクトリ構造に準拠します。
src/
├── assets/
│ └── en/, ja/ ...
├── blog/
│ └── en/, ja/ ...
├── components/
│ └── i18n/
├── layouts/
├── pages/
│ ├── [lang]/
│ ├── en/, ja/ ...
│ ├── 404.astro
│ └── index.astro
├── styles/
├── content.config.ts
├── consts.ts
├── i18n.ts
└── locales.ts
src/components/i18n
多言語対応サイトで使用するUIコンポーネントのディレクトリです
src/pages
src/pages/[lang]/
以下のファイルは、単一の.astro
ファイルから各言語のHTMLファイルを動的に生成します。src/pages/en/
、src/pages/ja/
などのディレクトリから各言語のHTMLファイルをそれぞれ生成することもできます。
src/consts.ts
プロジェクト内でimportして使用できる定数データのファイルです。使用しないこともできます。
src/i18n.ts
Astro i18n Starter で使用している関数などの定義ファイルです。基本的に編集する必要はありません。