我正在 iOS 上构建一个国际化的应用程序,该应用程序应该从服务器下载一些图像(比如 01.png、02.png、03.png、04.png,其中 01 和 03 是英文版本2张图片,02和04为2张图片的中文版)。 我知道如何在本地设置国际化(将两个文件命名为相同的名称,并将一个文件放入 en.lproj 文件夹,另一个放入 zh-Hant.lproj 文件夹)。
我只是想知道是否有更好的方法以编程方式执行此操作?
或者我必须以编程方式从服务器下载 -> 将文件放入他们的语言依赖服务器 -> 重命名?
附言我无法控制服务器,因此无法从服务器重命名文件。这些图像文件在 iOS 和 Android 设备之间共享。 (我知道 Android 会在文件名后附加语言和分辨率特定文本)
最佳答案
您需要自行管理这些文件的下载和使用。标准本地化系统基于作为主包一部分的资源。您(一般来说)有 2 个选择:
- 下载单个文件,为它们命名并将它们存储在缓存文件夹中(可能不是文档文件夹,因为此内容不需要备份),根据需要通过引用适当的名称自行加载。<
- 下载准备好的包,其中包含您要用于本地化应用的字符串和图像。结合使用
NSLocalizedStringFromTableInBundle
和类似于imageNamed:
的自定义实现(在整个应用中),这样您就可以从指定的包中获取资源。
您需要在主 bundle 中的内容和您的额外存储空间之间进行调解。
关于iOS 国际化与下载的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205148/