اگر آپ کو غیر ڈیفالٹ لوکیشن چاہیے تو 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 کو سنبھالتا ہے)۔
categoryIdAzure Custom Translator کیٹیگری — آپ کی صنعت/ڈومین کا نوب (قانونی، طبی، مارکیٹنگ کا انداز وغیرہ)۔ ?category=... کے طور پر بھیجا گیا۔
textTypeڈیفالٹ plain پر ہے۔ html صرف اسی صورت میں استعمال کریں جب آپ کے ریسورس ویلیوز میں حقیقی HTML فریگمنٹس ہوں۔
profanityActionفحش الفاظ کو ترجمہ شدہ مواد میں کیسے سمجھا جائے۔
profanityMarkerصرف تب معنی خیز جب profanityAction "Marked" ہو۔
allowFallbackجب آپ کے categoryId کے پاس ٹارگٹ لوکیشن کے لیے کوئی ڈپلائمنٹ نہ ہو تو ترجمہ ناکام ہونے false سیٹ کریں، بجائے اس کے کہ وہ جنرل ماڈل پر واپس جائے۔
apiVersionٹرانسلیٹر 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 پر ہے۔ Azure کا Retry-After ہیڈر بالکل اسی وقت عزت دیتا ہے جب وہ موجود ہو؛ ورنہ جھٹکا ہوا ایکسپونینشل بیک آف استعمال کیا جاتا ہے، جو اس قدر پر محدود ہوتا ہے۔
protectPlaceholdersڈیفالٹ true پر ہے۔ جب ٹوکنز آن ہوتے ہیں، تو {{name}}، ${var}، {0}، {0:N2}، %s، %1$s اور HTML اینٹیٹیز جیسے ٹوکنز ترجمے سے پہلے سینٹینل ٹوکنز سے بدل دیے جاتے ہیں اور بعد میں بحال کر دیے جاتے ہیں۔ صرف اس وقت فعال کریں جب سورس میں جان بوجھ کر پلیس ہولڈر نما لفظی الفاظ شامل ہوں۔
customPlaceholderPatternsاضافی ریجیکس پیٹرنز (بغیر ڈیلیمیٹر کے) ڈیفالٹ پلیس ہولڈر سیٹ میں شامل کیے گئے، مثلا <<.+?>> کسٹم ٹوکن نحو کے لیے۔ غلط regexes کو نظر انداز کیا جاتا ہے۔
noTranslatePatternsگلوب پیٹرنز پارسر لیول کیز (JSON ڈاٹڈ پاتھ، RESX name، PO msgid، XLIFF یونٹ id، 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.
لوڈنگ آرڈر
- یہ عمل ورک فلو سے واضح ان پٹس پڑھتا ہے۔
- یہ
configPathسے YAML کنفیگریشن لوڈ کرتا ہے۔ - ہر مشترکہ فیلڈ کے لیے، ان پٹ جیتتا ہے؛ ورنہ YAML ویلیو استعمال کی جاتی ہے۔
- مرجڈ ویلیوز کی تصدیق کی جاتی ہے۔ غلط اینمز (مثلا
profanityAction: Mask) واضح پیغام کے ساتھ عمل کو تیزی سے ناکام کر دیتے ہیں۔
لہجہ اور صنعت، سادہ الفاظ میں
Azure AI Translator v3 API میں ایک ہی ٹون نوب نہیں ہے۔ دو سیٹنگز مل کر آپ کو زیادہ تر ایک جیسا کنٹرول دیتی ہیں:
- صنعت / شعبہ:
categoryIdکو Azure Custom Translator کیٹیگری کی طرف اشارہ کرنے کے لیے استعمال کریں جو آپ کے اپنے کارپس پر تربیت یافتہ ہو — قانونی، ٹیکنیکل، میڈیکل، مارکیٹنگ یا کچھ اور۔ یہ ٹون، برانڈ کی آواز، اور الفاظ کے لیے سب سے مضبوط لیور ہے۔ - سطحی متن: لغت کو برانڈ ناموں اور مصنوعات کی اصطلاحات کو لفظ بہ لفظ لاک کرنے کے لیے استعمال کریں، اور
profanityActionکو استعمال کریں تاکہ نوجوان ناظرین کے لیے مقامی بنانے کے لیے فحش اصطلاحات کو ختم کیا جا سکے۔