क्या शेल कमांड की आउटपुट भाषा को अंग्रेजी के अलावा किसी और चीज़ में सेट करना संभव है?


9

मैं अपने इस धारणा में सही कर कि खोल जैसे आदेशों हूँ cp, man, ls, आदि हमेशा अंग्रेजी में उनके संदेश प्रणाली और उपयोगकर्ता सेटिंग्स की परवाह किए बिना प्रिंट है और उसे "आदेश नहीं मिला" भी मानक खोल संदेशों स्थानीयकृत किए जाने योग्य नहीं हैं?

सिस्टम वरीयताएँ> भाषा और पाठ में, मैंने भाषा, क्षेत्र और इनपुट स्रोत को एक अलग भाषा / लोकेल में बदलने की कोशिश की। मैंने भी दौड़ने की कोशिश की sudo languagesetup। शेल कमांड की भाषा को प्रभावित करने के लिए कुछ भी नहीं लगता है, इसलिए मुझे लगता है कि इसे अंग्रेजी में कठिन कोडित किया जाना चाहिए, लेकिन मुझे इंटरनेट पर कोई संदर्भ नहीं मिला। यदि यह सही नहीं है, तो आप OS X में शेल भाषा कैसे बदलते हैं?


मुझे लगता है कि localeकमांड आपकी मदद कर सकती है। मैं इसे सफलतापूर्वक काम कर पाने में सक्षम नहीं था, लेकिन यहां कुछ निर्देश दिए गए हैं जो आपको शुरू कर सकते हैं: linuxspy.com/1850/how-to-change-the-bash-shell-language
alexwlchan

जवाबों:


7

यदि आप बदलते हैं LC_MESSAGES, तो यह त्रुटि की भाषा को बदल देता है और बैश द्वारा दिखाए गए संदेशों में मदद करता है, लेकिन उनमें से केवल एक भाग का कई भाषाओं के लिए अनुवाद किया जाता है:

$ export LC_MESSAGES=de_DE.UTF-8
$ aa
bash: aa: Kommando nicht gefunden.
$ help alias
alias: alias [-p] [Name[=Wert] ... ]
    Definiert Aliase oder zeigt sie an.

    Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form
    `alias Name=Wert' auf die Standardausgabe gedruckt.

    Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein
    Wert angegeben wurde.
    A trailing space in VALUE causes the next word to be checked for
    alias substitution when the alias is expanded.

    Options:
      -p    Print all defined aliases in a reusable format

    Rückgabewert:
    Meldet Erfolg, außer wenn NAME nicht existiert.

डिफ़ॉल्ट रूप से सिस्टम प्राथमिकता में चयनित क्षेत्र के आधार पर टर्मिनल और iTerm 2 सेट LANG(जो सभी वास्तविक स्थानीय चर को बदलता है LC_MESSAGES)।

कुछ GNU / Linux वितरण अंग्रेजी के अलावा अन्य भाषाओं में मैन पेजों के साथ आते हैं, लेकिन OS X नहीं है। कुछ होमब्रेव पैकेज स्थानीयकृत मैन पेजों को जोड़ते हैं /usr/local/share/man/:

$ LC_MESSAGES=de_DE.UTF-8 man -w ps2pdf
/usr/local/share/man/de/man1/ps2pdf.1
$ LC_MESSAGES=de_DE.UTF-8 man ps2pdf|head
PS2PDF(1)                         Ghostscript                        PS2PDF(1)



NAME
       ps2pdf - konvertiert PostScript nach PDF mittels ghostscript
       ps2pdf12 - konvertiert PostScript nach PDF 1.2 (kompatibel zu Acrobat 3
       und spAxter) mittels ghostscript
       ps2pdf13 - konvertiert PostScript nach PDF 1.3 (kompatibel zu Acrobat 4
       und spAxter) mittels ghostscript

आप उदाहरण के लिए /usr/share/man/de/उबंटू वीएम से ओएस एक्स में कॉपी कर सकते हैं , लेकिन मैन पेजों का केवल एक छोटा हिस्सा अनुवादित है:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857

1
माउंटेन लॉयन पर एक सादे बैश 3.2 में, सेटिंग LC_MESSAGESकिसी भी संदेश की भाषा को नहीं बदलेगी। जर्मन में संदेश शायद एक Homebrew जोड़ होना चाहिए।
गोटो 0

@ ft1 ओह, तुम सही हो। मैं बैश 4.2 का उपयोग कर रहा हूं। शायद वे अनुवाद 4.0 या बाद के संस्करण में जोड़े गए थे या हो सकता है कि वे bash 3.2 के संस्करण में शामिल नहीं थे जो OS X के साथ शामिल है।
Lri
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.