Skip to content

Latest commit

 

History

History
380 lines (276 loc) · 22.6 KB

README.md

File metadata and controls

380 lines (276 loc) · 22.6 KB

Хокейлжилт

Би яагаад Google Translate-ээр дамжуулан өөрийн програм эсвэл сайтаа бүхэлд нь ажиллуулж, өөр хэл дээрх үндсэн орчуулгыг авч чадахгүй байна вэ?

Одоо та чадна!

hokeylization " нэр нь "hokey localization" гэсэн утгатай portmanteau юм.

Энэ нь маш энгийн, учир нь энэ нь зарим талаараа хокей юм: энэ нь Google Translate руу мөр илгээдэг

Мөн энэ нь энгийн, гэхдээ бас маш хүчирхэг юм. Энэ нь HTML баримт бичгийн тусгай дэмжлэгтэй, HandlebarsJS загварууд, болон Markdown файлууд.

Та орчуулж болно:

  • мессеж агуулсан JavaScript объект
  • дурын тооны файл эсвэл лавлах, үргэлж рекурсив байдлаар лавлах

Үүнийг өөр хэлээр уншина уу

Энэхүү README.md баримтыг hokeylization хэрэгслийг ашиглан орчуулсан Google Translate дэмждэг бүх хэл!

Энэ нь төгс биш гэдэгт би итгэлтэй байна, гэхдээ энэ нь юу ч биш байснаас дээр гэж найдаж байна!

🇸🇦 Араб 🇧🇩 Бенгали 🇩🇪 Герман 🇺🇸 Англи хэл 🇪🇸 Испани 🇫🇷 Франц 🇹🇩 Hausa 🇮🇳 Хинди 🇮🇩 Индонези 🇮🇹 Итали 🇯🇵 Япон 🇰🇷 Солонгос хэл 🇮🇳 Маранти 🇵🇱 Польш 🇧🇷 Португали 🇷🇺 Орос хэл 🇰🇪 Суахили 🇵🇭 Тагалог 🇹🇷 Турк 🇵🇰 Урду 🇻🇳 Вьетнам 🇨🇳 Хятад

Энэ README орчуулгад асуудал гарсан уу?

Энэхүү анхны орчуулга нь README алдаатай байж магадгүй -- засвар хийхэд таатай байна! GitHub дээр татах хүсэлт илгээнэ үү. эсвэл та үүнийг хийхэд эвгүй байгаа бол асуудал нээнэ үү

Орчуулгын талаар шинэ GitHub асуудал үүсгэхдээ дараах зүйлийг хийнэ үү:

  • хуудасны URL-г оруулах (хөтчийн хаягийн мөрөнд хуулах/хуулах)
  • алдаатай текстийг оруулах (хөтөчөөс хуулах/хуулах)
  • юу буруу байгааг тайлбарлана уу -- орчуулга буруу байна уу? формат ямар нэг байдлаар эвдэрсэн үү?
  • Илүү сайн орчуулга эсвэл текстийг хэрхэн зөв форматлах талаар санал болго
  • Баярлалаа!

Агуулга

Эх сурвалж

Дэмжлэг ба санхүүжилт

Би мэргэжлийн нээлттэй эхийн програм хангамж хөгжүүлэгч болохыг хичээж байна. Би ажиллаж байсан Програм хангамжийн салбарт олон жилийн турш би амжилттай компаниудыг байгуулж, олон нийтийн компаниудад зарсан. Саяхан би ажлаасаа халагдсан, надад өөр ажил алга

Тиймээс би хэрэгтэй программ бичихийг оролдоод, энэ нь ажиллах эсэхийг шалгах болно

Хэрэв та энэ програм хангамжийг ашиглах дуртай бол би ч гэсэн хүлээн авахдаа баяртай байх болно хамгийн бага 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 стрингийн нөөц файлыг орчуулж байна

Таны мөрийн хүснэгт заавал дараах хоёр хэлбэрийн аль нэгэнд 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 -г ашиглана уу

JSON багц командууд

-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 файлыг (санал биш) мөн зааж өгөх ёстой. сонголт

Хэл орчуулж цагийг хөгжилтэй өнгөрүүлээрэй!