From 5cfa4cfc66b2008546aca3247b98f8445f1f5a90 Mon Sep 17 00:00:00 2001 From: vti Date: Mon, 16 Apr 2012 13:01:33 +0300 Subject: [PATCH] Added translations --- contrib/lamework | 2 +- lib/Perliki.pm | 15 +++++++++++++++ lib/Perliki/I18N/ru.pm | 24 ++++++++++++++++++++++++ templates/create.caml | 8 ++++---- templates/index.caml | 2 +- templates/layout.caml | 9 ++++++--- templates/login.caml | 4 ++-- templates/not_found.caml | 2 +- templates/page.caml | 10 +++++----- templates/update.caml | 8 ++++---- 10 files changed, 63 insertions(+), 21 deletions(-) create mode 100644 lib/Perliki/I18N/ru.pm diff --git a/contrib/lamework b/contrib/lamework index 6882a10..2d6b751 160000 --- a/contrib/lamework +++ b/contrib/lamework @@ -1 +1 @@ -Subproject commit 6882a107b1eba60a6b2539401b09ae49b815d980 +Subproject commit 2d6b7517b38ba0eab371082251474fa960da3044 diff --git a/lib/Perliki.pm b/lib/Perliki.pm index cf96820..082ef00 100644 --- a/lib/Perliki.pm +++ b/lib/Perliki.pm @@ -10,6 +10,7 @@ use Lamework::ActionFactory; use Lamework::Dispatcher::Routes; use Lamework::Displayer; use Lamework::HelperFactory; +use Lamework::I18N; use Lamework::Renderer::Caml; use Lamework::Routes; @@ -28,6 +29,8 @@ sub startup { Perliki::DB->init_db(%{$config->{database}}); + my $i18n = Lamework::I18N->new(app_class => __PACKAGE__); + my $displayer = Lamework::Displayer->new( renderer => Lamework::Renderer::Caml->new(home => $self->{home}), layout => 'layout.caml' @@ -53,6 +56,8 @@ sub startup { expires => $self->{config}->{session}->{expires} ); + $self->add_middleware('I18N', i18n => $i18n); + $self->add_middleware('RequestDispatcher', dispatcher => Lamework::Dispatcher::Routes->new(routes => $self->_build_routes)); @@ -91,6 +96,16 @@ sub startup { $env->{'lamework.displayer.vars'}->{'title'} = $config->{wiki}->{title}; + my $languages_names = $i18n->get_languages_names; + if (keys %$languages_names > 1) { + $env->{'lamework.displayer.vars'}->{'languages'} = + [map { {code => $_, name => $languages_names->{$_}} } + keys %$languages_names]; + } + + $env->{'lamework.displayer.vars'}->{'loc'} = + sub { shift; $env->{'lamework.i18n.maketext'}->loc(@_) }; + return $app->($env); } } diff --git a/lib/Perliki/I18N/ru.pm b/lib/Perliki/I18N/ru.pm new file mode 100644 index 0000000..a88e21b --- /dev/null +++ b/lib/Perliki/I18N/ru.pm @@ -0,0 +1,24 @@ +package Perliki::I18N::ru; + +use strict; +use warnings; +use utf8; + +use base 'Perliki::I18N'; + +our %Lexicon = ( + 'Login' => 'Вход', + 'Logout' => 'Выход', + 'Last changes' => 'Последние изменения', + 'All pages' => 'Все страницы', + 'Last modification' => 'Последнее изменение', + 'by' => 'от', + 'update' => 'изменить', + 'Update' => 'Изменить', + 'Create' => 'Создать', + 'Preview' => 'Предпросмотр', + 'last modification' => 'последнее изменение', + 'history' => 'история', +); + +1; diff --git a/templates/create.caml b/templates/create.caml index 633edb6..704d415 100644 --- a/templates/create.caml +++ b/templates/create.caml @@ -1,18 +1,18 @@ {{#preview}} -

Preview

+

{{#loc}}Preview{{/loc}}

{{&page.content_rendered}}
{{/preview}} -

Create page

+

{{#loc}}Create page{{/loc}}

{{#errors.content}}{{errors.content}}{{/errors.content}}
- - + +
diff --git a/templates/index.caml b/templates/index.caml index 1157eb8..3a87211 100644 --- a/templates/index.caml +++ b/templates/index.caml @@ -1,3 +1,3 @@

Perliki

- Create Index page + {{#loc}}Create Index page{{/loc}} diff --git a/templates/layout.caml b/templates/layout.caml index 1781608..030cd75 100644 --- a/templates/layout.caml +++ b/templates/layout.caml @@ -26,13 +26,16 @@
- Index | Last changes | All pages + Index | {{#loc}}Last changes{{/loc}} | {{#loc}}All pages{{/loc}}
+ {{#languages}} + {{name}} + {{/languages}} {{#user}} - Logout ({{name}}) + | {{#loc}}Logout{{/loc}} ({{name}}) {{/user}} {{^user}} - Login + {{#loc}}Login{{/loc}} {{/user}}
diff --git a/templates/login.caml b/templates/login.caml index a4cb915..9a8ea50 100644 --- a/templates/login.caml +++ b/templates/login.caml @@ -1,4 +1,4 @@ -

Login

+

{{#loc}}Login{{/loc}}

@@ -10,6 +10,6 @@ {{#errors.password}}{{errors.password}}{{/errors.password}}
- +
diff --git a/templates/not_found.caml b/templates/not_found.caml index 989172d..e3bf314 100644 --- a/templates/not_found.caml +++ b/templates/not_found.caml @@ -1 +1 @@ -Not Foudn +Not Found diff --git a/templates/page.caml b/templates/page.caml index 27c55f5..943b366 100644 --- a/templates/page.caml +++ b/templates/page.caml @@ -3,17 +3,17 @@

-
Last modification: {{#helpers.date.format}}{{page.updated}}{{/helpers.date.format}} by {{page.user.name}}
+
{{#loc}}Last modification{{/loc}}: {{#helpers.date.format}}{{page.updated}}{{/helpers.date.format}} {{#loc}}by{{/loc}} {{page.user.name}}
{{#user}} -update +{{#loc}}update{{/loc}} {{/user}} {{#page.has_history}} -last modification -history +{{#loc}}last modification{{/loc}} +{{#loc}}history{{/loc}} {{/page.has_history}} {{#user1}} -delete +{{#loc}}delete{{/loc}} {{/user1}} diff --git a/templates/update.caml b/templates/update.caml index da6a1c6..961f6cc 100644 --- a/templates/update.caml +++ b/templates/update.caml @@ -1,20 +1,20 @@ ← {{page.name}} {{#preview}} -

Preview

+

{{#loc}}Preview{{/loc}}

{{&page.content_rendered}}
{{/preview}} -

Update

+

{{#loc}}Update{{/loc}}

{{#errors.content}}{{errors.content}}{{/errors.content}}
- - + +