SwiftUI-国际化(二)

介绍

SwiftUI-国际化一文中,我们详细介绍了国际化的内容。在 Xcode 15 之后,Apple 提供了一种新的国际化方式,通过引入String Catalog,使得处理国际化更加高效与便捷。

特点

  • Info.plist 文件国际化需要新建一个String Catelog,必须命名为InfoPlist.xcstrings
  • 文本国际化需要新建一个String Catelog,必须命名为Localizable.xcstrings
  • Xcode 为xcstrings文件提供了可视化的编辑界面,并且会显示每一种语言的国际化完成比例。
  • 编译时可以自动提取需要国际化的内容到xcstrings文件。

案例

  1. 配置国际化语言。
  2. 新建Localizable.xcstrings
  3. SwiftUI 代码。
swift 复制代码
import SwiftUI

struct ContentView: View {
    let temperature = 10

    var body: some View {
        VStack {
            // 纯文本
            Text(String(localized: "title", defaultValue: "Kindly Reminder"))

            // 自定义View
            MessageView(String(localized: "message", defaultValue: "Weather Information"))

            // 插值
            Text(String(localized: "weather",
                        defaultValue: "Weather is \(String(localized: "localizedWeather", defaultValue: "Sunny"))"))

            Text(String(localized: "temperature",
                        defaultValue: "Temperature is \(temperature) ℃"))
        }
        .padding()
    }
}

struct MessageView: View {
    let message: String

    init(_ message: String) {
        self.message = message
    }

    var body: some View {
        Text(message)
    }
}
  1. 编译项目,可以自动提取需要国际化的内容到xcstrings文件。
  2. 在 Xcode 提供的可视化的界面进行国际化内容的编辑,并且会显示每一种语言的国际化完成比例。

  1. 运行并且测试。

效果

  • 英文。

  • 中文。

相关推荐
0xAaron6 小时前
如何使用dSYM文件来符号化崩溃信息
ios·swift·调试·崩溃·符号化·dsym
Swift社区8 小时前
在 Swift 中使用 Image Playground 生成 AI 图像:完整实战指南
开发语言·人工智能·swift
0xAaron10 小时前
ips 文件符号化
ios·swift·调试·ips·符号化
HarderCoder11 小时前
脱离 SwiftUI 也能用 @Observable:深入理解 withObservationTracking 的玩法、坑点与 Swift 6 突围
swift
kk哥88991 天前
Swift底层原理学习笔记
笔记·学习·swift
confiself1 天前
通义灵码分析ms-swift框架中CHORD算法实现
开发语言·算法·swift
1024小神1 天前
在 Swift 中,self. 的使用遵循明确的规则
开发语言·ios·swift
Swift社区1 天前
Swift 类型系统升级:当协议遇上不可拷贝的类型
开发语言·ios·swift
u***u6851 天前
后端在消息队列中的可靠性保证
swiftui·ar·rocketmq
小小8程序员1 天前
swift的inout的用法
开发语言·ios·swift