MST
星途 面试题库

面试题:Swift 本地化与国际化之基础实现

在 Swift 项目中,如何实现简单的文本本地化?请描述基本步骤,并给出示例代码展示如何在视图中加载本地化字符串。
39.3万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试

基本步骤

  1. 创建本地化文件
    • 在 Xcode 项目导航器中,右键点击项目,选择 New File...
    • Resource 下选择 Strings File,点击 Next,命名为 Localizable.strings,然后点击 Create
    • 选中 Localizable.strings 文件,在右侧 File Inspector 中,点击 Localize... 按钮,选择要支持的语言。Xcode 会为每种语言创建对应的 Localizable.strings 文件,例如 Localizable.strings (Base)Localizable.strings (en)Localizable.strings (zh-Hans) 等。
  2. 添加本地化字符串
    • 打开对应语言的 Localizable.strings 文件,按照 键 = "值"; 的格式添加本地化内容。例如在 Localizable.strings (en) 中添加:"greeting" = "Hello";,在 Localizable.strings (zh-Hans) 中添加:"greeting" = "你好";
  3. 在代码中加载本地化字符串:在 Swift 代码中,使用 NSLocalizedString 函数来加载本地化字符串。

示例代码

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let greeting = NSLocalizedString("greeting", comment: "A simple greeting")
        let label = UILabel(frame: CGRect(x: 100, y: 100, width: 200, height: 50))
        label.text = greeting
        view.addSubview(label)
    }
}

在上述代码中,NSLocalizedString 的第一个参数是在 Localizable.strings 文件中定义的键,第二个参数 comment 用于给本地化字符串添加注释,方便翻译人员理解其用途。运行应用时,系统会根据设备的语言设置,从相应的 Localizable.strings 文件中加载对应的字符串,并显示在 UILabel 上。