2016-12-28 23 views
7

हैलो मैं अपने पूरे यूआई व्यू को अरबी [from Right to left] में परिवर्तित करना चाहता हूं यदि उपयोगकर्ता सेटिंग्स से अपनी भाषा बदलता है और ऐप खोलता है।यूआई?

मैं क्वेरी

1) नीचे है मैं प्रत्येक के लिए अलग यूआई बनाने की जरूरत है? 2) क्या यह हासिल करने का कोई छोटा रास्ता है? 3) मुझे आईआईआर की तरह बदलने के लिए पूर्ण यूआई की आवश्यकता है जो बाएं तरफ से है [स्लाइड मेनू] दाहिने तरफ से होने के लिए ... 4) एक्सकोड 8.2 ऑटो ऑटो लेआउट के साथ फिर से ऑटोरेसीज कर रहा है क्या मैं ऑटो लेआउट के बिना ऐसा कर सकता हूं?

+3

यदि आप ऑटो लेआउट का उपयोग कर रहे हैं, और "बाएं"/"दाएं" के बजाय "अग्रणी"/"पिछला" किनारों/मार्जिन का सही ढंग से उपयोग कर रहे हैं, तो आपको बस कुछ भी नहीं करना चाहिए (सिवाय इसके कि आपको कुछ भी नहीं करना चाहिए जांचें कि सभी पाठ ठीक से फिट बैठे हैं)। – jcaron

+0

मैं सिर्फ ऑटोरेसाइज का उपयोग कर रहा हूं ... एक्सकोड 8.2 इसे फिर से सक्षम करें – iphonemaclover

उत्तर

1
  1. नहीं, आप भाषा के बावजूद केवल एक यूआई बनाते हैं।

  2. हाँ एक छोटा रास्ता है, आपको स्थानीयकरण का उपयोग करना होगा। apple doc for internationlization

  3. यूआई परिवर्तन आईओएस द्वारा किया जाता है (कि UIKit नियंत्रकों के लिए सच है केवल। यहां संपादित करें देखने)

  4. auotlayout स्थानीयकरण के साथ कोई संबंध नहीं है। आम तौर पर, ऑटोलायआउट का उपयोग करना बेहतर होता है, इसके विपरीत आपको विभिन्न स्क्रीन आकारों की गणना करना पड़ता है। फिर से इसका स्थानीयकरण के साथ कुछ लेना देना नहीं है। नीचे संपादित देखें।

संपादित करें: यदि आप अपने विचारों को मिरर करना चाहते हैं उदा।, Uiimage और uilabel। तो आपको इसे ऑटोलायआउट या फ्रेम के साथ स्वयं करना होगा। यदि आप यूनाविगेशन या टैबबार नियंत्रक का उपयोग कर रहे हैं, तो इन नियंत्रकों को आईओएस द्वारा प्रतिबिंबित किया जाएगा। इसलिए आपको स्वयं सामग्री दृश्यों का ख्याल रखना होगा। आप विभिन्न बाधा उत्पन्न कर सकते हैं और रनटाइम के दौरान इसे स्थापित कर सकते हैं। लेकिन यदि आपके विचार बहुत जटिल हैं तो आपको 2 अलग-अलग स्टोरीबोर्ड एक बाएं से दाएं और एक दाएं से बाएं के लिए डिज़ाइन करना चाहिए, और ऐप लॉन्च के दौरान उपयुक्त स्टोरीबोर्ड लोड करना चाहिए।

पुन: संपादित करें: तो यहां मेरा ऐप अंग्रेजी में है। और मेरे ऐप does not को दाएँ-से-बाएँ भाषाओं

english

अब अगर मैं जोड़ने

समर्थन करते हैं, सही-से-बाएँ भाषा अरबी की तरह कहते हैं: arabic

तालिका कोशिकाओं के रूप में आप देख सकते हैं से बदल रहे हैं आईओएस स्वचालित रूप से। और मैंने अभी अंग्रेजी, जर्मन और अन्य के अलावा अरबी के लिए अंतर्राष्ट्रीयकरण जोड़ा है। इसलिए यदि आप उपयुक्त स्थानों में UIKit नियंत्रण का उपयोग करते हैं तो यह स्वचालित रूप से बदल जाएगा। लेकिन यदि आपका ऐप बहुत अनुकूलित है और जटिल दृश्य पदानुक्रम है, तो आईओएस मदद नहीं कर सकता है तो आपको इसे स्वयं करना होगा। यदि आप मानक और सरल पदानुक्रम से चिपके रहते हैं। तो आपको इसके बारे में ज्यादा चिंता नहीं करनी चाहिए। बस इसका परीक्षण करें और इसे अपने लिए देखें।

इसलिए मेरे ऐप में उदाहरण के लिए, मुझे बस स्ट्रिंग को दाएं से बाएं भाषा में अनुवाद करना है।

संपादित करें: यहाँ सही जानकारी apple doc प्रश्न संख्या 4

उपयोग ऑटो लेआउट के बिना तय मूल, चौड़ाई, और ऊंचाई अपने विचार एक दूसरे के सापेक्ष बाहर बिछाने के लिए के बारे में है, ताकि विचारों का स्थान और जब भाषा या लोकेल बदलता है तो उचित रूप से आकार बदलें। ऑटो लेआउट में सभी भाषाओं के लिए .storyboard और .xib फ़ाइलों का एक सेट होना संभव बनाता है।

+0

उत्तर के लिए धन्यवाद, लेकिन सिर्फ यह जानने के लिए, मेरा पूरा काम ऑटोरेसाइज के साथ किया जाता है, अगर मैं अब इसमें अंतर्राष्ट्रीयकरण लागू करता हूं, तो क्या यह यूआई को स्वचालित रूप से बदल देगा? भले ही कुछ हिस्सा प्रोग्रामिक रूप से जोड़ा गया हो? मान लीजिए कि एक लेबल fdeviceheight-100 और fdevicewidth-50 स्थिति में जोड़ा गया है? क्या यह 100 और 50 पर स्वचालित रूप से परिवर्तित हो जाएगा? – iphonemaclover

+0

मैंने अतिरिक्त स्पष्टीकरण जोड़ा है। –

+1

"ऑउटलेआउट के पास स्थानीयकरण के साथ कुछ लेना देना नहीं है" - झूठी। जैसा कि सवाल पर टिप्पणियों की ओर इशारा किया गया है, बाएं/दाएं की बजाय अग्रणी/पीछे का उपयोग करने से यूआई को दर्पण करने का कारण होगा यदि डिवाइस भाषा दाएं से बाएं है। यह देशी ऐप्स का व्यवहार है और हर किसी को भी यह करना चाहिए। – hybridcattt