বানান পরীক্ষক ফ্রেমওয়ার্ক

Android প্ল্যাটফর্ম একটি বানান পরীক্ষক ফ্রেমওয়ার্ক অফার করে যা আপনাকে আপনার অ্যাপে বানান পরীক্ষা প্রয়োগ এবং অ্যাক্সেস করতে দেয়। ফ্রেমওয়ার্কটি টেক্সট সার্ভিস API-এর মধ্যে একটি।

আপনার অ্যাপে ফ্রেমওয়ার্ক ব্যবহার করতে, আপনাকে একটি Android পরিষেবা তৈরি করতে হবে যা বানান পরীক্ষক সেশন অবজেক্ট তৈরি করে। আপনার দেওয়া টেক্সটের ভিত্তিতে, সেশন অবজেক্ট বানান পরীক্ষকের মাধ্যমে তৈরি করা বানানের সাজেশন ফেরত পাঠায়।

বানান পরীক্ষকের লাইফসাইকেল

নিচের ডায়াগ্রামে বানান পরীক্ষক পরিষেবার লাইফসাইকেল দেখানো হয়েছে:

বানান পরীক্ষক পরিষেবার লাইফসাইকেল দেখানো ছবি
ছবি ১. বানান পরীক্ষক পরিষেবার লাইফসাইকেল।

বানান পরীক্ষা শুরু করতে, আপনার অ্যাপ বানান পরীক্ষক পরিষেবার প্রয়োগ শুরু করে। আপনার অ্যাপে ক্লায়েন্ট, যেমন অ্যাক্টিভিটি বা স্বতন্ত্র UI এলিমেন্ট, পরিষেবা থেকে বানান পরীক্ষক সেশনের অনুরোধ করে, তারপর সেশন ব্যবহার করে টেক্সটের জন্য সাজেশন পায়। কোনও ক্লায়েন্ট তার অপারেশন বন্ধ করলে, এটি তার বানান পরীক্ষক সেশন বন্ধ করে দেয়। প্রয়োজন হলে, আপনার অ্যাপ যেকোনও সময় বানান পরীক্ষক পরিষেবা বন্ধ করে দিতে পারে।

বানান পরীক্ষক পরিষেবা প্রয়োগ করুন

আপনার অ্যাপে বানান পরীক্ষক ফ্রেমওয়ার্ক ব্যবহার করতে, বানান পরীক্ষক পরিষেবা কম্পোনেন্ট যোগ করুন যেটিতে সেশন অবজেক্টের সংজ্ঞা অন্তর্ভুক্ত থাকে। এছাড়াও, আপনি অ্যাপে একটি ঐচ্ছিক অ্যাক্টিভিটি যোগ করতে পারেন যা সেটিংস কন্ট্রোল করে। একটি XML মেটাডেটা ফাইল যোগ করুন যা বানান পরীক্ষক পরিষেবার বর্ণনা দেয় এবং আপনার ম্যানিফেস্ট ফাইলে উপযুক্ত এলিমেন্ট যোগ করুন।

বানান পরীক্ষক ক্লাস

নিম্নলিখিত ক্লাস সহ পরিষেবা ও সেশন অবজেক্ট নির্ধারণ করুন:

  • SpellCheckerService-এর সাবক্লাস
    SpellCheckerService, Service ক্লাস এবং বানান পরীক্ষক ফ্রেমওয়ার্ক ইন্টারফেস, দুটিই প্রয়োগ করে। আপনার সাবক্লাসের মধ্যে, নিম্নলিখিত পদ্ধতি প্রয়োগ করুন:
    createSession()
    একটি ফ্যাক্টরি পদ্ধতি যা বানান চেক করতে চায় এমন ক্লায়েন্টকে SpellCheckerService.Session অবজেক্ট ফেরত দেয়।
  • SpellCheckerService.Session-এর প্রয়োগ
    এমন একটি অবজেক্ট যা বানান পরীক্ষক পরিষেবা ক্লায়েন্টদের প্রদান করে যাতে তারা বানান পরীক্ষককে টেক্সট পাঠাতে এবং সাজেশন পেতে পারে। এই ক্লাসের মধ্যে, নিম্নলিখিত পদ্ধতি প্রয়োগ করুন:
    onCreate()
    createSession()-এর উত্তরে সিস্টেমের মাধ্যমে কল করা হয়েছে। এই পদ্ধতিতে, আপনি বর্তমান লোকেল এবং অন্যান্য বিবরণের উপর ভিত্তি করে SpellCheckerService.Session অবজেক্ট শুরু করতে পারেন।
    onGetSentenceSuggestionsMultiple()
    আসল বানান পরীক্ষা করে। এই পদ্ধতিটি SentenceSuggestionsInfo -এর একটি অ্যারে প্রদান করে, যাতে পাস করা বাক্যগুলির জন্য সাজেশন থাকে।

    বিকল্প হিসেবে, আপনি onCancel(), যা বানান পরীক্ষা বাতিল করার অনুরোধ ম্যানেজ করে; onGetSuggestions(), যা শব্দের সাজেশন সংক্রান্ত অনুরোধ ম্যানেজ করে; অথবা onGetSuggestionsMultiple(), যা শব্দের সাজেশন সংক্রান্ত অনুরোধের ব্যাচ ম্যানেজ করে, তা প্রয়োগ করতে পারেন।

