Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 稍后在Xcode中生成.strings文件_Swift_Xcode_Localization_Nslocalizedstring - Fatal编程技术网

Swift 稍后在Xcode中生成.strings文件

Swift 稍后在Xcode中生成.strings文件,swift,xcode,localization,nslocalizedstring,Swift,Xcode,Localization,Nslocalizedstring,我目前正在本地化一个相当大的Swift项目,我已将.Swift文件中的所有字符串更改为NSLocalizedString。现在看来,我必须手动创建一个.strings文件,并将每个字符串添加到此文件中,以实现基本本地化 有没有办法生成此文件?据我所知,代码中大约有4000个字符串,我无法相信这必须手动完成。我在苹果的文档中找到了genstrings脚本,但它似乎只是为objc设计的,所以它没有Swift支持 使用Xcode打包的genstrings命令行工具,我们使用它从“NSLocalized

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


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

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

首先,我需要在项目目录的根目录中创建一个新文件

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

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

find . -type f -name \*.swift -print0 | xargs -0 genstrings -o Base.lproj
find . -type f -name \*.m -print0 | xargs -0 genstrings -o Base.lproj
使用genstrings命令行工具将字符串输出到基本文件夹中的可本地化字符串文件中

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

find . -type f -name \*.swift -print0 | xargs -0 genstrings -o Base.lproj
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

你正在寻找。嗯,看来genstrings也可以和swift一起使用,而且苹果的文档有点过时了。谢谢