OS LANG ভেরিয়েবলটি ম্যাক ওএস এক্সে কোথায় সেট হবে?


24

wgetলায়ন ওএস এক্স ইনস্টল করার পরে আমি প্রথমবার ব্যবহার করেছি এবং আমি লক্ষ্য করেছি যে আমার উইজেটটি স্থানীয় ভাষায় স্থানীয়ীকৃত হয়েছে। setটার্মিনালে চলমান কমান্ডটি দেখিয়েছিল যে আমার LANGভেরিয়েবলটি আমার স্থানীয় ভাষার প্রতিনিধিত্ব করে। আমি কোথায় এটিকে পরিবর্তন করতে বা wgetএই সেটিংটিকে উপেক্ষা করতে পারি ?

হালনাগাদ

localeআমাকে যা দেয় তা এখানে :

LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=

সুতরাং অ-পরামিতিগুলির সমস্ত আউটপুট (যেমন প্রম্পট এবং ডিবাগ বার্তা) লিথুয়ানিয়ান ভাষায়। এটাই আমার সমস্যা। আমি এটি আবার ইংরাজীতে ফিরে পেতে চাই।

আমি zshআমার লগইন শেল হিসাবে ব্যবহার করছি ।


সমস্যাটা আসলে কী wget? এবং কী localeদেখায় এবং ভাষা এবং পাঠ্য সিস্টেমের পছন্দ বাক্সে আপনার ভাষা নির্বাচন থেকে আপনি যা প্রত্যাশা করেন তা কি একই ?
bmike

উত্তর:


26

ডিফল্টরূপে, টার্মিনালটি বর্তমানে নির্বাচিত ভাষা এবং সময় / তারিখ / সংখ্যার ফর্ম্যাটগুলি ব্যবহার করে যা টার্মিনালটি ব্যবহার করে, যা এর মাধ্যমে নির্বাচিত হয় তা মেলানোর জন্য স্থানীয় পরিবেশের ভেরিয়েবল সেট করে

সিস্টেম পছন্দসমূহ> ভাষা এবং পাঠ্য

(এটি সিংহের নাম earlier আগের সিস্টেমে পছন্দ প্যানেলের সঠিক নামটি পৃথক হতে পারে))

একটি অস্থায়ী সমাধান হ'ল ইংরাজিকে ভাষার তালিকার শীর্ষে টানুন, তারপরে টার্মিনালটি খুলুন, তারপরে লিথুয়ানিয়ানটিকে আবার শীর্ষে স্থানান্তরিত করুন। তারপরে শুধুমাত্র টার্মিনাল হবে ইংরেজিতে। তবে, আপনি যদি টার্মিনালটি ছেড়ে এবং পুনরায় চালু করেন তবে এটি লিথুয়ানিয়ায় রিসেট হবে।

একটি অবিচ্ছিন্ন পন্থাটি হ'ল টার্মিনালটিকে স্থানীয় পরিবেশের ভেরিয়েবলগুলি বন্ধ না করে সেট করতে বলুন

টার্মিনাল> পছন্দসমূহ> সেটিংস> [প্রোফাইল]> উন্নত> শুরুতে লোকেল পরিবেশের ভেরিয়েবল সেট করুন

তারপরে লোকেলটি কোনও ভাষা নির্দিষ্ট না করে "সি" তে ডিফল্ট হবে এবং বেশিরভাগ প্রোগ্রামের পরে ইংরেজিতে ডিফল্ট হবে।

নোট করুন যে এটি বন্ধ করার অর্থ কিছু প্রোগ্রাম কোনও অক্ষর এনকোডিং টার্মিনালটি ব্যবহার করছে তা সম্পর্কে সচেতন হবে না এবং ধরে নেওয়া হবে যে এটি কেবলমাত্র ASCII বা আইএসও-ল্যাটিন -1। সুতরাং যদি টার্মিনাল ইউটিএফ -8 (ডিফল্ট) ব্যবহার করে তবে সেই প্রোগ্রামগুলি পছন্দসই আচরণ করতে পারে বা নাও পারে।

যদি এটি প্রায়শই হয় তবে wgetআমি প্রস্তাব দিচ্ছি যে আপনি ডিফল্ট সেটিংস প্রোফাইলের একটি অনুলিপি তৈরি করুন, আপনার কাস্টম প্রোফাইলে লোকাল সেটিংসটি বন্ধ করুন এবং ব্যবহার করার সময় কেবলমাত্র সেই প্রোফাইলটিই ব্যবহার করুন wget, যাতে আপনি সম্পূর্ণ সমর্থন সহ ইউটিএফ -8 ব্যবহার চালিয়ে যেতে পারেন অন্যান্য প্রোগ্রাম ব্যবহার করার সময়, ডিফল্ট সেটিংস ব্যবহার করে।

