آموزش WPF

مباحث پایه WPF

مثال های کاربردی WPF

محلی سازی در WPF – آموزش WPF

  • پنجشنبه ۲۸ مرداد ۱۴۰۰
  • بازدید ۸۰ نفر

wpf localization 10691 تصویر

محلی سازی در WPF

محلی سازی (Localization) به معنای ترجمه منابع برنامه به یک نسخه محلی برای یک زبان و فرهنگ خاص است. هر چقدر که تعداد زبان های پشتیبانی شده نرم‌افزار شما بیشتر باشد، تعداد مشتری ها و استفاده کنندگان آن نیز بیشتر خواهد بود. در WPF محلی سازی بسیار راحت و ساده است.

مثال

در این مثال برنامه ما از زبان های انگلیسی و روسی پشتیبانی خواهد کرد. یک پروژه جدید با نام WPFLocalization ایجاد کرده و آن را مانند نمونه زیر تغییر دهید. پوشه Properties موجود در Solution Explorer را باز کرده و فایل Resources.resx را باز کنید.

wpf localization 10691 1 تصویر

سپس نوع دسترسی آن را به Public تغییر دهید تا در کد XAML هم قابل دسترس باشد:

wpf localization 10691 2 تصویر

حال مانند تصویر زیر چند مورد را به آن اضافه کنید:

wpf localization 10691 3 تصویر

از فایل Resources.resx دو کپی گرفته و نام یکی را Resources.en.resx و دیگری را Resources.ru-RU.resx قرار دهید. فایل Resources.resx منبع پیشفرض است و اگر هیچ منبع خاصی مشخص نشود، از آن استفاده خواهد شد. این نام گذاری بر اساس قوانین نامگذاری است که کشور و منطقه را مشخص می کند. برای اطلاعات بیشتر به لینک زیر مراجعه کنید.

National Language Support (NLS) API Reference

مقادیر فایل Resources.ru.RU.resx را مانند نمونه زیر به روسی تغییر دهید:

wpf localization 10691 4 تصویر

حال محتوای فایل MainWindow.xaml را به شکل زیر تغییر دهید:

بخش های جدید در کد فوق:

  • فضای نام مربوط به منابع که در پوشه Properties قرار دارند:

  • استفاده از مقدار تعریف شده در منابع به جای نوشتن آن ها به صورت hard-coded:

زمانی که مثال فوق را کامپایل و اجرا کنید، خروجی زیر را تولید خواهد کرد:

wpf localization 10691 5 تصویر

از آن جایی که مشخص نکردیم از کدام منبع باید استفاده شود، منبع پیشفرض (Resources.resx) استفاده شده است. اگر بخواهیم از منبع روسی استفاده کنیم، باید در فایل App.xaml.cs آن Culture مربوط به برنامه را تنظیم کنیم:

حال اگر برنامه را اجرا کنید، خروجی زیر را مشاهده خواهید کرد:

wpf localization 10691 6 تصویر

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است