我的Android应用程序支持3种语言(英语,韩语,俄语),我计划支持更多语言。 由于应用程序的特性,它在每个strings.xml文件中有数百万行(翻译)。所以所有string.xml文件的大小超过1MB。
我觉得它太大了。
有没有办法在不使用values / strings.xml的情况下本地化Android应用程序? 或者...修剪我的应用程序的大小?
答案 0 :(得分:1)
您可以使用比xml更节省空间的文件格式来实现自定义资源加载,但我怀疑它是值得的。
如果要执行此操作,请检查当前区域设置以确定要加载的资源:
getResources().getConfiguration().locale
答案 1 :(得分:1)
实现此目的的一种可能方法是将数据字符串放在SQLite数据库中,而不是将它们全部放在strings-xx
资源文件中。我曾经在一个项目上工作,有很多不同语言的字符串。我们提出的解决方案是将仅与strings-xx
资源文件中的UI相关字符串和SQLite表中的数据字符串放在一起。这大大降低了APK的大小。
与UI相关的字符串我的意思是屏幕标题,按钮/窗口小部件文本,带格式参数的常量字符串等。数据字符串将是依赖于API响应或在API响应中接收的数据字符串。