نمایش نتایج 1 تا 5 از 5

نام تاپیک: بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

  1. #1

    بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    روستای چناران شهرستان نیشابور
    پست
    236

    نقل قول: بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

    سلام
    من قبلا تو یک پروژه دات نت نیوک دیدم برای هر زبان یک فایل xml بود که کلمات توش نوشته بود و موقع تفیر زبان نام مسیر فایل xml رو تغییر میداد
    بنظرم دیتابیس روش خوبی نیست
    اگه سرچی بزنید فکر کنم به نتیجه برسید
    لینک زیر رو هم ببینید
    https://stackoverflow.com/questions/...ge-net-project

  3. #3
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    33
    پست
    661

    نقل قول: بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

    من از Westwind.Globalization استفاده کردم. خیلی ساده و خوبه. تا الانم که به مشکلی نخوردم.
    https://github.com/RickStrahl/Westwind.Globalization
    ضمن اینکه در حین اضافه کردن قابلیت چندزبانی، از روی smart Store ایده میگرفتم و یه سری بخش ها رو مشابه اون زدم

  4. #4

    نقل قول: بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

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

    نکته:مترجم رو با لوکالایزر اشتباه نگیرید، لوکالایزیشن ای که همه جا توضیح داده شده مربوط به محتوی استتیک هست شما اخبار رو نمیتونید با این روش لوکالایز کنید.

  5. #5
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    33
    پست
    661

    نقل قول: بهترین راه برای سایت چند زبانه با قابلیت مدیریت زبان و ترجمه ها

    اگه منظورتون از
    نقل قول نوشته شده توسط EnKamran مشاهده تاپیک
    بهترین راه پکیجی هست که دوستمون معرفی کردن
    چیزیه که من گفتم، اون هم توی دیتابیس ذخیره میکنه. که خودش مدیریتش رو داره، خودتون هم بخواید میتونید بنویسید. این برای متن های جزئی و استاتیک هست.
    برای داینامیک هم من اطلاعات مثلا page رو توی یه جدول دارم. بعد یه جدول دیگه دارم برای زبان های دیگه که همه مدل هام توی اون ذخیره میشه. و فیلد هاش تغریبا اینه:
    EntityType: اسم جدول
    EntityColumn: اسم ستونی از اون جدول که قراره ترجمه براش قرار داده بشه
    Lang: زبان
    Content: محتوای اون ستون برای این زبان
    (ساختار دقیقش یادم نیست. همچین چیزیه. اگه کسی دقیقشو خواست بگه که بذارم.)
    و بعد موقع درخواست محتوا، کوئری رو طوری مینویسیم که برای زبان غیر پیشفرض بره از این جدول بخونه.

تاپیک های مشابه

  1. سوال: روش آپلود کردن سایت بر روی هاست و مدیریت محتوای سایت...
    نوشته شده توسط vahid1993 در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: جمعه 07 خرداد 1395, 19:48 عصر
  2. پاسخ: 3
    آخرین پست: چهارشنبه 02 اردیبهشت 1394, 12:02 عصر
  3. سوال: تشخیص سیستم مدیریت سایت ها و تغییر آدرس ورود به مدیریت CMS ها
    نوشته شده توسط iconsco در بخش توسعه وب (Web Development)
    پاسخ: 5
    آخرین پست: شنبه 20 خرداد 1391, 19:12 عصر
  4. سوال: مگر 8 بیت یک بایت نمی شود پس چگونه در این الگوریتم تعداد بیت ها یک بایت میشوند؟
    نوشته شده توسط complexcoding در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: دوشنبه 14 فروردین 1391, 15:21 عصر
  5. هزینه های احتمالی یک وبسایت تجاری در صورت رعایت کپی رایت
    نوشته شده توسط میلاد قاضی پور در بخش گفتگوی عمومی کامپیوتر و فناوری اطلاعات
    پاسخ: 5
    آخرین پست: یک شنبه 30 آبان 1389, 08:22 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •