Jaka jest różnica pomiędzy <html lang="en">
i <html lang="en-US">
? Jakie inne wartości mogą wystąpić po myślniku?
Według w3.org „Każdy dwuliterowy kod podrzędny jest rozumiany jako kod kraju [ISO3166]”. czy to oznacza, że każda wartość podana pod kodem alfa-2 jest wartością akceptowaną?
Odpowiedzi:
Pierwszy
lang
znacznik określa tylko kod języka. Druga określa kod języka, po którym następuje kod kraju.Tak, jednak wartość ta może mieć lub nie mieć żadnego rzeczywistego znaczenia.
<html lang="en-US">
zasadniczo oznacza „ta strona jest w amerykańskim stylu angielskim”. W podobny sposób<html lang="en-GB">
oznaczałoby to „ta strona jest w angielskim stylu brytyjskim”.Jeśli naprawdę chcesz określić nieprawidłową kombinację, możesz. To niewiele by znaczyło, ale
<html lang="en-ES">
jest zgodne ze specyfikacją, jak rozumiem. Jednak ta kombinacja języka i kraju nie da wiele, ponieważ angielski nie jest powszechnie używany w Hiszpanii.Nie pomaga przeglądarce w wyświetlaniu strony, ale jest przydatna dla wyszukiwarek, czytników ekranu i innych rzeczy, które mogą czytać i próbować zinterpretować stronę, oprócz ludzi.
źródło
hyphens: auto
), tolang
atrybut jest wymagany, aby przeglądarka mogła wybrać odpowiedni zestaw reguł.Możesz użyć dowolnego kodu kraju, tak, ale to nie znaczy, że przeglądarka lub inne oprogramowanie go rozpozna lub zrobi cokolwiek inaczej z jego powodu. Na przykład czytnik ekranu może obsługiwać „en-US” i „en-GB” tak samo, jeśli obsługuje tylko amerykański akcent w języku angielskim. Jednak inne oprogramowanie, które ma dwa różne głosy, może dostosować się do kodu kraju.
źródło
To powinno pomóc: http://www.w3.org/International/articles/language-tags/
źródło
RFC 3066 podaje szczegóły dozwolonych wartości (wyróżnienia i dodane linki):
Interpretuję to w ten sposób, że każdy ważny (zgodnie z ISO 3166) dwuliterowy kod jest ważny jako subtag. RFC dalej stwierdza:
Nawiasem mówiąc, wygląda to na literówkę, ponieważ rozdział 3 wydaje się odnosić do procesu rejestracji, a nie do rozdziału 5.
Szybkie wyszukiwanie rejestru IANA ujawnia bardzo długą listę wszystkich dostępnych podtagów językowych. Oto jeden przykład z listy (który zostanie użyty jako
en-scouse
):Dostępnych jest wiele rodzajów podtagów; szybki zwój już się ujawnił
fr-1694acad
(francuski z XVII wieku).Przydatność niektórych z tych (powiedziałbym, że zdecydowana większość z nich) tagów, jeśli chodzi o dokumenty przeznaczone do wyświetlania w przeglądarce, jest ograniczona. Specyfikacja umiędzynarodowienia W3C po prostu stwierdza:
Trudno mi znaleźć szczegółowe informacje o tym, jak zachowują się przeglądarki, gdy napotykają tagi różnych języków, ale najprawdopodobniej przyniosą one pewne korzyści użytkownikom korzystającym z czytnika ekranu, który może użyć tagu do określenia języka / dialektu / akcentu w którym prezentować treść.
źródło
Schemat XML wymaga, aby przestrzeń nazw xml została zadeklarowana i zaimportowana przed użyciem xml: lang (i innych wartości przestrzeni nazw xml). RELAX NG wstępnie deklaruje przestrzeń nazw xml, tak jak w XML, więc nie jest potrzebna żadna dodatkowa deklaracja.
źródło
Cóż, pierwsze pytanie jest łatwe. Jest wiele
en
(angielskich), ale (przeważnie) tylko jeden angielski (USA). Można by odgadnąć istniejeen-CN
,en-GB
,en-AU
. Chyba może istnieć nawet austriacki angielski, ale to bardziej „tak” niż „tak”.źródło