Menu

HTML lang: קודי שפה ומה המאפיין משנה בעמוד

המאפיין lang אומר לדפדפנים, לקוראי מסך ולכלי תרגום באיזו שפה כתוב התוכן. למדו איפה לשים אותו, באילו קודים להשתמש (en, en-US, pt-BR), איך לסמן ביטוי בשפה אחרת, ומה הוא משנה באופן גלוי.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

הגדרת שפת העמוד

שימו את המאפיין lang על האלמנט <html>, עם הקוד של השפה שבה העמוד כתוב:

למאפיין אין השפעה גלויה על הפסקה הזו, אבל הוא משנה את האופן שבו העמוד מטופל: קורא מסך מקריא אותו בקול אנגלי, הדפדפן משתמש בו כשהוא מחליט אם להציע תרגום, ובודק איות יכול לבחור לפיו את המילון האנגלי. בלעדיו הכלים צריכים לנחש, וקורא מסך שמוגדר לשפה אחרת עלול להקריא את הטקסט האנגלי בהגייה שגויה.

קודי שפה

הערך הוא תג שפה מתקן BCP 47. רובם קוד שפה בן שתי אותיות, ואחריו אפשר להוסיף אזור או כתב:

קודשפה
enאנגלית
en-US, en-GBאנגלית כפי שמדברים בארצות הברית, בבריטניה
es, es-MXספרדית, ספרדית כפי שמדברים במקסיקו
pt-BRפורטוגזית כפי שמדברים בברזיל
fr, de, itצרפתית, גרמנית, איטלקית
ar, heערבית, עברית (מימין לשמאל, ראו בהמשך)
ja, koיפנית, קוריאנית
zh-Hans, zh-Hantסינית באותיות מפושטות, מסורתיות

הקודים לא רגישים לאותיות גדולות וקטנות, אבל המוסכמה היא שפה באותיות קטנות ואזור באותיות גדולות. הוסיפו אזור רק כשהגרסה משנה; en הוא ערך שלם ונכון.

דברים ש-lang משנה ושאפשר לראות

רוב ההשפעות של lang נועדו לתוכנה, אבל כמה מהן מופיעות על המסך. המירכאות של האלמנט <q> נקבעות לפי השפה, וכך גם כללי האותיות הגדולות:

כל שורה מקבלת סגנון מירכאות משלה. בעמודה האחרונה, אותו text-transform: uppercase נותן "ISTANBUL" באנגלית ו-"İSTANBUL" בטורקית, כי בטורקית נשארת הנקודה על i גדולה. שנו את ה-lang של השורה הטורקית ל-en והנקודה נעלמת. גם פיצול מילים אוטומטי (hyphens: auto ב-CSS) תלוי ב-lang: הדפדפן צריך לדעת את השפה כדי לדעת איפה מותר לשבור מילים.

סימון ביטויים בשפה אחרת

lang עובד על כל אלמנט, לא רק על <html>. כשעמוד בשפה אחת מצטט ביטוי בשפה אחרת, עטפו את הביטוי ותנו לו קוד משלו. CSS יכול לפנות לשפות עם הסלקטור :lang():

קורא מסך עובר להגייה צרפתית ב-"bon appétit" וחוזר לאנגלית אחריו. :lang(fr) מתאים גם ל-fr-CA ולכל גרסה אחרת של צרפתית, והוא מתאים גם לאלמנטים שיורשים את השפה מאב קדמון, מה שסלקטור מאפיין כמו [lang="fr"] היה מפספס.

שפות מימין לשמאל: dir

ערבית, עברית, פרסית ואורדו נכתבות מימין לשמאל. lang קובע את השפה; המאפיין dir קובע את הכיוון. עמוד שלם בערבית משתמש בשניהם על <html>:

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

לביטוי קצר מימין לשמאל בתוך עמוד משמאל לימין, שימו את שניהם על האלמנט שעוטף אותו:

ה-blockquote מתיישר לימין והפס הירוק שלו עובר גם הוא לימין, כי border-inline-start הולך לפי הכיוון. שימוש במאפיינים לוגיים כמו margin-inline-start במקום margin-left שומר על פריסה נכונה בשני הכיוונים.

lang מול hreflang

lang מתאר את התוכן של אלמנט. hreflang נמצא על קישור ומתאר את העמוד שהוא מפנה אליו. אתרים עם תרגומים מפרטים כל גרסה ב-<head> כדי שמנועי חיפוש ישלחו כל קורא לגרסה הנכונה:

<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/">

כל עמוד מתורגם עדיין מגדיר lang משלו על <html>: lang="de" בעמוד הגרמני.

טעויות נפוצות

  • להשמיט את lang. הרבה תבניות שוכחות אותו; הגדירו אותו ליד ה-doctype בכל עמוד.
  • להעתיק lang="en" לעמודים מתורגמים. עמוד בגרמנית שמסומן כאנגלית מוקרא בהגייה אנגלית. התאימו אותו לתוכן.
  • להשתמש בקוד מדינה כקוד שפה. lang="jp" ו-lang="gr" הם לא יפנית ויוונית; הקודים הם ja ו-el.
  • להשתמש ב-lang כדי לקבוע כיוון. lang="ar" לבדו לא גורם לטקסט לרוץ מימין לשמאל. הוסיפו dir="rtl".
  • לכתוב lang="en_US". המפריד הוא מקף: en-US.

שאלות נפוצות

מה עושה המאפיין lang ב-HTML?

הוא מצהיר על השפה של התוכן באלמנט. קוראי מסך משתמשים בו כדי לבחור את הקול וההגייה הנכונים, דפדפנים משתמשים בו כדי להציע תרגום, לבחור מירכאות ולפצל מילים בסוף שורה, וחלק מבודקי האיות בוחרים לפיו מילון.

מה לשים במאפיין lang של html?

קוד שפה מתקן BCP 47: en לאנגלית, es לספרדית, fr לצרפתית, ja ליפנית. הוסיפו אזור רק כשזה משנה, כמו ב-en-US, en-GB או pt-BR.

להשתמש ב-lang="en" או ב-lang="en-US"?

שניהם תקינים. en מספיק לרוב העמודים באנגלית. השתמשו ב-en-US או ב-en-GB כשהגרסה האזורית משנה, למשל בכתיב, בתאריכים או בהגייה של מילים מסוימות.

האם המאפיין lang משפיע על SEO?

Google אמרה שהיא מזהה את השפה מהטקסט עצמו ולא מסתמכת על המאפיין lang. הגדירו אותו נכון בכל זאת: מנועי חיפוש אחרים, כלי תרגום וקוראי מסך משתמשים בו. כדי לקשר בין גרסאות מתורגמות של עמוד, השתמשו בקישורי hreflang.

איך מסמנים טקסט בשפה אחרת?

הוסיפו lang לאלמנט שעוטף אותו: <span lang="fr">bon appétit</span>. קוראי מסך מחליפים את ההגייה בביטוי הזה, ו-CSS יכול לעצב אותו עם :lang(fr).

מה ההבדל בין lang ל-hreflang?

lang אומר באיזו שפה התוכן של אלמנט. hreflang נמצא על קישור ואומר באיזו שפה העמוד המקושר, וכך אתרים מפנים את מנועי החיפוש לגרסאות השפה האחרות של עמוד.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל