PDA

View Full Version : ساخت نرم افزار دو زبانه



zahra.mf
دوشنبه 12 خرداد 1393, 19:52 عصر
سلام
من یه نرم افزار به زبان فارسی نوشتم الان بنا بر نیاز می خوام به یه زبان دیگه هم این نرم افزار نوشته بشه
می خوام بدونم امکانش هست که این انتخاب و به کاربر بدم تا خودش همون اول زبان نرم افزار و انتخاب کنه؟
اگه میشه این کار و کرد میشه راهنمایی کنید که چطور میشه این کار و انجام بدم؟

hamedjj
دوشنبه 12 خرداد 1393, 20:22 عصر
اول باید پوشه زبانی که میخوای درست بزاری را در res درست کنی
res/values-fa

بعد همون اول برنامه یه دایلاگ قرار میدی که زبان را انتخاب کنه

بعد با این کد زبان را تغییر میدی:

Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().upd ateConfiguration(config, null)

zahra.mf
سه شنبه 13 خرداد 1393, 00:09 صبح
من متن هایی که میخوام به دوزبان باشند به صورت فایل متنی و text هستند و توی text view فراخوانی شدن که داخل پوشه raw قرارشون دادم فکر نکنم این روش جواب بده!
درست فکر میکنم؟ یا متوجه روش نشدم؟
اگه جواب نمیده راه دیگه ای برای این کار هست؟
و این که این روش برای چه جور متن هایی هست؟

ممنون

hamedjj
سه شنبه 13 خرداد 1393, 00:20 صبح
یهنی برنامه به یه زبان نوشته شده
2 تا متن مثلا انگلیسی و قارسی داری و میخوای کاربر هر کدوم را انتخاب کرد نمایش داده بشه درسته؟

zahra.mf
سه شنبه 13 خرداد 1393, 00:27 صبح
بله برنامه به زبان فارسی هست و متن ها همه توی فایل های text قرار داره و هر کدوم تو یه صفحه (اکتیویتی) هست
حالا میخوام برنامه دو زبانه بشه میخوام بدونم لازمه فایل های text و به زبان دوم ترجمه کنم و دوباره اکتیویتی بسازم یا راه دیگه ای هست؟

hamedjj
سه شنبه 13 خرداد 1393, 00:36 صبح
دوتا فایل text میسازی یکی فارسی دیگری انگلیسی بعد تو اکتیویتی یه شرط if میزاری که اگه اولی را انتخاب کرد اینو نشون بده و اگه دومی اونو.

درباره سوالت راستش یه خورده نامفهومه انگار داری میگی که راهی هست اندروید فایل های text را خودش ترجمه کنه؟
که اگه همین باشه ... نه نیست ... من که تاحالا همچین چیزی به گوشم نخورده

zahra.mf
سه شنبه 13 خرداد 1393, 00:44 صبح
نه منطورم همون شرط if هست میشه یه جا بپرسم درباره زبان برنامه بعد بر اساس همون سوال تو هر اکتیویتی شرط if رو قرار بدم؟
چون اکتیویتی ها و فایل های متنی خیلی زیاده!!
اون روشی که گفتید هم میشه بگید برا کجا کاربرد داره؟آخه کد دادید برا تغیییر زبان!!!

hamedjj
سه شنبه 13 خرداد 1393, 00:59 صبح
میتونی یه متغییر جهانی از نوع String تو یک اکتیویتی تعریف کنی و مقدارش را خالی بزاری
بعد تو همون اکتیویتی گزینه های زبان را بزاری که مثلا اگر فارسی بود مقدار متغییر بشه fa
بعد تو هر جای دیگه از برنامه که خواستی اون متغییر را صدا میزنی که تو دستور if میگی اگر مغییر برابر fa بود متن فارسی را نشان بده واگر نه متن انگلیسی را نمایش بده.

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

در مورد اول مثلا یه برنامه (خود برنامه نه متن) به 10 زبان درست شده. خوب زبان دستگاه اندروید هر چی باشه خودش تشخیص میده و فایل string همون زبان را میخونه اما اگر بخوای کاربر زبان برنامه را انتخاب کنه از کد بالا استفاده میکنی