- bookworm-backports 4.26.0-1~bpo12+1
- testing 4.26.0-1
- unstable 4.26.0-1
locale(7) | Miscellaneous Information Manual | locale(7) |
NUME¶
locale - descrierea suportului multilingvistic
SINOPSIS¶
#include <locale.h>
DESCRIERE¶
O configurație regională este un set de reguli lingvistice și culturale. Acestea acoperă aspecte cum ar fi limba pentru mesaje, seturi de caractere diferite, convenții lexicografice și așa mai departe. Un program trebuie să fie capabil să determine configurația regională a sistemului și să acționeze în consecință pentru a fi portabil în diferite culturi.
Antetul <locale.h> declară tipuri de date, funcții și macro-uri care sunt utile în această sarcină.
Funcțiile pe care le declară sunt setlocale(3) pentru a defini configurația regională curentă și localeconv(3) pentru a obține informații despre formatarea numerelor.
Există diferite categorii de informații locale de care un program ar putea avea nevoie; acestea sunt declarate ca macro-uri. Utilizându-le ca prim argument al funcției setlocale(3), este posibil să definiți una dintre acestea la parametrul regional dorit:
- LC_ADDRESS (extensie GNU, începând cu glibc 2.2)
- Modifică configurările care descriu formatele (de exemplu, adresele poștale) utilizate pentru a descrie locațiile și elementele legate de geografie. Aplicațiile care au nevoie de aceste informații pot utiliza nl_langinfo(3) pentru a extrage elemente nestandardizate, cum ar fi _NL_ADDRESS_COUNTRY_NAME (numele țării, în limba localului) și _NL_ADDRESS_LANG_NAME (numele limbii, în limba configurației regionale), care returnează șiruri de caractere cum ar fi „Deutschland” și „Deutsch” (pentru parametrii regionali de limbă germană). Alte nume de elemente sunt enumerate în <langinfo.h>.
- LC_COLLATE
- Această categorie guvernează regulile de colaționare utilizate pentru sortare și expresii regulate, inclusiv clasele de echivalență a caracterelor și elementele de colaționare multi-caracter. Această categorie locală modifică comportamentul funcțiilor strcoll(3) și strxfrm(3), care sunt utilizate pentru a compara șiruri în alfabetul local. De exemplu, s ascuțit german, numit și „eszett” (ß) este sortat ca „ss”.
- LC_CTYPE
- Această categorie determină interpretarea secvențelor de octeți ca caractere (de exemplu, caractere cu un singur octet versus caractere cu mai multe octeți), clasificarea caracterelor (de exemplu, alfabetice sau cifre) și comportamentul claselor de caractere. În sistemele glibc, această categorie determină și regulile de transliterare a caracterelor pentru iconv(1) și iconv(3). Aceasta modifică comportamentul funcțiilor de tratare și clasificare a caracterelor, precum isupper(3) și toupper(3), și al funcțiilor de caractere multioctet, precum mblen(3) sau wctomb(3).
- LC_IDENTIFICATION (extensie GNU, începând cu glibc 2.2)
- Modifică regurile care se referă la metadatele pentru parametrii regionali. Aplicațiile care au nevoie de aceste informații pot utiliza nl_langinfo(3) pentru a extrage elemente nestandardizate, cum ar fi _NL_IDENTIFICATION_TITLE (titlul acestui document de configurație regională) și _NL_IDENTIFICATION_TERRITORY (teritoriul geografic căruia i se aplică acest document de configurație regională), care ar putea returna șiruri de caractere precum „English locale for the USA” și „USA”. Alte nume de elemente sunt enumerate în <langinfo.h>.
- LC_MONETARY
- Această categorie determină formatarea utilizată pentru valorile numerice monetare. Aceasta modifică informațiile returnate de localeconv(3), care descriu modul în care sunt imprimate de obicei numerele, cu detalii precum punctul zecimal versus virgula zecimală. Această informație este utilizată intern de funcția strfmon(3).
- LC_MESSAGES
- Această categorie afectează limba în care sunt afișate mesajele și modul în care arată un răspuns afirmativ sau negativ. Biblioteca GNU C conține funcțiile gettext(3), ngettext(3) și rpmatch(3) pentru a facilita utilizarea acestor informații. Familia de funcții GNU gettext se supune, de asemenea, variabilei de mediu LANGUAGE (care conține o listă de parametri regionali separați prin două puncte) dacă categoria este definită la un alt parametru regional valid decât "C". Această categorie afectează, de asemenea, comportamentul lui catopen(3).
- LC_MEASUREMENT (extensie GNU, începând cu glibc 2.2)
- Modifică configurările legate de sistemul de măsurare local (adică, unități metrice față de unități uzuale americane). Aplicațiile pot utiliza nl_langinfo(3) pentru a extrage elementul _NL_MEASUREMENT_MEASUREMENT nestandardizat, care returnează un indicator către un caracter care are valoarea 1 (metric) sau 2 (unități uzuale americane).
- LC_NAME (extensie GNU, începând cu glibc 2.2)
- Modifică configurările care descriu formatele utilizate pentru adresarea persoanelor. Aplicațiile care au nevoie de aceste informații pot utiliza nl_langinfo(3) pentru a prelua elemente non-standard, cum ar fi elementele _NL_NAME_NAME_MR (salutul general pentru bărbați) și _NL_NAME_NAME_MS (salutul general pentru femei), care returnează șiruri precum „Herr” și „Frau” (pentru configurațiile regionale de limbă germană). Alte nume de elemente sunt enumerate în <langinfo.h>.
- LC_NUMERIC
- Această categorie determină regulile de formatare utilizate pentru valorile numerice nemonetare -- de exemplu, separatorul de mii și caracterul zecimal (un punct în majoritatea țărilor vorbitoare de limba engleză, dar o virgulă în multe alte regiuni). Aceasta afectează funcții precum printf(3), scanf(3) și strtod(3). Aceste informații pot fi citite și cu funcția localeconv(3).
- LC_PAPER (extensie GNU, începând cu glibc 2.2)
- Modifică configurările referitoare la dimensiunile mărimii standard a hârtiei (de exemplu, US letter versus A4). Aplicațiile care au nevoie de dimensiuni le pot obține utilizând nl_langinfo(3) pentru a extrage elementele non-standard _NL_PAPER_WIDTH și _NL_PAPER_HEIGHT, care returnează valori int specificând dimensiunile în milimetri.
- LC_TELEPHONE (extensie GNU, începând cu glibc 2.2)
- Modifică configurările care descriu formatele care urmează să fie utilizate cu serviciile telefonice. Aplicațiile care au nevoie de aceste informații pot utiliza nl_langinfo(3) pentru a prelua elemente nestandardizate, cum ar fi _NL_TELEPHONE_INT_PREFIX (prefix internațional utilizat pentru apelarea numerelor în această configurație regională), care returnează un șir de caractere cum ar fi „40” (pentru România). Alte nume de elemente sunt enumerate în <langinfo.h>.
- LC_TIME
- Această categorie reglementează formatarea utilizată pentru valorile datei și orei. De exemplu, cea mai mare parte a Europei utilizează un ceas de 24 de ore față de ceasul de 12 ore utilizat în Statele Unite. Configurarea acestei categorii afectează comportamentul unor funcții precum strftime(3) și strptime(3).
- LC_ALL
- Toate cele de mai sus.
Dacă cel de-al doilea argument al funcției setlocale(3) este un șir gol, "", pentru configurația regională implicită, aceasta este determinată folosind următorii pași:
- (1)
- Dacă există o variabilă de mediu LC_ALL cu o valoare nenulă, se utilizează valoarea lui LC_ALL.
- (2)
- Dacă există o variabilă de mediu cu același nume ca una dintre categoriile de mai sus și nu este nulă, valoarea acesteia este utilizată pentru categoria respectivă.
- (3)
- Dacă există o variabilă de mediu LANG cu o valoare nenulă, se utilizează valoarea lui LANG.
Valorile privind formatarea numerică locală (conform configurației regionale) sunt disponibile într-o struct lconv returnată de funcția localeconv(3), care are următoarea declarație:
struct lconv {
/* Informații numerice (ne monetare) */
char *decimal_point; /* Caracterul zecimal */
char *thousands_sep; /* Separator pentru grupuri de cifre
la stânga caracterului zecimal */
char *grouping; /* Fiecare element este numărul de cifre
dintr-un grup; elementele cu indici mai mari
sunt mai la stânga. CHAR_MAX înseamnă că nu
se face nicio grupare suplimentară. Un element
cu valoarea 0 înseamnă că elementul anterior
este utilizat pentru toate grupurile din stânga. */
/* Câmpurile rămase sunt pentru informații monetare. */
char *int_curr_symbol; /* Primele trei caractere sunt un simbol
valutar din ISO 4217. Al patrulea
caracter este separatorul. Al cincilea
caracter este „\0”. */
char *currency_symbol; /* Simbolul monedei locale */
char *mon_decimal_point; /* Caracterul zecimal */
char *mon_thousands_sep; /* Precum thousands_sep de mai sus */
char *mon_grouping; /* Precum grouping de mai sus */
char *positive_sign; /* Semnul pentru valorile pozitive */
char *negative_sign; /* Semnul pentru valorile negative */
char int_frac_digits; /* Cifre fracționare internaționale */
char frac_digits; /* Cifre fracționare locale */
char p_cs_precedes; /* 1 dacă simbolul monedei precede o
valoare pozitivă, 0 dacă urmează */
char p_sep_by_space; /* 1 dacă un spațiu separă simbolul
monedei de o valoare pozitivă */
char n_cs_precedes; /* 1 dacă simbolul monedei precede o
valoare negativă, 0 dacă urmează */
char n_sep_by_space; /* 1 dacă un spațiu separă simbolul
monedei de o valoare negativă */
/* Poziții cu semn pozitiv și negativ:
0 Parantezele înconjoară cantitatea și simbolul monedei.
1 Semnul precede cantitatea și simbolul monedei.
2 Semnul urmează cantității și simbolului monedei.
3 Semnul precede imediat simbolul monedei (currency_symbol).
4 Semnul urmează imediat simbolului monedei. */
char p_sign_posn;
char n_sign_posn; };
Extensii POSIX.1-2008 la API-ul cobfigurației regionale „locale”¶
POSIX.1-2008 a standardizat o serie de extensii ale API-ului configurației regionale pentru parametrii acesteia, bazate pe implementări care au apărut pentru prima dată în glibc 2.3. Aceste extensii sunt concepute pentru a rezolva problema faptului că API-urile configurației regionale tradiționale nu se combină bine cu aplicațiile multi-fir și cu aplicațiile care trebuie să se descurce cu mai mulți parametrii regionali.
Extensiile iau forma unor noi funcții pentru crearea și manipularea obiectelor de parametri regionali (newlocale(3), freelocale(3), duplocale(3) și uselocale(3)) și diverse funcții noi de bibliotecă cu sufixul „_l” (de ex, toupper_l(3)) care extind API-urile tradiționale dependente de parametrii regionali (de exemplu, toupper(3)) pentru a permite specificarea unui obiect de parametru regional care ar trebui aplicat la executarea funcției.
MEDIU¶
Următoarea variabilă de mediu este utilizată de newlocale(3) și setlocale(3) și afectează astfel toate programele neprivilegiate ce se conformă configurațiilor regionale:
- LOCPATH
- O listă de nume de rute, separate prin două puncte (':'), care ar trebui să fie utilizate pentru a găsi date referitoare la parametri regionali. Dacă această variabilă este definită, sunt utilizate numai fișierele individuale de date referitoare la parametri regionali compilate din LOCPATH și ruta de date a parametrilor regionali implicită a sistemului; orice alte arhive referitoare la parametri regionali disponibile nu sunt utilizate (consultați localedef(1)). Fișierele individuale de date locale compilate sunt căutate în subdirectoare care depind de configurația regională utilizată în prezent. De exemplu, atunci când en_GB.UTF-8 este utilizată pentru o categorie, sunt căutate următoarele subdirectoare, în această ordine: en_GB.UTF-8, en_GB.utf8, en_GB, en.UTF-8, en.utf8 și en.
FIȘIERE¶
- /usr/lib/locale/locale-archive
- Locația implicită obișnuită a arhivei locale.
- /usr/lib/locale
- Ruta implicită obișnuită pentru fișierele de configurații regionale „locale” individuale compilate.
STANDARDE¶
POSIX.1-2001.
CONSULTAȚI ȘI¶
iconv(1), locale(1), localedef(1), catopen(3), gettext(3), iconv(3), localeconv(3), mbstowcs(3), newlocale(3), ngettext(3), nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strftime(3), strxfrm(3), uselocale(3), wcstombs(3), locale(5), charsets(7), unicode(7), utf-8(7)
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
15 iunie 2024 | Pagini de manual de Linux 6.9.1 |