Би яагаад Google Translate-ээр дамжуулан өөрийн програм эсвэл сайтаа бүхэлд нь ажиллуулж, өөр хэл дээрх үндсэн орчуулгыг авч чадахгүй байна вэ?
Одоо та чадна!
hokeylization
" нэр нь "hokey localization" гэсэн утгатай portmanteau юм.
Энэ нь маш энгийн, учир нь энэ нь зарим талаараа хокей юм: энэ нь Google Translate руу мөр илгээдэг
Мөн энэ нь энгийн, гэхдээ бас маш хүчирхэг юм. Энэ нь HTML баримт бичгийн тусгай дэмжлэгтэй, HandlebarsJS загварууд, болон Markdown файлууд.
Та орчуулж болно:
- мессеж агуулсан JavaScript объект
- дурын тооны файл эсвэл лавлах, үргэлж рекурсив байдлаар лавлах
Энэхүү README.md баримтыг hokeylization хэрэгслийг ашиглан орчуулсан Google Translate дэмждэг бүх хэл!
Энэ нь төгс биш гэдэгт би итгэлтэй байна, гэхдээ энэ нь юу ч биш байснаас дээр гэж найдаж байна!
🇸🇦 Араб 🇧🇩 Бенгали 🇩🇪 Герман 🇺🇸 Англи хэл 🇪🇸 Испани 🇫🇷 Франц 🇹🇩 Hausa 🇮🇳 Хинди 🇮🇩 Индонези 🇮🇹 Итали 🇯🇵 Япон 🇰🇷 Солонгос хэл 🇮🇳 Маранти 🇵🇱 Польш 🇧🇷 Португали 🇷🇺 Орос хэл 🇰🇪 Суахили 🇵🇭 Тагалог 🇹🇷 Турк 🇵🇰 Урду 🇻🇳 Вьетнам 🇨🇳 Хятад
Энэхүү анхны орчуулга нь README алдаатай байж магадгүй -- засвар хийхэд таатай байна! GitHub дээр татах хүсэлт илгээнэ үү. эсвэл та үүнийг хийхэд эвгүй байгаа бол асуудал нээнэ үү
Орчуулгын талаар шинэ GitHub асуудал үүсгэхдээ дараах зүйлийг хийнэ үү:
- хуудасны URL-г оруулах (хөтчийн хаягийн мөрөнд хуулах/хуулах)
- алдаатай текстийг оруулах (хөтөчөөс хуулах/хуулах)
- юу буруу байгааг тайлбарлана уу -- орчуулга буруу байна уу? формат ямар нэг байдлаар эвдэрсэн үү?
- Илүү сайн орчуулга эсвэл текстийг хэрхэн зөв форматлах талаар санал болго
- Баярлалаа!
- [Эх сурвалж](#Эх сурвалж)
- [Дэмжлэг ба санхүүжилт](#Дэмжлэг ба санхүүжилт)
- Суулгалт
- Тохиргоо
- JavaScript стрингийн нөөц файлыг орчуулж байна
- [Текст файлуудын лавлахыг орчуулж байна](#Текст файлын лавлахыг орчуулах)
- Бусад сонголт
- 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 Translate төслөө тодорхойлохын тулд GOOGLE_TRANSLATE_PROJECT_ID
орчны хувьсагчийг тохируулна уу
GOOGLE_APPLICATION_CREDENTIALS
орчны хувьсагчийг татаж авсан JSON итгэмжлэлдээ тохируулна уу
Google үүлэн дээр баталгаажуулалт хэрхэн ажилладагийг олж мэдсэний дараа (энэ нь хөгжилтэй байж болно)
Хэрэв та эх кодоос ажиллаж байгаа бол тэдгээрийг эх сурвалж дахь .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
сонголтыг ашиглана уу
Та мөн файлын санг орчуулж болно. hokeylization бүр давтагдах болно директорт файлыг оруулаад Google Translate-ээр дамжуулан агуулгыг нь ажиллуулж, гаралтыг хадгална тусдаа директорийн мод дахь ижил нэртэй файл руу
Таны орчуулгын зорилго нь лавлах байх үед энэ горим идэвхжсэн байна
-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
г ашиглахаас нааш одоо байгаа гаралтын файлуудыг дахин үүсгэхгүй. - Та
en
-д байгаа шигen
es
болонde
доторх ижил лавлах бүтэц, файлуудтай байх болно.
Юу хийхийг харуулахын тулд -n
/ --dry-run
г дамжуулаарай, гэхдээ үнэндээ ямар ч API дуудлага хийх эсвэл ямар ч файл бичихгүй
-f
/ --force
дарж орчуулгууд аль хэдийн байгаа байсан ч үргэлж дахин үүсгэх боломжтой
Лавлах горимд ажиллаж байх үед боловсруулсан файлуудыг хязгаарлахын тулд -m
/ --match
-ыг дамжуулна уу.
Та эх сан дахь бүр файлыг зорилтот директор руугаа орчуулахыг үргэлж хүсэхгүй байж магадгүй
-m
/ --match
сонголтын утга нь regex (бүрхүүлээс иш татах дүрмээс болгоомжил!) юм.
ямар файлуудыг орчуулах ёстой
Хэрэв та эргэлзэж байвал энэ сонголтыг -n
/ --dry-run
аль файлыг орчуулахыг харах боломжтой.
Заримдаа таны -m
хэт олон файлтай таардаг. -e
/ --excludes
сонголтыг ашиглан тодорхой хасна
таарахгүй байсан файлууд
Та олон тооны регексийг зайгаар тусгаарлаж жагсааж болно
Нийтлэг хэрэглээ нь: --excludes node_modules dist \.git build tmp
байх болно.
Орчуулах мөрүүд нь хоёр эсвэл гурван буржгар хаалт бүхий {{ handlebars }}
загваруудыг агуулж болно.
Та эдгээр загваруудын доторх зүйлсийг орчуулахыг БҮҮ хүсэж байгаа байх
-H
/ --handlebars
тугийг дамжуулж, {{ ... }}
доторх бүх зүйлийг орчуулахгүй.
Markdown нь текст ч биш, html ч биш тул Google Translate-д зарим хүндрэл гардаг
-M
/ --markdown
туг нь markdown файлуудыг тусгайлан зохицуулах боломжийг олгодог
Тэмдэглэгээний файлуудын хувьд, хэрэв та -M
тугийг ашиглахгүй бол дараах асуудлуудтай тулгарах болно:
- Эвдэрсэн холбоосууд. Орчуулгад тэмдэглэх холбоосын тайлбар дууссаны дараа зай тэмдэг гарч ирнэ (
]
) гэхдээ зорилтот холбоос эхлэхээс өмнө ((
). Энэ нь тэмдэглэгээг буруу буулгахад хүргэдэг ба холбоос баримтыг үзэх үед эвдэрсэн. - Кодын блокуудыг орчуулна. Google Translate нь тэмдэглэгээ нь кодыг юу гэж үздэг, юуг нь тооцохгүй гэдгийг мэдэхгүй
- Доголтой кодын блокуудын хоорондын зай буруу байна. Орчуулгад хоорондын зайг хадгалахад хэцүү байдаг
backticks
доторх зүйлсийг бараг үргэлж шууд утгаар нь байлгахыг хүсэх үед орчуулагдах болно.
-M
/ --markdown
тугийг идэвхжүүлсэн үед:
- Загвар
](
нь](
](` болж хураангуйлагдах бөгөөд ингэснээр эвдэрсэн тэмдэглэгээний холбоосыг засах болно. - Доголтой кодын блокуудын эргэн тойронд "орчуулахгүй" боодол байрлуулж, зөв догол мөрийг хадгалж, орчуулагдахгүй байх болно.
- "Орчуулахгүй" гэсэн
backticks
доторх текстийн эргэн тойронд байрлуулж, тэдгээр нь орчуулагдахгүй байх болно.
Ер нь бүх зүйлийг энгийн текст хэлбэрээр боловсруулдаг
Хэрэв таны контент HTML бол -p html
/ --process-as html
сонголтыг нэвтрүүлэхгүй л бол энэ нь эвдрэх болно.
Адал явдалд дуртай хүмүүсийн хувьд: директор доторх файлуудыг боловсруулахдаа -F
/ --filter
сонголтыг дамжуулж болно.
гаралтыг файлын системд бичихээс өмнө шүүнэ
Энэ сонголтын утга нь filter
нэртэй функцийг экспортолдог JS файлын зам байх ёстой
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.json
нь уг лавлахаас hokey
-г хайх болно.
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'-г зааж өгч болно,
'markdown', 'текст' эсвэл өөрийн HandlebarsJS загварт хүргэх файлын замыг
Хэрэв та өөрийн загвараа зааж -I
/ --index
файлыг (санал биш) мөн зааж өгөх ёстой.
сонголт