0

我想用两种语言提出申请。当应用程序启动时,将有两个按钮:第一个按钮用于语言 X,第二个按钮用于英语。当我单击其中一个语言按钮时,应用程序应该以相应的语言启动。但我不知道该怎么做。可能吗?

4

5 回答 5

1

更改应用程序的语言环境可以按如下方式完成:

private void setLocale(Locale locale) {
    Locale.setDefault(locale);
    Resources res = getContext().getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    android.content.res.Configuration conf = res.getConfiguration();
    conf.locale = locale;
    res.updateConfiguration(conf, dm);
}

最重要的是,您当然需要strings.xml至少提供本地化。

但是,如果没有更多细节,我会质疑您为什么要这样做。用户应从 Android 的设置中选择语言,并且您的应用应遵循设备的语言。这会自动发生 - 系统将选择您提供的符合语言条件的资源。

我不会尝试在此处发布有关如何提供本地化资源的指南。有关详细信息,请参阅Android 文档

于 2013-02-21T22:41:39.777 回答
0

当您单击其中一个按钮时,您可以new Locale('languageCode')在该按钮的setOnClickListener()

然后重新初始化将在正确的语言环境中重新呈现的文本元素

于 2013-02-21T22:24:54.377 回答
0

如果您想使用不同的语言,您最好尝试为您想要的每种语言使用不同的字符串。例如:

values/strings.xml
values/strings-de.xml
values/strings-sk.xml
values/strings-pl.xml
于 2013-02-21T22:45:01.127 回答
0

这是我的方法,对我来说很容易做到。

使用语言作为限定符创建一组资源(可绘制对象、字符串、布局、菜单等)。

当您的主要活动以两个按钮开始时,在您的按钮的单击侦听器的回调方法中操作那里的语言环境时,我认为系统将根据您的语言限定符确定要使用的资源。

于 2013-02-21T22:28:25.003 回答
0

本地化始终是可能的,但同样的概念适用于 Android/智能手机,就像它们在计算机上一样。如果电话本身设置为以某种语言显示,那么您的应用程序也应该以该语言显示。作为开发人员,您的工作是确保您的解决方案和编程符合 Unicode,并处理您可能期望的某些语言特有的适当字符。

于 2013-02-21T22:32:57.890 回答