टी एल; डॉ
असल में, यह 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 में सिएरा में किसी ऐप का फाइटर में एक्सटेंशन नहीं था, फाइंडर सेटिंग के बावजूद, जब तक मैंने इसका नाम नहीं बदला या जब तक कि मेरे पास झूठ बोलने की कई प्रतियां नहीं थीं।