Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序语言本地化_Android - Fatal编程技术网

Android应用程序语言本地化

Android应用程序语言本地化,android,Android,我开发了一个应用程序。现在我想在it中支持其他区域语言。但是现在应用程序几乎准备好了,更改每个java文件以在textview中为相应的语言设置文本是一件非常痛苦的事情。还有其他简单的方法吗?像制作一个不同的string.xml文件和做一些事情,那么所有的视图都会改变 如果正确使用资源引用,如R.string.hello,则可以创建另一种语言配置,并且应该正确加载。如果您在JAVA代码中使用诸如hello world之类的文本硬编码字符串,那么您需要进行相当多的重构 本地化应用程序的很大一部分是

我开发了一个应用程序。现在我想在it中支持其他区域语言。但是现在应用程序几乎准备好了,更改每个java文件以在textview中为相应的语言设置文本是一件非常痛苦的事情。还有其他简单的方法吗?像制作一个不同的string.xml文件和做一些事情,那么所有的视图都会改变

如果正确使用资源引用,如R.string.hello,则可以创建另一种语言配置,并且应该正确加载。如果您在JAVA代码中使用诸如hello world之类的文本硬编码字符串,那么您需要进行相当多的重构

本地化应用程序的很大一部分是为不同语言提供替代文本。在某些情况下,您还提供其他图形、声音、布局和其他特定于语言环境的资源

一个应用程序可以指定许多res//目录,每个目录都有不同的限定符。要为不同的语言环境创建替代资源,请使用指定语言或语言区域组合的限定符。资源目录的名称必须符合“提供替代资源”中描述的命名方案,否则您的应用程序无法编译

例如:

假设应用程序的默认语言为英语。假设你想将应用程序中的所有文本本地化为法语,而应用程序中的大部分文本都是日语,除了应用程序的标题。在这种情况下,您可以创建三个可选的strings.xml文件,每个文件存储在特定于语言环境的资源目录中:

res/values/strings.xml包含所有字符串的英文文本 应用程序使用的,包括名为title的字符串的文本

res/values fr/strings.xml包含所有字符串的法语文本, 包括标题

res/values ja/strings.xml包含 除标题外的所有字符串。 如果基于Java的代码引用R.string.title,则运行时会发生以下情况:

如果设备设置为法语以外的任何语言,Android将从res/values/strings.xml文件加载标题。 如果设备设置为法语,Android将从res/values fr/strings.xml文件加载标题。
请注意,如果设备设置为日语,Android将在res/values ja/strings.xml文件中查找标题。但由于该文件中不包含此类字符串,Android会返回默认设置,并从res/values/strings.xml文件中加载英文标题。

在这里检查我的答案,在提出此问题之前,没有进行过任何研究。其他人已经指出了本地化应用程序的方法,但是,如果我们假设用户希望支持没有系统范围支持的区域语言,即用户不能在Android设备的设置中选择语言,那么您需要这样做。谢谢@MarkusKauppinen