2012-05-17 12 views
11

क्या यह सच है? जब आप एक UIAlertButton का दृष्टांत, आप इसे रद्द करें बटन के लिए एक स्पष्ट शीर्षक पारित करने के लिए है, इसलिए की तरह है:अलर्ट बटन के लिए मानक ऐप्पल अनुवाद का उपयोग करना?

UIAlertView *av = 
    [[UIAlertView alloc] 
     initWithTitle:@"Error" 
     message:err.localizedDescription 
     delegate:nil 
     cancelButtonTitle:@"Cancel" 
     otherButtonTitles:nil]; 

इसका मतलब है कि आप (जो निश्चित रूप से आप करते हैं) एक स्थानीय एप्लिकेशन चाहते हैं तो आपको स्थानीय बनाना है रद्द स्ट्रिंग भी, भले ही ऐप्पल को पहले से ही एक कैनोलिक अनुवाद मिला है। क्या मुझे वास्तव में इसे संभालने के लिए कुछ लिखने के लिए मजबूर किया गया है (या यह भी ठीक है)?

NSBundle* uikitBundle = [NSBundle bundleForClass:[UIButton class]]; 
UIAlertView *av = 
    [[UIAlertView alloc] 
     initWithTitle:NSLocalizedString(@"Error", @"Title for Alert box when error occurs") 
     message:err.localizedDescription 
     delegate:nil 
     cancelButtonTitle:NSLocalizedStringFromTableInBundle(@"Cancel", @"Localizable", uikitBundle, nil) 
     otherButtonTitles:nil]; 

यह मेरे लिए भयानक लग रहा है, लेकिन यह विचार मैं एप्पल के (जैसे "रद्द करें" या "ठीक") एचआईजी द्वारा अनिवार्य शब्दों के अपने खुद के अनुवाद बनाए रखने के लिए है उतना ही बेतुका लगता है।

+0

यह बहुत अच्छा है, भले ही यह थोड़ा लेकिन बदसूरत हो। मुझे नहीं पता था कि आप UIKit स्थानीय तारों को हैक कर सकते हैं। – CodaFi

+0

इस प्रश्न के लिए अच्छा जवाब: [1] (http://stackoverflow.com/q/6909885/3050403), [2] (http://stackoverflow.com/a/6468992/3050403)। बेहतर तो स्वीकार्य एक। – kelin

उत्तर

5

जैसा कि आप उम्मीद करते हैं, इसकी अनुशंसा नहीं की जाती है क्योंकि आपका कोड एक अनियंत्रित, असमर्थित निर्भरता पेश करता है जो भविष्य में आईओएस अपडेट के साथ आता है, यदि ऐप्पल अपने UIButton को स्थानीयकृत करता है (बहुत संभावना नहीं है, लेकिन कौन जानता है)।

वास्तव में, "ठीक है" और "रद्द करें" अनुवाद करने में मुश्किल चीजें नहीं हैं। यदि आप अपने ऐप के स्थानीयकरण कार्य के हिस्से के रूप में अनुवादकों को फिर से स्थानांतरित करने की इच्छा नहीं रखते हैं तो आप इन्हें आईओएस (अपने कोड का उपयोग करके) से पुनर्प्राप्त कर सकते हैं और अनुवाद को अपनी .strings फ़ाइल में कॉपी कर सकते हैं, ताकि आपके पास अब से अनुवाद की एक विश्वसनीय प्रति!

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