首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在swift / swiftUI中回退到默认的(英语)语言?

在Swift / SwiftUI中回退到默认的(英语)语言,可以通过以下步骤实现:

  1. 首先,确保你的应用支持多语言。在Xcode中,选择你的项目文件,然后在"Localizations"部分添加所需的语言。
  2. 创建一个名为"Localizable.strings"的文件,用于存储各种语言的本地化字符串。在文件中,你可以定义键值对,其中键是用于标识特定字符串的唯一标识符,值是对应语言的翻译。
  3. 在你的应用中,使用NSLocalizedString函数来获取本地化字符串。这个函数会根据当前设备的语言设置自动返回适当的翻译。
  4. 如果要回退到默认的英语语言,可以通过修改应用的语言设置来实现。可以在应用的设置界面中提供一个选项,让用户选择应用的语言。
  5. 一旦用户选择了回退到默认的英语语言,你可以使用UserDefaults来存储用户的选择。在应用启动时,检查存储的语言设置,并将其应用到整个应用程序。

以下是一个示例代码,演示如何在Swift / SwiftUI中回退到默认的英语语言:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    @State private var selectedLanguage = UserDefaults.standard.string(forKey: "SelectedLanguage") ?? Locale.current.languageCode ?? "en"

    var body: some View {
        VStack {
            Text(NSLocalizedString("hello", comment: ""))
                .font(.title)
            
            Picker("Language", selection: $selectedLanguage) {
                Text("English").tag("en")
                Text("French").tag("fr")
                // 添加其他语言选项
            }
            .pickerStyle(SegmentedPickerStyle())
            .padding()
        }
        .onAppear {
            // 应用存储的语言设置
            Bundle.main.setLanguage(selectedLanguage)
        }
        .onChange(of: selectedLanguage) { newValue in
            // 存储用户选择的语言
            UserDefaults.standard.set(newValue, forKey: "SelectedLanguage")
            // 应用新的语言设置
            Bundle.main.setLanguage(newValue)
        }
    }
}

extension Bundle {
    func setLanguage(_ languageCode: String) {
        guard let path = Bundle.main.path(forResource: languageCode, ofType: "lproj") else {
            return
        }
        let bundle = Bundle(path: path)
        object_setClass(self, type(of: bundle!))
    }
}

在上面的示例中,我们创建了一个简单的视图,其中包含一个文本和一个选择器。文本使用NSLocalizedString函数获取本地化字符串。选择器允许用户选择应用的语言。

通过UserDefaults存储用户选择的语言,并在应用启动时应用该设置。Bundle的扩展方法setLanguage用于设置应用的语言。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用 Swift 来构建安卓应用|肘子的 Swift 周报 #071

技术的生命力在于其开放性和普适性。一个更开放的 Swift,不仅能够推动跨平台开发的进步,还能为整个开发者社区带来更多创新和可能性。让 Swift 从“苹果的语言”尽快蜕变为“世界的语言”。...但在横屏模式下,默认的paging存在对齐偏移的问题。...在这篇文章中,方君宇详细介绍了 URL Scheme 和 Universal Link 的配置方法,并探讨了如何在 SwiftUI 中处理深层链接事件。...[18] .xcconfig文件是 Xcode 项目中去中心化管理构建配置的重要工具,能够帮助开发者将环境变量(如 API 地址、编译选项、日志级别)从 Xcode 界面和 Swift 代码中解耦出来。...此外,Mirza 还介绍了 Swift 编译器 (swiftc) 在处理 C 互操作时的关键参数,如-I、-L和-lfoo,确保 C 代码可以正确链接到 Swift 项目。

5900

肘子的 Swift 周报 #062|让 Swift 更强,也更简单

在 11 月发表的愿景[4]中,开发团队提出了一个构想:允许开发者以模块为单位,选择默认以 MainActor 隔离的方式进行编译。...Swift 语言逐渐走向复杂化,这几乎是每一个发展到一定阶段、并且具有雄心的语言的必然趋势。不过一旦这种复杂化影响了语言的易学性,动摇的将是这门语言的根基。...近期推荐 Apple 在 iOS 18 中对 Swift 和 SwiftUI 的应用 (Apple’s Use of Swift and SwiftUI in iOS 18)[6] 一如既往的精彩,Alexandre...文章中的数据清晰展现了 Swift 和 SwiftUI 在苹果生态系统中的持续增长趋势。 ★尽管 SwiftUI 的份额仍在稳步扩大,但其增速在最近几个系统版本中已呈放缓趋势。...在这篇帖子中,Quinn 探讨了在使用AsyncSequence时,如何在数据发送和接收端有效管理数据流,以避免因数据生产速度过快而引发的内存问题。

