【问题标题】:iOS internationalization with downloaded imagesiOS 国际化与下载的图像
【发布时间】:2013-10-06 03:35:50
【问题描述】:

我正在 iOS 上构建一个国际化应用程序,该应用程序假设从服务器下载一些图像(例如 01.png、02.png、03.png、04.png,其中 01 和 03 是英文版本2张图片,02和04是2张图片的中文版)。 我知道如何在本地设置国际化(将两个文件命名为相同的名称,并将一个放在 en.lproj 文件夹中,另一个放在 zh-Hant.lproj 文件夹中)。

我只是想知道是否有更好的方法来以编程方式执行此操作?

或者我必须以编程方式从服务器下载 -> 将文件放在他们的语言依赖服务器中 -> 重命名?

附:我无法控制服务器,因此无法从服务器重命名文件。这些图像文件在 iOS 和 Android 设备之间共享。 (我知道 Android 将特定语言和分辨率的文本附加到文件名)

【问题讨论】:

  • 比什么更好?是的,您需要下载并定义一些命名/位置方案。
  • 我只是想知道哪里是存储下载文件的最佳位置。因为据我了解, mainBundle 不是一种选择。但是,当用户第一次安装应用程序时,我确实有一些文件存储在 mainBundle 中,并且应用程序以编程方式加载文件并显示在屏幕上。如果一些文件存储在 mainBundle 中,而一些文件存储在 sharedFolder 中,我的程序会识别两者吗?

标签: ios internationalization


【解决方案1】:

您需要自己管理这些文件的下载和使用。标准本地化系统基于作为主捆绑包一部分的资源。您(广义上)有两种选择:

  1. 下载单个文件,命名并保存在缓存文件夹(可能不是文档文件夹,因为此内容不需要备份),根据需要参考适当的名称自行加载。李>
  2. 下载准备好的包,其中包含要用于本地化应用程序的字符串和图像。结合使用NSLocalizedStringFromTableInBundle 和类似于imageNamed: 的自定义实现(在整个应用中),这样您就可以从指定的捆绑包中获取资源。

您需要在主捆绑包中的内容和您的额外存储空间之间进行调解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    相关资源
    最近更新 更多