稍后在Xcode中生成.strings文件

时间:2017-12-15 15:49:51

标签: swift xcode localization nslocalizedstring

我目前正在本地化一个非常大的Swift项目,我已将.swift文件中的所有字符串更改为NSLocalizedString。现在看来我必须手动创建.strings文件并将每个字符串添加到此文件中以进行基本本地化。

有没有办法生成这个文件?据我所知,代码中有大约4000个字符串,我无法相信这必须手动完成。我在Apple文档中找到了genstrings脚本,但它似乎只是为objc设计的,所以它没有Swift支持。

1 个答案:

答案 0 :(得分:0)

使用与Xcode打包的genstrings命令行工具,我们使用它来从我们的" NSLocalizedString"中提取所有字符串。宏并编译一个字符串文件。

我需要在项目目录的根目录中创建新文件。

添加一个新的字符串文件并将其命名为#34; Localizable",这是默认标题并将其放在我们的基础项目文件夹中。所以这里我们有一个空的" Localizable.strings"文件。所以现在切换到终端并运行此命令是项目目录而不是文件夹。

使用此命令仅从Swift文件导入字符串

find . -type f -name \*.swift -print0 | xargs -0 genstrings -o Base.lproj

使用genstrings命令行工具将我们的字符串输出到我们的基本文件夹中的可本地化字符串文件中。如果您使用objC项目,请运行下面的genstrings命令

使用此命令仅从Objective-C实施文件导入字符串

find . -type f -name \*.m -print0 | xargs -0 genstrings -o Base.lproj

对你的项目来说,它没有花很长时间,它提取了所有的字符串。

使用此命令从Objective-C实现文件和Swift文件导入字符串

find . -type f \( -name \*.m -o -name \*.swift \) -print0 | xargs -0 genstrings -o Base.lproj