Как исправить мою проблему с локалью?

К сожалению Notify-OSD нельзя использовать для открытия приложения, для которого все это уведомление. Поэтому, чтобы ответить на ваш вопрос, Notify-OSD не доступен для кликов. Как и его название, это означает только пользователей NOTIFIES. Надеюсь, это поможет.

1
задан 20 January 2015 в 18:37

17 ответов

В моем случае ничего не было предложено (Ubuntu Server 12.04LTS). Что, в конечном итоге, помогло помещать в файл /etc/environment:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

По какой-то причине он отсутствовал. Выходы для локали и других команд выглядели так, как будто они были правильно определены. Другими словами, не считайте само собой разумеющимся, все основные вещи объявляются там, где они должны быть объявлены.

321
ответ дан 25 May 2018 в 08:46
  • 1
    Да, никто другой не работал, кроме этого, возможно, из-за обновленной версии. Но я предпочитаю поместить это в /etc/default/locale. – Naveed 23 February 2013 в 02:18
  • 2
    Обновлено /etc/default/locale и больше предупреждений. благодаря – ohho 26 February 2013 в 13:00
  • 3
    Да, другие не работали для меня. Это было сделано. Вот однострочный я использовал для автоматического обновления этого. [F1] – dman 22 March 2014 в 12:01
  • 4
    @ user163207 ваше решение неверно, потому что оно добавляет (вместо перезаписи), это не рекомендуемый файл, а echo нужно запускать с включенной интерпретацией escape-кодов обратной косой черты. Это то же самое, что и у вас, но с вышеупомянутым исправленным: sh -c "echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale" – glarrain 10 April 2014 в 02:22
  • 5
    НЕ ЗАБЫВАЙТЕ ЛОГОТИП И РЕАГИРОВАТЬ! – S.M.Mousavi 16 November 2015 в 22:05

Они должны исчезнуть после выпуска:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales 

dpkg-reconfigure перенастраивает пакеты после того, как они уже установлены. Передайте им имена пакета или пакетов для перенастройки. Он будет задавать вопросы конфигурации, так же, как когда пакет был впервые установлен.

133
ответ дан 25 May 2018 в 08:46
  • 1
    Я рад, что мои проблемы год назад помогли вам понять это;) – Rinzwind 11 July 2012 в 19:34
  • 2
    Не следует ли генерировать этот локаль по умолчанию? Я имею в виду en, en_AU, en_CA, en_GB по умолчанию, но не en_US? – Daniel Serodio 15 August 2012 в 21:05
  • 3
    @Rinzwind Большое спасибо за ваши усилия! Я действительно сожалею; Я должен был сформулировать свой вопрос лучше. Я хотел спросить: почему необходимо перенастроить пакет локалей после создания новых локалей? Мне кажется, что локали работают даже без dpkg-reconfigure. – Victor 18 November 2012 в 17:49
  • 4
    Использование Ubuntu 14.04 в контейнере Docker, поэтому ничего не было установлено. Для этого нужно [j1] Django. Это сработало отлично! Благодарю. – Justin 11 August 2014 в 23:05
  • 5
    Я считаю, что sudo отсутствует. Возможно, это должно быть: sudo dpkg-reconfigure locales. Это работало для меня после новой установки Ubunty 14.10 Desktop 64-bit. – bgoodr 14 February 2015 в 23:02

Просто добавьте следующее в свой файл .bashrc (если вы используете bash)

export LC_ALL="en_US.UTF-8"
104
ответ дан 25 May 2018 в 08:46
  • 1
    Это сладкое исправление работало для меня на моем изображении Amazon-EC2 (работало по умолчанию RHEL AMI) Большое спасибо! :) – gideon 1 December 2012 в 21:07
  • 2
    Это работало для меня с моим образцом Digitalocean Ubuntu 12.04. – Inan Berbatov 25 September 2013 в 16:49
  • 3
    это исправило мою проблему. Я должен задать вопрос: почему LC_ALL не был установлен командой locale-gen в качестве других ответов, упомянутых выше этого? – alexserver 21 September 2015 в 21:35
  • 4
    Странно, все решения выше не работали для меня, но это было сделано! После экспорта LC_ALL я мог бы наконец использовать sudo dpkg-reconfigure locales. – sobi3ch 18 November 2015 в 15:56
  • 5
    наконец, пробовав много трюков, это работает для меня на kubuntu 14.04.3 lts. благодаря! – youness 9 January 2016 в 00:44

