如何反向查找本地化字符串

How can I reverse lookup a localized string

我有兴趣在屏幕上查找给定文本的本地化字符串键。

这可能吗?

例如在一个人为的例子中:

UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = NSLocalizedString(@"The key for this label",nil);

// at runtime

UILabel *theLabel = ... // get the label
NSString *text = theLabel.text; 
NSLog(@"%@",text); // prints "Foo bar"

// now I want to get the key:

NSString *localizedKey = ???? NSLocalizedStringReverseLookup(text) 
NSLog(@"%@",localizedKey); // should print "The key for this label"

正如nburk所说,在某些情况下你可以这样做,但在其他情况下你不能这样做:

  • 有可能不同的键指的是同一个字符串。您无法找出哪个密钥是原始密钥。
  • 屏幕上的字符串可以包含通过 %… 粘贴到字符串中的数据。那样你就找不到字符串了。

你为什么要这样做?