SveltePress একই সাইটে একাধিক লোকেল পরিবেশন করতে পারে। আন্তর্জাতিকীকরণ opt-in: locales না দিলে সাইট single-locale থাকে এবং আগের আচরণই বজায় থাকে।
প্লেগ্রাউন্ডের আন্তর্জাতিকীকরণ এন্ট্রি config/locales.ts-এ লেখকের মতোই একটি তিন-লোকেল Default Theme starter চালু করে। চীনা ও বাংলা প্লেগ্রাউন্ডও সেই একই Starter খোলে এবং প্রিভিউ /zh/ বা /bn/-এ থাকে। এটি ব্যতিক্রম: অন্য প্লেগ্রাউন্ড এন্ট্রি পাতার ভাষায় ডিফল্ট পাথে লেখা এক-লোকেল গাছ।
লোকেল সক্রিয় করুন
sveltepress()-এ একটি locales ম্যাপ দিন। কী হলো URL prefix ('/' ডিফল্ট লোকেলের জন্য, '/zh/', '/bn/', …)। প্রতিটি এন্ট্রিতে BCP 47 lang, ভাষা সুইচারের জন্য label, এবং সেই লোকেলের সম্পূর্ণ theme options থাকতে হবে:
import { const defaultTheme: ThemeDefaultdefaultTheme } from '@sveltepress/theme-default'
import { const sveltepress: (options?: SveltepressVitePluginOptions) => PluginOptionsveltepress } from '@sveltepress/vite'
import { function defineConfig(config: UserConfig): UserConfig (+5 overloads)Type helper to make it easier to use vite.config.ts
accepts a direct
UserConfig
object, or a function that returns it.
The function receives a
ConfigEnv
object.
defineConfig } from 'vite'
import { const locales: LocalesConfigThe merged documentation site's locales. Each locale carries its full
theme options; the theme resolves them per route via
virtual:sveltepress/locale.
locales } from './config/locales'
export default function defineConfig(config: UserConfig): UserConfig (+5 overloads)Type helper to make it easier to use vite.config.ts
accepts a direct
UserConfig
object, or a function that returns it.
The function receives a
ConfigEnv
object.
defineConfig({
UserConfig.plugins?: PluginOption[] | undefinedArray of vite plugins to use.
plugins: [
function sveltepress(options?: SveltepressVitePluginOptions): PluginOptionsveltepress({
SveltepressVitePluginOptions.theme?: ResolvedTheme | undefinedtheme: function defaultTheme(themeOptions?: DefaultThemeOptions | undefined): ResolvedThemedefaultTheme({
// সব লোকেলের shared সাইট-লেভেল অপশন
}),
SveltepressVitePluginOptions.locales?: LocalesConfig<any> | undefinedMulti-locale site configuration keyed by URL prefix ('/' for the default
locale, '/zh/', '/bn/', ...). Each entry carries that locale's lang,
a user-facing label for the switcher, and its full theme options.
When omitted the site stays single-locale and behavior is unchanged.
locales,
}),
],
}) locales না থাকলে SveltePress পাথ rewrite করে না, language switcher দেখায় না, এবং locale route tree স্ক্যান করে না।
রুট ও prefix
অনুবাদ করা পৃষ্ঠাগুলো ডিফল্ট লোকেলের একই logical route ID-এর পাশে রাখুন (src/routes/…, src/routes/zh/…, src/routes/bn/…)। ডিফল্ট লোকেল unprefixed /-এ থাকে। Navbar, sidebar, হোম action বাটন এবং feature card লিংকেও সেই logical path ব্যবহার করুন (যেমন /guide/introduction/); Default Theme সক্রিয় লোকেলের prefix যোগ করবে।
Language switcher ও fallback
locales কনফিগার থাকলে Default Theme navbar-এ language switcher দেখায়। ভাষা বদলালে documentation version, logical page, এবং in-view heading (#hash) একই থাকে। Historical version (/v/<id>/… বা /zh/v/<id>/…) থেকে সুইচ করলে টার্গেট লোকেলের একই frozen version-এ যায়; সেই পৃষ্ঠা না থাকলে current logical page, তারপর লোকেল home-এ fallback করে (svp-locale-fallback=1)।
virtual:sveltepress/locale
import {
const locales: LocalesConfig | nulllocales,
const resolveLocale: (pathname: string, base?: string) => ResolvedLocale | nullresolveLocale,
const resolveLocaleSwitch: (pathname: string, targetPrefix: string, base?: string) => LocaleSwitchTarget | nullresolveLocaleSwitch,
const resolveLocalizedPath: (to: string, locale: ResolvedLocale | null, base?: string) => stringresolveLocalizedPath,
} from 'virtual:sveltepress/locale' locales— কনফিগার করা ম্যাপ; i18n বন্ধ থাকলেnullresolveLocale/resolveLocalizedPath/resolveLocaleSwitch— সক্রিয় লোকেল, লিঙ্ক rewrite, সুইচার টার্গেট
SSR <html lang>
// @noErrors
import { createLocaleHandle } from '@sveltepress/vite/hooks'
import { locales } from '../config/locales'
export const handle = createLocaleHandle(locales) Per-locale llms ও sitemap
llms চালু থাকলে প্রতি লোকেলে আলাদা llms.txt / llms-full.txt লেখা হয়। sitemap.xml লোকেলগুলোর current page ও eligible historical version URL hreflang alternate-সহ তালিকাভুক্ত করে।
Locale-aware versioning
নতুন ভাষা যোগ করতে SveltePress প্যাকেজ কোড বদলাতে হয় না। locales-এ প্রিফিক্স দিন, পেজ রাখুন src/routes/<slug>/-এ; ডকুমেন্ট ভার্সন ব্যবহার করলে sveltepress versions init --locale <slug> চালান। ভাষা পরিবর্তন, সাইডবার এবং ঐতিহাসিক URL সেই প্রিফিক্স অনুসরণ করে।
প্রতি লোকেলের আলাদা manifest থাকতে পারে: / → sveltepress.versions.json (/v), /<slug>/ → sveltepress.versions.<slug>.json (/<slug>/v)। ডিফল্ট sveltepress versions build কনফিগার করা সব লোকেল draft করে এক output-এ compose করে। init / create / validate এবং এক-লোকেল draft-এ --locale দিন:
sveltepress versions build
sveltepress versions create 8.2 --label "8.2" --locale bn
sveltepress versions validate --locale bn বিস্তারিত: ডকুমেন্ট সংস্করণ ব্যবস্থাপনা।
লোকেল অনুযায়ী সার্চ
Local Search <html lang="…"> অনুসরণ করে। DocSearch/custom search-এর জন্য প্রতি লোকেলে আলাদা theme options দিন। বিস্তারিত: সার্চ।