Skip to content

Latest commit

 

History

History
380 lines (276 loc) · 22.9 KB

README.md

File metadata and controls

380 lines (276 loc) · 22.9 KB

Хокейлизация

Неліктен мен бүкіл қолданбамды немесе сайтымды Google Translate арқылы іске қосып, басқа тілдегі негізгі аударманы ала алмаймын?

Енді, мүмкін!

hokeylization » атауы портманто болып табылады, ол «хокей локализациясы» дегенді білдіреді

Бұл өте қарапайым, себебі ол Google Translate қызметіне жолдарды жібереді

Және бұл қарапайым, бірақ сонымен бірге өте күшті. Ол HTML құжаттарына арнайы қолдау көрсетеді, HandlebarsJS үлгілері, және Markdown файлдары.

Сіз аудара аласыз:

  • хабарларды қамтитын JavaScript нысаны
  • файлдардың немесе каталогтардың кез келген саны, әрқашан каталогтарды рекурсивті түрде аралайды

Мұны басқа тілде оқыңыз

Бұл README.md құжаты хокейлизация құралының көмегімен аударылды Google Translate қолдайтын барлық тіл!

Мен бұл мінсіз емес екеніне сенімдімін, бірақ бұл жоқтан жақсы деп үміттенемін!

🇸🇦 араб 🇧🇩 Бенгал 🇩🇪 неміс тілі 🇺🇸 Ағылшын тілі 🇪🇸 испан 🇫🇷 Француз 🇹🇩 Hausa 🇮🇳 хинди 🇮🇩 Индонезия 🇮🇹 Итальяндық 🇯🇵 Жапон 🇰🇷 Корей тілі 🇮🇳 Marathi 🇵🇱 Поляк 🇧🇷 Португалша 🇷🇺 Орысша 🇰🇪 суахили 🇵🇭 Тагалог 🇹🇷 Түрікше 🇵🇰 урду 🇻🇳 вьетнамдық 🇨🇳 Қытай

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 қолданбайынша, бар шығыс файлдары қалпына келтірілмейді.
  • Соңында es және de ішіндегі бірдей каталог құрылымы мен файлдары 'en' астында en

Басқа опциялар

Құрғақ жүгіру

Не істеу керектігін көрсету үшін -n / --dry-run run` өтіңіз, бірақ іс жүзінде API қоңырауларын жасамаңыз немесе файлдарды жазбаңыз.

Күш

Аудармаларды, тіпті олар бұрыннан бар болса да, әрқашан қалпына келтіру үшін -f / --force

Сәйкестік

Каталог режимінде іске қосылған кезде өңделетін файлдарды шектеу үшін -m / --match өтіңіз

Бастапқы каталогтағы әрбір файлды мақсатты каталогқа әрқашан аударғыңыз келмеуі мүмкін

-m / --match опциясының мәні регекс болып табылады (қабат тырнақшасының ережелерін сақтаңыз!). қандай файлдарды аудару керек

Күмәндансаңыз, қай файлдардың аударылатынын көру үшін осы опцияны -n / --dry-run run` арқылы біріктіруге болады.

Алып тастайды

Кейде -m тым көп файлдарға сәйкес келеді. Анық алып тастау үшін -e / --excludes опциясын пайдаланыңыз әйтпесе сәйкес келетін файлдар

Сіз бос орындармен бөлінген бірнеше регекстерді тізімдей аласыз

Жалпы пайдалану: --excludes node_modules dist \.git build tmp

Тұтқалар

Аударылатын жолдар екі немесе үш бұйра жақшалары бар " {{ handlebars }} " үлгілерін қамтуы мүмкін

Сіз сол үлгілердің ішіндегі заттардың аударылғанын ҚАЛМАЙСЫЗ

-H / --handlebars жалаушасын өткізіңіз және {{ ... }} ішіндегі кез келген нәрсе аударылмайды

Белгілеу

Markdown мәтіні де, html де емес, сондықтан Google Translate-де онымен кейбір қиындықтар бар

-M / --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 ' сол каталогтан hokey.json .

JSON файлында бір нысан болуы керек. Бұл нысанның ішінде оның сипат атаулары бірдей пәрмен жолы опциялары және hokey деп аталатын бір қосымша сипат

hokey қасиеті - орындалатын пәрмендердің жиыны. Осы пәрмендерде жарияланған сипаттар болады сыртқы нысандағы кез келген қайталанатын мәлімдемелерді қайта анықтау.

hokey массивіндегі әрбір нысанның ішінде 'name 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"
      }
    ]
}

Бірнеше енгізу файлдары

Осы мысалдағыдай бір жолдың орнына " infiles " файл жолдарының жиымын "infile" ретінде infile :

{
  ... [
    {
      "name": "my docs",
      "infiles": ["README.md", "INSTALL.md", "TUTORIAL.md"],
      "outfile": "docs/LANG/",
      "markdown": true
  ]
}

индекстер

Көптеген тілдерге аударғанда, hokey » жасалған барлық аудармаларды тізімдейтін индекс файлын жасай алады. және оларға сілтемелер береді

Индекстерді жасау кезінде сізде тек бір кіріс көзі болуы мүмкін

-I / --index опциясын өткізіңіз, мән индекс файлы жасалатын жер болып табылады, ол файл болуы мүмкін немесе каталог. Егер бұл каталог болса, үлгіге негізделген әдепкі файл атауы пайдаланылады (төменде қараңыз)

Индекс шығысының пішімделгенін анықтау үшін -A / --index-template пайдаланыңыз. Сіз 'html' көрсете аласыз, 'markdown', 'text' немесе өзіңіздің HandlebarsJS үлгісіне файл жолын

Егер сіз өзіңіздің үлгіңізді көрсетсеңіз, -I / --index үшін файлды (каталог емес) де көрсетуіңіз керек. опция

Тілдерді аударуды қызықты өткізіңіз!