ডেবিয়ানে কীভাবে লোকেল ইনস্টল / পরিবর্তন করবেন?


65

আমি একটি ওয়েব অ্যাপ্লিকেশন লিখেছি যার জন্য ইউজার ইন্টারফেস ডাচ ভাষায় রয়েছে। আমি অ্যাপ্লিকেশনটিতে তারিখের স্ট্রিংগুলি ফর্ম্যাট করতে সিস্টেমের তারিখ এবং সময় রুটিনগুলি ব্যবহার করি। যাইহোক, সিস্টেমের ফর্ম্যাটগুলি যে তারিখের স্ট্রিংগুলি ইংরাজীতে রয়েছে তবে আমি সেগুলি ডাচ ভাষায় চাই, সুতরাং আমার সিস্টেমের লোকেল সেট করা দরকার। আমি ডেবিয়ানের উপর এটি কীভাবে করব? আমি সেটিংয়ের চেষ্টা করেছি LC_ALL=nl_NLতবে মনে হয় এটির কোনও প্রভাব নেই:

$ date
Sat Aug 15 14:31:31 UTC 2009
$ LC_ALL=nl_NL date
Sat Aug 15 14:31:36 UTC 2009

আমার মনে আছে আমার উবুন্টু ডেস্কটপ সিস্টেমে এলসি_এলএল সেট করা ভাল কাজ করে। এই কাজটি করার জন্য আমার কি অতিরিক্ত প্যাকেজ ইনস্টল করার দরকার আছে, বা আমি এটি পুরোপুরি ভুল করছি?


সার্ভারের নির্ধারিত আইপি ঠিকানার ভিত্তিতে স্বয়ংক্রিয়ভাবে এটি করার কোনও উপায় আছে?
স্কুপ করুন

উত্তর:


72

/etc/default/localeবিষয়বস্তুগুলি সম্পাদনা করুন এবং এতে সেট করুন :

LANG="nl_NL.UTF-8"

আপনি বর্তমানে কোন লোকেলগুলি ব্যবহার করে তৈরি করেছেন তা পরীক্ষা করতে পারেন:

# locale -a

আপনি /etc/locale.genসক্ষম করতে চান এমন লোকালগুলির জন্য লাইনগুলি সম্পাদনা করে এবং সংঘাতের মাধ্যমে আপনি আরও জেনারেট করতে পারেন। তারপরে আপনি এগুলি চালিয়ে জেনারেট করতে পারেন:

# locale-gen

আপনি সমর্থিত লোকেলের একটি তালিকা খুঁজে পেতে পারেন /usr/share/i18n/SUPPORTED

দেবিয়ান উইকিতে আরও তথ্য রয়েছে ।


9
/ var / lib / belocs / তালিকা বিদ্যমান নেই। আপনার পরিবর্তে /etc/locale.gen সম্পাদনা বা dpkg-পুনরায় কনফিগার করা লোকেল চালানো দরকার run
pgs

লোকেল-জেন বর্ণনা করার জন্য এই উত্তরটি +1 করুন, তবে পূর্ববর্তী মন্তব্য অনুসারে, আমার সিস্টেমে / var / lib / belocs / list এর মতো কোনও ফাইল নেই
আনন্দিত

এই উত্তরটি পেতে আমাকে 5 ঘন্টা সময় লেগেছে, যা নিখুঁত হয়ে গেছে। তদুপরি, এটি উপকরণ তৈরি করতে দেয়: en_US ইউটিএফ -8 এবং এটি_আইটি ইউএফটি -8 আমাকে ডিফল্টরূপে ইউটিএফ -8 এ আমার স্থানীয় অবস্থানের অনুমতি দেয়, যা আপনার কাছে পিএইচপি কোড থাকে যা লোকেলগুলির উপর নির্ভর করে
সিইসি

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

জার থেকে নীচে উত্তর দেখুন। আপনি এটি এর মতো করতে পারেন: সেড
টোবিয়াস গার্টনার

66

আপনার localesপ্যাকেজ ইনস্টল করার প্রয়োজন হতে পারে । এটি আপনাকে জিজ্ঞাসা করবে কোন লোকেলগুলি উত্পন্ন করা উচিত। যদি এটি ইতিমধ্যে ইনস্টল করা থাকে dpkg-reconfigure localesতবে আপনাকে আরও লোকেল তৈরি করতে দেয়।


এটি কেবল লোকাল তৈরি করে, সিস্টেম ডিফল্ট সেট করে না।
ডেভিড পাশলে

16
না, ডিপি কেজি-পুনরায় কনফিগার করা লোকেলের চূড়ান্ত প্রশ্নটি ডিফল্ট লোকেল নির্বাচন করা।
pgs

2
আমি এটি sudoহিসাবে চালাতে হয়েছিল sudo dpkg-reconfigure locales
অ্যালেক্স ইউরশা

যদি কোনও সার্ভার লোকেশনে ডেবিয়ান উইকি পৃষ্ঠার মাধ্যমে এসএসএসের মাধ্যমে অ্যাক্সেস করে থাকে তবে ডিফল্ট লোকালে সেট রেখে দেওয়ার পরামর্শ দেয় NONE
পল রাউজিউক্স

1
এটি আমার প্রয়োজন মতো ছিল: সমস্ত লোকেল কেবল কয়েকটি কীস্ট্রোকে ইনস্টল করুন। তোমাকে অনেক ধন্যবাদ!
এক্সেল

