2012-09-07 5 views
3

나는 textView와 ListView를 가지고 있습니다. 내가 어떤 언어의 텍스트 뷰의 텍스트를 변경해야 클릭 할 때 내가 다른 언어를 지원합니다.

목록보기

에서 지원 langugage의 목록을 만들어

코드

String lang[] = new String[]{"English","French"}; 
     ListView listView = (ListView) findViewById(android.R.id.list); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,lang); 

     listView.setAdapter(adapter); 

     TextView text = (TextView)findViewById(R.id.textbox); 

    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     TextView tv = (TextView)v; 
     String selected_lang = tv.getText().toString(); 
     Toast.makeText(this, selected_lang, Toast.LENGTH_LONG).show(); 
    } 

참고 : 문자열을하지 않고 다른 언어로 하나 개의 언어에서 번역이 필요 .xml 및 GoogleApi

누구나 알고 계신가요. 어떻게 다른 언어로 번역하나요?

+0

당신이 클릭하면 프랑스어로 텍스트 언어를 번역하고 싶은가 listview의 프랑스어 ??? –

+0

내가 french를 클릭하면 textview와 listview도 변경해야합니다. – Bucks

+0

나중에 OK입니다 ...하지만 그 텍스트보기가 이전에 무엇을 포함하고 있으며 무엇을 변경해야합니까 ??? –

답변

3

만들기 디렉토리 값 근처에있는 디렉토리 값-FR : 그것은 선택 후 나는 또한 당신이이 주제에 한 번 통과해야한다고 제언 configuration

을 변경 년대의 사용자가 언어를 선택할 지금

<resources> 
    <string name="some_string_vith_localization">French translation</string> 
</resources> 

추천하고 코드에서 파일 strings.xml의 및 내용

String lang[] = new String[]{"en","fr"}; 
     ListView listView = (ListView) findViewById(R.id.my_list_id); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,lang); 

     listView.setAdapter(adapter); 

     TextView text = (TextView)findViewById(R.id.textbox); 

    } 
      @Override 
      protected void onListItemClick(ListView l, View v, int position, long id) { 
       TextView tv = (TextView)view.findViewById(R.id.text_view_to_change); 
       String selected_lang = tv.getText().toString(); 

       Locale locale2 = new Locale(selected_lang); 
       Locale.setDefault(locale2); 
       Configuration config2 = new Configuration(); 
       config2.locale = locale2; 
       getBaseContext().getResources().updateConfiguration(config2, 
         getBaseContext().getResources().getDisplayMetrics()); 
       tv.setText(getResources().getString(R.string.some_string_vith_localization)); 

      } 
+0

내가 그 목록 상자에서 프랑스어를 클릭하면 나는 09-07 11 : 45 : 44.285 : E/AndroidRuntime (712) : android.content.res 예외가 발생했습니다.리소스 $ NotFoundException : 문자열 리소스 ID # 0x7f040003 – Bucks

+0

당신은 값 folder에 string.xml의 id some_string_vith_localization이있는 문자열과 값 foldinger의 strings.xml을 가지고 있습니다. [tutorial] (http://dharmendra4android.blogspot.in/2012/04/some-users-expect-to-use-application-in.html)에서이 내용을 읽을 수 있습니다 그리고 TextView를 가지고 있는지 확인하십시오. ID R.id.text_view_to_change 및 목록보기의 활동은 ID가 R.id.my_list_id입니다. 어떤 라인에 –

+0

이 예외가 있습니까? –

0

확인 ... 안드로이드-번역-API-1.1.jar에게

링크를 사용하십시오 : HTTP : //code.google.com/p/android-translate-api/를

Locale curLocale = this.getResources().getConfiguration().locale; 
I18nTranslator i18nTranslator = new I18nTranslator(curLocale .getLanguage()); 

String text = i18nTranslator.translateString("YOUR-TEXT-HERE"); 
1

Multiple Language Support in Android에 대한 완전한 예는 다음과 같습니다. 이제


, 그 몇 가지를 이해하는 데 필요한 들어

,

res/values 폴더 당신은 많은 폴더를 생성하고 폴더에 Strings.xml 파일에서 각각의 언어 문자열 값을 유지할 수 있습니다. Localization

+0

고마워요 .. 변경해야합니다 내 응용 프로그램에서이 경우 webservices에서 데이터를 받고 어떻게 내가 언어를 변경할 수 – Bucks

+0

만약 당신이 점점 동적 데이터를 사용하면 번역 API 및 AFAIK를 무료로 사용하지 않아야합니다. 또한이를 위해 타겟 언어에 따라 응답하고 응답해야합니다. 번역 된 데이터를 직접 얻을 수 있다면 더 좋은 방법이 될 것입니다. 웹 서비스 만 ... 서버 쪽에서 번역 할 수 있다면 ... 다른 간단한 번역은 번역기 API를 사용하여 번역하는 것입니다. – MKJParekh

+0

감사합니다. 예제에 문제가 있습니다. 언어 선택 버튼을 클릭해도 아무 일도 일어나지 않습니다. – Bucks

관련 문제