Skip to content

Latest commit

 

History

History
380 lines (276 loc) · 22.2 KB

README.md

File metadata and controls

380 lines (276 loc) · 22.2 KB

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

Нигә мин бөтен кушымтаны яки сайтымны 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)

** [📚 ... Барлык телләр ...](lang / README.md) **

README тәрҗемәсендә проблема бармы?

Бу оригиналь тәрҗемә 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 чыганак ресурс файлын тәрҗемә итү

Сезнең сызык таблицасы ** бу ике форманың берсендә 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 кулланыгыз

JSON партия командалары

" -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 " өчен файлны (каталог түгел) күрсәтергә тиеш. вариант

Телләрне тәрҗемә итүдә күңелле булыгыз!