Неліктен мен бүкіл қолданбамды немесе сайтымды Google Translate арқылы іске қосып, басқа тілдегі негізгі аударманы ала алмаймын?
Енді, мүмкін!
hokeylization
» атауы портманто болып табылады, ол «хокей локализациясы» дегенді білдіреді
Бұл өте қарапайым, себебі ол Google Translate қызметіне жолдарды жібереді
Және бұл қарапайым, бірақ сонымен бірге өте күшті. Ол HTML құжаттарына арнайы қолдау көрсетеді, HandlebarsJS үлгілері, және Markdown файлдары.
Сіз аудара аласыз:
- хабарларды қамтитын JavaScript нысаны
- файлдардың немесе каталогтардың кез келген саны, әрқашан каталогтарды рекурсивті түрде аралайды
Бұл README.md құжаты хокейлизация құралының көмегімен аударылды Google Translate қолдайтын барлық тіл!
Мен бұл мінсіз емес екеніне сенімдімін, бірақ бұл жоқтан жақсы деп үміттенемін!
🇸🇦 араб 🇧🇩 Бенгал 🇩🇪 неміс тілі 🇺🇸 Ағылшын тілі 🇪🇸 испан 🇫🇷 Француз 🇹🇩 Hausa 🇮🇳 хинди 🇮🇩 Индонезия 🇮🇹 Итальяндық 🇯🇵 Жапон 🇰🇷 Корей тілі 🇮🇳 Marathi 🇵🇱 Поляк 🇧🇷 Португалша 🇷🇺 Орысша 🇰🇪 суахили 🇵🇭 Тагалог 🇹🇷 Түрікше 🇵🇰 урду 🇻🇳 вьетнамдық 🇨🇳 Қытай
Түпнұсқаның бұл нақты аудармасы 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
қолданбайынша, бар шығыс файлдары қалпына келтірілмейді.- Соңында
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
пайдаланыңыз
-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
үшін файлды (каталог емес) де көрсетуіңіз керек.
опция