Это обычная проблема, если вы подключаетесь удаленно, поэтому решение заключается в том, чтобы не перенаправлять ваш язык. Отредактируйте /etc/ssh/ssh_config и закомментируйте строку SendEnv LANG LC_*.

81
ответ дан 25 May 2018 в 08:46
  • 1
    Я пробовал другие ответы, но забыл, что я подключался удаленно, пока не увидел ваш ответ. Проблема связана с разными локалями на сервере и клиенте ssh. – Hieu 27 February 2015 в 10:32
  • 2
    В OSX (подключение к ubuntu) оно находится в /etc/ssh_config – Michiel de Mare 3 June 2015 в 13:01
  • 3
    Для этого выполните однострочный: sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config (полезно для подготовки сервера) – Albin 16 June 2015 в 19:57
  • 4
    Я не мог установить LC_ALL на локальном компьютере, но он исправил мою проблему с удаленным сервером, спасибо. – Alexander Shlenchack 26 August 2016 в 23:33

Для этого есть команда:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Обновляет /etc/default/locale с предоставленными значениями.

60
ответ дан 25 May 2018 в 08:46
  • 1
    Это законно! Не забудьте выпустить / перезагрузить оболочку, иначе вы не увидите изменений. Не забудьте проверить одобренный ответ для создания и реконфигурации локалей. – Erik Zivkovic 8 February 2016 в 14:28
  • 2
    Запуск locale по-прежнему не показывает никаких значений utf. – Cerin 19 April 2017 в 02:00
  • 3
    @Cerin: Myybe, вызов locale-gen отсутствует. Прежде, нужно сделать apt-get install locales. – koppor 16 August 2017 в 09:19
  • 4
    Это не изменит LANG для корневой оболочки Ubuntu 16.04, так как она отменена в /root/.profile. – Willem 31 December 2017 в 20:44

То, что сработало для меня в 12.10, было следующим:

apt-get install language-pack-en-base  

Это было после того, как dpkg-reconfigure locales не дал никаких результатов.

29
ответ дан 25 May 2018 в 08:46
  • 1
    Это лучший ответ. Дело не в том, что мои локали были установлены неправильно, но на самом деле они не существовали. Я думаю, что это похоже на проблему OP («Нет такого файла или каталога») довольно ясно, если ваш locale установлен в правильно!). – Breakthrough 28 October 2013 в 03:49
  • 2
    Я получал проблему с OPs когда-либо, когда я использовал apt-get на Ubuntu 12.04. Это решило это без необходимости редактировать файлы. – Deepend 10 June 2014 в 15:13
  • 3
    «language-pack-en-base» уже является самой новой версией. " – karlingen 10 August 2015 в 10:51
  • 4
    Выход из системы и вход в систему могут помочь – S.M.Mousavi 16 November 2015 в 22:09
  • 5
    Работал для меня в ubuntu chroot под debian. Благодаря :) – Wyatt8740 18 February 2016 в 17:25

Не забудьте выйти из сеанса SSH (или вашего X11), снова и снова войдя в систему. Все эти предложения не сработали для меня, если я не зашел в ...

13
ответ дан 25 May 2018 в 08:46
  • 1
    Этот комментарий должен получить больше голосов или, по крайней мере, этот факт должен быть выделен в каждом ответе. – ni8mr 9 December 2016 в 18:24

Для Ubuntu 12.10 ни одно из вышеперечисленных действий не было выполнено, кроме решения ratzs. Я рекомендую добавить это в ваш файл /etc/bash.bashrc:

export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
10
ответ дан 25 May 2018 в 08:46
  • 1
    Из всех вышеприведенных решений. Это единственное, что сработало для меня. – JohnnyQ 11 May 2016 в 09:56

Я застрял в странном состоянии, когда моя локальная машина установлена ​​на es, и поэтому удаленная машина (через vagrant) была предоставлена ​​в состоянии без обработки. Поэтому мне пришлось использовать руководство export= только для облегчения успешной работы dpkg-reconfigure. Тогда система прекрасна.

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales
10
ответ дан 25 May 2018 в 08:46

Я написал сценарий bash для исправления выше проблемы. Вышеуказанные ответы полезны, но установка переменных языка, просто экспортируя значения в переменную оболочки, будет работать только для сеанса. Я надолго решил эту проблему, экспортировав переменные locale в файл .bash_profile. Вы также можете использовать файл /etc/profile вместо .bash_profile.

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Не забудьте source .bash_profile и следуйте сценарию bash в простом установка.

