TanStack Router
استخدم @better-translate/tanstack-router عندما يستخدم تطبيقك TanStack Router أو TanStack Start وتريد عناوين URL مدركة للإعداد المحلي.
في معظم التطبيقات الحقيقية ستُقرنه مع:
@better-translate/coreللمترجم@better-translate/reactللخطافات داخل مكونات React
1. تثبيت الحزم
npm install @better-translate/core @better-translate/react @better-translate/tanstack-router2. إنشاء المترجم المشترك
أنشئ src/lib/i18n.ts:
1import { configureTranslations } from "@better-translate/core";23const en = {4 home: {5 title: "Hello from TanStack Router",6 },7} as const;89const es = {10 home: {11 title: "Hola desde TanStack Router",12 },13} as const;1415export const translator = await configureTranslations({16 availableLocales: ["en", "es"] as const,17 defaultLocale: "en",18 fallbackLocale: "en",19 messages: { en, es },20});3. إضافة إعداد التوجيه للإعداد المحلي
أنشئ src/lib/routing.ts:
1import {2 defineRouting,3 SUPPORTED_TANSTACK_LOCALE_ROUTE_SYNTAXES,4} from "@better-translate/tanstack-router";56export const routing = defineRouting({7 defaultLocale: "en",8 locales: ["en", "es"] as const,9 routeTemplate: "/$lang",10});1112console.log(SUPPORTED_TANSTACK_LOCALE_ROUTE_SYNTAXES);4. إنشاء مساعدات تنقل مترجمة
أنشئ src/lib/navigation.tsx:
1import {2 Link,3 useLocation,4 useNavigate,5 useRouter,6} from "@tanstack/react-router";78import { createNavigationFunctions } from "@better-translate/tanstack-router/navigation";910import { routing } from "./routing";1112export const {13 Link: I18nLink,14 useLocale,15 useNavigate: useI18nNavigate,16 usePathname: useI18nPathname,17} = createNavigationFunctions({18 Link,19 routing,20 useLocation,21 useNavigate,22 useRouter,23});استخدم routeTemplate: "/$lang" أو routeTemplate: "/{$lang}" لقطاعات إعداد محلي إلزامية. استخدم "/{-$lang}" عندما يجب أن يحذف الإعداد المحلي الافتراضي القطعة.
أسماء معاملات الإعداد المحلي المدعومة تأتي من @better-translate/core وتُعرض هنا كـ SUPPORTED_TANSTACK_LOCALE_ROUTE_SYNTAXES مع المجموعات الإلزامية والاختيارية.
5. تغليف التطبيق بمزود React
أنشئ src/app.tsx:
1import { RouterProvider } from "@tanstack/react-router";23import { BetterTranslateProvider } from "@better-translate/react";45import { router } from "./router";6import { translator } from "./lib/i18n";78export function App() {9 return (10 <BetterTranslateProvider translator={translator}>11 <RouterProvider router={router} />12 </BetterTranslateProvider>13 );14}6. استخدام روابط وترجمات مدركة للإعداد المحلي
أنشئ src/components/header.tsx:
1import { useTranslations } from "@better-translate/react";23import { translator } from "../lib/i18n";4import { I18nLink, useLocale } from "../lib/navigation";56export function Header() {7 const currentLocale = useLocale();8 const { t } = useTranslations<typeof translator>();910 return (11 <header>12 <h1>{t("home.title")}</h1>13 <I18nLink to="/" params={{ lang: currentLocale }}>14 Home15 </I18nLink>16 </header>17 );18}TanStack Start
إذا كنت تستخدم TanStack Start، احتفظ بنفس إعداد التوجيه والتنقل. ثم أضف مساعدات الخادم من @better-translate/tanstack-router/server كما تضيف مساعدات الطلب في Next.js.
توليد ملفات الإعداد المحلي تلقائيًا
بدل كتابة كل ترجمة يدويًا، استخدم واجهة سطر الأوامر لاستخراج النصوص وتوليد ملفات الإعداد المحلي: دليل واجهة سطر الأوامر