2010-11-15 8 views
58

मेरे एंड्रॉइड एप्लिकेशन में पारंपरिक और सरलीकृत चीनी समर्थन को लागू करने की प्रक्रिया में और मैं इस बात पर उलझन में हूं कि यह कैसे काम करना है।सरलीकृत और पारंपरिक चीनी बनाम क्षेत्र

तो documentation पढ़ने के साथ-साथ this और this जैसे कुछ विचार विमर्श से मैं

  • मूल्यों zh
  • मूल्यों zh-RCN
  • मूल्यों zh-RSG में चीनी सरलीकृत डाल दिया है

और

01,235,164 में पारंपरिक चीनी
  • मूल्यों zh-RTW
  • मूल्यों zh-RHK

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

एम्यूलेटर में लोकल सेटिंग संवाद की जांच करने के साथ-साथ रूट किए गए फोन पर जो भी मैं समझता हूं, उससे उपयोगकर्ता एक सरलीकृत चीनी या पारंपरिक चीनी में लोकेल बदल सकता है।

अब प्रश्न है। सिस्टम को सरल या पारंपरिक चीनी स्ट्रिंग्स.एक्सएमएल कहां मिलना है, यह कैसे पता चलता है। क्या इसमें कुछ प्रकार की धारणा है जिसमें कहा गया है कि अगर मुझे सरलीकृत चीनी दिखाना है तो इसे मूल्यों से प्राप्त करें- zh और मूल्यों से पारंपरिक प्राप्त करें-zh-rTW?

लेकिन यदि उपयोगकर्ता एचके में स्थित है और सरलीकृत चीनी प्रदर्शित करने के लिए अपने डिवाइस को सेट अप करता है तो क्या होगा? या क्या होगा यदि दुनिया में कहीं और एक इमिग्रेंट पारंपरिक डिवाइस पर अपना डिवाइस सेट करता है लेकिन उसका क्षेत्र उदा। अमेरिका या सीए?

मुझे अपने उपयोगकर्ताओं को अपना लोकेल सेट करने और सही ऐप के साथ अपना ऐप दिखाने की अनुमति देने के लिए क्या करना है?

अद्यतन:

आगे की जांच पड़ताल मेरा मानना ​​है कि एक Android फ़ोन उपयोगकर्ता भाषा से अलग देश सेट नहीं कर सकता है कि से। वे केवल यूआई में लोकेल कहलाते हैं। इसमें भाषा और देश शामिल है, लेकिन सूची सीमित है इसलिए कई संयोजन संभव नहीं हैं।

उदा। यूएस में रहने वाले एक चीनी व्यक्ति जो पारंपरिक चीनी का उपयोग करना चाहता है, भाषा को पारंपरिक चीनी (कम से कम एक जड़ वाले फोन पर) सेट कर सकता है और उसके बाद zh-rTW का लोकेल होगा। वह किसी भी तरह से अपने देश को अमेरिका के रूप में अलग-अलग सेट नहीं कर सका। इसी प्रकार किसी भी तरह का प्रवासक अपनी मूल भाषा को उस देश के साथ सेट नहीं कर सकता है जहां वे वर्तमान में रहते हैं ..

मूल रूप से इसका मतलब है कि भाषा और देश के संयोजनों का केवल एक समूह समर्थित है। अब सवाल यह है कि यह पता लगाने के लिए कि वे कौन हैं?

+0

मुझे पता है कि मैं स्रोत को पढ़कर इसे समझने की कोशिश कर सकता हूं .. और शायद मैं करूँगा अगर कोई मेरी मदद नहीं करता .. –

उत्तर

45

तो मुझे लगता है कि आगे की जांच के बाद और मार्क के जवाब के साथ मैं खुद को उत्तर देने जा रहा हूं। यहां जाता है:

बॉक्स के बाहर एंड्रॉइड में केवल दो लोकेशन zh_rCN हैं, जो सरलीकृत चीनी और zh_rTW है, जो पारंपरिक चीनी है।

https://android.googlesource.com/platform/packages/apps/Settings/+/master/res/

जैसे एक Android प्रणाली के हालांकि किसी भी अन्य निर्माता: आप सेटिंग्स से देख एप्लिकेशन सकते हैं इन केवल आपूर्ति स्थानों रहे हैं चीन में बेचे गए फोन के लिए या जो भी वे जोड़ते हैं उन्हें बदल सकते हैं।

https://android.googlesource.com/platform/external/icu4c.git/+/master/data/locales/ आप देखते हैं चीनी के लिए देख सकते हैं

  • zh.txt
  • zh_CN.txt: समग्र सैद्धांतिक रूप से समर्थित सेट icu4c एप्लिकेशन में पाया स्थानों की सूची को देखकर पाया जा सकता है
  • zh_HK.txt
  • zh_Hans.txt
  • zh_Hans_CN.txt
  • zh_H ans_HK.txt
  • zh_Hans_MO.txt
  • zh_Hans_SG.txt
  • zh_Hant.txt
  • zh_Hant_HK.txt
  • zh_Hant_MO.txt
  • zh_Hant_TW.txt
  • zh_MO.txt
  • zh_SG। txt
  • zh_TW.txt

हंट पारंपरिक चीनी के लिए पारंपरिक और हंस के लिए आईएसओ कोड है। तो सैद्धांतिक रूप से इसका मतलब यह होगा कि हम चीन, हांगकांग, मकाओ और सिंगापुर में

  • सरलीकृत चीनी हांगकांग, मकाओ और ताइवान
  • में
  • पारंपरिक चीनी हो सकता था

