اندروید در بسیاری از مناطق در بسیاری از دستگاه ها اجرا می شود. برای دسترسی به بیشترین کاربران، مطمئن شوید که برنامه شما متن، فایلهای صوتی، اعداد، واحد پول و گرافیک را به روشهایی متناسب با محلی که برنامه شما در آن استفاده میشود، مدیریت میکند.
این صفحه بهترین روشها را برای بومیسازی برنامههای Android توضیح میدهد.
شما باید دانش کاری کاتلین یا زبان برنامه نویسی جاوا داشته باشید و با بارگذاری منابع اندروید ، اعلام عناصر رابط کاربری در XML ، ملاحظات توسعه مانند چرخه حیات فعالیت ، و اصول کلی بین المللی سازی و بومی سازی آشنا باشید.
تمرین خوبی است که از چارچوب منابع Android استفاده کنید تا جنبه های محلی سازی شده برنامه خود را تا حد امکان از عملکرد اصلی برنامه جدا کنید.
- همانطور که در این صفحه و در نمای کلی منابع برنامه توضیح داده شده است، بیشتر یا همه محتویات رابط کاربری برنامه خود را در فایل های منبع قرار دهید.
- رفتار رابط کاربری، از سوی دیگر، توسط کد مبتنی بر Kotlin یا جاوا شما هدایت می شود. برای مثال، اگر کاربران دادههایی را وارد میکنند که نیاز به قالببندی یا مرتبسازی متفاوتی بسته به محلی دارند، از Kotlin یا زبان برنامهنویسی جاوا برای مدیریت دادهها به صورت برنامهنویسی استفاده میکنید. این صفحه نحوه بومی سازی کدهای مبتنی بر Kotlin یا Java را پوشش نمی دهد.
برای راهنمایی کوتاه برای بومی سازی رشته ها در برنامه خود، به پشتیبانی از زبان ها و فرهنگ های مختلف مراجعه کنید.
نمای کلی: تغییر منابع در اندروید
منابع عبارتند از رشتههای متنی، طرحبندیها، صداها، گرافیکها و هر داده ثابت دیگری که برنامه اندروید شما به آن نیاز دارد. یک برنامه می تواند شامل چندین مجموعه از منابع باشد که هر کدام برای پیکربندی دستگاه متفاوتی سفارشی شده اند. هنگامی که یک کاربر برنامه را اجرا می کند، Android به طور خودکار منابعی را که به بهترین وجه با دستگاه مطابقت دارد انتخاب و بارگذاری می کند.
این صفحه بر روی محلی سازی و محلی سازی تمرکز دارد. برای توضیح کامل تغییر منبع و همه انواع پیکربندیهایی که میتوانید تعیین کنید، مانند جهت صفحه یا نوع صفحه لمسی، به ارائه منابع جایگزین مراجعه کنید.
هنگامی که برنامه خود را می نویسید، منابع پیش فرض و جایگزین را برای استفاده از برنامه خود ایجاد می کنید. هنگامی که کاربران برنامه شما را اجرا می کنند، سیستم Android بر اساس محلی بودن دستگاه انتخاب می کند که کدام منابع بارگیری شود. برای ایجاد منابع، فایلها را در زیرشاخههایی با نامهای خاص دایرکتوری res/
پروژه قرار میدهید.
چرا منابع پیش فرض مهم هستند
وقتی برنامه در هر محلی اجرا میشود که متنی برای آن ارائه نکردهاید، Android رشتههای پیشفرض را از res/values/strings.xml
بارگیری میکند. اگر این فایل پیشفرض وجود نداشته باشد، یا رشتهای که برنامه شما به آن نیاز دارد را نداشته باشد، برنامه شما اجرا نمیشود و خطا نشان میدهد. مثال زیر نشان می دهد که وقتی فایل متنی پیش فرض ناقص باشد چه اتفاقی می افتد.
مثال:
کد مبتنی بر Kotlin یا جاوا یک برنامه فقط به دو رشته text_a
و text_b
اشاره دارد. این برنامه شامل یک فایل منبع محلی ( res/values-en/strings.xml
) است که text_a
و text_b
را به انگلیسی تعریف می کند. این برنامه همچنین شامل یک فایل منبع پیشفرض ( res/values/strings.xml
) است که شامل تعریفی برای text_a
است، اما نه برای text_b
.
- هنگامی که این برنامه در دستگاهی با زبان انگلیسی تنظیم شده راه اندازی می شود، برنامه ممکن است بدون مشکل اجرا شود، زیرا
res/values-en/strings.xml
شامل هر دو رشته متن مورد نیاز است. - با این حال، هنگامی که این برنامه بر روی دستگاهی راه اندازی می شود که به زبانی غیر از انگلیسی تنظیم شده است، کاربر یک پیام خطا و یک دکمه Force Close را می بیند. برنامه بارگیری نمی شود.
برای جلوگیری از این وضعیت، مطمئن شوید که یک فایل res/values/strings.xml
وجود دارد و هر رشته مورد نیاز را تعریف می کند. این وضعیت برای همه انواع منابع اعمال میشود، نه فقط رشتهها: شما باید مجموعهای از فایلهای منبع پیشفرض را ایجاد کنید که حاوی تمام منابعی باشد که برنامه شما با آنها تماس میگیرد، مانند طرحبندیها، طرحبندیها یا انیمیشنها. برای کسب اطلاعات در مورد آزمایش، به بخش تست منابع پیش فرض مراجعه کنید.
از منابع برای بومی سازی استفاده کنید
این بخش نحوه ایجاد منابع پیش فرض و همچنین منابع جایگزین را مورد بحث قرار می دهد. همچنین توضیح می دهد که چگونه به منابع اولویت داده می شود و چگونه به منابع خود در کد مراجعه می کنید.
منابع پیش فرض ایجاد کنید
متن پیشفرض برنامه را در res/values/strings.xml
قرار دهید. برای این رشتهها، از زبان پیشفرض استفاده کنید - زبانی که انتظار دارید بیشتر کاربران برنامهتان صحبت کنند.
مجموعه منابع پیشفرض همچنین شامل هر طرحبندی و طرحبندی پیشفرض میشود و میتواند شامل انواع منابع دیگر مانند انیمیشنها باشد. این منابع در دایرکتوری های زیر قرار می گیرند:
-
res/drawable/
: دایرکتوری مورد نیاز که حداقل یک فایل گرافیکی را برای نماد برنامه در Google Play در خود دارد. -
res/layout/
: دایرکتوری مورد نیاز حاوی یک فایل XML که طرحبندی پیشفرض را تعریف میکند -
res/anim/
: اگر پوشههایres/anim- <qualifiers>
دارید لازم است -
res/xml/
: اگر پوشههایres/xml- <qualifiers>
دارید، لازم است -
res/raw/
: اگر پوشههایres/raw- <qualifiers>
دارید لازم است
نکته: در کد خود، هر مرجع به یک منبع اندروید را بررسی کنید. اطمینان حاصل کنید که یک منبع پیش فرض برای هر یک تعریف شده است. همچنین مطمئن شوید که فایل رشته پیشفرض کامل است: یک فایل رشته محلی میتواند شامل زیرمجموعهای از رشتهها باشد، اما فایل رشته پیشفرض باید همه آنها را داشته باشد.
منابع جایگزین ایجاد کنید
بخش بزرگی از بومی سازی یک برنامه، ارائه متن جایگزین برای زبان های مختلف است. در برخی موارد، گرافیکهای جایگزین، صداها، طرحبندیها و سایر منابع محلی خاص را نیز ارائه میدهید.
یک برنامه میتواند دایرکتوریهای res/ <qualifiers> /
بسیاری را مشخص کند که هر کدام دارای واجد شرایط متفاوت هستند. برای ایجاد یک منبع جایگزین برای محلی متفاوت، از یک واجد شرایط استفاده می کنید که یک زبان یا یک ترکیب زبان-منطقه را مشخص می کند. نام دایرکتوری منبع باید با طرح نامگذاری شرح داده شده در ارائه منابع جایگزین مطابقت داشته باشد، در غیر این صورت برنامه شما نمی تواند کامپایل شود.
مثال:
فرض کنید زبان پیشفرض برنامه شما انگلیسی است و میخواهید تمام متن برنامهتان را به زبان فرانسوی و تمام متنها به جز عنوان برنامه را به زبان ژاپنی بومیسازی کنید. در این مورد، شما سه فایل strings.xml
ایجاد میکنید که هر کدام در یک فهرست منبع خاص ذخیره میشوند:
-
res/values/strings.xml
حاوی متن انگلیسی برای تمام رشتههایی است که برنامه استفاده میکند، از جمله متن رشتهای به نامtitle
. -
res/values-fr/strings.xml
حاوی متن فرانسوی برای همه رشته ها، از جملهtitle
. -
res/values-ja/strings.xml
حاوی متن ژاپنی برای همه رشته ها به جزtitle
.
اگر کد مبتنی بر Kotlin یا Java شما به R.string.title
اشاره دارد، در زمان اجرا چه اتفاقی می افتد:
- اگر دستگاه روی زبان دیگری غیر از فرانسوی تنظیم شده باشد، Android
title
از فایلres/values/strings.xml
بارگیری میکند. - اگر دستگاه روی فرانسوی تنظیم شده باشد، Android
title
از فایلres/values-fr/strings.xml
بارگیری می کند.
اگر دستگاه روی ژاپنی تنظیم شده باشد، Android به دنبال title
در فایل res/values-ja/strings.xml
میگردد. اما چون چنین رشته ای در آن فایل گنجانده نشده است، اندروید به حالت پیش فرض باز می گردد و title
به زبان انگلیسی از فایل res/values/strings.xml
بارگذاری می کند.
کدام منابع اولویت دارند؟
اگر چندین فایل منبع با پیکربندی دستگاه مطابقت داشته باشند، Android از مجموعه قوانینی برای تصمیم گیری برای استفاده از فایل پیروی می کند. در میان واجد شرایطی که می توان در نام فهرست منبع مشخص کرد، محلی تقریباً همیشه اولویت دارد.
مثال:
فرض کنید یک برنامه شامل یک مجموعه گرافیکی پیشفرض و دو مجموعه گرافیکی دیگر است که هر کدام برای تنظیم دستگاه متفاوتی بهینه شدهاند:
-
res/drawable/
دارای گرافیک پیش فرض -
res/drawable-small-land-stylus/
شامل گرافیک بهینه شده برای استفاده با دستگاهی است که از یک قلم انتظار ورودی دارد و دارای صفحه نمایش با چگالی کم QVGA در جهت افقی است. -
res/drawable-ja/
شامل گرافیک بهینه شده برای استفاده با ژاپنی.
اگر برنامه روی دستگاهی اجرا میشود که برای استفاده از ژاپنی پیکربندی شده است، Android گرافیکها را از res/drawable-ja/
بارگیری میکند، حتی اگر دستگاهی باشد که از یک قلم انتظار ورودی دارد و دارای صفحه نمایش با چگالی کم QVGA در جهت افقی باشد. .
استثنا: تنها واجد شرایطی که در فرآیند انتخاب بر زبان محلی اولویت دارند، کد کشور تلفن همراه (MCC) و کد شبکه تلفن همراه (MNC) هستند.
مثال:
فرض کنید شرایط زیر را دارید:
- کد برنامه
R.string.text_a
را صدا می کند . - دو فایل منبع مرتبط موجود است:
-
res/values-mcc404/strings.xml
، که شاملtext_a
در زبان پیشفرض برنامه، در این مورد انگلیسی است. -
res/values-hi/strings.xml
، که شاملtext_a
به زبان هندی است.
-
- برنامه روی دستگاهی اجرا می شود که دارای پیکربندی زیر است:
- سیم کارت به یک شبکه تلفن همراه در هند (MCC 404) متصل است.
- زبان روی هندی (
hi
) تنظیم شده است.
Android text_a
از res/values-mcc404/strings.xml
(به انگلیسی) بارگیری میکند، حتی اگر دستگاه برای هندی پیکربندی شده باشد. دلیل آن این است که در فرآیند انتخاب منبع، Android مطابقت MCC را به تطابق زبان ترجیح می دهد.
روند انتخاب همیشه آنطور که این مثال ها نشان می دهد ساده نیست. برای توضیح دقیقتر فرآیند، ببینید چگونه اندروید بهترین منبع را پیدا میکند . همه واجد شرایط به ترتیب اولویت در نمای کلی منابع برنامه توصیف و فهرست شده اند.
به منابع در کد مراجعه کنید
در کدهای مبتنی بر Kotlin یا جاوا برنامه خود، به منابعی با استفاده از نحو R. resource_type . resource_name
یا android.R. resource_type . resource_name
. برای اطلاعات بیشتر، به دسترسی به منابع برنامه خود مراجعه کنید.
رشته ها را برای بومی سازی مدیریت کنید
این بخش بهترین روشها را برای مدیریت رشتههای مرتبط با محلیسازی توضیح میدهد.
همه رشته ها را به strings.xml منتقل کنید
همانطور که برنامه های خود را می سازید، هیچ رشته ای را هاردکد نکنید. در عوض، تمام رشته های خود را به عنوان منابع در یک فایل strings.xml
پیش فرض اعلام کنید، که به روز رسانی و بومی سازی آنها را آسان می کند. رشتههای موجود در فایل strings.xml
را میتوان به راحتی استخراج، ترجمه، و با واجد شرایط مناسب، بدون هیچ تغییری در کد کامپایلشده، در برنامه شما ادغام کرد.
اگر تصاویر را با متن تولید می کنید، آن رشته ها را نیز در strings.xml
قرار دهید و پس از ترجمه، تصاویر را بازسازی کنید.
دستورالعمل های اندروید را برای رشته های رابط کاربری دنبال کنید
همانطور که UI های خود را طراحی و توسعه می دهید، به نحوه صحبت با کاربر خود توجه زیادی داشته باشید. به طور کلی، از یک سبک مختصر که دوستانه اما مختصر است استفاده کنید و از یک سبک ثابت در سراسر رابط کاربری خود استفاده کنید.
اطمینان حاصل کنید که توصیه های طراحی متریال را برای سبک نوشتن و انتخاب کلمه مطالعه کرده و دنبال کنید. انجام این کار باعث میشود برنامههای شما برای کاربر جذابتر به نظر برسند و به کاربران کمک میکند رابط کاربری شما را سریعتر درک کنند.
همچنین، همیشه از اصطلاحات استاندارد اندروید تا جایی که ممکن است استفاده کنید، مانند عناصر رابط کاربری مانند نوار برنامه، منوی گزینهها، نوار سیستم و اعلانها. استفاده صحیح و مداوم از اصطلاحات اندروید ترجمه را آسانتر کرده و محصول نهایی بهتری را برای کاربران به ارمغان میآورد.
زمینه کافی برای رشته های اعلام شده فراهم کنید
همانطور که رشته ها را در فایل strings.xml
خود اعلام می کنید، مطمئن شوید که زمینه ای که رشته در آن استفاده می شود را توضیح دهید. این اطلاعات برای مترجم بسیار ارزشمند است و باعث ترجمه با کیفیت بهتر می شود. همچنین به شما کمک می کند تا رشته های خود را به طور موثرتری مدیریت کنید.
در اینجا یک مثال است:
<!-- The action for submitting a form. This text is on a button that can fit 30 chars --> <string name="login_submit_button">Sign in</string>
ارائه اطلاعات زمینه مانند موارد زیر را در نظر بگیرید:
- این رشته برای چیست؟ چه زمانی و کجا به کاربر ارائه می شود؟
- این کجای طرح است؟ به عنوان مثال، ترجمه ها در دکمه ها نسبت به جعبه های متنی انعطاف کمتری دارند.
قسمتهای پیام را که قابل ترجمه نیستند علامتگذاری کنید
اغلب، رشته ها حاوی متنی هستند که قرار نیست به زبان های دیگر ترجمه شوند. نمونههای رایج عبارتند از یک قطعه کد، یک مکان نگهدار برای یک مقدار، یک نماد خاص یا یک نام. همانطور که رشته های خود را برای ترجمه آماده می کنید، متنی را که باید بدون ترجمه باقی بماند، جستجو کرده و علامت گذاری کنید تا مترجم آن را تغییر ندهد.
برای علامت گذاری متنی که قرار نیست ترجمه شود، از یک برچسب نگهدارنده <xliff:g>
استفاده کنید. در اینجا یک تگ مثال وجود دارد که نشان میدهد برای جلوگیری از شکستن پیام، متن "%1$s"
در حین ترجمه نباید تغییر کند:
<string name="countdown"> <xliff:g id="time" example="5 days">%1$s</xliff:g> until holiday </string>
هنگامی که یک برچسب مکاننما را اعلام میکنید، یک ویژگی ID اضافه کنید که توضیح میدهد مکاندار برای چه چیزی است. اگر برنامه شما بعداً مقدار متغیر مکان را جایگزین کرد، حتماً یک ویژگی مثال ارائه دهید تا کاربرد مورد انتظار را روشن کنید.
در اینجا چند نمونه دیگر از برچسب های مکان نگهدار وجود دارد:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Example placeholder for a special Unicode symbol --> <string name="star_rating">Check out our 5 <xliff:g id="star">\u2605</xliff:g> </string> <!-- Example placeholder for a URL --> <string name="app_homeurl"> Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g> </string> <!-- Example placeholder for a name --> <string name="prod_name"> Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g> </string> <!-- Example placeholder for a literal --> <string name="promo_message"> Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>" to get a discount. </string> ... </resources>
چک لیست بومی سازی
برای یک نمای کلی از فرآیند بومی سازی و توزیع یک برنامه Android، به ترجمه و بومی سازی برنامه خود مراجعه کنید.
نکات بومی سازی
هنگام بومی سازی برنامه خود، این نکات را دنبال کنید.
برنامه خود را طوری طراحی کنید که در هر محلی کار کند
در مورد دستگاهی که کاربر برنامه شما را روی آن اجرا می کند، چیزی را فرض نکنید. ممکن است دستگاه سختافزاری داشته باشد که شما پیشبینی نمیکردید، یا ممکن است روی محلی تنظیم شده باشد که برای آن برنامهریزی نکردهاید یا نتوانید آن را آزمایش کنید. برنامه خود را طوری طراحی کنید که بدون توجه به دستگاهی که در آن اجرا می شود، به طور عادی کار کند یا به خوبی از کار بیفتد.
مهم: مطمئن شوید که برنامه شما شامل مجموعه کاملی از منابع پیشفرض است: شامل res/drawable/
و یک res/values/
پوشهها بدون هیچ گونه تغییر دهنده اضافی در نام پوشهها، که شامل تمام تصاویر و متن مورد نیاز برنامه شما باشد.
اگر برنامهای حتی یک منبع پیشفرض را نداشته باشد، روی دستگاهی که روی یک منطقه پشتیبانینشده تنظیم شده است اجرا نمیشود. برای مثال، اگر فایل پیشفرض res/values/strings.xml
فاقد یک رشته مورد نیاز برنامه باشد، زمانی که برنامه در محلی پشتیبانینشده اجرا میشود و تلاش میکند res/values/strings.xml
را بارگیری کند، کاربر یک پیام خطا و یک پیام را میبیند. دکمه بستن اجباری
برای اطلاعات بیشتر به بخش تست منابع پیشفرض مراجعه کنید.
یک طرح بندی انعطاف پذیر طراحی کنید
اگر نیاز دارید که چیدمان خود را به گونه ای تنظیم کنید که متناسب با یک زبان خاص باشد، می توانید یک طرح بندی جایگزین برای آن زبان ایجاد کنید، مانند res/layout-de/main.xml
برای یک طرح به زبان آلمانی. با این حال، انجام این کار می تواند نگهداری برنامه شما را سخت تر کند. بهتر است یک طرح واحد ایجاد کنید که انعطاف پذیرتر باشد.
یکی دیگر از موقعیتهای معمول، زبانی است که به چیزی متفاوت در چیدمان نیاز دارد. برای مثال، ممکن است یک فرم تماس داشته باشید که شامل دو فیلد نام زمانی که برنامه به زبان ژاپنی اجرا میشود، اما سه فیلد نام زمانی که برنامه به زبان دیگری اجرا میشود، باشد. شما می توانید این کار را به دو روش انجام دهید:
- یک طرح بندی با فیلدی ایجاد کنید که می توانید بر اساس زبان برنامه نویسی آن را فعال یا غیرفعال کنید.
- طرحبندی اصلی شامل طرحبندی دیگری باشد که شامل فیلد قابل تغییر باشد. طرح دوم می تواند تنظیمات مختلفی برای زبان های مختلف داشته باشد.
از ایجاد فایل های منبع و رشته های متنی بیشتر از آنچه نیاز دارید خودداری کنید
احتمالاً نیازی به ایجاد یک جایگزین خاص برای هر منبع در برنامه خود ندارید. به عنوان مثال، طرح تعریف شده در فایل res/layout/main.xml
ممکن است در هر محلی کار کند، در این صورت نیازی به ایجاد هیچ فایل طرح بندی جایگزینی نیست.
همچنین، ممکن است نیازی به ایجاد متن جایگزین برای هر رشته نداشته باشید. برای مثال موارد زیر را فرض کنید:
- زبان پیشفرض برنامه شما انگلیسی آمریکایی است. هر رشته ای که برنامه استفاده می کند با استفاده از املای انگلیسی آمریکایی در
res/values/strings.xml
تعریف می شود. - برای چند عبارت مهم، می خواهید املای انگلیسی بریتانیایی را ارائه دهید. میخواهید وقتی برنامه شما روی دستگاهی در بریتانیا اجرا میشود، از این رشتههای جایگزین استفاده شود.
برای انجام این کار، یک فایل کوچک به نام res/values-en-rGB/strings.xml
ایجاد کنید که فقط رشته هایی را در بر می گیرد که هنگام اجرای برنامه در بریتانیا متفاوت هستند. برای بقیه رشته ها، برنامه به حالت پیش فرض برمی گردد. و از آنچه در res/values/strings.xml
تعریف شده است استفاده می کند.
از شی متن Android برای جستجوی محلی محلی استفاده کنید
همانطور که در مثال زیر نشان داده شده است، میتوانید با استفاده از شی Context
که Android در دسترس قرار میدهد، محلی را جستجو کنید:
کاتلین
val primaryLocale: Locale = context.resources.configuration.locales[0] val locale: String = primaryLocale.displayName
جاوا
Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0); String locale = primaryLocale.getDisplayName();
از خدمات ترجمه اپلیکیشن استفاده کنید
سرویس ترجمه برنامه در کنسول Play ادغام شده است. این به شما امکان می دهد قیمت فوری دریافت کنید و با یک شرکت ترجمه سفارش دهید. میتوانید برای رشتههای رابط کاربری برنامه، متن فهرست فروشگاه Play، نامهای IAP و متن کمپین تبلیغاتی، ترجمهها را به یک یا چند زبان سفارش دهید.
برنامه های بومی سازی شده را تست کنید
برنامه بومی سازی شده خود را روی دستگاه یا با استفاده از شبیه ساز اندروید آزمایش کنید. به ویژه، برنامه خود را آزمایش کنید تا مطمئن شوید که تمام منابع پیش فرض لازم گنجانده شده است.
تست روی دستگاه
به خاطر داشته باشید که دستگاهی که روی آن آزمایش میکنید ممکن است تفاوت قابل توجهی با دستگاههای موجود در سایر مکانها برای مصرفکنندگان داشته باشد. زبان های موجود در دستگاه شما می تواند با موارد موجود در دستگاه های دیگر متفاوت باشد. همچنین، وضوح و چگالی صفحه نمایش دستگاه ممکن است متفاوت باشد، که می تواند بر نمایش رشته ها و موارد ترسیمی در رابط کاربری شما تأثیر بگذارد.
برای تغییر زبان یا زبان یک دستگاه، از برنامه تنظیمات استفاده کنید.
تست روی شبیه ساز
برای جزئیات بیشتر در مورد استفاده از شبیه ساز، به اجرای برنامه ها در شبیه ساز Android مراجعه کنید.
ایجاد و استفاده از محلی سفارشی
محلی "سفارشی" ترکیبی از زبان یا منطقه است که تصویر سیستم اندروید به صراحت از آن پشتیبانی نمی کند. میتوانید با ایجاد یک منطقه محلی سفارشی در شبیهساز، نحوه اجرای برنامه خود را در یک منطقه سفارشی آزمایش کنید. دو راه برای این کار وجود دارد:
- از برنامه Custom Locale استفاده کنید که از برگه برنامه قابل دسترسی است. پس از ایجاد یک منطقه محلی سفارشی، با لمس و نگه داشتن نام منطقه به آن تغییر مکان دهید.
- همانطور که در بخش زیر توضیح داده شده است، از پوسته
adb
به یک محلی سفارشی تغییر دهید.
وقتی شبیه ساز را روی محلی تنظیم می کنید که در تصویر سیستم اندروید موجود نیست، خود سیستم به زبان پیش فرض خود نمایش داده می شود. با این حال، برنامه شما به درستی بومی سازی می شود.
محلی شبیه ساز را از پوسته adb تغییر دهید
برای تغییر محلی در شبیه ساز با استفاده از پوسته adb
، موارد زیر را انجام دهید:
- محلی را که می خواهید آزمایش کنید انتخاب کنید و برچسب زبان BCP-47 آن را تعیین کنید، مانند
fr-CA
برای فرانسوی کانادایی. - یک شبیه ساز راه اندازی کنید.
- از یک پوسته خط فرمان در رایانه میزبان، دستور زیر را اجرا کنید:
adb shell
یا اگر دستگاهی متصل دارید، با افزودن گزینه-e
مشخص کنید که شبیه ساز را می خواهید:
adb -e shell
- در اعلان پوسته
adb
(#
)، این دستور را اجرا کنید:
setprop persist.sys.locale [ BCP-47 language tag ];stop;sleep 5;start
بخش های پرانتزی را با کدهای مربوطه از مرحله 1 جایگزین کنید.
به عنوان مثال، برای آزمایش به زبان فرانسوی کانادایی:
setprop persist.sys.locale fr-CA;stop;sleep 5;start
این باعث می شود شبیه ساز دوباره راه اندازی شود. هنگامی که صفحه اصلی دوباره ظاهر شد، برنامه خود را مجدداً راه اندازی کنید و برنامه با محلی جدید راه اندازی می شود.
منابع پیش فرض را تست کنید
برای آزمایش اینکه آیا یک برنامه شامل هر منبع رشته ای است که نیاز دارد، موارد زیر را انجام دهید:
- شبیه ساز یا دستگاه را روی زبانی تنظیم کنید که برنامه شما از آن پشتیبانی نمی کند. به عنوان مثال، اگر برنامه دارای رشته های فرانسوی در
res/values-fr/
است اما هیچ رشته اسپانیایی درres/values-es/
ندارد، سپس محلی شبیه ساز را روی اسپانیایی تنظیم کنید. می توانید از برنامه Custom Locale برای تنظیم شبیه ساز به محلی پشتیبانی نشده استفاده کنید. - برنامه را اجرا کنید.
- اگر برنامه یک پیام خطا و یک دکمه بستن اجباری نشان میدهد، ممکن است به دنبال رشتهای باشد که در دسترس نیست. مطمئن شوید که فایل
res/values/strings.xml
شما دارای تعریفی برای هر رشته ای است که برنامه استفاده می کند.
اگر آزمایش موفقیت آمیز بود، آن را برای انواع دیگر تنظیمات تکرار کنید. برای مثال، اگر برنامه دارای یک فایل طرحبندی به نام res/layout-land/main.xml
اما حاوی فایلی به نام res/layout-port/main.xml
نیست، سپس شبیهساز یا دستگاه را روی جهت عمودی تنظیم کنید و ببینید که آیا برنامه اجرا می شود