język + wartość regionu atrybutu lang HTML5


11

Pracuję nad witryną, która będzie oferować zlokalizowane treści zgodnie z language+regionpodejściem opisanym na tej stronie W3.org (np. W fr-CAprzypadku treści z kanadyjskiego francuskiego i fr-FR„francusko-francuskiego”). Ponieważ uważamy, że treść każdego language+regionz nich jest unikalna, kluczowe jest dla nas, aby wyszukiwarki odpowiednio identyfikowały i odpowiednio je wyświetlały.

Patrząc w Internecie (np. Na to pytanie ), wydaje się, że większość ludzi zaleca użycie kodu języka ISO639 w langatrybucie HTML do opisu języka treści. Zgodnie z tym zaleceniem zdecydowalibyśmy się na użycie, <html lang="fr">które nie umożliwiłoby rozróżnienia między wyżej wymienionymi language+regionkombinacjami.

Podczas przeglądania specyfikacji HTML4 wydaje się, że użycie language+regionjako kodu języka byłoby całkowicie OK, ponieważ en-USprzykład podano jako jedną z możliwych wartości. Jednak nie znalazłem żadnego potwierdzenia tego w specyfikacji HTML5, która nie wydaje się dawać żadnego przykładu co do możliwych dozwolonych wartości.

Stamtąd próbowałem uzyskać de facto odpowiedź, patrząc na to, co robią giganci sieci. Patrzyłem na to, co robią Facebook: oferują wersje Candian French i French French ze swoimi (nieco) różnymi treściami, podczas gdy langwartość HTML pozostaje taka sama:

fr-CA
URL: http://fr-ca.facebook.com
Atrybut <html lang="fr">
języka HTML: tłumaczenie słowa „email”:courriel

fr-FR
URL: http://fr-fr.facebook.com/
Atrybut lang HTML: <html lang="fr">
tłumaczenie słowa „email”:Adresse électronique

Jaki jest zalecany / standardowy sposób opisywania treści zlokalizowanych przy użyciu language+regionmetody HTML5?

Odpowiedzi:


5

W3C zapewnia ten bardzo długi przewodnik na temat wybierania znaczników / podtagów językowych.

Ważne bity:

Składnia znacznika języka jest zdefiniowana w BCP 47 IETF . W przeszłości konieczne było sprawdzanie list kodów w różnych standardach ISO w celu znalezienia odpowiednich podtagów, ale teraz wystarczy tylko zajrzeć do rejestru podtagów języka IANA . Nowy rejestr opiszemy poniżej.

Ten artykuł zawiera porady dotyczące wyboru składników tagu językowego. Aby zapoznać się z pojęciami zdefiniowanymi w BCP 47, zobacz Znaczniki językowe w HTML i XML .

...

Dostępne są narzędzia, które zapewniają dodatkową pomoc podczas przeszukiwania rejestru, takie jak narzędzie do wyszukiwania podtagów językowych Richarda Ishidy .

...

Upewnij się, że masz odpowiedni język. Czasami warto sprawdzić kilka alternatyw. Mark Davis, współautor BCP47, pisze: „Często nie jest jasne, jakiego identyfikatora języka użyć. Na przykład to, co większość ludzi nazywa Punjabi w Pakistanie, faktycznie ma kod„ lah ”i formalną nazwę„ Lahnda ”. Jest wiele inne przypadki, w których ta sama nazwa jest używana dla różnych języków lub nazwa, której szukają ludzie, nie jest wymieniona w rejestrze IANA. ”

Możesz wyszukać informacje o języku w SIL Ethnologue i odszukać je w Wikipedii . Ethnologue używa tych samych trzyliterowych kodów, co BCP47, ale musisz przekonwertować dwuliterowe kody BCP47 na ich odpowiednik ISO 639-3, aby wyszukać język po kodzie. ( Narzędzie Richarda Ishidy robi to za Ciebie).

Istnieje niewielka liczba przypadków, w których dostępne są różne kody językowe dla tego, co wiele osób uważa za ten sam język, np. Filipiński i tagalog lub Twi i Akan. W rejestrze nie ma wskazań, których należy użyć, ale należy postarać się zapewnić spójność w ramach jednej aplikacji lub kontekstu.

(Podkreśl moje.)

Należy zauważyć, że rejestr podtagów języka IANA jest dość trudny w użyciu. Z wyjątkiem znaczników „grandfathered-in” (podobnych en-GB-oed), należy osobno wyszukać znacznik rodziny języka i podtagi regionu / wariantu. Tagi / podtagi są uporządkowane według typu, a nie hierarchii. Zaoszczędź więc czas i kłopoty i skorzystaj z niesamowitego narzędzia wyszukiwania Richarda Ishidy .


2

Używanie <html lang="fr-FR">i <html lang="fr-CA">jest w porządku, jeśli odpowiadają rzeczywistej zawartości. Ale są one tak samo ignorowane przez wyszukiwarki <html lang="fr">.

HTML5 nie oznacza zmiany użycia kodów językowych. System kodów zgodnie z definicją w BCP 47 i jego rozszerzeniach jest bardzo skomplikowany i pozwala określić wariant językowy z bolesną dokładnością. Stan techniki jest na znacznie, znacznie prostszym poziomie, a fr-FR i fr-CA reprezentują najlepszą szczegółowość, jaką można obecnie uzyskać w oprogramowaniu; dość często liczy się tylko główny kod (tutaj, fr).

Nie ma dowodów na to, że wyszukiwarki faktycznie zwracają uwagę na wszelkie deklaracje kodu języka, takie jak langatrybuty. Inne oprogramowanie, takie jak łączniki, sprawdzanie pisowni, syntezatory mowy i domyślne algorytmy wyboru czcionek, może brać langpod uwagę atrybuty. Ale wyszukiwarki wykonują swoje analizy heurystyczne na podstawie rzeczywistej zawartości.

Trudno ich za to winić, ponieważ daje to lepsze wyniki niż zaufanie do langatrybutów. Na przykład wiele narzędzi autorskich generuje się automatycznie lang="en"bez względu na rzeczywistą treść, bez informowania o tym autora.


2

[To nie jest moja najmocniejsza strona, więc cytuję tutaj tylko dokumentację, ale wygląda na to, że coś przeoczyłeś.]

Specyfikacja HTML5 wymaga , aby langwartość była poprawnym znacznikiem BCP 47 . W tym dokumencie odpowiedni bit wydaje się znajdować w sekcji 3.4:

Na przykład implementacja może odwzorować rozszerzone zakresy językowe na podstawowe. Inną możliwością byłoby zwrócenie przez implementację pasującego znacznika, który jest najpierw w kolejności ASCII. Jeśli zakres językowy to „* -CH” („CH” oznacza Szwajcarię), a zestaw tagów zawiera „de-CH” (niemiecki używany w Szwajcarii), „fr-CH” (francuski, Szwajcaria) i „it -CH ”(włoski, Szwajcaria), wówczas zwrócony zostanie tag„ de-CH ”.

... który, patrząc na to, jest w zasadzie tym, co otrzymałeś ze specyfikacji HTML 4, powołującej się na RFC1766, po prostu bardziej szczegółowo.


Mam trudności ze znalezieniem cytowanego akapitu (szukałem niektórych jego słów kluczowych w podanym przeze mnie linku oraz w sekcji 3.4 i nic nie mogłem znaleźć). Czy możesz podać mi link do niego, proszę? (najlepiej z tagiem skrótu, jeśli to możliwe).
Maks.

Specyfikacja HTML 5 odnosi się tylko do wymaganego formatu. Cytowany bit pochodzi z łącza BCP 47, w którym faktycznie zdefiniował ten format.
Su '
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.