2011-10-25 14 views
5

के लिए मैक्रो NSLocalizedString की मेरी सभी कॉलों को दूसरे परम के रूप में शून्य है, क्योंकि मैं किसी भी टिप्पणी का उपयोग नहीं करता हूं। लेकिन मुझे खुद को दोहराने से नफरत है। अब मैं खुद से पूछ रहा हूं कि क्या LSSTRING (str) जैसे मैक्रो को परिभाषित करना ठीक है जो NSLocalizedString (str, nil) को कॉल करता है, और यदि ऐसा है तो कैसे?NSLocalizedString

उत्तर

10

आप कर सकते हैं। अपने पूर्व-संकलित शीर्षलेख में निम्न मैक्रो जोड़ें। यानी।, {} ProjectName -Prefix.pch फ़ाइल में

#define LSSTRING(str) NSLocalizedString(str, nil) 
+4

इस दृष्टिकोण के साथ एक समस्या यह है कि genstrings टिप्पणी के लिए एक स्ट्रिंग को खोजने के लिए उम्मीद है, और की तरह एक त्रुटि दे देंगे यह: 'फ़ाइल में खराब प्रविष्टि ... (लाइन = #): तर्क एक शाब्दिक स्ट्रिंग नहीं है। –

+3

एक्सकोड में, बस इस तरह एक ढूंढें/प्रतिस्थापित करें: खोजें: LSSTRING \ ((@ \ "\ w + \ ") \) बदलें: NSLocalizedString \ (\ 1, \ 1 \) – Damon

2

im का उपयोग कर

#define _(format, ...) [[NSBundle mainBundle] localizedStringForKey: [NSString stringWithFormat:@"%@", [NSString stringWithFormat:format, ##__VA_ARGS__]] value:@"" table:nil] 
+1

पहला 'stringWithFormat:' क्यों? –

संबंधित मुद्दे