我有textView和ListView。我在listview中列出了支持langugage的列表
当我点击任何语言时Textview文本需要更改
代码
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();
}
注意: 需要翻译从一种语言到另一种语言而不使用strings.xml和GoogleApi
有人知道Google如何将一种语言翻译成其他语言?
答案 0 :(得分:3)
在您的目录附近创建新值目录值-fr,其中包含文件strings.xml和内容,如
<resources>
<string name="some_string_vith_localization">French translation</string>
</resources>
并在您的代码中
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));
}
答案 1 :(得分:1)
以下是您需要的Multiple Language Support in Android的完整示例。
现在,
因为需要了解的事情很少,
res/values
文件夹,您可以创建尽可能多的文件夹,并将相应的语言字符串值保留在文件夹下的Strings.xml
文件中。
现在,当用户选择其选择的任何语言时,请更改configuration
我还建议您在完成此主题后再进行一次:Localization
答案 2 :(得分:0)
好的...尝试使用android-translate-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");