我是靠谱客的博主 幸福发夹,最近开发中收集的这篇文章主要介绍SwiftUI Localization 教程含源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

现在,我们已经在今年的WWDC上看到了SwiftUI的许多改进,包括甚至可以在App级别上使用完整的SwiftUI(我认为AppDelegate现在已被弃用)的可能性,我才刚刚开始研究我的第一个由SwiftUI驱动的纯正应用程序。

到目前为止,虽然我编写的大多数UI代码都很有趣,而且我正在学习一些技巧来处理数据管理,但我非常想知道的是SwiftUI是否以及如何更改和改进了本地化API。也一样到目前为止,我从Apple那里看到的示例以及所有流行的帖子和指南并没有真正在其中进行任何详细说明,而看起来本地化以某种方式神奇地融入了SwiftUI视图中。

实际上,实际上是这样,至少简单地指定了一个诸如Text(“ E-Mail”)之类的视图,然后将键“ E-Mail”放入Localizable.strings文件中+为其他语言提供不同的翻译工作。

进一步研究它的工作原理,我很快发现了提供魔术的类型:LocalizedStringKey。 SwiftUI视图(例如Text)将这种类型的实例作为其第一个参数,并且因为LocalizedStringKey符合ExpressibleByStringLiteral协议,因此在上面的示例中,可以使用字符串文字(如“ E-Mail”),它们会自动转换为LocalizedStringKey结构的实例。

在查看LocalizedStringKey符合哪些其他协议后,我发现ExpressibleByStringInterpolation,该协议是通过SE-228在Swift 5中以新形式引入的。直到我看到Apple如何使用此协议进行本地化之前,我都完全不知道它的存在,但是当然已经有NSHipster关于它的文章,这只会破坏它的有用性。这是一个用法方面的示例:

Text("Hello, (name)") // => "Hello, %@"
Text("Last updated (date, formatter: dateFormatter)") // => "Last updated %@"

尽管所有这些使新的API比旧的NSLocalizedString API更具可读性和易用性,但它们确实存在一些最大的缺陷:

原文

https://dev.to/jeehut/safer-localization-in-swiftui-4gn8

最后

以上就是幸福发夹为你收集整理的SwiftUI Localization 教程含源码的全部内容,希望文章能够帮你解决SwiftUI Localization 教程含源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部