Locale.getDefault() ব্যবহার করে ডিভাইস ভাষা জানুন
এই সহজ উদাহরণটি দেখায় কিভাবে ব্যবহারকারীর ডিভাইসে সেট করা বর্তমান ভাষা (Locale) প্রোগ্রামেটিক্যালি পাওয়া যায়। এটি লোকালাইজেশন বা ভাষা-নির্ভর ফিচারের জন্য উপকারী।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: লেআউট
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
package app.com.sample;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
textView.setText("Current device language: " + Locale.getDefault().getDisplayLanguage());
}
}
Locale ক্লাসের উপকারী মেথড
| মেথড | রিটার্ন | উদাহরণ |
|---|---|---|
| getDisplayLanguage() | ভাষার নাম (লোকালাইজড) | "English", "বাংলা" |
| getLanguage() | ISO 639 কোড | "en", "bn" |
| getDisplayCountry() | দেশের নাম | "United States", "বাংলাদেশ" |
| getCountry() | ISO 3166 কোড | "US", "BD" |
| getDisplayName() | পূর্ণ নাম | "English (United States)" |
| toLanguageTag() | BCP 47 ট্যাগ | "en-US", "bn-BD" |
ব্যবহারকারীর পছন্দের ভাষা তালিকা (API 24+)
LocaleList localeList = getResources().getConfiguration().getLocales(); Locale firstChoice = localeList.get(0);
অ্যাপের ভাষা принуএ পরিবর্তন (পূর্বের আর্টিকেল ১০০৬০৬১৬৭৬)
যদি আপনি অ্যাপের ভাষা পরিবর্তন করতে চান, তবে Configuration.setLocale() এবং resources.updateConfiguration() ব্যবহার করুন।
সতর্কতা
Locale.getDefault()JVM-লেভেলের ডিফল্ট রিটার্ন করে, যা সিস্টেম লোকেলের সাথে সিঙ্ক করা থাকতে পারে না- বेहতর:
context.getResources().getConfiguration().locale(API 24-) বাgetLocales().get(0)(API 24+)