ios - 如何以及在哪里找到 Phrase OTA 下载的翻译文件?
问题描述
我已经实现了“Phrase”SDK 来简单地“推拉”翻译,它工作正常。
现在在实现 PhraseSDK(OTA 版本)时,我可以Phrase.shared.updateTranslations
在运行时使用方法更新翻译。
接下来,当我从内部清除本地翻译文件内容时,例如,en.lrpoj/Localizable.strings
我es.lproj/Localizable.strings
仍然可以看到翻译,因为 OTA SDK 已将更新的翻译存储在某个位置,与默认.lproj
文件分开。
顺便说一句,这就是它的工作方式,因为 OTA 下载的翻译优先于本地翻译。
现在我想知道这个 Phrase OTA SDK 将这些翻译存储在哪里,因为我在文档目录中找不到它。
解决方案
Application Support
按照Apple 的建议,下载的翻译存储在沙盒目录中。
完整的文件夹是这样组成的:
└── Application Support
└── PhraseSDK
└── Translations
└── [Release Version Number]
├── en.lproj
│ ├── Localizable.strings
│ └── Localizable.stringsdict
└── ...
├── Localizable.strings
└── Localizable.stringsdict
像通常那样访问应用程序支持,例如使用FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first
.
PhraseSDK
为和Translations
之后附加路径组件。版本号取决于后端中设置的内容并自动更新。
如果您想删除所有下载的翻译,您可以根据需要删除 Translations 中的所有内容,但请注意,在运行下载期间绝不应该发生这种情况(尽管捕获了错误,但这可能会导致未知的副作用)。
但我们也在检查文件系统中是否有已知的发布版本,如果没有,则无论如何都会触发重新下载。
嗯!
推荐阅读
- python - Pandas 数据框分配引发 SettingWithCopyWarning
- hsm - CryptokiError:0x60 密钥句柄无效
- cmake - cmake - 如何找出上次构建期间使用的选项
- sapjco3 - sapjco3.dll 已在另一个类加载器中加载
- ios - 无法检查 IOS swift 应用程序中的空文本字段
- android - NavigationView 的 Android ReselectedListener
- sql - 如何检索 MS SQL 中的最新记录?
- bash - 获取具有特定系统权限的文件的文件夹列表
- javascript - 如何修改没有id和class的div的内容?
- c# - 有没有一种简单的方法可以在继承库中包装 C# 接口?