عند استخدام React-Intl لترجمة النصوص في تطبيق React الخاص بك وتضمينها في مكان الإدخال (input) في العادة، قد تواجهك مشكلة حيث يتم عرض “[Object object]” بدلاً من النص المتوقع في مكان الإدخال. لكن هناك طريقة لحل هذه المشكلة وعرض القيمة الصحيحة في المكان المناسب.
أولاً، دعني أشرح كيفية استخدام FormattedMessage
في مكان الإدخال (input) بشكل صحيح. عادةً، عند استخدام FormattedMessage
، فإنه ينتج عنصرًا React بدلاً من نص نقي. لذلك، يجب عليك استخدام القيمة الناتجة مباشرة في مكان الإدخال.
لحل هذه المشكلة، يمكنك استخدام دالة formatMessage
المقدمة من react-intl
لاسترجاع النص المترجم بدلاً من تضمين FormattedMessage
مباشرة في مكان الإدخال. هذه الدالة تسمح لك باسترجاع القيمة المترجمة بواسطة المفتاح المرفق بالرسالة.
فيما يلي كيفية تطبيق الحل:
jsximport { useIntl } from 'react-intl';
function YourComponent() {
const intl = useIntl();
const placeholderText = intl.formatMessage(messages.placeholderIntlText);
return (
<input placeholder={placeholderText} />
);
}
في هذا المثال، قمنا باستيراد useIntl
من react-intl
لاستخدامها في الكومبوننت. ثم استخدمناها للوصول إلى كائن intl
الذي يحتوي على دالة formatMessage
. باستخدام هذه الدالة، قمنا بتنسيق النص الدولي لرسالة المفتاح placeholderIntlText
واسترجاعه كنص نقي. ثم استخدمنا هذا النص كقيمة لخاصية placeholder
في الإدخال.
بهذه الطريقة، ستتمكن من عرض النص المتوقع بشكل صحيح في مكان الإدخال بدلاً من “[Object object]”.
المزيد من المعلومات
بالطبع، هذا هو الجزء المتبقي من المقال:
باستخدام الكود الذي تم تقديمه في المثال السابق، يمكنك الآن استخدام النص المترجم بشكل صحيح في مكان الإدخال (input) دون مشاكل. هذا يجعل تطبيقك أكثر إتقاناً واحترافية في تعامله مع اللغات المختلفة.
ومن الجدير بالذكر أن استخدام react-intl
يوفر العديد من المزايا الأخرى لتطبيقات React، بما في ذلك إمكانية تنسيق التواريخ والأرقام بشكل دولي، ودعم اللغات المختلفة بشكل كامل. كما يوفر أيضاً إمكانية إدارة المفاتيح والقيم المترجمة بشكل مركزي، مما يسهل عملية ترجمة تطبيقك وصيانته عبر الزمن.
باستخدام FormattedMessage
بالتزامن مع react-intl
، يمكنك تحقيق تجربة مستخدم دولية متميزة لتطبيقك، وتحسين تفاعل المستخدمين معه في جميع أنحاء العالم. كما يمكنك الاعتماد عليها بثقة لعرض النصوص بطريقة صحيحة ومفهومة في جميع اللغات المدعومة.
بهذا، نكون قد استكملنا شرح كيفية استخدام FormattedMessage
في مكان الإدخال (input) باستخدام react-intl
، وكيفية عرض القيمة الصحيحة بدلاً من “[Object object]”. استمتع بتحسين تجربة مستخدميك وتوسيع دائرة تأثير تطبيقك عبر الثقافات واللغات المختلفة.