Езикови и регионални настройки 


1.       Проверка на текущите настройки

2.       Извеждане на инсталираните езици

3.       Промяна на настройките

4.       При отсъствие на езикови настройки

5.      Конфигуриране на клавиатурата


       

Пакетът locale  (инсталира се по подразбиране) включва езиковите настройки и културните правила - език на съобщенията, набори от символи, начин на представяне на числа, дати, лексикографически правила ...  . Адаптирането на операционната ситема към конкретните езикови настройки се нарича localization, често съкращаван като l10n (10 букви между l и n).

Всяка програма трябва да отчита тези настройки за коректното си пренасяне в различни културни среди. Създаването на такъв софтуер се нарича internationalization съкращаван аналогично като i18n .  Често използвано съкращение е l18n , което представлява съчетаване на l10n и i18n ( localization и  internationalization ).

Настройките за l10n се задават чрез променливи на средата, които могат да се задават експлицитно или да се оствят по подразбиране в зависимост от общите езикови настройки.


1.        Проверка на текущите настройки (променливите на средата за езикови настройки)

При инсталирането на linux се се избират и инсталират съответен език и клавиатура. Те могат да бъдат проверени с команда localectl (Control the system locale and keyboard layout settings) а само езикът може да бъде изведен с проверка на променливата на средата LANG.  

$ echo $LANG
en_US.UTF-8

$ localectl
     System Locale: LANG=en_US.utf8
                  LC_NUMERIC=bg_BG.UTF-8
                  LC_TIME=bg_BG.UTF-8
                  LC_MONETARY=bg_BG.UTF-8
                  LC_PAPER=bg_BG.UTF-8
                  LC_NAME=bg_BG.UTF-8
                  LC_ADDRESS=bg_BG.UTF-8
                  LC_TELEPHONE=bg_BG.UTF-8
                  LC_MEASUREMENT=bg_BG.UTF-8
                  LC_IDENTIFICATION=bg_BG.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

Променливите могат да се различават за всеки потребител. Командата locale се използва за да се изведе списък с  всички  променливите за конкретния потребител:

$  locale
LANG=en_US.UTF-8
LANGUAGE=
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=
$

Променливите LC-* задават следното:

LANG
Provides default value for LC_* variables that have not been explicitly set.
LC_ADDRESS
How addresses are formatted (country first or last, where zip code goes etc.).
LC_ALL
Overrides individual LC_* settings: if LC_ALL is set, none of the below have any effect.
LC_COLLATE
How strings (file names...) are alphabetically sorted. Using the "C" or "POSIX" locale here results in a strcmp()-like sort order, which may be preferable to language-specific locales.
LC_CTYPE
How characters are classified as letters, numbers etc. This determines things like how characters are converted between upper and lower case.
LC_IDENTIFICATION
Metadata about the locale information.
LC_MEASUREMENT
What units of measurement are used (feet, meters, pounds, kilos etc.).
LC_MESSAGES
What language should be used for system messages.
LC_MONETARY
What currency you use, its name, and its symbol.
LC_NAME
How names are represented (surname first or last, etc.).
LC_NUMERIC
How you format your numbers. For example, in many countries a period (.) is used as a decimal separator, while others use a comma (,).
LC_PAPER
Paper sizes: 11 x 17 inches, A4, etc.
LC_TELEPHONE
What your telephone numbers look like.
LC_TIME
How your time and date are formatted. Use for example "en_DK.UTF-8" to get a 24-hour-clock in some programs.

Всяка от тези променливи може да бъде промена за текущия процес - CLI  (промяната се губи при затваряне на това CLI). Например ако LC_TIME=bg_BG.UTF-8

$date
 9.03.2022 (ср) 11:30:37 EET

Промяна на стойността на променливата:

$LC_TIME=en_US.utf8

При подаване отново на команда:

$date
Wed 09 Mar 2022 11:33:45 AM EET

За да остане промяната постоянна трябва да се подаде команда  (променя файла /etc/default/locale).

$ sudo update-locale

        2.        Извеждане на инсталираните езици


$  locale -a
bg_BG.utf8
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
$

Ако някой език не се появява в списъка, той може допълнително да бъде инсталиран. 

$  sudo locale-gen fr_FR.UTF-8
[sudo] password for imom:
Generating locales (this might take a while)...
  fr_FR.UTF-8... done
Generation complete.
$

Проверка отново на инсталираните езици: 

$ locale -a
bg_BG.utf8
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
fr_FR.utf8
POSIX
$

 

·        Списъкът на вички поддържани езици може да се намери във фала  /usr/share/i18n/SUPPORTED

$ cat /usr/share/i18n/SUPPORTED | less

 

        3.        Промяна на locale настройките 

Най лесно това може да се извърши ползвайки менюто Setting -> Region & Languages от графичния интерфейс.


        4.        При отсъствие на езикови настройки

Ако в системата няма създадени езикови настройки тогава файлът /etc/default/locale не съществува.  За да бъдат въведени настройките се процедира по следния начин:

1. Да се генерират нови настройки например:


$sudo locale-gen fr_FR.UTF-8

2. Задаване на езиковите настройки - това генерира файла /etc/default/locale.

$sudo update-locale 

3. Рестартиране на системата и стартиране на нов прозорец. 

5.        Конфигуриране на клавиатурата


Най-лесният подход  е да се използват менютата Setting -> Region & Languages и Setting -> Keyboard  от графичния интерфейс.

1. Setting -> Region & Languages 

     1.1  Manage installed Langages  - инсталиране на търсения език

     1.2  Formats -  изберете регионалните настройки

2. Setting ->Keyboards

     2.1 Input Sources - от инсталираните езици се избират клавиатури

     2.2  Input Source Switching - Use the same source for all windows

Превключване на клавиатурата -  в графичния интерфейс горе в дясно

или с комбинацията :   Super key (Windows key) and Space together.     Последната комбинация може да се ползва и при работа с отдалечен терминал  в конзолен режим.