3

我有 textView 和 ListView。我在列表视图中列出了支持语言

当我单击任何语言 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

有人知道谷歌如何将一种语言翻译成另一种语言吗?

4

3 回答 3

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));

            }
于 2012-09-07T05:37:48.043 回答
1

这是您需要的 Android中多语言支持的一个完整示例。


现在,

因为那几件事需要了解,

res/values文件夹,您可以创建尽可能多的文件夹并将相应的语言字符串值保存在Strings.xml文件夹下的文件中。

现在,当用户选择它选择的任何语言时,然后更改configuration

我还建议您也应该阅读一次这个主题:本地化

于 2012-09-07T05:23:26.747 回答
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");
于 2012-09-07T05:23:23.903 回答