HTML kodlarında lang etiketi lisan/dil belirtmek için kullanılır. Arama motorları bu lang etiketini dikkate alarak site içerisinde kullanılan dili algılar ve ona göre işlemler yapar. Sadece arama motorları değil tarayıcılarda lang etiketini kullanır ve sayfanın diline göre gerekli işlemleri yapar ve bazı eklentiler ile sayfa/yazı çevirme işlemlerini gerçekleştirir.
Lang etiketi modern tarayıcıların tümü tarafından desteklenmektedir. (Google Chrome, Firefox, Opera, Safari ve Internet Explorer)
HTML lang etiketi genel olarak internet siteleri tek dilden oluştuğu için <html> etiketine yerleştirilir. Buradaki tek dilden kasıt sitenin İngilizce yada Almanca versiyonun olmaması değil bir sayfada sadece bir dilin kullanılmasıdır.
Basitçe tek bir sayfada html lang etiketini şu şekilde kullanabiliriz.
<html lang="tr"> <head> <title>UPGO HTML Lang Kullanımı</title> <meta charset="UTF-8"/> </head> <body> <!-- içerik kodlarınız --> </body> </html>
Tabiki bir sayfada tek dil kullanmak zorunda değilsiniz. Bir sayfada birden çok dil kullanıyorsanız tek bir lang etiketi yerine hangi alanlarda hangi dili kullanıyorsanız o dile ait lang etiketini kullanabilirsiniz.
Kod halinde bunu daha iyi anlayacağınız düşünüyorum. Örnek olarak bir şarkı çeviri sitemiz olsun ve bu sitede İngilizce şarkıların sözlerini Türkçe olacak şekilde paylaşıyoruz fakat sitemiz tek dil değil. Üst kısımda İngilizce sözler, alt kısımda ise Türkçe sözler mevcut. Bunun için 2 ayrı alan yada paragraf oluşturmuş olmamız gerekiyor, örnekte paragraf (p) ile göreceğiz.
<p class="ingilizce" lang="en"> Hello world! <p> <p class="turkce" lang="tr"> Merhaba dünya! </p>
Gördüğünüz gibi çeviri yaptık ve lang etiketlerini kullandık. Kodun uzun ve karışık olmaması için şarkı sözü yerine 2 kelimelik bir yazı ekledim buna takılmayalım.
Peki bu lang etiketini bütün html kodlarıyla kullanabilir miyiz? Sadece birkaç kod hariç bütün html kodları için lang ifadesini kullanabilirsiniz.
Birlikte kullanamayacağınız ifadeler: (HTML 5 ve 4.1 sürümü arasındaki farklardan dolayı)
- <base>
- <br>
- <frame>
- <frameset>
- <hr>
- <iframe>
- <param>
- <script>
Dikkat! Bazı kişiler sitesinin ve içeriğinin dili Türkçe olmasına rağmen kodlar İngilizce olduğu için <html lang=”en”> şeklinde İngilizce (en) dil seçimi yapıyor ve bu yanlış bir kullanımdır. Kodların değil içeriğin diline göre seçim yapmalısınız.
Peki bu tr, en gibi dil kodlarını neye göre belirliyoruz ve yazıyoruz? Bu kısaltmalar ISO 639-1 dil kodlarına göre yapılmaktadır. Tarayıcılar ve arama motorları bu dil kodlamasını referans almaktadır. Bu kodlama haricinde yapacağınız etiketler geçersiz sayılacaktır ve bir anlam ifade etmeyecektir.
Örnek (Yanlış kullanım):
<a href="index.html" lang="english">Click here</a>
Burada ISO 639-1 dil kodlamasında İngilizce dili english değil en olduğundan yanlış bir kullanım yapılmış oldu.
ISO 639-1 dil kodlamasına göre popüler dillerin kodları:
- Arapça: ar
- Azerice: az
- Çin: zh
- İngilizce: en
- Fransızca: fr
- Almanca: de
- İtalyanca: it
- Japonca: ja
- Latince: la
- Rusça: ru
- İspanyolca: es
- Türkçe: tr
Bütün ISO 639-1 kodları için: https://goo.gl/TXeBVC
gayet anlaşılır.
aşağıdaki sorunun cevabınıda söylerseniz seviniri
tam olarak ne işe yarıyor.