gpt4 book ai didi

xcode - 让 xcodebuild -exportLocalizations 知道如何解析自定义 NSLocalizedString 宏

转载 作者:行者123 更新时间:2023-12-01 05:02:12 25 4
gpt4 key购买 nike

使用内置宏:

NSLocalizedStringWithDefaultValue(@"fantasy-group.group-rank.stats-label", nil, [NSBundle mainBundle], @"Group Rank", nil);

结果 .xliff 中的以下块中的结果导出本地化时的文件:
  <trans-unit id="fantasy-group.group-rank.stats-label">
<source>Group Rank</source>
<note>No comment provided by engineer.</note>
</trans-unit>

这按预期工作,因为 source :

The main advantage to these macros is that they can be parsed by the genstrings tool and used to create your application’s strings files.



但是,如果我尝试使用我自己的宏变得时髦以避免指定表和包,并且可能指定我自己的表以努力 split up the string file :
#define WSLLocalizedString(key, val, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:(val) table:nil]

[WSLLocalizedString(@"fantasy-group.group-rank.stats-label", @"Group Rank", nil);

当我尝试生成 xliff 文件时,它不会被 XCode 或相关的命令行工具接收:
$ xcodebuild -exportLocalizations -localizationPath WSL/Translations/ -project WSL.xcodeproj

如果我只是做 genstrings,我可以做以下 source :
find . -name *.m | xargs genstrings -o en.lproj -s WSLLocalizedString

但我想要 xliff。是否有参数可以传递给 xcodebuild保持这个梦想?

最佳答案

不确定 Objective-C,但我已经通过重新定义 NSLocalizedString 为 Swift 做到了这一点。像这样的功能:

public func NSLocalizedString(key: String, tableName: String? = nil, bundle: NSBundle = NSBundle.mainBundle(), value: String = "", comment: String) -> String
{
return yourBundleHere.localizedStringForKey(key, value: value, table: tableName)
}

就我而言,我需要使用自定义 NSBundle .

关于xcode - 让 xcodebuild -exportLocalizations 知道如何解析自定义 NSLocalizedString 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com