Представим себе будни локализатора веб-приложения. Предположим, что у нас имеется форма логина (английский вариант)

login_eng

и русский вариант

login_rus

Обратите внимание, что порядок следования ссылок «сброс пароля» и «создание аккаунта» изменен. Возникает вопрос, как сделать такую надпись с минимумом возни. И тут же возникает ответ — String::insert. Вот код (всей этой формы, хочу заметить, не только надписи)

if ($session->check(‘Message.auth’)) $session->flash(‘auth’);

$pass_opts = String::insert(
    __(‘You may :create or :recover’, true),
    array(
        ‘create’ => $html->link(__(‘create account’, true),
            array(‘plugin’=>‘users’, ‘controller’=>‘users’, ‘action’=>‘create’)),
        ‘recover’ => $html->link(__(‘reset password’, true),
            array(‘plugin’=>‘users’, ‘controller’=>‘users’, ‘action’=>‘reset’))
    )
);

echo $form->create(‘User’, array(‘action’ => ‘login’));
echo $form->input(‘email’);
echo $form->input(‘password’, array(‘after’ => $pass_opts));
echo $form->end(__(‘Login’, true));

Плюсы такого решения очевидны — очередное разделение кода и представления, формат вывода задается локализатором в его любимом poEdit (или чем он там пользуется). Не забудьте только ему сказать, чтобы не переводил слова с двоеточиями перед ними.

Щасливо.