[Moscow.pm] Mojo: перевод статических страниц

Alexandr Alexeev afiskon на gmail.com
Сб Июл 21 12:57:42 PDT 2012


Ваш способ вроде ничего. Но для пущей общности я бы ввел в вашем движке
понятие "статической страницы", код которой хранится в базе и может
редактироваться/переводиться через веб-интерфейс. Это, конечно, уже будет
не статика, но с нормальном кэшированием должно быть ОК.

21 июля 2012 г., 10:54 пользователь Sergey Malochinskiy <
sergey.malochinskiy на gmail.com> написал:

> Исправление.
>
> строку:
>   my $pagetext = $self->staticpage_get($self->param('page')); # helper
> возвращающий html код страницы из БД по параметру в GET
>
> читать как:
>  my $pagetext = $self->staticpage_get($self->param('page'), $lang); #
> helper возвращающий html код страницы из БД по параметру в GET на
> языке пользователя
>
> 21 июля 2012 г., 10:52 пользователь Sergey Malochinskiy
> <sergey.malochinskiy на gmail.com> написал:
> > Я делаю это так.
> >
> > Есть контроллер объявленный как route
> > # Route for static pages such as help, faq... etc
> >   $r->route('/:page', page => [$self->staticpages])->via('GET')
> >     ->to('static#pages')->name('static_pages');
> >
> > $self->staticpages возвращает список доступных страниц, быстро
> > заменяется например на qw/help about/
> >
> > Сама функция проще некуда:
> > sub pages {
> >   my $self = shift;
> >
> >  my $lang = $self->languages;   # язык пользователя плагин i18n
> >  my $pagetext = $self->staticpage_get($self->param('page')); # helper
> > возвращающий html код страницы из БД по параметру в GET
> >
> >   return $self->render(
> >     pagetext => $pagetext      # передача текста страницы в шаблон
> >   );
> > }
> >
> > Сам шаблон выглядит так:
> > % layout 'default';
> >           <%= Mojo::ByteStream->new($pagetext) %>
> >
> > Для формирования URL для статической страницы использую конструкцию:
> > <a href="<%= url_for 'static_pages', page => 'help' %>"><%= l 'url_help'
> %></a>
> >
> >
> > 20 июля 2012 г., 15:27 пользователь Grigory Batalov <grisxa на gmail.com>
> написал:
> >> В Fri, 20 Jul 2012 13:36:22 +0400
> >> Sergey Malochinskiy <sergey.malochinskiy на gmail.com> пишет:
> >>
> >>> Сделать один шаблон. Наполнение на разных языках хранить в БД или
> >>> файлах. В контроллере вытягивать из БД или файла и через stash
> >>> передавать в шаблон.
> >>
> >> Например, так?
> >>
> >> page.help:
> >>
> >> use utf8;
> >> {
> >>     ru => {
> >>         page1 => 'help1',
> >>         page2 => 'help2',
> >>     },
> >>     en => {
> >>         page1 => 'help3',
> >>         page2 => 'help4',
> >>     },
> >> }
> >>
> >> контроллер:
> >>
> >> my $help = do  $self->config->{'mojo'}->{'page_help'};
> >>
> >> $self->stash( help => $help->{ $self->stash->{'i18n'}->{'language'}
> }->{ $page } );
> >>
> >>> > Мне нужно вставить в проект статические страницы с описанием
> >>> > ("справку") на разных языках. С организационной точки зрения было
> >>> > бы удобно разложить каждую справку в отдельный файл и отдать
> >>> > документаторам:
> >>> >
> >>> > help/en/page1.html.ep
> >>> > help/en/page2.html.ep
> >>> > help/ru/page1.html.ep
> >>> > help/ru/page2.html.ep
> >>> > ...
> >>> >
> >>> > Но как их потом включать в шаблон страниц?
> >>> > Я пока что выкрутился так: в page1.html.ep вставляю директиву
> >>> >
> >>> > %= include 'help/' . $self->stash->{'i18n'}->{'language'} . '/page1'
> >>> >
> >>> > Может быть, есть способ красивее, удобнее и т.д.?
> >> --
> >> Moscow.pm mailing list
> >> moscow-pm на pm.org | http://moscow.pm.org
> >
> >
> >
> > --
> > Best regards,
> > Sergey Malochinskiy
>
>
>
> --
> Best regards,
> Sergey Malochinskiy
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
С уважением, Александр
Личный блог: http://eax.me/
Мой форум: http://it-talk.org/
Мой Twitter: http://twitter.com/afiskon
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120721/de263a60/attachment.html>


Подробная информация о списке рассылки Moscow-pm