Skip to content

Latest commit

 

History

History
380 lines (276 loc) · 24.4 KB

README.md

File metadata and controls

380 lines (276 loc) · 24.4 KB

האָקייליזאַטיאָן

פארוואס קען איך נישט לויפן מיין גאנצע אַפּ אָדער פּלאַץ דורך Google Translate און באַקומען אַ יקערדיק איבערזעצונג אין אן אנדער שפּראַך?

איצט, איר קענען!

דער נאָמען hokeylization איז אַ פּאָרטמאַנטעאַו, טייַטש 'האָקיי לאָוקאַלאַזיישאַן'

עס איז אַ ביסל האָקי ווייַל עס איז זייער פּשוט: עס סענדז סטרינגס צו Google Translate

און עס איז פּשוט, אָבער אויך זייער שטאַרק. עס האט ספּעציעל שטיצן פֿאַר HTML דאָקומענטן, HandlebarsJS טעמפּלאַטעס, און מאַרקדאָוון טעקעס.

איר קענט איבערזעצן:

  • אַ דזשאַוואַסקריפּט כייפעץ מיט אַרטיקלען
  • קיין נומער פון טעקעס אָדער דיירעקטעריז, שטענדיק דורכגיין דירעקטעריז רעקורסיוולי

לייענען דעם אין אן אנדער שפּראַך

דעם README.md דאָקומענט איז איבערגעזעצט, ניצן די האָקייליזאַטיאָן געצייַג זיך, אין יעדער שפּראַך געשטיצט דורך Google Translate!

איך בין זיכער אַז עס איז נישט גאנץ, אָבער איך האָפֿן עס איז בעסער ווי גאָרנישט!

🇸🇦 אַראַביש 🇧🇩 בענגאַליש 🇩🇪 דייַטש 🇺🇸 ענגליש 🇪🇸 שפּאַניש 🇫🇷 פראנצויזיש 🇹🇩 Hausa 🇮🇳 הינדיש 🇮🇩 אינדאָנעזיש 🇮🇹 איטאַליעניש 🇯🇵 יאַפּאַניש 🇰🇷 קאָרעיִש 🇮🇳 Marathi 🇵🇱 פויליש 🇧🇷 פּאָרטוגעזיש 🇷🇺 רוסיש 🇰🇪 סוואַהילי 🇵🇭 Tagalog 🇹🇷 טערקיש 🇵🇰 אורדו 🇻🇳 וויעטנאַמעזיש 🇨🇳 כינעזיש

איז עס אַ פּראָבלעם מיט דעם איבערזעצונג פון די README?

די באַזונדער איבערזעצונג פון דער אָריגינעל README קען זיין פלאָז - * קערעקשאַנז זענען זייער באַגריסן!* ביטע שיקן אַ ציען בעטן אויף גיטהוב, אָדער אויב איר זענט נישט באַקוועם צו טאָן דאָס, עפענען אַן אַרויסגעבן

ווען איר שאַפֿן אַ נייַע 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_PROJECT_ID צו ידענטיפיצירן דיין Google זעץ פּרויעקט

שטעלן די סוויווע בייַטעוודיק GOOGLE_APPLICATION_CREDENTIALS צו די JSON קראַדענטשאַלז איר דאַונלאָודיד נאָך פיגורינג אויס ווי אָטענטאַקיישאַן אַרבעט אויף Google וואָלקן (עס קען זיין שפּאַס)

אויב איר לויפן פֿון די מקור קאָד, איר קענען אויך שטעלן די אין אַ .env טעקע אין די מקור וועגווייַזער זיי וועט זיין לאָודיד ביי רונטימע דורך dotenv

איבערזעצן אַ דזשאַוואַסקריפּט שטריקל מיטל טעקע

דיין שטריקל טיש מוז זיין אין אַ דזשאַוואַסקריפּט טעקע אין איינער פון די צוויי פארמען:

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 אָפּציע