13810
  • Swift 周报 第十九期

    本提案介绍了使用 if 和 switch 语句作为表达式的功能,主要内容包含: 函数、属性和闭包的返回值 为变量赋值 声明变量 Swift论坛 讨论 Comparable 下 == 的危险默认实现[5...如今,在这些情况下,开发人员不得不回退到 Objective-C/C++/C(使用 attribute((constructor))),即使他们只需要调用一个 Swift 函数。...Manager 包会自动默认为第一个支持的版本,对于许多平台来说,这是 2017 年的版本。...它不但让我们参与到布局过程中,而且也给了我们一个很好的机会去更好的理解布局在 SwiftUI 中的作用。 话题讨论 你如何看待各地疫情管控放开 欢迎在文末留言参与讨论。...特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。

    1.5K30

    全新Swift从入门到进阶实战探探iOS APP

    这些差异使得Swift成为了一个更适合现代开发需求的语言,同时也反映了Apple在推动其平台向前发展方面的决心。如何在Swift中实现测试驱动开发(TDD)的最佳实践?...利用声明式编程语言如SwiftUI来实现用户界面可以显著提高开发效率和项目的质量19。...为了进一步提高UI设计的质量和效率,开发者可以考虑使用静态分析工具(如SonarQube和Codacy)来评估和改进他们的SwiftUI项目19。...有效地使用Swift和UIKit框架进行用户界面设计需要开发者深入理解这两个技术栈,并结合现代编程范式(如SwiftUI)的最佳实践来提高开发效率和产品质量。...在iOS应用开发中,提高Swift编程语言性能的高级技巧可以从多个方面进行考虑。

    36110

    肘子的 Swift 周报 | Swift,超越苹果生态!

    虽然自 2015 年末起 Swift 便开始支持 Linux,但长期以来,其在非苹果平台上的推广和应用进展缓慢,许多人仍旧将 Swift 视作苹果生态下的专属语言。...然而,值得高兴的是,Swift 社区从未放弃将 Swift 推向更广阔平台的梦想。得益于语言特性的持续丰富与工具链的不断优化,近两三年来,Swift 在跨平台方面取得了显著进步。...此外,通过引入新的语言特性及支持这些特性的第三方库,Swift 在服务器端的表现也得到了进一步加强。...文章中不仅阐述了这一概念的实现过程,还附带了一个完整的演示,展现了如何在 SwiftUI 环境下应用这一技术。...在转向 AppKit 的过程中,他探讨了一些鲜为人知的 AppKit 组件,如 NSTableHeaderCell 等,并通过 NSViewRepresentable构建了 SwiftUI 与 AppKit

    15810

    肘子的 Swift 周报 #055| 让技术为我所用,不要被其反噬

    本文中,tit 不仅深入讲解了 Swift 宏的基础和进阶用法,还展示了如何在 Bilibili 会员中心模块开发过程中,通过自定义宏减少冗余代码的编写,优化整体开发体验。...Xcode 16 中的一项新变化:在调试模式下构建 SwiftUI 应用时,所有视图都会被包裹在 AnyView 中。...这一设计初衷是通过共享构建产物,加快不同模式之间的切换,并提升预览速度。但在某些情况下(如 List ),这一处理方式可能会阻碍性能优化。...Junping[13] 强调了通过 Inject 实现在 Cursor 中构建类似 Xcode 预览的开发体验[14],展示了如何在新的工作流中替代传统工具。...Swift Testing Swift Testing 是专为 Swift 语言设计的测试框架,并集成在 Xcode 16 中,成为官方推荐的测试工具。一旦使用它,你很可能会被其强大的功能所吸引。

    3100

    不止于 X:Swift 社区拥抱 Mastodon 和 Bluesky|肘子的 Swift 周报 #072

    毕竟,真正重要的不是我们选择了哪个平台,而是我们如何在各自选择的平台上维持有意义的交流,继续为社区贡献价值。...团队经过三年重构,全面迁移至 Swift + Vapor,并成功在生产环境运行一年,带来了计算成本降低 3 倍、性能提升、开发效率提高等显著收益,同时替换了原有的 C 语言推送服务,使架构更加简洁高效。...如何在清晰的历史记录与流畅的开发体验之间找到平衡,值得开发者深入思考。...Jon Reid[19]在这篇文章中探讨了 SwiftUI 视图测试的边界,包括:测试行为,而非外观;测试 UI 传递的信息;测试包含逻辑判断的 UI 组件。...更可维护的代码结构,但许多团队仍受限于基于回调(callback-based)的旧代码,难以直接迁移。

    5100

    Swift 周报 第四十一期

    然而,先前提出的一些目标包括尚处于开放式研究阶段的问题。在 Swift 6 的工作进展的同时,语言指导组正在将 Swift 6 剩余变更的重点缩小到默认情况下的数据竞争安全。...6 中默认启用。...换句话说,专门用于非尽事枚举的要求,即添加 @unknown 默认情况,以处理未来的枚举案例,已从 “Swift 4 中的警告/Swift 5 中的错误” 降级为 “Swift 4 中的运行时陷阱/Swift...正如我们在关于 Swift 6 进展的最新帖子中宣布的那样,我们已经使用即将推出的功能标志合并了一些不兼容源代码的更改,计划在 Swift 6 中默认启用这些标志。...掌握 SwiftUI 中的 ContentUnavailableView [10] 摘要: 这篇博客介绍了如何在 SwiftUI中 掌握使用 ContentUnavailableView 类型。

    23840

    肘子的 Swift 周报 #046| 无警告编译并非 Swift 6 的初衷

    在这个过程中,我首先尝试让自己构建的第三方库在 Swift 6 模式下实现完美编译。 这些库的代码并不复杂,经过一番调整,大多数都能在 Swift 6 模式下实现无警告编译。...随着新框架和 API 大量采用新的并发工具,Swift 语言的新手可能会过早地面对这些深奥问题,这或许会影响 Swift 的推广和应用。...相反,我们应该将其视为一个契机,去深入理解语言的演进,提升自己的系统设计能力,真正掌握并发编程的精髓。...作者认为,经过多年发展,SwiftUI 逐渐统一了 Apple 各个平台的代码,实现了跨平台代码的高度共享,但开发者在开发过程中仍需考虑不同平台的特性,以确保应用的用户体验与平台的设计理念相一致。...他们详细演示了从设置项目到实现与浏览器交互的整个过程,包括如何在 Xcode 中配置 WebAssembly、使用 JavaScriptKit 库操作 DOM 以及利用 Swift 的 Observation

    11610

    肘子的 Swift 周报 #058| 运气眷顾耐心的人

    前一期内容|全部周报列表 原创 理解 SwiftUI 的视图刷新机制:从 TimelineView 刷新问题谈起[3] Fatbobman(东坡肘子)[4] 在 SwiftUI 中,视图的自动刷新机制让我们能够轻松构建响应式的用户界面...Implicit Actor-Isolation)[11] Jared Sinclair[12] 在切换到 Swift 6 语言模式后,许多旧代码不再能通过编译。...在 RealityKit 中,当多个半透明物体嵌套或交错时,默认的渲染顺序可能导致显示异常,如物体轮廓消失或叠加颜色错误。...Swift 并发提案索引 (Swift Concurrency Proposal Index)[17] Quinn Swift 并发机制是 Swift 语言中的重要组成部分,也是一个复杂而广泛的领域。...在苹果开发者论坛的这篇帖子中,苹果工程师 Quinn 系统整理了 Swift Evolution 中与并发设计相关的提案,涵盖了 Swift 6.0 已实现的核心特性以及部分正在开发中的功能。

    5700

    肘子的 Swift 周报 #053| 打破年度发布制度:科技创新的新起点

    前一期内容|全部周报列表 原创 SwiftUI 中的 UserDefaults 与 Observation:如何实现精准响应[4] Fatbobman(东坡肘子)[5] 在 SwiftUI 中,苹果提供的...本文将探讨如何在 Observation 框架下高效且便捷地管理 UserDefaults 中的数据,并提出一个完整而实用的解决方案:@ObservableDefaults[6]。...Chris 通过这个演讲,展示了如何在 SwiftUI 中实现各种动画,从基础动画到更复杂的阶段动画、关键帧动画,甚至粒子动画,提供了多个实用的示例来帮助开发者掌握这些技巧。...Swift 编程中数组(Array)和集合(Set)的区别,并深入介绍了它们在常见操作中的使用方式。...[16] 什么是 Swift 中的依赖注入?

    3500

    肘子的 Swift 周报 #001

    在 Fatbobman's Swift Weekly 中,除了为订阅者提供我个人博客的最新消息外,还会分享其他优秀作者关于 Swift、SwiftUI、Core Data、SwiftData 等方面的内容...,无论是用英文、中文还是其他语言撰写的。...本文将深入探讨 SwiftData 是如何通过代码创建数据模型的,使用了哪些新的 Swift 语言特性,以及构建 PersistentModel 的过程和原理。...如果你打算逐步从 Core Data 迁移到 Swift Data,或者想在你的应用程序中为特定用例(如小组件)使用Swift Data,本文将对你有所帮助。...在本文中,作者将会谈论和“空间”相关的三个事项: 如何在模拟器中体验空间照片 空间视频/照片到底是什么 Apple 到底做了什么 XRealityZone[21] 是一个专注于 XR 领域的创作者社区。

    29140

    肘子的 Swift 周报 #031 |苹果用 M4 来展现拥抱 AI 的决心

    我迫切希望了解苹果如何在 AI 的性能、能耗、隐私、开发便利性和使用体验等方面找到平衡。...近期推荐 Swift’s native Clocks are very inefficient( Swift 的原生时钟效率极低 )[5] Wade Tregaskis[6] 在 Swift 并发编程中...除了阐述如何在应用中部署机器学习模型的具体技术步骤外,本文还深入探讨了相关的最佳实践和可能遇到的挑战。...这些工具使得在应用的多个功能模块之间无缝共享状态成为可能,同时支持状态的持久化存储,如用户默认设置和文件系统,保证了功能的 100%可测试性。...团队面临的主要问题包括:与 SwiftUI 和现代 Swift 包的兼容性问题、Xcode SwiftUI 预览功能中断、storyboards 加载缓慢、以及 Podfile 复杂性增加和依赖维护困难等

    16110

    肘子的 Swift 周报 #022 | 忙碌的一周

    此外,苹果还发布了 Xcode 15.3 版本,并随之带来了 Swift 5.10 的更新。 在这众多更新中,对开发者而言最重大的莫过于 Swift 5.10 的发布。...而今,Swift 5.10 在启用完整并发检查选项后,将强制在语言的所有方面实施完全的数据隔离,以编译时检查为手段确保安全。...通过一段时间的实践,Swift Predicate 对我产生了深远的影响。它不仅在特定框架中发挥作用,我预见在未来的开发过程中,Swift Predicate 将在更多数据逻辑判断的场景中广泛应用。...该版本在并发语言模型中引入了完全数据隔离机制,为即将发布的 Swift 6 版本奠定了坚实基础。...Migrating my SwiftUI App to VisionOS in 2 Hours[16] Cihat Gündüz[17] 在这篇文章里,Cihat Gündüz 详细讲述了他如何在两小时内

    11210

    【愚公系列】《AIGC辅助软件开发》013-AI辅助客户端编程:AI辅助 iOS 应用开发

    了解基础知识在学习 SwiftUI 之前,建议先掌握一些基础知识:- **Swift 编程语言**:SwiftUI 是基于 Swift 的,所以你需要先了解 Swift 的基本语法和编程概念。...如果你是编程初学者,可以先学习 Swift 的基础语法,如变量、数据类型、控制流、函数等。...- **UIKit 集成**:学习如何在 SwiftUI 中使用 UIKit 组件,或将 SwiftUI 视图嵌入到现有的 UIKit 应用中。...- **过渡效果**:学习如何在视图之间添加过渡效果,如淡入淡出、缩放等。 **实践**: - 在按钮点击时,添加一个视图出现或消失的动画。 - 为列表中的项目添加删除动画。### 4....- **UIViewRepresentable**:了解如何在 SwiftUI 中嵌入 UIKit 视图。

    9010

    Swift 周报 第十二期

    如下图: 在 iOS 16 中使用 SwiftUI Charts 自定义折线图[14] 摘要: iOS 16 中引入的 SwiftUI Charts,可以快速的实现各种统计图,通过图表直观的呈现数据。...本文介绍了几种自定义的折线统计图。 如何在 SwiftUI 中创建条形图[15] 摘要: 本文展示了如何创建一个垂直条形图,其中 Y 轴表示每个类型的值。...如下图: 如何在 SwiftUI 中创建水平条形图[16] 摘要: 根据 UI 设计以及交互需求,有时候统计图需要调整 X 和 Y 轴。...特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。...-16/ [15]如何在 SwiftUI 中创建条形图: https://swdevnotes.com/swift/2021/how-to-create-bar-chart-swiftui/ [16]货拉拉

    2.6K10

    肘子的 Swift 周报 #043| 记忆归档和唤醒

    前一期内容|全部周报列表 原创 如何在 SwiftUI 中平铺图片[3] Fatbobman( 东坡肘子 )[4] “这题我会!”。我想,看到本文标题时,这恐怕是大多数人的第一反应。...在本文中,我们将探讨两种不同的图片平铺实现方式,并由此引申出一种在 SwiftUI 中较少使用的 Image 构建方法。...并针对开发者讲解了如何在自定义文本视图中集成 Writing Tools,如何控制 Writing Tools 的行为,以及如何处理特定文本范围(如代码块)等内容。...我不清楚具体原因,但不论是团队更看重 KPI (比如一定要改造语言并匆忙发布 SwiftUI,或者是要把并发编程的饼尽早做出来),还是急于在别的领域“大显身手” (比如 Server Side 或者其他操作系统平台...)[17] Donny Wals[18] 在迁移至 Swift 6 语言模式时,开发者可能会遇到一系列新的编译警告。

    9410

    肘子的 Swift 周报 #019 | 超越代码,拥抱思维转变

    这些属性包装器涵盖了不同框架声明周期的整合、辅助聚焦、焦点值观察管理等功能。 Swift 语言的属性包装器与 SwiftUI 诞生于同一年。...近期推荐 The Swift Method Dispatch Deep Dive[5] Jacob Bartlett[6] 本文深入探讨了 Swift 语言中的方法派发机制,目的在于阐释 Swift 执行函数调用的机制及其对代码性能的具体影响...文章进一步讨论了通过采纳某些策略,如使用 final 关键字、方法的私有化以及全模块优化等,来降低动态派发的频率,从而有效提升 Swift 代码的运行效率。...Swift 语言带来一系列高效、强大及实用的算法扩展。...在这篇文章中,Majid Jabrayilov 利用自己丰富的实践经验,向我们展示了如何借助 Swift Algorithms 库中提供的各种功能,如二分搜索、数据分块、过滤、采样和元素组合等,有效提升项目开发的效率和执行性能

    10810

    肘子的 Swift 周报 #052| 回顾初心,写在周报创刊一周年

    在交流中,二位详细分享了 Swift Package Index 项目的开发历程、技术架构及背后的设计理念。...在本文中,Aryaman Sharda 详细介绍了如何在 SwiftUI 中实现 Shared with You 功能,提供了完整的代码实现,并分享了在测试该功能时的实用建议。...在这篇文章中,Danny Bolella 通过分析 Translation[19] 这一只能在 SwiftUI 中使用的新框架,探讨了苹果在 UIKit 和 SwiftUI 之间的取舍。...作者指出,越来越多对 SwiftUI 更友好的新框架(如 Charts、SwiftData、Observation)向开发者传递了明确的信息:虽然 UIKit 和 AppKit 目前不会被立即取代,但苹果正积极推动...SwiftUI 环境机制 (SwiftUI Environment)[20] Natalia Panferova[21] SwiftUI 中的环境(Environment)是一种在视图层次结构中跨越多个视图传递数据和配置信息的机制

    3600
    领券