Παρακάμψτε τη διαδρομή με την είσοδο 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 | Έκδοση Translator REST API. Η προεπιλογή είναι 3.0. |
maxRetries | integer | Μέγιστες προσπάθειες επανάληψης σε παροδικές αποκρίσεις HTTP (408, 425, 429, 500, 502, 503, 504). Η προεπιλογή είναι 5. Οι συνολικές κλήσεις HTTP ανά αίτημα είναι 1 + maxRetries. |
retryBackoffMs | integer | Ανώτατο όριο (ms) σε κάθε μεμονωμένο ύπνο οπισθοδρόμησης. Η προεπιλογή είναι 30000. Η κεφαλίδα Retry-After του Azure τιμάται ακριβώς όταν υπάρχει. Κατά τα άλλα χρησιμοποιείται εκθετική οπισθοδρόμηση, με ανώτατο όριο αυτή την τιμή. |
protectPlaceholders | boolean | Η προεπιλογή είναι true. Όταν είναι ενεργοποιημένα, διακριτικά όπως {{name}}, ${var}, {0}, {0:N2}, %s, %1$s και οντότητες HTML αντικαθίστανται με διακριτικά φρουρού πριν από τη μετάφραση και αποκαθίστανται στη συνέχεια. Απενεργοποίηση μόνο όταν η πηγή περιέχει σκόπιμα σταθερές σε σχήμα κράτησης θέσης. |
customPlaceholderPatterns | string[] | Επιπλέον μοτίβα regex (χωρίς οριοθέτες) προστέθηκαν στο προεπιλεγμένο σύνολο κράτησης θέσης, π.χ. <<.+?>> για προσαρμοσμένη σύνταξη διακριτικού. Τα μη έγκυρα regex αγνοούνται. |
noTranslatePatterns | string[] | Τα μοτίβα σφαιρών ταιριάζουν με τα πλήκτρα επιπέδου αναλυτή (διακεκομμένη διαδρομή JSON, RESX name, msgid PO, id μονάδας XLIFF, κλειδί INI/restext). Τα κλειδιά που ταιριάζουν απορρίπτονται από το αίτημα και περνούν με τη διατήρηση της τιμής πηγής τους. |
Παραγγελία φόρτωσης
- Η ενέργεια διαβάζει ρητές εισόδους από τη ροή εργασίας.
- Φορτώνει τη διαμόρφωση YAML από
configPath. - Για κάθε κοινόχρηστο πεδίο, η είσοδος κερδίζει. Διαφορετικά, χρησιμοποιείται η τιμή YAML.
- Οι συγχωνευμένες τιμές επικυρώνονται. Οι μη έγκυρες απαρίθμηση (π.χ.
profanityAction: Mask) προκαλούν γρήγορη αποτυχία της ενέργειας με ένα σαφές μήνυμα.
Τόνος και βιομηχανία, με απλά λόγια
Το Azure AI Translator v3 API δεν διαθέτει κουμπί ενός τόνου. Δύο ρυθμίσεις συνδυάζονται για να σας δώσουν το μεγαλύτερο μέρος του ίδιου ελέγχου:
- Κλάδος / τομέας: Χρησιμοποιήστε
categoryIdγια να δείξετε μια κατηγορία Azure Custom Translator που έχει εκπαιδευτεί στο δικό σας σώμα — νομικό, τεχνικό, ιατρικό, μάρκετινγκ ή οτιδήποτε άλλο. Αυτός είναι ο ισχυρότερος μοχλός για τον τόνο, τη φωνή της επωνυμίας και το λεξιλόγιο. - Επιφανειακό κείμενο: Χρησιμοποιήστε το Γλωσσάριο για να κλειδώσετε κατά λέξη επωνυμίες και όρους προϊόντων και χρησιμοποιήστε το
profanityActionγια να διαγράψετε βωμολοχίες κατά τη στόχευση τοπικής προσαρμογής για νεότερο κοινό.