2012-02-13 23 views
14

मैं कई भाषाओं के तार, RTL (दाएं से बाएं) भाषाओं सहित एक ऐसा अनुप्रयोग बनाने के लिए की जरूरत है। मैं, पता है कि RTL (दाएं से बाएं करने के लिए) की वर्तमान स्थिति है एंड्रॉयड (यहां तक ​​कि के बारे में नवीनतम एपीआई) पर समर्थन चाहते हैं उदाहरण के लिए:एंड्रॉइड पर दाएं से बाएं भाषाओं की स्थिति क्या है?

  1. अगर डिवाइस की वर्तमान भाषा है गतिशील/स्थिर जाँच करने के लिए यह संभव है आरटीएल प्रकार? मुझे पता है कि वर्तमान लोकेल प्राप्त करना संभव है, लेकिन मुझे यह जांचने के लिए एक और सामान्य तरीका चाहिए कि वर्तमान भाषा आरटीएल है या नहीं। उदाहरण के लिए, अंग्रेजी और फ्रेंच के लिए यह झूठी वापसी करेगा, लेकिन अरबी और हिब्रू के लिए यह सच हो जाएगा।

  2. यह एक लेआउट स्वचालित रूप से RTL भाषाओं के लिए नजर आता जा करने के लिए सेट करने के लिए संभव है? उदाहरण के लिए, यदि एक LinearLayout (क्षैतिज उन्मुखीकरण के साथ) ने अपने बच्चों की थी 1-> 2, अब यह 2 < -1 होगा, और नए बच्चों बाईं तरफ बनाया जाएगा।

  3. क्या संसाधन फ़ोल्डरों में जोड़ने के लिए एक योग्यता है जो सभी आरटीएल भाषाओं को संभालेगा? उदाहरण के लिए, एलटीआर (बाएं से दाएं) के लिए "res/layout" है, और "res/layout-rtl" आरटीएल भाषाओं के लिए है।

  4. ऐसा लगता है कि ग्रहण की सामग्री सहायता टेक्स्टर के लिए "एंड्रॉइड: लेआउट डायरेक्शन" और पाठ के लिए "एंड्रॉइड: टेक्स्ट डायरेक्शन" सुझाती है, लेकिन जब मैं उन्हें चुनता हूं, तो मुझे संकलन त्रुटि मिलती है जो उन्हें पहचान नहीं पाती है। मैं उन विशेषताओं के बारे में इंटरनेट पर अधिक जानकारी नहीं पा रहा हूं। उनका क्या मतलब है, और मैं उनका उपयोग कैसे नहीं कर सकता?

संपादित करें: ऐसा लगता है कि एंड्रॉइड 4.1 में आरटीएल भाषाओं में कुछ सुधार है। आश्चर्य है कि वे क्या हैं और जहां मैं उनके बारे में पढ़ सकता हूं।

+1

RTL -> दाएं से बाएं। एलटीआर -> बाएं से दाएं। यह आपके लिए स्पष्ट हो सकता है लेकिन शायद सभी के लिए नहीं :) –

+0

मेरे प्रश्न को संशोधित करने के लिए धन्यवाद। –

+0

# 3 का उत्तर "नहीं" है। – CommonsWare

उत्तर

4

android 4.2 के साथ शुरू करना बंद कर दिया, थोड़ी और जानकारी के बारे में विशेष RTL विशेषताओं में जाना जाता है, और वहाँ भी RTL भाषाओं के लिए स्वचालित रूप से लेआउट को प्रतिबिंबित करने के लिए एक विकल्प है।

अधिक जानकारी here मिल सकती है।

उम्मीद है कि वे इसका उपयोग कैसे करें, इसके बारे में अधिक जानकारी जोड़ देंगे, जिसमें कुछ नमूना कोड और शायद इस मामले पर एक समर्थन लाइब्रेरी भी शामिल है।


संपादित करें: अब वे कैसे नए RTL सहायता का उपयोग करने से कुछ अधिक जानकारी जोड़ी है:

