استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تهيئة السجل"v5.5.10٢٩/٦/٢٠٢٥
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
توثيق: دالة t في hono-intlayer
دالة t في حزمة hono-intlayer هي الأداة الأساسية لتقديم ردود محلية في تطبيق Hono الخاص بك. فهي تبسط عملية التدويل (i18n) من خلال اختيار المحتوى ديناميكيًا بناءً على اللغة المفضلة للمستخدم.
نظرة عامة
تُستخدم دالة t لتعريف واسترجاع الترجمات لمجموعة معينة من اللغات. وهي تحدد تلقائيًا اللغة المناسبة للإرجاع بناءً على إعدادات طلب العميل، مثل عنوان Accept-Language. إذا كانت اللغة المفضلة غير متوفرة، فإنها تعود بسلاسة إلى اللغة الافتراضية المحددة في التكوين الخاص بك.
الميزات الرئيسية
- التوطين الديناميكي: تختار تلقائيًا الترجمة الأكثر ملاءمة للعميل.
- العودة إلى اللغة الافتراضية: تعود إلى اللغة الافتراضية إذا كانت لغة العميل المفضلة غير متوفرة، مما يضمن استمرارية تجربة المستخدم.
- خفيفة وسريعة: مصممة للتطبيقات عالية الأداء، مما يضمن أقل قدر من الحمل الإضافي.
- دعم الوضع الصارم: فرض الالتزام الصارم باللغات المعلنة لسلوك موثوق.
توقيع الدالة
نسخ الكود إلى الحافظة
t(translations: Record<string, string>): string;المعلمات
translations: كائن تكون المفاتيح فيه هي رموز اللغة (مثلenوfrوar) والقيم هي السلاسل المترجمة المقابلة.
المرتجعات
- سلسلة نصية تمثل المحتوى بالغة المفضلة للعميل.
تحميل معالج طلبات التدويل
لضمان عمل وظيفة التدويل التي توفرها hono-intlayer بشكل صحيح، يجب عليك تحميل الوسيط (middleware) الخاص بالتدويل في بداية تطبيق Hono الخاص بك. هذا يفعل دالة t ويضمن المعالجة السليمة لاكتشاف اللغة والترجمة.
ضع وسيط app.use("*", intlayer()) قبل أي مسارات في تطبيقك لضمان استفادة جميع المسارات من التدويل:
نسخ الكود إلى الحافظة
import { Hono } from "hono";
import { intlayer } from "hono-intlayer";
const app = new Hono();
// تحميل معالج طلبات التدويل
app.use("*", intlayer());
// حدد مساراتك بعد تحميل الوسيط
app.get("/", (c) => {
return c.text(
t({
en: "Hello, World!",
fr: "Bonjour le monde!",
es: "¡Hola, Mundo!",
ar: "مرحباً بك في العالم!",
})
);
});لماذا هذا مطلوب
- اكتشاف اللغة: يقوم وسيط
intlayerبمعالجة الطلبات الواردة لاكتشاف اللغة المفضلة للمستخدم بناءً على العناوين أو ملفات تعريف الارتباط أو الطرق الأخرى المكونة. - سياق الترجمة: يقوم بإعداد السياق اللازم لتعمل دالة
tبشكل صحيح، مما يضمن إرجاع الترجمات باللغة الصحيحة. - منع الأخطاء: بدون هذا الوسيط، سيؤدي استخدام دالة
tإلى أخطاء في وقت التشغيل لأن معلومات اللغة اللازمة لن تكون متوفرة.
أمثلة الاستخدام
مثال أساسي
تقديم محتوى محلي بلغات مختلفة:
نسخ الكود إلى الحافظة
app.get("/", (c) => { return c.text( t({ en: "Welcome!", fr: "Bienvenue!", ar: "مرحباً بك!", }) );});طلبات العميل:
- العميل الذي لديه
Accept-Language: frسيتلقىBienvenue!. - العميل الذي لديه
Accept-Language: arسيتلقىمرحباً بك!. - العميل الذي لديه
Accept-Language: deسيتلقىWelcome!(اللغة الافتراضية).
معالجة الأخطاء
تقديم رسائل خطأ بلغات متعددة:
نسخ الكود إلى الحافظة
app.get("/error", (c) => { return c.text( t({ en: "An unexpected error occurred.", fr: "Une erreur inattendue s'est produite.", ar: "حدث خطأ غير متوقع.", }), 500 );});استخدام متغيرات اللغة
تحديد ترجمات لمتغيرات خاصة باللغة:
نسخ الكود إلى الحافظة
app.get("/greet", (c) => { return c.text( t({ en: "Hello!", "en-GB": "Hello, mate!", fr: "Bonjour!", ar: "مرحباً!", }) );});مواضيع متقدمة
آلية العودة (Fallback)
إذا كانت اللغة المفضلة غير متوفرة، فستعود دالة t إلى اللغة الافتراضية المحددة في التكوين:
نسخ الكود إلى الحافظة
import { Locales, type IntlayerConfig } from "intlayer";const config = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.ARABIC], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;فرض الوضع الصارم
تكوين دالة t لفرض الالتزام الصارم باللغات المعلنة:
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الوضع | السلوك |
|---|---|
strict | يجب تقديم ترجمات لجميع اللغات المعلنة. اللغات المفقودة ستؤدي إلى حدوث أخطاء. |
inclusive | يجب أن تحتوي اللغات المعلنة على ترجمات. اللغات المفقودة تثير تحذيرات ولكن يتم قبولها. |
loose | يتم قبول أي لغة موجودة، حتى لو لم يتم الإعلان عنها. |
تكامل TypeScript
دالة t آمنة من حيث النوع عند استخدامها مع TypeScript. قم بتعريف كائن ترجمات آمن النوع:
نسخ الكود إلى الحافظة
import { type LanguageContent } from "hono-intlayer";const translations: LanguageContent<string> = { en: "Good morning!", fr: "Bonjour!", ar: "صباح الخير!",};app.get("/morning", (c) => { return c.text(t(translations));});الأخطاء الشائعة واستكشاف الأخطاء وإصلاحها
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المشكلة | السبب | الحل |
|---|---|---|
دالة t لا تعمل | لم يتم تحميل الوسيط | تأكد من إضافة app.use("*", intlayer()) قبل المسارات. |
| خطأ في الترجمة المفقودة | تم تمكين الوضع الصارم بدون جميع اللغات | قم بتقديم جميع الترجمات المطلوبة. |
الخاتمة
دالة t هي أداة قوية لتدويل الواجهة الخلفية. من خلال استخدامها بفعالية، يمكنك إنشاء تطبيق أكثر شمولاً وسهولة في الاستخدام لجمهور عالمي. للحصول على استخدام متقدم وخيارات تكوين مفصلة، راجع التوثيق.