পেছনের তথ্য
আমি জিনোম শেল 3.14.4 এর সাহায্যে ফেডোরা 21-তে সমাধানটি পরীক্ষা করেছিলাম, তবে আমি বিশ্বাস করি এটি অন্যান্য সংস্করণেও প্রয়োগ করা যেতে পারে।
প্রথমটি বুঝতে হবে যে জিনোম ডেস্কটপ এনভায়রনমেন্টটি সিস্টেম-ব্যাপী লোকাল সংজ্ঞাগুলি ওভাররাইড করে এবং ফলে এটি প্রভাবিত হয় না /etc/locale.conf
। এছাড়াও, এমন অ্যাপ্লিকেশন থাকতে পারে যাগুলির নিজস্ব লোকাল কনফিগারেশন রয়েছে এবং সিস্টেম বা জিনোম সেটিংস মোটেই ব্যবহার করে না। এই গাইডে আমি আপনার প্রয়োজন অনুসারে লোকাল সেটিংসকে অনুকূলিতকরণের একটি উপায় বর্ণনা করব এবং জিনোম এবং সিস্টেমটি স্থানীয় দৃষ্টিকোণ থেকে সামঞ্জস্যপূর্ণ হবে।
বর্তমান লোকেলের স্থিতি পরীক্ষা করা হচ্ছে
সিস্টেম-ওয়াইড সেটিংস
থেকে ফেডোরা 21 সিস্টেম প্রশাসকের নির্দেশিকা :
সিস্টেম-প্রশস্ত লোকেল সেটিংস /etc/locale.conf
ফাইলটিতে সংরক্ষণ করা হয় , যা প্রারম্ভিক বুট-এ সিস্টেমড ডিমন দ্বারা পড়া হয় । কনফিগার করা লোকেল সেটিংস /etc/locale.conf
প্রতিটি পরিষেবা বা ব্যবহারকারীর দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত, যদি না পৃথক প্রোগ্রাম বা স্বতন্ত্র ব্যবহারকারীরা সেগুলি ওভাররাইড করে।
বর্তমান লোকাল অবস্থা দেখতে আমরা চালাতে পারি:
$ localectl status
System Locale: LANG=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
VC Keymap: us
X11 Layout: us
জিনোম সেটিংস
$ gsettings get org.gnome.system.locale region
'en_US.UTF-8'
জিনোমের একটি মাত্র সেটিং রয়েছে। এ দ্রুত বর্ণন প্রদান করার মাধ্যমে GNOME নিয়ন্ত্রণ কেন্দ্র সোর্স কোড মনে হচ্ছে যে যখন set_localed_locale()
ফাংশন বলা হয়, এটা সব নিম্নলিখিত বিভাগগুলির (LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MEASUREMENT, LC_PAPER) একই এক লোকেল সংজ্ঞায়িত সেট org.gnome.system.locale region
।
কাস্টম লোকেল তৈরি না করে বিভিন্ন লোকেলের সেটিংস মিশ্রণ অসম্ভব বলে মনে হচ্ছে, তবে ভাগ্যক্রমে এটি খুব জটিল কাজ নয়।
কাস্টম লোকেল তৈরি করা হচ্ছে
আমি মনে করি ব্যাখ্যা করার সবচেয়ে সহজ উপায়টি উদাহরণ হিসাবে। আমার নির্দিষ্ট ঘটনাতে আমি একটি কাস্টম লোকেল, প্রাথমিকভাবে হিব্রু (উপর ভিত্তি করে চেয়েছিলেন he_IL ) কিন্তু LC_NAME সঙ্গে, থেকে LC_MESSAGES en_US এবং LC_TIME (সঙ্গে পরিবর্তিত first_weekday
এবং first_workday
থেকে) en_GB ।
লোকেল সংজ্ঞা ফাইলগুলি ধরে নেওয়া
আপনার কোনও ধারণা থাকা উচিত যা আপনি কী লোকেলগুলি মিশ্রিত করতে চান। প্রথমে আমাদের সম্পর্কিত সংজ্ঞা ফাইলগুলি সনাক্ত করতে হবে যা পাওয়া যাবে /usr/share/i18n/locales/
। আমার উদাহরণে ফিরে আসার জন্য আমার নিম্নলিখিতগুলির দরকার ছিল: he_IL , en_US এবং en_GB । আমি আমার বাড়িতে একটি ওয়ার্কিং ফোল্ডার সেট আপ করেছি এবং এতে প্রয়োজনীয় ফাইলগুলি অনুলিপি করেছি:
$ cd /usr/share/i18n/locales
$ mkdir -v ~/custom-locale ; cp -v he_IL en_US en_GB ~/custom-locale/
একটি নতুন সংজ্ঞা ফাইল তৈরি করা হচ্ছে
আমি আমার লোকেলকে এইচসি_আইএল কল করার সিদ্ধান্ত নিয়েছি এবং তাকে_আইএলআইএলকে ভিত্তি হিসাবে নিয়েছি । নিম্নলিখিত পংক্তিগুলি একটি নতুন ফাইল তৈরি hc_IL
থেকে বিষয়বস্তু সঙ্গে he_IL
এবং পথের মধ্যে প্রতিস্থাপন সমস্ত একটি স্ট্রিং এর ঘটনার he_IL সাহায্যে ফাইল ভিতরে hc_IL ।
$ cd ~/custom-locale/
$ sed 's/he_IL/hc_IL/g' he_IL > hc_IL
নতুন সংজ্ঞা ফাইল পরিবর্তন করা হচ্ছে
এখন আমরা আমাদের প্রয়োজন অনুসারে নতুন লোকেলটি কাস্টমাইজ করতে পারি। ~/custom-locale/hc_IL
আপনার প্রিয় পাঠ্য সম্পাদক দিয়ে নতুন তৈরি ফাইলটি খুলুন । আমি ভিএম ব্যবহার করি (এটিতে স্থানীয় সংজ্ঞা ফাইলগুলির জন্য সঠিক সিনট্যাক্স হাইলাইট রয়েছে):
$ vim ~/custom-locale/hc_IL
যারা এখনো তাদের প্রিয় সম্পাদক চয়ন করেন নি এবং জন্য তেজ ব্যবহার করতে পারেন, চা তাদের কাপ নয় gedit- র দ্বারা :)
$ gedit ~/custom-locale/hc_IL
ফাইল কাঠামো খুব জটিল নয়। মূলত, এটি বিভাগগুলি থেকে নির্মিত হয়। থেকে লোকেল (5) man পৃষ্ঠা:
লোকেল সংজ্ঞা প্রতিটি লোকাল বিভাগের জন্য একটি অংশ আছে। প্রতিটি অংশ অন্য বিদ্যমান স্থানীয় থেকে অনুলিপি করা যেতে পারে বা স্ক্র্যাচ থেকে সংজ্ঞায়িত করা যেতে পারে। বিভাগ অনুলিপি করা উচিত ছিল, তাহলে সংজ্ঞা কেবল বৈধ শব্দ হয় কপি লোকেল যা অনুলিপি করা উচিত নামে অনুসরণ করে।
অনুলিপি ধারণা খুব দরকারী। এটি সময় সাশ্রয় করে এবং ফলস্বরূপ ফাইলটি পরিষ্কার এবং সংক্ষিপ্ত। উদাহরণস্বরূপ, চারপাশে পুরো বিভাগগুলি অনুলিপি করার পরিবর্তে আপনার কাছে থাকতে পারে:
LC_MESSAGES
copy "en_US"
END LC_MESSAGES
লোকেল সংজ্ঞা ফাইলের সম্পূর্ণ ডকুমেন্টেশন এর মাধ্যমে অ্যাক্সেস করা যায়:
$ man 5 locale
যদিও, আপনি যদি কেবল একটি কাস্টম লোকেল তৈরি করতে চান তবে এটি বিদ্যমানগুলির একটি মিশ্রণ যা প্রতিটি বিশদ বোঝার দরকার নেই।
আমার ক্ষেত্রে আমি নিম্নলিখিত বিভাগগুলি এবং কীওয়ার্ডগুলি সংশোধন করেছি:
LC_IDENTIFICATION
title "Custom Hebrew locale"
source "mydomain.ws"
address "http:////www.mydomain.ws"
contact ""
email "admin@mydomain.ws"
tel ""
fax ""
language "Hebrew"
territory "Israel"
revision "1.0"
date "2015-04-21"
দ্রষ্টব্য: LC_IDENTIFICATION বিভাগের সমস্ত " বিভাগ .. " লাইন ব্যবহার করে ফাইল তৈরির সময় সংশোধন করা হয়েছে । সুতরাং আমাদের আর তাদের স্পর্শ করার দরকার নেই।sed
LC_TIME
আমি en_GB থেকে সম্পূর্ণ বিভাগটি অনুলিপি করেছি এবং কেবলমাত্র লাইনগুলিকে সংশোধন করেছি যা সপ্তাহের প্রথম দিন এবং প্রথম কার্য দিবস নির্দেশ করে:
first_weekday 1
first_workday 1
বাকী বিভাগগুলি আমি যেমন রেখেছি সেগুলি বা তাদের বিষয়বস্তু অনুলিপি হিসাবে অনুলিপি নির্দেশীর সাথে প্রতিস্থাপন করেছে :
LC_NAME
copy "en_US"
END LC_NAME
এটিই, সংজ্ঞা ফাইল প্রস্তুত। ফাইলটি সংরক্ষণ করতে ভুলবেন না :)
নতুন লোকেল সংকলন এবং অনুলিপি করুন
নতুন লোকেলের সংকলনটি নিম্নলিখিত কমান্ডটি রুট হিসাবে ব্যবহার করে বা sudo ব্যবহার করে করা হয় । hc_IL
আপনার লোকেলের সাথে প্রতিস্থাপন করুন :
$ sudo localedef -c -v -i hc_IL -f UTF-8 hc_IL.UTF-8
সংকলনটি সফল হলে সংরক্ষণাগার ফাইলে সংকলিত লোকাল ডেটা যুক্ত করা হয় /usr/lib/locale/locale-archive
।
স্থানীয় লোকাল সংজ্ঞা ডিরেক্টরিতে নতুন লোকেল সংজ্ঞা ফাইলটি অনুলিপি করুন। hc_IL
আপনার লোকেলের সাথে প্রতিস্থাপন করুন :
$ sudo cp -v hc_IL /usr/share/i18n/locales/
নতুন লোকাল সক্রিয় করা হচ্ছে
এই পদক্ষেপে আমরা সিস্টেম এবং জিনোমকে নতুন লোকেল ব্যবহার করতে কনফিগার করতে চাই।
সিস্টেম-ওয়াইড সেটিংস
রুট/etc/locale.conf
হিসাবে ফাইলটি সম্পাদনা করুন এবং আপনার নতুন লোকেলের সাথে শুরু হওয়া প্রতিটি লাইন সেট করুন । উদাহরণ স্বরূপ:LC_
LANG=en_US.UTF-8
LC_NUMERIC=hc_IL.utf8
LC_TIME=hc_IL.utf8
LC_MONETARY=hc_IL.utf8
LC_PAPER=hc_IL.utf8
LC_MEASUREMENT=hc_IL.utf8
জিনোম সেটিংস
জিনোমে নতুন লোকেল সক্রিয় করতে নিম্নলিখিত কমান্ডটি চালান। hc_IL
আপনার লোকেলের সাথে প্রতিস্থাপন করুন :
$ gsettings set org.gnome.system.locale region "hc_IL.utf8"
নতুন সেটিংস যাচাই করা হচ্ছে
শেষ পদক্ষেপটি যা প্রত্যাশা অনুযায়ী কাজ করে তা যাচাই করা। সমস্ত সেটিংস পুনরায় লোড করা আমার পক্ষে সবচেয়ে সহজতম ছিল রিবুট।
দ্রষ্টব্য: ফেডোরা 21-এ সমস্ত কিছুই জিনোম 3.14 দিয়ে পরীক্ষা করা হয়েছিল। অন্যান্য লিনাক্স বিতরণে অতিরিক্ত বা বিভিন্ন ধাপের প্রয়োজন হতে পারে।
আপনি যদি নির্দেশাবলীতে কোনও সমস্যা পান তবে মন্তব্য করুন।