我有一个关于国际化的问题,但我没有用谷歌搜索它,所以我决定在这里问。
我正在编写一个包含大量资源(图像和影片剪辑)的应用程序。此外,我需要创建多种语言版本的应用程序。我的首要任务是使包的大小尽可能小,因为我不希望用户被迫下载包含资源所有可能语言版本的包。一种解决方案是创建 N 个项目,每个项目都包含特定语言的资源。它有一个主要缺点 - 维护起来会困难得多。
我的问题是:如果我使用 Apple 本地化应用程序的方式(即我将有几个 .lproj 文件夹),特定国家/地区的 AppStore 是否只会下载特定语言的所需资源?如果没有,不做N个项目怎么实现?
最佳答案
App Store 不会根据用户的 App Store 位置转储其余资源文件。语言和区域设置在设备上确定;用户可以轻松地在设备上切换他们的语言,并使用支持该不同语言的应用程序而无需重新下载。
至于不用创建N个项目的方法,有多种方法:
您可以在线托管您的图像和视频剪辑,并且设备会根据设备语言确定访问哪一个。有了这个,您可以按需下载(但应用程序需要持续的网络访问),或者在应用程序首次运行时下载所有必需的文件(如果设备上的语言发生变化,则重新下载,这不是经常)
这更适用于图像,但图像可以有两个组件。不包含特定语言内容的背景和包含特定语言内容的叠加层。所有语言的背景都将保持不变,并且可以根据语言应用适当的叠加层。如果叠加层只是文本,那么所有这些叠加层的大小将比使用整个图像的情况小很多。
否则,您将需要使用 N 个项目。不过我不喜欢这个想法,因为将来维护起来会很痛苦,但有时如果您的应用程序需要大量媒体,则可能需要这样做。
关于iOS 和国际化——所有文件都在一个 AppStore 包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780022/