locale(7) Miscellaneous Information Manual locale(7) NUME locale - descrierea suportului multilingvistic SINOPSIS #include DESCRIERE O configuraie regionala este un set de reguli lingvistice i culturale. Acestea acopera aspecte cum ar fi limba pentru mesaje, seturi de caractere diferite, convenii lexicografice i aa mai departe. Un program trebuie sa fie capabil sa determine configuraia regionala a sistemului i sa acioneze in consecina pentru a fi portabil in diferite culturi. Antetul declara tipuri de date, funcii i macro-uri care sunt utile in aceasta sarcina. Funciile pe care le declara sunt setlocale(3) pentru a defini configuraia regionala curenta i localeconv(3) pentru a obine informaii despre formatarea numerelor. Exista diferite categorii de informaii locale de care un program ar putea avea nevoie; acestea sunt declarate ca macro-uri. Utilizandu-le ca prim argument al funciei setlocale(3), este posibil sa definii una dintre acestea la parametrul regional dorit: LC_ADDRESS (extensie GNU, incepand cu glibc 2.2) Modifica configurarile care descriu formatele (de exemplu, adresele potale) utilizate pentru a descrie locaiile i elementele legate de geografie. Aplicaiile care au nevoie de aceste informaii pot utiliza nl_langinfo(3) pentru a extrage elemente nestandardizate, cum ar fi _NL_ADDRESS_COUNTRY_NAME (numele arii, in limba localului) i _NL_ADDRESS_LANG_NAME (numele limbii, in limba configuraiei regionale), care returneaza iruri de caractere cum ar fi ,,Deutschland" i ,,Deutsch" (pentru parametrii regionali de limba germana). Alte nume de elemente sunt enumerate in . LC_COLLATE Aceasta categorie guverneaza regulile de colaionare utilizate pentru sortare i expresii regulate, inclusiv clasele de echivalena a caracterelor i elementele de colaionare multi-caracter. Aceasta categorie locala modifica comportamentul funciilor strcoll(3) i strxfrm(3), care sunt utilizate pentru a compara iruri in alfabetul local. De exemplu, s ascuit german, numit i ,,eszett" (ss) este sortat ca ,,ss". LC_CTYPE Aceasta categorie determina interpretarea secvenelor de octei ca caractere (de exemplu, caractere cu un singur octet versus caractere cu mai multe octei), clasificarea caracterelor (de exemplu, alfabetice sau cifre) i comportamentul claselor de caractere. In sistemele glibc, aceasta categorie determina i regulile de transliterare a caracterelor pentru iconv(1) i iconv(3). Aceasta modifica comportamentul funciilor de tratare i clasificare a caracterelor, precum isupper(3) i toupper(3), i al funciilor de caractere multioctet, precum mblen(3) sau wctomb(3). LC_IDENTIFICATION (extensie GNU, incepand cu glibc 2.2) Modifica regurile care se refera la metadatele pentru parametrii regionali. Aplicaiile care au nevoie de aceste informaii pot utiliza nl_langinfo(3) pentru a extrage elemente nestandardizate, cum ar fi _NL_IDENTIFICATION_TITLE (titlul acestui document de configuraie regionala) i _NL_IDENTIFICATION_TERRITORY (teritoriul geografic caruia i se aplica acest document de configuraie regionala), care ar putea returna iruri de caractere precum ,,English locale for the USA" i ,,USA". Alte nume de elemente sunt enumerate in . LC_MONETARY Aceasta categorie determina formatarea utilizata pentru valorile numerice monetare. Aceasta modifica informaiile returnate de localeconv(3), care descriu modul in care sunt imprimate de obicei numerele, cu detalii precum punctul zecimal versus virgula zecimala. Aceasta informaie este utilizata intern de funcia strfmon(3). LC_MESSAGES Aceasta categorie afecteaza limba in care sunt afiate mesajele i modul in care arata un raspuns afirmativ sau negativ. Biblioteca GNU C conine funciile gettext(3), ngettext(3) i rpmatch(3) pentru a facilita utilizarea acestor informaii. Familia de funcii GNU gettext se supune, de asemenea, variabilei de mediu LANGUAGE (care conine o lista de parametri regionali separai prin doua puncte) daca categoria este definita la un alt parametru regional valid decat "C". Aceasta categorie afecteaza, de asemenea, comportamentul lui catopen(3). LC_MEASUREMENT (extensie GNU, incepand cu glibc 2.2) Modifica configurarile legate de sistemul de masurare local (adica, unitai metrice faa de unitai uzuale americane). Aplicaiile pot utiliza nl_langinfo(3) pentru a extrage elementul _NL_MEASUREMENT_MEASUREMENT nestandardizat, care returneaza un indicator catre un caracter care are valoarea 1 (metric) sau 2 (unitai uzuale americane). LC_NAME (extensie GNU, incepand cu glibc 2.2) Modifica configurarile care descriu formatele utilizate pentru adresarea persoanelor. Aplicaiile care au nevoie de aceste informaii pot utiliza nl_langinfo(3) pentru a prelua elemente non-standard, cum ar fi elementele _NL_NAME_NAME_MR (salutul general pentru barbai) i _NL_NAME_NAME_MS (salutul general pentru femei), care returneaza iruri precum ,,Herr" i ,,Frau" (pentru configuraiile regionale de limba germana). Alte nume de elemente sunt enumerate in . LC_NUMERIC Aceasta categorie determina regulile de formatare utilizate pentru valorile numerice nemonetare -- de exemplu, separatorul de mii i caracterul zecimal (un punct in majoritatea arilor vorbitoare de limba engleza, dar o virgula in multe alte regiuni). Aceasta afecteaza funcii precum printf(3), scanf(3) i strtod(3). Aceste informaii pot fi citite i cu funcia localeconv(3). LC_PAPER (extensie GNU, incepand cu glibc 2.2) Modifica configurarile referitoare la dimensiunile marimii standard a hartiei (de exemplu, US letter versus A4). Aplicaiile care au nevoie de dimensiuni le pot obine utilizand nl_langinfo(3) pentru a extrage elementele non-standard _NL_PAPER_WIDTH i _NL_PAPER_HEIGHT, care returneaza valori int specificand dimensiunile in milimetri. LC_TELEPHONE (extensie GNU, incepand cu glibc 2.2) Modifica configurarile care descriu formatele care urmeaza sa fie utilizate cu serviciile telefonice. Aplicaiile care au nevoie de aceste informaii pot utiliza nl_langinfo(3) pentru a prelua elemente nestandardizate, cum ar fi _NL_TELEPHONE_INT_PREFIX (prefix internaional utilizat pentru apelarea numerelor in aceasta configuraie regionala), care returneaza un ir de caractere cum ar fi ,,40" (pentru Romania). Alte nume de elemente sunt enumerate in . LC_TIME Aceasta categorie reglementeaza formatarea utilizata pentru valorile datei i orei. De exemplu, cea mai mare parte a Europei utilizeaza un ceas de 24 de ore faa de ceasul de 12 ore utilizat in Statele Unite. Configurarea acestei categorii afecteaza comportamentul unor funcii precum strftime(3) i strptime(3). LC_ALL Toate cele de mai sus. Daca cel de-al doilea argument al funciei setlocale(3) este un ir gol, "", pentru configuraia regionala implicita, aceasta este determinata folosind urmatorii pai: (1) Daca exista o variabila de mediu LC_ALL cu o valoare nenula, se utilizeaza valoarea lui LC_ALL. (2) Daca exista o variabila de mediu cu acelai nume ca una dintre categoriile de mai sus i nu este nula, valoarea acesteia este utilizata pentru categoria respectiva. (3) Daca exista o variabila de mediu LANG cu o valoare nenula, se utilizeaza valoarea lui LANG. Valorile privind formatarea numerica locala (conform configuraiei regionale) sunt disponibile intr-o struct lconv returnata de funcia localeconv(3), care are urmatoarea declaraie: struct lconv { /* Informaii numerice (ne monetare) */ char *decimal_point; /* Caracterul zecimal */ char *thousands_sep; /* Separator pentru grupuri de cifre la stanga caracterului zecimal */ char *grouping; /* Fiecare element este numarul de cifre dintr-un grup; elementele cu indici mai mari sunt mai la stanga. CHAR_MAX inseamna ca nu se face nicio grupare suplimentara. Un element cu valoarea 0 inseamna ca elementul anterior este utilizat pentru toate grupurile din stanga. */ /* Campurile ramase sunt pentru informaii 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 fracionare internaionale */ char frac_digits; /* Cifre fracionare locale */ char p_cs_precedes; /* 1 daca simbolul monedei precede o valoare pozitiva, 0 daca urmeaza */ char p_sep_by_space; /* 1 daca un spaiu separa simbolul monedei de o valoare pozitiva */ char n_cs_precedes; /* 1 daca simbolul monedei precede o valoare negativa, 0 daca urmeaza */ char n_sep_by_space; /* 1 daca un spaiu separa simbolul monedei de o valoare negativa */ /* Poziii cu semn pozitiv i negativ: 0 Parantezele inconjoara cantitatea i simbolul monedei. 1 Semnul precede cantitatea i simbolul monedei. 2 Semnul urmeaza cantitaii i simbolului monedei. 3 Semnul precede imediat simbolul monedei (currency_symbol). 4 Semnul urmeaza imediat simbolului monedei. */ char p_sign_posn; char n_sign_posn; }; Extensii POSIX.1-2008 la API-ul cobfiguraiei regionale ,,locale" POSIX.1-2008 a standardizat o serie de extensii ale API-ului configuraiei regionale pentru parametrii acesteia, bazate pe implementari care au aparut pentru prima data in glibc 2.3. Aceste extensii sunt concepute pentru a rezolva problema faptului ca API-urile configuraiei regionale tradiionale nu se combina bine cu aplicaiile multi-fir i cu aplicaiile care trebuie sa se descurce cu mai muli parametrii regionali. Extensiile iau forma unor noi funcii pentru crearea i manipularea obiectelor de parametri regionali (newlocale(3), freelocale(3), duplocale(3) i uselocale(3)) i diverse funcii noi de biblioteca cu sufixul ,,_l" (de ex, toupper_l(3)) care extind API-urile tradiionale dependente de parametrii regionali (de exemplu, toupper(3)) pentru a permite specificarea unui obiect de parametru regional care ar trebui aplicat la executarea funciei. MEDIU Urmatoarea variabila de mediu este utilizata de newlocale(3) i setlocale(3) i afecteaza astfel toate programele neprivilegiate ce se conforma configuraiilor regionale: LOCPATH O lista de nume de rute, separate prin doua puncte (':'), care ar trebui sa fie utilizate pentru a gasi date referitoare la parametri regionali. Daca aceasta variabila este definita, sunt utilizate numai fiierele individuale de date referitoare la parametri regionali compilate din LOCPATH i ruta de date a parametrilor regionali implicita a sistemului; orice alte arhive referitoare la parametri regionali disponibile nu sunt utilizate (consultai localedef(1)). Fiierele individuale de date locale compilate sunt cautate in subdirectoare care depind de configuraia regionala utilizata in prezent. De exemplu, atunci cand en_GB.UTF-8 este utilizata pentru o categorie, sunt cautate urmatoarele subdirectoare, in aceasta ordine: en_GB.UTF-8, en_GB.utf8, en_GB, en.UTF-8, en.utf8 i en. FIIERE /usr/lib/locale/locale-archive Locaia implicita obinuita a arhivei locale. /usr/lib/locale Ruta implicita obinuita pentru fiierele de configuraii regionale ,,locale" individuale compilate. STANDARDE POSIX.1-2001. CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.12 15 iunie 2024 locale(7)