2012-01-10 32 views
0
轉換字符串

是否有可能設置可可應用程序,因此它會在啓動後翻譯NSString(置於代碼中)而無需使用NSLocalizedStringlocalizable.strings - 從代碼

感謝您的幫助!

回答

1

答案是否定的。而且你可能不會想要這個,因爲不是每個字符串都應該是可本地化的。有些字符串可能包含顯示文字,因此需要通過NSLocalizedString進行本地化,另一方面,其他一些字符串可能會影響您的邏輯,例如定義資源名稱的字符串(例如,您傳遞給loadNibNamed的字符串或要加載的圖像或音頻文件的名稱)。這些確實是要硬編碼的,翻譯它們會破壞你的應用程序。

+0

謝謝你的準確解釋,好帖子:) – xyz 2012-01-11 08:26:12

0

不是自動的,但你可以創建一個簡單的宏以減少打字:

#define TRANS(s) NSLocalizedString(s, nil) 
+1

但是,如果你這樣做,你將無法使用genstrings實用程序(http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/genstrings.1.html )自動創建基礎語言'.strings'文件,因爲此實用程序會掃描您的源文件以查找NSLocalizedStrings的出現。 – Clafou 2012-01-10 22:37:11