I don't really get what you want to do. I'm guessing you want to use only
one strings.xml and translate "on-the-fly" all the texts for this and the
rest of your activities?
The best way would be to just translate the strings to another strings.xml
and use the values/your-language bucket to store it. And then just change
language. I've found this Q&A doing a fast search:
http://stackoverflow.com/questions/12908289/how-to-change-language-of-app-when-user-selects-language
.

If you need to use the Bing service because it's some exercise or proof of
concept or something like that, you could make a Dictionary class or
service that translates every string on the file and stores the translation
on some form of cache.
You could make it eager and load every string just once. In this Q&A you
can find how to get all the IDs so you can then retrieve the strings you'll
have to translate: http://stackoverflow.com/a/14389698/671431
Or you could make it lazy and get one string at a time. In both cases,
there will be some performance penalty on your UI. One will be a long wait
everytime the user changes to a new language, and the other will make the
first load of every screen a bit slow.
And then there will be even more penalty because anyway you would need to
make a someView.setText(yourDictionary.getText(R.string.someString)) call
for every TextView and perhaps also setContentDescription on the
ImageViews.

I don't think it's pretty.

Marina


On Sun, Jan 24, 2016 at 10:06 AM, Yong Lin <yonglin1...@gmail.com> wrote:

> Below is my code, i wanted to use the bing translate api to translate my
> strings.xml . I have a spinner in my code, when the user select the
> language in my spinner, i need to translate my strings.xml to my language,
> may i know how to do it?
>
>
> package com.plantidentification;
>
> import android.app.Activity;
> import android.os.AsyncTask;
> import android.os.Bundle;
> import android.view.View;
> import android.widget.AdapterView;
> import android.widget.Spinner;
> import android.widget.Toast;
> import com.memetix.mst.language.Language;
> import com.memetix.mst.translate.Translate;
>
> /**
>  * Created by YongLin on 1/23/2016.
>  */
> public class LanguageActivity extends Activity {
>     Spinner spinnerctrl;
>     String translatedText;
>
>
>     public void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>
>
>         setTitle(R.string.title_activity_language);
>         spinnerctrl = (Spinner) findViewById(R.id.spinner1);
>         setContentView(R.layout.activity_language);
>
>         spinnerctrl.setOnItemSelectedListener(new 
> AdapterView.OnItemSelectedListener() {
>
>             public void onItemSelected(AdapterView<?> parent, View view,
>                                        int pos, long id) {
>
>                 if (pos == 1) {
>
>                     Toast.makeText(parent.getContext(),
>                             getResources().getString(R.string.YouselectEn), 
> Toast.LENGTH_SHORT)
>                             .show();
>
>                 } else if (pos == 2) {
>
>                     Toast.makeText(parent.getContext(),
>                             getResources().getString(R.string.YouselectZH), 
> Toast.LENGTH_SHORT)
>                             .show();
>                     new MyAsyncTask() {
>                         protected void onPostExecute(Boolean result) {
>                            
> translatedText=getResources().getString(R.string.HELLO);
>                         }
>                     }.execute();
>
>                 } else if (pos == 3) {
>
>                     Toast.makeText(parent.getContext(),
>                             getResources().getString(R.string.YouselectHI), 
> Toast.LENGTH_SHORT)
>                             .show();
>
>                 }
>                 else if (pos == 4) {
>
>                     Toast.makeText(parent.getContext(),
>                             getResources().getString(R.string.YouselectMs), 
> Toast.LENGTH_SHORT)
>                             .show();
>
>                 }
>
>
>             }
>                    public void onNothingSelected(AdapterView<?> arg0) {
>                 // TODO Auto-generated method stub
>                 Toast.makeText(getApplicationContext(), "Nothing to select", 
> Toast.LENGTH_LONG).show();
>             }
>
>             class MyAsyncTask extends AsyncTask<String, Integer, Boolean> {
>                 @Override
>                 protected Boolean doInBackground(String... arg0) {
>                     Translate.setClientId("plantidentification");
>                     
> Translate.setClientSecret("lMFkUM+gG96NFrhhZV649Ix8NxR2SvqXJWpOTOgNq54=");
>                     try {
>                         translatedText = Translate.execute( 
> getResources().getString(R.string.HELLO), Language.ENGLISH, 
> Language.CHINESE_SIMPLIFIED);
>                     } catch(Exception e) {
>                         translatedText = e.toString();
>                     }
>                     return true;
>                 }
>             }
>
>         });
>     }
> }
>
> --
> You received this message because you are subscribed to the Google Groups
> "Android Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to android-developers+unsubscr...@googlegroups.com.
> To post to this group, send email to android-developers@googlegroups.com.
> Visit this group at https://groups.google.com/group/android-developers.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/android-developers/a9249230-b520-4f19-bde0-5ddc9cf3817c%40googlegroups.com
> <https://groups.google.com/d/msgid/android-developers/a9249230-b520-4f19-bde0-5ddc9cf3817c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/CACaNmX3Yjy0AAm9Sv0RncFqk037PzOKB6PQ3t%3Dru4zSJk01AfQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to