Dokumentacija
Nastavite jezik strani
Nastavite jezik strani
Atribut lang na oznaki <html> pove, v katerem jeziku je stran napisana: <html lang="sl">. Bralniki zaslona po njem izberejo pravi glas in izgovorjavo; brez njega slovensko stran bere angleški glas in je komaj razumljiva. Brskalnik po njem presodi, ali naj ponudi prevod, iskalniki pa ga upoštevajo kot enega od signalov, komu je stran namenjena.
Gre za en atribut, ki se običajno nastavi na enem mestu za celo stran. Kontrolni seznam strani opozori, kadar ga domača stran nima.
Kakšna naj bo vrednost
Vrednost je jezikovna koda (BCP 47): dvočrkovna oznaka jezika, po potrebi z regijo.
| Vrednost | Pomen |
|---|---|
en |
angleščina |
en-GB, en-US |
angleščina z regijo, kadar je razlika pomembna |
sl |
slovenščina |
pl |
poljščina |
de-AT |
nemščina, kot jo govorijo v Avstriji |
Pogoste napake:
sl_SI,en_USs podčrtajem so imena lokalizacij na strežniku, ne jezikovne kode HTML. Uporabite vezaj:sl-SIali preprostosl.sije sinhalščina, ne slovenščina. Slovenščina jesl.- Ena vrednost za vse jezike. Na večjezični strani potrebujejo poljske strani
pl, angleške paen;lang="sl"na vseh straneh je na večini napačen.
Kontrolni seznam preveri samo, ali atribut obstaja. Ali se vrednost ujema z vsebino, potrdite sami.
Preverite sami
Namesto example.com vpišite svojo stran:
curl -s https://example.com | grep -io '<html[^>]*>'
Izpis mora vsebovati lang="…" s pravo kodo, na primer <html lang="sl">. Na večjezični strani ukaz poženite za eno stran v vsakem jeziku.
Kako popraviti
Izberite, kako je vaša stran narejena. Na večini platform jezik pride iz ene nastavitve; v lastni kodi je to ena vrstica v glavni predlogi.
WordPress
WordPress atribut izpiše sam, iz nastavitve Settings → General → Site Language, prek funkcije language_attributes() v temi. Če atributa ni, preverite dve stvari.
1. Jezik strani. Odprite Settings → General, izberite pravi Site Language in kliknite Save Changes.
2. Tema. Teme blokov (Twenty Twenty-Two in novejše) ga izpišejo vedno. Klasična tema mora v header.php poklicati language_attributes(), nekatere starejše ali po meri narejene teme pa izpišejo golo <html>. Odprite header.php (v podrejeni temi, da posodobitev ne prepiše spremembe) in vrstico uredite takole:
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
Večjezične strani. WPML in Polylang jezik preklapljata za vsako stran prek iste funkcije, zato s temo, ki kliče language_attributes(), vsak prevod dobi svojo kodo brez dodatnih nastavitev. Če imajo vsi jeziki isto kodo, je vrednost v temi zapečena: popravite header.php, kot je opisano zgoraj.
Nato počistite predpomnilnik strani (WP Rocket, LiteSpeed Cache, W3 Total Cache, predpomnilnik ponudnika gostovanja).
Node.js in Next.js
Next.js, App Router. Oznako <html> izpiše korenska predloga. V app/layout.tsx (ali .js):
export default function RootLayout({ children }) {
return (
<html lang="sl">
<body>{children}</body>
</html>
);
}
Če ima vsak jezik svojo pot (app/[lang]/layout.tsx), vzemite vrednost iz poti. V Next.js 15 in novejših je params promise:
export default async function RootLayout({ children, params }) {
const { lang } = await params;
return (
<html lang={lang}>
<body>{children}</body>
</html>
);
}
Next.js, Pages Router. Z nastavitvijo i18n v next.config.js Next.js lang nastavi sam. Brez nje ga nastavite v pages/_document.js:
import { Html, Head, Main, NextScript } from 'next/document';
export default function Document() {
return (
<Html lang="sl">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
Druge aplikacije Node.js (Express s predlogami, Nuxt, Astro, SvelteKit): nastavite ga tam, kjer se izpiše oznaka <html>. V SvelteKitu je to src/app.html, v Astru glavna predloga, v Nuxtu app.head.htmlAttrs v nuxt.config.
Laravel
Novi projekti Laravel to v predlogah že imajo, projekti, ki so začeli iz lastne predloge, pogosto ne. V glavni predlogi (na primer resources/views/layouts/app.blade.php):
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
app()->getLocale() je jezik aplikacije iz config/app.php (APP_LOCALE v .env) ali tisti, ki ga za zahtevek nastavi vaš middleware za jezik. str_replace lokalizacijo, kot je sl_SI, spremeni v veljavno sl-SI.
Statični HTML
Vsaka datoteka HTML se začne z isto oznako. Atribut ji dodajte na vsaki strani:
<!DOCTYPE html>
<html lang="sl">
Če stran gradi generator (Hugo, Jekyll, Eleventy), ga spremenite enkrat v osnovni predlogi. V Hugu nastavite languageCode v konfiguraciji strani in v osnovni predlogi uporabite <html lang="{{ site.Language.LanguageCode }}">.
Shopify
Teme Shopify atribut izpišejo iz jezika trgovine: Dawn in druge aktualne teme uporabljajo <html lang="{{ request.locale.iso_code }}">. Jeziki se nastavijo v Settings → Languages.
Če ga ni, je tema prilagojena ali stara. Odprite Online Store → Themes → … → Edit code, poiščite layout/theme.liquid in oznako <html> spremenite v:
<html lang="{{ request.locale.iso_code }}">
Wix
Wix atribut izpiše iz jezika strani, z Wix Multilingual pa ga preklaplja po jezikih. Oznake <html> ne morete urejati. Če kontrolni seznam pokaže napačen jezik, spremenite jezik strani v jezikovnih nastavitvah na nadzorni plošči; če ne pokaže nobenega, se obrnite na podporo Wix.
Webflow
Webflow vrednost vzame iz primarne lokalizacije strani: v Site settings → Localization nastavite primarno lokalizacijo (primary locale) in stran znova objavite. Z Webflow Localization dobi vsaka lokalizacija na svojih straneh svojo kodo.
Squarespace
Squarespace atribut izpiše iz jezika strani v Settings → Language & Region. Če je napačen, ga spremenite tam. Oznake <html> ne morete urejati neposredno.
Potrdite popravek
Znova poženite ukaz curl iz razdelka Preverite sami, nato v PulseKeeperju odprite tarčo in na zavihku Kontrolni seznam kliknite Preveri zdaj. Postavka se v nekaj minutah obarva OK, ne šele ob naslednjem dnevnem preverjanju.