الإعداد
إنشاء المشروع
npm create astro@latest -- --template psephopaiktes/astro-i18n-starter
التكوين
1. تكوين astro.config.mjs
قم بتعيين defaultLocale
و locales
في ملف تكوين Astro.
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({
site: 'https://astro-i18n-starter.pages.dev',
integrations: [mdx(), sitemap()],
i18n: {
+ defaultLocale: 'en',
+ locales: ['en', 'ja', 'zh-cn', 'ar'],
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false,
},
},
markdown: {
shikiConfig: {
theme: 'one-dark-pro',
},
},
});
يرجى الرجوع إلى الوثائق الرسمية للحصول على خيارات التكوين المفصلة لـ Astro.
لا يُنصح بتغيير إعدادات prefixDefaultLocale
و redirectToDefaultLocale
. Astro i18n Starter يدير عملية إعادة التوجيه باستخدام جافا سكريبت على الجانب العميل. إذا لم يحتوي عنوان URL على لغة، فسيتم إعادة التوجيه إلى اللغة الافتراضية. على سبيل المثال، سيتم إعادة التوجيه من /setup/
إلى /en/setup/
.
2. تكوين /src/locales.ts
بالمثل، قم بتحديث ملف التكوين لـ Astro i18n Starter.
قم بتعيين اللغة الافتراضية في DEFAULT_LOCALE_SETTING
وقائمة اللغات المرغوبة في LOCALES_SETTING
. يتبع هذا تكوين locales
في Starlight.
export const DEFAULT_LOCALE_SETTING = "en";
export const LOCALES_SETTING: LocaleSetting = {
"en": {
"label": "الإنجليزية"
},
"ja": {
"label": "اليابانية"
},
"zh-cn": {
"label": "الصينية المبسطة",
"lang": "zh-CN"
},
"ar": {
"label": "العربية",
"dir": "rtl"
},
};
interface LocaleSetting {
[key: Lowercase<string>]: {
label: string;
lang?: string;
dir?: 'rtl' | 'ltr';
};
}
يرجى الرجوع إلى الرابط التالي للحصول على معلومات حول رموز اللغة.
هيكل المشروع
اتبع هيكل المشروع Astro.
src/
├── assets/
│ └── en/, ja/ ...
├── components/
│ └── i18n/
├── content/
│ │ blog/
│ └── config.ts
├── layouts/
├── pages/
│ └── [lang]/
│ └── en/, ja/ ...
├── styles/
├── consts.ts
├── i18n.ts
└── locales.ts
src/components/i18n
المجلد لمكونات واجهة المستخدم المستخدمة في مواقع الويب متعددة اللغات.
src/pages
- يقوم الملفات في
src/pages/[lang]/
بإنشاء ملفات HTML لكل لغة بشكل ديناميكي من ملف.astro
واحد. - يمكنك إنشاء ملفات HTML لكل لغة من المجلدات مثل
src/pages/en/
،src/pages/ja/
، إلخ.
src/consts.ts
ملف للبيانات الثابتة التي يمكن استيرادها واستخدامها داخل المشروع. يمكن حذفه أيضًا إذا لم يكن مطلوبًا.
src/i18n.ts
ملف يحتوي على تعريفات الوظائف المستخدمة في Astro i18n Starter. عمومًا، لا يوجد حاجة لتحرير هذا الملف.