PDA

View Full Version : ایجاد برنامه های دو زبانه با بانک اطلاعاتی دوزبانه



mmbguide
یک شنبه 06 مرداد 1398, 16:47 عصر
سلام به دوستان

نمیدونم این سوال باید در تالار SQL مطرح میشد و یا C#‎‎‎

من یه برنامه دارم که قراره به دو زبان اطلاعات را نمایش بده. یک بخش مربوط میشه به کنترل های فرم که حالا یا از قابلیت خود ویژوال استودیو استفاده میکنم و یا اینکه مقادیر از بانک دریافت میشه و در زمان Load تنظیمات رو انجام میدم. اما بخش دوم مسئله اینه که من مقادیری دارم که توسط کاربر در DataGrid باید ثبت و نمایش داده بشه. مثال: کاربر باید نتیجه یک عملیات رو ثبت کنه و من جدول نتایج رو در بانک بصورت زیر طراحی و مقدار دهی اولیه کردم:


ID NameFa NameEn
-- ------ ------
1 تایید Accept
2 مردود Reject

در برنامه اصلی هر دو ستون از طرف SQL ارسال میشه و برنامه با توجه به زبان انتخاب شده ستون مورد نظر را نمایش میده و ستون غیرضروری رو مخفی میکنه.

برای این مورد که خود اطلاعات بانک هم ممکنه با دو زبان ثبت بشه چه راه حلی وجود داره. ممنون اگر راهنمایی کنید

mmbguide
یک شنبه 06 مرداد 1398, 16:50 عصر
البته شاید مثالی که زدم ساده باشه و ارسال تنها دو ستون خیلی حجم اطلاعات ارسالی رو افزایش نده. ولی فرض کنید که یک خودرو از n قطعه تشکیل شده و ما نام تمام قطعات رو به دو زبان در بانک ثبت کردیم. اونوقت ممکنه در بعضی از گرید ها مجبور باشم 50 قطعه رو برای 2000 خودرو نمایش بدم که با توجه به دو زبانه بدون برنامه عملا 100 ستون ارسال شده ولی 50تا بدلیل زبان انتخاب شده کاربر نمایش داده میشه و مابقی مخفی میشن.

Mahmoud.Afrad
یک شنبه 06 مرداد 1398, 20:53 عصر
البته شاید مثالی که زدم ساده باشه و ارسال تنها دو ستون خیلی حجم اطلاعات ارسالی رو افزایش نده. ولی فرض کنید که یک خودرو از n قطعه تشکیل شده و ما نام تمام قطعات رو به دو زبان در بانک ثبت کردیم. اونوقت ممکنه در بعضی از گرید ها مجبور باشم 50 قطعه رو برای 2000 خودرو نمایش بدم که با توجه به دو زبانه بدون برنامه عملا 100 ستون ارسال شده ولی 50تا بدلیل زبان انتخاب شده کاربر نمایش داده میشه و مابقی مخفی میشن.

ستونهایی که نیاز ندارید را اصلا سلکت نکنید.

mmbguide
دوشنبه 07 مرداد 1398, 07:42 صبح
یعنی برای هر زبان یک Procedure جداگانه بنویسم؟ آخه همین الانش حدود 500 تا Procedure دارم. البته جدا کردنش خیلی سخت نیست ولی تعداد خطوط برنامه نویسیم خیلی زیاد میشه چون برنامه سه لایه هستش که DAL و BAL تعداد خطوطش و حجم فایل تقریبا 2 برابر میشه. البته در حال حاضر در یک Procedure مقادیر هر دو زبان رو ارسال میکنم و برنامه با توجه به زبان انتخابی کاربر ستون های اضافه رو مخفی میکنه. اینطوری حجم کدها خیلی کمتر میشه. هم از طرف SQL و هم برنامه نویسی. چون مکانیزم تشخیص زبان و مخفی کردن ستون های اضافه یک تابع جداگانه هستش که در کل برنامه فراخوانی میشه و دیگه نگران ستون های زبان دوم نیستم و تنها مسئله من لزوم ارسال ستون های اضافه در بستر شبکه هستش که میخوام حجم اطلاعات رو کم کنم.