অন্যরা যেমন উল্লেখ করেছে, আপনি শেল প্রারম্ভিক স্ক্রিপ্টে টার্মিনাল সরবরাহিত প্রাথমিক স্থানীয় সেটিংসও ওভাররাইড করতে পারেন। Zsh এর জন্য, এটি ~ / .zshrc এ রাখুন। ব্যাশের জন্য, ~ / .bashrc ব্যবহার করুন (এবং আপনার যদি ইতিমধ্যে একটি না থাকে তবে একটি ~ / .bash_profile তৈরি করুন যা ~ / .bashrc চালায়)।

প্রতিটি স্থানীয় পরিবেশের মান সম্পর্কে আরও তথ্যের জন্য এক্স-ম্যান-পৃষ্ঠা: // 1 / স্থানীয় দেখুন।

যাইহোক, আপনি যদি কেবল নিখুঁত unset LANGবা "সি" এ সেট করেন, এটি সাধারণত আপনার সমস্ত শেল এবং প্রোগ্রামগুলির জন্য প্রযোজ্য হবে , যেখানে আপনি সম্ভবত বেশিরভাগ সময় ইউটিএফ -8 ব্যবহার করতে চান এবং টার্মিনালটি লোকেল ভেরিয়েবলগুলি মেলাতে সেট করে থাকে, সহযোগিতা, বিশ্বস্ততা এবং কার্যকারিতা সর্বোচ্চ ডিগ্রী পেতে।

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

উদাহরণস্বরূপ, এটি zsh এবং bash এ কাজ করে:

# Replace Lithuanian with English
export LANG=${LANG/lt_LT/en_US}

কখন LANG="lt_LT.UTF-8", এটি এতে পরিবর্তন করবে LANG="en_US.UTF-8"। আমার এটি wgetপরীক্ষা করার জন্য উপলব্ধ নেই, তবে এটি যথেষ্ট।

এইভাবে করার অর্থ এই যে আপনি যদি টার্মিনালে অক্ষর এনকোডিং পছন্দটি পরিবর্তন করেন তবে আপনি এটি আপনার শেল স্টার্টআপ স্ক্রিপ্টে ওভাররাইড করবেন না।


