Upload
ramkumar-lakshminarayanan
View
148
Download
3
Embed Size (px)
DESCRIPTION
Dr. Ramkumar Lakshminarayanan article published in Tamil Computer Magazine. The content is about Using many languages in single Android App.
Citation preview
݇†ó£Œ´ ÜŠO«èê¡èœ ðô ®¬õv
èœ ñŸÁ‹ ðô ªñ£NèO™ ðò¡ð´A¡øù. à¼õ£‚èŠð´‹ ÜŠO«èê¡èœªê™«ðC ðò¡ð´ˆ¶‹ªñ£N‚° ãŸð îèõ™èœ,â‡èœ, Ý®«ò£ ç¬ð™èœ,ðí °Pf´èœ ñŸÁ‹ ðìƒ
è¬÷ ñ£ŸP ܬñ‚è(Locales) ðò¡ð´Aø¶.
꣡ø£è â¡Â¬ìòªê™«ðCJ¡ îèõ™ ªîK»‹ ªñ£NJ¬ù ¬õˆ¶œ«÷¡. Üîù£™ðì‹ -1™ îèõ™ ݃AôˆF½‹ ñŸÁ‹ HK†®wªè£® F¬óJ™ «î£¡P»œ÷¶.
Ü´ˆîî£è ðì‹-2 setting->Language Keyboard-™ ªñ£NJ¬ù ñ£ŸP ܬñ‚è º®»‹. (ðì‹-3) Þƒ° ªñ£NJ¬ù Germen
݇†ó£Œ®™ ðôªñ£Nèœ ðò¡ð´ˆ¶‹ º¬ø!
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/text_a" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/text_b" /><Button android:id="@+id/flag_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello,L10N</string>
<string name="text_a">Shall I comparethee to a summer"'"s day?</string>
<string name="text_b">Thou art morelovely and more temperate.</string>
<string name="dialog_title">NoLocalisation</string>
<string name="dialog_text">This dialogbox"'"s strings are not localised. For everylocale, the text here will come fromvalues/strings.xml.</string>
</resources>
Deutsch (Deutschland)ñ£ŸP ܬñ‚A«ø¡.e‡´‹ ÜŠO«èê¬ùªêò™ð´ˆ¶‹«ð£¶ðì‹ 4-™ àœ÷¶«ð£¡ø ªü˜ñ¡ ªñ£NñŸÁ‹ F¬ó «î£¡Á‹.
Þ¬î «ð£¡Á Language& Keyboard â¡ø «î˜M¬ù English(Unite States)â¡Á ñ£ŸP ܬñˆ
 ðì‹ 5-™ àœ÷¶«ð£¡Á F¬ó «î£¡Á‹.Language&Keyboard â¡ø«î˜M¬ùFrancais (France)â¡Á ñ£ŸPù£™ ðì‹6-™ àœ÷¶ «ð£¡ÁF¬ó «î£¡Á‹.  à¼õ£‚°‹ ÜŠO«èê¡ «î˜‰ªî´‚èŠð´‹ ªñ£N‚°ãŸð ñ£Áî™ ãŸð´ñ£ÁܬñˆFì º®»‹.
