Ви можете перевірити, які локалі створюються та налаштовані у вашій системі за допомогою команди locale:
- locale ... список поточної конфігурації локалі
- locale -a ... перелічує всі локалі, створені у вашій системі
- locale -a -v ... перераховує всі локалі та показує корисну додаткову інформацію (наприклад, імена каталогів, які містять файли даних про локальну інформацію)
Остання команда зверху дозволяє вам побачити, що всі створені локалі розташовані в /usr/lib/locale/
, ви можете видалити будь-який з них, якщо цього не потрібно. Кожен пакет інформації про локали - це каталог, що містить текстові файли та інші каталоги.
Усі локалі, які потрібно підтримувати вашою системою, перелічені в текстових файлах у /var/lib/locales/supported.d/
. Ці файли мають два стовпці, мовний тег та мапу символів.
Я хочу, щоб моя система знала лише американську англійську, тому в мене є лише один файл, званий en, який містить лише один рядок:
en_US UTF-8
Повідомлення про
помилки Якщо під час видачі команди locale відображаються повідомлення про помилки, наприклад:
locale: Cannot set LC_ALL to default locale: No such file or directory
переконайтесь, що файл /etc/default/locale
існує та має відповідний вміст, наприклад:
LANG="en_US"
LANGUAGE="en_US:en"
Позбавтеся від непотрібних даних локалів - крок за кроком
Тепер ми знаємо всі необхідні деталі, щоб розпочати роботу з очищенням локальної інформації нашої системи:
- Відредагуйте файли локалів у
/var/lib/locales/supported.d/
та видаліть усі непотрібні локалі (одна мова на рядок)
- Створення та редагування
/etc/default/locale
(див. Приклад вище)
- Видалити всі згенеровані дані локалів:
rm -rfv /usr/lib/locale/*
- Повторно генеруйте нові локалі:
locale-gen
Це все! Перезавантажте машину, щоб зміни вступили в силу. Потім запустіть один або кілька прикладів команд локалі зверху, щоб переконатися, що результат є таким, як очікувалося.
~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~#
~# locale -a -v
locale: en_US.utf8 directory: /usr/lib/locale/en_US.utf8
-------------------------------------------------------------------------------
title | English locale for the USA
source | Free Software Foundation, Inc.
address | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
email | bug-glibc-locales@gnu.org
language | English
territory | USA
revision | 1.0
date | 2000-06-24
codeset | UTF-8
Існує пакет для Debian / Ubuntu , який може подбати про видаленні локалей і локалях пов'язаних файлів (наприклад , сторінки людини): localepurge
. Ви можете встановити / запустити його видачу:
sudo apt-get install localepurge
Після встановлення вам слід виконати таке:
dpkg --configure localepurge
щоб переконатися, що ваші мовні налаштування встановлені правильно.
щоб запустити його вручну після встановлення (хоча вам не потрібно, оскільки він повинен працювати після кожного dpkg
запуску автоматично), ви можете просто зробити:
sudo localepurge
Прочитайте сторінку man, перш ніж використовувати її. Якщо ви можете зробити свої речі без цього, можливо, безпечніше відпустити їх.
з цього форуму
ref:
1. LocaleConf в офіційній документації
2. Linux man page
3. Locale on wikipeadia
4. man localepurge