সুন্দরভাবে সম্পন্ন; LANGপুনরায় সংজ্ঞা কমান্ডটি সাধারণীকরণের জন্য : echo ${LANG/*./en_US.}বর্তমান সংস্কৃতি নামটি en_US যা তা নির্বিশেষে প্রতিস্থাপন করে ; কাজ bash, ksh, zsh
mklement0

7

এটি এখানে সেট করা হয়েছে ...

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি ডাউন ডাউনটিতে কম বা কম বিকল্প চান, তবে আরও বেশি পরিমাণের অনুগ্রহ দেখতে এনকোডিংস ট্যাবে যান।


3
OS x এ এটি ~ / .bash_profile, বাশার্ক নয়। অনলাইন টিউটোরিয়াল পড়ার সময় লোকেরা এতে বিভ্রান্ত হয়ে পড়েছিল।
এনরিকো সুসাত্তিও

এটিকে ঘৃণা করুন - এটি ধরার জন্য ধন্যবাদ। এমনকি আমি ওপেন সোর্স পৃষ্ঠাতে গিয়েও দেখেছি যে অ্যাপল gnu বাশে পরিবর্তন করেছে এবং এখনও এটি ভুল হয়েছে। (আমার উত্তরটি সম্পাদনা করছেন - ধন্যবাদ @ ধন্যবাদ_গ্রেট_মোনকি)
বমিকে

4
টার্মিনাল লগইন শেলগুলি তৈরি করে, যা ~ / .bash_profile চালায়। তবে, বেশিরভাগ ব্যবহারকারীর কাস্টমাইজেশনগুলি ~ / .bashrc এ স্থাপন করা উচিত যাতে তারা নন-লগইন শেলগুলিতেও প্রয়োগ করে (যেমন, সাব-শেলস), এবং ~ / .bash_profile should / .bashrc চালানো উচিত যাতে এটি লগইন শেলগুলির জন্য প্রযোজ্য। b / .bash_profile সাধারণত বেশিরভাগ খালি থাকে এবং কেবলমাত্র শীর্ষ স্তরের লগইন শেলগুলির জন্য বিশেষত কোড থাকে যা ব্যবহারকারী সাব-শেলগুলির জন্য চালাতে চায় না।
ক্রিস পেজ

1
"ম্যান পৃষ্ঠার একটি দ্রুত পঠনটি দেখায় যে শেলটি প্রতিটি লগতে শেলটি এই মানটি সেট করে" বাশ ম্যান পৃষ্ঠাটি বলেছে, তবে টার্মিনাল প্রাথমিক মানটি সেট করে, এবং ইতিমধ্যে সেট না করা থাকলে বাশ সেগুলিকে আমি কখনও দেখিনি। যদি আমি "স্থানীয় স্থানীয় পরিবেশ সেট করুন ..." পছন্দটি বন্ধ করে রাখি তবে ভেরিয়েবলগুলির মধ্যে কোনওটি সেট করা নেই, এবং লোকেল শো LANG=এবং অন্যান্য মানগুলি সমস্ত ডিফল্ট "C"
ক্রিস পৃষ্ঠা

2

আমি আমার। প্রোফাইল ফাইলে ভাষা সেট করে এই সমস্যাটি সমাধান করেছি যা যখনই আমি টার্মিনাল শুরু করি তখন লোড হয়।

export LANG="en_US.UTF-8"
export LC_ALL="POSIX"

LC_ALLওভাররাইডগুলি LANG, সুতরাং আপনার প্রথম কমান্ডটির কোনও প্রভাব থাকবে না।
mklement0

এছাড়াও, POSIXএর সমতুল্য Cএবং এটি ইউনিকোডের সাথে মোটেও মানায় না।
সেবাস্তিয়ান গ্রাফ

1

লিনাক্সের এক্সপ্রায়েন্সের উপর ভিত্তি করে, আপনি যদি এলসি_ল্যাংয়ের মাধ্যমে আপনার স্থানীয়করণ সম্পূর্ণরূপে পরিবর্তন করতে না চান তবে আপনার ইংরাজীতে সিস্টেম বার্তা থাকতে চান, আপনি ঠিক সেট করবেন

LC_COLLATE=C    (to have standard sorting in ls, etc)
LC_CTYPE=en_US.UTF-8

এটি LC_MESSAGESপরিবর্তনশীল যা কোন ভাষার বার্তাগুলি আউটপুট হওয়া উচিত (যদি ইনস্টল থাকে) controls
mklement0

0

ফরাসি ভাষায় একটি ডেবিয়ান সার্ভার এবং একটি ম্যাকসোক্স ব্যাশ ক্লায়েন্ট ব্যবহার করে, আমাকে "স্রেফ" ম্যাকোক্সের ব্যবহারকারী ডিরেক্টরিতে এটি আমার .bash_ প্রোফাইলে যুক্ত করতে হয়েছিল:

LANG = fr_FR.UTF-8 রফতানি করুন

সমাধান।


0

অন্য উত্তরগুলি সঠিক, অর্থাত শুরুতে এবং শেল ব্যবহার করে সেট স্থানীয় পরিবেশের ভেরিয়েবলগুলিরTerminal সেটিং সম্পর্কে । তবে, আরও একটি উপায় রয়েছে যা বোঝার মতো especially বিশেষত যদি দূরবর্তী লগইনের কারণে "সমস্যা "টি অভিজ্ঞ হয় ।/etc/profilessh

ওপেনএসএসএইচ (লিনাক্স, বিএসডি এবং ম্যাকোস হিসাবে ব্যবহৃত) ক্লায়েন্টের পরিবেশ থেকে সার্ভার শুরু হওয়া শেলটিতে পরিবেশের পরিবর্তনগুলি প্রেরণ করতে পারে। এটি কেবল তখনই ঘটে যদি ক্লায়েন্টটি তাদের প্রেরণের জন্য কনফিগার করা থাকে এবং সার্ভারটি সেগুলি গ্রহণের জন্য কনফিগার করা থাকে। ক্লায়েন্টের ( ~/.ssh/config) থাকতে হবে:

SendEnv LANG LC_*

এবং সার্ভারের ( /etc/ssh/sshd_config) প্রয়োজন হবে:

AcceptEnv LANG LC_*

যদি সেগুলি উভয় জায়গায় থাকে তবে ক্লায়েন্টের স্থানীয়টি ssh সার্ভারের লগইন শেলটিতে প্রচার করা হয়:

$ ssh me@my-mac locale
LANG="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_ALL=

স্নো লেপার্ডে ডিফল্টরূপে প্রয়োজনীয় সার্ভার সেটিং নেই ; এটা সিয়েরায় আছে । পরিবর্তন করার পরে এসএসএইচ সার্ভারটি পুনরায় চালু করতে ভুলবেন না /etc/sshd_config!!!

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