דלגו לתוכן
i18n Doctor

i18n Doctor: קבל דוח מקיף על תקינות התרגום בפקודה אחת

הפעל את better-i18n doctor כדי לנתח את כל בסיס הקוד שלך בחמישה ממדים — איכות הקוד, כיסוי התרגום, דיוק מחזיקי המקום, מפתחות יתומים וסנכרון CDN — וקבל ציון בריאות יחיד בין 0 ל-100 עם אבחון בר-ביצוע.

$ better-i18n doctor
better-i18n · דוח i18n Doctor
████████████████░░░░82 / 100A
PASSED (threshold: 70)
Coverage95(3 issues)
Quality88(2 issues)
Code72(8 issues)
Structure100(clean)
Performance91(1 issue)

חמש שכבות ניתוח במעבר אחד

Doctor מבצע סריקת קוד, ניתוח כיסוי, אימות איכות, ביקורת ביצועים ובדיקות סנכרון CDN — הכל בבת אחת, עם ציון מאוחד.

קוד — זיהוי מחרוזות קבועות

סריקה מבוססת AST מוצאת כל מחרוזת המוצגת למשתמש שאינה עטופה ב-t(). מאתרת טקסט JSX, תכונות, לוגיקה מקומית משולשת, הודעות טוסט ומשתני מחרוזת.

כיסוי — תרגומים חסרים

משווה מפתחות הקיימים באזור השפה המקורי שלך לכל אזור שפה יעד. כל מפתח החסר באזור שפה יעד מדווח עם שם המרחב והנתיב המדויקים שלו.

איכות — אי התאמה בין מחליפים

מאמת שמחליפי אינטרפולציה עקביים בכל האזורים. תומך בפורמטים {}, {{}}, printf%s, template ${}, ו-{0}.

ביצועים — זיהוי מפתחות יתומים

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

סנכרון — השוואת CDN

משווה מפתחות שהוצאו מהקוד שלך למפתחות שפורסמו ב-CDN. חושף בעיות של מפתחות חסרים במרחקים ומפתחות מרחוק שאינם בשימוש לפני שהם מגיעים לייצור.

ציון יחיד לבריאות התרגום שלך

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

סף המעבר המוגדר כברירת מחדל הוא 70 (ציון B). השתמש ב--ci כדי לדחות בנייה שמתחת לסף זה, או התחל עם --report כדי לקבוע בסיס ייחוס לפני אכיפת הציון.

נוסחת הניקוד
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)

סף ציונים

A+≥ 90
לעבור
A≥ 80
לעבור
B≥ 70
לעבור
C≥ 50
נכשל
F< 50
נכשל

שילוב CI/CD — חסימת תרגומים גרועים לפני שהם יוצאים לאור

הוסף רופא לצינור ה-CI שלך כדי לתפוס רגרסיות תרגום בכל דחיפה. אימות OIDC אוטומטי ב-GitHub Actions פירושו אפס ניהול סודות.

פעולות GitHub עם OIDC

אמת באופן אוטומטי ללא מפתחות API באמצעות GitHub Actions OIDC. פשוט הוסף id-token: הרשאת כתיבה והפעל doctor --ci --report.

שער סף

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

JSON הניתן לקריאה על ידי מחשב

השתמש ב---format json לקבלת פלט מובנה שניתן להעביר ל-jq, לוחות מחוונים מותאמים אישית או אוטומציה במורד הזרם בצינור הפריסה שלך.

דיווח לוח מחוונים

העלה את התוצאות למרכז השליטה של Better I18N באמצעות --report לצורך מעקב היסטורי, ניתוח מגמות ונראות כלל-צוותית של תקינות i18n.

# GitHub Actions example
- run: npx @better-i18n/cli doctor --ci --report

מתי להשתמש באיזו פקודה

Doctor היא האפשרות המקיפה. השתמש בפקודות ממוקדות כאשר אתה זקוק לבדיקה ספציפית או מעוניין לקבל משוב מהיר יותר בהוקס של pre-commit.

רופא

ציון בריאות מלא עם חמש שכבות ניתוח — המקור היחיד לאמת עבור מצב ה-i18n של הפרויקט שלך.

סריקה

זיהוי מחרוזות קבועות מראש ממוקד. תומך ב--staged עבור ווים לפני אישור.

לבדוק

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

סנכרון

השוואה מלאה בין המקומי למרוחק המציגה בו-זמנית את המפתחות החסרים והבלתי בשימוש.

נוצר עבור תהליכי עבודה i18n בעולם האמיתי

ציון בריאות 0–100

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

מעקב אחר היקף לקסיקלי

זיהוי מרחב שמות חכם עבור useTranslations ו-getTranslations. כל קריאה ל-t() ממופה למרחב השמות הנכון שלה.

תמיכה ברכיבי שרת

תמיכה מלאה בפונקציות שרת אסינכרוניות של Next.js App Router. קריאות getTranslations בצד השרת מזוהות ונבדקות.

כללים הניתנים להגדרה

השבת או הורד את רמת החוקים ב-i18n.config.ts. הגדר את החוקים ל-"error", "warning" או "off" בהתאם לצרכי הפרויקט שלך.

סינון חכם

מתעלם אוטומטית משמות מחלקות CSS, כתובות URL, נתיבי ייבוא וקבועים של מפתחים. רק תוצאות שניתן לפעול לפיהן.

יומן ביקורת מפורט

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

בדקו את תקינות התרגום לפני שתשלחו אותו

הפעל את better-i18n doctor פעם אחת כדי לקבל את בסיס הייחוס שלך. הוסף אותו ל-CI כדי שלא לשלוח שוב תרגומים חסרים.