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的力量

我们希望您喜欢这篇文章,如果喜欢,请不要犹豫,💬或鼓掌。

如果您想加入我们的技术局或任何其他后端市场部门, 请在这里看看,我们正在招聘 🦄

Interesting Posts