Cheia de acces n sare lanagigarea in pagina. Sari la inceputul continutului.
Acest document e o traducere. In caz ca apare vreo eroare sau discrepanta, ultima versiune in Engleza este cea autoritativa. Copyright-ul original apartine W3C, dupa cum e aratat mai jos.
Traducator: Traducator: Echipa Traduceri-W3
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.
Ce tag de limba este potrivit pentru mine? Cum aleg tagul de limba si alte subtaguri?
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.
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 creat de Richard Ishida.
Gandeste-te la capitalizarea literelor. Prin conventie, subtagurile primare de limba sunt scrise cu litera mica, subtagurile scriptului incep cu litera mare si continua cu litera mica, iar subtagurile regionale sunt scrise cu litera mare. Acestea reprezinta o conventie si esti liber sa scrii cum doresti.
Pe de o parte, poti folosi tagurile de limba intr-un context in care capitalizarea literelor este importanta, cum ar fi numele fisierelor de pe anumite sisteme. In astfel de cazuri, trebuie sa te asiguri ca urmezi o politica consistenta pentru capitalizarea literelor; pentru orice sitem nou, care este sensibil la capitalizare, este recomandat sa folosesti conventiile BCP47.
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:
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.
Poti cauta informatii despre limba in SIL Ethnologue si sa compari acele informatii cu Wikipedia. Ethnologue foloseste acelasi code de trei litere ca si BCP47 dar vei fi nevoit sa convertesticodul de 2 litere BCP47 la varianta lor ISO 639-3 pentru a gasi o limba dupa cod. (Unealta creata de Richard Ishida face acesl lucru pentru tine.)
Exista un numar mic de cazuri cand diferite coduri de limba si pot fi vazute de multi oameni ca aceeasi limba, de exemplu, Filipineza si Tagalog, sau Twi si Akan. Nu exista nici o indicatie in registru ce limba trebuie sa folosesti dar ar trebui sa te concentrezi asupra unei singure aplicatii sau context.
Ar trebui sa cauti un subtag mai specific pentru limba care te intereseaza. Din pacate registrul nu ofera nici o indicatie in acest sens.
Poti folosi subtagurile acestea doar daca nu exista un subtag mai specific si este intotdeauna mai bine sa folosesti un astfel de subtag decat subtagurile MUL (mai multe limbi) sau UND (nedefinit).
De exemplu, ku (Kurdish) este o macrolimba ce cuprinde ckb (Central Kurdish), kmr (Northern Kurdish), si sdh (Southern Kurdish).
Poti gasi subtagurile mai specifice (cele cuprinse) cautand in registru Macrolanguage: <subtag_name>. Unealta lui Richard Ishida va gasi in mod automat lista.(exemplu).
Dupa cum spuneam, in majoritatea cazurilor trebuie sa folosesti subtaguri cat mai specifice, dar exista un numar mic de exceptii. Acestea sunt situatiile in care trebuie sa folosesti un subtag de macrolimba din motive de compatibilitate.
De exemplu, desi BCP 47 explica cazh (subtagul de macrolimba pentru Limba Chineza) nu specifica care dialect chinezesc este vizat de acest subtag, in practica conventia asociaza subtagul de macrolimba cu limba predominanta din respectivul subtag - in acest caz, cmn (Mandarin Chinese). Daca aplicatia ta a identificat Mandarin Chinese folosind tagul zh-CN (Chineza folosita in China), sau doar zh, poti folosi in continuarezh. Folosind cmn sau cmn-CN poate cauza probleme serioase de compatibilitate daca aplicatia sau utilizatorii asteapta un tag cum este zh.
Daca, pe de alta parte, folosesti zh pentru a face referire la un alt dialect chinezesc cum ar fi Hakka, ar trebui sa folosesti subtagul de limba hak.
Deprecated: 1989-01-01 Preferred-Value: he
Aceasta spune ca ar trebui sa folosesti subtagul he.
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.
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).
Citeste mai multe in Specificatia BCP 47:
2.2.2 Subtaguri extinse 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:
Unde este posibil, folositi un singur subtag de limba, decat perechea limba+extlang. Exista intotdeauna un subtag de 3litere care este echivalentului perechii limba+extlang si este intotdeauna acelasi ca subtagul extlang. De exemplu, zh-yue (Cantonese Chinese) poate fi exprimat cu subtagul singular yue.
Singura exceptie semnificativa este cazul in care perechea limba+extlang reprezinta o practica stabilita pentru sistemul cu care lucrezi; adica, unde zh-yue este preferat si nu yue din motive de compatibilitate retrograda.
In mod similar, cand ai de-a face cu limba predominanta dintr-un set, e, in general, mai bine, din motive de compatibilitatea, sa renunti la extlang decat sa folosesti codul extlang ca subtag primar de limba. De exemplu, cateodata, e mai bine sa reduci ms-zsm la ms (Subtagul Malay de macrolimba) decat sa il inlocuiesti cu zsm (Standard Malay).
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.
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).
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.
Subtagul de script Zxxx ar putea fi folosit pentru continutul fara text, de exemplu uz-Zxxx, pentru ca Zxxx este Codul pentru documentele fara text, dar acesta este folositor doar daca o astfel de distinctie trebuie clarificata.
Suppress-Script: Latn
ceea ce inseamna ca nu ar trebui sa folosesti subtagul de script Latn (Latin) la aceasta limba.
Acest lucru se datoreaza faptului ca aproape toate documentele englezesti sunt scrise in scriptul latin si nu ofera nici o informatie prin care acel document sa se distinga. Totusi, daca un document ar fi scris in engleza combinand scriptul Latin cu un altul, cum ar fi Braille (Brai), atunci ar fi adecvat sa se indice ambele scripturi pentru a ajuta in alegerea continutului (de exemplu pentru aplicarea regulilor stilului).
Totusi, nu toate subtagurile de limba care sunt asociate puternic cu un script au un campuri suppress-script. Ar trebui sa nu presupui ca ai nevoie sa folosesti un script daca campul suppress-script field e absent.
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.
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.
Evita subtagurile invechite. Verifica daca subtagul pe care il folosesti nu este iesit din uz. Ca si in cazul celorlalte subtaguri, registrul iti va oferi inlocuitorul via campului Preferred-Value.
In unele cazuri nu exista campul Preferred-Value intr-o inregistrare iesita din uz, dar de multe ori, campul Comments contine sfaturi. De exemplu, sub YU (Yugoslavia) vei gasi:
Deprecated: 2003-07-23 Comments: see BA, HR, ME, MK, RS, or SI
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.
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.
Verifica contextul si ordinea subtagurilor de varianta. Majoritatea inregistrarilor a subtagurilor de limba din registru au unul sau mai multe campuri Prefix. Prefixele indica cu ce subtag este folosit acea varianta. De exemplu, pinyin ar trebui folosit intr-un tag de limba care contine fie subtagurile zh si Latn sau subtagurile bo si Latn, din moment ce inregistrarea pentru pinyin contine urmatoarele:
Prefix: zh-Latn Prefix: bo-Latn
Daca ai un motiv intemeiat, poti folosi un subtag de varianta cu diferite subtaguri, de exemplu cmn-Latn-pinyin ar fi o modalitate buna de a spune Mandarin Chinese scris cu pinyin.
Chiar daca zh, bo si Latn sunt spcificate, acest lucru este o cerinta minima. Este totusi posibil sa incluzi alte subtaguri, cum ar fi un subtag de regiune, in tagul de limba (unde este adevat) de exemplu zh-Latn-TW-pinyin.
Printre alte campuri prefix, inregistrarea pentru subtagul de varianta 1994 contine
Prefix: sl-rozaj-biske
care indica faptul ca ar trebui folosit intr-un tag de limba care contine deja alte doua subtaguri de varianta, rozaj si biske. Orice subtag de varianta specificat intr-un camp prefix ar trebui sa stea inaintea subtagului de care te-ai interesat.
Exista cateva subtaguri de varianta care nu au capul prefix, de exemplu fonipa (Alfabetul Fonetic International). Asemenea subtaguri de varianta apar dupa orice alt subtag de varianta cu informatii legate de prefix.
Daca planuiesti sa folosesti mai multe subtaguri de varianta fara prefix, ordoneaza-le in functie de importanta in mod descrescator. Daca sunt la fel de importante, ordoneaza-le alfabetic. Acest lucru va fi util in termeni de interoperabilitate.
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.
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.
Subtagurile cu uz privat trebuie folosite cu mare grija si evitate pe cat posibil , din moment ce acestea se interfereaza cu interoperabilitatea pe care BCP 47 o promoveaza.
Ca un exemplu de subtag cu uz privat, en-US-x-twain, poate identifica un tip specific de Engleza vorbita in Statele Unite, dar numai intr-o comunitate inchisa. Inafara acestui acord privat, intelesul acestuia nu poate fi de incredere.
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.
Spune-ne părerea ta (în Engleză).
Tradus din engleza: 2009-12-03. Ultima modificare a traducerii: 2010-08-26 16:00 GMT
Pentru a vedea toate schimbarile documentului, cauta qa-choosing-language-tags pe blogul i18n.
Copyright © 2009-2010 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.