Menu

Atribut lang HTML: Kode Bahasa dan Apa yang Diubahnya

Atribut lang memberi tahu browser, screen reader, dan alat terjemahan bahasa apa yang dipakai kontenmu. Pelajari di mana menaruhnya, kode apa yang dipakai (en, en-US, pt-BR), cara menandai frasa dalam bahasa lain, dan hal-hal terlihat yang diubahnya.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Mengatur bahasa halaman

Taruh atribut lang di elemen <html>, dengan kode bahasa yang dipakai untuk menulis halamanmu:

Atribut ini tidak mengubah tampilan paragraf ini, tapi mengubah cara halaman ditangani: screen reader membacanya dengan suara berbahasa Inggris, browser memakainya saat memutuskan apakah perlu menawarkan terjemahan, dan pemeriksa ejaan bisa memakainya untuk memilih kamus bahasa Inggris. Tanpa atribut ini, alat-alat itu harus menebak, dan screen reader yang diatur ke bahasa lain bisa membaca teks berbahasa Inggris dengan pelafalan yang salah.

Kode bahasa

Nilainya adalah tag bahasa dari standar BCP 47. Kebanyakan berupa kode bahasa dua huruf, yang boleh diikuti region atau aksara:

KodeBahasa
enBahasa Inggris
en-US, en-GBBahasa Inggris yang dipakai di Amerika Serikat, di Inggris
es, es-MXBahasa Spanyol, bahasa Spanyol yang dipakai di Meksiko
pt-BRBahasa Portugis yang dipakai di Brasil
fr, de, itBahasa Prancis, Jerman, Italia
ar, heBahasa Arab, Ibrani (dari kanan ke kiri, lihat di bawah)
ja, koBahasa Jepang, Korea
zh-Hans, zh-HantBahasa Tionghoa dengan aksara sederhana, tradisional

Kode tidak peka huruf besar kecil, tapi konvensinya adalah huruf kecil untuk bahasa dan huruf besar untuk region. Tambahkan region hanya saat variasinya penting; en adalah nilai yang lengkap dan benar.

Hal-hal yang diubah lang dan bisa kamu lihat

Kebanyakan efek lang adalah untuk perangkat lunak, tapi beberapa terlihat di layar. Tanda kutip dari elemen <q> mengikuti bahasanya, begitu juga aturan huruf besar kecil:

Setiap baris mendapat gaya tanda kutipnya sendiri. Di kolom terakhir, text-transform: uppercase yang sama menghasilkan "ISTANBUL" dalam bahasa Inggris dan "İSTANBUL" dalam bahasa Turki, karena bahasa Turki mempertahankan titik pada huruf i kapital. Ubah lang di baris bahasa Turki menjadi en dan titiknya hilang. Pemenggalan kata otomatis (hyphens: auto di CSS) juga bergantung pada lang: browser perlu tahu bahasanya untuk tahu di mana kata boleh dipenggal.

Menandai frasa dalam bahasa lain

lang berfungsi di elemen mana pun, bukan hanya <html>. Saat halaman dalam satu bahasa mengutip frasa dalam bahasa lain, bungkus frasanya dan beri kodenya sendiri. CSS bisa menargetkan bahasa dengan selector :lang():

Screen reader beralih ke pelafalan bahasa Prancis untuk "bon appétit" lalu kembali ke bahasa Inggris setelahnya. :lang(fr) juga cocok dengan fr-CA dan varian bahasa Prancis lainnya, dan cocok dengan elemen yang mewarisi bahasa dari elemen leluhurnya, yang akan terlewat oleh selector atribut seperti [lang="fr"].

Bahasa dari kanan ke kiri: dir

Bahasa Arab, Ibrani, Persia, dan Urdu ditulis dari kanan ke kiri. lang menyebut bahasanya; atribut dir mengatur arahnya. Halaman yang seluruhnya berbahasa Arab memakai keduanya di <html>:

<html lang="ar" dir="rtl">

Untuk frasa pendek yang ditulis dari kanan ke kiri di dalam halaman yang ditulis dari kiri ke kanan, taruh keduanya di elemen di sekelilingnya:

Blockquote rata ke kanan dan garis hijaunya juga pindah ke kanan, karena border-inline-start mengikuti arah teks. Memakai property logis seperti margin-inline-start, bukan margin-left, menjaga layout tetap benar di kedua arah.

lang vs hreflang

lang menjelaskan konten sebuah elemen. hreflang ditaruh di link dan menjelaskan halaman yang ditujunya. Situs yang punya terjemahan mencantumkan setiap versinya di <head> supaya mesin pencari bisa mengarahkan setiap pembaca ke versi yang tepat:

<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="de" href="https://example.com/de/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">

Setiap halaman terjemahan tetap mengatur lang-nya sendiri di <html>: lang="de" di halaman berbahasa Jerman.

Kesalahan umum

  • Tidak menulis lang. Banyak template melupakannya; atur di samping doctype di setiap halaman.
  • Menyalin lang="en" ke halaman terjemahan. Halaman berbahasa Jerman yang ditandai sebagai bahasa Inggris akan dibaca dengan pelafalan bahasa Inggris. Sesuaikan dengan kontennya.
  • Memakai kode negara sebagai bahasa. lang="jp" dan lang="gr" bukan bahasa Jepang dan Yunani; kodenya adalah ja dan el.
  • Memakai lang untuk mengatur arah. lang="ar" saja tidak membuat teks berjalan dari kanan ke kiri. Tambahkan dir="rtl".
  • Menulis lang="en_US". Pemisahnya adalah tanda hubung: en-US.

Pertanyaan yang sering diajukan

Apa fungsi atribut lang di HTML?

Atribut ini menyatakan bahasa konten sebuah elemen. Screen reader memakainya untuk memilih suara dan pelafalan yang tepat, browser memakainya untuk menawarkan terjemahan, memilih tanda kutip, dan memenggal kata, dan beberapa pemeriksa ejaan memakainya untuk memilih kamus.

Apa yang harus ditulis di atribut lang pada html?

Kode bahasa dari standar BCP 47: en untuk bahasa Inggris, es untuk bahasa Spanyol, fr untuk bahasa Prancis, ja untuk bahasa Jepang. Tambahkan region hanya saat itu penting, seperti di en-US, en-GB atau pt-BR.

Sebaiknya pakai lang="en" atau lang="en-US"?

Keduanya valid. en sudah cukup untuk kebanyakan halaman berbahasa Inggris. Pakai en-US atau en-GB saat variasi regionalnya penting, misalnya untuk ejaan, tanggal, atau pelafalan beberapa kata.

Apakah atribut lang berpengaruh pada SEO?

Google pernah menyatakan bahwa mereka mendeteksi bahasa dari teksnya sendiri dan tidak bergantung pada atribut lang. Tetap atur dengan benar: mesin pencari lain, alat terjemahan, dan screen reader memakainya. Untuk menghubungkan versi terjemahan sebuah halaman, pakai link hreflang.

Bagaimana cara menandai teks dalam bahasa lain?

Tambahkan lang ke elemen di sekelilingnya: <span lang="fr">bon appétit</span>. Screen reader mengganti pelafalan untuk frasa itu, dan CSS bisa memberinya gaya dengan :lang(fr).

Apa perbedaan lang dan hreflang?

lang menyatakan bahasa konten sebuah elemen. hreflang ditaruh di link dan menyatakan bahasa halaman yang dituju, begitulah cara situs mengarahkan mesin pencari ke versi bahasa lain dari sebuah halaman.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai