Что такое локаль в linux

Обновлено: 05.07.2024

Команда locale отображает информацию о текущем языковом стандарте или всех языковых стандартах в стандартном выводе. При вызове без аргументов языковой стандарт отображает текущие настройки языкового стандарта для каждой категории языкового стандарта (см. Языковой стандарт (5)) на основе настроек переменных среды, которые управляют языковым стандартом (см. Языковой стандарт (7)).

Как изменить язык в Linux?

Чтобы изменить значение уже установленной локали, мы можем отредактировать файл. bashrc профиль пользователя, которому нужен новый языковой стандарт. $ locale LANG = en_IN. utf8 LANGUAGE = en_US LC_CTYPE = ”en_IN.

Что такое языковой стандарт системы?

Языковой стандарт системы определяет язык, используемый при отображении текста в программах, не поддерживающих Unicode. Изменение языкового стандарта системы не повлияет на язык меню и диалоговых окон Windows или других программ, использующих Unicode.

Что такое настройка локали?

В вычислениях языковой стандарт - это набор параметров, которые определяют язык пользователя, регион и любые специальные варианты предпочтений, которые пользователь хочет видеть в своем пользовательском интерфейсе. Обычно идентификатор локали состоит как минимум из кода языка и кода страны / региона.

Что такое файл локали?

Файл локали - это. json, который содержит набор переводов текстовых строк, используемых в файле шаблона темы. Для каждого языка, доступного в теме, используется отдельный файл локали. Файлы локали хранятся в разделе «Локали» редактора темы.

Что такое Lc_all?

LC_ALL - это переменная среды, которая отменяет все остальные настройки локализации (кроме $ LANGUAGE в некоторых случаях).

Какой регион?

1: место или местность, особенно если рассматривать их в связи с определенным событием или характеристикой, выбрали тропический остров в качестве места для своей свадьбы. 2: место, место действия, место действия рассказа.

Как проверить локаль моей системы?

Найти текущий языковой стандарт системы в Windows 10

  1. Открыть настройки.
  2. Перейдите в раздел "Время и язык".
  3. Слева нажмите "Язык".
  4. На правой панели щелкните ссылку Параметры административного языка.
  5. В диалоговом окне «Регион» перейдите на вкладку «Администрирование».
  6. Вы найдете текущий языковой стандарт системы в разделе «Язык для программ, не поддерживающих Юникод».

В чем разница между локальным и локальным?

Когда вы видите слово «местный», подумайте о месте «происхождения». Другими словами, если что-то является локальным, это означает возникновение или возникновение оттуда. Как в .. С другой стороны, локаль указывает место, среду или обстановку, где что-то происходит.

Что такое локаль в Java?

Объект класса Java Locale представляет конкретный географический, культурный или политический регион. Это механизм для идентификации объектов, а не контейнер для самих объектов. Логически объект Locale состоит из таких полей, как языки, сценарий, страна, вариант, расширения.

Что такое Lc_messages?

Что такое формат даты в локали?

Класс DateFormat используется для форматирования дат в виде строк в соответствии с определенной локалью. В разных странах действуют разные стандарты форматирования дат. В Дании даты записываются в формате дд-мм-гггг, но в США даты форматируются в формате мм-дд-гггг.

Что такое locale en us?

Что такое локаль Android?

↳ java.util.Locale. Объект Locale представляет определенный географический, политический или культурный регион. Операция, для выполнения задачи которой требуется языковой стандарт, называется зависящей от языкового стандарта и использует языковой стандарт для адаптации информации для пользователя.

Что означает Lang C?

Что такое локаль в общении?

Локаль - это небольшая территория, например место, где что-то происходит или где действие книги или фильма происходит.

Locales are used by glibc and other locale-aware programs or libraries for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards.

Contents

Generating locales

Locale names are typically of the form language[_territory][.codeset][@modifier] , where language is an ISO 639 language code, territory is an ISO 3166 country code, and codeset is a character set or encoding identifier like ISO-8859-1 or UTF-8. See setlocale(3) .

For a list of enabled locales, run:

For example, uncomment en_US.UTF-8 UTF-8 for American-English:

Save the file, and generate the locale:

  • locale-gen also runs with every update of glibc . [1]
  • UTF-8 is recommended over other character sets. [2]

Setting the locale

To display the currently set locale and its related environmental settings, type:

The locale to be used, chosen among the previously generated ones, is set in locale.conf files. Each of these files must contain a new-line separated list of environment variable assignments, having the same format as output by locale.

To list available locales which have been previously generated, run:

Setting the system locale

To set the system locale, write the LANG variable to /etc/locale.conf , where en_US.UTF-8 belongs to the first column of an uncommented entry in /etc/locale.gen :

Overriding system locale per user session

