تجاوز المسار باستخدام مدخل 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. الافتراضي على 3.0. |
maxRetries | integer | أقصى محاولات إعادة المحاولة على ردود HTTP المؤقتة (408, 425, 429, 500, 502, 503, 504). الافتراضية 5. إجمالي استدعاءات HTTP لكل طلب هو 1 + maxRetries. |
retryBackoffMs | integer | الحد الأقصى (ms) في أي نوم ارتكاف واحد. الافتراضي على 30000. رأس Retry-After لأزور يحترم بالضبط عند وجوده؛ وإلا يستخدم ارتداد أسي متقطع، مع حد أقصى لهذه القيمة. |
protectPlaceholders | boolean | الافتراضي على true. عند تشغيلها، يتم استبدال رموز مثل {{name}} و ${var} و {0} و {0:N2} و %s و %1$s وHTML برموز سنتينل قبل الترجمة وتستعاد بعد ذلك. قم بتعطيله فقط عندما يحتوي المصدر عمدا على حروف مؤقتة. |
customPlaceholderPatterns | string[] | تمت إضافة أنماط regex إضافية (بدون فاصلات) إلى مجموعة الرموز المؤقتة الافتراضية، مثل <<.+?>> لصياغة الرموز المخصصة. يتم تجاهل القواعد غير الصالحة. |
noTranslatePatterns | string[] | أنماط الغلوب تطابق مع مفاتيح على مستوى المحلل (مسار JSON المنقط، name RESX، msgid PO، وحدة XLIFF id، مفتاح INI/restext). يتم حذف المفاتيح المطابقة من الطلب وتمريرها مع الحفاظ على قيمة المصدر. |
ترتيب التحميل
- يقرأ الإجراء مدخلات صريحة من سير العمل.
- يقوم بتحميل إعدادات YAML من
configPath. - لكل حقل مشترك، يفوز المدخل؛ وإلا يتم استخدام قيمة YAML.
- يتم التحقق من صحة القيم المدمجة. العدد غير الصحيح (مثل
profanityAction: Mask) يسبب فشل الفعل بسرعة مع وجود رسالة واضحة.
النبرة والصناعة، بعبارات بسيطة
واجهة برمجة تطبيقات Azure AI Translator v3 لا تحتوي على مقبض نغمة واحد. يجمع إعدادان ليمنحوك معظم عناصر التحكم نفسها:
- الصناعة / المجال: استخدم
categoryIdللإشارة إلى فئة Azure Custom Translator المدربة على مجموعتك الخاصة — سواء القانونية أو التقنية أو الطبية أو التسويق أو أي شيء آخر. هذه هي أقوى رافعة للنبرة، وصوت العلامة التجارية، والمفردات. - نص سطحي: استخدم القاموس لتحديد أسماء العلامات التجارية ومصطلحات المنتجات حرفيا، واستخدم
profanityActionلإزالة المصطلحات النابية عند استهداف التوطين للجمهور الأصغر سنا.