سلام دوستان، همونطوری که میدونید حالت معمول لوکالایزیشن که برای دات نت کور هست که از فایل های ریسورس استفاده میکنه یک مشکل داره و اینه که ما در حالت ران تایم نمیتونیم زبان جدید اضافه کنیم (بخاطر اینکه به صورت هارد کد توی فایل استارت آپ کالچرها رو مشخص میکنیم) و همینطور برای یک زبان نمیتونیم در حالت ران تایم معنی ها رو تغییر بدیم (مثلا داخل فایل ریسورس مریوط به زبان فارسی مقدار Hello رو سلام گذاشتیم دیگه مدیر سایت نمیتونه این مقدار رو تغییر بده) چون باید اولا توی فایل ریسورس تغییر کنه و دوما بعد از تغییر باید دوباره کامپایل بشه.
حالا سوال بنده اینجاست که من قصد دارم حالت چند زبانه رو داینامیک کنم یعنی پنلی به مدیر سایت بدیم که بتونه زبان جدید اضافه کنه و برای اون زبان ترجمه ها رو وارد کنه یا زبان موجود رو ویرایش و حذف کنه.
ایده ای که به ذهن بنده رسید به این صورت بود که بیام و سیستم لوکالایزیشن رو خودم بنویسم، حالا چطور؟
زبان کاربر زو توی کوکی یا کوئری استرینگ یا... داشته باشم، بعد یک کلاس داشته باشم که کلید رو بگیره و زبان کاربر رو بخونه و بره از توی دیتابیس معنی اون کلید رو برای اون زبان پیدا کنه و برگردونه.
اینکه با اینکار خیلی از امکانات لوکالایزیشن رو نخواهم داشت مثل واحد ها یا بحث ترجمه ها در مدل و... رو میدونم مشکلی با این بخشش ندارم، تنها سوالم پرفرمنس هست، چون با این کار توی هر صفحه ممکنه بیش از صد تا کوئری به دیتابیس بزنم نمیدونم تاثیر خیلی بدی روی پرفرمنس میذاره یا نه؟
اگر بذاره هم یک راه حلی به ذهنم رسید که بیام توی دیتابیس بر اساس آدرس صفحه ترجمه ها رو تفکیک کنم و وقتی صفحه لود میشه یک کوئری بزنم و لیست همه ترجمه ها رو توی یک لیست یک بار واکشی کنم و از اون لیست تو صفحه استفاده کنم، به این صورت تعداد ریکوئست به دیتابیس رو کم میکنم.
دوستان اگر نظر یا تجربه ای دارن با توجه به هدفی که عرض کردم اگر بگن خوشحال میشم.