8
ответ дан 25 May 2018 в 08:46

Вы можете попробовать:

export LANGUAGE=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE=ru_RU.UTF-8
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES=ru_RU.UTF-8
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

, где ru_RU - код вашей страны.

7
ответ дан 25 May 2018 в 08:46

Как сказано здесь в Debian Wiki, вы можете отредактировать /etc/locale.gen и добавить все локали (или раскомментировать их, у меня был список всех локалей, кроме всех тех, которые я использовал в качестве комментариев), которые вы хотите получить вашей системы. Затем выполните

sudo dpkg-reconfigure locales

, чтобы обновить локали в вашей системе. Теперь все локали, которые вы добавили / раскомментировали в /etc/locale.gen, доступны в вашей системе без каких-либо предупреждений.

5
ответ дан 25 May 2018 в 08:46

Текущий принятый ответ недостаточен в стратегии устранения неполадок, потому что у вас может быть человеческая ошибка. Вы устанавливаете свою систему на en_US, но у вас en_GB включен в /etc/locale.gen, как у меня в потоке здесь для Raspberry Pi 3b. Вы должны использовать все используемые вами локали в /etc/locale.gen.

У меня был en_GB.UTF-8 UTF-8 включен только в /etc/locale.gen. Я должен был там только активировать en_US.UTF-8 UTF-8 из-за других команд, запускаемых для него. Поэтому я прокомментировал ГБ и раскоментировал США, и теперь все работает

masi@raspberrypi:~ $ sudo vim /etc/locale.gen

masi@raspberrypi:~ $ sudo locale-gen 
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

masi@raspberrypi:~ $ sudo a2enmod rewrite && a2enmod headers && a2enmod ssl
Module rewrite already enabled
Module headers already enabled
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

Теперь я не получаю эти ошибки локали с любыми командами.

Система: Raspbian Jessie Оборудование: Малина Pi 3b

4
ответ дан 25 May 2018 в 08:46

Если вы используете среду KDE, проверьте файл setlocale.sh в ~/.kde/env/:

$ cat ~/.kde/env/setlocale.sh 
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
2
ответ дан 25 May 2018 в 08:46
  • 1
    это спасло мою задницу .... спасибо! Невероятное количество мест, в которые устанавливается этот языковой дерьмо ... и как в мире KDE удается повредить вещи, смешивая мои две разные локали (is_IS для местоположения, денег и т. Д. И en_EN для языка в несуществующий is_EN локаль)! Grmpfh. – StFS 27 May 2016 в 14:05
Возможно, вам потребуется запустить sudo dpkg-reconfigure также для приложения, которое вы установили, в то время как настройки «locale» были недействительными / не совпадают. Хотя языковой стандарт системы был неправильно настроен, я установил vim. Позже, когда система была исправлена, я увидел ситуацию, когда vim отображал символы utf-8 некорректно, как странные символы, в то время как nano и less отображали их правильно. Запуск
sudo dpkg-reconfigure vim
появился, чтобы устранить проблему после исправления системных настроек. Я также заметил то же самое, что уже упоминалось: вам может потребоваться отключить / повторно подключить SSH, чтобы сделать видимыми изменения.
1
ответ дан 25 May 2018 в 08:46

Добавление следующего текста в ~/.profile работает для меня:

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Я использую 64-битный сервер Ubuntu 16.04 LTS на Linode.

1
ответ дан 25 May 2018 в 08:46

Это работало для меня, когда у меня была та же проблема (на основе решения, предоставленного dman):

sudo sh -c "echo -e 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
-1
ответ дан 25 May 2018 в 08:46
  • 1
    Я не был уверен, как добавить URL-адрес в комментарий. @EliahKagan – pythonhunter 27 August 2014 в 11:28
  • 2
    Нет проблем - дата и временная метка рядом с комментарием связаны с ней напрямую. ... Итак, я заметил комментарий glarrain (вызов для > вместо >>) кажется ответом на dman's. Я действительно не знаю, какой путь правильный или лучший, но если у вас есть какое-либо представление об этом, вы можете расширить этот ответ с дополнительной информацией. (Вам не обязательно, хотя.) – Eliah Kagan 27 August 2014 в 11:32

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

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