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

Вполне вероятно, что версия вина, которую вы используете, не работает с Rosetta Stone, или, наоборот, версия Rosetta Stone, которая у вас есть, не работает с вином.

Пожалуйста, проверьте свою совместимость, сделав перекрестную ссылку на сообщенного suceese здесь: http://appdb.winehq.org/objectManager.php?sClass=application&iId=1867

507
задан 20.01.2015, 16:37

17 ответов

Сначала запустите locale, чтобы увидеть список локалей, определенных в настоящее время для текущей учетной записи пользователя:

$ locale
LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

Затем сгенерируйте недостающий языковой стандарт и перенастройте языковые стандарты, чтобы принять к сведению:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

Теперь вы больше не увидите ошибок!

514
ответ дан 21.10.2019, 17:53
  • 1
    не работал на меня – Ondrej 24.04.2014, 10:43
  • 2
    Это работало на меня в ряде систем. Существует ли способ избежать этой проблемы о недавно установленных системах? – DigitalRoss 12.01.2015, 19:34
  • 3
    @UmairAyub может быть Вами, имеют, больше чем один не знает локаль, пробует это: для y в $ (локаль | сократила-d ' = '-f 2 | вид |uniq); сделайте $y генерала локали; сделанный Это генерирует локаль для каждого определения, которое Вы имеете – Steven Sudit 27.06.2015, 21:33
  • 4
    Выход из системы и Вход в систему могут помочь – Jon Skeet 16.11.2015, 20:09
  • 5
    @Umair Там является высоким риском человеческой ошибки в этой проблеме. Ваша система настроена к en_GB по умолчанию, но Вы устанавливаете ее [до 111]. Вы имеете к вручную комментарию en_GB и некомментарию en_US в /etc/locale.gen. См. мой ответ askubuntu.com/a/790373/25388 в аппаратных средствах Raspberry Pi 3b и система Raspbian Jessie. – Lasse Vågsæther Karlsen 22.06.2016, 23:27

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

sudo sh -c "echo -e 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
2
ответ дан 21.10.2019, 17:53
  • 1
    Я wasn' t совершенно уверенный, как добавить URL к комментарию. @EliahKagan – Jeffrey L Whitledge 27.08.2014, 09:28
  • 2
    Никакая проблема - дата/метка времени рядом с комментарием что ссылки на него непосредственно.... Так, I' ve заметил glarrain' s комментарий (призывающий > вместо >>) походит на ответ на dman' s. Я don' t на самом деле знают, какой путь является правильным или лучшим, но если у Вас есть понимание этого, Вы могли бы развернуть этот ответ с большей информацией. (Вы don' t имеют к все же.) – jpabluz 27.08.2014, 09:32

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

$ cat ~/.kde/env/setlocale.sh 
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
3
ответ дан 21.10.2019, 17:53
  • 1
    это сохранило мою задницу.... спасибо! Невероятный, в скольких устанавливаются места это дерьмо локали... и как в мире делает KDE, умеют завинтить вещи путем смешивания моих двух различных локалей (is_IS для местоположения, денег, и т.д. и en_EN для языка в несуществующую is_EN локаль)! Grmpfh. – Eric Lippert 27.05.2016, 14:05

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

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

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

2
ответ дан 21.10.2019, 17:53
  1. Вам может потребоваться запустить sudo dpkg-reconfigure также для приложения, которое вы установили, в то время как настройки «локали» были недействительными / не совпадают.

    В то время как системная локаль была неправильно настроена, я установил vim. Позже, когда системный языковой стандарт был исправлен, я увидел ситуацию, когда vim неправильно отображал символы utf-8 как странные символы, в то время как nano и less показывали их правильно. Запуск

    sudo dpkg-reconfigure vim
    

    , казалось, решил проблему после исправления настроек системы.

  2. Я также заметил то же самое, что уже упоминалось: вам может потребоваться отключить / повторно подключить SSH, чтобы сделать изменения видимыми.

2
ответ дан 21.10.2019, 17:53

Текущий принятый ответ недостаточен в стратегии устранения неполадок, поскольку может возникнуть человеческая ошибка. Вы настроили свою систему на 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, потому что другие команды выполняются для него. Поэтому я прокомментировал GB и uncommented US, и теперь все работает

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
Оборудование: Raspberry Pi 3b

7
ответ дан 21.10.2019, 17:53

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

sudo dpkg-reconfigure locales

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

6
ответ дан 21.10.2019, 17:53

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

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales
11
ответ дан 21.10.2019, 17:53
  • 1
    Лучше всего! Из-за dpkg-recofigure дисплеи mojibake. – Eamon Nerbonne 28.06.2017, 16:47

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

18
ответ дан 21.10.2019, 17:53
  • 1
    Этот комментарий должен получить больше upvotes, или по крайней мере факт должен быть выделен в каждом ответе. – Daniel Pryden 09.12.2016, 16:24

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

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

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

72
ответ дан 21.10.2019, 17:53
  • 1
    Это законно! Don' t забывают выписываться / перезагружают Вашу оболочку или иначе Вас won' t видят изменения. Don' t забывают проверять утвержденный ответ для генерации и реконфигурирования локалей. – Samuel 08.02.2016, 12:28
  • 2
    Выполнение locale все еще doesn' t показывают любые значения utf. – Jason Webb 19.04.2017, 02:00
  • 3
    @Cerin: Myybe, вызов к locale-gen отсутствует. Прежде, нужно сделать apt-get install locales. – Fragment 16.08.2017, 09:19
  • 4
    Этот won' t изменяют ЛЕНГА для корневой оболочки на Ubuntu 16.04, поскольку это отвергнуто в/root/.profile. – Computer User 31.12.2017, 18:44

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

94
ответ дан 21.10.2019, 17:53
  • 1
    Я пробовал другие ответы, но забыл, что соединялся удаленно, пока я не видел Ваш ответ. Различные локали на ssh сервере и клиенте вызывали проблему. – Troubadour 27.02.2015, 08:32
  • 2
    На OSX (соединяющийся с человечностью) it' s в /etc/ssh_config – LiraNuna 03.06.2015, 13:01
  • 3
    Острота, чтобы сделать это: sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config (полезный для настройки сервера) – Suragch 16.06.2015, 19:57
  • 4
    Я couldn' t устанавливают LC_ALL на машине локали, но это решило мою проблему с удаленным сервером, спасибо. – sigjuice 26.08.2016, 23:33
  • 5
    Вероятно, стоящий замечания, что необходимо отредактировать файл на локальной машине не удаленное. – Cyan 09.07.2018, 21:08

Я написал bash-скрипт , чтобы исправить вышеуказанную проблему. Приведенные выше ответы полезны, но установка переменных локали путем простого экспорта значений в переменную оболочки будет работать только для сессии. Я навсегда решил эту проблему, экспортировав переменные локали в файл .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 и следуйте сценарию в простой настройке.

9
ответ дан 21.10.2019, 17:53

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

apt-get install language-pack-en-base  

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

32
ответ дан 21.10.2019, 17:53
  • 1
    Это - лучший ответ. It' s не, что мои локали были установкой неправильно, но ими didn' t на самом деле существуют. Я думаю, что это подобно OP' s проблема также (" Никакой такой файл или directory" довольно ясно, если Ваша локаль право набора!). – Shafiq-Ur-Rehman 27.10.2013, 23:49
  • 2
    Я получал проблему операции в секунду когда-либо время, которое я использовал склонный - входят в Ubuntu 12.04, Это решило его отлично, не имея необходимость редактировать любые файлы. – Irshad 10.06.2014, 13:13
  • 3
    " language-pack-en-base уже является новейшей версией " – Irshad 10.08.2015, 10:51
  • 4
    Выход из системы и Вход в систему могут помочь – William Price 16.11.2015, 20:09
  • 5
    Работавший для меня в человечности chroot под debian. Спасибо:) – Jeff Roe 18.02.2016, 15:25

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

export LC_ALL="en_US.UTF-8"
119
ответ дан 21.10.2019, 17:53
  • 1
    Эта сладкая фиксация работала на меня на моем изображении Amazon-EC2 (Выполнял их RHEL по умолчанию AMI), Большое спасибо!:) – James Moore 01.12.2012, 17:07
  • 2
    Этот работал на меня с моим digitalocean' s изображение Ubuntu 12.04. – peter karasev 25.09.2013, 14:49
  • 3
    это решило мою проблему. Я должен задать вопрос: каким образом LC_ALL не был установлен командой генерала локали как другие ответы, сказанные выше этого? – Jeff Mc 21.09.2015, 21:35
  • 4
    Странный, все решение выше didn' t работа для меня, но этот сделал! После экспорта LC_ALL я мог наконец использовать sudo dpkg-reconfigure locales. – James Moore 18.11.2015, 13:56
  • 5
    наконец после попытки большого количества приемов, это - рабочее для меня на kubuntu 14.04.3 lts. Спасибо! – nurettin 08.01.2016, 22:44

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

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

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

149
ответ дан 21.10.2019, 17:53
  • 1
    Я рад, что мои проблемы год назад помогли Вам получить зафиксированный;) – Hi-Angel 11.07.2012, 17:34
  • 2
    Shouldn' t эта локаль быть сгенерированным по умолчанию? Я имею в виду en, en_AU, en_CA, en_GB присутствуют по умолчанию, но не en_US? – bdrajer 15.08.2012, 19:05
  • 3
    @Rinzwind Большое спасибо для Вашего усилия! Я действительно приношу извинения; я должен был сформулировать свой вопрос лучше. То, что я означал спрашивать: Почему необходимо реконфигурировать пакет локалей после генерации новых локалей? Кажется мне как работа локалей даже без dpkg-reconfigure. – don bright 18.11.2012, 13:49
  • 4
    Используя Ubuntu 14.04, в контейнере Докера, таким образом, ничто не устанавливалось. Django' s makemessage нужно это. Это работало отлично! спасибо. – coneybeare 11.08.2014, 21:05
  • 5
    Я понимаю, что Raspbian вне объема здесь, но я думал I' d упоминают, что я должен был выйти из системы и войти в систему, прежде LC_ALL был правильно установлен. – Josh Kelley 29.12.2017, 20:27

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

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

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

366
ответ дан 21.10.2019, 17:53
  • 1
    Да, никто другой не работал кроме этого, возможно, из-за обновленной версии. Но я скорее предпочитаю помещать это в /etc/default/locale. – Danvil 22.02.2013, 22:18
  • 2
    Обновленный /etc/default/locale и больше предупреждений. Спасибо – Lasse Vågsæther Karlsen 26.02.2013, 09:00
  • 3
    Да, другие didn' t работают на меня. Этот сделал. Вот острота, которую я использовал для необслуживаемого обновления этого. sudo sh -c "echo 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment" – Eric Lippert 22.03.2014, 08:01
  • 4
    @user163207 Ваше решение является неправильным, потому что это добавляет (вместо того, чтобы перезаписать), it' s не рекомендуемый файл, и echo потребности, которые будут выполнены с интерпретацией Escape обратной косой черты, включили. Это совпадает с Вашим, но с зафиксированным вышеупомянутым: sh -c "echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale" – MartinStettner 10.04.2014, 00:22
  • 5
    DON' T ЗАБЫВАЮТ К LOGPUT И ПЕРЕВХОДУ В СИСТЕМУ! – Rob Kennedy 16.11.2015, 20:05

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

export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
11
ответ дан 21.10.2019, 17:53
  • 1
    Из всех решений выше. Это - единственное, это работало на меня. – Eric Lippert 11.05.2016, 09:56

Теги

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