Swift脚本可在iOS上对本地化字符串文件进行管理
设置完成后,当您的应用程序启动并调用专用的SDK方法进行OTA更新时,您的应用程序将收到下一次启动的 Localizable.strings的最新版本。 请记住这一点!
此外,建议 您冻结先前版本的捆绑软件。 因此,某些更新的值(不是键)将导致 String(format 🙂 崩溃 。 如预期的格式值“版本%s”而不是“版本%@”)或任何翻译错误。
Bundle featurr听起来不错,但:
- 第一次启动还是网络问题呢?
- 如果出于任何原因,Lokalise.co不再响应该怎么办? 你明白了。 我们还需要使本地Localizable.strings文件保持最新。
- 此外,我们需要安全生成的SwiftGen密钥在整个项目中使用它们,因为没有人有时间进行这种类型的行:
[[Lokalise sharedObject] localizedStringForKey:@"key" value:@"default value" table:@"table name"];
通过更新模板模板,我们已经完成了此操作。
要通过Lokalise.co API下载最后一个可本地化的文件,我们可以制作bash脚本,Ruby脚本或Python脚本。
但是 …
创建Lokalise.co Swift脚本下载器🚀
使shell命令可以调用🤓
为了与Swift代码中的shell交互,我们必须编写两个实用程序方法。 它们是使用bash命令编写脚本脚本的关键。
现在,每次开发人员或翻译人员在Lokalise.co上更新您的翻译时,只需运行您的Swift脚本即可将其自动放入您的项目中。
更好:为它创建一个别名
要由项目上的翻译告知更新的键,请不要犹豫使用集成。 我们使用 Slack集成, 每天跟踪更改非常有用。 您可以通过链接直接访问特定的更新或添加的密钥。
创建一个Swift脚本构建阶段以生成复数
等等,SwiftGen不管理复数吗?
是的,SwiftGen尚不管理复数:
解析Localizable.stringsdict文件以支持复数·问题#184·SwiftGen / SwiftGen
我检查了整个存储库,找到了一些有关如何使用Swiftgen处理复数的文档,但是我没有找到…… github.com
您可以为其创建专用的模板或演化版,但是自从我们第一个Lokalise.co Swift脚本以来,我们迫不及待地要编写另一个模板,尤其是我的同事Arnaud🍻。
让我们迅速吧!
L10n扩展为复数
我们想要的Swift代码就是这种类型的行:
L10n.Plurals.numberOfBananas(bananaCount)
为此,我们必须在先前生成的文件L10n.swift上创建扩展名:
等等!
使用这两个脚本,通过在iOS项目中管理可本地化的字符串文件,我们的工作效率得到了提高。 我们的代码更安全,完全自动化,并且可以在Swift中生成!
而且,您团队中的任何成员都可以对其进行改进并使其拥有。
这些脚本可在 GitHub上 以Gists的形式获得 在此处 和 此处 ,如本“中等”帖子中所示。 不要犹豫,提出代码演化/解决方案。
感谢您的阅读,也感谢我的同事Arnaud提供的L10nPlurals Swift脚本👨💻。
想走得更远吗?
您可以使用Swift脚本编写很多东西,但我希望您已经用它完成了🚀。 这就是为什么我们喜欢iOS,Swift Server Side和Linux上的Swift。 `立即释放Swift的力量 。
我们希望您喜欢这篇文章,如果喜欢,请不要犹豫,💬或鼓掌。
如果您想加入我们的技术局或任何其他后端市场部门, 请在这里看看,我们正在招聘 ! 🦄