توی این آموزش ، یه برنامه با همدیگه میسازیم که از چهار زبان مختلف پشتیبانی کنه : اسپانیایی ، فارسی ، فرانسه ای و انگلیسی ! 

خوب ، اول از همه یه پروژه توی اندروید استودیو میسازیم . حالا ، توی پوشه Values و فایل Strings.xml که نوشته های برنامه اندروید رو توی این فایل می نویسیم ، راست کلیک میکنیم و گزینه Open Translations Editor رو انتخاب میکنیم : 

حالا ، توی پنجره باز شده ، از سمت چپ و بالا روی آیکن Add Locale کلیک میکنیم : 

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

زبان پیشفرض که انگلیسی هست و کد en رو داره . دومین زبانمون با کد es مربوط به زبان اسپانیایی هست ، زبان سوم با کد fa زبان فارسی هست و زبان چهارم با کد fr مربوط به زبان فرانسه هست . حالا ما باید تمام چیزهایی که توی فایل string.xml اصلی هست رو کپی کنیم و توی اون سه تا فایل ( زبان ) پیست کنیم . زبان پیشفرض ما انگلیسی هست با این کدها : 

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

واسه زبان های اسپانیایی و فرانسه هم عملیات ترجمه رو به همین روش انجام میدیم ( میتونید از گوگل ترنزلیت کمک بگیرید ) . 

حالا توی لایوت خودمون ، یه سری تکست ویو  و ادیت تکست و Button قرار میدیم و نکته مهم اینه که واسه دادن متن بهشون ، از فایل strings.xml اصلی استفاده میکنیم . لایه گرفیکی ما با این کدها : 

حالا میایم و توی اکتیویتی اصلی ، یه دایالوگ تعریف میکنیم و اون ۴ تا زبان رو بهش میدیم و میگیم یه آرایه هست با چهار تا عنصر که زمانی که دایالوگ نمایش داده شد ، اگه ۰ انتخاب شد ، منظورمون اولین زبان توی لیست هست که کاربر انتخاب کرده ، اگه ۱ بود دومین زبان و به همین ترتیب …

توی کدهای بالا ، اگه دقت کنید ( مثه وقتی که یه دختر از توی خیابون رد میشه و بهش دقت میکنید ! ) ، یه تابع استفاده کردیم به نام setLocale که این تابع ، انگاری کار اصلی که همون تعیین زبان هست رو انجام میده . به عبارت دیگه ، تعیین میکنه که کدوم فایل strings.xml باید لود بشه تا لایه گرافیکی ما ، متن ها رو ازش بخونه . این کدهای تابع setLocale هست : 

میخوایم کاری کنیم ، که وقتی کاربر یه زبان رو انتخاب کرد ، و وقتی از برنامه خارج شد ، همون زبان توی برنامه ذخیره بشه ، یعنی وقتی کاربر دوباره به برنامه مراجعه کرد ، همون زبان رو واسش نشون بده و نه زبان پیشفرض ( انگلیسی ) . از SharedPreferences استفاده میکنیم : 

و در آخر ، میخوایم با انتخاب هر زبان ، متنی که توی اکشن بار برنامه هم نشون داده میشه تغییر کنه . ( اگه کد پایین رو اضافه نکنیم ، برنامه بازم اجرا میشه ، منتها واسه هر چهار تا زبان ، فقط متن پیشفرض که انگلیسی باشه رو نشون میده . )  واسه ترجمه متن اکشن بار : 

بسیار خوب ! وقت آن رسیده است که برنامه رو اجرا کنیم : 


 

واسه دانلود سورس ، میتونید برنامه اندروید لایف رو از کافه بازار نصب کنید و از اونجا سورس رو دانلود کنید

آموزش ساخت برنامه اندروید چند زبانه

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *