Твой вопрос трудно понять. Да, вы можете установить Ubuntu в virtualbox. Это работает как программа в вашей основной операционной системе. Это не то же самое, что с двойной загрузкой, где у вас две операционные системы бок о бок, но только один за раз. Это также вполне возможно с Ubuntu, но это совсем другое, и для этого вам не нужен VirtualBox.
Надеюсь, он ответил на ваш вопрос. Если вы отредактируете свой вопрос, чтобы его было легче понять, я, вероятно, могу дать лучший ответ.
Для изменения языковых настроек доступно несколько переменных среды. Вы можете просмотреть текущие настройки локали, выполнив команду locale. Чтобы изменить все настройки языка на английский, используйте LANG=C. Этот язык C всегда доступен без установки дополнительных языковых пакетов. (Чтобы временно перейти на неанглийские локали, см. Сообщение @ mklement0.)
Примеры:
Выполнение команды с настройками языка по умолчанию и печать текущих настроек языкового стандарта: [ ! d3]
$ /nonexistent
bash: /nonexistent: Bestand of map bestaat niet
$ locale
LANG=nl_NL.UTF-8
LANGUAGE=
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=
Временно переопределить язык для одной программы и показать, что она действительно временная:
$ LANG=C ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet
Измените языковой стандарт для всех команд, выполняемых в текущей оболочке, и снова включите доказательства:
$ LANG=C
$ ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если значение (эффективное) LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если (эффективное) значение LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если (эффективное) значение LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если (эффективное) значение LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если (эффективное) значение LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если (эффективное) значение LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.
LANG
или LANG_ALL
не работает для меня, но LANGUAGE
. См. Почему переопределяет переменную среды LANG, не меняя язык для меня?
– gertvdijk
23 June 2013 в 21:07
LANGUAGE
, является exception i>: GNU gettext дает преимущество LANGUAGE
value except i>, если значение (эффективное) LC_MESSAGES
обычно устанавливается косвенно через LANG
или LC_ALL
), либо C
, либо (его синоним) POSIX
. Также обратите внимание, что LANGUAGE
в этом ответе не установлен, тогда как он является i> установлен по умолчанию, и если он установлен, вы должны переопределить it i>, чтобы переключиться на a < i> специфический язык i> (в отличие от «C» / «POSIX»), который вы нашли.
– mklement0
1 November 2016 в 09:45
LANGUAGE
явно не задан или не отменен. Учитывая общий заголовок вопроса, вполне вероятно, что люди найдут, что этот ответ также будет переключен на неанглийский язык, поэтому, пожалуйста, подумайте над тем, чтобы добавить эту информацию к вашему ответу.
– mklement0
1 November 2016 в 09:52
LANGUAGE
, если хотите :)
– Lekensteyn
2 November 2016 в 04:23
LANGUAGE
в вашем образце вывода на nl
, что является фактическим значением по умолчанию, когда ваша локаль nl_NL.UTF-8
.
– mklement0
2 November 2016 в 06:20
Для изменения языковых настроек доступно несколько переменных среды. Вы можете просмотреть текущие настройки локали, выполнив команду locale
. Чтобы изменить все настройки языка на английский, используйте LANG=C
. Этот язык C
всегда доступен без установки дополнительных языковых пакетов. (Чтобы временно перейти на неанглийские локали, см. Сообщение @ mklement0 .)
Примеры:
Выполнение команды с языком по умолчанию настройки и распечатать текущие настройки локали:
$ /nonexistent
bash: /nonexistent: Bestand of map bestaat niet
$ locale
LANG=nl_NL.UTF-8
LANGUAGE=
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=
Временно переопределить язык для одной программы и показать, что он действительно временный:
$ LANG=C ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet
Изменить языковой стандарт для всех выполненных команд в текущей оболочке и снова включить доказательства:
$ LANG=C
$ ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
LANG
или LANG_ALL
не работает для меня, но LANGUAGE
. См. Почему переопределяет переменную среды LANG, не меняя язык для меня?
– gertvdijk
23 June 2013 в 21:07
LANGUAGE
, является exception i>: GNU gettext дает преимущество LANGUAGE
value except i>, если значение (эффективное) LC_MESSAGES
обычно устанавливается косвенно через LANG
или LC_ALL
), либо C
, либо (его синоним) POSIX
. Также обратите внимание, что LANGUAGE
в этом ответе не установлен, тогда как он является i> установлен по умолчанию, и если он установлен, вы должны переопределить it i>, чтобы переключиться на a < i> специфический язык i> (в отличие от «C» / «POSIX»), который вы нашли.
– mklement0
1 November 2016 в 09:45
LANGUAGE
явно не задан или не отменен. Учитывая общий заголовок вопроса, вполне вероятно, что люди найдут, что этот ответ также будет переключен на неанглийский язык, поэтому, пожалуйста, подумайте над тем, чтобы добавить эту информацию к вашему ответу.
– mklement0
1 November 2016 в 09:52
LANGUAGE
, если хотите :)
– Lekensteyn
2 November 2016 в 04:23
LANGUAGE
в вашем образце вывода на nl
, что является фактическим значением по умолчанию, когда ваша локаль nl_NL.UTF-8
.
– mklement0
2 November 2016 в 06:20
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на другой язык по запросу, вам потребуется больше работы.
start, вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>, где <lang-tag> является полезным ответчиком Lekensteyn , например es для испанского языка.
Утилиты, основанные на GNU gettext, имеют приоритет для нестандартной переменной LANGUAGE среды [1] над переменными среды локального языка POSIX LC_ALL, LC_MESSAGES и LANG (в этом порядке).
Учитывая, что LANGUAGE устанавливается по умолчанию в системах Ubuntu [1] , а именно US English значения LANG, который отражает либо простой язык (например, es для испанского языка) или тегом языкового региона (например, de_DE для немецкого варианта немецкого языка), вы должны отключить или переопределить LANGUAGE, чтобы сообщения другого языка вступили в силу. [ 3]
, если вы хотите переключиться на по умолчанию : переключение на испанский (es) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es, но вы можете добавить идентификатор региона (например, es_AR для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8). Однако локализованные сообщения могут существовать только на уровне языка, а резервное копирование - использовать сообщения, соответствующие языковой части (es в этом случае).
Сначала это альтернативное решение language LANGUAGE, а затем использует переменную среды локализации POSIX LC_ALL, чтобы неявно установить LC_MESSAGES [3] :
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что все аспекты локализации для указанной локали (например, LC_TIME для форматов даты / времени) и (неявно) установка LC_MESSAGES также сообщает language -GNU-программы желаемого языка.
Обратите внимание, что для LC_ALL требуется имя для всех , включая суффикс набора символов, чтобы быть эффективным ([ f29]) (в отличие от LANGUAGE, для которого достаточно простого языкового тега (например, es)). То же самое относится к настройкам LC_MESSSAGES и LANG. Указание недопустимого / не установленного имени локали приводит к откату в локали POSIX и, следовательно, в английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без отмены / переопределения LANGUAGE - исключение: если значение (эффективное) LC_MESSAGES (обычно установленное косвенно через LANG или LC_ALL), либо C, либо (его синоним) POSIX, то значение соблюдается независимо от значения LANGUAGE, если таковое имеется. И наоборот, если (эффективное) значение LC_MESSAGES - это любой другой, определенный язык, LANGUAGE имеет приоритет.
[1] Причины, по которым ответ Лекенштейна работает даже без отмены / переопределения LANGUAGE, являются исключением: если значение (эффективное) LC_MESSAGES (обычно устанавливается косвенно через LANG или [ f37]) является либо C, либо (его синоним) POSIX, это значение соблюдается независимо от значения LANGUAGE, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES - это любой другой, определенный язык, LANGUAGE имеет приоритет.
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C, либо LANGUAGE=POSIX (в качестве альтернативы, LANG=C / LANG=POSIX ), хотя я не понимаю, активно ли это признано или просто без механизма , учитывая, что эти значения не начинаются с языкового тега; возможно, лучшим выбором будет en_US.
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C, либо LANGUAGE=POSIX (в качестве альтернативы, LANG=C / LANG=POSIX). , хотя я не знаю, активно ли это признано или просто без механизма , учитывая, что эти значения не начинаются с тега языка; возможно, лучшим выбором будет en_US.
Полезный ответ Lekensteyn отлично работает, если вы хотите переключиться на US English по запросу, как запросил OP, но если вы хотите переключиться на по запросу, требуется больше работы.
Перед запуском вы должны установить таблицы сообщений с помощью sudo apt-get install language-pack-<lang-tag>
, где <lang-tag>
является простым языковым подтекстом RTF 5646 , например es
для испанского.
Утилиты GNU gettext предоставляют приоритет нестандартной переменной среды LANGUAGE
[1 ] над POSIX-определенными переменными среды локали LC_ALL
, LC_MESSAGES
и LANG
(в этом порядке).
Учитывая, что LANGUAGE
по умолчанию задан в системах Ubuntu [2], а именно к подстроке значения LANG
, которая отражает либо простой тег языка (например, es
для испанского), либо тег языкового региона (например, de_DE
для немецкого варианта немецкого языка ), вы должны отключить или отменить LANGUAGE
, чтобы сообщения другого языка вступили в силу. [3]
LANGUAGE
es
) сообщения ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Примечание: достаточно простого тега языка, такого как es
, но вы можете добавить идентификатор региона (например, , es_AR
для Аргентины) и даже суффикс набора символов (например, es_AR.UTF-8
). Однако локализованные сообщения могут существовать только на уровне language , а резервное копирование - использовать сообщения, которые в данном случае соответствуют языку (es
).
LANGUAGE
и установить LC_ALL
Это альтернативное решение сначала отменяет LANGUAGE
, а затем использует переменную среды локализации POSIX LC_ALL
неявно установить LC_MESSAGES
[4]:
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Это решение имеет то преимущество, что установка всех аспектов локализации в указанную локаль (например, LC_TIME
для даты / (неявно) установка LC_MESSAGES
также сообщает программы non -GNU желаемого языка.
Обратите внимание, что LC_ALL
требует точного, полного имя локали, включая суффикс набора символов, должно быть эффективным (es_ES.UTF-8
) (в отличие от LANGUAGE
, для которого достаточно простого языкового тега (например, es
)). То же самое относится к настройкам LC_MESSSAGES
и LANG
. Указание недопустимого / не установленного имени локали вызывает отказ в локали POSIX и, следовательно, на английском языке.
[1] Причины, по которым ответ Лекенштейна работает даже без снятия / переопределения LANGUAGE
является исключением : если значение (эффективное) LC_MESSAGES
(обычно установленное косвенно через LANG
или LC_ALL
), либо C
или (его синоним) POSIX
, это значение соблюдается независимо от значения LANGUAGE
, если оно есть. И наоборот, если (эффективное) значение LC_MESSAGES
является любым другим, специфическим языком, LANGUAGE
имеет приоритет.
[2] Это относится к собственно Ubuntu , но не обязательно к другим ароматам ; Лекенстейн утверждает, что Kubuntu делает не установленным LANGUAGE
. По-видимому, LANGUAGE
следует установить not по умолчанию, учитывая, что в его отсутствие соблюдается значение LC_MESSAGES
, подразумеваемое значением LANG
(которое определяет текущую локаль).
[3] Вы также можете использовать этот подход для перехода на [US] English, назначив либо LANGUAGE=C
, либо LANGUAGE=POSIX
(в качестве альтернативы, LANG=C
/ LANG=POSIX
), хотя я «Неясно, активно ли это признано или просто механизм резервного , учитывая, что эти значения не начинаются с тега language ; возможно, лучшим выбором будет en_US
.
[4] Существует случай edge , где этот подход не работает: попытка вызвать исполняемый файл с помощью пути - относительного или абсолютного - не переключается на указанный язык, тогда как mest filename делает: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
работает not (выводит сообщение в текущем регионе), тогда как LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
делает ( выводит сообщение об ошибке в Испании). Если кто-нибудь знает, почему и есть ли веские причины для этого, сообщите нам об этом.