Dwuliterowe czy trzyliterowe kody języka

Intended audience: HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), CSS coders, schema developers (DTDs, XML Schema, RelaxNG, etc.), XSLT developers, Web project managers, and anyone who needs advice on using language tags in markup and style sheets.

Question

Czy powinienem używać dwuliterowych czy trzyliterowych kodów języka ISO w znacznikach języka?

Sieć Internet stosuje znaczniki językowe do wskazania języka tekstu w protokołach i formatach takich jak HTML, XHTML, XML, HTTP i innych. W przeszłości wartości znaczników języka były definiowane przez RFC 3066 - Znaczniki służące identyfikacji języków (oraz ich poprzednika RFC 1766) i rozpoczynały się albo dwuliterowym kodem języka ISO 639-1 lub trzyliterowym kodem ISO 639-2. Dla niektórych języków istniała zarówno możliwość użycia dwuliterowego jak i trzyliterowego kodu ISO. (W niektórych językach można było nawet wybierać spośród dwóch trzyliterowych możliwości.)

Ludzie byli czasami niepewni, którego kodu ISO powinni używać w znaczniku języka.

Answer

Dobrą wiadomością jest to, że nie musisz się dłużej martwić odpowiedzią na to pytanie!

W roku 2006 IETF opublikowała nową specyfikację opisującą zasady tworzenia znaczników języka - RFC 4646. Już nie odsyła ona do list kodów ISO. Zamiast tego powinieneś odnaleźć właściwy podznacznik w nowym Rejestrze Podznaczników Języka IANA. Rejestr ten zawiera tylko jeden podznacznik dla każdego języka, więc nie możemy mieć już żadnych wątpliwości.

Pomimo tego, że teraz musisz używać Rejestru Podznaczników Języka IANA zamiast list kodów ISO znaczniki języka, których używałeś do tej pory nie muszą być zmieniane (o ile tylko stosowałeś się do zasady 'najkrótszego kodu'). Wprowadzona zmiana dotyczy tylko sposobu, w jaki uzyskujesz do nich dostęp.

Rejestr Podznaczników Języka IANA wciąż stosuje i dba o aktualizację kodów zawartych w standardach ISO, ale to osoby zarządzające rejestrem zajmują się zasadą dwuliterowe czy trzyliterowe.

Jeśli chcesz uzyskać więcej informacji o tym jak używać składni nowych znaczników języka oraz rejestru przeczytaj artykuł Znaczniki języka w HTML i XML.