سلام خسته نباشید جلسات اول شما یه تم RTL ساختید اگه بخوایم از react-i18next استفاده کنیم چه جوری میشه LTR کرد من الان مث شما اون RTL ساختم و LTR ساختم و هر کدوم اگه رو کامپوننت Layout بزارم اکی کار میکنن ولی وقتی میخوام دینامیک کنم که بر اساس زبانی که انتخاب شده بیاد یکی از این ها رو روی Layout اعمال کنه نمیشه میشه لطفا بگید این چه جوری میشه داینامیک کرد
یه مشکل دیگه هم که با multi lang دارم اگه صفحه رفرش شه این خطا تو کنسول دارم و بعدش استایل های material ui اعمال نمیشه
Warning: Text content did not match. Server:
سلام. تم RTL منظورتون برای پنل مدیریت هست یا بخش nextjs ؟ چون برای next تم RTL نساختیم.
خود material ui یه سیستم خوب برای locale یا همون چند زبانه کردن داره، اون رو بررسی کردید؟
من الان اینو گذاشتم
const theme = createMuiTheme(
{
palette: {
primary: { main: '#1976d2' }
}
},
faIR
)
عکس قبل و بعد از رفرش رو گذاشتم قبل رفرش به جا نام سمت راست باشه چپ هست بعد رفرش درست میشه ولی کلا دیگه استایل متریال نداره
امروز متوجه شدم که اون به هم ریختگی استایل material ui که عکسش فرستادم اصلا ربطی به چند زبانگی هم نداره هر جا تو پروژه نکست رفرش کنم استایل های material ui بهم میریزه و تو کنسول هم میگه کلاس سمت سرور و کلاینت یکسان نیست. در صورتی که پروژه شرکت هم نکست هست material ui هم استفاده کردم ولی این اتفاق نمیفته پس الان دو تا سوال دارم:
1. چه جوری واسه چند زبانگی LTR , RTL اعمال کنم
2. چرا با رفرش در نکست استایل های material ui بهم میریزه
ممنون میشم راهنمایی کنید
برای بحث استایل ها فکر می کنم برای next باید از server custom استفاده کنید.توی خود Document هم به این اشاره کرده.البته متاسفانه خود من تا حالا این رو پیاده سازی نکردم. برای حالت چندزبانگی چیزی که فکر می کنم نیاز دارید این هست وقتی مثلا فارسی میشه باید RTL اعمال بشه و برای حالت زبان های دیگه حالت LTR. خب برای این حالت ها به نظرم می تونید در زمان ایجاد theme بر اساس متغییر هایی که مشخص کنید الان theme باید RTL یا LTR باشه. بر اساس زبانی که کاربر انتخاب میکنه حالت رو اعمال کنید. کاربر در سمت فرانت زبان رو تغییر میده و شما اون دریافت می کنید و روی theme اعمالش می کنید.
تو چند زبانگی dir این چیزایی که تو تم هستن رو تونسم با تغییر زبان هندل کنم با useTheme
مشکلم اون چیزایی هست که با jss اعمال میشه اگه دستوری بود که میشد مث usetheme واسه مجدد مقدار دادن jss توی styleprovider استفاده کرد مشکلم حل میشد ولی من نتوسم این هندل کنم
const jss = create({
plugins: [...jssPreset().plugins, rtl()]
})