Android 西班牙文编辑文本

Android 西班牙文编辑文本,android,localization,translation,Android,Localization,Translation,我有以下文本: EditText et1 = (EditText) findViewById(R.id.txtSp); 当用户在此EditText中键入时,它应以西班牙语而不是英语显示文本。 我怎样才能做到这一点 注意:我的应用程序的语言是英语。您可以在运行时使用该代码更改区域设置: Resources res = getApplicationContext().getResources(); Locale locale = new Locale("en"); //<--- use

我有以下文本:

EditText et1 = (EditText) findViewById(R.id.txtSp);
当用户在此EditText中键入时,它应以西班牙语而不是英语显示文本。 我怎样才能做到这一点


注意:我的应用程序的语言是英语。

您可以在运行时使用该代码更改区域设置:

 Resources res = getApplicationContext().getResources();

 Locale locale = new Locale("en"); //<--- use your locale code here
 Locale.setDefault(locale);

 Configuration config = new Configuration();
 config.locale = locale;

 res.updateConfiguration(config, res.getDisplayMetrics());
Resources res=getApplicationContext().getResources();

语言环境=新语言环境(“en”)// 根据本文,无法更改当前运行的应用程序的区域设置


Richard在本文中提到的“DH”是一位Android框架工程师。查看Richard的上一篇帖子,以获得她的评论链接。

这样用户就可以用英语输入,文本就会自动翻译成西班牙语?是的。为此,我需要运行时翻译器吗?或者只需将西班牙语字体.ttf文件添加为字体就可以了?是的,您需要翻译服务。在大多数情况下,西班牙语单词可以使用与英语单词相同的字体显示,因此“添加西班牙语字体.ttf文件”不是一个解决方案。更改字体不会导致单词和短语翻译成另一种语言。好的,谢谢。那么如何设置应用程序语言(Locale)?@user113215的建议是使用侦听器从输入中获取文本。将该文本发送到应用程序中的库中,如果可能,该库会将文本翻译为西班牙语。然后将输入值设置为已翻译的西班牙语文本。您只需要找到要添加到项目中的翻译库。这将更改整个系统的区域设置,对吗?这意味着如果用户关闭应用程序或转到其他应用程序,将显示西班牙语?否,它将更改您当前活动的本地设置。所以据我所知,它不会影响你的系统。它不适用于我的应用程序。当我使用“es”作为区域设置时,它不会改变任何内容。所有内容都是英文的。@Shani用于改变数字或日期等信息的表示方式,以适应它们所描述地区的惯例。它的用途是更改小数点/数字分组字符(例如,1000.24 vs 1.000,24)或日期格式,而不是翻译用户界面。因此,作为开发人员,只能在应用程序中使用英语?只能使用区域设置语言进行输入。您可以使用一些“覆盖”命令用户更改键盘语言。在三星键盘上,我知道你可以滑动键盘来更改语言输入。但不是一个适用于所有键盘的答案:(