http://android-developers.blogspot.co.il/2013/03/native-rtl-support-in-android-42.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

मैं हालांकि आश्चर्य है कि अगर NIKUD (हिब्रू स्वरों के बराबर है, सिवाय इसके कि वे वैकल्पिक हैं और उन्हें अक्षरों के बजाय बिंदुओं के रूप में दिखाया गया है) अब ठीक काम करता है।

संपादित करें: अब मैं इसे परीक्षण किया है, और यह वास्तव में बहुत अच्छी तरह से काम करता है (इस पवित्र बाइबिल के प्रथम अध्याय है):

enter image description here

0
  1. एंड्रॉइड में आरटीएल समर्थन आईसीएस में कुछ सुधार मिला। इससे पहले कि जिंजरब्रेड में, यह डिवाइस विशिष्ट था उदा। प्रत्येक निर्माता/ऑपरेटर अपने स्वयं के BiDi समाधान जो अनुप्रयोगों

  2. इसकी जरूरत नहीं में कुछ inconsistancy वजह से कार्यान्वित किया। अच्छा BiDi .. जो आप और आपके अनुप्रयोग के बारे में BiDi के बारे में कम और अधिक चिंता करते हैं प्रारंभिक पत्र UTF8 कोड से पाठ दृश्य और canvas.draw पाठ दर्पण को जानता है। बस गुरुत्वाकर्षण को मजबूर न करें और पाठ दृश्य पर माता-पिता को भरें

  3. नहीं, अरबी/हिब्रू आदि के लिए क्वालीफायर हैं .. जहां आप व्यावहारिक रूप से सबकुछ बदल सकते हैं। लेकिन अच्छे डिवाइस कार्यान्वयन के लिए अनुवादों की आवश्यकता नहीं होगी।

  4. है कि अगर आप कुछ पुराने या डिवाइस विशिष्ट API स्थापित हो सकता है। इसलिए यह एंड्रॉइड-व्यापी काम नहीं करेगा और संकलन त्रुटियों का कारण बन जाएगा। जिन देशों ने rtl आमतौर पर उपयोग करने से

    1. लोग: लेकिन वहाँ यह तो होना ही के कुछ और कारण हैं ...


    आम तौर पर मैं आपको दो कारणों के लिए BiDi मुद्दे को नजरअंदाज करने की सलाह ऐसे उपकरण हैं जो इसे तब तक संसाधित करते हैं जब उनकी समस्या नहीं होती है।

  5. एक डिवाइस के लिए आपके बीआईडीआई को ठीक करने से अन्य डिवाइसों का पालन नहीं किया जाएगा। और यह कुछ साल पहले किया गया था ..और सौभाग्य से डेवलपर्स अंत में इस गलती

+0

1. अभी भी यह सभी उपकरणों पर बुरा है? यदि प्रत्येक का अपना कार्यान्वयन होता है तो मैं वाहक और निर्माताओं पर भरोसा कैसे कर सकता हूं? 2. आप का क्या मतलब नहीं है? क्या होगा यदि (उदाहरण के लिए) मेरे पास किसी अन्य आइकन के बगल में पाठ के बगल में एक आइकन है, तो ऑर्डर को उलट दिया जाना चाहिए। 3. चूंकि पाठ कुछ उपकरणों पर गठबंधन नहीं है, अनुवाद पर्याप्त नहीं है। 4.well यह क्या करता है, और मैं इसका उपयोग कैसे कर सकता हूं? –

+0

1. बहुत कुछ नहीं। आईसीएस में अंतर्निहित समर्थन है। कई जिंजरब्रेड भी यह है। और इसे हल करने के लिए कुछ हैक मौजूद हैं .2.in उस मामले में आपको आरटीएल languahes के तहत अलग लेआउट बनाना चाहिए .4. मुझे यकीन नहीं है कि मैं – skoperst

+0

1. वास्तव में? आप आईसीएस पर इसका इस्तेमाल कैसे करते हैं? 2. जो आपने लिखा है उसके अनुसार, संसाधनों के लिए ऐसी कोई चीज़ नहीं है। –