PDA

View Full Version : ساخت زیربنای مناسب برای توسعه زبان در سایت



javad3151
چهارشنبه 29 تیر 1384, 14:21 عصر
asp.net / vb.net
اگر بخواهیم سایت را چند زبانه بسازیم و بعدا برای توسعه زبانها مشکلی نداشته باشیم(مجبور نباشیم برای هر زبان دوباره صفحات را طراحی کنیم)
از چه روشهایی می شه استفاده کرد ؟ (که هم ساده باشند و هم کاملا dynamic ، بطوری که بعدا ادمین سایت براحتی فقط با ترجمه جملات بتونه زبانهای دلخواه رو اضافه و کم کنه)

با تشکر

javad_hosseiny
چهارشنبه 29 تیر 1384, 14:31 عصر
شما باید تمامی عبارات مربوط به صفحات وب تان را باید در دیتابیس ذخیره کنید و به هنگام خواندن صفحات نیز از همان جداول دیتابیس استفاده کنید
مثلا جدولی به نام menu,page,.. دارید که در آن فیلدهایی جهت عبارت منو ، لینک صفحه ، هینتی که می خواهید به هنگام حرکت موس نمایش داده شود و .... در جدول بگذارید و هنگام خواندن صفحات مطالب را از آن صفحه بخوانید
و بالطبع باید صفحه کنترل پنلی جهت وارد کردن و انتخاب زبان فعال نیز داشته باشید که کاربر (یا مدیر سایت) بتوانید به ازاء تمامی عبارات (لینک ها، تیتر صفحات، متن و ....) در فرم مربوطه اطلاعات را تایپ کند
طبیعتا در این روش فرقی برای برنامه بین یک زبان یا چند زبانه بودن نمی کند

javad3151
یک شنبه 02 مرداد 1384, 00:35 صبح
ممنون که جواب دادید اما فکر کنم اگر برای لود معمولی هر صفحه بخوام یه کانکشن بزنم و ... خیلی سرعت سرور پایین بیاد .
یکی بهم گفته بود باید متنها رو داخل فایلهای جاوا اسکریپت بریزی و از اونجا بخونی ولی کامل منظورش رو نفهمیدم ؟؟

javad_hosseiny
یک شنبه 02 مرداد 1384, 02:13 صبح
البته اینچنین نیست و اگر قرار باشد سرعت سرور با اینگونه کانکش کردن و یا حتی سرچ ها پایین بیاید که دیگر اسمش سرور نیست (چرا که باید دارای بالاترین سخت افزار باشد)
و این روش, روش معمولی جهت ایجاد یک سایت به زبان های مختلف می باشد.
و البته روش استفاده از کد جاوا اسکریپت نیز ممکن است (ولی در محدوده پشتیبانی زبانهای کمتر)
کافی است تا تمامی عبارات موجود در صفحه را در یک آرایه قرار دهید و در ابتدا لود شدن صفحه توسط متغیری که به آن صفحه ارسال می شود که معرف زبان فعال می باشد و از طریق یک شرط ساده آرایه موردنظر فعال شود (که این کار می تواند توسط یک تابع جاوا انجام شده و توسط onload تگ body آن را در ابتدای فایل فراخوانی کنید) و خوب برای خواندن محتویات آرایه در تگ های html نیز به آسانی از طریق Id دادن به تگ های موردنظر (مثلا td و یا....) و رایت کردن از طریق کدنویسی جاوااسکریپت این امر ممکن است

Farhad.B.S
یک شنبه 02 مرداد 1384, 22:16 عصر
ذخیره این گونه اطلاعات در دیتابیس و خواندن آن ها با هر مراجعه بار بسیار سنگینی رو به سرور وارد میکنه (برنامه شما تک کاربره نیست ! ممکنه 10-100-1000 کاربر به طور همزمان صفحه شما رو ببینند).
این مقوله به دو قسمت تقسیم میشه ، یکی مطالبی هستند که دیتا محسوب نمیشند بلکه UI رو تشکیل میدند ، مواردی مثل عناوین دکمه ها ، لیبل ها و ...
برای این گونه موارد میتوانید :
1.از فایل های ریسورس استفاده کنید (با ذخیره آدرسی از کنترل مورد نظر به عنوان کلید و تکست نمایشی کنترل به عنوان مقدار).
و سرانجام نوشتن تابعی عمومی که بر اساس قواعدی که از پیش تعیین شده به طور داینامیک تکست هر کنترل رو از این ریسورس ها خونده و به اون نسبت بده (جای این تابع معمولا در کلاس پایه ای هست که صفحات از اون مشتق میشند)

2.استفاده از اسکین های ایجاد شده توسط کاربر برای هر زبان. به طور خلاصه تو این روش ابتدا کاربر برنامه شما (یا خود شما، به طور کلی skin designer) یک اسکین رو متناسب با کنترل های حقیقی موجود در هر صفحه در قالب یک html ساده برای هر زبان ایجاد میکنه ، سپس موتور skining شما از فایل html ایجاد شده یک user control ساخته (فقط یکبار) و بعد از اون در صفحات مختلف این user control ها به طور داینامیک لود میشند.
مزیت این روش perormance بالاتر اونه ، همونطور که مشخصه دیگه لازم نیست با هر بار لود صفحات تکست هر کنترل مقدار دهی بشه.
(استفاده شده در DNN ، برای اطلاعات بیشتر میتونید به داکیومنت های DNN مراجعه کنید)