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