איבערזעצן אַ וועגווייַזער פון טעקסט טעקעס

איר קענען אויך איבערזעצן אַ וועגווייַזער פון טעקעס. האָקייליזאַטיאָן וועט רעקורסיוולי באַזוכן יעדער טעקע אין די וועגווייַזער און לויפן זייַן אינהאַלט דורך Google זעץ, און ראַטעווען די רעזולטאַט צו אַ יידעניקאַל נאָמען טעקע אין אַ באַזונדער וועגווייַזער בוים

ווען דער ציל פון דיין איבערזעצונג איז אַ וועגווייַזער, דעם מאָדע איז ענייבאַלד

די -o / --outfile אָפּציע ספּעציפיצירט די רעזולטאַט וועגווייַזער

** גרויס ווארענונג **: ווען איבערזעצן דירעקטעריז, ** טאָן ניט ** ספּעציפיצירן אַ רעזולטאַט וועגווייַזער וואָס איז אין דיין אַרייַנשרייַב וועגווייַזער! אויב איר טאָן דאָס, איר וועט:

  • ינדוסירן ינפאַנאַט רעקורסיאָן
  • פאַרגרעסערן דיין Google רעכענונג
  • פּלאָמבירן דיין דיסק
  • האָבן ווייניקער שפּאַס

דאָ איז אַ בייַשפּיל פון וואָס * ניט צו טאָן *:

hokey -l es -o templates/es templates # <--- DON'T DO THIS!

ווען דאָס לויפט, איבערגעזעצט טעקעס זענען געשריבן צו templates/es , און אַזוי ווערן נייַ מקור טעקעס צו איבערזעצן, זינט זיי זענען אונטער templates/ - דער פּראָצעס האלט אויף אייביק, טאָן ניט טאָן עס!

ריכטיק באַניץ

גוט, לאָזן ס זאָגן איר האָבן עטלעכע E- בריוו טעמפּלאַטעס אין אַ וועגווייַזער:

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

אנדערע אָפּציעס

# # טרוקענע לויפן

פאָרן -n / --dry-run צו ווייַזן וואָס וואָלט זיין געטאן, אָבער טאָן ניט טאַקע מאַכן קיין אַפּי קאַללס אָדער שרייַבן קיין טעקעס

# # קראפט

פאָרן -f / --force צו שטענדיק רידזשענערייט איבערזעצונגען, אפילו אויב זיי שוין עקסיסטירן

גלייַכן

פאָרן -m / --match צו באַגרענעצן די פּראַסעסט טעקעס ווען פליסנדיק אין וועגווייַזער מאָדע

איר קען נישט שטענדיק ווילן צו איבערזעצן יעדער טעקע אין דיין מקור וועגווייַזער צו דיין ציל וועגווייַזער

די ווערט פון די -m / --match אָפּציע איז אַ רעגעקס (היט אייך שאָל ציטירן כּללים!) וואָס ספּעציפיצירט וואָס טעקעס זאָל זיין איבערגעזעצט

ווען אין צווייפל, איר קענען פאַרבינדן דעם אָפּציע מיט -n / --dry-run צו זען וואָס טעקעס וואָלט זיין איבערגעזעצט

יקסקלודז

מאל דיין -m שוועבעלעך צו פילע טעקעס. ניצן די -e / --excludes אָפּציע צו בפירוש ויסשליסן טעקעס וואָס אַנדערש וואָלט האָבן מאַטשט

איר קענען רשימה קייפל רעגעקסעס, אפגעשיידט דורך ספּייסאַז

א פּראָסט נוצן וואָלט זיין: --excludes node_modules dist \.git build tmp

# # האנדעלבארס

די סטרינגס צו איבערזעצן קען אַנטהאַלטן {{ handlebars }} טעמפּלאַטעס, אָדער מיט צוויי אָדער דריי געגרייַזלט-ברייסאַז

איר מיסטאָמע * טאָן ניט * וועלן די שטאָפּן ין די טעמפּלאַטעס צו זיין איבערגעזעצט

פאָרן די -H / --handlebars פאָן, און אַלץ אין {{ ... }} וועט נישט זיין איבערגעזעצט

מאַרקדאַון

מאַרקדאַון איז ניט טעקסט אדער HTML, אַזוי Google זעץ האט עטלעכע שוועריקייטן מיט אים

די -M / --markdown פאָן ינייבאַלז ספּעציעל האַנדלינג פֿאַר מאַרקדאַון טעקעס

מיט מאַרקדאַון טעקעס, אויב איר טאָן ניט נוצן די -M פאָן, איר וועט מיסטאָמע געפֿינען די פּראָבלעמס:

  • צעבראכן לינקס. אין דער איבערזעצונג, אַ פּלאַץ כאַראַקטער אויס נאָך אַ מאַרקדאַון לינק באַשרייַבונג ענדס (מיט ] ) אָבער איידער זיין ציל לינק הייבט זיך אָן (מיט ( ). דאס גורם אז דער מאַרקדאַון איז נישט ריכטיק, און דער לינק איז צעבראכן ווען וויוינג דעם דאָקומענט.
  • קאָד בלאַקס ווערן איבערגעזעצט. Google זעץ קען נישט וויסן וואָס מאַרקדאַון באַטראַכט קאָד און וואָס עס טוט נישט
  • אומרעכט ספּייסינג פֿאַר ינדענטיד קאָד בלאַקס. ספּייסינג איז שווער צו ופהיטן אין איבערזעצונג
  • טינגז ין פון backticks וועט זיין איבערגעזעצט ווען איר כּמעט שטענדיק ווילן זיי צו זיין ליטעראַל וואַלועס

ווען די -M / --markdown פאָן איז ענייבאַלד:

  • דער מוסטער ]( וועט זיין קאַנדענסט צו ]( אַזוי פיקסיר די צעבראכן מאַרקדאַון פֿאַרבינדונגען
  • א "קיין איבערזעצן" ראַפּער וועט זיין געשטעלט אַרום ינדענטיד קאָד בלאַקס, פּראַזערווינג געהעריק ינדענטיישאַן און ינשורינג זיי זענען נישט איבערגעזעצט
  • א "קיין איבערזעצן" ראַפּער וועט זיין געשטעלט אַרום טעקסט אין backticks צו ענשור אַז זיי זענען נישט איבערגעזעצט

פּראָצעס-ווי

נאָרמאַללי אַלץ איז פּראַסעסט ווי קלאָר טעקסט

אויב דיין אינהאַלט איז HTML, עס וועט זיין מאַנגאַלד אויב איר פאָרן די אָפּציע -p html / --process-as html

פילטער

פֿאַר אַדווענטשעראַס: ווען פּראַסעסינג טעקעס אין אַ וועגווייַזער, איר קענען פאָרן די אָפּציע -F / --filter צו פילטער דער רעזולטאַט איידער עס איז געשריבן צו די פילעסיסטעם

די ווערט פון דעם אָפּציע מוזן זיין אַ דרך צו אַ JS טעקע וואָס עקספּאָרץ אַ פֿונקציע מיטן נאָמען filter

די 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 און די אַרייַנשרייַב און רעזולטאַט טעקעס

דאָ איז אַ ביישפּיל פון אַ 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', 'מאַרקדאָוון', 'טעקסט' אָדער דער טעקע דרך צו דיין אייגענע HandlebarsJS מוסטער

אויב איר ספּעציפיצירן דיין אייגענע מוסטער, איר מוזן אויך ספּעציפיצירן אַ טעקע (נישט אַ וועגווייַזער) פֿאַר די -I / --index אָפּציע

האָבן אַ שפּאַס צייט איבערזעצן שפּראַכן!