תיעוד

לוקליזציה מדומה

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

תרגום פסאודו מחליף כל מחרוזת בטקסט מזויף מוכר. בשפה בעלת כיוון קריאה משמאל לימין, כל אות מקבלת סימן דגש והמחרוזת מתארכת בתוך סוגריים: שמור שינויים הופך ל- ⟦Šáṽé çĥáñĝéš··········⟧. בשפה בעלת כיוון קריאה מימין לשמאל, כל מחרוזת מתהפכת עם ביטול כיוון, כך שהדף נקרא מימין לשמאל עוד לפני הופעת העברית או הערבית.

בדף המתוצג באופן זה, שלוש בעיות נעשות גלויות:

  • טקסט רגיל לא הגיע מהקטלוג: הוא נכתב בתוך הקוד או נבנה בזמן ריצה.
  • טקסט חתוך לא השאיר מקום לשפות ארוכות יותר.
  • פריסה שנשארת במקומה בדף בעל כיוון קריאה מימין לשמאל משתמש ב'שמאל' ו'ימין' במקום 'התחלה' ו'סוף'.
גרמנית · תרגום פסאודו/de-DE/
סל הקניות שלך⟦סל הקניות שלך···········⟧

משלוח חינם על כל הזמנה

שמור שינויים⟦שמור שינויים··········⟧

המחירים כוללים מע״מ.⟦המחירים כוללים מע״מ.················⟧

ערבית · תרגום פסאודו/ar-SA/
סל הקניות שלך‮סל הקניות שלך‬

משלוח חינם על כל הזמנה

שמור שינויים‮שמור שינויים‬

המחירים כוללים מע״מ.‮המחירים כוללים מע״מ.‬

מה שהבדיקה גילתה
  1. טקסט שלא נלקח מהקטלוג/{locale}/ · p#promo · “משלוח חינם על כל הזמנה” · runtime_text (de-DE, ar-SA)
  2. טקסט שנחתך כשהוא מתארך/{locale}/ · button#save · “⟦שמור שינויים··········⟧” · clipped_text (de-DE)
  3. פריסה שאינה משקפת כיוון ימין‑ל‑שמאל/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)

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

בבדיקת גלובליזציה

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

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

מה שהוא מוצא הופך לממצאי הבדיקה:

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

אותו טקסט הנמצא בשתי השפות הוא ממצא אחד. הממצאים מופיעים ב- בעיות שנמצאו יחד עם הדף, האלמנט, הטקסט והשפות, כגון /{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA).

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

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

הגדר זאת

הוסף world.render אל .coroid/i18n.json:

{
  "world": {
    "render": {
      "start": "npm run dev",
      "pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
    }
  }
}
שדהמשמעות
startמפעיל את האפליקציה. עליה להקשיב ליציאה שבתוך $PORT; HOST הוא 127.0.0.1
pagesעד עשרה נתיבים, מהשורש של האפליקציה. {locale} הופך לתגית השפה, ולכן /{locale}/pricing פותח /de-DE/pricing; השתמש ב- /?lang={locale} אם השפה היא פרמטר שאילתה
directoryתיק האפליקציה במאגר, כאשר הוא אינו נמצא בשורש
installהפקודה שמתקינה תלויות. ללא הפקודה הזו, Coroid מפעיל npm כאשר יש package.json מגדיר כל סוג של
localesעד שלוש שפות יעד לרינדור. ללא הגדרה זו, נבחרת השפה הראשונה משמאל לימין והראשונה מימין לשמאל
readyTimeoutMsהזמן המרבי שבו האפליקציה יכולה להגיב, 120,000 כברירת מחדל

הדפדפן גם שולח כל שפה כשפת העדפה שלו, ולכן אפליקציה שבוחרת את השפה שלה מהדפדפן פועלת ללא {locale}.

השדה דורש CLI גרסה 1.16.0 או חדשה יותר בתוך ה- cli pin; מנוע ישן יותר דוחה את ההגדרה.

מה שנשאר בחוץ

הבדיקה קוראת רק את מה שהאדם רואה. היא מתעלמת מרכיבים נסתרים, קוד (code, pre, kbd, samp), מערכי ערכים של שדות טופס, ומרכיבים שסומנו translate="no", aria-hidden="true", data-i18n-ignore או עם הכיתה notranslate. מילים ברשימת ה- world.allow כמו שמות מוצרים, אינן מדווחות כטקסט רגיל.

טקסט שמקורו בנתונים שלכם, כמו שמות מוצרים או תוכן משתמש, אינו מתורגם על ידי הקטלוג גם כן. סמנו את המכלול שלו translate="no" או data-i18n-ignore, מה שגם מורה לכלי תרגום של הדפדפן להשאיר אותו ללא שינוי.

נסו זאת בעצמכם

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

coroid-i18n pseudo --locale de-DE                # accented and longer
coroid-i18n pseudo --locale ar-SA                # reversed, right to left
coroid-i18n pseudo --locale de-DE --style rtl    # choose the style yourself

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