React Integration: useIntlayerAsync Hook Documentation
The useIntlayerAsync hook يوسع من وظيفة useIntlayer من خلال عدم العودة فقط القواميس المدفوعة مسبقًا ولكن أيضًا تحميل التحديثات بشكل غير متزامن، مما يجعلها مثالية للتطبيقات التي تقوم بتحديث محتواها المحلي بشكل متكرر بعد التقديم الأولي.
Overview
- تحميل القاموس غير المتزامن:
عند التركيب الأولي، يعود useIntlayerAsync أولاً بأي قاموس محلي تم تحميله مسبقًا أو تم تجميعه بشكل ثابت (تمامًا كما يفعل useIntlayer) ثم يقوم بتحميلMerge لأي قواميس بعيدة جديدة متاحة. - إدارة حالة التقدم:
يوفر الخطاف أيضًا حالة isLoading، تشير إلى متى يتم تحميل قاموس بعيد. وهذا يسمح للمطورين بعرض مؤشرات تحميل أو حالات هيكلية لتجربة مستخدم أكثر سلاسة.
Environment Setup
تقدم Intlayer نظام إدارة محتوى بدون رأس (CSM) يمكّن غير المطورين من إدارة وتحديث محتوى التطبيق بسلاسة. من خلال استخدام لوحة معلومات Intlayer البديهية، يمكن لفريقك تعديل النصوص المحلية والصور والموارد الأخرى دون تعديل الكود مباشرة. وهذا يبسط عملية إدارة المحتوى، ويعزز التعاون، ويضمن إمكانية إجراء التحديثات بسرعة وسهولة.
للبدء مع Intlayer:
- قم بالتسجيل والحصول على رمز الوصول على /dashboard.
أضف بيانات الاعتماد إلى ملف التكوين الخاص بك:
في مشروع React الخاص بك، قم بتكوين عميل Intlayer باستخدام بيانات الاعتماد الخاصة بك:intlayer.config.tsimport type { IntlayerConfig } from "intlayer";export default { // ... editor: { clientId: process.env.INTLAYER_CLIENT_ID, clientSecret: process.env.INTLAYER_CLIENT_SECRET, },} satisfies IntlayerConfig;
ادفع قاموس locale جديد إلى Intlayer:
bashnpx intlayer dictionary push -d my-first-dictionary-key
يقوم هذا الأمر بتحميل قواميس المحتوى الأولية الخاصة بك، مما يجعلها متاحة للتحميل والتحرير غير المتزامن من خلال منصة Intlayer.
Importing useIntlayerAsync in React
في مكونات React الخاصة بك، قم باستيراد useIntlayerAsync:
import { useIntlayerAsync } from "react-intlayer";
Parameters
key:
Type: DictionaryKeys
مفتاح القاموس المستخدم لتحديد كتلة المحتوى المحلية. يجب تحديد هذا المفتاح في ملفات إعلان المحتوى الخاصة بك.locale (اختياري):
Type: Locales
locale المحدد الذي تريد استهدافه. إذا تم التخلي عن ذلك، يستخدم الخطاف locale من سياق Intlayer الحالي.isRenderEditor (اختياري، الافتراضي إلى true):
Type: boolean
يحدد ما إذا كان يجب أن يكون المحتوى جاهزًا للرسم باستخدام تراكب محرر Intlayer. إذا تم تعيينه على false، ستستثني بيانات القاموس المعادة الميزات الخاصة بالمحرر.
Return Value
يعيد الخطاف كائن قاموس يحتوي على محتوى محلي مشفر حسب key و locale. كما يتضمن قيمة منطقية isLoading تشير إلى ما إذا كان يتم حاليًا جلب قاموس بعيد.
Example Usage in a React Component
import { useEffect, type FC } from "react";import { useIntlayerAsync } from "react-intlayer";export const ComponentExample: FC = () => { const { title, description, isLoading } = useIntlayerAsync("async-component"); useEffect(() => { if (isLoading) { console.log("المحتوى يتم تحميله..."); } }, [isLoading]); return ( <div> {isLoading ? ( <div> <h1>جار التحميل…</h1> <p>يرجى الانتظار أثناء تحديث المحتوى.</p> </div> ) : ( <div> <h1>{title.value}</h1> <p>{description.value}</p> </div> )} </div> );};
Key Points:
- عند التقديم الأولي، يأتي title و description من القاموس المحلي المدفوع مسبقًا أو المدعوم ثابتًا.
- بينما isLoading هو true، يتم جلب قاموس محدث في الخلفية.
- بمجرد اكتمال الطلب، يتم تحديث title و description بأحدث المحتوى، و isLoading يعود إلى false.
Handling Attribute Localization
يمكنك أيضًا استرجاع قيم السمات المترجمة لقيم HTML المختلفة (مثل alt، title، aria-label):
<img src={title.image.src.value} alt={title.image.alt.value} />
Content Declaration Files
يجب تعريف جميع مفاتيح المحتوى في ملفات إعلان المحتوى الخاصة بك من أجل سلامة النوع ومنع أخطاء وقت التشغيل. تتيح هذه الملفات تحقق TypeScript، مما يضمن لك دائمًا الإشارة إلى المفاتيح واللغات الموجودة.
التعليمات الخاصة بإعداد ملفات إعلان المحتوى متاحة هنا.
Further Information
- محرر Intlayer المرئي:
قم بالتكامل مع محرر Intlayer المرئي لإدارة وتحرير المحتوى مباشرة من واجهة المستخدم. المزيد من التفاصيل هنا.
In summary, useIntlayerAsync هو خطاف React قوي مصمم لتعزيز تجربة المستخدم والحفاظ على تحديث المحتوى من خلال دمج القواميس المدفوعة مسبقًا أو المدفوعة مسبقًا مع تحديثات القاموس غير المتزامنة. من خلال الاستفادة من isLoading وDeclarations المحتوى المستندة إلى TypeScript، يمكنك دمج المحتوى الديناميكي والمحلي بسهولة في تطبيقات React الخاصة بك.
إذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيق