Παρακάμψτε τη διαδρομή με την είσοδο configPath εάν χρειάζεστε μια μη προεπιλεγμένη θέση.
Σχήμα
# .github/resource-translator.ymlsourceLocale: en
# Provider config can be nested. Keep secrets in workflow inputs; use repo# config for non-secret defaults like region, model, formality, or category.provider: azure: categoryId: my-custom-translator-category apiVersion: "3.0" allowFallback: true
toLocales: - fr - de - esinclude: - "src/**/*.en.json" - "apps/**/*.en.resx"exclude: - "**/__tests__/**"glossary: Acme: Contoso Octocat: Octocat # keep brand names verbatim
# Translator request shape — most users can ignore these.textType: plain # plain | htmlprofanityAction: NoAction # NoAction | Marked | DeletedprofanityMarker: Asterisk # Asterisk | Tag (only when profanityAction == Marked)
# 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.*"Αναφορά πεδίου
providerEither a provider string or a nested provider block (provider.azure, provider.aws, or provider.google). Prefer nested blocks for provider-specific settings; keep secrets in workflow inputs rather than committed config.
sourceLocaleΕπιστρέφει στην είσοδο sourceLocale εάν δεν έχει οριστεί. Επίσης προωθείται στον Μεταφραστή ως from=<locale> έτσι οι σύντομες συμβολοσειρές δεν ανιχνεύονται αυτόματα.
toLocalesΕίτε ένας πίνακας είτε μια συμβολοσειρά διαχωρισμένη με κόμματα.
include / excludeΤα μοτίβα σφαιρών αξιολογούνται σε απόλυτες διαδρομές και διαδρομές σχετικές με το χώρο εργασίας.
glossaryΟ όρος μετά τη μετάφραση παρακάμπτεται. Επίγνωση ορίων λέξεων (χειρίζεται C++, .NET).
categoryIdΚατηγορία Azure Custom Translator — το κουμπί του κλάδου/τομέα σας (νομικός, ιατρικός, τόνος μάρκετινγκ κ.λπ.). Στάλθηκε ως ?category=....
textTypeΗ προεπιλογή είναι plain. Χρησιμοποιήστε html μόνο εάν οι τιμές των πόρων σας περιέχουν πραγματικά τμήματα HTML.
profanityActionΠώς να αντιμετωπίσετε τους βέβηλους όρους στο μεταφρασμένο αποτέλεσμα.
profanityMarkerΈχει νόημα μόνο όταν profanityAction είναι "Marked".
allowFallbackΟρίστε σε false να αποτύχει η μετάφραση όταν το categoryId σας δεν έχει ανάπτυξη για τοπικές ρυθμίσεις προορισμού αντί να επιστρέψει στο γενικό μοντέλο.
apiVersionΈκδοση Translator REST API. Η προεπιλογή είναι 3.0.
awsFormalityAWS Translate formality setting for supported target languages.
awsBrevitySet to true to enable AWS Translate brevity mode for supported language pairs.
awsTerminologyNames / awsParallelDataNamesAWS Translate custom terminology and parallel data resource names. Either an array or comma-separated string.
googleModelGoogle Cloud Translation model, e.g. nmt or base.
googleApiEndpointOptional Google Cloud Translation API endpoint override.
googleAutoRetryOptional Google Cloud Translation automatic retry toggle. Leave unset to use the Google client default.
maxRetriesΜέγιστες προσπάθειες επανάληψης σε παροδικές αποκρίσεις HTTP (408, 425, 429, 500, 502, 503, 504). Η προεπιλογή είναι 5. Οι συνολικές κλήσεις HTTP ανά αίτημα είναι 1 + maxRetries.
retryBackoffMsΑνώτατο όριο (ms) σε κάθε μεμονωμένο ύπνο οπισθοδρόμησης. Η προεπιλογή είναι 30000. Η κεφαλίδα Retry-After του Azure τιμάται ακριβώς όταν υπάρχει. Κατά τα άλλα χρησιμοποιείται εκθετική οπισθοδρόμηση, με ανώτατο όριο αυτή την τιμή.
protectPlaceholdersΗ προεπιλογή είναι true. Όταν είναι ενεργοποιημένα, διακριτικά όπως {{name}}, ${var}, {0}, {0:N2}, %s, %1$s και οντότητες HTML αντικαθίστανται με διακριτικά φρουρού πριν από τη μετάφραση και αποκαθίστανται στη συνέχεια. Απενεργοποίηση μόνο όταν η πηγή περιέχει σκόπιμα σταθερές σε σχήμα κράτησης θέσης.
customPlaceholderPatternsΕπιπλέον μοτίβα regex (χωρίς οριοθέτες) προστέθηκαν στο προεπιλεγμένο σύνολο κράτησης θέσης, π.χ. <<.+?>> για προσαρμοσμένη σύνταξη διακριτικού. Τα μη έγκυρα regex αγνοούνται.
noTranslatePatternsΤα μοτίβα σφαιρών ταιριάζουν με τα πλήκτρα επιπέδου αναλυτή (διακεκομμένη διαδρομή JSON, RESX name, msgid PO, id μονάδας XLIFF, κλειδί INI/restext). Τα κλειδιά που ταιριάζουν απορρίπτονται από το αίτημα και περνούν με τη διατήρηση της τιμής πηγής τους.
changeDetectionDefaults to smart. Uses the committed state manifest to translate only changed or missing parser keys. Set to disabled or false to preserve the legacy always-translate behavior.
statePathPath to the deterministic smart change-detection state manifest. Defaults to .github/resource-translator-state.json.
Παραγγελία φόρτωσης
- Η ενέργεια διαβάζει ρητές εισόδους από τη ροή εργασίας.
- Φορτώνει τη διαμόρφωση YAML από
configPath. - Για κάθε κοινόχρηστο πεδίο, η είσοδος κερδίζει. Διαφορετικά, χρησιμοποιείται η τιμή YAML.
- Οι συγχωνευμένες τιμές επικυρώνονται. Οι μη έγκυρες απαρίθμηση (π.χ.
profanityAction: Mask) προκαλούν γρήγορη αποτυχία της ενέργειας με ένα σαφές μήνυμα.
Τόνος και βιομηχανία, με απλά λόγια
Το Azure AI Translator v3 API δεν διαθέτει κουμπί ενός τόνου. Δύο ρυθμίσεις συνδυάζονται για να σας δώσουν το μεγαλύτερο μέρος του ίδιου ελέγχου:
- Κλάδος / τομέας: Χρησιμοποιήστε
categoryIdγια να δείξετε μια κατηγορία Azure Custom Translator που έχει εκπαιδευτεί στο δικό σας σώμα — νομικό, τεχνικό, ιατρικό, μάρκετινγκ ή οτιδήποτε άλλο. Αυτός είναι ο ισχυρότερος μοχλός για τον τόνο, τη φωνή της επωνυμίας και το λεξιλόγιο. - Επιφανειακό κείμενο: Χρησιμοποιήστε το Γλωσσάριο για να κλειδώσετε κατά λέξη επωνυμίες και όρους προϊόντων και χρησιμοποιήστε το
profanityActionγια να διαγράψετε βωμολοχίες κατά τη στόχευση τοπικής προσαρμογής για νεότερο κοινό.