今天第一次遇到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")
问题得到解决。