Kini idi ti MO ko le ṣiṣẹ gbogbo app tabi aaye mi nipasẹ Google Tumọ ati gba itumọ ipilẹ ni ede miiran?
*** Bayi, o le! ***
Orukọ hokeylization
jẹ portmanteau, itumo 'isọdibilẹ hokey'
O jẹ hokey diẹ nitori pe o rọrun pupọ: o fi awọn okun ranṣẹ si Google Translate
Ati pe o rọrun, sibẹsibẹ tun lagbara pupọ. O ni atilẹyin pataki fun awọn iwe HTML, HandlebarsJS awọn awoṣe, ati Markdown awọn faili.
O le tumọ:
- ohun JavaScript ti o ni awọn ifiranṣẹ ninu
- nọmba eyikeyi ti awọn faili tabi awọn ilana, nigbagbogbo lilọ kiri awọn ilana loorekoore
Iwe README.md yii ti ni itumọ, ni lilo ohun elo hokeylization funrararẹ, sinu gbogbo ede ni atilẹyin nipasẹ Google Tumọ!
Mo ni idaniloju pe ko pe, ṣugbọn Mo nireti pe o dara ju ohunkohun lọ!
🇸🇦 Larubawa 🇧🇩 Ede Bengali 🇩🇪 Jẹmánì 🇺🇸 English 🇪🇸 Spani 🇫🇷 Faranse 🇹🇩 Hausa 🇮🇳 Hindi 🇮🇩 Indonesian 🇮🇹 Itali 🇯🇵 Japanese 🇰🇷 Korean 🇮🇳 Marathi 🇵🇱 Polish 🇧🇷 Portuguese 🇷🇺 Russian 🇰🇪 Swahili 🇵🇭 Tagalog 🇹🇷 Tọki 🇵🇰 Urdu 🇻🇳 Vietnamese 🇨🇳 Kannada
Itumọ ni pato ti atilẹba README le jẹ abawọn - * awọn atunṣe ṣe itẹwọgba pupọ!* Jọwọ fi ibeere kan ranṣẹ si GitHub (https://github.com/cobbzilla/hokeylization/pulls), tabi ti o ko ba ni itunu lati ṣe iyẹn, ṣii ọrọ kan
Nigbati o ba ṣẹda ọrọ GitHub tuntun nipa itumọ kan, jọwọ ṣe:
- pẹlu URL oju-iwe naa (daakọ/lẹẹmọ lati ọpa adirẹsi aṣawakiri)
- pẹlu ọrọ gangan ti o jẹ aṣiṣe (daakọ/lẹẹmọ lati ẹrọ aṣawakiri)
- Jọwọ ṣapejuwe ohun ti ko tọ -- ṣe itumọ naa ko tọ? ti wa ni awọn kika baje bakan?
- Fi inurere funni ni imọran itumọ ti o dara julọ, tabi bi o ṣe yẹ ki ọrọ naa ṣe tito daradara
- E dupe!
- Orisun
- Atilẹyin ati Ifowopamọ
- [Fifi sori ẹrọ](#Fifi sori ẹrọ)
- Ṣeto
- Titumọ faili orisun okun JavaScript kan
- Titumọ iwe ilana ti awọn faili ọrọ
- [Awọn aṣayan miiran](#Awọn aṣayan miiran)
- Awọn pipaṣẹ ipele JSON
Mo ngbiyanju lati jẹ oludasilẹ sọfitiwia orisun ṣiṣi ọjọgbọn. Mo ti ṣiṣẹ ninu ile-iṣẹ sọfitiwia fun ọpọlọpọ ọdun, Mo ti bẹrẹ awọn ile-iṣẹ aṣeyọri ati ta wọn si awọn ile-iṣẹ gbangba. Laipẹ Mo padanu iṣẹ mi, ati pe Emi ko ni iṣẹ miiran ti o laini gaan
Nitorinaa Emi yoo gbiyanju kikọ sọfitiwia iranlọwọ ati rii boya iyẹn ṣiṣẹ
Ti o ba gbadun lilo sọfitiwia yii, inu mi yoo dun pupọ lati gba paapaa awọn ti o kere julọ ilowosi oṣooṣu nipasẹ Patreon
E dupe!
Lati lo irinṣẹ laini aṣẹ, fi sori ẹrọ ni lilo npm
tabi yarn
:
npm install -g hokeylization
yarn global add hokeylization
Lati lo bi ile-ikawe, fi ẹya lite
ẹrọ, eyiti o kere pupọ:
npm install -g hokeylization-lite
yarn global add hokeylization-lite
Lẹhinna wo iranlọwọ fun aṣẹ hokey
:
hokey --help
hokey -h
Ṣe o fẹ lati wo iṣẹjade ni ede rẹ tabi ede miiran?
hokey
gbidanwo lati wa ede naa ni adaṣe lati awọn oniyipada agbegbe ikarahun rẹ
O le fi ipa mu ede kan nipa tito iyipada ayika LC_ALL
:
LC_ALL=it hokey --help
Ṣe akiyesi pe ti o ba ti fi hokeylization-lite
sori ẹrọ, iranlọwọ aṣẹ wa ni Gẹẹsi nikan
Ṣeto oniyipada ayika GOOGLE_TRANSLATE_PROJECT_ID
lati ṣe idanimọ iṣẹ akanṣe Google Translate rẹ
Ṣeto iyipada ayika GOOGLE_APPLICATION_CREDENTIALS
si awọn iwe-ẹri JSON ti o ṣe igbasilẹ
lẹhin ti o rii bi ijẹrisi ṣe n ṣiṣẹ lori awọsanma Google (o le jẹ igbadun)
Ti o ba nṣiṣẹ lati koodu orisun, o tun le fi awọn wọnyi sinu faili .env
ni orisun
Ilana ti wọn yoo kojọpọ ni akoko ṣiṣe nipasẹ dotenv
Tabili okun rẹ ** gbọdọ *** wa ninu faili JavaScript ni ọkan ninu awọn fọọmu meji wọnyi:
ES6 okeere:
export default {
string_key: "some value",
another_key: "another value",
... more keys ...
}
CommonJS okeere
module.exports = {
string_key: "some value",
another_key: "another value",
... more keys ...
}
Ti faili yii ba jẹ orukọ myfile.en.js
, o le tumọ rẹ si Spani ati Jẹmánì pẹlu:
hokey -l es,de -o myfile.LANG.js myfile.en.js
LANG
ti o wa loke jẹ pataki - o jẹ ọrọ ti o wa ni ipamọ ninu ohun elo yii!
LANG
ni a rọpo pẹlu koodu ede fun awọn faili iṣelọpọ
Nitorinaa aṣẹ ti o wa loke ṣẹda awọn faili:
myfile.es.js
myfile.de.js
Aṣayan -l
/ --languages
jẹ atokọ ti o ya sọtọ komama ti awọn koodu ede ISO
ti Google Tumọ ṣe atilẹyin
Ti faili iṣẹjade ba wa tẹlẹ, yoo ṣe ayẹwo lati pinnu iru awọn bọtini ti wa tẹlẹ. Awọn bọtini to wa ko ni tumọ. Awọn itumọ fun awọn bọtini ti o padanu yoo jẹ ipilẹṣẹ ati fikun si opin ohun JS. Gbogbo faili ti wa ni nigbagbogbo tunkọ.
Lati fi ipa titumọ gbogbo awọn bọtini, lo -f
/ --force
O tun le tumọ iwe ilana ti awọn faili. hokeylization yoo recursively be gbogbo faili ninu awọn liana ati ṣiṣe awọn awọn akoonu ti nipasẹ Google Translate, ki o si fi awọn ti o wu jade si faili ti a npè ni aami kan ninu igi itọnisọna lọtọ
Nigbati ibi-afẹde ti itumọ rẹ jẹ itọsọna kan, ipo yii ti ṣiṣẹ
Aṣayan -o
/ --outfile
ni pato ilana ti o wu jade
** IKILỌ NLA *: Nigbati o ba n tumọ awọn ilana, ** MAA ṢE pato ilana iṣelọpọ kan ti o wa laarin rẹ input liana! Ti o ba ṣe eyi, iwọ yoo:
- jeki ailopin recursion
- Ṣiṣe owo Google rẹ soke
- fọwọsi disk rẹ
- ni kere fun igbadun
Eyi ni apẹẹrẹ ohun ti * ko ṣe *:
hokey -l es -o templates/es templates # <--- DON'T DO THIS!
Nigbati eyi ba ṣiṣẹ, awọn faili ti a tumọ ni a kọ si templates/es
, ati nitorinaa di tuntun
awọn faili orisun lati tumọ, niwon wọn wa labẹ templates/
- ilana yii tẹsiwaju
lailai, ma ṣe o!
O dara, jẹ ki a sọ pe o ni diẹ ninu awọn awoṣe imeeli ninu itọsọna kan:
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
Lati tumọ gbogbo awọn wọnyi si Spani ati Jẹmánì, ṣiṣe:
hokey -l es,de -o templates/email/LANG templates/email/en
Ninu eyi ti o wa loke, LANG
jẹ ọrọ ipamọ ati pe yoo rọpo pẹlu koodu ede ISO
Kini yoo ṣẹlẹ nigbati eyi ba ṣiṣẹ:
- Awọn
templates/email/es
' atitemplates/email/de
ilana yoo ṣẹda (ti wọn ko ba si) - Gbogbo faili ti o wa ninu
templates/email/en
ni yoo tumọ si Spani ati Jẹmánì - Awọn faili iṣẹjade ti o wa tẹlẹ kii yoo ṣe atunbi ayafi ti o ba lo
-f
/--force
- Iwọ yoo pari pẹlu ilana ilana kanna ati awọn faili laarin
es
atide
bii o ni labẹen
-n
/ --dry-run
lati ṣe afihan ohun ti yoo ṣee ṣe, ṣugbọn maṣe ṣe awọn ipe API eyikeyi tabi kọ eyikeyi awọn faili
-f
/ --force
lati tuntumọ awọn itumọ nigbagbogbo, paapaa ti wọn ba wa tẹlẹ
-m
/ --match
lati se idinwo awọn faili ti a ṣe ilana nigba ti nṣiṣẹ ni ipo liana
O le ma fẹ nigbagbogbo tumọ * gbogbo * faili ninu itọsọna orisun rẹ si itọsọna ibi-afẹde rẹ
Iye -m
/ --match
jẹ regex (ṣọra awọn ofin itọka ikarahun!)
awọn faili wo ni o yẹ ki o tumọ
Nigbati o ba wa ni iyemeji, o le darapọ aṣayan yii pẹlu -n
/ --dry-run
lati wo iru awọn faili ti yoo tumọ
Nigba miiran -m
rẹ baramu ọpọlọpọ awọn faili. Lo -e
/ --excludes
lati yọkuro ni gbangba
awọn faili ti bibẹẹkọ yoo ti baamu
O le ṣe atokọ ọpọlọpọ awọn regexes, ti o yapa nipasẹ awọn alafo
Lilo ti o wọpọ yoo jẹ: --excludes node_modules dist \.git build tmp
Awọn gbolohun ọrọ lati tumọ le ni awọn awoṣe {{ handlebars }}
ninu, boya pẹlu meji tabi mẹta àmúró
O ṣee ṣe * KO * fẹ nkan ti o wa ninu awọn awoṣe wọnyẹn lati tumọ
-H
/ --handlebars
, ati pe ohunkohun ninu {{ ... }}
ko ni tumọ
Markdown kii ṣe ọrọ tabi html, nitorinaa Google Translate ni awọn iṣoro diẹ pẹlu rẹ
-M
/ --markdown
jẹ́ kí ìṣàmúlò àkànṣe fún àwọn fáìlì isàpamọ́
Pẹlu awọn faili isamisi, ti o ko ba lo asia -M
, o ṣee ṣe ki o rii awọn iṣoro wọnyi:
- Awọn ọna asopọ ti o bajẹ. Ninu itumọ, kikọ aaye kan han lẹhin apejuwe ọna asopọ isamisi ti pari (pẹlu
]
) ṣugbọn ṣaaju ki ọna asopọ ibi-afẹde rẹ to bẹrẹ (pẹlu(
) Eyi fa isamisi lati ṣe ti ko tọ, ati ọna asopọ naa ti bajẹ nigba wiwo iwe-ipamọ naa. - Awọn bulọọki koodu ni itumọ. Google tumọ ko mọ kini isamisi ka koodu ati ohun ti kii ṣe
- Aye ti ko tọ fun awọn bulọọki koodu indented. Aaye jẹ soro lati tọju ni itumọ
- Awọn nkan inu
backticks
yoo ni itumọ, nigbati o fẹrẹ fẹ nigbagbogbo lati jẹ awọn iye gidi
Nigbati -M
/ --markdown
wa ni sise:
- Apẹrẹ
](
yoo jẹ dipọ si](
nitorinaa atunṣe awọn ọna asopọ isamisi ti o bajẹ - Ohun ipari “ko si itumọ” ni yoo gbe ni ayika awọn bulọọki koodu indented, titọju ifisilẹ to dara ati rii daju pe wọn ko tumọ
- A yoo gbe iwe-itumọ “ko si itumọ” ni ayika ọrọ laarin
backticks
lati rii daju pe wọn ko tumọ wọn
Ni deede ohun gbogbo ti ni ilọsiwaju bi ọrọ itele
Ti àkóónú rẹ ba jẹ HTML, yoo jẹ titọ ayafi ti o ba kọja -p html
/ --process-as html
Fun adventurous: nigba ṣiṣe awọn faili ni ilana, o le kọja -F
/ --filter
lati ṣe àlẹmọ iṣelọpọ ṣaaju ki o to kọ ọ si eto faili
Iye aṣayan yii gbọdọ jẹ ọna si faili JS kan ti o ṣe okeere iṣẹ kan ti a npè ni filter
Iṣẹ filter
gbọdọ jẹ async
' nitori a yoo pe await
sori rẹ
Ṣaaju ki o to kọ awọn faili si disk, gbogbo akoonu faili yoo kọja si iṣẹ filter
gẹgẹbi okun
Iye ipadabọ lati iṣẹ filter
jẹ ohun ti yoo kọ gangan si ibi ipamọ
Nitorinaa, o ni iṣakoso lapapọ lori ohun ti yoo kọ nikẹhin
Iwe afọwọkọ filter
ni ao wa fun ni awọn ipo wọnyi (pẹlu .js
yoo wa ni fikun si àlẹmọ
orukọ, ayafi ti o ba ti pari tẹlẹ ni .js
)
- Awọn ti isiyi liana
- Ilana ti a npè ni
.hokey-filters
laarin ilana lọwọlọwọ - Ilana kan ti a npè ni
${HOME}/.hokey-filters
, nibiti${HOME}
ti jẹ ilana ile olumulo lọwọlọwọ - Ti a ṣe sinu itọsọna awọn asẹ
Okun filter
le jẹ awọn ọrọ lọpọlọpọ. Ni idi eyi, ọrọ akọkọ jẹ orukọ àlẹmọ, ati
awọn ọrọ ti o ku yoo kọja bi awọn ariyanjiyan si iṣẹ filter
Lo -h
/ --help
lati ṣe afihan iranlọwọ
Pẹlu -j
/ --json
, o le ṣiṣẹ ọpọlọpọ awọn pipaṣẹ hokey
a ti ṣeto pọ si
Nipa apejọpọ faili yii ni a pe ni hokey.json
, ṣugbọn o le lorukọ rẹ ohunkohun ti o fẹ
Ti o ba kọja itọsọna kan bi aṣayan
-j,
hokeyyoo wa
hokey.json` ninu iwe ilana yẹn
Faili JSON yẹ ki o ni nkan kan ninu. Laarin nkan yẹn, awọn orukọ ohun-ini rẹ jẹ kanna bii
awọn aṣayan ila-aṣẹ, pẹlu ohun-ini afikun kan ti a npè ni hokey
Ohun-ini hokey
jẹ ọpọlọpọ awọn aṣẹ lati ṣiṣẹ. Awọn ohun-ini ti a sọ laarin awọn aṣẹ wọnyi yoo
fagilee eyikeyi awọn ikede ẹda-ẹda ninu ohun ita.
Ninu ohun kọọkan ninu hokey
, o yẹ ki o pato name
, ati titẹ sii ati awọn faili iṣelọpọ
Eyi jẹ apẹẹrẹ ti 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"
}
]
}
Kọja ọpọlọpọ awọn ọna faili bi infiles
dipo ọna infile
, bi ninu apẹẹrẹ yii:
{
... [
{
"name": "my docs",
"infiles": ["README.md", "INSTALL.md", "TUTORIAL.md"],
"outfile": "docs/LANG/",
"markdown": true
]
}
Nigbati o ba tumọ si ọpọlọpọ awọn ede, hokey
le ṣẹda faili atọka ti o ṣe atokọ gbogbo awọn itumọ ti a ṣe
ati pese awọn ọna asopọ si wọn
- Nigbati o ba n ṣẹda awọn atọka, o le ni orisun titẹ sii kan ṣoṣo*
Kọja aṣayan -I
/ --index
, iye naa wa nibiti faili atọka yoo ti ṣe ipilẹṣẹ, eyiti o le jẹ faili
tabi a liana. Ti o ba jẹ itọsọna kan, orukọ faili aiyipada yoo ṣee lo, da lori awoṣe (wo isalẹ)
Lo -A
/ --index-template
lati pinnu bi a ṣe ṣe ọna kika atọka. O le pato 'html',
'markdown', 'ọrọ', tabi ọna faili si tirẹ HandlebarsJS awoṣe
Ti o ba pato awoṣe tirẹ, o tun gbọdọ pato faili kan (kii ṣe ilana) fun -I
/ --index
aṣayan