তাত্পর্যপূর্ণ কারণ: আমি "ওয়ার্ড অফ দি ডে" স্ক্রিন সেভারের একজন অনুরাগী এবং আমি ইংরাজী এবং জাপানি ছাড়া অন্য ভাষার জন্য অভিধান যুক্ত করতে চাই (এটি এখন আমি স্ক্রিন সেভার বিকল্পগুলিতে বেছে নিতে পারি)।
আমি এটা কিভাবে করবো?
তাত্পর্যপূর্ণ কারণ: আমি "ওয়ার্ড অফ দি ডে" স্ক্রিন সেভারের একজন অনুরাগী এবং আমি ইংরাজী এবং জাপানি ছাড়া অন্য ভাষার জন্য অভিধান যুক্ত করতে চাই (এটি এখন আমি স্ক্রিন সেভার বিকল্পগুলিতে বেছে নিতে পারি)।
আমি এটা কিভাবে করবো?
উত্তর:
বরং একটি অস্পষ্ট মন্তব্য থ্রেডে, কেউ ব্যাখ্যা করেছেন যে আপনি স্ক্রিন ওভারকে শক্তি প্রয়োগ করতে অ্যাপল যে শব্দ তালিকাটি ব্যবহার করতে পারেন সেগুলি পেতে পারে। এটা এ /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt
। ফাইলটি দেখতে এমন দেখাচ্ছে:
m_en_us1282510 quinsy
m_en_us1273791 orbicular
m_en_us1220945 alimony
m_en_us1250517 genome
এটি ট্যাব-বিভাজিত এন্ট্রিগুলির একটি তালিকা। আপনার ডানদিকে শব্দটি রয়েছে এবং বাম দিকে, কোনও আইডির মতো দেখতে। তবে এটির জন্য একটি আইডি কী এবং আপনি ইতিমধ্যে তালিকায় নেই বলে অন্য একটি শব্দের জন্য এটি কীভাবে সন্ধান করতে পারবেন?
আপনি যেমনটি আশা করতে পারেন, আইডিটি অ্যাপলের ডিফল্ট অভিধান "নিউ অক্সফোর্ড আমেরিকান ডিকশনারি" তে একটি প্রবেশকে বোঝায়। (উপরের শব্দ-তালিকার পথে "NOAD" এটাই বোঝায়))
অন্য শব্দগুলির জন্য কীভাবে আইডিগুলি সন্ধান করবেন ?
জোসেফ জেন্টল নামের এক বন্ধু, ব্লগ পোস্টের একটি সিরিজে, অ্যাপলের অভিধানগুলির অন্তর্নিহিত ডেটা কীভাবে পাবেন তা দেখায়। তার "অ্যাপল অভিধান, অংশ 2" পোস্টে তিনি কোডটির দিকে নির্দেশ করেছেন যা প্রাসঙ্গিক বাইনারি ফাইলটি (এমপিএমএল মধ্যে সঞ্চিত /Library/Dictionaries
) আনপ্যাক করে। ব্যবহার dedict.c
এবং strip.c
ফাইল পাওয়া যায়নি এখানে , এবং সবিনয় এর উদাহরণ অনুসরণ, আমি নিম্নলিখিত ব্যাশ কমান্ড ব্যবহৃত NOAD এর XML টি পেতে (এই কমান্ড ডিরেক্টরি থেকে চালানো হয় যেখানে আপনি ডাউনলোড করা dedict.c
এবং strip.c
ফাইল):
clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml
আমি যখন ফাইলটির head
প্রথম কয়েকটি লাইন-ইড করেছিলাম তখন আমি dict.xml
কিছু প্রতিশ্রুতিবদ্ধ দেখতে পেলাম, এমন এন্ট্রিগুলির সাথে এই জাতীয় দেখাচ্ছে:
<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">
সেই পরম লক্ষ করুন id
... এটি একটি শনাক্তকারী যা স্ক্রিনসভার শব্দের তালিকার মতো দেখাচ্ছে!
আমি এক্সএমএলকে বিশ্লেষণের জন্য নীচের রুবি স্ক্রিপ্টটি লিখেছি এবং তারপরে, আমার নিজের শব্দ তালিকাটি ব্যবহার করে একটি নতুন স্ক্রিনসেভার ফাইল তৈরি করুন যা অভিধানে তাদের নিজস্ব আইডিতে আমার নিজের শব্দ ম্যাপ করে:
raw = File.open("./dict.xml").read
my_words = File.open("./word_list.csv").readlines.map { |line| line.split(',')[1] }
word_id_map = {}
raw.scan(/<d:entry .*? id="(.*?)" d:title="(.*?)" class="entry">/).each do |entry|
word_id_map[entry[1]] = entry[0]
end
my_words.each do |word|
if id = word_id_map[word]
puts [id, word].join(' ')
end
end
আমি যখন এই নতুন ফাইলটির সাথে মূল স্ক্রিনসেভার ফাইলটি প্রতিস্থাপন করেছি তখন এটি কাজ করেছিল। আপনার কাছে এখন একটি "ওয়ার্ড অফ দ্য ডে" স্ক্রিনসেভার থাকতে পারে যা আপনার চয়ন করা শব্দের সংজ্ঞা দেয়।
আপনার যদি 10.8 থাকে তবে আপনি অভিধান.অ্যাপের পছন্দগুলি থেকে ফ্রেঞ্চ, জার্মান, সরলিকৃত চীনা এবং স্প্যানিশ অভিধান সক্ষম করতে পারেন:
তারা ওয়ার্ড অফ দি ডে স্ক্রিনসেভারের জন্য পছন্দ হিসাবে প্রদর্শিত হবে বলে মনে হয় না:
আমি অভিধানগুলি সক্ষম করার পরে পুনরায় চালু করার চেষ্টা করেছি।
2018 এর পরেও যে কেউ এখনও এতে আগ্রহী এবং এটি জুড়ে আসে ..
আমি সবেমাত্র ওএস এক্স মোজাভেতে আপডেট করেছি এবং এতে একটি Word of the Day.saver
ফাইল পেয়েছি /System/Library/Screen Savers/
। এই প্যাকেজটিতে যান Contents/Resources/WordLists/
এবং আপনি মোজাভে ওয়াটডিতে ব্যবহৃত 5 .plist ফাইলগুলি খুঁজে পেতে পারেন (তারা তিনটি ম্যান্ডারিন / ক্যান্টোনিজ চীনা অভিধান যোগ করেছেন)। সেখানে আপনি উপরে jsomers এর পদ্ধতি ব্যবহার করতে পারেন।
অ্যাপল ওএস এক্স-তে সিস্টেম ইন্টিগ্রিটি প্রোটেকশন যুক্ত করার পরেও এটি হয়ে গেছে, সুতরাং .plist ফাইলটিতে লেখার আগে আপনাকে এটিকে অক্ষম করতে হবে ।
আমি বেশ খুশি যে অ্যাপল ভাল পুরানো ডব্লিউটিডি ছাড়েনি, এবং মোজেভে এটিকে কিছুটা আপডেট করেছে। আশা করি তারা ভবিষ্যতে আরও অভিধানের পছন্দ সরবরাহ করতে পারে।
এটি আপনার সমস্যার সমাধান করা উচিত: http://www.makeuseof.com/tag/easily-expanding-apple-d অভিধান-–- mac-only/