I am going to use the Bing Translate API – (unfortunately Google translate API isnt free).
First, download “java library”. Place this in your libs folder.
We need the Client Id and Client username from the Microsoft MarkerPlace. You can get this from: http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx .
You’ll get the complete code from here:
Add these permissions in your manifest file
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
This is your main activity class:
public class MainActivity extends Activity implements OnInitListener { private TextToSpeech tts; Locale[] locales; String listLocales; String selectedLanguage; String[] langList = new String[9]; Language languagelist; final int Arabic = 1, Hindi = 2, French = 3, Russian = 4, German = 5, Chinese = 6, Japanese = 7, Italian = 8, Spanish = 9; ArrayList<String> listOfLanguage = new ArrayList<String>(); public int postion; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); locales = Locale.getAvailableLocales(); String[] langListForDialogBox = { "Arabic", "Hindi", "French", "Russian", "German", "Chinese", "Japanes", "Italian", "Spanish" }; for (int i = 0; i < langListForDialogBox.length; i++) { listOfLanguage.add(langListForDialogBox[i]); langList[i] = langListForDialogBox[i]; } tts = new TextToSpeech(this, this); ((Button) findViewById(R.id.bSpeak)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub speakOut(((TextView) findViewById(R.id.tvTranslatedText)) .getText().toString()); } }); ((Button) findViewById(R.id.selectLangButton)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder singlechoicedialog = new AlertDialog.Builder( MainActivity.this); singlechoicedialog.setSingleChoiceItems(langList, 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { postion = item; listOfLanguage.get(item); switch (item) { case 0: languagelist = Language.ARABIC; break; case 1: languagelist = Language.HINDI; break; case 2: languagelist = Language.FRENCH; break; case 3: languagelist = Language.RUSSIAN; break; case 4: languagelist = Language.GERMAN; break; case 5: languagelist = Language.CHINESE_SIMPLIFIED; break; case 6: languagelist = Language.JAPANESE; break; case 7: languagelist = Language.ITALIAN; break; case 8: languagelist = Language.SPANISH; break; default: languagelist = Language.FRENCH; break; } dialog.cancel(); } }); AlertDialog alert_dialog = singlechoicedialog.create(); alert_dialog.show(); // set defult select value alert_dialog.getListView() .setItemChecked(postion, true); } }); ((Button) findViewById(R.id.bTranslate)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub class bgStuff extends AsyncTask<Void, Void, Void> { String translatedText = ""; @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub try { String text = ((EditText) findViewById(R.id.etUserText)) .getText().toString(); translatedText = translate(text, selectedLanguage); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); translatedText = e.toString(); } return null; } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub ((TextView) findViewById(R.id.tvTranslatedText)) .setText(translatedText); super.onPostExecute(result); } } new bgStuff().execute(); } }); } public void displayListView() { // TODO Auto-generated method stub } public String translate(String text, String selectedLanguage) throws Exception { Translate.setClientId("Nishanttyest"); // Change this Translate .setClientSecret("OO5K4SEmwrrfR3P9pAmJCBEvl94kkwMCkJXeN3IwsG4="); String translatedText = ""; // Language ll = selectedLanguage; translatedText = Translate.execute(text, languagelist); return translatedText; } @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { int result = tts.setLanguage(Locale.ENGLISH); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.e("TTS", "This Language is not supported"); } else { // speakOut("Ich"); } } else { Log.e("TTS", "Initilization Failed!"); } } private void speakOut(String text) { tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); } // if button is clicked, close the custom dialog } Your XML file will be like this <RelativeLayout 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" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/EnterString" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/etUserText" android:layout_alignBottom="@+id/etUserText" android:layout_alignParentLeft="true" android:text="@string/text4TextView" /> <EditText android:id="@+id/etUserText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/EnterString" android:ems="10" /> <Button android:id="@+id/selectLangButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/etUserText" android:layout_centerHorizontal="true" android:layout_marginTop="10dip" android:text="@string/text4desireBtn" /> <Button android:id="@+id/bTranslate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/selectLangButton" android:layout_centerHorizontal="true" android:text="@string/text4transBtn" /> <TextView android:id="@+id/tvTranslatedText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@+id/bTranslate" android:text="@string/text4TransTextView" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/bSpeak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="@string/text4speakBtn" /> </RelativeLayout> </RelativeLayout>
Hope you all like my post and find it useful if you are unable to understand any step please let me know in comment section..I’ll try to make it more explanatory!!
Post by Nishant Anindya