हालांकि सेटिंग एप्लिकेशन होगा कि ध्यान में रखना लोकेल के विभिन्न चयन करने के लिए संशोधित किया जाना है। तो इस चरण में सरलीकृत चीनी अनुवाद zh_rCN और पारंपरिक zh_rTW में अनुवाद करता है और आपको उन उपयोगकर्ताओं के लिए अलग होना चाहिए जिनके पास ऐसी संशोधित एंड्रॉइड छवि है जो अन्य लोकेशंस का समर्थन करती है।

किसी भी मामले में सहेजने के पक्ष में रहने के लिए आप लोकेल को प्राप्त करने के लिए कॉन्फ़िगरेशन क्लास का उपयोग कर सकते हैं उदा। getResources() के साथ अपने एप्लिकेशन क्लास में। कॉन्फ़िगरेशन()। लोकेल।

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

तो रिकैक करने के लिए .. न्यूनतम सेटअप सेटिंग ऐप में क्या किया जाता है मिररिंग होगा (केवल zh-rCN और zh-rTW है), लेकिन यदि आप सिंगापुर, हांगकांग, मकाऊ के लिए डिफॉल्ट लोकल को डिफ़ॉल्ट रूप से आपूर्ति करना चाहते हैं तो आप इसे भी कर सकते हैं और इसे काम करना चाहिए। हालांकि मुझे कोई सबूत नहीं है कि ऐसी कॉन्फ़िगरेशन कहीं भी उपयोग की जाती है ..

आशा है कि मदद करता है।

+0

एंड्रॉइड 7.0 के बाद, यदि कोई उपयोगकर्ता zh-rSG का चयन करता है, तो यह zh-rSG की तलाश करेगा, अगर यह नहीं मिल रहा है, तो यह सरलीकृत लिपि के साथ zh-rCN या किसी अन्य लोकेल की तलाश करेगा। - वही होता है यदि कोई उपयोगकर्ता sv-rFI का चयन करता है, तो यह निम्न क्रम में देखेगा: sv-rFI, sv, sv-rSE – Liggliluff

+0

वर्तमान भंडार 'मान-zh-rHK' प्रदान करता है। –

+0

मूल्य-zh-rCN संकलित नहीं होगा। यह अवैध संसाधन निर्देशिका नाम कहता है। – Janusz

1

अद्यतन उत्तर

प्रश्न और पिछले उत्तर बहुत पुराने हैं। यह कहना मुश्किल है कि वे अभी भी कितने सही हैं। यह उत्तर यहां आने वाले अन्य लोगों के लिए है जो अपने ऐप में पारंपरिक और सरलीकृत चीनी दोनों का समर्थन करना चाहते हैं, लेकिन इलाके के विवरण के बारे में अत्यधिक चिंतित नहीं हैं।

सही res फ़ोल्डर क्लिक करें पारंपरिक और सरलीकृत चीनी

एंड्रॉयड स्टूडियो में लिए string.xml फ़ाइलें जोड़ें और चुनें नया> एंड्रॉयड संसाधन फ़ाइलफ़ाइल नाम के लिए strings में टाइप करें और सूची से लोकेल चुनें।

enter image description here

zh करने के लिए नीचे भाषा के लिए स्क्रॉल। के लिए एक strings फ़ाइल जोड़ें सीएन: चीन (सरलीकृत) और TW: ताइवान (पारंपरिक)। यदि आप केवल एक का उपयोग कर रहे हैं तो बस कोई भी क्षेत्र चुनें।

जैसा कि मैं documentation समझता हूं, लुकअप पहले जांच करेगा कि भाषा और क्षेत्र (उदाहरण: चीनी-पारंपरिक-ताइवान) के लिए सटीक मिलान है या नहीं। फिर यह व्यापक जांच पर वापस आ जाएगा। (यह सिस्टम Android 7.0 के रूप में है।)

1. zh-Hant-TW // Chinese - Traditional - Taiwan 
2. zh-Hant  // Chinese - Traditional 
3. zh   // Chinese 

के बारे में मैं यह सब कैसे काम करता है इसलिए कृपया this और this प्रलेखन पूरी तरह से यकीन नहीं है।

अपने स्वयं के ऐप में इस विधि के बाद, पारंपरिक और सरलीकृत के बीच सिस्टम सेटिंग्स को स्विच करने से ऐप डिस्प्ले भी बदल गया।

के बीच परिवर्तित पारंपरिक और सरलीकृत

आप पहले से ही या तो पारंपरिक या सरलीकृत में एक अनुवाद है, तो आप स्वत: पाठ ऑनलाइन बदल सकते हैं। Google अनुवाद के साथ दूसरे में कनवर्ट करने के लिए शुरू करें (बस अपनी strings.xml फ़ाइल में पेस्ट करें)। यह पहले से ही काफी अच्छी नौकरी करता है। फिर कई ऑनलाइन कन्वर्टर्स में से एक का उपयोग करके इसे कई बार फिर से करें। रूपांतरणों के परिणाम की तुलना करने के लिए टेक्स्ट तुलना टूल या साइट (text-compare.com अच्छा है) का उपयोग करें। इससे आपको Google की गलतियों को पकड़ने में मदद मिलेगी।

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

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