iPhone localisations (या है कि स्थानीयकरणों?) क्षेत्र के किसी भी नोटिस नहीं लेते उपयोगकर्ता सेट (यानी, ब्रिटेन, ऑस्ट्रेलिया, न्यूजीलैंड)। डिफ़ॉल्ट रूप से केवल एक "अंग्रेजी" भाषा अनुवाद उपलब्ध है। हालांकि, आप एक अलग अनुवाद सेटिंग का उपयोग करने के लिए मजबूर करने के लिए चीजों के साथ चारों ओर हैक कर सकते हैं - मैंने इसे "अंग्रेजी" (यूएस) और "एन_जीबी" (ब्रिटिश अंग्रेजी) के बीच चुनने के लिए अभी किया है।
अपने main.m फ़ाइल में, यह बदल कि वह नीचे दिए तरह दिखता है
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// Set up the locale jiggery pokery
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *locale = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
if ([language isEqualToString:@"en"] && [locale isEqualToString:@"GB"]) {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en_GB", @"en", nil] forKey:@"AppleLanguages"];
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
यह उपयोगकर्ताओं भाषा पॉप (उदाहरण के लिए "(NZ या ए.यू. के लिए अपने स्वयं के परीक्षण में डाल) एन ") एनएसएसटींग भाषा में, और उपयोगकर्ता लोकेल (उदाहरण के लिए, एनजेड, जीबी, एयू) लोकेल एनएसएसटींग में। यदि वे (मेरे मामले में) मैच और जीबी से मेल खाते हैं, तो मैंने उपयोगकर्ताओं को डिफ़ॉल्ट भाषा प्राथमिकता सेटिंग्स "en_GB", फिर "en" सेट करने के लिए सेट किया है।
फिर, अपने आवेदन प्रतिनिधियों आवेदन में: didFinishLaunchingWithOptions विधि आपको लगता है कि NSUserDefaults की स्थापना तुम सिर्फ कोड
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
यह इस बिंदु पर दूर करने के लिए है क्योंकि सभी बंडल initialisation पूरा हो चुका है सुरक्षित है के साथ सेट निकालना चाहते हैं। आपका ऐप अब en_GB.lproj निर्देशिका में Localization.strings फ़ाइल का उपयोग कर रहा है।
यह एक भयानक, हैकी समाधान है, लेकिन यह मेरे लिए काम करता है।
अंग्रेजी फ़ाइल को हटाने से समस्याओं का एक गुच्छा हुआ ... मेरे पास अन्य भाषाओं का एक गुच्छा काम कर रहा है, लेकिन जब मैं एक ही भाषा का उपयोग करना चाहता हूं लेकिन विभिन्न क्षेत्रों के लिए, यह काम नहीं करता है: एस – dewberry