ویرگول
ورودثبت نام
مسعود هارونی
مسعود هارونیمینویسم ، برای تثبیت دانشم . . . ??‍♂️
مسعود هارونی
مسعود هارونی
خواندن ۲ دقیقه·۶ ماه پیش

قدرت پنهان تابع t در i18next

سلام به همه توسعه‌دهنده‌های عزیز! 👋

تا حالا با خود فکر کرده‌اید که آرگومان دوم تابع t در کتابخانه i18next دقیقاً چه کاری انجام می‌دهد؟ شاید در نگاه اول فکر کنید که فقط برای تعیین یک مقدار پیش‌فرض (Default Value) کاربرد دارد، اما این تنها بخش کوچکی از ماجراست.

این آرگومان در واقع یک آبجکت قدرتمند از گزینه‌ها (Options Object) است که به شما اجازه می‌دهد ترجمه‌هایی هوشمند، داینامیک و وابسته به شرایط مختلف بسازید. بیایید این قابلیت‌های کلیدی را با هم مرور کنیم:

1️⃣ مقدار پیش‌فرض (Default Value)

این ساده‌ترین و شناخته‌شده‌ترین کاربرد آن است. اگر کلید ترجمه مورد نظر شما در فایل‌های زبان پیدا نشود، این مقدار به عنوان جایگزین نمایش داده می‌شود و از نمایش کلیدهای خام و ناخوانا در رابط کاربری جلوگیری می‌کند.

2️⃣ درون‌یابی (Interpolation): تزریق مقادیر داینامیک

این قابلیت به شما اجازه می‌دهد مقادیر متغیر (مانند نام کاربر یا تعداد) را مستقیماً درون رشته‌های ترجمه تزریق کنید. برای این کار از سینتکس {{variable}} استفاده می‌شود.

فرض کنید در فایل fa.json چنین چیزی داریم:

در کامپوننت خود به این شکل از آن استفاده می‌کنیم:

3️⃣ مدیریت جمع و مفرد (Pluralization)

با این قابلیت، دیگر نیازی به نوشتن if/else برای نمایش حالت مفرد یا جمع یک عبارت ندارید. کافیست متغیر count را به تابع پاس دهید تا i18next به طور خودکار نسخه صحیح را انتخاب کند.

در فایل fa.json:

نحوه استفاده:

4️⃣ کانتکست (Context): ترجمه بر اساس زمینه

این ویژگی برای زمانی ایده‌آل است که یک کلید مشخص باید بر اساس یک زمینه خاص (مانند جنسیت) ترجمه‌های متفاوتی داشته باشد.

در فایل fa.json:

نحوه استفاده:

✨ نتیجه‌گیری

آرگومان دوم تابع t ابزاری بسیار قدرتمند است که ترجمه‌های شما را از حالت ایستا به حالتی پویا و هوشمند تبدیل می‌کند. با استفاده صحیح از این قابلیت‌ها می‌توانید کدهای تمیزتر، خواناتر و تجربه‌ی کاربری بسیار بهتری برای مخاطبان بین‌المللی خود خلق کنید.

شما از کدام قابلیت بیشتر استفاده می‌کنید؟ تجربیات خود را در کامنت‌ها به اشتراک بگذارید!

frontendreactjs
۱
۰
مسعود هارونی
مسعود هارونی
مینویسم ، برای تثبیت دانشم . . . ??‍♂️
شاید از این پست‌ها خوشتان بیاید