ری اکت نیتیو و گوشی های فارسی زبان

react-native
react-native

سلام دوستان، وقت بخیر؛

یک نکته بسیار ساده ولی فراموش شده :)

وقتی در حال دیباگ کردن ‌اپلیکیشن مورد نظرمون تو موبایل شبیه سازی شده (emulator) هستیم باید به این نکته توجه داشته باشم که زبان شبیه ساز ما ،انگلیسی هست ؛البته منظورم زبان تنظیمات کل گوشی هست نه صرفا کیبورد گوشی‌ .

خوب این تا اینجا،

اما‌ اکثر کسایی که با گوشی های اندروید تو ایران کار میکنن زبان گوشی‌رو فارسی می کنند این باعث میشه دایرکشن کل گوشی از راست به چپ بشه به اصطلاح خودمون rtl میشه ،

اگه شما همینجوری به صورت معمولی اپلیکشین خودتون رو با کامپوننت های معمولی درست کنید خوب وقتی ببریم تو گوشی که rtl شده گوشی فکر میکنه این اپلیکشن خارجی هست و باید اونو برعکس کنه ,

این برعکس کردنه باعث میشه کل اپلیکیشن ما بهم بریزه

برای جلو گیری از این کار باید جلوی rtl کردن پیش فرض گوشی رو بگیریم

یعنی اجازه ندیم گوشی که دایرکشنش rtl هست اپلیکیشن مارو هم rtl کنه،

واسه این کار‌ دو راه خیلی‌ساده داریم :

اول،

میتونیم به سادگی از این تکه کد توی فایل index.js استفاده کنیم :

 import {I18nManager} from 'react-native';
  I18nManager.allowRTL(false) ;

دیگه گوشی اجازه نداره دایرکشن اپلیکیشن مارو دست کاری کنه .

راه دوم .

خیلی حرفه ای تر بخواییم عمل کنیم باید تو فایل MainApplication.java این کارو انجام بدیم

*.این فایل رو از مسیر android/app/src/main/java/com/YOUR_PROJECT_NAME پیدا کنید .
 I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); 
 sharedI18nUtilInstance.allowRTL(getApplicationContext(), false); 

این ‌کدهارو را به متد onCreate اضافه کنید

البته یادتون نره تو بالای همون صفحه ماژول هارو فراخوانی کنید ،

import com.facebook.react.modules.i18nmanager.I18nUtil;

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

ارادتمند شما،

فرشید شاهمرادی