How to display South Indian languages ​​in Android

I have a requirement to display one text in multiple languages, especially Kannada and Telugu I am developing with a minimum required API 14 (4.0)

Thank,

+2


source to share


2 answers


Try it...

I have used all the application code here.

Project structure

Project structure

activity_main_activity1.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2b579a"
android:orientation="vertical"
tools:context=".MainActivity1" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/kannada"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="start"
        android:text="@string/kannada"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <Button
        android:id="@+id/telugu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="end"
        android:text="@string/telugu"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <Button
        android:id="@+id/english"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="end"
        android:text="@string/english"
        android:textColor="#FFFFFF"
        android:textSize="20sp" />
</LinearLayout>

<TextView
    android:id="@+id/news"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:text="@string/note"
    android:textColor="#FFFFFF"
    android:textSize="20sp" />

 </LinearLayout>

      

<strong> values ​​/ strings.xml

string

values ​​/ strings.xml

<strong> values-kp / strings.xml

Kannada

Strings for Kannada language.

values-kn / strings.xml

<strong> values-te / strings.xml

values-te / strings.xml

values-te / strings.xml



Install font

languages

download fonts here .

MainActivity1.java

package com.hirecraft.stackoverflowtest;

import java.util.Locale;

import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity1 extends Activity {

/**
 * Declaration
 */
Button kannada, telugu, english;
String currentLanguage;
TextView news;
Typeface kannadaFont, teluguFont;

/**
 * This class describes all device configuration information
 * that can impact the resources the application retrieves. This
 * includes both user-specified configuration options (locale
 * and scaling) as well as device configurations (such as input
 * modes, screen size and screen orientation).
 */
Configuration config;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity1);

    /**
     * Initialization
     */
    currentLanguage = "";
    kannada = (Button) findViewById(R.id.kannada);
    telugu = (Button) findViewById(R.id.telugu);
    english = (Button) findViewById(R.id.english);

    news = (TextView) findViewById(R.id.news);

    /**
     * Initialize the fonts.
     */
    kannadaFont = Typeface.createFromAsset(getAssets(), "fonts/akshar.ttf");
    teluguFont = Typeface.createFromAsset(getAssets(), "fonts/gautami.ttf");

    /**
     * Event for Kannada
     */
    kannada.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            /**
             * "kn" is the localization code for our Kannada language.
             */
            currentLanguage = "kn";
            Locale locale = new Locale(currentLanguage);
            Locale.setDefault(locale);

            /**
             * Print the current language
             */
            System.out.println("My current language: "
                    + Locale.getDefault());


            config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                    getBaseContext().getResources().getDisplayMetrics());

            news.setText(R.string.note);
            news.setTypeface(kannadaFont);
        }
    });


    telugu.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            /**
             * "te" is the localization code for our Telugu language.
             */
            currentLanguage = "te";
            Locale locale = new Locale(currentLanguage);
            Locale.setDefault(locale);

            /**
             * Print the current language
             */
            System.out.println("My current language: "
                    + Locale.getDefault());

            config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                    getBaseContext().getResources().getDisplayMetrics());

            news.setText(R.string.note);
            news.setTypeface(teluguFont);
        }
    });

    english.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            /**
             * "en" is the localization code for our default English language.
             */
            currentLanguage = "en";
            Locale locale = new Locale(currentLanguage);
            Locale.setDefault(locale);

            /**
             * Print the current language
             */
            System.out.println("My current language: "
                    + Locale.getDefault());

            config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                                               getBaseContext().getResources().getDisplayMetrics());

            news.setText(R.string.note);
        }
    });
}
      }

      

AndroidManifest.xml

AndroidManifest.xml

Screenshots:

1. Default language (English)

Default locale

2. Kannada

Kannada

3. Telugu

<T411>

Happy coding .....

+18


source


you need two things: -

  • folder with different values ​​in res.
  • Custom font font to support your regional language.

in the following way: -



MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

      

more detail read it

+1


source







All Articles