рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рднрд╛рдЧ 2: рдЙрдкрдХрд░рдг рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдпрд╣ рдореЛрдЬрд╝рд┐рд▓рд╛ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рдЯреАрдо рд╕реЗ Node.js рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рджрд╕рд╡рд╛рдВ рд▓реЗрдЦ рд╣реИ, рдЬреЛ рдкрд░реНрд╕реЛрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
  1. " Node.js рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рд░ "
  2. "рд╣рдо рдиреЛрдб рдХреЛ рдиреЗрддреНрд░рдЧреЛрд▓рдХ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ "
  3. " рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ "
  4. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░рдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 1 - рдХреЙрдирд╕реЗрдиреНрдЯреЗрд╢рди, рдХрдореНрдкреНрд░реЗрд╢рди, рдХреИрд╢рд┐рдВрдЧ "
  5. " рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ "
  6. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 2 - рдХреИрдЯреЗрдЧрд┐рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХрдВрдЯреЗрдВрдЯ рдХреИрд╢рд┐рдВрдЧ "
  7. " рдиреЛрдб-рджреЛрд╖реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЫреЗрдбрд╝рдирд╛ "
  8. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 3 - рдлреЙрдиреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди "
  9. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдиреЛрдбреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 1 "
  10. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 2: рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ "
  11. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 3: рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг "
  12. " Awsbox - рдЕрдореЗрдЬрд╝рди рдХреНрд▓рд╛рдЙрдб рдкрд░ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП Paas рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ "





Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ i18n-abide рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╣рдордиреЗ gettext() рдХреЙрд▓ рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рдкреЗрдЯ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдЖрд╡реЗрджрди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдЕрднреА рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЙрдкрдХрд░рдг


рдореЛрдЬрд╝рд┐рд▓рд╛ рдкрд░реНрд╕реЛрдирд╛ рдЯреАрдо рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЯреВрд▓рдХрд┐рдЯ, рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕рдореБрджрд╛рдп рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рдЬрдмрдХрд┐ рдиреЛрдб рдХреА рдорд┐рддреНрд░рддрд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИред

рдореЛрдЬрд╝рд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдЧрднрдЧ 15 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рд╣реИ, рдФрд░ рд╕реНрдерд╛рдиреАрдп рд▓реЛрдЧреЛрдВ рдФрд░ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреА рд╣рдорд╛рд░реА рдЯреАрдо рдУрдкрди рд╕реЛрд░реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА (рдФрд░ рд╢рд╛рдВрдд) рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдПрдХ рднреА рдкреБрд░рд╛рдиреЗ рдФрд░ рдлреИрдВрд╕реА рдЙрдкрдХрд░рдг рдХрд╣ рд╕рдХрддрд╛ рд╣реИред

gettext


рдЬреАрдПрдирдпреВ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдПрдХ рдЯреВрд▓рдХрд┐рдЯ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХреЛрдб рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рд░ рдЬрдЧрд╣ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ gettext() рдХреЙрд▓ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВред

рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рджреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:


рд╕рднреА рдирд┐рдХрд╛рд▓реЗ рдЧрдП рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .po рд╕рд╛рде рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреАрдУ-рдлрд╛рдЗрд▓реЗрдВ рдХрд╣реЗрдВрдЧреЗред

рдкреЛ рдлрд╛рдЗрд▓реЗрдВ


рдкреАрдУ рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреА рдкрд╛рда рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдкрдврд╝, рд▓рд┐рдЦ рдФрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ zhTW / LCMESSAGES / messages.po po рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 #: resources/views/about.ejs:46 msgid "Persona preserves your privacy" msgstr "Persona ф┐Эшн╖цВичЪДщЪ▒чзБ" 

рд╣рдо рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдЪреАрдиреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╣реИред # рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдм рдХреБрдЫ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб рдореЗрдВ рдЗрд╕ рд░реЗрдЦрд╛ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред

рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рддрд╛рд░ рдФрд░ рдкреАрдУ-рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рднреА рдЫреВрддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдЯреВрд▓рдХрд┐рдЯ рдХреНрдпреЛрдВ?


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЧреЗрдЯреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Node.js рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ, рд╣рдореЗрдВ рдЦреБрдж рд╕реЗ рдпрд╣ рдкреВрдЫрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рдХреЗ рд╕реЗрдЯ рдХреЛ рдХреНрдпреЛрдВ рдЪреБрдирд╛?

рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ Node.js рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХреАред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рддрд╛рд░ рд╕рдВрдЪрдп рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдмрд╛рдЗрдХ рдФрд░ JSON- рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ред

рджреВрд╕рд░реА рдУрд░, рдореЛрдЬрд╝рд┐рд▓рд╛ рдХреЗ рдкрд╛рд╕ POEdit , Verbatim , Translate Toolkit, рдФрд░ Pootle рдЬреИрд╕реЗ рд▓рдВрдмреЗ рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рд╣реИрдВред рд▓реЛрдЧреЛрдВ рдХреЛ рд░рд╛рд╣рдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдкрд░рд┐рдЪрд┐рдд рдорд╛рдирдХреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдВред

