рдореЗрд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░, рдмрд╣реБрднрд╛рд╖рд╛рд╡рд╛рдж рдХреЗ рдЖрдпреЛрдЬрди рдХрд╛ рд╕рд╡рд╛рд▓ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЙрдард╛, рдФрд░ рдпрд╣ 2-3 рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЛ рджреВрд╕рд░реА, рдмрд┐рд▓реНрдХреБрд▓ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдЕрдиреВрдард╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рд╣реИ, рдПрдХ рдбреЛрдореЗрди / рдЖрд░рдпреВ /, рдПрдХ рдбреЛрдореЗрди / рдПрди / рдЖрджрд┐ред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ (рд╢рд╛рдпрдж рдореИрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛?) рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕реЛрдЪрдирд╛ рдкрдбрд╝рд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рджреЗ рджреВрдВрдЧрд╛, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЛрд╣рдирд╛ 3 рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреЛ, рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рдмрд╣реБрднрд╛рд╖реА рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП "рдЖрд░рдпреВ", "рдПрди" рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛, рдФрд░ рдЕрдЧрд░ рдЖрдкрдиреЗ рдХреБрдЫ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рд╕рднреА 30 рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ ... рдУрд╣, рд╣реЙрд░рд░, рдХреЗрд╡рд▓ рдПрдХ рдорд╕реЛрдХрд┐рд╕реНрдЯ рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдвреВрдВрдврдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд░рд╛рдЙрдЯрд┐рдВрдЧ рдореЗрдВ рд▓реИрдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛрдЧрд╛:
Route::set('auth', '<lang>/<action>(/<param>)', array('action' => 'login|logout|registration|forgot|start')) ->defaults(array( 'directory' => 'index', 'controller' => 'auth', )); Route::set('static', '<lang>/<action>(/<uri>)', array('action' => 'page|blog|news|forms|polls')) ->defaults(array( 'directory' => 'index', 'controller' => 'static', 'action' => 'page', )); Route::set('default', '(<lang>(/<controller>(/<action>(/<param>))))', array('param' => '.+')) ->defaults(array( 'directory' => 'index', 'controller' => 'static', 'action' => 'index', 'lang' => 'ru' ));
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рдЕрдВрддрд┐рдо рдорд╛рд░реНрдЧ рддрдп рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рднрд╛рд╖рд╛ рдбреЛрдореЗрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдбреЛрдореЗрди рдЦреЛрд▓ рд╕рдХреЗрдВ, рдЕрдЧрд░ рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рднрд╛рд╖рд╛
рдбреЛрдореЗрди / рдЖрд░рдпреВ , рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдореЗрдВ рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ (рд╢рд╛рдпрдж рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ?) рдореИрдВрдиреЗ рдирд┐рд░рдВрддрд░ LANG рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛:
if ( !defined('LANG') ) { define('LANG', $this->lang()); }
рд▓реИрдВрдЧ рд╡рд┐рдзрд┐ рдореЗрдВ, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреБрдХреА рдпрд╛ рдЖрдИрдкреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднрд╛рд╖рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреБрд╡рд╛рдж рдлрд╝рд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / i18n / LANG / рдХрдВрдЯреНрд░реЛрд▓рд░_рдиреЗрдореА.php рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣реА рдЖрдкрдХреА рдЖрддреНрдорд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред
HTML рдПрдВрдХрд░ рд╣реЗрд▓реНрдкрд░ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╣ рд╕рдм рдХреБрдЫ рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдХреНрд╖рд╛рдУрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ HTML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ:
<?php defined('SYSPATH') or die('No direct script access.'); class HTML extends Kohana_HTML { public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = TRUE) { $uri = LANG . '/'. $uri; return parent::anchor($uri, $title, array $attributes, $protocol, $index); } }
рдореИрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдбреЛрдореЗрди рдФрд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрд▓реИрд╢ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрддрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ $ uri рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
рдЦреИрд░, рдпрд╣ рдмрд╛рдд рд╣реИред рдЕрдм, рдХрд╣реАрдВ рднреА, рдХрд┐рд╕реА рднреА рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдЕрдиреБрд╡рд╛рдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ __ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЖрдзрд╛рд░ рднрд╛рд╖рд╛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдпрджрд┐ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЙрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдРрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд░реВрд╕реА рдХреЛ рдЪреБрдирд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлреЗрдВрдЧрд╢реБрдИ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред