4

Я знаю, что могу использовать инструмент locale и export LANG=... чтобы установить мою локаль на Cygwin.

Тем не менее, даже если у меня нет %LANG% определенного в Windows, при запуске bash --login я замечаю, что $LANG уже затронут fr_CH.UTF-8 где я хочу, чтобы он был en_US.UTF-8 .

$LANG устанавливается перед /etc/lang.sh и даже перед /etc/profile .

Где это определено? Как я могу правильно изменить это?

1 ответ1

5

Где Cygwin устанавливает локаль ($ LANG env var)?

При запуске приложения языковой стандарт приложения устанавливается на языковой стандарт по умолчанию "C" или "POSIX". В Cygwin 1.7.2 и более поздних версиях этот язык по умолчанию использует набор символов ASCII на уровне приложения.

...

Как установить локаль

Предположим, что вы установили одну из вышеупомянутых переменных среды в какое-то допустимое значение локали POSIX, отличное от "C" и "POSIX". Предположим далее, что вы живете в Японии. Возможно, вы захотите использовать код языка "ja" и территорию "JP", таким образом, установив, скажем, для LANG значение "ja_JP".

Вы не установили набор символов, так что теперь будет использовать Cygwin? Начиная с Cygwin 1.7.2, набор символов по умолчанию определяется кодовой страницей Windows ANSI по умолчанию для этого языка и территории. Cygwin использует набор символов, который является типичным Unix-эквивалентом кодовой страницы Windows ANSI.

Вы не хотите использовать набор символов по умолчанию? В этом случае вы должны указать кодировку явно. Например, предположим, что вы из Японии и не хотите использовать кодировку по умолчанию для японского языка EUC-JP, а кодировку по умолчанию для Windows SJIS.

Например, вы можете установить переменную LANG в mintty Cygwin Terminal в разделе "Текст" его диалогового окна "Параметры".

Если вы начинаете сеанс Cygwin через командный файл или ярлык командного файла, вы также можете просто установить LANG там:

  @echo off

  C:
  chdir C:\cygwin\bin
  set LANG=ja_JP.SJIS
  bash --login -i

Источник Глава 2.Настройка Cygwin - Интернационализация

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .