Меню Рубрики

Установка locale на сервере

Linux: Смена Языка и Кодировки Системы — Locale

Локаль (locale или локализация) в Linux определяет какой язык и какой набор символов (кодировку), пользователь видит в терминале.

Прочитав эту статью вы поймете, как узнать и изменить язык и кодировку системы из командной строки в Linux.

Я покажу как проверить текущие настройки языка и кодировки и узнать список всех доступных локалей.

Вы узнаете, как временно сменить язык и кодировку для текущей сессии или установить их постоянно, как для отдельного пользователя, так и для всех пользователей (сменить системную локаль по умолчанию).

Дельный Совет: Узнайте как определить и изменить кодировку файла из командной строки в Linux! Лучшее решение для конвертации текстовых файлов между различными кодировками! Читать далее →

Настройки Языка и Кодировки

Выполните команду locale , чтобы получить информацию о текущем языковом окружении:

Чтобы узнать список всех установленных языков и кодировок, выполните:

Локаль задается в следующем формате:

ЯЗЫК Код языка по стандарту ISO 639
ТЕРРИТОРИЯ Код страны по стандарту ISO 3166
КОДИРОВКА Набор символов или идентификатор кодировки текста, как ISO-8859-1 или UTF-8

Например, локаль для австралийского английского с кодировкой UTF-8 называется: en_AU.UTF-8

Добавить Новую Локаль

Новая локаль: Прежде чем локаль станет доступной для использования, ее необходимо установить (сгенерировать).

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

Ubuntu-18.04

Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Теперь она должна появиться в списке установленных локалей:

Ubuntu-14.04

Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Теперь она должна появиться в списке установленных локалей:

CentOS-7, CentOS-6

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Сменить Язык и Кодировку Временно

Чтобы изменить язык и кодировку текущей сессии, необходимо просто переназначить эту переменную.

Ниже приведены примеры изменения локали для некоторых распространенный языков.

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

Установить английскую локаль:

Установить русскую локаль:

Установить французскую локаль:

Установить немецкую локаль:

Установить индийскую локаль:

Сменить Язык и Кодировку Перманентно

Для этого установите необходимое значение переменной LANG в пользовательском Bash профиле и нужный язык вместе с кодировкой будут автоматически подгружаться при каждом входе в систему.

Добавьте следующую строку в файл

/.profile , чтобы для текущего пользователя локаль en_US.utf8 стала локалью по умолчанию:

Изменение вступит в силу при следующем входе в систему, но вы можете это ускорить, если выполните одну из приведенных ниже команд, в зависимости от того, в каком файле вы прописали экспорт переменной LANG :

Локаль Системы По Умолчанию

Дельный Совет: Создайте потрясающий ASCII баннер из командной строки в Linux и вставьте его в предупреждающее сообщение, которое будет появляться при подключении по SSH! Читать далее →

Выполните следующие действия для смены системной локали по умолчанию (для всех пользователей).

Ubuntu-18.04

Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Ubuntu-14.04

Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Откройте файл с настройками локали по умолчанию:

Переопределите значение переменной LANG :

CentOS-7

CentOS-6

Откройте файл с настройками локали по умолчанию:

Читайте также:  Установка аудио передней панели

Переопределите значение переменной LANG :

Необходима перезагрузка: Изменения системных настроек вступит в силу только после перезагрузки.

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Настройка языка и региональных стандартов в Ubuntu Server/Debian

В наших материалах тема региональных настроек Linux-систем ранее почти не поднималась. Подразумевалось, что система устанавливается читателями самостоятельно и все эти вопросы уже решены на стадии установки. Но бывают ситуации, когда нужно работать с уже готовой системой, например, VPS у зарубежного провайдера или в облачных системах типа Amazon или Azure. В этом случае появляется необходимость настроить систему для использования родного языка и привычных региональных настроек.

Начнем мы с одного распространенного заблуждения: очень часто под локализацией системы подразумевают только изменение языка интерфейса системы, забывая об остальных настройках. В тоже время локализация системы — это не столько язык интерфейса, вы можете оставить его английским или любым иным, по вашему пожеланию, а способность системы полноценно работать с документами и системами, использующими ваш родной язык.

Это, в первую очередь, поддержка символов национального алфавита, кодовых страниц и раскладок клавиатуры, форматов чисел, а также настроек даты и времени. Если данные настройки не выполнить или выполнить неправильно, то имена файлов и содержимое документов с использованием символов отличных от стандартного латинского алфавита могут быть искажены или испорчены. Также масса проблем может возникнуть в дальнейшем, например, при переходе на локализованную систему, когда имена уже существующих файлов или ссылок на них могут оказаться неверными или вовсе недействительными.

