SwiftUI: 极简实现App内快速切换本地化语言

本文介绍了如何在SwiftUI中实现在App内部动态切换本地化语言。通过创建不同语言的本地化条目,使用LocalizedStringKey构造器,并结合SwiftUI的环境修改器,实现动态切换。同时,文章提供了动态生成本地化内容的方法,以适应实时更新的需求。通过动态创建Bundle并根据用户选择的Locale加载资源,最终实现完全的即时本地化切换功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述



功能需求

一般来说,让App支持本地化语言是一件还算轻松的事,只要设置好对应的语言字符串脚本,然后在App内所有需要国际化的代码位置按键(Key)返回对应本地化文本即可。

这样当App安装到设备上或设备的语言更改后,App就会应用对应的语言。

但如果用户需要在App内手动切换本地化语言又该如何呢?

在这里插入图片描述

如上所示,当用户在英文、简体中文和日文中切换时,App的显示也随之切换为对应的本地化内容。

用户什么情况下会手动在App中切换语言呢?

一种可能是,比如我是西班牙人,App支持英语,中文和西班牙文3国语言。按道理我的手机语言是西班牙语,App自然默认也是西班牙语。但该App西班牙语翻译的很烂,我还不如直接看英语版本的App。我不太愿意将手机语言切换到英语,这时只有将App的语言切换到英语。

那么如何实现该功能呢?<

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值