Alegerea Tag-ului de Limba

Cititorii vizati: coderi XHTML/HTML (care folosesc editoare sau scripturi), dezvoltatori de script (PHP, JSP, etc.), coderi CSS , dezvoltatori schema (DTDs, XML Schema, RelaxNG, etc.), dezvoltatori XSLT , manageri de proiecte Web, si oricine are nevoie de calauzire in construirea de taguri de limba.

Nota: Au fost efectuate modificari asupra versiunii originale in Engleza dupa ce a fost tradus. Vezi istoricul schimbarii.

Intrebare

Ce tag de limba este potrivit pentru mine? Cum aleg tagul de limba si alte subtaguri?

Introducere

In documentele HTML si XML tagul de limba este folosit pentru indicarea limbii continutului.

Un tag de limba este compus din unul sau mai multe subtaguri separate prin cratime. Subtagurile pot fi de diferite tipuri.

BCP vine de la 'Best Current Practice' (cea mai buna practica actuala), si este un nume persistent pentru o serie de RFC (request for comment) a caror numere se schimba cand sunt updatate. Ultimul RFC ce descrie sintaxa tagului de limba este RFC 5646, Taguri pentru Identificarea Limbilor, si invecheste mai vechile RFC-uri 4646 3066 si 1766.

Sintaxa tagului de limba este definit de IETF's BCP 47. In trecut, era nevoie sa consulti o lista de coduri in diferite standarde ISO pentru a putea gasi subtagurile corecte, dar acum trebuie doar sa consulti Registrul pentru Subtaguri de Limba IANA. Vom descrie noul registru mai jos.

Acest articol va sfatuieste cum sa alegi componentele tag-ului de limba. Pentru o introducere a conceptului definit in BCP 47, vezi Tag-uri de limba in HTML si XML.

Addison Phillips si Mark Davis, autorii BCP 47, au oferit indrumare in timpul conceperii acestui articol.

Raspuns

Accesarea registrului de subtag

Toate subtagurile de care o sa ai nevoie pentru a crea un tag de limba se gasesc intr-un singur loc, Registrul de subtaguri de limba IANA. Registrul este un fisies text lung ce contine aproape 8000 de inregistrari.

Informatiile de pe aceasta pagina ofera indrumarea necesara pentru mai toate persoanele care vor sa utilizeze taguri de limba. In margine exista legaturi pentru sectiunile relevante ale BCP 47 pentru utilizatorii care vor sa citeasca textul intreg al specificatiei.

De asemena, unele medii sau sisteme pot dicta unele alegeri diferite de ce te-ai fi astepta in mod normal. De exemplu, in Java trebuie sa folosesti iw (invechit in BCP47) in loc de he (recomandat in BCP47).

Primul (si, de cele mai multe ori, singurul) subtag dintr-un tag de limba desemneaza intotdeauna limba. In BCP 47 este cunoscut ca subtag primar de limba. Vom folosi acest termen in acest document pentru a face referire la subtagul ce reprezinta limba, pentru a se distinge de 'tagul de limba', care se refera la intreaga structura.

Pentru a gasi subtagul primar de limba, cauta in pagina numele limbii respective. De exemplu, daca vrei sa etichetezi ceva in Limba Franceza, cautand 'French' in registru vei gasi o inregistrare care arata astfel:

%%
Type: language
Subtag: fr
Description: French
Added: 2005-10-16
Suppress-Script: Latn
%%

Cautare ta se va potrivi cu campul Descriere. Verifica daca tipul acestei inregistrari este de limba. Trebuie sa te uiti la valoarea din campul Subtag, de exemplu fr.

Restul articolului ofera informatii despre alegerea subtagului primar de limba si, unde este nevoie, alte tipuri de subtaguri. Nu toate instructiunile legate de crearea tagului de limba sunt directe. In unele circumstante vei fi nevoit sa alegi alte modalitati de realizare.

Exista unelte care ofera un ajutor suplimentar pentru cautarea in registru, cum ar fi Language Subtag Lookup.

Decizia 1: Subtagul primar de limba

Trebuie sa incepi intotdeauna prin alegerea subtagului primar de limba acesta fiind, de multe ori, singurul lucru care trebuie sa il faci pentru tagul de limba.

Citeste mai multe in specificatiile BCP 47:

2.2.1 Subtagul primar de limba

4.1 Alegerea tagului de limba

Trebuie sa tii minte regula de aur care zice sa pastrezi tagul de limba cat se poate de scurt. Adauga alte subtaguri doar daca sunt nevoite sa distingi limba de altceva incontextul continutului.

Cand cauti un subtag primar de limba, trebuie sa ai grija la unele lucruri.

In trecut, exista mai multe coduri pentru o limba - putrea fi un cod de 2 litere si unul sau doua coduri de 3 litere. Aceasta ambiguitate este rezolvata de Registrul subtagurilor IANA: este afisat un singur cod per limba. (Daca exista un cod de 2 litere acela va fi afisat, daca nu va fi afisat cel de 3 litere). Administratorii registrului sunt la curent cu tot ce se intampla in lumea ISO si coordoneaza evolutia registrului.

Decizia 2: Subtaguri extinse de limba

Specificatia BCP 47 permite un subtag de 3 litere imediat dupa subtagul primar de limba initial. Acesta se numeste subtag extins de limba (abreviat la extlang). Sunt definite doar putine subtaguri extinde de limba si trebuie folosite cu un subtag prima de limba specific (definit in campul Prefixa paginii din registru a subtagului extins de limba).

Deocamdata doar sapte subtaguri primare de limba pot fi folosite cu subtaguri extinse de limba. Sase din ele se incadreaza in grupa macrolimbilor (ar, kok, ms, sw, uz, and zh)si celalalt este sgn.

Luati in vedere urmatoarele:

Ca exemplu de utilizare, baza de date CLDR Unicode foloseste macrolimbile zh pentru a reprezenta Chineza Mandarin si ku pentru a reprezenta Kurdish. Deci, pentru Mandarin Chinese ar trebui sa folosesti zh, nu cmn, si pentru Northern Kurdish ar trebui sa folosesti ku-Latn, nu kmr-Latn. Baza de date CLDR , totusi, nu foloseste subtagurile extinse de limba, deci ar trebui sa folosesti yue pentru Cantonese, nu zh-yue.

Decizia 3: Subtaguri de Script

Subtagurile de script ar trebui folosite ca parte a unui tag de limba doar cand scriptul ofera informatii folositoare tagului respectiv. De obicei, se foloseste pentru ca o limba este scrisa in mai multe scripturi sau deoarece continutul a fost transcris intr-un script ce nu este uzual limbii (deci, cineva ar putea transcrie Rusa in scriptul Latin cu un tag precum ru-Latn).

Citeste mai multe in Specificatia BCP 47:

2.2.3 Script Subtag

4.1 Alegerea tagului de limba

Subtagurile de script sunt intotdeauna de 4 litere si trebuie sa stea dupa tagul de limba sau tagul extins de limba dar inaintea oricarui alt subtag.

Cateva lucruri la care trebuie sa fii atent cand alegi un subtag de script.

Decizia 4: subtaguri de Regiune

Subtagurile de Regiune asociaza subtagul de limba pe care l-ai ales cu o anumita regiune a lumii. Subtagurile de Regiune trebuie sa stea dupa orice subtag de limba sau de script.

Ca si subtagurile de script, trebui sa folosesti un subtag de Regiune doar daca acesta contribuie cu informnatii necesare intr-un context particular pentru a distinge aceast tag de limba de altul; altfel, nu-l folosi.

Citeste mai multe in Specificatia BCP 47:

2.2.4 Region Subtag

4.1 Alegerea tagului de limba

De exemplu, en-GB ar putea fi o distinctie folositoare pentru verificarea ortografiei, dar subtagul de regiune din ja-JP nu este folositor doar daca vrei, in mod intentionat, sa te referi la vorbitorii de Japoneza din afara Japoniei.

Exista dpua tipuri de subtaguri de regiune: coduri de 2 litere si coduri de 3 cifre. Ultimul tinde sa indentifice regiuni multinationale, decat tari specifice. De exemplu, es-ES inseamna Spaniola vorbita in Spania, iar es-419 inseamna Spaniloa vorbita in America Latina.

Decizia 5: subtaguri de varianta

Din nou, foloseste subtagurile de varianta doar unde este nevoie de a distinge acel tag de limba de un altul similar in contextul in care este folosit continutul tau.

Citeste mai multe in Specificatia BCP 47:

2.2.5 Variant Subtags

4.1 Alegerea subtagului de limba

Subtagurile de varianta reprezinta distinctii aditionale care nu se gasesc in nici un alt subtag. De obicei, acestea sunt dialecte, variatii de scris (cum ar fi regulile de ortografie), transcrierile. Un subtag de varianta are 5 pana la 8 caractere si contine litere si/sau cifre. Exista si cateva subtaguri de patru cifre (de obicei reprezinta un an). Subtagurile de varianta trebuie sa stea dupa orice subtag de limba, script si regiune.

Cel mai important lucru la care trebuie sa fii atent cand folosesti subtaguri de varianta este ordinea in care le folosesti.

Decision 6: Extension subtags

Read more in the BCP 47 spec:

2.2.6 Extension Subtags

4.1 Choice of Language Tag

These single-character subtags allow for extensions to the language tag. To date, only one extension subtag has been registered. The subtag u was registered by the Unicode Consortium to add information about language or locale behavior. Many locale identifiers require additional "tailorings" or options for specific values within a language, culture, region, or other variation. This extension provides a mechanism for using these additional tailorings within language tags for general interchange.

For example, the following indicates that phonebook collation order should be used by an application, that sorted data in a document is sorted according to this collation, and so on.

The u- extension is defined in RFC 6067, which points to the Unicode Consortium's Common Locale Data Repository (CLDR) for details on the subtags that follow it. It is not defined by BCP 47.

Decizia 7: subtaguri cu uz privat

Citeste mai multe in Specificatia BCP 47:

2.2.7 Private Use Subtags

4.1 Alegerea tagului de limba

Subtagurile cu uz privat nu apara in registrul subtagurilor si sunt alese si mentinute printr-un acord privat al partilor care le folosesc. Ele sunt introduse printr-un subtag de o singura litera (un 'singleton'). Singleton-ul pentru uz privat este x. Orice subtag ce apare dupa acest singleton trebuie sa aiba numai 8 caractere in lungime, chiar daca poti folosi mai multe subtaguri.

Alte tipuri de subtaguri

Citeste mai multe in Specificatia BCP 47:

2.2.6 Extension Subtags

4.1 Alegerea tagului de limba

Tagurile Vechi sunt cazuri speciale, asigurate pentru compatibilitate. Ele sunt taguri inregistrate inainte de RFC 4646 care nu pot fi compuse din subtagurile prezente in registru sau nu se potrivesc cu tagurile de limba definite acum.

Aproape toate tagurile vechi au fost inlocuite de subtaguri sau combinatii de subtaguri din registru. Aceste taguri vechi sunt acum depreciate si contin, de obicei, un camp Preferred-Value care indica cum ar trebui reprezentata limba respectiva. De exemplu, inregistrarea pentru tagul vechiart-lojban indica ca ar trebui sa folosesti subtagul de limba jbo in locul acestuia.

Nu trebuie sa folosesti un alt subtag impreuna cu un subtag vechi.

Subtagurile de extensie permit viitoare extensii a tagului de limba. Inca nu sunt inregistrate astfel de subtaguri.