Wskazywanie języka strony docelowej linku

Pytanie

O czym powinienem pamiętać jeśli chcę pokazać czytelnikowi, że link prowadzi do strony w innym języku?

Odpowiedź

Za i przeciw

Jeśli odwiedzający stronę kliknie w link prowadzący do strony, której nie może przeczytać docelowego dokumentu doświadczy jedynie frustracji i straty czasu. Jeśli sytuacja się powtórzy, odwiedzający może zaniechać klikania w linki prowadzące do dokumentów, które byłby w stanie przeczytać.

Jeśli obok linku umieścisz tekst lub obrazek wskazujący w jakim języku jest docelowy dokument dajesz odwiedzającemu szansę na podjęcie decyzji czy chce dany link kliknąć i unikasz problemu.

Takie podejście może potencjalnie powodować problemy jeśli przetłumaczona wersja dokumentu pojawi się na stronie w późniejszym terminie.

Załóżmy na przykład, że francuska strona jakiś czas temu użyła takiego podejścia do wskazania strony, która w tym czasie była dostępna tylko w języku angielskim. Poźniej strona docelowa została przetłumaczona na język francuski. Jeśli francuska strona nie zostanie zaktualizowana będzie błędnie ostrzegać francuskojęzycznych czytelników, że docelowa strona jest w języku angielskim. Może ich to zniechęcać do klikania w link prowadzący do strony, którą mogliby zrozumieć.

Należy także rozważyć jak przekazać czytelnikom to czy dokument jest dostępny także w innych językach. Na przykład jeśli użytkownik czyta stronę w języku węgierskim a link prowadzi do informacji niedostępnej w węgierskim, ale dostępnej w angielskim i niemieckim co należało by przekazać czytelnikowi? Może się okazać, że czytelnik wolałby wersję niemiecką od angielskiej, bądź odwrotnie. Staje się to tym bardziej problematyczne im więcej jest wersji językowych dokumentu.

Należy rozważyć te zalety i wady takiego rozwiązania podczas podejmowania decyzji odnośnie oznaczania linków.

Używanie atrybutu hreflang z CSS w celu wskazania języka

Jeśli zdecydujesz się wskazać język dokumentu do którego prowadzi odnośnik jednym z niegdyś często używanych sposobów było użycie atrybutu hreflang i kodu CSS w celu przekazania tej informacji czytelnikowi.

W HTMLu, atrybut hreflang w elemencie a ma wskazywać na język dokumentu po drugiej stronie odnośnika. Zauważ, że specyfikacja HTML stwierdza, że informacja hreflang nie powinna być używana przez przeglądarkę podczas wyboru wersji językowej. Pobierając zasoby przeglądarki powinny używać w celu ustalenia języka tylko informacji językowych powiązanych z danymi zasobami, a nie metadanych w odnośniku do zasobów.

Biorąc pod uwagę wspomniane wcześniej zalety i wady, hreflang mógłby wskazywać czytelnikowi język zasobów na końcu linku w prostych przypadkach. Aczkolwiek, mogą wystąpić też poważniejsze problemy.

Na przykład jeśli zasoby są dostępne w kilku językach poprzez negocjację języka po stronie serwera nie można określić kilku dostępnych wersji językowych ponieważ atrybut hreflang pozwala na wskazanie tylko jednego języka.

Szczegóły implementacji

Oto przykład jak hreflang był wykorzystywany w przeszłości. Poniższa treść ma odnośnik prowadzący do strony po szwedzku.

Strona opisująca dlaczego DOCTYPE jest przydatny [sv].

Można to osiągnąć używając poniższego znacznika:

<p>Strona opisująca <a href="swedish-doc.html" hreflang="sv">dlaczego DOCTYPE jest przydatny</a>.</p>

Kod umożliwiający to w CSS może wyglądać tak:

a[hreflang]:after { 
    content: " [" attr(hreflang) "]"; 
    color: #999;
    vertical-align: super;
    font-size: 70%;
    }

Dla każdego elementu a z atrybutem hreflang CSS dodaje wartość tego artybutu w kwadratowych nawiasach po odnośniku.

Równie łatwo można dodać tekst czy nawet grafikę po odnośniku korzystając z własności content a nie attr(hreflang). Może to być lepsze rozwiązanie jeśli nie jesteś pewien czy czytelnicy rozpoznają skróty ISO.

Oto CSS. Nalezy ostylować zasady dla każdego języka, z którym ma się do czynienia.

a[hreflang]:after { 
    color: #999;
    vertical-align: super;
    font-size: 70%;
    }
a[hreflang = 'sv']:after { 
    content: " [Szwedzki]"; 
    }
a[hreflang = 'fi']:after { 
    content: " [Fiński]"; 
    } 
etc.

Dla szwedzkiego wyświetlany rezultat wyglądać będzie tak:

Strona opisująca dlaczego DOCTYPE jest przydatny [Szwedzki].

Nie używaj flag do określania języków!

Flagi reprezentują kraje a nie języki

Wiele krajów używa tego samego języka co inny kraj, a niektóre kraje mają więcej niż jeden oficjalny język. Flagi tego dobrze nie odzwierciedlają.

Ponadto, flagi mogą powodować skojarzenia nacjonalistyczne niemile widziane przez ludzi z innych krajów, nawet jeśli mówią oni w tym samym języku.

Podczas gdy flagi mogą być stosowane na stronach dedykowanych dla danego regionu (na przykład. amazon.co.uk kontra amazon.ca), powinno się unikać ich stosowania przy linkach do stron, które są tylko przetłumaczone.