有没有办法在不使用values / strings.xml的情况下本地化Android应用程序?

时间:2017-01-06 09:33:58

标签: java android string localization translation

我的Android应用程序支持3种语言(英语,韩语,俄语),我计划支持更多语言。 由于应用程序的特性,它在每个strings.xml文件中有数百万行(翻译)。所以所有string.xml文件的大小超过1MB。

我觉得它太大了。

有没有办法在不使用values / strings.xml的情况下本地化Android应用程序? 或者...修剪我的应用程序的大小?

2 个答案:

答案 0 :(得分:1)

您可以使用比xml更节省空间的文件格式来实现自定义资源加载,但我怀疑它是值得的。

如果要执行此操作,请检查当前区域设置以确定要加载的资源:

getResources().getConfiguration().locale

答案 1 :(得分:1)

实现此目的的一种可能方法是将数据字符串放在SQLite数据库中,而不是将它们全部放在strings-xx资源文件中。我曾经在一个项目上工作,有很多不同语言的字符串。我们提出的解决方案是将strings-xx资源文件中的UI相关字符串和SQLite表中的数据字符串放在一起。这大大降低了APK的大小。

与UI相关的字符串我的意思是屏幕标题,按钮/窗口小部件文本,带格式参数的常量字符串等。数据字符串将是依赖于API响应或在API响应中接收的数据字符串。