Miksi en voi käyttää koko sovellusta tai sivustoa Google-kääntäjän kautta ja saada peruskäännöstä toisella kielellä?
Nyt voit!
Nimi hokeylization
on portmanteau, joka tarkoittaa "hokey lokalisointia"
Se on jokseenkin hokey, koska se on hyvin yksinkertainen: se lähettää merkkijonoja Google-kääntäjälle
Ja se on yksinkertainen, mutta myös erittäin tehokas. Siinä on erityinen tuki HTML-dokumenteille, HandlebarsJS mallit, ja Markdown tiedostot.
Voit kääntää:
- JavaScript-objekti, joka sisältää viestejä
- mikä tahansa määrä tiedostoja tai hakemistoja, aina hakemistoissa rekursiivisesti
Tämä README.md-dokumentti on käännetty itse hokeylisointityökalulla kielelle kaikki Google-kääntäjän tukemat kielet!
Olen varma, että se ei ole täydellinen, mutta toivon, että se on parempi kuin ei mitään!
🇸🇦 arabia 🇧🇩 Bengali 🇩🇪 saksa 🇺🇸 englanti 🇪🇸 espanja 🇫🇷 ranska 🇹🇩 Hausa 🇮🇳 Hindi 🇮🇩 indonesia 🇮🇹 italia 🇯🇵 japani 🇰🇷 korea 🇮🇳 Marathi 🇵🇱 puola 🇧🇷 portugali 🇷🇺 venäjä 🇰🇪 swahili 🇵🇭 Tagalog 🇹🇷 turkki 🇵🇰 Urdu 🇻🇳 vietnam 🇨🇳 kiina
Tämä käännös alkuperäisestä README voi olla virheellinen -- korjaukset ovat erittäin tervetulleita! Lähetä pull-pyyntö GitHubissa, tai jos et halua tehdä niin, avaa ongelma
Kun luot uuden GitHub-ongelman käännöksestä, toimi seuraavasti:
- sisällytä sivun URL-osoite (kopioi/liitä selaimen osoiteriviltä)
- sisällytä täsmällinen virheellinen teksti (kopioi/liitä selaimesta)
- kuvaile mikä on vialla -- onko käännös virheellinen? onko muotoilu rikki jotenkin?
- Ehdota ystävällisesti parempaa käännöstä tai tekstin oikeaa muotoilua
- Kiitos!
- Lähde
- Tuki ja rahoitus
- Asennus
- Asetukset
- JavaScript-merkkijonoresurssitiedoston kääntäminen
- Tekstitiedostojen hakemiston kääntäminen
- Muut vaihtoehdot
- JSON-eräkomennot
Yritän olla ammattimainen avoimen lähdekoodin ohjelmistokehittäjä. Olen ollut töissä Ohjelmistoteollisuudessa useiden vuosien ajan, olen perustanut menestyviä yrityksiä ja myynyt niitä julkisille yrityksille. Menetin hiljattain työpaikkani, eikä minulla oikeastaan ole muita töitä
Joten yritän kirjoittaa hyödyllisiä ohjelmistoja ja katsoa, toimiiko se
Jos pidät tämän ohjelmiston käyttämisestä, otan mielelläni vastaan jopa pienin kuukausimaksu Patreonin kautta
Kiitos!
Jos haluat käyttää komentorivityökalua, asenna komennolla npm
tai yarn
:
npm install -g hokeylization
yarn global add hokeylization
Käytä kirjastona asentamalla lite
versio, joka on paljon pienempi:
npm install -g hokeylization-lite
yarn global add hokeylization-lite
Katso sitten hokey
komennon ohje:
hokey --help
hokey -h
Haluatko nähdä tulosteen omalla kielelläsi tai muulla kielellä?
hokey
yrittää tunnistaa kielen automaattisesti shellin ympäristömuuttujista
Voit pakottaa kielen asettamalla LC_ALL
ympäristömuuttujan:
LC_ALL=it hokey --help
Huomaa, että jos olet asentanut hokeylization-lite
, komennon ohje on saatavilla vain englanniksi
Määritä GOOGLE_TRANSLATE_PROJECT_ID
-ympäristömuuttuja tunnistamaan Google-kääntäjäprojektisi
Aseta GOOGLE_APPLICATION_CREDENTIALS
-ympäristömuuttuja lataamillesi JSON-tunnistetiedoille
sen jälkeen, kun olet selvittänyt kuinka todennus toimii Google-pilvessä (se voi olla hauskaa)
Jos käytät lähdekoodia, voit myös laittaa ne lähdekoodiin .env
-tiedostoon
hakemistoon ne ladataan suorituksen aikana [dotenv]:n kautta (https://www.npmjs.com/package/dotenv)
Merkkijonotaulukkosi on oltava JavaScript-tiedostossa jossakin seuraavista kahdesta muodossa:
ES6 vienti:
export default {
string_key: "some value",
another_key: "another value",
... more keys ...
}
CommonJS-vienti
module.exports = {
string_key: "some value",
another_key: "another value",
... more keys ...
}
Jos tämän tiedoston nimi oli myfile.en.js
, voit kääntää sen espanjaksi ja saksaksi seuraavasti:
hokey -l es,de -o myfile.LANG.js myfile.en.js
Yllä olevan LANG
on erityinen - se on varattu sana tässä työkalussa!
LANG
korvataan tulostiedostojen kielikoodilla
Siten yllä oleva komento luo tiedostot:
myfile.es.js
myfile.de.js
Vaihtoehto -l
/ --languages
on pilkuilla eroteltu luettelo ISO-kielikoodeista
Google-kääntäjän tukema
Jos tulostiedosto on jo olemassa, se tutkitaan sen määrittämiseksi, mitkä avaimet ovat jo olemassa. Olemassa olevia avaimia ei käännetä. Puuttuvien avainten käännökset luodaan ja liitetään JS-objektin loppuun. Koko tiedosto kirjoitetaan aina uudelleen.
Jos haluat pakottaa kaikki näppäimet uudelleenkääntämään, käytä -f
/ --force
-vaihtoehtoa
Voit myös kääntää tiedostohakemiston. hokeylization vierailee rekursiivisesti joka tiedosto hakemistoon ja suorita sen sisältö Google-kääntäjän kautta ja tallenna tulos samannimiseen tiedostoon erillisessä hakemistopuussa
Kun käännöksen kohteena on hakemisto, tämä tila on käytössä
Vaihtoehto -o
/ --outfile
määrittää tuloshakemiston
SUURI VAROITUS: Kun käännät hakemistoja, ÄLÄ määritä tuloshakemistoa joka on syöttöhakemistossasi! Jos teet tämän, toimit seuraavasti:
- aiheuttaa ääretöntä rekursiota
- kerää Google-laskusi
- täytä levysi
- pidä vähemmän hauskaa
Tässä on esimerkki siitä, mitä ei saa tehdä:
hokey -l es -o templates/es templates # <--- DON'T DO THIS!
Kun tämä suoritetaan, käännetyt tiedostot kirjoitetaan templates/es
, ja niistä tulee siten uusia
käännettävät lähdetiedostot, koska ne ovat kohdassa templates/
-- tämä prosessi jatkuu
ikuisesti, älä tee sitä!
OK, oletetaan, että sinulla on sähköpostimalleja hakemistossa:
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
Jos haluat kääntää kaikki nämä espanjaksi ja saksaksi, suorita:
hokey -l es,de -o templates/email/LANG templates/email/en
Yllä olevassa LANG
on varattu sana, ja se korvataan ISO-kielikoodilla
Mitä tapahtuu, kun yllä oleva suoritetaan:
templates/email/es
" jatemplates/email/de
luodaan (jos niitä ei ole)- Jokainen
templates/email/en
oleva tiedosto käännetään espanjaksi ja saksaksi - Olemassa olevia tulostiedostoja ei luoda uudelleen, ellet käytä
-f
" /--force
- Päädyt identtiseen hakemistorakenteeseen ja tiedostoihin
es
" jade
, kuten sinulla onen
Anna -n
/ --dry-run
run` näyttääksesi mitä tehdään, mutta älä oikeastaan soita API-kutsuja tai kirjoita tiedostoja
Anna -f
/ --force
käännökset aina uudelleen, vaikka ne olisivat jo olemassa
Anna -m
/ --match
rajoittaaksesi käsiteltäviä tiedostoja ajettaessa hakemistotilassa
Et ehkä aina halua kääntää jokaista lähdehakemistosi tiedostoa kohdehakemistoosi
Vaihtoehdon -m
/ --match
on säännöllinen lauseke (varo shell-lainaussääntöjä!), joka määrittää
mitkä tiedostot tulee kääntää
Jos olet epävarma, voit yhdistää tämän valinnan komennolla -n
/ --dry-run
run" nähdäksesi mitkä tiedostot käännetään
Joskus -m
vastaa liian monta tiedostoa. Käytä -e
/ --excludes
-vaihtoehtoa sulkeaksesi pois
tiedostot, jotka muuten olisivat täsmänneet
Voit luetella useita säännöllisiä lausekkeita välilyönneillä erotettuina
Yleinen käyttötapa olisi: --excludes node_modules dist \.git build tmp
Käännettävät merkkijonot voivat sisältää {{ handlebars }}
-malleja, joko kahdella tai kolmella aaltosulkeella
Todennäköisesti ETT halua näiden mallien sisällön käännettäväksi
Ohita -H
/ --handlebars
-lippu, niin mitään sanan {{ ... }}
sisällä ei käännetä
Markdown ei ole teksti eikä html, joten Google-kääntäjällä on joitain vaikeuksia sen kanssa
Lippu "-M" / --markdown
-M
merkintätiedostojen erikoiskäsittelyn
Merkintätiedostoissa, jos et käytä -M
lippua, löydät todennäköisesti seuraavat ongelmat:
- Rikkinäiset linkit. Käännöksessä välilyönti näkyy sen jälkeen, kun merkintälinkin kuvaus päättyy (kirjaimella
]
), mutta ennen kuin sen kohdelinkki alkaa (merkillä(
). Tämä saa merkinnän hahmontumaan väärin ja linkki on rikki asiakirjaa katseltaessa. - Koodilohkot käännetään. Google-kääntäjä ei tiedä, mitä markdown pitää koodina ja mitä ei
- Väärä välilyönti sisennetyille koodilohkoille. Välilyöntejä on vaikea säilyttää käännöksessä
backticks
sisällä olevat asiat käännetään, kun haluat melkein aina niiden olevan kirjaimellisia arvoja
Kun -M
/ --markdown
on käytössä:
- Kuvio
](
tiivistetään muotoon](
mikä korjaa rikkinäiset merkintälinkit - "No translate" -kääre sijoitetaan sisennettyjen koodilohkojen ympärille, mikä säilyttää oikean sisennyksen ja varmistaa, että niitä ei käännetä
- "Ei käännöstä" -kääre sijoitetaan tekstin ympärille
backticks
sen varmistamiseksi, että niitä ei käännetä
Yleensä kaikki käsitellään pelkkänä tekstinä
Jos sisältösi on HTML-muotoa, se sekoitetaan, ellet ohita vaihtoehtoa -p html
" / --process-as html
Seikkailunhaluisille: kun käsittelet tiedostoja hakemistossa, voit välittää vaihtoehdon -F
/ --filter
suodattaaksesi tulosteen ennen kuin se kirjoitetaan tiedostojärjestelmään
Tämän vaihtoehdon arvon on oltava polku JS-tiedostoon, joka vie funktion nimeltä filter
filter
funktion on oltava async
, koska sitä kutsutaan await
Ennen kuin tiedostot kirjoitetaan levylle, koko tiedoston sisältö välitetään filter
-funktiolle merkkijonona
filter
on se, mikä itse asiassa kirjoitetaan tallennustilaan
Näin ollen sinulla on täysi määräysvalta siihen, mitä lopulta kirjoitetaan
Suodatinkomentosarjaa .js
filter
suodattimeen
nimi, ellei se jo pääty .js
:iin)
- Nykyinen hakemisto
- Hakemisto nimeltä
.hokey-filters
nykyisessä hakemistossa - Hakemisto nimeltä
${HOME}/.hokey-filters
, jossa${HOME}
on nykyisen käyttäjän kotihakemisto - Sisäänrakennettu suodatinhakemisto
filter
voi olla useita sanoja. Tässä tapauksessa ensimmäinen sana on suodattimen nimi ja
loput sanat välitetään argumentteina filter
Käytä -h
/ --help
näyttääksesi ohjeen
-j
/ --json
-vaihtoehdolla voit suorittaa useita koordinoituja hokey
-komentoja
Käytännössä tätä tiedostoa kutsutaan nimellä hokey.json
, mutta voit nimetä sen miksi haluat
Jos annat hakemiston -j
-vaihtoehdoksi, hokey
hokey.json
kyseisestä hakemistosta.
JSON-tiedoston tulee sisältää yksi objekti. Objektin sisällä sen ominaisuuksien nimet ovat samat kuin
komentorivin valinnat sekä yksi lisäominaisuus nimeltä hokey
hokey
ominaisuus on joukko suoritettavia komentoja. Näissä komentoissa ilmoitetut ominaisuudet tulevat voimaan
ohittaa mahdolliset päällekkäiset ilmoitukset ulkoisessa objektissa.
Jokaisessa hokey
taulukon objektissa sinun tulee määrittää name
ja tulo- ja tulostustiedostot
Tässä on esimerkki 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"
}
]
}
Anna joukko tiedostopolkuja nimellä infiles
yhden polun infile
, kuten tässä esimerkissä:
{
... [
{
"name": "my docs",
"infiles": ["README.md", "INSTALL.md", "TUTORIAL.md"],
"outfile": "docs/LANG/",
"markdown": true
]
}
Käännettäessä useille kielille hokey
voi luoda hakemistotiedoston, jossa luetellaan kaikki tehdyt käännökset
ja tarjoaa linkkejä niihin
Indeksejä luotaessa sinulla voi olla vain yksi tulolähde
Välitä vaihtoehto "-I" / --index
-I
arvo on paikka, jossa indeksitiedosto luodaan, joka voi olla tiedosto
tai hakemistosta. Jos se on hakemisto, oletustiedostonimeä käytetään mallin perusteella (katso alla)
Käytä -A
/ --index-template
" määrittääksesi, miten indeksituloste muotoillaan. Voit määrittää "html",
"markdown", "text" tai tiedostopolku omaan HandlebarsJS -malliisi
Jos määrität oman mallin, sinun on määritettävä myös tiedosto (ei hakemisto) -I
/ --index
vaihtoehto