Запущение программы для вывода на нидерландском языке

Можно включить пароль меньше sudo для определенной команды.

# /etc/sudoers (edit with visudo)
# For a specific user/command combo
izuriel ALL=NOPASSWD:/bin/true
# For a specific command, any user in group sudo.
%sudo ALL=NOPASSWD:/bin/true
1
25.12.2013, 01:05
2 ответа

Переменная локали для управления языком программы LC_MESSAGES. Переменная LANG нейтрализация, когда более конкретный LC_xxx настройки не присутствуют. Таким образом, если Вы уже имеете LC_MESSAGES=en_US набор (например), изменяясь LANG не будет иметь желаемого эффекта. В любом случае, если Вы хотите голландские сообщения, но не в других отношениях голландские настройки, LC_MESSAGES то, что необходимо установить.

sudo LC_CTYPE=nl_NL.UTF-8 pacman -Syy

Отметьте это LC_ALL козыри все; Вы никогда не должны устанавливать его за исключением LC_ALL=C в программах, где Вы хотите проигнорировать окружающие настройки локали. Кроме того, LANGUAGE GNU libc функция, которая может переопределить даже LC_ALL, поэтому удостоверьтесь, что сбросили его.

2
27.01.2020, 23:53
  • 1
    Это работает, спасибо. Я понятия не имел, как сложный это собиралось стать... –  Joshua Strot 25.12.2013, 02:19

Я думаю sudo не экспортирует Ваши переменные, проверяют это:

# sudo FOO=bar echo ${FOO}

#

Возможно, должен создать сценарий с LANG=nl_NL.UTF-8 pacman $* и назовите этот сценарий с sudo.

-1
27.01.2020, 23:53
  • 1
    Нет, это также не работает, к сожалению. При использовании команды с sudo Вы передаете его перед командой, таким образом, это не устанавливает переменную для sudo sudo [-AbEHnPS] [-C fd] [-g group name|#gid] [-p prompt] [-r role] [-t type] [-u user name|#uid] [VAR=value] [-i | -s] [command] –  Joshua Strot 24.12.2013, 09:32
  • 2
    Гм, действительно. Но почему не работает мой пример? –  uzsolt 24.12.2013, 10:00
  • 3
    Чтобы быть честным, я не уверен. Я попробовал его несколько путей, даже с помощью LC_ALL но ни один из них не работает. Я, прежде чем изображено, я выполнял команду неправильно, но после большого обсуждения этой темы в ТАК я прибыл решение, там мог бы быть чем-то не так с частью локализации моей системы. –  Joshua Strot 24.12.2013, 10:05
  • 4
    Нет, sudo FOO=bar somecommand действительно устанавливает FOO при выполнении somecommand. Но в Вашем фрагменте кода, команда, которой Вы передаете sudo echo без аргумента, потому что ${FOO} расширен оболочкой, которую Вы выполняете sudo от. Попробовать sudo FOO=bar sh -c 'echo $FOO' (обратите внимание на заключение в кавычки), или sudo FOO=bar env. –  Gilles 'SO- stop being evil' 25.12.2013, 02:00

Теги

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