应用两种语言

时间:2013-02-21 22:09:58

标签: android localization internationalization

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

5 个答案:

答案 0 :(得分: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 documentation

答案 1 :(得分:0)

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

中设置setOnClickListener()

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

答案 2 :(得分:0)

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

使用语言作为限定符创建一组资源(drawable,字符串,布局,菜单等)。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

values/strings.xml
values/strings-de.xml
values/strings-sk.xml
values/strings-pl.xml