জিনোম 3 এ কাস্টম লোকেল সেট করুন (ফেডোরা ২০-এ)


15

আমি আমার নিজস্ব কাস্টম তৈরি করেছি localeএবং সেগুলিতে /etc/locale.confরেখেছি যাতে আমি যদি ভার্চুয়াল কনসোলটিতে লগ ইন করি তবে সফলভাবে কার্যকর হয় (Ctrl + Alt + F2)। যদিও আমার জিনোম 3 সেশনে সেই পরিবর্তনগুলি সেট করা নেই। টার্মিনাল অ্যাপ্লিকেশনগুলির জন্য আমি কেবল এগুলিতে রাখতে পারি .bashrcতবে এটি থান্ডারবার্ড এবং পিডগিনের মতো গ্রাফিকাল অ্যাপ্লিকেশনগুলিতে আমাকে সহায়তা করবে না।

আমি এই ইঙ্গিতগুলি অনুসরণ করার চেষ্টা করেছি: শেল প্রারম্ভিককরণের লোকাল সেটিংসগুলি জিনোম সেশন দ্বারা ব্যবহৃত হয় না এবং এমনকি একটি .pam_environmentফাইল তৈরি করে লোকেল - আর্কউইকিতে বাগটি অনুকরণ করে , তবে localeসেগুলি এখনও জিনোম 3 দ্বারা সেট করা আছে। জিনোম সেটিংসে একটি কনফিগারেশন কথোপকথন রয়েছে তবে এটি কেবল পূর্বনির্ধারিত localeসংমিশ্রণের একটি খুব সীমিত সেট সেট করতে দেয় এবং সেগুলি কাস্টমাইজ করার কোনও উপায় নেই।

আমার হোম ডিরেক্টরিতে সম্পর্কিত ফাইলগুলি:

user@localhost:~$ ls -lah .dmrc .pam_environment .session .xsession .xsessionrc
lrwxrwxrwx. 1 user user 16 12. Jun 08:57 .dmrc -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 11. Jun 20:23 .pam_environment -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:09 .session -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:07 .xsession -> /etc/locale.conf
lrwxrwxrwx. 1 user user  9 13. Jun 11:22 .xsessionrc -> .xsession
-rw-rw-r--. 1 user user 66 13. Jun 11:13 .profile

user@localhost:~$ cat .profile 
source /etc/locale.conf

বিষয়বস্তু /etc/locale.conf:

LANG="en_US.utf8"
LC_TIME="de_MY.utf8" # NB: de_MY
LC_MONETARY="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"

কেউ কি localeজিনোম 3 এ কাস্টমস সেট করতে জানেন ?

উত্তর:


9

পেছনের তথ্য

আমি জিনোম শেল 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"

নতুন সেটিংস যাচাই করা হচ্ছে

শেষ পদক্ষেপটি যা প্রত্যাশা অনুযায়ী কাজ করে তা যাচাই করা। সমস্ত সেটিংস পুনরায় লোড করা আমার পক্ষে সবচেয়ে সহজতম ছিল রিবুট।

  • সিস্টেমের কনফিগারেশনটি সঠিক কিনা তা পরীক্ষা করতে "বর্তমান লোকেলের স্থিতি পরীক্ষা করা হচ্ছে" বিভাগটি দেখুন।
  • জিনোম শেল এবং লোকেল নির্ভর অ্যাপ্লিকেশনগুলি (গ্রাফিকাল এবং কনসোল) ব্যবহার করুন এবং পরীক্ষা করুন যে তারা নতুন লোকেলের সাথে প্রত্যাশা অনুযায়ী আচরণ করে। উদাহরণস্বরূপ, আপনি LC_TIME কাস্টমাইজ করলে আপনি dateতারিখের ফর্ম্যাটটি যাচাই করতে কমান্ডটি চালাতে পারেন :

    $ date +%x
    21/04/15
    

দ্রষ্টব্য: ফেডোরা 21-এ সমস্ত কিছুই জিনোম 3.14 দিয়ে পরীক্ষা করা হয়েছিল। অন্যান্য লিনাক্স বিতরণে অতিরিক্ত বা বিভিন্ন ধাপের প্রয়োজন হতে পারে।

আপনি যদি নির্দেশাবলীতে কোনও সমস্যা পান তবে মন্তব্য করুন।


আমি দারুচিনি দিয়ে ফেডোরা 22 এ এই কাজটি নিশ্চিত করতে পারি। এটি সম্ভবত জিনোমের সাথেও কাজ করবে।
ডি'কেজ

1
আমি নিশ্চিত যে তারা যদি সত্যিই কঠোর চেষ্টা করে তবে তারা কাস্টম লোকেলগুলি সেটাকে আরও কিছুটা শক্ত করে স্থাপন করতে পারে।
5heikki

আমি জিনোমকে ভালবাসি তবে এটি হাস্যকর। কমপক্ষে পাওয়ার ব্যবহারকারীদের তাদের লোকাল সেটিংস যেভাবে চান সেট করার জন্য কোনও উপায় ছেড়ে যান। আমি বেশিরভাগ জিনিসের জন্য একটি মার্কিন লোকেল চাই, তবে আমার মুদ্রকটি A4 কাগজ ব্যবহার করে ...
স্ট্যাটিক_আরটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.