SwiftUI 国际化

806 阅读1分钟

已经2025年了,不要再用Strings File这种过时的文件来实现多语。

Xcode15(2023年9月)推出了新的多语格式String Catalog。

比起Strings File用key = value这样的简陋的形式来实现多语,String Catalog简直就是一把瑞士军刀。

下面我们来看看String Catalog有哪些优点。

  • 能够清晰地知道多语翻译的进度,可以渐进地翻译。 90dfb497-5867-48c2-b97c-a03fc4bf4d8f.jpg.png

  • 能够轻松实现英语中的复数。 image.png

image.png

而这在之前用Strings File是没法实现的。需要借助Stringsdict File来实现。 image.png

可以看得出来,繁琐复杂。以前开发App时因为英语国家的用户不是主要目标对象,我都选择忽略。

而用String Catalog就是顺带手的事,那就给翻译了吧。

  • 每次编译可以自动抓取需要翻译的key,并且把代码中删除的key标记出来。

  • 根据设备提供不一样的翻译。 image.png

Xcode还非常贴心地提供了从老版的Strings File迁移到String Catalog的功能。 image.png

String Catalog这么强大,那么拦在大家面前的障碍就只剩一点了吧。

String Catalog是随Xcode15推出的,那是不是只有iOS 17+才能用?

并不是。String Catalog是开发功能,而不是系统功能。在旧的系统上一样可以使用。

为什么可以确定? image.png

这个是用String Catalog的工程打包出来的ipa里面看到的。可以看到,和旧的格式是一样的,是.strings和.stringsdict。打包出来的格式是一样的,没有理由旧的系统不能用。

实际上经测试也是如此。