The system-wide locale can be overridden in each user session by creating or editing $XDG_CONFIG_HOME/locale.conf (usually

The precedence of these locale.conf files is defined in /etc/profile.d/locale.sh .

  • This can also allow keeping the logs in /var/log/ in English while using the local language in the user environment.
  • You can create a /etc/skel/.config/locale.conf file so that any new users added using useradd and the -m option will have

Make locale changes immediate

Once system and user locale.conf files have been created or edited, their new values will take effect for new sessions at login. To have the current environment use the new settings unset LANG and source /etc/profile.d/locale.sh :

Note: The LANG variable has to be unset first, otherwise locale.sh will not update the values from locale.conf . Only new and changed variables will be updated; variables removed from locale.conf will still be set in the session.

Other uses

Locale variables can also be defined with the standard methods as explained in Environment variables.

For example, in order to test or debug a particular application during development, it could be launched with something like:

Similarly, to set the locale for all processes run from the current shell (for example, during system installation):

Variables

locale.conf files support the following environment variables.

Full meaning of the above LC_* variables can be found on manpage locale(7) , whereas details of their definition are described on locale(5) .

Note: Programs follow the priority order when looking up locale dependent values.

LANG: default locale

The locale set for this variable will be used for all the LC_* variables that are not explicitly set.

Tip: Assume that you are an English user in Spain, and you want your programs to handle numbers and dates according to Spanish conventions, and only the messages should be in English. Then you could set the LANG variable to es_ES.UTF-8 and the LC_MESSAGES (user interface for message translation) variable to en_US.UTF-8 .

LANGUAGE: fallback locales

Programs which use gettext for translations respect the LANGUAGE option in addition to the usual variables. This allows users to specify a list of locales that will be used in that order. If a translation for the preferred locale is unavailable, another from a similar locale will be used instead of the default. For example, an Australian user might want to fall back to British rather than US spelling:

LC_TIME: date and time format

If LC_TIME is set to en_US.UTF-8 , for example, the date format will be "MM/DD/YYYY". If wanting to use the the ISO 8601 date format of "YYYY-MM-DD" use:

glibc 2.29 fixed a bug, en_US.UTF-8 started showing in 12-hour format, as was intended. If wanting to use 24-hour format, use LC_TIME=en_GB.UTF-8 .

Note: Programs do not necessarily respect this variable to format the date. For example, date(1) uses its own parameters to do so, and Firefox stopped honouring LC_TIME with versions 57 to 84 (Bug 1429578).

LC_COLLATE: collation

This variable governs the collation rules used for sorting and regular expressions.

Setting the value to C can for example make the ls command sort dotfiles first, followed by uppercase and lowercase filenames:

To get around potential issues, Arch used to set LC_COLLATE=C in /etc/profile , but this method is now deprecated.

LC_ALL: troubleshooting

The locale set for this variable will always override LANG and all the other LC_* variables, whether they are set or not.

LC_ALL is the only LC_* variable which cannot be set in locale.conf files: it is meant to be used only for testing or troubleshooting purposes, for example in /etc/profile .

Troubleshooting

My terminal does not support UTF-8

The following lists some (not all) terminals that support UTF-8:

  • gnustep-terminal
  • konsole - Run with the argument -u8 or configure resource xterm*utf8: 2 .

Gnome-terminal or rxvt-unicode

You need to launch these applications from a UTF-8 locale or they will drop UTF-8 support. Enable the en_US.UTF-8 locale (or your local UTF-8 alternative) per the instructions above and set it as the default locale, then reboot.

My system is still using wrong language

It is possible that the environment variables are redefined in other files than locale.conf , for example

If you are using a desktop environment, such as GNOME, its language settings may be overriding the settings in locale.conf .

KDE Plasma also allows to change the UI's language through the system settings. If the desktop environment is still using the default language after the modification, deleting the file at

/.config/plasma-locale-settings.sh ) should resolve the issue.

LightDM will automatically use accountsservice to set a user's locale if it is installed. Otherwise, LightDM stores the user session configuration in

/.dmrc . It is possible that an unwanted locale setting is retrieved from there as well.

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

Для тех, кому лень читать всю статью до конца — чаще всего для локализации консоли достаточно повторно сконфигурировать пакет locales :

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

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

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

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

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

Есть только системная локаль C.UTF-8 , которая присутствует всегда. А нам надо добавить еще две локали — en_US.UTF-8 и ru_RU.UTF-8 .

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

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

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

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

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

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

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

Часть локалей размещена в архиве /usr/lib/locale/locale-archive , а часть — в директориях внутри /usr/lib/locale/ .

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

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

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

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

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

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

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



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

После установки (генерации) локали, она помещается в архив /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 без аргументов или перезагрузить систему.

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_NUMERIC влияет на то, какой разделитель будет у десятичной части числа: точка как в 1.5 или запятая как в 1,5

Данные хранятся в

i18n означает internationalization