Ниже на рисунке прекрасный пример того, что бывает, если на нелокализованный сервер скриптом были залиты файлы с именами, содержащими национальные символы, в данном случае кириллицу.

При этом сам скрипт, в данном случае CMS, функционирует нормально и при скачивании с сайта файлы имеют нормальные имена на кириллице, но с ними практически невозможно работать на сервере, так как непонятно, что это за файлы (вместо имен кубики), и нет возможности скачать их на Windows-систему. Переименовать файлы также нет возможности, так как сразу получим массу битых ссылок по всему сайту.

Поэтому, самым правильным решением будет сразу же настроить сервер на работу с нужной локализацией и снять целый пласт потенциальных проблем, тем более, что сделать это несложно.

Debian

Для правильного отображения символов национальных алфавитов в определенной кодировке в Linux-системах предназначены локали (locales), узнать какие локали уже установлены в системе можно командой:

Обычно установлена и используется английская локаль en_US.utf8, однако, если вы, например, приобрели VPS в Германии, может присутствовать только национальная локаль, в этом случае, кроме русской, также рекомендуется установить английскую локаль.

Для генерации и настройки локалей используйте команду:

Откроется псевдографическая утилита, которая предложит выбрать используемые локали, добавляем ru_RU.utf8

Затем укажите используемую по умолчанию локаль, тем самым установив язык системы:

Большинство «инструкций» в интернете на этом заканчиваются, но установить локаль недостаточно, нужно еще настроить консоль, т.е. ту среду ввода-вывода с которой вы взаимодействуете. Иначе вы увидите примерно такую картину:

Для настройки консоли запустите следующую утилиту:

Прежде всего зададим кодировку консоли, в современном Linux это UTF-8.

Затем используемые наборы символов, нам нужен комбинированный набор Latin; Slavic Cyrillic; Greek.

И используемый шрифт, здесь посоветовать что-то однозначно нельзя и следует исходить из личных предпочтений, в любом случае выбор можно всегда изменить, запустив утилиту повторно.

Ниже, чтобы облегчить вам выбор, представлены образцы шрифтов:

Читайте также:  Установка eset endpoint antivirus

Остальные настройки, вроде размера шрифта и т.п. не представляют сложности и могут быть оставлены по умолчанию или выставлены в соответствии с собственными предпочтениями. Теперь можно выйти из системы и войти повторно или перезагрузить ее. После этого основным языком системы будет русский и символы кириллицы будут отображаться корректно.

Следующим шагом следует настроить клавиатуру:

Выбираем тип клавиатуры, по умолчанию это 105-клавишная международная, менять эту настройку без особой необходимости не следует.

Так как система изначально была установлена с локалью en_US, то нам предлагаются американские раскладки, выбираем Другая.

Дальше проще: Страна — Русская и Раскладка — Русская.

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

Остался последний штрих — настройки даты и времени:

И устанавливаем текущий часовой пояс, после чего система автоматически переведет часы.

Более подробно о соответствии пунктов tzdata и актуальных часовых поясов РФ можно прочитать в нашей статье: Перевод часов в РФ 26 октября 2014 года — проблемы и решения.

Ubuntu Server

В Ubuntu Server команда dpkg-reconfigure locales не имеет псевдографического интерфейса и при запуске настраивает уже сгенерированные локали. Поэтому придется нужные настройки выполнить вручную, прежде всего сгенерируем русскую локаль (здесь и далее обращаем внимание на регистр команд):

Затем зададим локаль по умолчанию:

После чего выполним их настройку:

Следующим шагом будет настройка консоли:

Здесь все настройки аналогичны Debian, выбираем кодировку, набор символов и настраиваем шрифты.

Теперь можно выйти и повторно войти в систему (или перезагрузиться), чтобы продолжить дальнейшую настройку на русском языке. Для полноценной локализации потребуется настроить клавиатуру:

Мы не будем подробно останавливаться на настройках, так как работа этой утилиты подробно описана выше, в разделе о Debian.

Временные зоны также настраиваются аналогично командой:

Как видим, локализация системы не представляет абсолютно никакой сложности и выполняется в считанные минуты, позволяя снять целый ряд потенциальных проблем, решить которые впоследствии будет гораздо труднее.

источник

Локализация Ubuntu Server 18.04 LTS

Локаль (locale или локализация) в Linux определяет, какой язык и какой набор символов (кодировку), пользователь видит в терминале. Посмотрим, как проверить текущие настройки языка и кодировки, как получить список всех доступных локалей, как сменить язык и кодировку для текущей сессии или установить их постоянно.

Текущие настройки языка

Посмотрим информацию о текущем языковом окружении:

Список доступных локалей

Теперь посмотрим список всех установленных языков и кодировок:

Добавить новую локаль

