"यहां अनुवाद किया गया है लेकिन डिफ़ॉल्ट लोकेल में नहीं मिला है" स्ट्रिंग्स में त्रुटि। xml अनुवाद करने योग्य = "गलत" के साथ


98

यहाँ मेरे मान \ strings.xml (डिफ़ॉल्ट फ़ाइल) और सब कुछ स्वयं व्याख्यात्मक है: यहाँ छवि विवरण दर्ज करें

मेरे सवाल):

  1. अगर मैं डिफ़ॉल्ट लोकेल (मानों \ strings.xml) का संपादन कर रहा हूं तो इसे "डिफ़ॉल्ट लोकेल में नहीं" कैसे किया जा सकता है?
  2. यदि मैं सेट करता हूं तो यह एक अनुवाद अनुवाद त्रुटि कैसे हो सकती है translatable="false"? मानों में pl \ strings.xml (और मान-आरयू, मान-आईवी फ़ोल्डर्स के साथ) तार भी मौजूद नहीं हैं? यह वैसे भी नहीं होना चाहिए।
  3. मुझे समझ में नहीं आ रहा है कि मुझे रूसी स्ट्रिंग के लिए त्रुटि क्यों नहीं मिलती है।

(मैं यहाँ मान-ru \ string.xml या मान-pl \ string.xml दिखाऊँगा, लेकिन इसमें कोई दिलचस्पी नहीं है, क्योंकि तार वैसे भी गायब हैं ...)


2
यदि यह ऐसा कुछ है जो हर अब और तब होता है, तो बस सामान्य क्लीन्स (स्वच्छ / पुनर्निर्माण या अमान्य कैश / ASTUDIO, आदि पर पुनरारंभ करें) करें, जब तक कि निश्चित रूप से, त्रुटि "वास्तविक" न हो। ;) मेरा कहना है, एंड्रॉइड स्टूडियो 3.2 (बीटा एटीएम) के साथ, यह थोड़े बेतरतीब ढंग से होता है, अच्छे तार रेखांकित होते हैं, आप कुछ छूते हैं और त्रुटि गायब हो जाती है। यह छोटी गाड़ी है। ¯_ (¯) _ / ¯
मार्टिन मार्कोसिनी

1
इस विधि का प्रयास करें: stackoverflow.com/a/53780805/7831470
सागर गिरी

फिलहाल Android Studio 3.3.2 पर चल रहा है। यह मेरे साथ कभी-कभार होता है अगर मैं स्ट्रिंग स्ट्रिंग में नाम डुप्लिकेट करता हूं। xml फ़ाइल (जैसे कि कॉपी-पेस्ट करना)। यह निराशाजनक है लेकिन सफाई और पुनः आरंभ इसे ठीक करने के लिए लगता है।
जॉन रिग्स

यदि आप किसी संसाधन को एक फ़ाइल से दूसरी फ़ाइल में किसी अन्य मॉड्यूल में स्थानांतरित करते हैं तो यह बहुत बार होता है। मुझे हर बार कैश को अमान्य करना होगा, क्लीन-अप / बिल्ड का कोई प्रभाव नहीं है। अनुक्रमण के साथ कोई समस्या लेता है।
3c71

ऐप चलाना मेरे लिए काम कर रहा है
kreker

जवाबों:


82

यह मेरे साथ भी हुआ

मैं 2 चीजें करता हूं:

  • एक और अनुवाद न करने के लिए पूरी फ़ाइल सत्यापित करें (मैं फ़ाइल एन में लेकिन पीटी-ब्र में है)
  • एंड्रॉइड स्टूडियो को साफ, अपडेट करें और छोड़ें और पुनः आरंभ करें

8
बस प्रोजेक्ट को साफ करें और एंड्रॉइड स्टूडियो को पुनरारंभ करें। और इसने काम किया;)
एकटोस 974

19
परियोजना की सफाई और एंड्रॉइड स्टूडियो को पुनरारंभ करने के मामले में काम नहीं करता है, तो कृपया अमान्य कैश / पुनरारंभ करने का प्रयास करें।
मेकुनो

2
साफ और अमान्य कैश / पुनः आरंभ करें। मेरे लिए भी काम किया! :)
ऋषभ रंजन

2
❗ ऐसा करने से पहले लाइन को हटाने और इसे फिर से जोड़ने का प्रयास करें। जिंदगी छोटी है।
नोलन एमी

मुझे लगता है कि यू को उत्तर में एक पूरक जोड़ना चाहिए, अर्थात् कमांड Invalidate Caches / Restart:। टिप्पणियों में खोज न करने के लिए, जैसा कि मैंने उदाहरण के लिए किया था।
मोरोज़ोव

68

पुनर्निर्माण में लंबा समय लग सकता है। YMMV, लेकिन ...

बस अपमानजनक रेखा को हटा दें और इसे फिर से जोड़ें।

मेरे लिए काम किया। बहुत तेज़।


3
मुझे भी कम करना था। मैंने स्ट्रिंग का नाम बदला और फिर इसे वापस बदल दिया।
मैट

1
वाह! यह सुपर क्विक है।
userAbhi

3
आक्रामक लाइन, ctrl-X, ctrl-V का चयन करें। किया हुआ। मेरे लिए काम किया!
एक

1
ऑफेंडिंग लाइन, डिलीट, अनडू (कमांड / कंट्रोल जेड) का चयन करें। किया हुआ। मेरे लिए काम किया!
हेंड्रडब्लूडी

1
तेजी से समाधान
मोचादिवी

22

मेरे मामले में इसने मेरी मदद की:

  1. त्रुटि पैदा करने वाले तारों का चयन करें।
  2. उन्हें काटें।
  3. उन्हें फिर से चिपकाएं

यदि यह आपके लिए काम नहीं करता है, तो strings.xml(v21)फाइल में समान तार जोड़ने का प्रयास करें ।


10

एंड्रॉइड स्टूडियो को पुनरारंभ करने के लिए अमान्य कैश / पुनरारंभ करें ... दबाएं । इसने मेरे लिए काम किया। वास्तव में यह तब हुआ जब मैंने अपने दूसरे कंप्यूटर से फ़ाइलों की प्रतिलिपि बनाई और फ़ाइल एक्सप्लोरर के माध्यम से चिपका दी।


5

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

लेकिन ध्यान रखें कि अन्य बिल्ड टूल अभी भी समस्याएँ पैदा कर सकते हैं, इसलिए इसके बजाय सभी डॉट्स को अंडरलाइन से बदलें!


4

एंड्रॉइड स्टूडियो को छोड़ना और इसे फिर से शुरू करना मेरे लिए इसे तय करता है।


यह मेरे लिए भी काम करता है, यह कैश को अमान्य करने और पुनरारंभ करने की तुलना में बहुत कम दर्दनाक है।
3c71

3

मैंने निम्न चरणों का पालन करके इस समस्या को हल किया:

  1. मेरी परियोजना की सफाई

  2. इसका पुनर्निर्माण करना

  3. और अंत में फ़ाइल मेनू में अमान्य कैश / पुनरारंभ करें


2

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

https://github.com/gubatron/android-missing-strings

अन्य भाषाओं में सभी बाएं ओवरों को साफ करने के लिए इस तरह से आह्वान करें

./ams --cleanleftovers -o all.txt

यह बाईं ओर के तारों को साफ कर देगा और यह सभी भाषाओं के लिए अनुपलब्ध स्ट्रिंग्स रिपोर्ट को all.txt फ़ाइल में आउटपुट कर देगा


2

आपको बस आपत्तिजनक लाइन (या आपत्तिजनक लाइनों में से कई के सिर्फ एक) को कॉपी करना है, इसे हटा दें और फिर से पेस्ट करें। इसने मेरे लिए समस्या को दूर कर दिया।


हालांकि इससे ओपी को मदद मिल सकती है, लेकिन अधिक विवरण, स्पष्टीकरण, उदाहरण आदि जोड़ना बेहतर है। कृपया ऐसे उत्तर प्रदान
तिवारी

1

बस यह सुनिश्चित करें कि आपके पास एक ही पूंजीकरण सहित सभी स्ट्रिंग फ़ाइलों पर समान नामकरण परंपराएं हैं। मान लीजिए कि आपके fr / string.xml में strings.xml और "sign_In" में "sign_in" है, तो यह आपको fr / strings.xml पर त्रुटि देगा जैसे "यहाँ अनुवादित है लेकिन डिफ़ॉल्ट लोकेल में नहीं मिला है"। इसलिए, जब आप "sign_in" में संपादित करते हैं। त्रुटि दूर होगी।


0

कॉपी और पेस्ट मेरे काम नहीं आया।

मैंने क्लीन एंड रिस्टार्ट का भी प्रयास किया, पिछली त्रुटि चली गई लेकिन नए दर्ज किए गए तार अभी भी नई त्रुटियां हैं।

मैंने खोले गए स्ट्रिंग्स.xml फ़ाइल और अनुवाद संपादक को बंद करने की कोशिश की , फिर पुनरारंभ करें।

strings.xml फ़ाइल और अनुवाद संपादक

ये मेरे लिए सही है।


0

मुझे अपनी xml फ़ाइल के सभी स्ट्रिंग्स के लिए यह समस्या आ रही थी।

बात यह है, आपके डिफ़ॉल्ट strings.xmlमें एक tools:localeविशेषता नहीं होनी चाहिए जैसा कि अन्य अनुवादित फ़ाइलों में है। यदि ऐसा होता है, जब भी मैं एप्लिकेशन को रिलीज़ मोड में संकलित करता हूं, तो वह इसे किसी अन्य अनुवादित फ़ाइल के रूप में मानता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.