我想用两种语言提出申请。当应用程序启动时,将有两个按钮:第一个按钮用于语言 X,第二个按钮用于英语。当我单击其中一个语言按钮时,应用程序应该以相应的语言启动。但我不知道该怎么做。可能吗?
5 回答
更改应用程序的语言环境可以按如下方式完成:
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 文档。
当您单击其中一个按钮时,您可以new Locale('languageCode')
在该按钮的setOnClickListener()
然后重新初始化将在正确的语言环境中重新呈现的文本元素
如果您想使用不同的语言,您最好尝试为您想要的每种语言使用不同的字符串。例如:
values/strings.xml
values/strings-de.xml
values/strings-sk.xml
values/strings-pl.xml
这是我的方法,对我来说很容易做到。
使用语言作为限定符创建一组资源(可绘制对象、字符串、布局、菜单等)。
当您的主要活动以两个按钮开始时,在您的按钮的单击侦听器的回调方法中操作那里的语言环境时,我认为系统将根据您的语言限定符确定要使用的资源。
本地化始终是可能的,但同样的概念适用于 Android/智能手机,就像它们在计算机上一样。如果电话本身设置为以某种语言显示,那么您的应用程序也应该以该语言显示。作为开发人员,您的工作是确保您的解决方案和编程符合 Unicode,并处理您可能期望的某些语言特有的适当字符。