FileNic - macOS में कोरियाई फ़ाइलनाम के जामो-विभाजन की समस्या का समाधान
(github.com/0126kjw)macOS उपयोगकर्ताओं ने Windows के साथ कोरियाई फ़ाइलनाम संगतता की इस समस्या का सामना शायद कभी न कभी किया होगा। इसे हल करने के लिए मैंने एक टूल बनाया है.
समस्या की स्थिति
macOS में बनाए गए कोरियाई फ़ाइलनाम Windows में जामो-विभाजन के कारण टूटे हुए दिखाई देते हैं।
पहले इसे हल करने के लिए convmv का उपयोग, Automator के साथ सेटअप जैसी विधियाँ इस्तेमाल की जाती थीं, लेकिन शुरुआती सेटअप कठिन होने सहित कई असुविधाएँ थीं।
समाधान
- इसे मेनूबार में रहने वाले ऐप के रूप में बनाया गया है, इसलिए ज़रूरत पड़ते ही तुरंत इस्तेमाल किया जा सकता है
- फ़ाइल को आइकन पर drag and drop करते ही अपने आप रूपांतरण पूरा हो जाता है
- अलग से किसी सेटिंग या टर्मिनल काम की आवश्यकता नहीं
तकनीकी स्टैक
- SwiftUI आधारित मेनूबार ऐप
- हल्के रनटाइम वातावरण के लिए pure Swift implementation
- कोई external dependency नहीं
गोपनीयता सुरक्षा
- सभी फ़ाइलनाम रूपांतरण केवल उपयोगकर्ता के लोकल कंप्यूटर पर ही प्रोसेस होते हैं
- किसी बाहरी सर्वर से बिल्कुल भी संचार नहीं होता, इसलिए फ़ाइल जानकारी के बाहर लीक होने का कोई जोखिम नहीं
- फ़ाइल की सामग्री या metadata में कोई बदलाव नहीं किया जाता; केवल फ़ाइलनाम ही बदला जाता है
[लिंक]
GitHub: https://github.com/0126kjw/FileNic
नमस्ते। मैं अब तक बस चुपचाप पढ़ता रहा, लेकिन आप सबके साथ इसे साझा करने के लिए पहली बार जुड़कर यह पोस्ट लिख रहा हूँ।
काम के दौरान ईमेल से फ़ाइलें भेजते-लेते समय कई बार यह फीडबैक मिला कि फ़ाइलनाम टूटे हुए दिखाई दे रहे हैं।
इसका जितना संभव हो उतना आसान समाधान बनाया जाए—इसी सोच से मैंने जो छोटा टूल अपने लिए बनाकर इस्तेमाल किया था, वही साझा कर रहा हूँ।
आप सबकी राय और फीडबैक का स्वागत है!
17 टिप्पणियां
नमस्ते! एक अच्छी खबर है, इसलिए यह कमेंट छोड़ रहा/रही हूँhaha
अब आप इसे App Store के ज़रिए डाउनलोड कर सकते हैं!
https://apple.co/3E7rWid
धन्यवादhaha
15 जनवरी से app signing और verification प्रक्रिया पूरी हो गई है, इसलिए अब बिना किसी security issue के app चलाया जा सकता है! 🎉
इसके अलावा, v1.0.5 में folder conversion फीचर जोड़ा जाने वाला है। फ़ोल्डर के अंदर की sub-files तक को एक साथ convert किया जा सके, इसके लिए फीचर और settings जोड़ी गई हैं, और छोटे-मोटे bugs भी ठीक किए गए हैं, इसलिए कृपया इसमें रुचि बनाए रखें🙏
इसके अतिरिक्त, आगे चलकर HomeBrew और AppStore के माध्यम से distribution को भी support करने की कोशिश करेंगे।
फ़ीडबैक देने वाले आप सभी लोगों का सचमुच बहुत धन्यवाद 😊
आख़िर अक्षर अलग-अलग क्यों हो जाते हैं, और Apple इस समस्या को हल क्यों नहीं करता? यह जानने की जिज्ञासा है।
इसके अलावा, Unicode normalization तरीकों का अंतर अलग-अलग भाषाओं के उपयोगकर्ताओं को भी प्रभावित कर रहा है। खास तौर पर diacritics का उपयोग करने वाली जर्मन, फ़्रेंच और स्पैनिश जैसी भाषाओं के उपयोगकर्ताओं को भी इसी तरह की समस्याओं का सामना करना पड़ रहा है।
ऐसा अनुमान है कि Apple और Microsoft अपने-अपने अलग normalization तरीकों पर इसलिए कायम हैं क्योंकि existing systems के साथ compatibility, backward compatibility जैसी कई तकनीकी सीमाएँ हैं। इस समस्या को व्यवस्थित रूप से हल करने के लिए दोनों operating systems में बुनियादी बदलाव ज़रूरी होंगे, लेकिन इससे existing systems पर बड़ा असर पड़ सकता है, इसलिए इसे हल करना मुश्किल लगता है.
यह समस्या macOS और Windows द्वारा अपनाई गई Unicode normalization तरीकों के अंतर से उत्पन्न होती है.
Unicode में कोरियाई अक्षरों को संग्रहीत करने के दो प्रमुख तरीके दिए जाते हैं:
Windows NFC तरीका इस्तेमाल करता है, इसलिए 'annyeong' को एक पूर्ण अक्षर-समूह के रूप में संग्रहीत किया जाता है, जबकि macOS NFD तरीका इस्तेमाल करता है और 'ieung', 'a', 'nieun', 'nieun', 'yeo', 'ieung' को अलग-अलग संग्रहीत करता है. इसी संग्रहण-पद्धति के अंतर की वजह से macOS में बनाई गई फ़ाइल को Windows में खोलने पर अक्षर-घटक अलग-अलग दिखाई देने लगते हैं.
FileNic इस अंतर को उपयोगकर्ता के लिए सरलता से रूपांतरित करने का तरीका प्रदान करता है, ताकि दोनों operating systems में सही ढंग से प्रदर्शित हो सके.
जो लोग दूसरी platforms के साथ बहुत share करते हैं, उनके लिए यह काफ़ी काम का लग रहा है.
क्या आपने developer registration कर रखा है? जब आप distribute करें, तो Xcode में archive बनाकर उस archived build को Direct Distribution फ़ॉर्मैट में export करें, फिर Apple developer portal के ज़रिए notarizing हो जाती है. इससे app store distribution की तरह permissions authenticate हो जाती हैं, इसलिए इसे सीधे run किया जा सकता है. यह दस्तावेज़ देखें, इससे app distribute करना और run कराना आसान लगेगा: https://developer.apple.com/documentation/Security/…
नमस्ते! उपयोगी जानकारी के लिए धन्यवाद। सुचारु वितरण के लिए signing और certification प्रक्रिया पूरी कर ली गई है, और अब इसे इस तरह तैयार किया गया है कि आप बिना execution errors और security issues के इसे आसानी से उपयोग कर सकें। धन्यवाद।
मैंने अक्टूबर 2020 में यही फ़ीचर बनाया था, इसलिए साझा कर रहा हूँ.
पहली बार चलाते समय
controlदबाकर열기पर क्लिक करें.मैंने भी Contact का बहुत अच्छी तरह इस्तेमाल किया था! टिप्पणी के लिए धन्यवाद हाहा
कॉन्टैक्ट का अच्छे से इस्तेमाल कर रहा/रही हूँ haha, अभी भी यह मेरे menu bar में है.
मुझे याद है कि cloud storage के बिल्कुल शुरुआती दौर में Dropbox ने इस तरह की समस्या को लगभग पूरी तरह हल कर दिया था, और वह बात काफ़ी प्रभावित करने वाली लगी थी :)
धन्यवाद! जैसा आपने कहा, Dropbox का ऐसा एक precedent पहले से था। उससे मुझे अच्छी insight मिली। मेरी इच्छा है कि Korean उपयोगकर्ताओं के लिए OS स्तर पर NFC Unicode normalization का default support मिले, ताकि ऐसे tools की ज़रूरत ही न पड़े। :)
इसे चलाने पर "अज्ञात डेवलपर...." नहीं आता, बल्कि शुरू से ही "एप्लिकेशन को चलाया नहीं जा सकता" दिखता है, और Security सेक्शन में भी पुष्टि नहीं हो पाती। (Mac 15.2(24C101))
ऐप signing और certification प्रक्रिया पूरी हो चुकी है, और अब इसे इस तरह से तैयार कर दिया गया है कि आप बिना execution error या security issue के आराम से इस्तेमाल कर सकें। एक बार फिर feedback देने के लिए धन्यवाद।
समस्या साझा करने के लिए धन्यवाद! जाँच करने पर पता चला कि deployment target 15.1 पर सेट होने की समस्या थी। यह ऐप मैं अकेले इस्तेमाल करता था, इसलिए इस पर ठीक से ध्यान नहीं दे पाया T_T मैं इसे बदलकर macOS 13.0 या उससे ऊपर के सभी वर्ज़न सपोर्ट कर सकूँ, ऐसा करूँगा और release फ़ाइल भी अपडेट कर दूँगा! फ़ीडबैक के लिए धन्यवाद
App Store में जाने पर कुछ भी नहीं दिख रहा है, क्या यह सही लिंक है?!
App Store के अंदर "आप जिस पेज को ढूंढ रहे हैं, वह उपलब्ध नहीं है" दिखता है!