aa_DJ de_LU fr_LU mhr_RU sr_RS@latin aa_ER de_LU@euro fr_LU@euro mi_NZ ss_ZA aa_ER@saaho doi_IN fur_IT mk_MK st_ZA aa_ET dv_MV fy_DE ml_IN sv_FI af_ZA dz_BT fy_NL mni_IN sv_FI@euro am_ET el_CY ga_IE mn_MN sv_SE an_ES el_GR ga_IE@euro mr_IN sw_KE ar_AE el_GR@euro gd_GB ms_MY sw_TZ ar_BH en_AG gez_ER mt_MT szl_PL ar_DZ en_AU gez_ER@abegede my_MM ta_IN ar_EG en_BW gez_ET nan_TW@latin ta_LK ar_IN en_CA gez_ET@abegede nb_NO te_IN ar_IQ en_DK gl_ES nds_DE tg_TJ ar_JO en_GB gl_ES@euro nds_NL th_TH ar_KW en_HK gu_IN ne_NP ti_ER ar_LB en_IE gv_GB nhn_MX ti_ET ar_LY en_IE@euro ha_NG niu_NU tig_ER ar_MA en_IN he_IL niu_NZ tk_TM ar_OM en_NG hi_IN nl_AW tl_PH ar_QA en_NZ hne_IN nl_BE tn_ZA ar_SA en_PH hr_HR nl_BE@euro translit_circle ar_SD en_SG hsb_DE nl_NL translit_cjk_compat ar_SY en_US ht_HT nl_NL@euro translit_cjk_variants ar_TN en_ZA hu_HU nn_NO translit_combining ar_YE en_ZM hy_AM nr_ZA translit_compat as_IN en_ZW i18n nso_ZA translit_font ast_ES es_AR ia_FR oc_FR translit_fraction ayc_PE es_BO id_ID om_ET translit_hangul az_AZ es_CL ig_NG om_KE translit_narrow be_BY es_CO ik_CA or_IN translit_neutral be_BY@latin es_CR is_IS os_RU translit_small bem_ZM es_CU iso14651_t1 pa_IN translit_wide ber_DZ es_DO iso14651_t1_common pap_AN tr_CY ber_MA es_EC iso14651_t1_pinyin pa_PK tr_TR bg_BG es_ES it_CH pl_PL ts_ZA bho_IN es_ES@euro it_IT POSIX tt_RU bn_BD es_GT it_IT@euro ps_AF tt_RU@iqtelif bn_IN es_HN iu_CA pt_BR ug_CN bo_CN es_MX iw_IL pt_PT uk_UA bo_IN es_NI ja_JP pt_PT@euro unm_US br_FR es_PA ka_GE ro_RO ur_IN br_FR@euro es_PE kk_KZ ru_RU ur_PK brx_IN es_PR kl_GL ru_UA uz_UZ bs_BA es_PY km_KH rw_RW uz_UZ@cyrillic byn_ER es_SV kn_IN sa_IN ve_ZA ca_AD es_US kok_IN sat_IN vi_VN ca_ES es_UY ko_KR sc_IT wa_BE ca_ES@euro es_VE ks_IN sd_IN wa_BE@euro ca_FR et_EE ks_IN@devanagari sd_IN@devanagari wae_CH ca_IT eu_ES ku_TR se_NO wal_ET crh_UA eu_ES@euro kw_GB shs_CA wo_SN csb_PL fa_IR ky_KG sid_ET xh_ZA cs_CZ ff_SN lb_LU si_LK yi_US cv_RU fi_FI lg_UG sk_SK yo_NG cy_GB fi_FI@euro li_BE sl_SI yue_HK da_DK fil_PH lij_IT so_DJ zh_CN de_AT fo_FO li_NL so_ET zh_HK de_AT@euro fr_BE lo_LA so_KE zh_SG de_BE fr_BE@euro lt_LT so_SO zh_TW de_BE@euro fr_CA lv_LV sq_AL zu_ZA de_CH fr_CH mag_IN sq_MK de_DE fr_FR mai_IN sr_ME de_DE@euro fr_FR@euro mg_MG sr_RS

Чтобы изменить настройки локали можно внести изменения в соответствующий файл

escape_char / comment_char % % Locale for English locale in the USA % Contributed by Ulrich Drepper <drepper@redhat.com>, 2000 LC_IDENTIFICATION title "English locale for the USA" source "Free Software Foundation, Inc." address "http:////www.gnu.org//software//libc//" contact "" email "bug-glibc-locales@gnu.org" tel "" fax "" language "English" territory "USA" revision "1.0" date "2000-06-24" % category "en_US:2000";LC_IDENTIFICATION category "en_US:2000";LC_CTYPE category "en_US:2000";LC_COLLATE category "en_US:2000";LC_TIME category "en_US:2000";LC_NUMERIC category "en_US:2000";LC_MONETARY category "en_US:2000";LC_MESSAGES category "en_US:2000";LC_PAPER category "en_US:2000";LC_NAME category "en_US:2000";LC_ADDRESS category "en_US:2000";LC_TELEPHONE END LC_IDENTIFICATION LC_CTYPE copy "en_GB" …

Тем не менее предпочтительным вариантом внесения изменений счиатеся работа через localectl

Читайте также: