Skip to content

Latest commit

 

History

History
380 lines (276 loc) · 28.2 KB

README.md

File metadata and controls

380 lines (276 loc) · 28.2 KB

Hokeylization

මට මගේ සම්පූර්ණ යෙදුම හෝ වෙබ් අඩවිය Google පරිවර්තනය හරහා ධාවනය කර වෙනත් භාෂාවකින් මූලික පරිවර්තනයක් ලබා ගත නොහැක්කේ ඇයි?

දැන්, ඔබට පුළුවන්!

hokeylization යන නම portmanteau, එහි තේරුම 'hokey localization'

එය ඉතා සරල බැවින් එය තරමක් හොකී ය: එය Google පරිවර්තනය වෙත නූල් යවයි

එය සරල නමුත් ඉතා බලවත් ය. එය HTML ලේඛන සඳහා විශේෂ සහාය ඇත, HandlebarsJS සැකිලි, සහ Markdown ගොනු.

ඔබට පරිවර්තනය කළ හැකිය:

  • පණිවිඩ අඩංගු JavaScript වස්තුවක්
  • ඕනෑම ගොනු හෝ නාමාවලි සංඛ්‍යාවක්, සෑම විටම ප්‍රත්‍යාවර්තීව නාමාවලි හරහා ගමන් කරයි

මෙය වෙනත් භාෂාවකින් කියවන්න

මෙම README.md ලේඛනය hokeylization මෙවලම භාවිතයෙන් පරිවර්තනය කර ඇත Google Translate මඟින් සහාය දක්වන සෑම භාෂාවක්ම!

එය පරිපූර්ණ නොවන බව මට විශ්වාසයි, නමුත් එය කිසිවකට වඩා හොඳ යැයි මම බලාපොරොත්තු වෙමි!

🇸🇦 අරාබි 🇧🇩 බෙංගාලි 🇩🇪 ජර්මානු 🇺🇸 ඉංග්‍රීසි 🇪🇸 ස්පාඤ්ඤ 🇫🇷 ප්‍රංශ 🇹🇩 Hausa 🇮🇳 හින්දි 🇮🇩 ඉන්දුනීසියානු 🇮🇹 ඉතාලි 🇯🇵 ජපන් 🇰🇷 කොරියානු 🇮🇳 මරන්ති 🇵🇱 පෝලන්ත 🇧🇷 පෘතුගීසි 🇷🇺 රුසියානු 🇰🇪 Swahili 🇵🇭 Tagalog 🇹🇷 තුර්කි 🇵🇰 උර්දු 🇻🇳 වියට්නාම 🇨🇳 චීන

README හි මෙම පරිවර්තනයේ ගැටලුවක් තිබේද?

