Нигә мин бөтен кушымтаны яки сайтымны Google Translate аша эшләтеп, башка телдә төп тәрҗемә ала алмыйм?
*** Хәзер, булдыра аласыз! ***
" hokeylization
" исеме портмантео, "хоккей локализациясе" дигәнне аңлата.
Бу бераз хоккей, чөнки бу бик гади: ул Google Тәрҗемәгә юллар җибәрә
Бу гади, ләкин шулай ук бик көчле. Аның HTML документлары өчен махсус ярдәме бар, HandlebarsJS шаблоннары, һәм Маркдаун файллары.
Сез тәрҗемә итә аласыз:
- хәбәрләр булган JavaScript объект
- теләсә нинди файл яки каталог, каталогны гел рекурсив рәвештә кичерәләр
Бу README.md документ, хоккейлаштыру коралын кулланып, тәрҗемә ителде ** Google Translate ярдәмендә һәр тел! **
Мин камил түгел дип ышанам, ләкин бернәрсәдән дә яхшырак түгел дип ышанам!
[🇸🇦 Гарәпчә](lang / ar / README.md) [🇧🇩 Бенгали](lang / bn / README.md) [🇩🇪 Алманча](lang / de / README.md) [🇺🇸 Инглизчә](lang / en / README.md) [🇪🇸 Испанча](lang / es / README.md) [🇫🇷 Французча](lang / fr / README.md) [🇹🇩 Хауса](lang / ha / README.md) [🇮🇳 Hindiинди](lang / hi / README.md) [🇮🇩 Индонезия](lang / id / README.md) [🇮🇹 Италия](lang / it / README.md) [🇯🇵 Япон](lang / ja / README.md) [🇰🇷 Корея](lang / ko / README.md) [🇮🇳 Маранти](lang / mr / README.md) [🇵🇱 Поляк](lang / pl / README.md) [🇧🇷 Португалча](lang / pt / README.md) [🇷🇺 русча](lang / ru / README.md) [🇰🇪 Суахили](lang / sw / README.md) [🇵🇭 Тагалог](lang / tl / README.md) [🇹🇷 Төрекчә](lang / tr / README.md) [🇵🇰 Урду](lang / ur / README.md) [🇻🇳 Вьетнам](lang / vi / README.md) [🇨🇳 Кытай](lang / zh / README.md)
Бу оригиналь тәрҗемә README кимчелекле булырга мөмкин - * төзәтмәләр бик рәхимле! * Зинһар өчен, GitHub'ка тарту соравын җибәрегез (https://github.com/cobbzilla/hokeylization/pulls), яисә моны эшләү уңайлы булмаса, проблеманы ачыгыз
Тәрҗемә турында яңа GitHub чыгарганда, зинһар өчен:
- битнең URL-ны кертегез (браузер адрес тактасыннан күчереп языгыз)
- дөрес булмаган текстны кертегез (браузердан күчереп языгыз)
- зинһар, нәрсә начар икәнен сурәтләгез - тәрҗемә дөрес түгелме? форматлау ничектер бозылганмы?
- яхшырак тәрҗемә итү тәкъдимен тәкъдим итегез, яки текстны ничек форматларга кирәк
- Рәхмәт!
- [Чыганак](# Чыганак)
- [Ярдәм һәм финанслау](# Ярдәм-финанслау)
- [Урнаштыру](# урнаштыру)
- [Урнаштыру](# Урнаштыру)
- [JavaScript чыганак ресурс файлын тәрҗемә итү](# Тәрҗемә итү-a-JavaScript-string-ресурс-файл)
- [Текст файллары каталогын тәрҗемә итү](# Тәрҗемә итү-a-каталог-текст-файллар)
- [Башка вариантлар](# Башка вариантлар)
- [JSON партия командалары](# JSON-партия-командалар)
Мин профессиональ ачык чыганак программа тәэминаты булырга тырышам. Мин эшлим озак еллар программа тәэминаты индустриясе, мин уңышлы компанияләр башладым һәм аларны җәмәгать компанияләренә саттым. Күптән түгел мин эшемне югалттым, һәм минем бүтән тезелешем юк
Шуңа күрә мин файдалы программа язарга тырышам һәм моның эшләвен тикшерәм
Әгәр дә сез бу программаны кулланырга яратсагыз, мин хәтта бик шат булыр идем иң кечкенә Патрон аша айлык өлеш
Рәхмәт!
Команда сызыгы коралын куллану өчен, " 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 тәрҗемә проектын ачыклау өчен " GOOGLE_TRANSLATE_PROJECT_ID
" әйләнә-тирә үзгәрүчене куегыз.
Сез йөкләгән JSON таныклыкларына " GOOGLE_APPLICATION_CREDENTIALS
" мохит үзгәрүен куегыз.
Google болытында аутентификациянең ничек эшләвен ачыклагач (бу кызык булырга мөмкин)
Әгәр дә сез чыганак кодыннан эшлисез икән, сез аларны чыганакка " .env
" файлына куя аласыз
каталог алар эш вакытында [dotenv] аша йөкләнәчәкләр (https://www.npmjs.com/package/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
Aboveгарыдагы " LANG
" үзенчәлекле - бу коралда сакланган сүз!
" LANG
" чыгару файллары өчен тел коды белән алыштырыла
Шулай итеп, югарыдагы боерык файлларны ясый:
myfile.es.js
myfile.de.js
-l
/ --languages
параметры - ISO тел кодларының үтемле аерылган исемлеге
Google Translate ярдәмендә
Әгәр чыгару файллары бар икән, нинди ачкычларның барлыгын ачыклау тикшереләчәк. Хәзерге ачкычлар тәрҗемә ителмәячәк. Missingгалган ачкычлар өчен тәрҗемәләр ясалачак һәм өстәләчәк JS объектының ахырына. Бөтен файл һәрвакыт яңадан языла.
Барлык ачкычларны ретрансляцияләү өчен, " -f
/ " --force
опциясен кулланыгыз
Сез шулай ук файллар каталогын тәрҗемә итә аласыз. хоккейлизация һәрберсенә рекурсив рәвештә барачак каталогка файл бирегез һәм аның эчтәлеген 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
Aboveгарыда әйтелгәнчә, " LANG
" - сакланган сүз һәм ISO тел коды белән алыштырылачак
Aboveгарыда әйтелгәндә нәрсә була:
- "
templates/email/es
һәм "templates/email/de
каталоглары булдырылачак (алар булмаса) templates/email/en
һәр файл испан һәм немец телләренә тәрҗемә ителәчәк- "
-f
/--force
" кулланмасагыз, булган файллар яңартылмас - Сез бер үк каталог структурасы һәм
es
һәмde
" эчендәге файллар беләнen
Эшләнгәнне күрсәтү өчен " -n
/ --dry-run
, ләкин бернинди API шалтыратмагыз яки файл язмагыз.
Тәрҗемәләрне яңадан торгызу өчен " -f
/ --force
" тапшырыгыз, алар булса да
Каталог режимында эшләгәндә эшкәртелгән файлларны чикләү өчен "-m" / " -m
" --match
Сез һәрвакыт чыганак каталогындагы * һәр * файлны максатлы каталогка тәрҗемә итәсе килмидер
" -m
/ " --match
" опциясенең кыйммәте - рекекс (кабыкны китерү кагыйдәләреннән сакланыгыз!)
нинди файллар тәрҗемә ителергә тиеш
Шик туганда, сез бу параметрны -n
/ --dry-run
белән берләштерә аласыз, нинди файлларның тәрҗемә ителүен.
Кайвакыт сезнең -m
бик күп файлларга туры килә. Ачыктан-ачык чыгару өчен "-e" / --excludes
-e
" опциясен кулланыгыз
бүтән туры килгән файллар
Сез бушлыклар белән аерылган берничә рекексны күрсәтә аласыз
Гомуми куллану: " --excludes node_modules dist \.git build tmp
Тәрҗемә итү юлларында ике яки өч бөдрә кашык белән " {{ handlebars }}
" шаблоннары булырга мөмкин.
Сез, мөгаен, шул шаблоннардагы әйберләрнең тәрҗемә ителүен теләмисез
" -H
/ " --handlebars
флагын узыгыз, һәм " {{ ... }}
" эчендәге нәрсә тәрҗемә ителмәячәк.
Markdown текст та, html да түгел, шуңа күрә Google Translate аның белән кайбер кыенлыклар кичерә
" -M
" / " --markdown
" флагы билгеле файллар өчен махсус эшкәртү мөмкинлеген бирә
Билгеләү файллары белән, " -M
флагын кулланмасагыз, сез бу проблемаларны табарсыз:
- Бозылган сылтамалар. Тәрҗемәдә, космик символ, билгеле сылтама тасвирламасы беткәч барлыкка килә ("белән
]
), ләкин максатчан сылтама башланганчы ("(
" белән). Бу маркировкаларның дөрес булмавына китерә, һәм сылтама документны караганда бозыла. - Код блоклары тәрҗемә ителә. Google тәрҗемәсе билгеләрнең кодны нәрсә саный һәм нәрсә булмаганын белми
- Индексланган код блоклары өчен дөрес булмаган аралар. Тәрҗемәдә араны саклау авыр
- "
backticks
" эчендәге әйберләр тәрҗемә ителәчәк, сез аларның һәрвакыт диярлек туры мәгънәдә булуын теләгәндә
" -M
/ " --markdown
флагы кушылганда:
](
" конденсацияләнәчәк "](
шулай итеп өзелгән сылтамаларны төзәтә- "Тәрҗемә ителмәгән" төргәк индексацияләнгән код блоклары тирәсендә урнаштырылачак, тиешле индуктивлыкны саклый һәм аларның тәрҗемә ителмәвен тәэмин итә.
- "Тәрҗемә ителмәгән"
backticks
текстның тирәсенә урнаштырылачак, алар тәрҗемә ителмәсен өчен
Гадәттә барысы да гади текст кебек эшкәртелә
Әгәр сезнең эчтәлек HTML булса, " -p html
/ " --process-as html
параметрын үтәмәсәгез, ул бозылачак.
Авантюристлар өчен: каталогтагы файлларны эшкәрткәндә, сез " -F
/ "- фильтр" --filter
уза аласыз
файл системасына язылганчы чыгаруны фильтрлау
Бу вариантның кыйммәте " filter
" дигән функцияне экспортлаучы JS файлына юл булырга тиеш
"Фильтр" функциясе async
filter
" булырга тиеш, чөнки аңа " await
" чакырылачак
Файллар дискка язылганчы, бөтен файл эчтәлеге " filter
функциясенә тезмә итеп биреләчәк
" filter
функциясеннән кире кайтару бәясе - саклауга язылачак
Шулай итеп, сез ниһаять язылачакны тулысынча контрольдә тотасыз
" filter
" скрипты түбәндәге урыннарда эзләнәчәк (" .js
" белән фильтрга кушылачак
исем, ул .js
белән тәмамланмаса)
- Хәзерге каталог
- Хәзерге каталог эчендә "
.hokey-filters
" исемле каталог - "
${HOME}/.hokey-filters
" исемле каталог, монда "${HOME}
" - хәзерге кулланучының өй каталогы. - Эчке фильтрлар каталогы
"Фильтр" filter
берничә сүз булырга мөмкин. Бу очракта беренче сүз - фильтр исеме, һәм
калган сүзләр " filter
функциясенә аргумент буларак биреләчәк
Ярдәм күрсәтү өчен "-h" / --help
-h
кулланыгыз
" -j
/ " --json
параметры белән сез берничә координацияләнгән hokey
боерыгын эшли аласыз
Конвенция буенча бу файл " hokey.json
" дип атала, ләкин сез теләгәнчә исем куша аласыз
Әгәр сез каталогны " -j
параметры итеп бирсәгез, " hokey.json
hokey
эзләячәк.
JSON файлында бер объект булырга тиеш. Бу объект эчендә аның милек исемнәре бер үк
командование вариантлары, өстәвенә " hokey
" дигән өстәмә милек
" hokey
" милеге - эшләргә командалар. Бу боерыклар эчендә игълан ителгән үзлекләр
тышкы объекттагы икеләтә декларацияләрне кире кагарга.
name
hokey
массивындагы һәрбер объект эчендә сез "исем", кертү һәм чыгу файлларын күрсәтергә тиеш
Менә " 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
:
{
... [
{
"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
-I
" өчен файлны (каталог түгел) күрсәтергә тиеш.
вариант