म किन Google Translate मार्फत मेरो सम्पूर्ण एप वा साइट चलाउन सक्दिन र अर्को भाषामा आधारभूत अनुवाद प्राप्त गर्न सक्दिन?
*** अब, तपाईं सक्नुहुन्छ! ***
नाम hokeylization
एक पोर्टमान्टेउ हो, जसको अर्थ 'होकी स्थानीयकरण' हो।
यो केहि हकी छ किनभने यो धेरै सरल छ: यसले गुगल अनुवादमा स्ट्रिङहरू पठाउँछ
र यो सरल छ, तर पनि धेरै शक्तिशाली। यसमा HTML कागजातहरूको लागि विशेष समर्थन छ, HandlebarsJS टेम्प्लेटहरू, र मार्कडाउन फाइलहरू।
तपाईं अनुवाद गर्न सक्नुहुन्छ:
- सन्देशहरू भएको JavaScript वस्तु
- फाइलहरू वा डाइरेक्टरीहरूको कुनै पनि संख्या, सधैं पुनरावर्ती डाइरेक्टरीहरू पार गर्दै
यो README.md कागजात होकीलाइजेशन उपकरण प्रयोग गरेर अनुवाद गरिएको छ Google अनुवादद्वारा समर्थित हरेक भाषा!
म निश्चित छु कि यो उत्तम छैन, तर मलाई आशा छ कि यो केहि भन्दा राम्रो छ!
🇸🇦 अरबी 🇧🇩 बंगाली 🇩🇪 जर्मन 🇺🇸 अंग्रेजी 🇪🇸 स्पेनिश 🇫🇷 फ्रेन्च 🇹🇩 हौसा 🇮🇳 हिन्दी 🇮🇩 इन्डोनेसियाली 🇮🇹 इटालियन 🇯🇵 जापानी 🇰🇷 कोरियाली 🇮🇳 मरांथी 🇵🇱 पोलिश 🇧🇷 पोर्तुगाली 🇷🇺 रूसी 🇰🇪 स्वाहिली 🇵🇭 Tagalog 🇹🇷 टर्किश 🇵🇰 उर्दू 🇻🇳 भियतनामी 🇨🇳 चिनियाँ
मूल README को यो विशेष अनुवाद त्रुटि हुन सक्छ -- सुधार धेरै स्वागत छ! कृपया GitHub मा पुल अनुरोध पठाउनुहोस्, वा यदि तपाईं त्यसो गर्न सहज हुनुहुन्न भने, एउटा मुद्दा खोल्नुहोस्
जब तपाइँ अनुवादको बारेमा नयाँ GitHub मुद्दा सिर्जना गर्नुहुन्छ, कृपया गर्नुहोस्:
- पृष्ठ URL समावेश गर्नुहोस् (ब्राउजर ठेगाना पट्टीबाट प्रतिलिपि / टाँस्नुहोस्)
- सही पाठ समावेश गर्नुहोस् जुन गलत छ (ब्राउजरबाट प्रतिलिपि / टाँस्नुहोस्)
- कृपया के गलत छ वर्णन गर्नुहोस् -- के अनुवाद गलत छ? ढाँचा कतै बिग्रिएको छ?
- कृपया राम्रो अनुवादको सुझाव, वा पाठ कसरी ठीकसँग ढाँचा हुनुपर्छ भन्ने प्रस्ताव गर्नुहोस्
- धन्यवाद!
- स्रोत
- [समर्थन र कोष](#समर्थन र कोष)
- [स्थापना](# स्थापना)
- सेटअप
- जाभास्क्रिप्ट स्ट्रिङ स्रोत फाइल अनुवाद गर्दै
- पाठ फाइलहरूको डाइरेक्टरी अनुवाद गर्दै
- [अन्य विकल्पहरू](#अन्य विकल्पहरू)
- JSON ब्याच आदेशहरू
म एक पेशेवर खुला स्रोत सफ्टवेयर विकासकर्ता बन्ने प्रयास गर्दैछु। मा काम गर्दै आएको छु धेरै वर्षदेखि सफ्टवेयर उद्योगमा, मैले सफल कम्पनीहरू सुरु गरेको छु र तिनीहरूलाई सार्वजनिक कम्पनीहरूमा बेचेको छु। भर्खरै मैले मेरो जागिर गुमाएँ, र मसँग साँच्चै अरू कुनै काम छैन
त्यसोभए म उपयोगी सफ्टवेयर लेख्ने प्रयास गर्न जाँदैछु र हेर्नुहोस् कि यसले काम गर्दछ
यदि तपाइँ यो सफ्टवेयर प्रयोग गरेर रमाइलो गर्नुहुन्छ भने, म पनि प्राप्त गर्न पाउँदा खुसी हुनेछु सबैभन्दा सानो Patreon मार्फत मासिक योगदान
धन्यवाद!
आदेश रेखा उपकरण प्रयोग गर्न, npm
वा yarn
प्रयोग गरेर स्थापना गर्नुहोस्:
npm install -g hokeylization
yarn global add hokeylization
पुस्तकालयको रूपमा प्रयोग गर्न, lite
संस्करण स्थापना गर्नुहोस्, जुन धेरै सानो छ:
npm install -g hokeylization-lite
yarn global add hokeylization-lite
त्यसपछि hokey
आदेशको लागि मद्दत हेर्नुहोस्:
hokey --help
hokey -h
आफ्नो भाषा वा अन्य भाषामा आउटपुट हेर्न चाहनुहुन्छ?
hokey
ले तपाईँको शेलको वातावरण चरबाट स्वचालित रूपमा भाषा पत्ता लगाउने प्रयास गर्छ
तपाईं LC_ALL
वातावरण चर सेट गरेर भाषा बल गर्न सक्नुहुन्छ:
LC_ALL=it hokey --help
ध्यान दिनुहोस् कि यदि तपाईंले hokeylization-lite
स्थापना गर्नुभएको छ भने, आदेश मद्दत अंग्रेजीमा मात्र उपलब्ध छ
आफ्नो Google अनुवाद परियोजना पहिचान गर्न GOOGLE_TRANSLATE_PROJECT_ID
वातावरण चर सेट गर्नुहोस्
तपाईँले डाउनलोड गर्नुभएको JSON प्रमाणहरूमा GOOGLE_APPLICATION_CREDENTIALS
वातावरण चर सेट गर्नुहोस्
गुगल क्लाउडमा प्रमाणीकरणले कसरी काम गर्छ भनेर पत्ता लगाएपछि (यो रमाइलो हुन सक्छ)
यदि तपाइँ स्रोत कोडबाट चल्दै हुनुहुन्छ भने, तपाइँ यसलाई स्रोतमा .env
फाइलमा पनि राख्न सक्नुहुन्छ।
निर्देशिका तिनीहरू dotenv मार्फत रनटाइममा लोड हुनेछन्।
तपाईंको स्ट्रिङ तालिका आवश्यक यी दुई फारमहरू मध्ये एउटामा JavaScript फाइलमा हुनुपर्छ:
ES6 निर्यात:
export default {
string_key: "some value",
another_key: "another value",
... more keys ...
}
CommonJS निर्यात
module.exports = {
string_key: "some value",
another_key: "another value",
... more keys ...
}
यदि यो फाइललाई myfile.en.js
नाम दिइएको थियो भने, तपाइँ यसलाई स्पेनिश र जर्मनमा अनुवाद गर्न सक्नुहुन्छ:
hokey -l es,de -o myfile.LANG.js myfile.en.js
माथिको LANG
विशेष छ -- यो यस उपकरणमा आरक्षित शब्द हो!
आउटपुट फाइलहरूको लागि भाषा कोडसँग LANG
प्रतिस्थापन गरिएको छ
यसरी माथिको आदेशले फाइलहरू सिर्जना गर्दछ:
myfile.es.js
myfile.de.js
-l
/ --languages
विकल्प ISO भाषा कोडहरूको अल्पविराम-विभाजित सूची हो।
Google Translate द्वारा समर्थित
यदि आउटपुट फाइल पहिले नै अवस्थित छ भने, कुन कुञ्जीहरू पहिल्यै अवस्थित छन् भनेर निर्धारण गर्न जाँच गरिनेछ। अवस्थित कुञ्जीहरू अनुवाद गरिने छैन। छुटेका कुञ्जीहरूका लागि अनुवादहरू उत्पन्न हुनेछन् र थपिनेछन् JS वस्तुको अन्त्यमा। सम्पूर्ण फाइल सधैं पुन: लेखिएको छ।
सबै कुञ्जीहरूलाई जबरजस्ती पुन: अनुवाद गर्न, -f
/ --force
विकल्प प्रयोग गर्नुहोस्
तपाईं फाइलहरूको डाइरेक्टरी पनि अनुवाद गर्न सक्नुहुन्छ। hokeylisation पुनरावृत्ति प्रत्येक भ्रमण गर्नेछ डाइरेक्टरीमा फाइल गर्नुहोस् र Google अनुवादक मार्फत यसको सामग्रीहरू चलाउनुहोस्, र आउटपुट बचत गर्नुहोस् छुट्टै डाइरेक्टरी रूखमा समान नामको फाइलमा
जब तपाईंको अनुवादको लक्ष्य डाइरेक्टरी हो, यो मोड सक्षम हुन्छ
-o
/ --outfile
विकल्पले आउटपुट डाइरेक्टरी निर्दिष्ट गर्दछ
ठूलो चेतावनी: डाइरेक्टरीहरू अनुवाद गर्दा, नगर्नुहोस् आउटपुट डाइरेक्टरी निर्दिष्ट गर्नुहोस् त्यो तपाईको इनपुट डाइरेक्टरी भित्र छ! यदि तपाईंले यसो गर्नुभयो भने, तपाईंले:
- अनन्त पुनरावृत्ति प्रेरित गर्नुहोस्
- आफ्नो गुगल बिल चलाउनुहोस्
- आफ्नो डिस्क भर्नुहोस्
- कम रमाईलो गर्नुहोस्
यहाँ के नगर्ने को एक उदाहरण छ:
hokey -l es -o templates/es templates # <--- DON'T DO THIS!
जब यो चल्छ, अनुवादित फाइलहरू templates/es
मा लेखिन्छन्, र यसरी नयाँ हुन्छन्
स्रोत फाइलहरू अनुवाद गर्न, किनभने तिनीहरू templates/
अन्तर्गत छन् -- यो प्रक्रिया जारी रहन्छ
सधैंभरि, यो नगर्नुहोस्!
ठीक छ, मानौं तपाईसँग डाइरेक्टरीमा केही इमेल टेम्प्लेटहरू छन्:
templates/email/en/welcome.txt
templates/email/en/welcome.html
templates/email/en/verify-account.txt
templates/email/en/verify-account.html
templates/email/en/reset-password.txt
templates/email/en/reset-password.html
यी सबैलाई स्पेनिश र जर्मनमा अनुवाद गर्न, चलाउनुहोस्:
hokey -l es,de -o templates/email/LANG templates/email/en
माथिको मा, LANG
एक आरक्षित शब्द हो र ISO भाषा कोड संग प्रतिस्थापित गरिनेछ
माथिको चल्दा के हुन्छ:
templates/email/es
रtemplates/email/de
डाइरेक्टरीहरू सिर्जना गरिनेछन् (यदि तिनीहरू अवस्थित छैनन् भने)- प्रत्येक फाइल
templates/email/en
मा स्पेनिश र जर्मनमा अनुवाद गरिनेछ - तपाईले
-f
/--force
प्रयोग नगरेसम्म अवस्थित आउटपुट फाइलहरू पुन: उत्पन्न हुने छैनन्। - तपाईं एक समान डाइरेक्टरी ढाँचा र फाइलहरू
es
रde
भित्रका साथ समाप्त हुनुहुनेछ जुन तपाईंसँगen
अन्तर्गत छ।
के गरिन्छ देखाउनको लागि -n
/ --dry-run
पास गर्नुहोस्, तर वास्तवमा कुनै पनि API कलहरू नगर्नुहोस् वा कुनै फाइलहरू लेख्नुहोस्।
-f
/ --force
लाई सँधै अनुवादहरू पुन: उत्पन्न गर्न पास गर्नुहोस्, तिनीहरू पहिले नै अवस्थित भए तापनि
डाइरेक्टरी-मोडमा चल्दा प्रशोधन गरिएका फाइलहरूलाई सीमित गर्न -m
/ --match
पास गर्नुहोस्
तपाइँ सधैँ तपाइँको स्रोत डाइरेक्टरीमा * हरेक * फाइल तपाइँको लक्षित डाइरेक्टरीमा अनुवाद गर्न चाहनुहुन्न
-m
/ --match
विकल्पको मान एक regex हो (शेल उद्धृत गर्ने नियमहरू सावधान रहनुहोस्!) जसले निर्दिष्ट गर्दछ।
कुन फाइलहरू अनुवाद गर्नुपर्छ
जब शङ्कामा, तपाईले यो विकल्पलाई -n
/ --dry-run
सँग जोड्न सक्नुहुन्छ कुन फाइलहरू अनुवाद हुनेछन्।
कहिलेकाहीँ तपाईको -m
धेरै फाइलहरूसँग मेल खान्छ। स्पष्ट रूपमा बहिष्कार गर्न -e
/ --excludes
विकल्प प्रयोग गर्नुहोस्
फाइलहरू जुन अन्यथा मेल खान्छ
तपाईं धेरै regexes सूची गर्न सक्नुहुन्छ, खाली ठाउँहरू द्वारा विभाजित
एक सामान्य प्रयोग हुनेछ: --excludes node_modules dist \.git build tmp
अनुवाद गर्नका लागि स्ट्रिङहरूमा {{ handlebars }}
टेम्प्लेटहरू हुन सक्छन्, या त दुई वा तीन कर्ली-ब्रेसहरू
तपाइँ सायद ती टेम्प्लेटहरू भित्रका सामानहरू अनुवाद गर्न चाहनुहुन्न
-H
/ --handlebars
झण्डा पास गर्नुहोस्, र {{ ... }}
भित्रको कुनै पनि कुरा अनुवाद गरिने छैन।
मार्कडाउन न त पाठ हो न html, त्यसैले Google अनुवादकसँग केही कठिनाइहरू छन्
-M
/ --markdown
फ्ल्यागले मार्कडाउन फाइलहरूको लागि विशेष ह्यान्डलिङ सक्षम गर्दछ
मार्कडाउन फाइलहरूसँग, यदि तपाईंले -M
झण्डा प्रयोग गर्नुहुन्न भने, तपाईंले यी समस्याहरू फेला पार्नुहुनेछ:
- बिग्रिएको लिङ्कहरू। अनुवादमा, मार्कडाउन लिङ्क विवरण समाप्त भएपछि स्पेस क्यारेक्टर देखिन्छ (
]
सँग) तर यसको लक्षित लिङ्क सुरु हुनु अघि ((
सँग)। यसले मार्कडाउनलाई गलत तरिकाले रेन्डर गर्न, र लिङ्कलाई निम्त्याउँछ। कागजात हेर्दा तोडिएको छ। - कोड ब्लकहरू अनुवादित हुन्छन्। गुगल ट्रान्सलेटले कुन मार्कडाउनलाई कोड मान्छ र के गर्दैन भन्ने थाहा छैन
- इन्डेन्टेड कोड ब्लकहरूको लागि गलत स्पेसिङ। अनुवादमा स्पेसिङ सुरक्षित गर्न गाह्रो छ
backticks
भित्रका चीजहरू अनुवादित हुनेछन्, जब तपाईं प्रायः तिनीहरूलाई शाब्दिक मानहरू हुन चाहनुहुन्छ
जब -M
/ --markdown
झण्डा सक्षम हुन्छ:
- ढाँचा
](
कन्डेन्स्ड हुनेछ](
यसरी टुटेको मार्कडाउन लिङ्कहरू फिक्स गर्दै - एक "नो ट्रान्सलेट" र्यापरलाई इन्डेन्टेड कोड ब्लकहरू वरिपरि राखिनेछ, उचित इन्डेन्टेसन सुरक्षित गर्दै र तिनीहरू अनुवाद नगरिएको सुनिश्चित गर्दै
- अनुवाद नभएको सुनिश्चित गर्नको लागि
backticks
भित्र पाठको वरिपरि एउटा "नो ट्रान्सलेट" र्यापर राखिनेछ।
सामान्यतया सबै कुरा सादा पाठको रूपमा प्रशोधन गरिन्छ
यदि तपाईंको सामग्री HTML हो भने, तपाईंले -p html
/ --process-as html
विकल्प पास नगरेसम्म यो खलबलिनेछ।
साहसिकका लागि: डाइरेक्टरीमा फाइलहरू प्रशोधन गर्दा, तपाईंले -F
/ --filter
विकल्प पास गर्न सक्नुहुन्छ।
फाइल प्रणालीमा लेख्नु अघि आउटपुट फिल्टर गर्न
यो विकल्पको मान JS फाइलको बाटो हुनुपर्छ जसले filter
नामक प्रकार्य निर्यात गर्छ
filter
प्रकार्य async
हुनुपर्छ किनभने async
await
लाई कल गरिनेछ
फाइलहरू डिस्कमा लेख्नु अघि, सम्पूर्ण फाइल सामग्रीहरू स्ट्रिङको रूपमा filter
प्रकार्यमा पठाइनेछ।
filter
प्रकार्यबाट फिर्ताको मान भनेको वास्तवमा भण्डारणमा लेखिनेछ
यसरी, तपाईसँग अन्तमा के लेखिनेछ भन्नेमा पूर्ण नियन्त्रण छ
filter
स्क्रिप्ट निम्न स्थानहरूमा खोजिनेछ (फिल्टरमा .js
नाम, यो पहिले नै .js
मा समाप्त नभएसम्म )
- हालको निर्देशिका
- हालको डाइरेक्टरी भित्र
.hokey-filters
नामक डाइरेक्टरी ${HOME}/.hokey-filters
नामको डाइरेक्टरी, जहाँ${HOME}
हालको प्रयोगकर्ताको गृह डाइरेक्टरी हो- बिल्ट-इन फिल्टर डाइरेक्टरी
filter
स्ट्रिङ धेरै शब्दहरू हुन सक्छ। यस अवस्थामा, पहिलो शब्द फिल्टर नाम हो, र
बाँकी शब्दहरूलाई filter
प्रकार्यमा आर्गुमेन्टको रूपमा पास गरिनेछ
मद्दत देखाउन -h
/ --help
प्रयोग गर्नुहोस्
-j
/ --json
विकल्पको साथ, तपाइँ धेरै समन्वयित hokey
आदेशहरू चलाउन सक्नुहुन्छ
परम्परा अनुसार यो फाइललाई hokey.json
भनिन्छ, तर तपाईले चाहेको नाम दिन सक्नुहुन्छ
यदि तपाईंले डाइरेक्टरीलाई -j
विकल्पको रूपमा पास गर्नुभयो भने, hokey
ले त्यो डाइरेक्टरीमा hokey.json
।
JSON फाइलमा एउटा वस्तु समावेश हुनुपर्छ। त्यो वस्तु भित्र, यसको सम्पत्ति नामहरू जस्तै छन्
कमाण्ड-लाइन विकल्पहरू, साथै hokey
नामको एउटा अतिरिक्त गुण
hokey
गुण चलाउन आदेशहरूको एर्रे हो। यी आदेशहरू भित्र घोषित गुणहरू हुनेछ
बाहिरी वस्तुमा कुनै पनि डुप्लिकेट घोषणाहरू ओभरराइड गर्नुहोस्।
प्रत्येक वस्तु भित्र hokey
array मा, तपाईँले name
निर्दिष्ट गर्नुपर्छ, र इनपुट र आउटपुट फाइलहरू
यहाँ hokey.json
को एउटा उदाहरण छ
{
"inputLanguage": "en",
"languages": "es,fr,ja", # can also be an array of strings
"force": false,
"match": null,
"processAs": null,
"excludes": ["exclude-1", "exclude-2"],
"handlebars": false,
"markdown": false,
"regular": false,
"dryRun": false,
"filter": "theFilter.js",
"hokey": [
{
"name": "locale names",
"infile": "messages/locales_en.js",
"outfile": "messages/locales_LANG.js",
"handlebars": true
},
{
"name": "CLI messages",
"infile": "messages/en_messages.js",
"outfile": "messages/LANG_messages.js",
"handlebars": true
},
{
"name": "README",
"infile": "README.md",
"outfile": "lang/LANG/",
"excludes": ["lang/", "node_modules/", "\\.git/", "tmp/"],
"filter": "relativizeMarkdownLinks lang",
"markdown": true,
"index": "lang/README.md"
}
]
}
यस उदाहरणमा जस्तै, एकल पथ infile
infileको सट्टा
infiles` को रूपमा फाइल मार्गहरूको एरे पास गर्नुहोस्:
{
... [
{
"name": "my docs",
"infiles": ["README.md", "INSTALL.md", "TUTORIAL.md"],
"outfile": "docs/LANG/",
"markdown": true
]
}
धेरै भाषाहरूमा अनुवाद गर्दा, hokey
ले एउटा अनुक्रमणिका फाइल सिर्जना गर्न सक्छ जसले सबै अनुवादहरू सूचीबद्ध गर्दछ
र तिनीहरूलाई लिङ्कहरू प्रदान गर्दछ
सूचकांकहरू उत्पन्न गर्दा, तपाईंसँग एउटा मात्र इनपुट स्रोत हुन सक्छ
पास गर्नुहोस् -I
/ --index
विकल्प, मान जहाँ अनुक्रमणिका फाइल उत्पन्न हुनेछ, जुन फाइल हुन सक्छ
वा निर्देशिका। यदि यो डाइरेक्टरी हो भने, टेम्प्लेटको आधारमा पूर्वनिर्धारित फाइलनाम प्रयोग गरिनेछ (तल हेर्नुहोस्)
अनुक्रमणिका आउटपुट कसरी ढाँचा गरिएको छ भनेर निर्धारण गर्न -A
/ --index-template
प्रयोग गर्नुहोस्। तपाईले 'html' निर्दिष्ट गर्न सक्नुहुन्छ,
'मार्कडाउन', 'टेक्स्ट', वा तपाईंको आफ्नै HandlebarsJS टेम्प्लेटको फाइल मार्ग
यदि तपाइँ तपाइँको आफ्नै टेम्प्लेट निर्दिष्ट गर्नुहुन्छ भने, तपाइँले -I
/ --index
को लागी फाइल (डाइरेक्टरी होइन) निर्दिष्ट गर्नुपर्छ।
विकल्प