2015-07-12 76 views
-2

我有興趣爲屏幕上給定的文本找到本地化的字符串鍵。如何反向查找本地化的字符串

這可能嗎?

例如,在一個人爲的例子:

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" 
+0

我的回答有幫助嗎?這是你的選擇嗎? – nburk

+0

你會通過編寫代碼來做到這一點。但是,我認爲這種做法是完全錯誤的。 – gnasher729

回答

0

你可以在某些情況下這樣做,因爲nburk說,但你不能做到這一點的人:

  • 這可能是不同的鍵指到相同的字符串。你找不到,哪個鍵是原來的鍵。
  • 屏幕上的字符串可以包含通過%…粘貼到字符串中的數據。那麼你不會找到字符串。

你爲什麼要這麼做?

+0

啊真的......忘記了本地化字符串中的變量。好吧,這仍然可以實現,但這確實需要一個更復雜的實現,像模糊搜索,而不是具體查找 – nburk

+0

關於具有不同的鍵引用相同的字符串,這可以很容易地通過不這樣做(畢竟,鍵值系統是基於不具有相同值的多個鍵的假設)。然而,你的觀點完全有效,開發人員有責任確保正確使用k/v機制 – nburk

+0

我有一個不尋常的情況,我需要將我的SDK集成到第三方應用程序中,並且需要標籤的底層文本 –