BabelFish - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдмрд╣реБрднреБрдЬ

Babelfish








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



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, REG.RU рдореЗрдВ, рдЖрдЬ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ резрелрежрежреж рд╕реЗ рдЕрдзрд┐рдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ реирежреж рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдФрд░ реирежрежреж рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд░ рджрд┐рди, рдХрдо рд╕реЗ рдХрдо 10 рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдФрд░ рдЕрдкрдиреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрдЧреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред



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



рдбреЛрдирдЯ рдкреИрдирдЖрдИрд╕реАред



рд╣рд╛рд▓ рд╣реА рдореЗрдВ, BabelFish 1.0 рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдиреЗ рд╣рдореЗрдВ рдЗрддрдирд╛ рдкреНрд░рд╕рдиреНрди рдХрд┐рдпрд╛ рдХрд┐ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ CPAN рдореЙрдбреНрдпреВрд▓ рд▓реЛрдХреЗрд▓ :: рдмреЗрдмреЗрд▓рд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реНрд▓ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╣рдо рдкрд░реНрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ред



рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди

рдЫрд╡рд┐

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?





рдЖрдЗрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



#{cachalotes_count} ((||)):cachalotes_count.







рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди рдФрд░ рдЪрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрдм "0 рд╢реБрдХреНрд░рд╛рдгреБ рд╡реНрд╣реЗрд▓" рдХреЗ рдмрдЬрд╛рдп рд╣рдо "1 рд╢реБрдХреНрд░рд╛рдгреБ рд╡реНрд╣реЗрд▓" рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ "1 рд╢реБрдХреНрд░рд╛рдгреБ рд╡реНрд╣реЗрд▓" рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХреЗрд╡рд▓ "рд╢реБрдХреНрд░рд╛рдгреБ рд╡реНрд╣реЗрд▓" рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╡рд░реНрддрдиреА "21 рд╢реБрдХреНрд░рд╛рдгреБ рд╡реНрд╣реЗрд▓" рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ:



