سبد (0)

آموزش اندروید-پشتیبانی از زبان ها

آن چه در این آموزش فرا می گیرید:

  1. ایجاد دایرکتوری های مربوط به هر زبان
  2. استفاده از منابع رشته ای

مواردی که باید مطالعه کرده باشید:

  • محلی سازی

آموزش پشتیبانی از زبان های مختلف در اندروید

یک کار مفید در برنامه نویسی اندروید، جدا کردن و استخراج stringهای UI از کدهای برنامه و نگه داشتن این رشته ها داخل یک فایل خارجی است. در پروژه های اندروید این کار با استفاده از دایرکتوری منابع (resources) قابل انجام است.

اگر پروژه ی اندرویدتان را با استفاده از ابزار SDK Tools ایجاد کرده اید (آموزش اندروید-ایجاد پروژه اندروید را مطالعه نمایید)، این ابزار یک دایرکتوری res/ در بالاترین سطح پروژه ایجاد می کند. داخل دایرکتوری res/ دایرکتوری هایی برای انواع منابع مختلف وجود دارد. به علاوه تعدادی فایل پیش فرض از قبیل res/values/strings.xml نیز که مقادیر مربوط به رشته های شما را نگه می دارد در این فولدر وجود دارد.


ایجاد دایرکتوری های مربوط به هر زبان و فایل های string

برای ایجاد قابلیت پشتیبانی از چند زبان، یک دایرکتوری اضافه values داخل res/ ایجاد کنید که حاوی یک هایفن کد زبان ISO در پایان نام دایرکتوری می باشد. برای مثال، دایرکتوری values-es/ حاوی منابع ساده برای زبانی است که کد زبانی استاندارد آن es می باشد. اندروید منابع رشته ای مناسب که با تنظیمات این زبان سازگار است را هنگام اجرا بارگذاری می کند.

هنگامی که شما تصمیم می گیرید که زبان دیگری را در برنامه ی تان پشتیبانی کنید، یک دایرکتوری منبع و فایل های منبع رشته را داخل res/ ایجاد کنید. برای مثال:

ساختار دایرکتوری ها برای پشتیبانی زبان های مختلف

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

مقادیر رشته ی مربوط به هر زبان را داخل فایل های متناسب آن زبان اضافه کنید.

در زمان اجرا دستگاه های اندروید، از مجموعه منابع رشته ای استفاده می کنند که منطبق با تنظیمات زبان دستگاه اندروید می باشد. این تنظیمات زبان در حال حاضر توسط کاربر دستگاه تنظیم شده است.

برای مثال، در ادامه برخی از فایل های رشته ای برای زبان های مختلف ذکر شده است.

برای انگلیسی (زبان پیش فرض):

 فایل string برای پشتیبانی زبان انگلیسی

/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

برای اسپانیایی:

 فایل string برای پشتیبانی زبان اسپانیایی

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mi Aplicación</string>
    <string name="hello_world">Hola Mundo!</string>
</resources>

برای فرانسه:

 فایل string برای پشتیبانی زبان اسپانیایی

/values-fr/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

استفاده از منابع رشته ای

شما می توانید در کدهای منبع خود یا در فایل های XML خود به منابع رشته ای تان ارجاع دهید.

به منابع رشته می توان با استفاده از نام منبعی که در خصوصیت name عنصر <string> تعریف شده است، ارجاع داد.

در کد منبع، خود، می توانید با استفاده از سیتکس <R.string.<string_name به یک منبع رشته ارجاع دهید. روش های متعددی برای قبول یک رشته منبع وجود دارد. برای مثال:

مثال (آموزش اندروید-پشتیبانی از زبان ها)


// دریافت رشته از منابع
String hello = getResources().getString(R.string.hello_world);

// یا فراهم کردن منبع برای یک متد که به رشته نیاز دارد
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

با استفاده از سینتکس <string/<string_name@ در فایل های XML، می توان به یک منبع رشته ارجاع کرد.

برای مثال:

مثال:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
 
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه