टी एल; डॉ
असल में, यह macOS 10.13 हाई सिएरा में पेश किया गया बग या बग फिक्स है: स्पॉटलाइट अब फाइल एक्सटेंशन दिखाने के लिए फाइंडर सेटिंग का सम्मान करता है। उस सेटिंग को अक्षम करना स्पॉटलाइट से .app एक्सटेंशन को हटा देता है।
पूर्ण लंबाई का जवाब
मुझे पता है कि यह एक बहुत पुराना सवाल है, लेकिन मैंने 10.13 सिएरा में सिर्फ एक डीजे-वु किया था; यह अलग है, लेकिन कुछ समानताओं के साथ, इसलिए मैंने इसे खोजा और इस सवाल पर अड़ गया और यहां मेरा जवाब है:
एप्लिकेशन वास्तव में निर्देशिकाओं में प्रदर्शित होते हैं जैसे कि वे एक ही फाइल थे; Apple उस बंडल को कहता है (खोजक के नाम के बावजूद " पैकेज " को संदर्भ मेनू में " पैकेज पैकेज दिखाएं " के रूप में नामित किया गया है)। न सिर्फ एप्लिकेशन बंडल हैं, ऐप्पल बंडल का उपयोग फ्रेमवर्क, प्लगइन्स, एप्लिकेशन एक्सटेंशन, एक्सपीआई सेवाओं, कुछ विशेष प्रकार के इंस्टॉलर पैकेजों के साथ-साथ डेटा स्टोरेज प्रारूप के लिए भी करता है यदि संग्रहीत डेटा में कई फाइलें शामिल हैं, लेकिन केवल एक फाइल के रूप में दिखाई देगी (जैसे चित्रों के साथ एक RTF दस्तावेज़ को RTFD बंडल के रूप में संग्रहीत किया जा सकता है)। बंडलों में हमेशा एक वास्तविक नाम होता है, डिस्क पर फ़ाइल प्रविष्टि का नाम। इसलिए यदि प्रदर्शन करने के लिए और कुछ नहीं है, तो macOS हर जगह उस नाम को प्रदर्शित करता है।
हालाँकि, बंडलों में एक सूचना फ़ाइल होती है, जिसका नाम है Info.plist, जिसमें बंडल के बारे में सभी प्रकार के मेटा डेटा होते हैं। इस तरह की एक जानकारी फ़ाइल को परिभाषित कर सकते हैं एक प्रदर्शन नाम है । यदि ऐसा प्रदर्शन नाम सेट है, तो खोजक प्रदर्शन नाम प्रदर्शित करेगा न कि निर्देशिका का वास्तविक नाम। यही है, जब तक कि निर्देशिका को फिर से नाम नहीं दिया गया है, जिसे खोजकर्ता यह पता लगा सकता है कि निर्देशिका नाम फ़ाइल में बंडल नाम से मेल नहीं खाता है या नहीं Info.plist। खैर, मैं मानता हूँ, यह थोड़ा जटिल है। आइए इसे एक उदाहरण से देखें:
- निर्देशिका का नाम है
My App.app
- बंडल नाम में
Info.plistहैMy App
- बंडल प्रदर्शन नाम में
Info.plistहैMy Cool App
उस संयोजन के साथ, फ़ाइंडर ऐप को इस रूप में दिखाएगा My Cool App.app(या My Cool Appयदि एक्सटेंशन छिपा हुआ है)। जब तक (1) और (2) के नाम पर मिलान होता है, (3) प्रदर्शित होता है।
अगर मैं अब निर्देशिका का नाम बदल देता हूं My Boring App.app, तो खोजक इसे My Boring App.appतब से ही प्रदर्शित करेगा जब तक कि (1) और (2) नाम में मेल न खाए, (1) प्रदर्शित होता है, जैसे कि उपयोगकर्ता चाहता है कि उसका / उसकी ऐप का नाम बदल दिया जाए, बेशक, खोजक को उपयोगकर्ता के चुने हुए नाम को प्रदर्शित करना चाहिए, समझ में आता है, है ना?
पर्याप्त पहले से ही जटिल? खैर, मुझे खेद है, लेकिन यह अब और भी अधिक जटिल हो गया है। Info.plistउपयोगकर्ताओं को प्रदर्शित किए जाने वाले सभी मानों को स्थानीयकृत किया जा सकता है , इसलिए यदि आपका सिस्टम यूएस अंग्रेजी पर सेट है, तो बंडल डिस्प्ले नाम हो सकता है My Cool App, लेकिन यदि सिस्टम यूके अंग्रेजी में सेट है, तो यह हो सकता है My Amazing App। यदि वर्तमान प्रणाली भाषा के लिए कोई स्थानीयकरण मौजूद है, तो खोजक उस स्थानीयकरण को प्रदर्शित करेगा, लेकिन फिर, केवल तभी जब (1) और (2) के नाम मेल खाते हैं, अन्यथा (1) फिर से जीत जाएगा।
स्थानीयकृत रखकर किया जाता है .stringsएक उप-निर्देशिका में बंडलों कि नाम हैं में फ़ाइलों <x>.lproj, जहां <x>सिर्फ एक भाषा कोड, जैसे हो सकता है en.lprojअंग्रेजी के लिए, fr.lprojफ्रेंच, आदि के लिए लेकिन में भी भाषा + देश, जैसे हो सकता है en_US.lproj, en_GB.lproj, en_AU.lproj, और इतने पर। अंदर एक फ़ाइल नाम है InfoPlist.stringsऔर यह फ़ाइल फ़ाइल के आधार मान को ओवरराइड कर सकती है Info.plist। यदि कोई मिलान स्थानीयकरण नहीं पाया जाता है, तो आधार स्थानीयकरण से मूल्यों का उपयोग किया जाता है ( विकास क्षेत्र का नाम ) जिसे Info.plistफ़ाइल द्वारा भी परिभाषित किया गया है। यदि इस तरह के किसी स्थानीयकरण को परिभाषित नहीं किया जाता है, तो Info.plistसीधे उपयोग किए जाने वाले मानों का उपयोग किया जाता है।
स्पॉटलाइट खोजक की तरह व्यवहार करता है, अगर (1) और (2) नाम में मैच (3) प्रदर्शित किया जाता है, या तो सीधे या मिलान स्थानीयकरण से। यदि (3) सेट नहीं है, (1) प्रदर्शित किया जाता है। लेकिन फाइंडर के विपरीत यह हमेशा .appएक्सटेंशन को नहीं जोड़ता है , भले ही फाइंडर वरीयताओं में अनुरोध किया गया हो। मैं कभी भी सटीक व्यवहार पैटर्न नहीं ढूंढ पाया, लेकिन सेटअप का एक निश्चित संयोजन स्पॉटलाइट को एक्सटेंशन दिखाने से रोक देगा, चाहे आपने जो भी कॉन्फ़िगर किया हो। कुछ उपयोगकर्ताओं के लिए यह खोजक सेटिंग को बदलने और उसके बाद चलाकर तय हो गई है sudo mdutil -E /में Terminal(जो फिर से अनुक्रमित सब कुछ)। लेकिन यह सभी उपयोगकर्ताओं के लिए काम नहीं कर रहा है, जिसमें चुने हुए भाषा / क्षेत्र के साथ कुछ करना हो सकता है।
मूल रूप से यह एक बग है। या तो पुन: अनुक्रमण इसे ठीक करता है या इसे ठीक नहीं किया जा सकता है। और Apple द्वारा व्यवहार को कुछ macOS रिलीज़ में बदल दिया गया और उसके बाद लगातार बना रहा ... यानी 10.13 हाई सिएरा तक। अचानक मेरे सभी ऐप .appमें स्पॉटलाइट में एक्सटेंशन होता है, जो मेरे फाइंडर सेटिंग से मेल खाता है, जबकि 10.12 में सिएरा में किसी ऐप का फाइटर में एक्सटेंशन नहीं था, फाइंडर सेटिंग के बावजूद, जब तक मैंने इसका नाम नहीं बदला या जब तक कि मेरे पास झूठ बोलने की कई प्रतियां नहीं थीं।