কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড ডিভাইসের বর্তমান ভাষা প্রোগ্রামেটিক্যালি পাওয়ার উপায়

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+)
  1. অ্যান্ড্রয়েড ডিভাইসের স্ক্রিন উচ্চতা ও প্রস্থ কীভাবে পেতে হয়?

  2. Android Emulator-এর IP Address পাওয়ার পদ্ধতি

  3. প্রোগ্রামেটিক্যালি বর্তমান অ্যান্ড্রয়েড SDK ভার্সন কীভাবে পাবেন?

  4. Android ডিভাইসের প্রাইমারি ইমেইল ঠিকানা পাওয়ার পদ্ধতি