((=0 |=1 |#{count} |#{count} |#{count} ))







рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЧрдгрдирд╛ рдирд╛рдордХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕рдХрд╛ рдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



Babelfish рдПрдкреАрдЖрдИ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рдХреЛ рддреИрдпрд╛рд░ рдкрд╛рда рдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП t(, , )



рд╡рд┐рдзрд┐ t(, , )



рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



 babelfish.t( 'ru-RU', 'some.complex.key', { a: "test" } ); babelfish.t( 'ru-RU', 'some.complex.key', 17 ); //  count  value   17
      
      





рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдХрдо рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлреЙрд░реНрдо (рдХреЙрдлреА) рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдЖрдорддреМрд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ:



  window.t = t = (key, params, locale) -> locale = _locale unless locale? babelfish.t.call babelfish, locale, key, params
      
      





рдпрд╣рд╛рдБ, рд▓реЛрдХреЗрд▓ рддрд░реНрдХ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдЖрдк рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:



 t( 'some.complex.key', { a: "test" } ); //    : t( 'some.complex.key', 17 ); t( 'some.complex.key', { count => 17, value => 17 } );
      
      





рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХрд╛ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ (рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ) рдХреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд░рд▓ рд╣реИред



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



рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ рдШреЛрд╖рдгрд╛ рдФрд░ рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рддрд░рдл рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ Babelfish рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред



рд╕реНрдерд╛рдкрдирд╛



Babelfish рдПрдХ npm рдкреИрдХреЗрдЬ рдФрд░ рдПрдХ рдмреЛрд╡рд░ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрдиреЛрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ + рдмреНрд░рд╛рдЙрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ (рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмреЗрдмрдлрд╝рд┐рд╢ рдбреЗрдореЛ рдореЗрдВ рд╣реИ ), рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмреЛрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред



рдпрд╣рд╛рдБ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХрд▓ рдХреЛ window.lang рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 # assets/coffee/babelfish-init.coffee do (window) -> "use strict" BabelFish = require 'babelfish' locale = switch window.lang when 'ru' then 'ru-RU' when 'en' then 'en-US' else window.lang window.l10n = l10n = BabelFish() l10n.setFallback 'be-BY', [ 'ru-RU', 'en-US' ] window.t = t = (args...) -> l10n.t.apply l10n, [ locale ].concat(args) null
      
      







рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдФрд░ рд╕рдВрдХрд▓рди



рдЖрдВрддрд░рд┐рдХ рд╕реНрд╡рд░реВрдк



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



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:



 babelfish.addPhrase( 'ru-RU', 'some.complex.key', ' ' ); babelfish.addPhrase( 'ru-RU', 'some.complex.anotherkey', '  ' );
      
      





рдпрд╛ рддреЛ:



 babelfish.addPhrase( 'ru-RU', 'some', { complex: { key: ' ', anotherkey: '  ' } });
      
      





рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрдк рдлреНрд▓реИрдЯреЗрдирд▓реЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ (рдЧрд▓рдд рдпрд╛ 0) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж:



 babelfish.addPhrase( 'ru-RU', 'myhash', { key: ' ', anotherkey: '  ' }, false);
      
      





рдФрд░ рдлрд┐рд░ рдЬрдм t ('myhash') рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЪрд╛рдмреА рдХреА рдЪрд╛рдмреА рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдорд┐рд▓рддреА рд╣реИред рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQuery UI рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред



рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЗрд╕реЗ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред



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



YAML рдкреНрд░рд╛рд░реВрдк



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



рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдореНрдмреЗрдбреЗрдб YAML рдХреБрдВрдЬреА рдПрдХ рд╕рдкрд╛рдЯ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ:



 рдХреБрдЫ:
     рдЬрдЯрд┐рд▓:
         рдХреБрдВрдЬреА: "рдХреБрдЫ рдкрд╛рда рдХрдо рд╕реЗ рдХрдо # {рдЧрд┐рдирддреА}"


рдХреБрдЫ.complex.key рдХреБрдВрдЬреА рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред



рд╡реИрд╕реЗ, рдмрдмрд▓рдлрд┐рд╢ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд┐рдирд╛, рди рдХреЗрд╡рд▓ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реВрдЪрд┐рдпреЛрдВ (рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ) рдХреЛ рднреА рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ



 MyList:
     - рдмреНрд░рд┐рдЯрд┐рд╢
     - рдЖрдпрд░рд┐рд╢


рддрдм рдЬрдм t('mylist')



рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ [ 'british', 'irish' ]



ред рдпрд╣ рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛ред





рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд░реВрдкрд╛рдВрддрд░рдг



рдЫрд╡рд┐ рдЖрдорддреМрд░ рдкрд░ рд╣рдореЗрдВ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрди рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:





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



рд╣рдордиреЗ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ / рд╕реНрдерд╛рдиреЛрдВ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореВрд▓ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдбрд╛рд▓ рджрд┐рдпрд╛, рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ / рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░-рдЯреВ-рдЙрдкрдпреЛрдЧ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ред



рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрдЯреИрдХ рд╣рдорд╛рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред



рдФрд░ рдпрд╣рд╛рдБ рдорд╛рд░реНрдХрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ (рдЧреНрд░рдВрдЯ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдмреЗрдмрдлрд╝рд┐рд╢ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:



  # Gruntfile.coffee #   glob, marked, traverse marked = require 'marked' traverse = require 'traverse' grunt.registerTask 'babelfish', 'Compile config/locales/*.<locale>.yaml to Babelfish assets', -> fs = require 'fs' Babelfish = require 'babelfish' glob = require 'glob' files = glob.sync '**/*.yaml', { cwd: 'config/locales' } reFile = /(^|.+\/)(.+)\.([^\.]+)\.yaml$/ # do not wrap each line with <p> renderer = new marked.Renderer() renderer.paragraph = (text) -> text for file in files m = reFile.exec(file) continue unless m [folder, dict, locale] = [m[1], m[2], m[3], ''] b = Babelfish locale translations = grunt.file.readYAML "config/locales/#{folder}#{file}" # md traverse(translations).forEach (value) -> if typeof value is 'string' @update marked( value, { renderer: renderer } ) b.addPhrase locale, dict, translations res = "// #{file} translation\n" res += "window.l10n.load(" res += b.stringify locale res += ");\n" resPath = "assets/javascripts/l10n/#{folder}#{dict}.#{locale}.js" grunt.file.write resPath, res grunt.log.writeln "#{resPath} compiled."
      
      





рдЕрдм рддреИрдпрд╛рд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред





рд╕реНрдерд╛рди рдЪрдпрди



рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдПрдХ рд▓реЛрдХреЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рд╕рд╣реА рддрд░реАрдХрд╛ рдПрдХреНрд╕реЗрдкреНрдЯ-рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╣реИрдбрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реИред рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рд▓реЛрдХреЗрд▓ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЖрдк nodeca.core рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред



рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд░реЛрд▓рдмреИрдХ



рдмрдмрд▓рдлрд┐рд╢ рдЙрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд░реЛрд▓рдмреИрдХ рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИред



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



 babelfish.setFallback( 'be-BY', [ 'ru-RU', 'en-US' ] );
      
      







рд╕реНрдерд╛рдиреАрдпрдХрд░рдг



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



рджрд┐рдирд╛рдВрдХ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг



рд╣рдо рдкрдЯрд░рд┐рдпреЛрдВ рд╕реЗ рддрд╛рд░реАрдЦреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:



 # config/locales/formatting.ru-RU.yaml date: abbr_day_names: -  -  -  -  -  -  -  abbr_month_names: - - . - . -  - . -  -  -  - . - . - . - . - . day_names: -  -  -  -  -  -  -  formats: default: '%d.%m.%Y' long: '%-d %B %Y' short: '%-d %b' month_names: - -  -  -  -  -  -  -  -  -  -  -  -  order: - day - month - year time: am:   formats: default: '%a, %d %b %Y, %H:%M:%S %z' long: '%d %B %Y, %H:%M' short: '%d %b, %H:%M' pm:  
      
      







 # assets/coffee/babelfish-init.coffee strftime = require 'strftime' l10n.datetime = ( dt, format, options ) -> return null unless dt && format dt = new Date(dt * 1000) if 'number' == typeof dt m = /^([^\.%]+)\.([^\.%]+)$/.exec format format = t("formatting.#{m[1]}.formats.#{m[2]}", options) if m format = format.replace /(%[aAbBpP])/g, (id) -> switch id when '%a' t("formatting.date.abbr_day_names", { format: format })[dt.getDay()] # wday when '%A' t("formatting.date.day_names", { format: format })[dt.getDay()] # wday when '%b' t("formatting.date.abbr_month_names", { format: format })[dt.getMonth() + 1] # mon when '%B' t("formatting.date.month_names", { format: format })[dt.getMonth() + 1] # mon when '%p' t((if dt.getHours() < 12 then "formatting.time.am" else "formatting.time.pm"), { format: format }).toUpperCase() when '%P' t((if dt.getHours() < 12 then "formatting.time.am" else "formatting.time.pm"), { format: format }).toLowerCase() strftime.strftime format, dt
      
      





рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╣реИ:



 window.l10n.datetime( unix timestamp or Date object, format_string_or_config ).
      
      





рдЗрд╕реА рддрд░рд╣, рдЖрдк рдореБрджреНрд░рд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╕реНрдерд╛рдиреАрдп рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



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



рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдордиреЗ рдкрд░реНрд▓ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмреЗрдмрдлрд╝рд┐рд╢ 1.0 рдмреЛрд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред



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



рдмрдмрд▓рдлрд┐рд╢ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЪрд┐рд╣реНрдирд┐рдд рдФрд░ рдЬреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред



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



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдиреЛрдбреЗрдХрд╛ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓, рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╣реЛрдирд╣рд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдмрд╕ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ js-yaml , mincer , argparse , pako рдФрд░ markdown-it рдЬреИрд╕реА рд╣рд┐рдЯ рдлрд╝рд┐рд▓реНрдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХреА рд╣реИрдВред



рд╡рд┐рдЯрд╛рд▓реА рдкреБрдЬрд░реАрди рдореЙрдбреНрдпреВрд▓ ( @puzrin ) рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд▓реЗрдЦ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ REG.RU рд╡рд┐рдХрд╛рд╕ рд╡рд┐рднрд╛рдЧ рдХреА рд╕рдХреНрд░рд┐рдп рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЗрдЧреЛрд░рдорд┐рд░реЛрдиреЛрд╡ , рдбреНрд░реАрдорд╡рд░реНрдХ , рдиреЗ рдЯрд┐рдорд░рди рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рдпрд╛ ред



All Articles