මුල් [README] හි මෙම විශේෂිත පරිවර්තනය (https://github.com/cobbzilla/hokeylization/blob/master/README.md) දෝෂ සහිත විය හැක -- නිවැරදි කිරීම් ඉතා සාදරයෙන් පිළිගනිමු! කරුණාකර 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 පරිවර්තන ව්‍යාපෘතිය හඳුනා ගැනීමට GOOGLE_TRANSLATE_PROJECT_ID පරිසර විචල්‍යය සකසන්න

ඔබ බාගත කළ JSON අක්තපත්‍රවලට GOOGLE_APPLICATION_CREDENTIALS පරිසර විචල්‍යය සකසන්න ගූගල් ක්ලවුඩ් මත සත්‍යාපනය ක්‍රියා කරන ආකාරය සොයා ගැනීමෙන් පසුව (එය විනෝදජනක විය හැක)

ඔබ ප්‍රභව කේතයෙන් ධාවනය කරන්නේ නම්, ඔබට මේවා මූලාශ්‍රයේ .env ගොනුවකට ද තැබිය හැකිය නාමාවලිය dotenv හරහා ධාවන වේලාවේදී ඒවා පටවනු ලැබේ.

JavaScript string සම්පත් ගොනුවක් පරිවර්තනය කිරීම

ඔබගේ තන්තු වගුව මෙම ආකාර දෙකෙන් එකක 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 පරිවර්තනය හරහා ධාවනය කර ප්‍රතිදානය සුරකින්න වෙනම නාමාවලි ගසක එක සමාන ලෙස නම් කරන ලද ගොනුවකට

ඔබගේ පරිවර්තනයේ ඉලක්කය නාමාවලියක් වන විට, මෙම මාදිලිය සක්‍රීය වේ

-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 භාවිතා කරන්නේ නම් මිස පවතින ප්‍රතිදාන ගොනු නැවත උත්පාදනය නොවේ
  • ඔබ අවසන් වන්නේ ඔබට 'en' යටතේ ඇති ආකාරයට සමාන නාමාවලි ව්‍යුහයක් සහ es සහ de තුළ ගොනු en

වෙනත් විකල්ප

වියළි ධාවනය

කළ යුතු දේ සංදර්ශන කිරීමට -n / --dry-run පසු කරන්න, නමුත් ඇත්ත වශයෙන්ම කිසිදු API ඇමතුමක් හෝ කිසිදු ගොනුවක් ලියන්න එපා

බල

පරිවර්තන දැනටමත් පැවතියද, සැමවිටම ප්‍රතිනිර්මාණය කිරීමට -f / --force යන්න

තරගය

ඩිරෙක්ටරි-ප්‍රකාරයේ ධාවනය වන විට සැකසූ ගොනු සීමා කිරීමට -m / --match යන්න

ඔබේ මූලාශ්‍ර නාමාවලියෙහි ඇති සෑම ගොනුවක්ම ඔබේ ඉලක්ක නාමාවලියට පරිවර්තනය කිරීමට ඔබට සැමවිටම අවශ්‍ය නොවනු ඇත

-m / --match විකල්පයේ අගය නියම කරන regex (පරෙස්සම් ෂෙල් උද්ධෘත නීති!) වේ. කුමන ගොනු පරිවර්තනය කළ යුතුද යන්න

සැක සහිත විට, පරිවර්තනය කරන්නේ කුමන ගොනුද යන්න බැලීමට ඔබට මෙම විකල්පය -n / --dry-run සමඟ ඒකාබද්ධ කළ හැකිය.

බැහැර කරයි

සමහර විට ඔබේ -m බොහෝ ගොනු වලට ගැලපේ. පැහැදිලිවම බැහැර කිරීමට -e / --excludes විකල්පය භාවිතා කරන්න වෙනත් ආකාරයකින් ගැලපෙන ගොනු

ඔබට හිස්තැන් වලින් වෙන් කරන ලද බහු regexs ලැයිස්තුගත කළ හැක

පොදු භාවිතයක් වනුයේ: --excludes node_modules dist \.git build tmp

හැන්ඩ්ල්බාර්

පරිවර්තනය කිරීමට ඇති තන්තු වල රැලි සහිත වරහන් දෙකක් හෝ තුනක් සහිත {{ handlebars }} සැකිලි අඩංගු විය හැක

ඔබට එම සැකිලි තුළ ඇති දේවල් පරිවර්තනය කිරීමට අවශ්‍ය නොවේ

-H / --handlebars ධජය පසු කරන්න, සහ {{ ... }} තුළ ඇති කිසිවක් පරිවර්තනය නොවේ

සලකුණු කිරීම

Markdown යනු පෙළ හෝ html නොවේ, එබැවින් Google පරිවර්තනයට එය සමඟ යම් දුෂ්කරතා ඇත

-M / --markdown ධජය සලකුණු ගොනු සඳහා විශේෂ හැසිරවීම සබල කරයි

සලකුණු ගොනු සමඟ, ඔබ -M ධජය භාවිතා නොකරන්නේ නම්, ඔබ බොහෝ විට මෙම ගැටළු සොයා ගනු ඇත:

  • බිඳුණු සබැඳි. පරිවර්තනයේදී, සලකුණු සබැඳි විස්තරයක් අවසන් වූ පසු ( ] සමඟ) අවකාශ අක්ෂරයක් දිස්වේ එහි ඉලක්ක සබැඳිය ආරම්භ වීමට පෙර ( ( සමඟ) මෙය සලකුණු කිරීම වැරදි ලෙස දැක්වීමට හේතු වේ, සහ සබැඳිය ලේඛනය බැලීමේදී කැඩී ඇත.
  • කේත බ්ලොක් පරිවර්තනය කරනු ලැබේ. මාර්ක්ඩවුන් කේතය සලකන්නේ කුමක්ද සහ එය නොකරන්නේ කුමක්දැයි Google පරිවර්තනය නොදනී
  • indented code blocks සඳහා වැරදි පරතරය. පරිවර්තනවලදී පරතරය සංරක්ෂණය කිරීම අපහසුය
  • ඔබට සෑම විටම වාගේ ඒවා වචනාර්ථ අගයන් වීමට අවශ්‍ය වූ විට, backticks තුළ ඇති දේවල් පරිවර්තනය වනු ඇත

-M / --markdown ධජය සබල කර ඇති විට:

  • රටාව ]( ට ඝනීභවනය වනු ඇත ]( මෙලෙස කැඩුණු සලකුණු සබැඳි සවි කරයි
  • ඉන්ඩෙන්ටඩ් කේත කුට්ටි වටා "පරිවර්තන නැත" දවටනයක් තබනු ඇත, නිසි ඉන්ඩෙන්ටේෂන් ආරක්ෂා කර ඒවා පරිවර්තනය නොවන බව සහතික කරයි
  • ඒවා පරිවර්තනය කර නොමැති බව සහතික කිරීම සඳහා backticks තුළ පෙළ වටා "පරිවර්තන නැත" ඔතා තබනු ඇත.

ක්‍රියාවලිය ලෙස

සාමාන්‍යයෙන් සෑම දෙයක්ම සරල පෙළ ලෙස සකසනු ලැබේ

ඔබේ අන්තර්ගතය HTML නම්, ඔබ -p html / --process-as html විකල්පය පසු කරන්නේ නම් මිස එය අවුල් වේ.

පෙරහන

වික්‍රමාන්විතයන් සඳහා: නාමාවලියක ගොනු සැකසීමේදී, ඔබට -F / --filter විකල්පය සමත් විය හැක ගොනු පද්ධතියට ලිවීමට පෙර ප්‍රතිදානය පෙරීමට

මෙම විකල්පයේ අගය filter නම් ශ්‍රිතයක් අපනයනය කරන JS ගොනුවකට මාර්ගයක් විය යුතුය

filter ශ්‍රිතය 'අසමමුහුර්ත' විය යුතුය, මන්ද එය මත await async ' කැඳවනු ඇත

ගොනු තැටියට ලිවීමට පෙර, සම්පූර්ණ ගොනු අන්තර්ගතය තන්තුවක් ලෙස 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"
      }
    ]
}

බහු ආදාන ගොනු

මෙම උදාහරණයේ මෙන්, තනි මාර්ගයක් වෙනුවට infile infiles ලෙස ගොනු මාර්ග මාලාවක් පසු කරන්න:

{
  ... [
    {
      "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 සඳහා ගොනුවක් (ඩිරෙක්ටරයක් නොවේ) ද නියම කළ යුතුය. විකල්පය

භාෂා පරිවර්තනය කිරීමට විනෝදජනක කාලයක් ගත කරන්න!