Swift取消Text的自动本地化实现
Swift取消Text的自动本地化实现

Swift取消Text的自动本地化实现

今天第一次遇到Text自动本地化的情况。

通常来讲,我们都需要手动配置Text(String(localized:))来实现本地化:

Text(String(localized:"CNY"))

但本次比较奇怪的是,Text()意外触发了本地化。

在Swift中,通常静态字符串(例如Text(“CNY”))不会默认进行本地化,除非Localizable.strings文件中明确有对应的本地化词条。当静态文本与某些系统关键词或应用的本地化词条一致时,可能会意外触发本地化。

问题原因可能是刚刚新增了货币单位的本地化词条导致的,但之前一直有配置本地化,这次是系统自动进行了本地化。因此,或许在配置本地化后,可以直接使用Text()展示。

Text("Reserve amount")

经查询了一下发现,配置了Localizable.strings文件后,Swift会通过Text()自动查找并应用对应的本地化字符串,不需要手动调用Text(String(localized:””))。

因为这是我第一次遇到自动本地化的情况,我猜测是我之前的Localizable.strings文件命名可能有问题,导致未实现过自动本地化的情况。

最近,如果不想要Text()展示本地化字符串,可以使用Text()的verbatim参数进行处理:

Text(verbatim: "CNY")

问题得到解决。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注