Po-files рд╣рдорд╛рд░реЗ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдФрд░ рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╛рд░реВрдк рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╣рдорд╕реЗ рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рд╣рдореЗрдВ рддреИрдпрд╛рд░ рдкрд╛рда рджреЗрдВред

PHP рдФрд░ Python рдореЗрдВ Mozilla рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдмрд╣реБрдд рдЕрдиреБрднрд╡ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рда рд╣реЛрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдФрд░ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╣рдо рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреАрдУ-рдлрд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЧреЗрдЯреЗрдХреНрд╕реНрдЯ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рдЬрд┐рд╕реЗ рд╣рдо "рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░" рдХрд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╣рд░рдХрдд рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрд╣ рдЖрдк рд╕реНрд╡рдпрдВ, рдЕрдиреБрд╡рд╛рджрдХ рдпрд╛ рдкреНрд░рд╢рд╛рд╕рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?


рдпрд╣ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдЖрдиреЗ рдкрд░ рд▓рд╛рдЗрдирдореИрди рдХреЛ рд╣реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

msginit, xgettext, msgfmt рдФрд░ рдЕрдиреНрдп GNU рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдЯреВрд▓ рд▓рд╛рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реЗрдЯ рд╣реИрдВред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдирд╕реЗ рдЕрдирдЬрд╛рди рдмрдиреЗ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдмрдирд╛рдирд╛:

 $ mkdir -p locale/templates/LC_MESSAGES 

рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреЛ-рдлрд╛рдЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИ - .pot рдлрд╛рдЗрд▓реЗрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рд╛рдирд╛


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ i18n-abide рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛:

 $ npm install i18n-abide 

рдЕрдиреНрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдореЗрдВ, рдПрдмрд╛рдЗрдб рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ-рдкреЙрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЛрдХрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 mkdir -p locale/templates/LC_MESSAGES $ ./node_modules/.bin/extract-pot --locale locale 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреВрд░реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧреА, рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдвреВрдВрдвреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╡рд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

рдкреЙрдЯ-рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ jsxgettext рдореЙрдбреНрдпреВрд▓, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд┐рдЦрд╛ рд╣реИред рд╣реБрдб рдХреЗ рддрд╣рдд, рдЕрд░реНрдХ-рдкреЙрдЯ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

Jsxgettext рдХреЛрдб рдореЗрдВ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ gettext() рдХреЙрд▓ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдкреЙрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЕрдВрд╢ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 #: resources/views/about.ejs:46 msgid "Persona preserves your privacy" msgstr "" #: resources/views/about.ejs:47 msgid "" "Persona does not track your activity around the Web. It creates a wall " "between signing you in and what you do once you're there. The history of " "what sites you visit is stored only on your own computer." msgstr "" "" #: resources/views/about.ejs:51 msgid "Persona for developers" msgstr "" 

рдмрд╛рдж рдореЗрдВ, рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрд╡рд╛рдж рд╡рд╛рд▓реА рдкреЛ-рдлрд╛рдЗрд▓реНрд╕ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреАред рд╡реЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреЗ:

 #: resources/views/about.ejs:46 msgid "Persona preserves your privacy" msgstr "Persona ф┐Эшн╖цВичЪДщЪ▒чзБ" #: resources/views/about.ejs:47 msgid "" "Persona does not track your activity around the Web. It creates a wall " "between signing you in and what you do once you're there. The history of " "what sites you visit is stored only on your own computer." msgstr "" "Persona хПкцШпщАгч╡РцВичЩ╗хЕещБОчиЛчЪДф╕Ах║зцйЛциСя╝Мф╕НцЬГш┐╜ш╣дцВихЬич╢▓ш╖пф╕КчЪДшбМчВ║уАВцВичЪДч╢▓щаБчАПшж╜" "ч┤АщМДхПкцЬГчХЩхЬицВишЗкх╖▒чЪДщЫ╗шЕжчХ╢ф╕нуАВ" #: resources/views/about.ejs:51 msgid "Persona for developers" msgstr "Persona чЪДщЦЛчЩ╝ф║║хУбш│ЗшиК" 

рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪреАрдиреА рдХреЗ рд▓рд┐рдП рдкреЛ-рдлрд╛рдЗрд▓ рдХреЗ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЛрдХ рдирд┐рд░реНрдорд╛рдг


рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рд╕реЗрдЯ рд╕реЗ msginit рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 $ for l in en_US de es; do mkdir -p locale/${l}/LC_MESSAGES/ msginit --input=./locale/templates/LC_MESSAGES/messages.pot \ --output-file=./locale/${l}/LC_MESSAGES/messages.po \ -l ${l} done 

рд╣рдордиреЗ рд╕рд┐рд░реНрдл рдЕрдореЗрд░рд┐рдХреА рдЕрдВрдЧреНрд░реЗрдЬреА, рдЬрд░реНрдорди рдФрд░ рд╕реНрдкреЗрдирд┐рд╢ рдХреЗ рд▓рд┐рдП рдкреАрдУ-рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИрдВред

рдкреЛ рдлрд╛рдЗрд▓реЗрдВ


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд▓рд╛рдЗрдиреЗрдВ рдирд┐рдХрд╛рд▓реАрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПред рдпрд╣ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 locale/ el/ LC_MESSAGES/ messages.po en_US LC_MESSAGES/ messages.po es LC_MESSAGES/ messages.po templates LC_MESSAGES/ messages.pot 

рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкреИрдирд┐рд╢ рдЯреАрдо рдХреЗ рдкрд╛рд╕ locale/es/LC_MESSAGES/messages.po рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рд╕реНрдкреИрдирд┐рд╢ рдФрд░ рд╕реНрдкреИрдирд┐рд╢ рднрд╛рд╖рд╛ рдХреЗ рд╕реНрдкреИрдирд┐рд╢ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рди рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: es-ES рдФрд░ es-ARред

рд╕рдордп рдХреЗ рд╕рд╛рде, рдирдП рд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдорд░реНрдЬ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди


рд░рд┐рд▓реАрдЬрд╝ рджреНрд╡рд╛рд░рд╛ рд░рд┐рд▓реАрдЬрд╝ рдЖрдк рдирдП рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдкреБрд░рд╛рдиреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓реЗрдВрдЧреЗ рдФрд░ рд╣рдЯрд╛рдПрдВрдЧреЗред рдЖрдкрдХреЛ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдкреАрдУ-рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИрдВред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдорд░реНрдЬ-po.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реИрдкрд░ рдмрдирд╛рдпрд╛ рдЬреЛ GNU рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдкреИрдХреЗрдЬ рд╕реЗ msgmerge рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рдкрдереЛрдВ рдореЗрдВ i18n-abide рдЯреВрд▓ рдЬреЛрдбрд╝реЗрдВ:

 $ export PATH=$PATH:node_modules/i18n-abide/bin 

рдФрд░ рд▓рд╛рдЗрди рд╡рд┐рд▓рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ:

 $ ./node_modules/.bin/extract-pot --locale locale . $ merge_po.sh ./locale 

рдкрд╣рд▓реА рдмрд╛рд░ рдХреА рддрд░рд╣, рдПрдХреНрд╕рдЯ-рдкреЙрдЯ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╕рднреА рдкреЛ-рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдорд░реНрдЬ рдХрд░реЗрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рд▓рд╛рдПрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЕрдиреБрд╡рд╛рдж рдЯреАрдо рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред

рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдо рдЗрдиреНрд╡реЗрдВрдЯреЗрдб рдиреЙрдЯ рд╣рд┐рдпрд░ рд╕рд┐рдВрдбреНрд░реЛрдо


рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рдЦреБрдж рдХреА JSON- рдЖрдзрд╛рд░рд┐рдд рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЗрд╕ рдкрде рдХреЛ рдЪреБрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдирдИ рднрд╛рд╖рд╛рдПрдБ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВ, рдЫреЛрдЯреА-рдЫреЛрдЯреА рдкрд░реЗрд╢рд╛рдирд┐рдпрд╛рдБ рд╕реНрдиреЛрдмреЙрд▓ рдХреА рддрд░рд╣ рдмрдврд╝рддреА рдЬрд╛рдПрдБрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛- p.sh, рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд░реНрдЬ рдЯреВрд▓ рдХреЛ рд▓рд┐рдЦрдирд╛ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред 30 рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП 30 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдмрд┐рдирд╛ рдХреБрдЫ рдЦреЛрдП рдпрд╛ рднреНрд░рдорд┐рдд рдХрд┐рдП - рдЬреЛ рдЕрднреА рднреА рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

рдФрд░ рдЧреЗрдЯрдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдм рдЬрдм рд╣рдордиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдкреЛ-рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реМрдВрдк рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЙрдирд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрдм рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдХреНрдпрд╛ рдорд╛рддреНрд░рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рдХрдм рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдЧреЗрдЯреЗрдХреНрд╕реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рддреЛ, рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЬрд╛рдиреЗрдВрдЧреЗ рдХрд┐ рдЖрд╡реЗрджрди рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
  1. " Node.js рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рд░ "
  2. "рд╣рдо рдиреЛрдб рдХреЛ рдиреЗрддреНрд░рдЧреЛрд▓рдХ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ "
  3. " рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ "
  4. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░рдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 1 - рдХреЙрдирд╕реЗрдиреНрдЯреЗрд╢рди, рдХрдореНрдкреНрд░реЗрд╢рди, рдХреИрд╢рд┐рдВрдЧ "
  5. " рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ "
  6. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 2 - рдХреИрдЯреЗрдЧрд┐рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХрдВрдЯреЗрдВрдЯ рдХреИрд╢рд┐рдВрдЧ "
  7. " рдиреЛрдб-рджреЛрд╖реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЫреЗрдбрд╝рдирд╛ "
  8. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 3 - рдлреЙрдиреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди "
  9. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдиреЛрдбреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 1 "
  10. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 2: рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ "
  11. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 3: рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг "
  12. " Awsbox - рдЕрдореЗрдЬрд╝рди рдХреНрд▓рд╛рдЙрдб рдкрд░ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП Paas рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ "

Source: https://habr.com/ru/post/In198154/


All Articles