বানান পরীক্ষক ম্যানিফেস্ট এবং মেটাডেটা

কোড ছাড়াও, বানান পরীক্ষকের জন্য উপযুক্ত ম্যানিফেস্ট ফাইল এবং মেটাডেটা ফাইল প্রদান করুন।

ম্যানিফেস্ট ফাইলটি সেটিংস নিয়ন্ত্রণ করার জন্য অ্যাপ, পরিষেবা এবং অ্যাক্টিভিটি সংজ্ঞায়িত করে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.samplespellcheckerservice" >
    <application
        android:label="@string/app_name" >
        <service
            android:label="@string/app_name"
            android:name=".SampleSpellCheckerService"
            android:permission="android.permission.BIND_TEXT_SERVICE" >
            <intent-filter >
                <action android:name="android.service.textservice.SpellCheckerService" />
            </intent-filter>

            <meta-data
                android:name="android.view.textservice.scs"
                android:resource="@xml/spellchecker" />
        </service>

        <activity
            android:label="@string/sample_settings"
            android:name="SpellCheckerSettingsActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    </application>
</manifest>

যেসব কম্পোনেন্ট পরিষেবা ব্যবহার করতে চায়, সেগুলিকে অবশ্যই অনুমতি চাইতে হবে BIND_TEXT_SERVICE যাতে শুধুমাত্র সিস্টেম পরিষেবার সাথে বাইন্ড করে তা নিশ্চিত করা যায়। পরিষেবার সংজ্ঞায় spellchecker.xml মেটাডেটা ফাইলও উল্লেখ করা থাকে, যা পরবর্তী বিভাগে বর্ণনা করা হয়েছে।

মেটাডেটা ফাইল spellchecker.xml-এ নিম্নলিখিত XML আছে:

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/spellchecker_name"
        android:settingsActivity="com.example.SpellCheckerSettingsActivity">
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="en”
    />
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="fr”
    />
</spell-checker>

মেটাডেটা সেই অ্যাক্টিভিটি নির্দিষ্ট করে যা বানান পরীক্ষক সেটিংস নিয়ন্ত্রণ করতে ব্যবহার করে। এটি বানান পরীক্ষকের জন্য সাবটাইপও সংজ্ঞায়িত করে। এই ক্ষেত্রে, সাবটাইপগুলি এমন লোকেল সংজ্ঞায়িত করে যা বানান পরীক্ষক পরিচালনা করতে পারে।

কোনও ক্লায়েন্ট থেকে বানান পরীক্ষক পরিষেবা অ্যাক্সেস করে

যেসব অ্যাপ TextView এবং EditText ভিউ ব্যবহার করে সেগুলি বানান পরীক্ষার সুবিধা অটোমেটিক পায়, কারণ TextView অটোমেটিক বানান পরীক্ষক ব্যবহার করে:

EditText-এ কীভাবে বানান পরীক্ষক অটোমেটিক চালু হয় তা ছবিতে দেখানো হচ্ছে
ছবি ২. EditText-এ বানান পরীক্ষা করা।

তবে, অন্যান্য ক্ষেত্রে আপনি সরাসরি বানান পরীক্ষক পরিষেবার সাথে ইন্টার‍্যাক্ট করতে চাইতেই পারেন। নিচের ডায়াগ্রামটি বানান পরীক্ষক পরিষেবার সাথে ইন্টার‍্যাক্ট করার জন্য কন্ট্রোলের ফ্লো দেখায়:

বানান পরীক্ষক পরিষেবার সাথে ইন্টার‍্যাকশনের ডায়াগ্রাম দেখানো ছবি
ছবি ৩. বানান পরীক্ষক পরিষেবার সাথে ইন্টারঅ্যাকশন।

Android ওপেন সোর্স প্রোজেক্টে LatinIME ইনপুট পদ্ধতি এডিটরে বানান পরীক্ষার উদাহরণ রয়েছে।