किसी भी भाषा में MARKDOWN/READMEs का अनुवाद करने के लिए GitHub एक्शन
MARKDOWN फ़ाइलों का विभिन्न अन्य भाषाओं में अनुवाद करें, एकाधिक फ़ाइलों और उपनिर्देशिकाओं का समर्थन करता है।
वर्कफ़्लो फ़ाइल जोड़ेंआपके प्रोजेक्ट के लिए (उदा..github/workflows/translate-readme.yml):
name: Translate README
on:
push:
branches:
- main
- master
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24.x
# ISO Language Codes: https://cloud.google.com/translate/docs/languages
- name: Adding README - Chinese Simplified
uses: ikhsan3adi/markdown-translator@v3
with:
LANG: zh-CN
FILES: |-
README.md
OTHER-README.md
sub/dir/README.md
very/deep/sub/directories/FOO.md
/very/deep/sub/directories/BAR.md
docs/**/*.md
notes/*.txt
- name: Adding README translations
uses: ikhsan3adi/markdown-translator@v3
with:
LANG: |- # multiple languages
zh-CN
zh-TW
ja
FILES: |-
README.md
docs/**/*.mdग्लोब समर्थन:
FILESग्लोब पैटर्न स्वीकार करता है -docs/**/*.mdप्रत्येक मार्कडाउन फ़ाइल का अनुवाद करता हैdocs/उन्हें एक-एक करके सूचीबद्ध किए बिना पुनरावर्ती रूप से, औरnotes/*.txtदिखाता है कि सादा-पाठ फ़ाइलें भी काम करती हैं। शाब्दिक नेस्टेड पथ उसी तरह काम करते हैं:sub/dir/README.mdऔरvery/deep/sub/directories/FOO.mdग्लोबिंग की कोई आवश्यकता नहीं है. ग्लब्स और शाब्दिक पथों को स्वतंत्र रूप से मिलाएं; के साथ पथ बहिष्कृत करेंIGNORE(उदाdocs/external/**). फ़ाइलों को पहले से ही नाम दिया गया है<name>.<lang>.<ext>(मौजूदा अनुवाद) हमेशा छोड़ दिए जाते हैं।लिखने की अनुमति आवश्यक:नौकरी की घोषणा करनी होगी
permissions: contents: write(ऊपर दिखाया गया है) या आपके रेपो पर वापस पुश 403 के साथ खारिज कर दिया गया है। एक समीक्षा चरण को प्राथमिकता दें? तय करनाPULL_REQUEST: trueएक शाखा को आगे बढ़ाने और उसके स्थान पर एक पीआर खोलने की (आवश्यकता है)।permissions: pull-requests: writeभी)।डिफ़ॉल्ट रूप से वृद्धिशील:केवल वे फ़ाइलें जिनका स्रोत बदल गया है, उनका पुनः अनुवाद किया जाता है, जिससे अनुवाद कोटा बच जाता है। परिवर्तनों को a के माध्यम से ट्रैक किया जाता है
<!-- markdown-translator:<hash> -->प्रत्येक अनुवाद फ़ाइल में हेडर टिप्पणी लिखी जाती है। इस शीर्षलेख के बिना मौजूदा अनुवादों का एक बार पुनः अनुवाद किया जाता है।मार्कडाउन बनाम सादा पाठ:मार्कडाउन फ़ाइलें (
.md,.markdown,.mdx,.mdown,.mkd) का अनुवाद मार्कडाउन-अवेयर किया गया है - कोड स्पैन, फेंसिड ब्लॉक, फ्रंटमैटर और यूआरएल अछूते रहते हैं। कोई अन्य फ़ाइल (उदा..txt) रिक्त पंक्तियों और पंक्ति अंत को संरक्षित करते हुए, पंक्ति दर पंक्ति अनुवादित किया जाता है।
:चेतावनी: दौड़ना न भूलेंnpm run buildप्रतिबद्ध होने से पहले
आप निम्नलिखित विकल्पों के साथ कार्रवाई को आगे कॉन्फ़िगर कर सकते हैं:
-
LANG: जिस भाषा में आप अपने रीडमी का अनुवाद करना चाहते हैं उसकी नई पंक्ति से अलग की गई सूची। डिफ़ॉल्ट सरलीकृत चीनी है. समर्थित भाषाएँ नीचे पाई जा सकती हैं। (गलती करना:zh-CN) (आवश्यक:false) -
FILES: अनुवाद करने के लिए न्यूलाइन-पृथक फ़ाइलें। ग्लोब पैटर्न का समर्थन करता है (उदा.docs/**/*.md) और शाब्दिक नेस्टेड पथ (उदा.sub/dir/README.md). मार्कडाउन फ़ाइलें मार्कडाउन-अवेयर (कोड स्पैन, फ्रंटमैटर, फेंसिड ब्लॉक और यूआरएल अछूते) अनुवादित हैं; अन्य फ़ाइलें (उदा..txt) रिक्त पंक्तियों और पंक्ति अंत को संरक्षित करते हुए, पंक्ति दर पंक्ति अनुवादित किया जाता है। (गलती करना:[README.md]) (आवश्यक:false) -
IGNORE: कब को बाहर करने के लिए न्यूलाइन-पृथक ग्लोब पैटर्नFILESग्लोबिंग का उपयोग करता है. (डिफ़ॉल्ट: ``) (आवश्यक:false) -
IGNORE_PATTERN: न्यूलाइन-पृथक रेगेक्स पैटर्न। किसी पैटर्न से मेल खाने वाला कोई भी पाठ अअनुवादित छोड़ दिया जाता है - कोड, कमांड आउटपुट या उचित संज्ञा के लिए उपयोगी। (डिफ़ॉल्ट: ``) (आवश्यक:false) -
COMMIT: क्या जेनरेट किए गए अनुवादों को प्रतिबद्ध करना है। करने के लिए सेटfalseड्राई-रन के लिए जो केवल अनुवाद फ़ाइलें लिखता है। (गलती करना:true) (आवश्यक:false) -
PUSH: क्या कमिट्स को रिपॉजिटरी में वापस धकेलना है। (गलती करना:true) (आवश्यक:false) -
PULL_REQUEST: किसी शाखा पर पुश करें और वर्तमान शाखा के लिए प्रतिबद्ध होने के बजाय एक पुल अनुरोध खोलें। (गलती करना:false) (आवश्यक:false) -
INCREMENTAL: केवल उन फ़ाइलों का पुनः अनुवाद करें जिनका स्रोत बदल गया है। स्रोत हैश को अनुवाद फ़ाइल की हेडर टिप्पणी में ट्रैक किया जाता है, इसलिए अपरिवर्तित होने पर मौजूदा अनुवाद छोड़ दिए जाते हैं - अनुवाद कोटा सहेजता है। (गलती करना:true) (आवश्यक:false)
FILES_CREATED: उत्पन्न की गई अनुवाद फ़ाइलों की नई पंक्ति से अलग की गई सूची।
- name: Adding README translations as a PR
uses: ikhsan3adi/markdown-translator@master
with:
LANG: zh-CN
FILES: README.md
PULL_REQUEST: true
PUSH: true- name: Generate README translations locally
uses: ikhsan3adi/markdown-translator@master
with:
LANG: zh-CN
FILES: README.md
COMMIT: false- name: Translate all docs
uses: ikhsan3adi/markdown-translator@master
with:
LANG: ja
FILES: |-
README.md
docs/**/*.md
IGNORE: |-
docs/external/**/*.mdnpm startआपके टर्मिनल और डिफ़ॉल्ट से समान तर्क चलाता हैCOMMIT/PUSHकोfalse,
इसलिए यह केवल अनुवाद फ़ाइलें लिखता है - कोई प्रतिबद्धता नहीं, कोई धक्का नहीं। झंडे कार्रवाई इनपुट को प्रतिबिंबित करते हैं
(कबाब-केस), द्वारा अलग किया गया,:
npm install
# translate README.md to Indonesian, dry-run only
npm start -- --lang id --files README.md
# multiple languages and glob patterns
npm start -- --lang "id,ja" --files "README.md,docs/**/*.md" --ignore "docs/external/**"
# skip text matching a regex
npm start -- --lang zh-CN --files README.md --ignore-pattern "^\|.*\|$"
# translate plain text files too
npm start -- --lang id --files notes.txt
# full local run with commit + push
npm start -- --lang id --files README.md --commit --push
npm start -- --helpसमर्थित भाषाएँ यहां https://cloud.google.com/translate/docs/lengths पर पाई जा सकती हैं
सुझावों और योगदानों का हमेशा स्वागत है!