ðì‹-1
ðì‹-2
ðì‹-3
ðì‹-4Gó™-1
Gó™-2
ÜŠO«èê¡ à¼õ£‚°‹ «ð£¶, ªñ£N‚° ãŸð îèõ™èœ,ðìƒèœ ñŸÁ‹ ç¬ð™è¬÷ «î˜‰ªî´‚è«õ‡´‹.
ÜŠO«èê¡ ªêò™ð´‹ «ð£¶, «î˜‰ªî´‚èŠð†´œ÷ ªñ£N‚°ãŸð îèõ™èœ, ðìƒèœ ñŸÁ‹ ç¬ð™è¬÷ 裇H‚è «õ‡´‹.
Localization ꣘‰î ÜŠO«èê¡ à¼õ£‚°‹«ð£¶ F†ìI´î™ º‚Aòñ£ù ªêòô£°‹.݇†ó£Œ´ Í¡Á Mîñ£ù K«ê£˜vç¬ð™è¬÷ ðò¡ð´ˆ¶A¡ø¶.
ܬõ, res/drawable, res/layout ñŸÁ‹ res/valueà¼õ£‚èŠ «ð£°‹ ÜŠO«èê¡ Þó‡´ªì‚v† MÎ ñŸÁ‹ð†ì¡ ªè£‡®¼‚°‹ ð†ì¬ù AO‚ªêŒî¾ì¡ îèõ™F¬óJ™ «î£¡Áñ£Á à¼õ£‚芫ð£A«ø£‹.
¯ç𣙆 ªñ£Nò£è British, EnglishñŸÁ‹ Default Location (Þì‹) UnitedKingdom â¡Á «î˜‰ªî´ˆ¶ ªè£œÀƒèœ. à¼õ£‚èŠ
Ý¡†ó£Œ´ -2
Þ󣋰ñ£˜ ªô†²Iï£ó£òí¡
11package com.ram.helloln;
import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.*;
public class HelloLNActivity extends Activity { /** Called when the activity is first created.*/ @Override public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b; (b =(Button)findViewById(R.id.flag_button)).setBackgroundDrawable(this.getResources().getDrawable(R.drawable.flag));
// build dialog box to display when userclicks the flag AlertDialog.Builder builder = newAlertDialog.Builder(this); builder.setMessage(R.string.dialog_text) .setCancelable(false) .setTitle(R.string.dialog_title) .setPositiveButton("Done", newDialogInterface.OnClickListener() { public void onClick(DialogInterfacedialog, int id) { dialog.dismiss(); } }); final AlertDialog alert = builder.create();
// set click listener on the flag to showthe dialog box b.setOnClickListener(newView.OnClickListener() { public void onClick(View v) { alert.show(); } }); }}
ðì‹-5
ðì‹-6
ðì‹-8Gó™-3
ðì‹-7
ðì‹-9
ðì‹-10
ðì‹-12
«ð£°‹ ÜŠO«èê¡ ªè£´ˆ¶ ªî£ìƒè«õ‡´‹.
W›è‡ì îèõ™è¬÷ ªè£´ˆ¶ ªî£ìƒè«õ‡´‹.
Project Name:Hello 10N
Application Name: Hello, LIONPackage Name: com.ram.hello10nCreate Activity:HelloLIONMin SDK Version:3res/layout/main/.xml-L™ ªì‚v†
MÎ ñŸÁ‹ ð†ì¡ à¼õ£‚è Gó™ 1-™
àœ÷ Gó™è¬÷ ðò¡ð´ˆî «õ‡´‹.Ü´ˆîî£è ÜŠO«èê‚° «î¬õò£ù
String.xml ç¬ðL¬ù à¼õ£‚è «õ‡´‹.Þƒ° "text-a", "text-b", "dialog-title", "dialog-text" «ð£¡ø¬õ‚è£ù îèõ™ â¡ù «î£¡ø«õ‡´‹ â¡ðîŸè£ù îèõ™ ªè£´‚A«ø£‹.ÞîŸè£ù Gó™ -2™ àœ÷¶.
ªñ£N‚° ãŸð ªè£® ñ£ø «õ‡´‹.Üîù£™ Default Ýè drawable-hdpi â¡øç«ð£™ìK™ developer.android.com/ images/
hello-l10n/flag.png Ü™ô¶ «õÁ Þ¬íòî÷ˆFL¼‰«î HK†®w ªè£®J¬ù flag.png â¡ø ªðòK™ «î˜‰ªî´ƒèœ.
main.xml ïñ¶ «ôܾ† ç¬ðô£°‹ ÞîŸè£ù Ý‚®M†® ç¬ðL¬ù à¼õ£‚è «õ‡´‹. HelloLNActivity -‚è£ù Gó™ -3 ™
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Hallo,Lokalisierung</string> <string name="text_a">Soll ich dich einemSommertag vergleichen,</string> <string name="text_b">Der du viellieblicher und sanfter bist?</string></resources>
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Bonjour,Localisation</string> <string name="text_a">Irai-je tecomparer au jour d'été?</string> <string name="text_b">Tu es plus tendreet bien plus tempéré.</string></resources>
- ªî£ì¼‹
ðì‹-11
ðì‹-14
ðì‹-13
Gó™-5Gó™-4
ªè£´‚èŠð†´œ÷¶. ªè£´‚èŠð†´œ÷Gó™ ð†ìQŸ° H¡ùEJ¬ù ܬñˆF´‹.ð†ì¬ù AO‚ ªêŒî¾ì¡ Alert DialogJ¬ù  ªñ£N‚° ãŸð ñ£ŸP ܬñ‚芫ð£õF™¬ô. Üîù£™ dialog-text Ýù¶res/values/string/.xml â¡ø ç¬ðL™ àœ÷îèõ¬ô 裇H‚°‹. ðì‹-7 ™ àœ÷¶«ð£¡Á ªñ£N‚° ãŸð «î˜‰ªî´‚°‹º¬øJ¬ù ܬñˆFì «õ‡´‹. ÜîŸè£ùõNº¬øè¬÷ 𣘊«ð£‹. ðì‹ 8-™ªñ£N‚° ãŸð îèõ™èœ ⃰ «êI‚èŠðì«õ‡´‹ â¡ðî¬ù °P‚Aø¶. ꣡ø£è
ªü˜ñ¡ ªñ£N‚° ãŸð õ®õ¬ñ‚è Local-code de-rDt â¡ðî¬ù ðò¡ð´ˆî «õ‡´‹.
ªü˜ñQ‚° string.xml ç¬ðL¬ù res/value-de â¡ø ç«ð£™ìK™ «êIˆFì «õ‡´‹. ºîL™ File>New>AndroidXML File â¡ð «î˜‰ªî´‚è «õ‡´‹. (ðì‹-9)
Ü´ˆ¶ Hó£ªü‚† â¡ð HelloL10Nâ¡ð¶ «î˜‰ªî´‚èŠð†®¼‚°‹. File â¡ð String.xml â¡Á ªè£´‚è
«õ‡´‹. H¡ ù˜Language â¡ðî¬ù«î˜‰ªî´‚è «õ‡´‹.(ðì‹-10)
H¡ù˜ Language â¡ø«î˜MŸ° de â¡Á ªè£´‚è «õ‡´‹. (ðì‹ 11)Þ‰î ªêò™ Íô‹ ªü˜ñ¡ªñ£N‚è£ù String.xml«î£¡P»œ÷¶. ðòù£÷˜ ªü˜ñ¡ ªñ£NJ¬ùªñ£Nò£è «î˜‰ªî´ˆî£™ â¡ù îèõ™èœF¬óJ™ «î£¡ø «õ‡´‹ â¡ðî¬ù String.xml ªè£´‚è «õ‡´‹.Þî¬ù «ð£¡«ø fr (french) ñŸÁ‹ Ja(Japenese) ªñ£N‚° ༠õ£‚Aì «õ‡´‹.
Þ‰î ªêò™Íô‹ res/values-de/strings/xml,res/values-fr/string.xml, res/values-ja/strings.xml ÝAò ç¬ð™èœ à¼õ£‚èŠð´‹. text-añŸÁ‹ text-b -‚è£ù ªñ£NJ¬ù «î˜‰ªî´‚°‹ ªñ£N‚° ãŸð ñ£Á‹ Strings.xml Gó™è¬÷ 𣘊«ð£‹.
res/value-de/strings.xml-‚è£ù Gó™ Gó™4-™ ªè£´‚èŠð†´œ÷¶. res/values-fr/strings.xml-‚è£ù Gó™ 5-™ ªè£´‚èŠð†´œ÷¶.res/values-ja/strings.xml -‚è£ù Gó™ ðì‹12-™ 裇H‚èŠð†´œ÷¶. 嚪õ£¼ªñ£N‚° ãŸð ªè£®J¬ù 裇H‚èDrawable ç«ð£™ìK¬ù à¼õ£‚è «õ‡´‹.
German-res/drawable-de-rDE/flag.pngFrench-res/drawable-fr-rFR/flag.pngCanada-res/drawable-fr-rCA/Flag.pngJapan-res/drawable-ja-rJP/flag.pngUnitedstates-res/drawable-en-rUS/flag.png嚪õ£¼ ªñ£N‚° ãŸø ®¡ ªè£®
J¬ù ܉î‰î ç«ð£™ìK™ «êIˆFì «õ‡´‹. «êIˆî¾ì¡ ðì‹ 13-™ àœ÷¶ «ð£¡øF¬ó «î£¡Á‹. ÞŠ«ð£¶ ÜŠO«èê¬ùªêò™ð´ˆî Language â¡ðF™ Japan ªñ£NJ¬ù «î˜‰ªî´ˆî£™ ðì‹ 14-™ àœ÷¶«ð£¡Á F¬ó «î£¡Á‹.