iPhone:使用 genstrings 更新 Localized.strings 文件

作者:编程家 分类: ios 时间:2025-08-17

使用 genstrings 命令更新 iOS 项目中的 Localized.strings 文件

在 iOS 开发中,我们经常需要为我们的应用程序提供多语言支持。为了实现这一点,我们需要在项目中创建一个 Localized.strings 文件,它包含了应用程序中需要本地化的所有字符串。当我们需要添加新的本地化字符串或者更新现有的字符串时,我们可以使用 genstrings 命令来自动生成 Localized.strings 文件。

genstrings 是一个命令行工具,它可以从代码中提取出待本地化的字符串,并将它们存储到 Localized.strings 文件中。使用 genstrings 命令非常简单,只需要在终端中进入项目的根目录,并执行以下命令:

genstrings -o

其中, 是生成的 Localized.strings 文件存储的目录, 是需要提取字符串的源代码文件的路径。genstrings 会扫描指定的源代码文件,提取出其中的所有字符串,并将它们以键值对的形式写入 Localized.strings 文件。

例如,假设我们有一个名为 ViewController.m 的源代码文件,其中包含了一些需要本地化的字符串。我们可以在终端中执行以下命令来生成 Localized.strings 文件:

genstrings -o Resources/Localization ViewController.m

上述命令将会在项目的 Resources/Localization 目录下生成一个名为 Localized.strings 的文件,并将提取到的字符串写入其中。

genstrings 命令的常用参数

genstrings 命令还支持一些其他的参数,可以帮助我们更加灵活地使用它。下面是一些常用的参数:

- `-a`:自动将提取到的字符串追加到现有的 Localized.strings 文件中,而不是创建一个新的文件。

- `-s`:在提取字符串时忽略大小写。

- `-q`:静默模式,不输出任何日志信息。

- `-u`:更新现有的 Localized.strings 文件,只会添加新的字符串,不会删除已经不存在的字符串。

例如,如果我们想要将新提取到的字符串追加到现有的 Localized.strings 文件中,可以使用以下命令:

genstrings -a -o Resources/Localization ViewController.m

这样,genstrings 命令会将新提取到的字符串添加到现有的 Localized.strings 文件中,而不会覆盖原有的内容。

使用 genstrings 命令可以帮助我们快速地更新 iOS 项目中的 Localized.strings 文件。它能够从源代码中提取出待本地化的字符串,并将它们存储到指定的文件中。我们可以根据需要使用不同的参数来自定义 genstrings 命令的行为。

无论是在开发过程中添加新的本地化字符串,还是在更新现有的字符串时,genstrings 都能够帮助我们更加高效地管理和维护 Localized.strings 文件,从而为我们的应用程序提供多语言支持。

案例代码

以下是一个简单的示例,展示了如何使用 genstrings 命令更新 Localized.strings 文件。

swift

// ViewController.swift

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var titleLabel: UILabel!

override func viewDidLoad() {

super.viewDidLoad()

titleLabel.text = NSLocalizedString("welcome_title", comment: "Welcome Title")

}

}

假设我们需要将 "Welcome Title" 这个字符串进行本地化。我们可以在终端中执行以下命令来生成 Localized.strings 文件:

genstrings -o Resources/Localization ViewController.swift

这样,genstrings 命令会扫描 ViewController.swift 文件,提取出其中的 "Welcome Title" 字符串,并将其写入 Localized.strings 文件中:

/* Welcome Title */

"welcome_title" = "欢迎标题";

我们可以在生成的 Localized.strings 文件中找到 "welcome_title" 这个键,将它的值改为相应的本地化文本即可。