Смотрим список всех поддерживаемых (доступных для установки) локалей:

Устанавливаем нужные локали — en_US.UTF-8 и ru_RU.UTF-8 :

Второй способ установить локали — расскомментровать нужные строки в файле /etc/locale.gen

И просто выполнить команду locale-gen без указания локалей:

Подробная информация о локалях

Более подробную информацию об установленных в системе локалях можно посмотреть так:

Локаль по-умолчанию

Хорошо, нужные локали у нас теперь есть, осталось только задать локаль по умолчанию:

Эта команда запишет в файл /etc/default/locale строку:

После этого надо будет перезайти в систему. И проверяем информацию о языковом окружении:

Теперь все правильно, так что запишем эту информацию в файл /etc/default/locale :

Быстрая локализация

До сих пор мы все делали ручками, но если лень — можно просто повторно сконфигурировать пакет locales . Сначала будут созданы нужные локали (их нужно выбрать на первом экране), потом установлена локаль по умолчанию (ее нужно выбрать на втором экране).

Читайте также:  Установку zver live с флешки

Удалить лишние локали

После установки (генерации) локали, она помещается в архив /usr/lib/locale/locale-archive . Файл архива — это файл, отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами. Посмотреть список локалей в архиве можно с помощью команды:

Удалить заданную локаль из файла архива:

Обратите внимание на название локали — ru_UA.utf8 , а не ru_UA.UTF-8 . Если неправильно указать локаль — она не будет удалена из архива:

В случае, если утилита locale-gen была вызвана с опцией —no-archive , надо удалить соответствующую директорию в /usr/lib/locale :

Переводы для системных программ

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

Локализация для текущей сессии

Достаточно временно установить переменную окружения LANG в текущей сессии терминала:

Или даже так — передать переменную LANG конкретной программе:

Файлы конфигурации шрифта и клавиатуры

Настройки можно найти в файлах конфигурации /etc/default/console-setup и /etc/default/keyboard :

Это системные настройки, пользователь может создать свои в файлах

Настройка шрифта и клавиатуры

Чтобы сформировать файлы конфигурации /etc/default/console-setup и /etc/default/keyboard можно использовать команды:

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

источник

Устанавливаем русскую локаль на Linux

Если вдруг кто заметил, у меня на бложеке появился фильтр русского мата! В действии можно посмотреть например в посте про лук, предсказуемо содержащем неприличное слово. Как это сделано — напишу чуть позже. Пока кодил — столкнулся с проблемой: на моем новом сервере (куда я переехал с Агавы в начале года) не было русских локалей, вообще. Соответственно, регулярки не ловили слово из трех букв, если первая буква — заглавная, например. Пришлось устанавливать, а заодно писать очередной пост в «красноглазие».

Установил, работает. Записываю на память, пошагово.

1. Проверяем, что есть русского

Должен показать локали, содержащие «ru» в названии. В моем случае не показал ничего.

2. Проверяем, что вообще есть

Отображает установленные в системе локали — все, какие есть. У меня оказалось:

3. Смотрим локали доступные, но не установленные:

> cd /usr/share/i18n/locales/
> ls -la | grep ru

То есть переходим в папку, откуда ставятся локали, и ищем там файлы с подстрокой «ru». Я нашел такие:

-rw-r—r— 1 root root 5445 Jun 6 2010 ru_RU
-rw-r—r— 1 root root 5157 Jun 6 2010 ru_UA

4. Смотрим чармэпы:

> cd /usr/share/i18n/charmaps/
> ls -la | grep 1251

Меня интересует кодировка windows-1251, поэтому я и искал charmap-файл с этой кодировкой. Нашел вот что:

-rw-r—r— 1 root root 2873 Jun 6 2010 CP1251.gz

5. Делаем локальдеф

> localedef -i ru_RU -f CP1251 ru_RU.CP1251

Собственно, вся магия сосредоточена в этой команде — при помощи нее мы на основе файла локали и файла charmap устанавливаем в систему новую локаль, которой потом можем пользоваться.

6. Проверяем, что локаль добавилась

Ну, как во втором пункте, но теперь с другим результатом:

6. Перезапускаем апач

У меня до перезапуска веб-сервера ничего не запахало. Капитан Очевидность подсказывает, что команда выше работает для Apache 2 🙂

7. Пишем тест

Если все заработало, регулярки с модификатором i (case insensitive) должны находить заглавные буквы. Проверяем, так ли это:

У меня заработало, завидуйте 🙂 «Заработало» — значит, что я могу например при помощи strtoupper() получить из строки готовые оффшорные компании строку «ГОТОВЫЕ ОФФШОРНЫЕ КОМПАНИИ», или искать по этой строке регулярками, регулируя чувствительность к регистру.

источник