بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ایجاد چند گزینه برای انتخاب زبان(برنامه چند زبانه)

مدیریت گفتگو
hassan 10 سال پیش
آخرین تغییر: 9 سال پیش

سلام

میخوام یک برنامه بنویسم که هربار اجرا میشه تو صفحه اول کاربر بین 3 زبان فارسی و عربی و انگلیسی یکیشو انتخاب کنه

وتمام محتویات برنامه  به زبون انتخابی دیده بشه اگه کمکم کنین و بگین برا این صفحه چه کدی بنویسم ممنون میشم

 

نظرات

پاسخ‌ها 1

HoCoder 10 سال پیش

سلام

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

مثلا برای فارسی valuse-fa رو بسازید و تمامی string ها درونش فارسی بنویسید دقت کنید با name های  که در فولدر valuse نوشین برای زبان انگلیسی یکسان باشن

و بعد یه custom spinner مخصوص خودتون رو بسازید با ورودی زبان های دلخواه یا Dialog بسازید

من custom spinner رو ترجیح میدم و این مثال کد هم میتونید برای تغییر زبان استفاده کنید

این کد رو هم در manifest بنویسید

 android:configChanges="locale|orientation"

این هم کد جاوا

 public class AndroidLocalize extends Activity {
Spinner spinnerctrl;
Button btn;
Locale myLocale;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinnerctrl = (Spinner) findViewById(R.id.spinner1);
spinnerctrl.setOnItemSelectedListener(new OnItemSelectedListener() {

public void onItemSelected(int pos) {

if (pos == 1) {

Toast.makeText(G.context,"You have selected Persian", Toast.LENGTH_SHORT).show();
setLocale("fa");
} else if (pos == 2) {

Toast.makeText(G.context,"You have selected English", Toast.LENGTH_SHORT).show();
setLocale("en");
}

}

});
}

public void setLocale(String lang) {

myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, AndroidLocalize.class);
startActivity(refresh);
}
}

نظرات

hassan 10 سال پیش
ممنون از کمکتون مشکل حل شد
Mir Unknown 9 سال پیش
من با انتخاب کاربر زبان رو تغییر میدم امادو مشکل دارم یکی این که برنامه رو باید ببنده باز کنه تا زبان تغییر کنه دوم این که فقط استرینگ ها تغییر میکنه لایوت ها تغییر نمیکنن من میخوام وقتی فارسی کرد لایه ها مربوط به زبان فارسی بیان با این که زبان گوشی انگلیسیه

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .