2013-12-11 14 views
8

पर सेट करना मेरे पास एक ऐसा एप्लिकेशन है जिसमें पुर्तगाल और ब्राजील दोनों क्षेत्रों के लिए पुर्तगाली भाषा का समर्थन है। मैंने एक मूल्य-पीटी (पुर्तगाल अनुवाद युक्त) और मूल्य-पीटी-आरबीआर (ब्राजीलियाई अनुवाद युक्त) बनाया है। मैंने तब पोटगाली (पुर्तगाल) में आवेदन भाषा बदलने की कोशिश की और आवेदन भाषा सही ढंग से बदल गई। जब मैं इसे पुर्तगाली (ब्राजीलियाई) में सेट करता हूं तो यह नहीं करता है। मैंने पुर्तगाली डिफ़ॉल्ट भाषा को पुर्तगाली (ब्राजीलियाई) में बदलने की कोशिश की और यह अभी भी काम नहीं करता है। यह पुर्तगाली (पुर्तगाल) दोनों मामलों में (प्रोग्रामेटिकली और सिस्टम) के लिए काम करता है। क्या कोई जानता है कि परेशानी क्या है?प्रोग्राम लोकेल को pt_BR प्रोग्रामेटिक रूप से

Locale locale = new Locale(strLocale); 
Locale.setDefault(locale); 

config.locale = locale; 
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 

और strLocale क्रमशः "pt" या "pt_BR" पुर्तगाल और ब्राजील भाषा के लिए के लिए सेट है: प्रोग्राम के रूप में आवेदन के स्थान बदलने के लिए कोड का पालन है।

उत्तर

25

मुझे लगता है कि आप एंड्रॉइड ओएस> 2.2 को लक्षित कर रहे हैं, क्योंकि पुर्तगाली भाषा दोनों संस्करण 2.3+ से शुरू होने वाले एंड्रॉइड द्वारा समर्थित हैं।
मैंने भाषा & कीबोर्ड को स्वैप करके एमुलेटर पर इसका परीक्षण किया और केवल 1 स्ट्रिंग अलग है: app_name, इसलिए यह एप्लिकेशन शीर्षक में दिखाई दिया और यह ठीक काम करता था।

एकमात्र अंतर यह है कि मैंने पुर्तगाल क्षेत्र मूल्य-पीटी-आरपीटी मूल्यों की पीड़ित-पीटी नाम दिया।
मैंने फ्लाई-रिलायोकलाइजेशन पर परीक्षण नहीं किया, लेकिन मुझे लगता है कि यह भी काम करता है।
मुझे लगता है कि जब आप क्षेत्रों के साथ काम करते हैं, तो आपको प्रत्येक स्थानीयकरण (यानी फ़्रांस के लिए फ़्रैंक-आरएफआर और कनाडा के लिए एफआरएसी) के लिए एक क्षेत्र निर्दिष्ट करना होगा और डिफ़ॉल्ट (आपके मामले में पीटी, या fr मेरे दूसरे उदाहरण में)।

यह link पूरी चीज को अधिक गहराई से दिखाता है।

[संपादित करें]

जब कोड से एक नए स्थान बनाने की कोशिश:

final Locale myLocale = new Locale("pt", "PT"); 

और

final Locale myLocale = new Locale("pt", "BR"); 

यहाँ संदर्भ site से दूसरे पृष्ठ है।

+1

मैंने आपके द्वारा सुझाए गए प्रयासों की कोशिश की है, लेकिन ऐसा लगता है कि समस्या यह है कि मेरा फोन वर्तमान में चयनित लोकेल को 'pt' के रूप में रिपोर्ट करता है, भले ही मैं पुर्तगाली (पुर्तगाल) या पुर्तगाली (ब्राजील) चुनूं। क्या मेरे फोन में कुछ गड़बड़ है? – user501223

+0

नहीं। क्या यह एंड्रॉइड 2.3+ है? आप अपने लोकेल को कैसे सेट अप करते हैं (यह मेरी ज़रूरतों के लिए अलग-अलग तरीकों से किया जा सकता है - कनाडाई फ्रांसीसी फ्रांसीसी फ्रांसीसी जैसा ही है और ऑस्ट्रियाई जर्मन जर्मन जर्मन जैसा ही है - मैं सिर्फ डेफॉल्ट भाषा का उपयोग करता हूं - आपके मामले में, पीटी) । –

+0

मेरा संपादित उत्तर देखें। –

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