עקף את הנתיב עם קלט configPath אם אתה צריך מיקום לא ברירת מחדל.
סכימה
# .github/resource-translator.ymlsourceLocale: entoLocales: - fr - de - esinclude: - "src/**/*.en.json" - "apps/**/*.en.resx"exclude: - "**/__tests__/**"glossary: Acme: Contoso Octocat: Octocat # keep brand names verbatim
# Domain / industry — uses an Azure Custom Translator category trained on# your tone and vocabulary. Leave unset for the general model.categoryId: my-custom-translator-category
# Translator request shape — most users can ignore these.textType: plain # plain | htmlprofanityAction: NoAction # NoAction | Marked | DeletedprofanityMarker: Asterisk # Asterisk | Tag (only when profanityAction == Marked)allowFallback: true # false fails when the categoryId has no deployment
apiVersion: "3.0"
# Resilience — Translator returns 429 under load. Defaults are usually# fine; tune only if your runs are large enough to hit them.maxRetries: 5retryBackoffMs: 30000 # cap on any single backoff sleep (ms)
# Placeholder protection. ON by default — wraps tokens like {{name}},# {0}, %s, ${var} into sentinels before translation and restores them# on the way back. Set false only when source intentionally contains# placeholder-shaped literals.protectPlaceholders: truecustomPlaceholderPatterns: - "<<.+?>>" # any extra token syntax you use
# Per-key opt-out. Keys matching any glob are dropped from the request# and pass through with the source value preserved.noTranslatePatterns: - "errors.code.*" - "brands.*"התייחסות לשדה
| שדה | סוג | הערות |
|---|---|---|
sourceLocale | string | הוא חוזר לקלט sourceLocale אם לא מוגדר. גם הועברתי למתרגם from=<locale> כך שמחרוזות קצרות לא יתגלו אוטומטית. |
toLocales | string[] | או מערך או מחרוזת מופרדת בפסיק. |
include / exclude | string[] | דפוסי גלוב הוערכו מול מסלולים אבסולוטיים ויחסיים למרחבי עבודה. |
glossary | map<string,string> | מונחים לאחר התרגום עוקפים. מודע לגבולות מילים (מטפל ב-C++, .NET). |
categoryId | string | קטגוריית Azure Custom Translator — תחום התעשייה/הדומיין שלך (משפטי, רפואי, שיווקי וכו'). נשלח כ-?category=.... |
textType | "plain" | "html" | ברירת המחדל היא plain. השתמש html רק אם ערכי המשאבים שלך מכילים פרגמנטים אמיתיים של HTML. |
profanityAction | "NoAction" | "Marked" | "Deleted" | איך להתייחס למונחים גסים בתוצרים מתורגמים. |
profanityMarker | "Asterisk" | "Tag" | רק כש profanityAction "Marked". |
allowFallback | boolean | הגדר false להיכשל בתרגום כשאין categoryId שלך פריסה למיקום יעד במקום לחזור למודל הכללי. |
apiVersion | string | גרסת API של REST למתרגם (REST). ברירת המחדל היא 3.0. |
maxRetries | integer | ניסיונות ניסיון חוזרים מרביים על תגובות HTTP חולפות (408, 425, 429, 500, 502, 503, 504). ברירת המחדל היא 5. סך כל קריאות HTTP לכל בקשה הוא 1 + maxRetries. |
retryBackoffMs | integer | קאפ (ms) בכל שינת Backoff בודדת. ברירת המחדל היא 30000. הכותרת Retry-After של אזור מכובדת בדיוק כשהיא נוכחת; אחרת משתמשים בחזרה מעריכית רועדת, שמוגבלת לערך זה. |
protectPlaceholders | boolean | ברירת המחדל היא true. כאשר פועלים, טוקנים כמו {{name}}, ${var}, {0}, {0:N2}, %s, %1$s ו-HTML מוחלפים בטוקנים של סנטינל לפני התרגום ומשוחזרים לאחר מכן. בטל רק כאשר המקור מכיל בכוונה מילוליים בצורת משאבים זמניים. |
customPlaceholderPatterns | string[] | תבניות regex נוספות (ללא מגבילים) נוספו לסט הזמני ברירת המחדל, למשל <<.+?>> לתחביר טוקנים מותאם אישית. רגקסים לא תקפים מתעלמים מהם. |
noTranslatePatterns | string[] | תבניות גלוב התאימו למפתחות ברמת המנתח (JSON dotted path, RESX name, PO msgid, XLIFF unit id, מפתח INI/restext). מפתחות תואמים נשלטים מהבקשה ומועברים עם ערך המקור שלהם נשמר. |
סדר הטעינה
- הפעולה קוראת קלטים מפורשים מתהליך העבודה.
- הוא טוען את קונפיגורציית ה-YAML מ-
configPath. - על כל שדה משותף, הקלט מנצח; אחרת משתמשים בערך YAML.
- הערכים הממוזגים מאומתים. אנומים לא תקינים (למשל
profanityAction: Mask) גורמים לפעולה להיכשל במהירות עם הודעה ברורה.
טון ותעשייה, במונחים פשוטים
ל-Azure AI Translator v3 API אין כפתור טון יחיד. שתי הגדרות משתלבות כדי לתת לך את רוב השליטה:
- תעשייה / תחום: השתמש
categoryIdכדי להצביע על קטגוריית Azure Custom Translator שמאומנת על קורפוס משלך — משפטי, טכני, רפואי, שיווקי או כל דבר אחר. זהו המנוף החזק ביותר לטון, קול מותג ואוצר מילים. - טקסט שטחי: השתמשו מילון מונחים כדי לנעול שמות מותגים ומונחי מוצר במילה, והשתמשו
profanityActionכדי למחוק מונחים גסים כאשר מכוונים ללוקליזציה לקהלים צעירים.