Tłumaczenie strony: adresy URL, hreflang i korekta
Przetłumaczona strona to coś więcej niż przetłumaczony tekst: osobny adres dla każdego języka, hreflang, atrybut lang, glosariusz i sprawdzenie przed publikacją.
Jeden adres dla każdego języka
Daj każdej wersji językowej strony własny adres URL, na przykład example.com/de/ i example.com/pl/. Google zaleca osobne adresy URL zamiast zmieniania języka pod tym samym adresem za pomocą plików cookie lub ustawień przeglądarki. Sprawdzą się podkatalogi, subdomeny albo domeny krajowe; parametrów URL takich jak ?lang=de Google nie zaleca. Język strony Google rozpoznaje po widocznej treści, dlatego tekst i nawigacja jednej strony powinny być w jednym języku.
hreflang: połącz wersje
Za pomocą hreflang mówisz wyszukiwarkom, które strony do siebie należą: elementami link w sekcji head, nagłówkiem HTTP albo w mapie witryny. Dla Google te trzy sposoby są równoważne, więc wystarczy jeden. Przykład dla strony po angielsku, niemiecku i polsku:
<link rel="alternate" hreflang="en" href="https://example.com/en/prices/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise/" />
<link rel="alternate" hreflang="pl" href="https://example.com/pl/ceny/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/prices/" />- Ten sam blok stoi na wszystkich trzech stronach. Każda wersja wskazuje siebie i wszystkie pozostałe; jeśli B nie wskazuje z powrotem A, Google pomija te oznaczenia.
- Podawaj pełne adresy z https://, a nie samo /pl/ceny/.
- Kod języka jest zgodny z ISO 639-1 (de, pl), opcjonalnie z regionem według ISO 3166-1 Alpha 2, na przykład de-AT. Sam kod kraju jest nieprawidłowy.
- x-default wskazuje stronę dla odwiedzających, których język nie pasuje do żadnej z twoich wersji. Google przewidział je dla stron wyboru języka; wiele witryn wpisuje tam wersję główną.
Atrybut lang
Ustaw język strony na elemencie html, na przykład lang="pl". Fragment w innym języku dostaje własny atrybut lang na otaczającym go elemencie. Według W3C z tej informacji korzystają synteza mowy, tłumaczenie na brajla, sprawdzanie pisowni, dobór czcionki i dzielenie wyrazów. Google natomiast pisze, że nie używa ani hreflang, ani atrybutu lang do rozpoznania języka strony. Atrybut służy więc przeglądarkom i technologiom wspomagającym, a widoczny tekst musi być we właściwym języku.
Czego nie tłumaczyć
- Znaczników i atrybutów HTML: przetłumaczona nazwa klasy albo href psuje układ lub link.
- Symboli zastępczych takich jak {name}, {{count}}, %s czy %1$d. Zostają dokładnie takie same i występują dokładnie raz.
- Adresów URL, nazw plików, adresów e-mail, kodu i kodów skrótowych (shortcode) takich jak [contact-form].
- Kluczy w plikach językowych, na przykład checkout.button.pay. Tłumaczy się tylko wartości.
- Nazw marek i produktów, chyba że świadomie wybrano nazwę lokalną.
Pliki językowe: .po, JSON i XLIFF
Aplikacje, motywy i wtyczki trzymają teksty w plikach językowych. W plikach gettext .po każdy wpis ma msgid (źródło) i msgstr (tłumaczenie), a nagłówek Plural-Forms mówi, ile form liczby mnogiej ma język. Polski potrzebuje trzech, angielski dwóch. W plikach JSON i18n klucze zostają, zmieniają się tylko wartości. XLIFF przechowuje źródło i tłumaczenie obok siebie, z identyfikatorami i notatkami, które muszą zostać.
Glosariusz dla nazw marek i produktów
Przed pierwszym tłumaczeniem ustal, które pojęcia zostają bez zmian (marka, nazwy produktów i pakietów), a które zawsze tłumaczysz tak samo. Dopisz formę zwracania się: ty albo Pan/Pani, po niemiecku du albo Sie. Dzięki temu przyciski, strony produktów i e-maile są spójne.
Tłumaczenie maszynowe: szkic, potem rodzimy użytkownik języka
Tłumaczenie maszynowe szybko daje pierwszy szkic, a nie gotowy tekst. Zasady Google dotyczące spamu podają jako jeden z przykładów nadużywania treści na dużą skalę (scaled content abuse) skopiowane treści, które przez automatyczne tłumaczenie zamieniają się w wiele stron o niewielkiej wartości dla użytkowników. Problemem są tam masowo tworzone strony bez wartości, a nie samo tłumaczenie. Google pisze też, że przetłumaczenie tylko menu i stopki przy treści głównej w jednym języku daje złe wrażenia. Zaplanuj sprawdzenie przez osobę, dla której to język ojczysty:
- 1Czytaj tekst na stronie, nie tylko w tabeli. Kontekst zmienia znaczenie.
- 2Sprawdź liczby, daty, ceny, jednostki i dane kontaktowe.
- 3Sprawdź pojęcia z glosariusza i formę zwracania się.
- 4Sprawdź krótkie teksty: przyciski, pozycje menu i komunikaty o błędach często stają się dłuższe albo niejednoznaczne.
Nie przekierowuj odwiedzających automatycznie
Google odradza automatyczne przekierowania na podstawie domniemanego języka lub lokalizacji odwiedzającego, na przykład według adresu IP albo języka przeglądarki: mogą sprawić, że ludzie i wyszukiwarki nie zobaczą wszystkich wersji. Umieść na każdej stronie widoczny przełącznik języka, który prowadzi do tej samej strony w innych językach, i pozwól ludziom wybrać.
Praca z Do4U
Tłumaczenie HTML nie zmienia znaczników, linków, atrybutów ani symboli zastępczych i potem sprawdza strukturę; glosariusz konta zachowuje nazwy marek i produktów tak, jak chcesz. Narzędzie Tłumaczenie plików językowych robi to samo dla plików .po, JSON i XLIFF i tworzy formy liczby mnogiej języka docelowego. Narzędzie Tłumaczenie obsługuje zwykły tekst i wypisuje niejasne fragmenty jako uwagi.
Do4U przygotowuje szkic, a ty sprawdzasz i decydujesz. Przed publikacją daj go do przeczytania osobie, dla której to język ojczysty. Tłumaczenie nie jest obietnicą większej liczby odwiedzających.
Źródła
- Google Search Central: informowanie Google o zlokalizowanych wersjach strony (strona zaktualizowana 21 września 2026 r., po angielsku) (developers.google.com)
- Google Search Central: zarządzanie witrynami wielojęzycznymi i wieloregionalnymi (strona zaktualizowana 10 grudnia 2025 r., po angielsku) (developers.google.com)
- W3C Internationalization: po co używać atrybutu języka? (zaktualizowano 5 września 2025 r., po angielsku) (www.w3.org)
- Google Search Central: zasady dotyczące spamu w wyszukiwarce Google (strona zaktualizowana 28 sierpnia 2026 r., po angielsku) (developers.google.com)