Изменение сменности приводит к проблемам

Функция bash для терминала

Вот моя функция bash для переключения между локалями DE и EN.

Вы можете расширить этот код на своих предпочитаемых языках. Чтобы использовать это, поместите его в свой ~/.bashrc (или ~/.bash_profile) -

Вызовите его с помощью _configure_locale EN, чтобы переключиться на английский.

function _configure_locale() { # [profile]
    local profile=${1:-EN}
    case ${profile} in
      DE|DE_DE|de_DE)
          LC_ALL="de_DE.UTF-8"
          LANG="de_DE.UTF-8"
          LANGUAGE="de_DE:de:en_US:en"
          ;;
      EN|EN_US|en|en_US)
          LC_ALL="en_US.UTF-8"
          LANG="en_US.UTF-8"
          LANGUAGE="en_US:en"
          ;;
      *)
          echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
          ;;
      esac
      LC_PAPER="de_DE.UTF-8"; # independent from locale
      LESSCHARSET="utf-8";    # independent from locale
      MM_CHARSET="utf-8"      # independent from locale
      echo "locale settings" "${LANG}";
      export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}

В целом я предлагаю для изменения всех трех переменных окружения LC_ALL, LANG, LANGUAGE, чтобы избежать неправильного использования некоторых программ.

Адаптация к вашему языку

Расширение кода на ваш родной язык довольно просто. Вы можете найти нужные значения, вызвав следующую команду

env |egrep -e 'LC_ALL|LANG'
1
задан 28 July 2014 в 20:48

0 ответов

Другие вопросы по тегам:

Похожие вопросы: