શા માટે હું Google અનુવાદ દ્વારા મારી આખી એપ્લિકેશન અથવા સાઇટ ચલાવી શકતો નથી અને અન્ય ભાષામાં મૂળભૂત અનુવાદ મેળવી શકતો નથી?
હવે, તમે કરી શકો છો!
hokeylization
નામ એક પોર્ટમેન્ટો છે, જેનો અર્થ થાય છે 'હોકી સ્થાનિકીકરણ'
તે કંઈક અંશે હોકી છે કારણ કે તે ખૂબ જ સરળ છે: તે Google અનુવાદને શબ્દમાળાઓ મોકલે છે
અને તે સરળ છે, છતાં પણ ખૂબ શક્તિશાળી. તે HTML દસ્તાવેજો માટે વિશેષ સમર્થન ધરાવે છે, HandlebarsJS નમૂનાઓ, અને માર્કડાઉન ફાઇલો.
તમે અનુવાદ કરી શકો છો:
- સંદેશા ધરાવતો JavaScript ઑબ્જેક્ટ
- કોઈપણ સંખ્યાની ફાઇલો અથવા ડિરેક્ટરીઓ, હંમેશા ડાયરેક્ટરીઝને વારંવાર ફરીને પસાર કરે છે
આ README.md દસ્તાવેજનું ભાષાંતર, હોકીલાઈઝેશન ટૂલનો ઉપયોગ કરીને કરવામાં આવ્યું છે Google અનુવાદ દ્વારા સમર્થિત દરેક ભાષા!
મને ખાતરી છે કે તે સંપૂર્ણ નથી, પરંતુ હું આશા રાખું છું કે તે કંઈ કરતાં વધુ સારું છે!
🇸🇦 અરબી 🇧🇩 બંગાળી 🇩🇪 જર્મન 🇺🇸 અંગ્રેજી 🇪🇸 સ્પેનિશ 🇫🇷 ફ્રેન્ચ 🇹🇩 હૌસા 🇮🇳 હિન્દી 🇮🇩 ઇન્ડોનેશિયન 🇮🇹 ઇટાલિયન 🇯🇵 જાપાનીઝ 🇰🇷 કોરિયન 🇮🇳 મરાંઠી 🇵🇱 પોલિશ 🇧🇷 પોર્ટુગીઝ 🇷🇺 રશિયન 🇰🇪 સ્વાહિલી 🇵🇭 ટાગાલોગ 🇹🇷 ટર્કિશ 🇵🇰 ઉર્દુ 🇻🇳 વિયેતનામીસ 🇨🇳 ચાઇનીઝ
મૂળ README નો આ વિશિષ્ટ અનુવાદ ખામી હોઈ શકે છે -- સુધારાઓ ખૂબ આવકાર્ય છે! કૃપા કરીને GitHub પર પુલ વિનંતી મોકલો. અથવા જો તમને તે કરવામાં આરામદાયક ન હોય, તો સમસ્યા ખોલો
જ્યારે તમે અનુવાદ વિશે નવો GitHub મુદ્દો બનાવો છો, ત્યારે કૃપા કરીને આ કરો:
- પૃષ્ઠ URL શામેલ કરો (બ્રાઉઝર સરનામાં બારમાંથી કૉપિ/પેસ્ટ કરો)
- ખોટો લખાણ શામેલ કરો (બ્રાઉઝરમાંથી કૉપિ/પેસ્ટ કરો)
- કૃપયા શું ખોટું છે તેનું વર્ણન કરો -- શું અનુવાદ ખોટો છે? શું ફોર્મેટિંગ કોઈક રીતે તૂટી ગયું છે?
- કૃપા કરીને વધુ સારા અનુવાદનું સૂચન આપો, અથવા ટેક્સ્ટ કેવી રીતે યોગ્ય રીતે ફોર્મેટ થવો જોઈએ
- આભાર!
- સ્રોત
- સપોર્ટ અને ફંડિંગ
- ઇન્સ્ટોલેશન
- સેટઅપ
- જાવાસ્ક્રિપ્ટ સ્ટ્રિંગ રિસોર્સ ફાઇલનું ભાષાંતર કરવું
- ટેક્સ્ટ ફાઇલોની ડિરેક્ટરીનું ભાષાંતર કરવું
- અન્ય વિકલ્પો
- JSON બેચ આદેશો
હું પ્રોફેશનલ ઓપન સોર્સ સોફ્ટવેર ડેવલપર બનવાનો પ્રયાસ કરી રહ્યો છું. માં કામ કરી રહ્યો છું ઘણા વર્ષોથી સોફ્ટવેર ઉદ્યોગમાં, મેં સફળ કંપનીઓ શરૂ કરી છે અને તેમને જાહેર કંપનીઓને વેચી છે. તાજેતરમાં મેં મારી નોકરી ગુમાવી દીધી છે, અને મારી પાસે ખરેખર બીજું કોઈ કામ નથી
તેથી હું મદદરૂપ સોફ્ટવેર લખવાનો પ્રયાસ કરીશ અને જોઉં છું કે તે કામ કરે છે કે નહીં
જો તમે આ સૉફ્ટવેરનો ઉપયોગ કરવાનો આનંદ માણો, તો મને પણ પ્રાપ્ત કરવામાં ખૂબ આનંદ થશે સૌથી નાનું પેટ્રિઓન દ્વારા માસિક યોગદાન
આભાર!
કમાન્ડ લાઇન ટૂલનો ઉપયોગ કરવા માટે, 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
પર્યાવરણ ચલ સેટ કરો
Google ક્લાઉડ પર પ્રમાણીકરણ કેવી રીતે કાર્ય કરે છે તે શોધ્યા પછી (તે મજા હોઈ શકે છે)
જો તમે સ્રોત કોડમાંથી ચલાવી રહ્યાં છો, તો તમે આને .env
ફાઇલમાં પણ મૂકી શકો છો
ડિરેક્ટરી તેઓ રનટાઇમ પર dotenv દ્વારા લોડ કરવામાં આવશે
તમારું સ્ટ્રિંગ ટેબલ **આ બે સ્વરૂપોમાંથી એકમાં JavaScript ફાઇલમાં હોવું જોઈએ:
ES6 નિકાસ:
export default {
string_key: "some value",
another_key: "another value",
... more keys ...
}
કોમનજેએસ નિકાસ
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 અનુવાદ દ્વારા સમર્થિત
જો આઉટપુટ ફાઇલ પહેલેથી જ અસ્તિત્વમાં છે, તો તે નક્કી કરવા માટે તપાસવામાં આવશે કે કઈ કી પહેલેથી અસ્તિત્વમાં છે. હાલની કીનું ભાષાંતર કરવામાં આવશે નહીં. ખૂટતી કી માટે અનુવાદો જનરેટ કરવામાં આવશે અને જોડવામાં આવશે JS ઑબ્જેક્ટના અંત સુધી. આખી ફાઇલ હંમેશા ફરીથી લખવામાં આવે છે.
બધી કીને ફરીથી અનુવાદ કરવા દબાણ કરવા માટે, -f
/ --force
વિકલ્પનો ઉપયોગ કરો
તમે ફાઇલોની ડિરેક્ટરીનો અનુવાદ પણ કરી શકો છો. હોકીલાઈઝેશન દરેકની વારંવાર મુલાકાત લેશે ડિરેક્ટરીમાં ફાઇલ કરો અને Google અનુવાદ દ્વારા તેની સામગ્રીઓ ચલાવો અને આઉટપુટ સાચવો અલગ ડિરેક્ટરી ટ્રીમાં સમાન નામવાળી ફાઇલમાં
જ્યારે તમારા અનુવાદનું લક્ષ્ય નિર્દેશિકા હોય, ત્યારે આ મોડ સક્ષમ હોય છે
-o
/ --outfile
વિકલ્પ આઉટપુટ ડિરેક્ટરીનો ઉલ્લેખ કરે છે
મોટી ચેતવણી: ડિરેક્ટરીઓનું ભાષાંતર કરતી વખતે, આઉટપુટ ડિરેક્ટરીનો ઉલ્લેખ નહીં કરો તે તમારી ઇનપુટ ડિરેક્ટરીમાં છે! જો તમે આ કરશો, તો તમે આ કરશો:
- અનંત પુનરાવર્તન પ્રેરિત કરો
- તમારું Google બિલ ચલાવો
- તમારી ડિસ્ક ભરો
- ઓછી મજા કરો
અહીં શું ન કરવું તેનું ઉદાહરણ છે:
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
વિકલ્પનું મૂલ્ય એ રેજેક્સ છે (શેલ અવતરણ નિયમોથી સાવચેત રહો!) જે સ્પષ્ટ કરે છે
કઈ ફાઈલોનું ભાષાંતર કરવું જોઈએ
જ્યારે શંકા હોય, ત્યારે તમે આ વિકલ્પને -n
/ --dry-run
run` સાથે જોડી શકો છો તે જોવા માટે કે કઈ ફાઇલોનું ભાષાંતર કરવામાં આવશે
કેટલીકવાર તમારું -m
ઘણી બધી ફાઇલો સાથે મેળ ખાય છે. સ્પષ્ટપણે બાકાત રાખવા માટે -e
/ --excludes
વિકલ્પનો ઉપયોગ કરો
ફાઇલો જે અન્યથા મેળ ખાતી હોત
તમે સ્પેસ દ્વારા અલગ કરીને બહુવિધ રેગેક્સને સૂચિબદ્ધ કરી શકો છો
સામાન્ય ઉપયોગ આ હશે: --excludes node_modules dist \.git build tmp
અનુવાદ કરવા માટેની સ્ટ્રીંગ્સમાં {{ handlebars }}
ટેમ્પલેટ્સ હોઈ શકે છે, કાં તો બે અથવા ત્રણ કર્લી-કૌંસ સાથે
તમે કદાચ નહીં ઈચ્છો કે તે ટેમ્પલેટ્સની અંદરની સામગ્રીનું ભાષાંતર થાય
-H
/ --handlebars
ધ્વજ પસાર કરો, અને {{ ... }}
ની અંદરની કોઈપણ વસ્તુનું ભાષાંતર કરવામાં આવશે નહીં
માર્કડાઉન ન તો ટેક્સ્ટ છે કે ન તો html, તેથી Google અનુવાદને તેની સાથે કેટલીક મુશ્કેલીઓ છે
-M
/ --markdown
ફ્લેગ માર્કડાઉન ફાઇલો માટે વિશેષ હેન્ડલિંગને સક્ષમ કરે છે
માર્કડાઉન ફાઇલો સાથે, જો તમે -M
ધ્વજનો ઉપયોગ કરતા નથી, તો તમને કદાચ આ સમસ્યાઓ જોવા મળશે:
- તૂટેલી કડીઓ. અનુવાદમાં, માર્કડાઉન લિંક વર્ણન સમાપ્ત થયા પછી સ્પેસ અક્ષર દેખાય છે (
]
સાથે ) પરંતુ તેની લક્ષ્ય લિંક શરૂ થાય તે પહેલાં ((
સાથે). આનાથી માર્કડાઉન ખોટી રીતે રેન્ડર થાય છે અને લિંક દસ્તાવેજ જોતી વખતે તૂટી જાય છે. - કોડ બ્લોક્સનું ભાષાંતર થાય છે. Google અનુવાદને ખબર નથી કે માર્કડાઉન ક્યા કોડને માને છે અને શું નથી
- ઇન્ડેન્ટેડ કોડ બ્લોક્સ માટે ખોટો અંતર. અનુવાદમાં અંતર સાચવવું મુશ્કેલ છે
- જ્યારે તમે લગભગ હંમેશા ઇચ્છો છો કે તે શાબ્દિક મૂલ્યો હોય ત્યારે
backticks
ની અંદરની વસ્તુઓનું ભાષાંતર કરવામાં આવશે
જ્યારે -M
/ --markdown
ધ્વજ સક્ષમ હોય:
- પેટર્ન
](
ને](
માં ઘટ્ટ કરવામાં આવશે આમ તૂટેલી માર્કડાઉન લિંક્સને ઠીક કરવી - "નો ટ્રાન્સલેટ" રેપર ઇન્ડેન્ટેડ કોડ બ્લોક્સની આસપાસ મૂકવામાં આવશે, યોગ્ય ઇન્ડેન્ટેશન સાચવીને અને તેનું ભાષાંતર ન થયું હોય તેની ખાતરી કરીને
- એક "નો ટ્રાન્સલેટ" રેપર
backticks
ની અંદર ટેક્સ્ટની આસપાસ મૂકવામાં આવશે તેની ખાતરી કરવા માટે કે તે અનુવાદિત નથી
સામાન્ય રીતે બધું સાદા ટેક્સ્ટ તરીકે પ્રક્રિયા કરવામાં આવે છે
જો તમારી સામગ્રી HTML છે, તો જ્યાં સુધી તમે -p html
/ --process-as html
વિકલ્પને પાસ કરશો નહીં ત્યાં સુધી તે ગૂંગળાઈ જશે.
સાહસિક માટે: ડિરેક્ટરીમાં ફાઇલો પર પ્રક્રિયા કરતી વખતે, તમે -F
/ --filter
વિકલ્પ પસાર કરી શકો છો
ફાઇલસિસ્ટમ પર લખાય તે પહેલાં આઉટપુટને ફિલ્ટર કરવા માટે
આ વિકલ્પનું મૂલ્ય JS ફાઇલનો પાથ હોવો જોઈએ જે filter
નામના ફંક્શનને નિકાસ કરે છે
filter
ફંક્શન 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
એરેમાં દરેક ઑબ્જેક્ટની અંદર, તમારે એક 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
માટે ફાઇલ (નિર્દેશિકા નહીં) પણ નિર્દિષ્ટ કરવી આવશ્યક છે.
વિકલ્પ