11

অন্যান্য উত্তরগুলির মতো এখানে উত্তরগুলি অসম্পূর্ণ। কয়েকটি জায়গা থেকে একসাথে তথ্য ছড়িয়ে দেওয়ার পরে, আমার জন্য যা কাজ করা হয়েছিল তা হ'ল (1) যে লোকেলটি আমি চেয়েছিলাম তা উপলব্ধ ছিল (এটি তৈরি না হলে এটি তৈরি করা) তা নিশ্চিত করে (2) স্থানীয় সম্পর্কিত পরিবেশের পরিবর্তনগুলি পছন্দসই লোকালয়ে সেট করুন।

আমার ক্ষেত্রে আমার en_US.UTF-8ডক পাত্রে প্রোগ্রামেমেটিকভাবে (যেমন অ-ইন্টারেক্টিভভাবে) ইনস্টল করা দরকার। এফএফ আমার যা প্রয়োজন তা পূর্ণ করেছে তবে এটি একটি ইন্টারেক্টিভ শেলটিতে ঠিক কাজ করা উচিত।

apt-get update

# Install locales package
apt-get install -y locales

# Uncomment en_US.UTF-8 for inclusion in generation
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen

# Generate locale
locale-gen

# Export env vars
echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc

একই শেলটিতে, source ~/.bashrcএনভ ভার্সার তাত্ক্ষণিকভাবে কার্যকর হওয়ার জন্য আপনাকে তা করতে হবে। আপনি অনুরোধ করে লোকেল সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করতে পারেন locale

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

এই বিষয় সম্পর্কে অনেক প্রশ্নোত্তর প্রবেশিকা ছিল তবে কেবল কয়েকজনই সহায়ক ছিল। যেখানে দেনা আছে সেখানে দেনা পরিশোধ করুন:


6

এগুলির সাথে ইনস্টল করা একটি এলএক্সসি পাত্রে এই উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করেনি:

lxc-create -n sse-master -t download -n sse-master -- \
    -d debian -r jessie --arch i386

আমি সর্বদা নিম্নোক্ত আউটপুটটি পেয়েছি locale-gen, যেমন কোনও লোকেল তৈরি করা হয়নি (তালিকাভুক্ত নয়):

$ sudo locale-gen
Generating locales (this might take a while)...
Generation complete.

dpkg-reconfigure localesকিছু লোকেল চালানো এবং নির্বাচন /etc/locale.genকরা আমার প্রত্যাশা মতো আপডেট হয়নি update

যাইহোক, আমি যখন সেই ফাইলটি ম্যানুয়ালি সংশোধন করেছি এবং আমি যে লোকেলেসগুলি চেয়েছিলাম সেগুলি সংশোধিত করেছি, তখন locale-genসঠিকভাবে কাজ শুরু করে:

$ sudo locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

আমি নিজেও লোকেলগুলি এইভাবে তৈরি করতে সক্ষম হয়েছিলাম:

sudo localedef -i en_US -f UTF-8 en_US.UTF-8
sudo localedef -i en_GB -f UTF-8 en_GB.UTF-8

তবে এটি কোনও স্থায়ী সমাধান ছিল না: আমি দেখতে পেলাম যে বিকল্প locale-genব্যতীত দৌড়ানোর ফলে --keep-existingম্যানুয়ালি উত্পাদিত সমস্ত লোকেল, অর্থাৎ তালিকাভুক্ত (এবং নিরবিচ্ছিন্ন) প্রতিটি লোকেল মুছে ফেলা হবে /etc/locale.gen


3

ওয়েব অ্যাপ্লিকেশনটির জন্য, সিস্টেম ডিফল্ট লোকাল যথাযথভাবে বাইরে সেট করা প্রয়োজন না হয়ে প্রোগ্রামের অভ্যন্তরে সেটলোকেল () ব্যবহার করা ভাল । কম looseিলে শেষ হয়।


1
সিস্টেমে লোকেল প্রয়োজন setlocaleনা থাকলে, কাজ করবে না।
গডফাদার

1

তবে প্রথমে আপনার প্রয়োজন ভাষা প্যাক ইনস্টল করা প্রয়োজন। আমার জার্মান ভিত্তিক ভিপিএসে কোনও ইংরেজী ভাষার প্যাক প্রাক ইনস্টলড ছিল না। সুতরাং প্রথমে পরীক্ষা করে দেখুন যে আপনি এটি ইনস্টল করেছেন:

aptitude install language-pack-en

1

আমার মতো উবুন্টু 14.04 এলটিএসে যারা আছেন তাদের কাছে কোনওরকম /etc/locale.genফাইল নেই, আপনি একটি নতুন লোকেল যুক্ত করতে পারেন /var/lib/locales/supported.d/localএবং তারপরে চালাতে পারেন:

sudo dpkg-reconfigure locales

আপনি ফ্রেঞ্চ (উদাহরণস্বরূপ) এইভাবে লোকেল যুক্ত করতে পারেন (সম্পাদনার পরিবর্তে /var/lib/locales/supported.d/local):

sudo locale-gen fr_FR fr_FR.UTF-8

যোগ এবং জেনারেট করতে ISO-8859-1এবং UTF-8এর codesets fr_FRলোকেল এবং পরিশেষে টাইপ করুন:

sudo dpkg-reconfigure locales

কাজ শেষ করতে

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