Naha kuring henteu tiasa ngajalankeun sadaya aplikasi atanapi situs ngalangkungan Google Tarjamah sareng nampi tarjamahan dasar dina basa sanés?
Ayeuna, anjeun tiasa!
Ngaran hokeylization
mangrupakeun portmanteau, hartina 'hokey lokalisasi'
Ieu rada hokey sabab basajan pisan: ngirim string ka Google Tarjamah
Tur éta basajan, tapi ogé pohara kuat. Éta gaduh dukungan khusus pikeun dokumén HTML, HandlebarsJS témplat, jeung Markdown file.
Anjeun tiasa narjamahkeun:
- objék JavaScript ngandung pesen
- sajumlah file atanapi diréktori, sok ngaliwat diréktori sacara rekursif
Ieu dokumén README.md geus ditarjamahkeun, ngagunakeun alat hokeylization sorangan, kana sagala basa dirojong ku Google Tarjamah!
Kuring yakin éta teu sampurna, tapi kuring miharep éta leuwih hade tinimbang nanaon!
🇸🇦 Arab 🇧🇩 Bengali 🇩🇪 Jerman 🇺🇸 Inggris 🇪🇸 Spanyol 🇫🇷 Perancis 🇹🇩 Hausa 🇮🇳 Hindi 🇮🇩 basa Indonesia 🇮🇹 Italia 🇯🇵 Jepang 🇰🇷 Koréa 🇮🇳 Marathi 🇵🇱 Polandia 🇧🇷 Portugis 🇷🇺 Rusia 🇰🇪 Swahili 🇵🇭 Tagalog 🇹🇷 Turki 🇵🇰 Urdu 🇻🇳 Vietnam 🇨🇳 Cina
Tarjamahan khusus ieu tina [README] asli (https://github.com/cobbzilla/hokeylization/blob/master/README.md) meureun cacad -- koreksi pisan wilujeng sumping! Punten kirimkeun permintaan tarik dina GitHub, atanapi upami anjeun teu nyaman ngalakukeun éta, buka masalah
Lamun anjeun nyieun masalah GitHub anyar ngeunaan tarjamahan, mangga ngalakukeun:
- kalebet URL halaman (salinan/témpél tina bar alamat browser)
- kalebet téks anu leres anu salah (salin/témpél tina browser)
- Punten terangkeun naon anu lepat -- naha tarjamahanna lepat? formatna rusak kumaha bae?
- punten nawiskeun usulan tarjamahan anu langkung saé, atanapi kumaha téks kedah diformat leres
- Hatur nuhun!
- Sumber
- Rojongan sareng Pembiayaan
- Pamasangan
- Setup
- Narjamahkeun file sumberdaya string JavaScript
- Narjamahkeun diréktori file téks
- Pilihan séjén
- Paréntah angkatan JSON
Kuring nyobian janten pamekar software open source profésional. Kuring geus digawé di industri software salila sababaraha taun, Kuring geus dimimitian pausahaan suksés jeung dijual ka pausahaan umum. Anyar-anyar ieu kuring kaleungitan padamelan, sareng kuring henteu ngagaduhan padamelan anu sanés
Janten kuring badé nyobian nyerat parangkat lunak anu mangpaat sareng ningali upami éta jalanna
Upami anjeun resep nganggo parangkat lunak ieu, kuring bakal bagja nampi malah pangleutikna kontribusi bulanan via Patreon
Hatur nuhun!
Pikeun nganggo alat baris paréntah, pasang nganggo npm
atanapi yarn
:
npm install -g hokeylization
yarn global add hokeylization
Pikeun dianggo salaku perpustakaan, pasang versi lite
, anu langkung alit:
npm install -g hokeylization-lite
yarn global add hokeylization-lite
Teras tingali pitulung pikeun paréntah hokey
:
hokey --help
hokey -h
Hoyong ningali kaluaran dina basa anjeun atanapi basa sanés?
hokey
nyoba ngadeteksi basa sacara otomatis tina variabel lingkungan cangkang anjeun
Anjeun tiasa maksa hiji basa ku netepkeun variabel lingkungan LC_ALL
:
LC_ALL=it hokey --help
Catet yén upami anjeun parantos masang hokeylization-lite
, bantosan paréntah ngan sayogi dina basa Inggris
Setel variabel lingkungan GOOGLE_TRANSLATE_PROJECT_ID
pikeun ngidentipikasi proyék Google Tarjamah anjeun
Setel variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
kana kredensial JSON anu anjeun unduh
sanggeus figuring kaluar kumaha auténtikasi jalan dina Google awan (tiasa senang)
Upami anjeun ngajalankeun kode sumber, anjeun ogé tiasa nempatkeun ieu dina file .env
dina sumberna
diréktori aranjeunna bakal dimuat dina runtime via dotenv
Tabel string anjeun kedah aya dina file JavaScript dina salah sahiji tina dua bentuk ieu:
ékspor ES6:
export default {
string_key: "some value",
another_key: "another value",
... more keys ...
}
Ékspor CommonJS
module.exports = {
string_key: "some value",
another_key: "another value",
... more keys ...
}
Upami file ieu dingaranan myfile.en.js
, anjeun tiasa narjamahkeun kana basa Spanyol sareng Jerman nganggo:
hokey -l es,de -o myfile.LANG.js myfile.en.js
The LANG
di luhur husus - mangrupa kecap ditangtayungan dina alat ieu!
LANG
diganti ku kode basa pikeun file kaluaran
Janten paréntah di luhur nyiptakeun file:
myfile.es.js
myfile.de.js
Pilihan -l
/ --languages
nyaéta daptar kode basa ISO anu dipisahkeun koma.
dirojong ku Google Tarjamah
Upami file kaluaran parantos aya, éta bakal ditaliti pikeun nangtukeun konci mana anu parantos aya. Konci anu aya moal ditarjamahkeun. Tarjamahan pikeun konci anu leungit bakal didamel sareng ditambihan nepi ka ahir objék JS. Sakabéh file sok ditulis ulang.
Pikeun maksa tarjamahan deui sadaya konci, paké pilihan -f
/ --force
Anjeun ogé tiasa narjamahkeun diréktori file. hokeylization bakal recursively didatangan unggal file dina diréktori tur ngajalankeun eusina ngaliwatan Google Tarjamah, tur nyimpen kaluaran ka hiji file idéntik ngaranna dina tangkal diréktori misah
Lamun udagan tarjamahan anjeun diréktori, mode ieu diaktipkeun
Pilihan -o
/ --outfile
nangtukeun diréktori kaluaran
PERHATOSAN BESAR: Nalika narjamahkeun diréktori, ULAH tangtukeun diréktori kaluaran anu aya dina diréktori input anjeun! Upami anjeun ngalakukeun ieu, anjeun bakal:
- induce recursion taya wates
- ngajalankeun up tagihan Google Anjeun
- eusian disk anjeun *kurang senang
Ieu conto naon anu * henteu kedah dilakukeun *:
hokey -l es -o templates/es templates # <--- DON'T DO THIS!
Nalika ieu jalan, file tarjamahan ditulis kana templates/es
, sahingga jadi anyar
file sumber pikeun ditarjamahkeun, sabab aya dina templates/
-- prosés ieu diteruskeun
salamina, ulah ngalakukeun eta!
OKÉ, anggap anjeun gaduh sababaraha témplat email dina diréktori:
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
Pikeun narjamahkeun sadayana ieu ka Spanyol sareng Jerman, jalankeun:
hokey -l es,de -o templates/email/LANG templates/email/en
Di luhur, LANG
mangrupikeun kecap anu ditangtayungan sareng bakal diganti ku kode basa ISO
Naon anu lumangsung nalika di luhur ngajalankeun:
templates/email/es
jeungtemplates/email/de
bakal dijieun (upami teu aya)- Unggal file dina
templates/email/en
bakal ditarjamahkeun ka Spanyol jeung Jerman - File kaluaran anu aya moal didamel deui upami anjeun nganggo
-f
/--force
- Anjeun bakal gaduh struktur diréktori sareng file anu sami dina
es
sarengde
sapertos anu anjeun gaduh dinaen
-n
/ --dry-run
pikeun ningalikeun naon anu bakal dilakukeun, tapi henteu leres-leres nelepon API atanapi nyerat file naon waé.
-f
/ --force
pikeun salawasna ngahasilkeun deui tarjamahan, sanajan tarjamahanna geus aya
-m
/ --match
pikeun ngawatesan file anu diolah nalika ngajalankeun dina modeu diréktori
Anjeun moal salawasna hoyong narjamahkeun unggal file dina diréktori sumber anjeun ka diréktori target anjeun
Nilai pilihan -m
/ --match
nyaéta regex (awas aturan kutipan cangkang!) anu nangtukeun
file mana anu kedah ditarjamahkeun
Upami aya ragu, anjeun tiasa ngagabungkeun pilihan ieu sareng -n
/ --dry-run
pikeun ningali file mana anu bakal ditarjamahkeun.
Kadang -m
anjeun cocog sareng seueur teuing file. Anggo pilihan -e
/ --excludes
pikeun sacara eksplisit ngaluarkeun
file nu disebutkeun bakal cocog
Anjeun tiasa daptar sababaraha regexes, dipisahkeun ku spasi
Pamakéan umum nyaéta: --excludes node_modules dist \.git build tmp
Senar anu ditarjamahkeun tiasa ngandung témplat {{ handlebars }}
, boh dua atanapi tilu kurung kurung
Anjeun meureun TIDAK hoyong barang-barang di jero témplat éta ditarjamahkeun
Lebetkeun bandéra -H
/ --handlebars
, sareng naon waé anu aya dina {{ ... }}
moal ditarjamahkeun
Markdown sanes téks atanapi html, janten Google Translate ngagaduhan sababaraha kasusah
Bandéra -M
/ --markdown
ngamungkinkeun penanganan husus pikeun file markdown
Kalayan file markdown, upami anjeun henteu nganggo bandéra -M
, anjeun panginten bakal mendakan masalah ieu:
- Tumbu rusak. Dina tarjamahan, karakter spasi muncul sanggeus pedaran link markdown ends (kalawan
]
) tapi sateuacan tautan targétna dimimitian (kalayan(
). Hal ieu nyababkeun markdown teu leres, sareng tautan rusak nalika ningali dokumén. - Blok kode ditarjamahkeun. Google narjamahkeun henteu terang naon anu dianggap markdown kode sareng naon anu henteu
- Spasi lepat pikeun blok kode indented. Spasi hese dilestarikan dina tarjamah
- Hal-hal di jero
backticks
bakal ditarjamahkeun, nalika anjeun ampir sok hoyong aranjeunna janten nilai literal
Nalika -M
/ --markdown
diaktipkeun:
- Pola
](
bakal dikondensasi jadi](
sahingga ngalereskeun tautan markdown anu rusak - Bungkus "henteu narjamahkeun" bakal disimpen di sabudeureun blok kode anu indented, ngajaga indentasi anu leres sareng mastikeun aranjeunna henteu ditarjamahkeun
- Bungkus "henteu narjamahkeun" bakal disimpen di sabudeureun téks dina
backticks
pikeun mastikeun yén éta henteu ditarjamahkeun
Biasana sadayana diolah salaku téks polos
Upami eusi anjeun HTML, éta bakal diganggu kecuali anjeun ngalangkungan pilihan -p html
/ --process-as html
Pikeun petualang: nalika ngolah file dina diréktori, anjeun tiasa ngalangkungan pilihan -F
/ --filter
pikeun nyaring kaluaran sateuacan ditulis kana filesystem
Nilai pilihan ieu kedah janten jalur ka file JS anu ngékspor fungsi anu dingaranan filter
Fungsi filter
kudu async
sabab await
bakal disebut kana eta
Saméméh file ditulis kana disk, sakabéh eusi file bakal dibikeun ka fungsi filter
salaku string a
Nilai balik ti fungsi filter
nyaeta naon sabenerna bakal ditulis ka gudang
Ku kituna, anjeun boga kontrol total leuwih naon tungtungna bakal ditulis
filter
bakal dipilarian di lokasi di handap ieu (kalayan .js
bakal ditambah kana saringan
ngaran, iwal mun geus ditungtungan ku .js
)
- Diréktori ayeuna
- A diréktori ngaranna
.hokey-filters
dina diréktori ayeuna - Diréktori ngaranna
${HOME}/.hokey-filters
, dimana${HOME}
nyaéta diréktori imah pamaké ayeuna - Diwangun-di diréktori saringan
filter
tiasa sababaraha kecap. Dina hal ieu, kecap munggaran nyaéta ngaran filter, sarta
kecap sésana bakal diliwatan salaku argumen pikeun fungsi filter
Anggo -h
/ --help
pikeun nunjukkeun pitulung
Kalayan pilihan -j
/ --json
, anjeun tiasa ngajalankeun sababaraha paréntah hokey
anu ngagabung
Ku konvénsi file ieu disebut hokey.json
, tapi anjeun bisa ngaranan eta naon rék
Upami anjeun ngalangkungan diréktori salaku pilihan -j
, hokey
bakal milarian hokey.json
dina diréktori éta
Berkas JSON kedah ngandung hiji obyék. Dina obyék éta, nami milikna sami sareng
pilihan garis paréntah, ditambah hiji sipat tambahan ngaranna hokey
hokey
mangrupa susunan paréntah pikeun ngajalankeun. Sipat anu dinyatakeun dina paréntah ieu bakal
override sagala duplikat deklarasi dina objék luar.
Dina unggal obyék dina hokey
Asép Sunandar Sunarya, anjeun kudu nangtukeun hiji name
, sarta input sarta output file.
Ieu conto 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"
}
]
}
Lebetkeun sakumpulan jalur file salaku infiles
tinimbang hiji jalur infile
, sapertos dina conto ieu:
{
... [
{
"name": "my docs",
"infiles": ["README.md", "INSTALL.md", "TUTORIAL.md"],
"outfile": "docs/LANG/",
"markdown": true
]
}
Nalika narjamahkeun kana seueur basa, hokey
tiasa nyiptakeun file indéks anu daptar sadaya tarjamahan anu dilakukeun.
sarta nyadiakeun Tumbu ka aranjeunna
Nalika ngahasilkeun indéks, anjeun ngan ukur tiasa gaduh hiji sumber input
Lebetkeun pilihan -I
/ --index
, nilaina dimana file indéks bakal dibangkitkeun, anu tiasa janten file
atawa diréktori. Upami éta diréktori, nami file standar bakal dianggo, dumasar kana citakan (tingali di handap)
Anggo -A
/ --index-template
pikeun nangtukeun kumaha kaluaran indéks diformat. Anjeun tiasa nangtukeun 'html',
'markdown', 'text', atawa jalur file ka template HandlebarsJS anjeun sorangan
Upami anjeun netepkeun template anjeun nyalira, anjeun ogé kedah netepkeun file (sanés diréktori) pikeun -I
/ --index
pilihan