Better Translateالرئيسية
GitHub
البدء
  • المقدمة
  • المهمة
  • التثبيت
  • CLI
  • المهارات
  • RTL
  • سجل التغييرات
المحولات
  • الأساس
  • React
  • Expo
  • Astro
  • MD & MDX
  • Next.js
  • TanStack Router

React

استخدم @better-translate/react عندما تحتاج مكونات React إلى الترجمة وتبديل الإعداد المحلي.

1. تثبيت الحزم

npm install @better-translate/core @better-translate/react

2. إنشاء المترجم المشترك

أنشئ src/i18n.ts:

ts
1import { configureTranslations } from "@better-translate/core";23const en = {4  home: {5    title: "Hello",6  },7} as const;89const es = {10  home: {11    title: "Hola",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. إنشاء زوج مزود + خطاف مكتوب الأنواع

إذا أردت أن يُكمل useTranslations() المفاتيح والإعدادات المحلية دون تكرار الأنواع العامة أو إضافة ملف إعلان، اربط المترجم مرة واحدة:

أنشئ src/i18n-react.ts:

ts
1import { createBetterTranslateReact } from "@better-translate/react";23import { translator } from "./i18n";45export const { BetterTranslateProvider, useTranslations } =6  createBetterTranslateReact(translator);

4. تغليف التطبيق

أنشئ أو حدّث src/main.tsx لاستيراد المزود المحلي للتطبيق:

tsx
1import React from "react";2import ReactDOM from "react-dom/client";34import { App } from "./app";5import { BetterTranslateProvider } from "./i18n-react";67ReactDOM.createRoot(document.getElementById("root")!).render(8  <React.StrictMode>9    <BetterTranslateProvider>10      <App />11    </BetterTranslateProvider>12  </React.StrictMode>,13);

5. قراءة الترجمات داخل مكون

أنشئ src/header.tsx:

tsx
1import { useTranslations } from "./i18n-react";23export function Header() {4  const { locale, setLocale, t } = useTranslations();56  return (7    <header>8      <h1>{t("home.title")}</h1>9      <button onClick={() => setLocale("en")} disabled={locale === "en"}>10        English11      </button>12      <button onClick={() => setLocale("es")} disabled={locale === "es"}>13        Español14      </button>15    </header>16  );17}

متى تستخدم React فقط

استخدم @better-translate/core + @better-translate/react فقط عندما:

  • يكون تطبيقك React SPA
  • يكون تطبيقك تطبيق Expo
  • تحدث تغييرات الإعداد المحلي في مكونات العميل

إذا كنت في Next.js App Router، احتفظ بهذه الحزمة لخطافات العميل وأضف محول Next.js للتوجيه ومساعدات الخادم.

توليد ملفات الإعداد المحلي تلقائيًا

بدل كتابة كل ترجمة يدويًا، استخدم واجهة سطر الأوامر لاستخراج النصوص وتوليد ملفات الإعداد المحلي: دليل واجهة سطر الأوامر

تابع مع

  • إعداد Expo
  • إعداد Next.js

أمثلة

  • react-vite-example
  • expo-example