Az n billentyű átugrik az oldal navigációhoz. Ugrás a szöveg elejére.

Ez a dokumentum egy fordítás. Bármilyen ellentmondás vagy hiba esetén a legfrissebb angol nyelvű eredeti változatot kell mérvadónak tekinteni. A szerzői jog a W3C tulajdonát képezi, amint az alább látható.

Fordító: Dénes Kohn, Metaphraser - Translation Company

s_gotoW3cHome Internacionalizációs Tevékenység
 

HTTP és meta a nyelvi információhoz

Célközönség: XHTML/HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), Web project managers, and anyone who needs to better understand how best to mark up their HTML with language information.

Megjegyzés: Változások történtek az eredeti angol változatban amióta a dokumentum le lett fordítva. Változások megtekintése.

Kérdés

Az XHTML dokumentumom nyelvét a language attribútummal, a Content-Language HTTP fejléccel vagy egy meta elemmel deklaráljam?

Háttér

A jelenlegi gyakorlat szerint számos különféle módon lehet XHTML dokumentumban meghatározni egy oldal nyelvét.

Az egyik módszer, hogy a lang és xml:lang attribútumokat használjuk a html tag-ben.

Például:
<html lang="en" xml:lang="en">

Emellett találhatunk olyan dokumentumokat amik ezt az információt meta elemmel fejezik ki.

Például:
<meta http-equiv="Content-Language" content="en"/>

Nyelvi információt a HTTP fejlécben is lehet találni ami elküldésre kerül a dokumentummal együtt (az utolsó sort nézzük az alább látható HTTP fejléc példájában).

Example:
HTTP/1.1 200 OK
Date: Wed, 05 Nov 2003 10:46:04 GMT
Server: Apache/1.3.28 (Unix) PHP/4.2.3
Content-Location: CSS2-REC.en.html
Vary: negotiate,accept-language,accept-charset
TCN: choice
P3P: policyref=http://www.w3.org/2001/05/P3P/p3p.xml
Cache-Control: max-age=21600
Expires: Wed, 05 Nov 2003 16:46:04 GMT
Last-Modified: Tue, 12 May 1998 22:18:49 GMT
ETag: "3558cac9;36f99e2b"
Accept-Ranges: bytes
Content-Length: 10734
Connection: close
Content-Type: text/html; charset=iso-8859-1
Content-Language: en

Emellett a meta elem és a HTTP fejléc is egy listányi értéket támogat. Az alábbi példa egy dokumentum fő nyelveit határozza meg (egyenlő mértékben) németre, franciára és olaszra.

Példa:
<meta http-equiv="Content-Language" content="de, fr, it"/>

A kérdés hogy ezek közül a módszerek közül melyik a legjobb megközelítés?

Válasz

Hogy ezt a kérdést megválaszoljuk, meg kell különböztetni (1) a nyelv meghatározását amit a tartalom feldolgázáshoz használunk és (2) a meta adatot amit a közönség meghatározására használunk. Ajánlott, hogy a lang és xml:lang attribútumokat a korábbihoz és a HTTP Content-Language beállítást vagy meta elemet az utóbbinál használjuk. A maradék válasz megkísérli elmagyarázni ezt a különbséget egy kicsit tisztábban.

A szöveget feldolgozó nyelv meghatározása

Amikor meghatározzuk a nyelvet a szöveg feldolgozásához, azt a nyelvet deklaráljuk, amelyben egy bizonyos szövegrész íródott, így a böngészők vagy alkalmazások mint a hangos böngészők vagy helyesírás ellenőrzők, hatékonyan tudják kezelni a kérdéses szöveget. Tehát ilyenkor egyetlen nyelvet társítunk egy bizonyos szövegrészhez. A körülötte lévő elemek öröklik a meghatározott értéket de természetesen ezeket felülírhatjuk egy kezdeti deklarációval úgy, hogy egy másik nyelvet határozunk meg beágyazott elemeknek, ahol a nyelv változik.

A meta adat meghatározása

Sok dokumentum tartalmaz a weben a teljes tartalom nyelvétől eltérő nyelven beágyazott részt. Általánosságban mondva azonban az oldal még így is csak egy bizonyos nyelv beszélőit célozza meg. Például egy német városkalauz Beijingről tartalmazhat hasznos kifejezéseket kínaiul, de a fő nyelve az oldalnak német, azaz németül beszélő célközönségnek szól.

Lehetséges azonban egy olyan szituáció ahol a weboldal ugyanazt az információt tartalmazza több mint egy nyelven. Például ez lehet egy olyan oldal ami köszönti a kanadai olvasókat francia tartalommal a bal oszlopban és ugyanaz a tartalom angolul van a jobb oldali oszlopban. Itt a dokumentum egyenlően célozza meg mindkét nyelv beszélőit. Ez a szituáció nem olyan mindennapi a weben mint a nyomtatott anyagban, mióta könnyen lehet egy különálló oldalra linkelni különböző célközönségnek.

