Flexx
该库的目的是通过提供一个易于使用的接口以获取和更新从托管服务器中的字符串,方便将字符串资产添加到 iOS 项目中。这使得您可以从网页管理面板中管理字符串并更新它们,而无需重新编译和发布新版本的 app。该库还简化了向 app 添加新翻译的过程。只需在管理面板中添加新语言字符串即可——用户即可立即看到和使用新的语言选项。
示例
要运行示例项目,请克隆仓库,然后首先在 Example 目录中运行 pod install
安装
PopupUpdate 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'Flexx'
并且请记住,通过在项目目录的终端中运行以下命令来安装 pod
pod install
集成
您需要将运行脚本添加到您的项目中。为了方便起见,脚本已包含在容器中。
在您的项目中 - 打开构建阶段,添加一个新运行脚本,如下所示
chmod +x ./Pods/Flexx/Flexx/Classes/download_strings.sh
././Pods/Flexx/Flexx/Classes/download_strings.sh
第一条命令chmod用于更改脚本文件的权限。+x表示文件可执行。有关更多命令,请参阅chmod文档。第二行是实际执行脚本的内容。那里指定了脚本路径为相对于项目根目录的相对路径。如果需要,您也可以指定不同的相对路径,相对于项目根目录。
下一步将创建一个名为“配置”的.plist文件。之后填写所需信息。您可以使用下面的模板。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppId</key>
<string>Your App ID Here</string>
<key>BaseUrl</key>
<string>Base Url Here</string>
<key>Domains</key>
<array>
<string>Domain 1</string>
<string>Domain 2</string>
</array>
<key>Secret</key>
<string>Your App Secret Here</string>
</dict>
</plist>
AppId - 应用的标识符。
BaseUrl - 服务的字符串提供者URL
Secret - 用于对库的调用的身份验证(这是在控制台中创建应用时使用的密钥)
Domains - 所有域名
之后,您只需要导入Flexx
import Flexx
Flexx包含几个方法。其中一个是使用库所必需的,其他都是可选的。
Flexx的初始化。此方法应该尽可能早地调用,例如在AppDelegate的
let locale = Locale(identifier: "en-GB")
Flexx.shared.initialize(locale: locale)
或者您可以使用扩展init方法
let locale = Locale(identifier: "en-GB")
Flexx.shared.initialize(locale: locale,
enableLogging: true,
defaultLoggingReturn: .key,
defaultUpdateInterval: 600000,
completed: nil)
初始化之后,您可以调用此方法来获取所需的字符串
let myString = Flexx.shared.getString(domain: "Domain-name-here", key: "word-key-here")
以下是一些您可以使用的其他可选方法
获取当前区域设置
Flexx.shared.getCurrentLocale()
将当前区域设置更改为所需区域设置
Flexx.shared.changeLocale(desiredLocale: Locale(identifier: "en-GB"))
获取所有可用区域设置
Flexx.shared.getAvailableLocales { languages, error in
for language in languages {
print("LANGUAGE: \(language.code), \(language.name)")
}
if let error = error {
print("Error: \(error)")
}
}
许可
Flexx遵循MIT许可。有关更多信息,请参阅LICENSE文件。