Hasznos lehet meta adatot használni annak kifejezésre, hogy vajon egy bizonyos az olvasóit egy vagy több nyelven szólítja meg és hogy mik azok a nyelvek. Jegyezzük meg azonban, hogy mi a teljes dokumentumról beszélünk itt. Nem azt mondjuk, hogy bármilyen szövegrész a dokumentumban egy bizonyos nyelven van, amúgy ahogy egyébként tennénk ezt, ha a szöveg feldolgozásához határoznánk meg a nyelvet. Nem is az összes részlet nyelvét figyeljük a dokumentumban. Mi meta adattal határozzuk meg hogy ki a kívánt célközönsége a dokumentumnak.

A nyelv attribútumai, HTTP fejlécek és meta elemek közti választás

Hogy meghatározzuk a nyelvét egy részletnek az XHTML dokuemtumban, nincs más választásunk mint a lang és/vagy xml:lang attribútumokat használni a megfelelő elemeken. A HTTP fejléc vagy meta elem információ nem idevaló.

A terjedelemtől függően meg kell határoznunk a szöveg feldolgozás nyelvét teljes egészében a lang és/vagy xml:lang attribútumokkal a html tag-ben. Mivel minden más elem a dokumentumban a html tag része, azok természetüknél fogva öröklik ezt az értéket amíg az felülírásra nem kerül egy további attribútum által.

Ez alkalmazkodik a jelenlegi legjobb gyakorlati követelményekhez és a létező böngészők jelenleg felismerik a nyelvi értékeket amik ilyen módon vannak deklarálva, amikor nyelvspecifikus stílust kell alkalmazniuk, illetve alapértelmezett betűtípust jelenítenek meg a kínai, japán és koreai nyelvhez, stb.

A nyelvi deklarációkat a HTTP fejlécben vagy a meta elemekben egy fájl meta adatainak kifejezésére használandó.

Itt egy lista az okokról, hogy miért nem megfelelőek a szöveg feldolgozás nyelvének deklarálására:

A másik részről a tény, hogy egy HTTP fejléc vagy meta elem több mint egy nyelvet tud meghatározni nagyon hasznos a meta adat leírásához. Mivel a lang és xml:lang attribútumok leírják az elemeket és csal egyetlen nyelvre vannak limitálva, nem alkalmasak erre a feladatra.

Az hogy melyiket használjuk, az általános megegyezéstől függ. Ilyen dolgok nincsenek meghatározva a HTML specifikációban de lehetne szabványosítani más technológiákkal, mint pl. a keresőmotorok vagy más eszközök.

Más megfontolások

Vannak más lehetséges problémák a HTTP Content-Language fejléc használatával kapcsolatosan, mint pl. a kezelés és a szerveroldali információ használata. Sok szerző nehéznek találja a szerverbeállításokat, főleg amikor egy ISP-vel van dolguk. Így ez a megközelítés nem egy olyan megoldás ami mindig elérhető.

Továbbá hasznos lehet hibakeresőknek vagy fordítási folyamat vezetőknek, hogy azonosítani tudják egy fájl nyelvét vagy nyelveit a dokumentumba való betekintéssel. Így hasznos az információt a dokumentumom belül tálrolni, még akkor is ha HTTP fejlécet használunk

Mellesleg

Jegyezzük meg, hogy ez a vita nagyon különbözik a meta charset deklarálásától és a HTTP charset fejléctől. Nincs alternatív jelölés XHTML-ben egy dokumentum karakterkódolására és a HTTP fejléc elsőbbséget élvez a meta deklaráció fölött.

Ahol egy dokumentumnak kettő vagy több egyenlően elsődleges nyelve van, nehéz tudni hogy hogyan kezeljük a title elemet ha az több mint egy nyelven való szöveget tartalmaz. Ez az elem nem tartalmazhat jelölést és nem lehet ismételni.

Mondja el nekünk mit gondol! (Angol).

Feliratkozás RSS Feed-re.

Új források

Kezdőoldal hírek

Twitter (Kezdőoldal hírek)

‎@webi18n

További olvasnivaló

Szerző: Richard Ishida, W3C. Fordító: Dénes Kohn, Metaphraser - Translation Company.

Valid XHTML 1.0!
Valid CSS!
UTF-8-ben kódolva!

Angolról fordítva: 2004-07-02. A lefordított verzió utolsó módosítása: 2011-05-04 6:02 GMT

A dokumentum módosításainak a történetéhez keresse ezt az i18n blogban: qa-http-and-lang