mirror of
https://framagit.org/fiat-tux/hat-softwares/lutim.git
synced 2026-03-28 17:42:54 +01:00
39 lines
870 B
Perl
39 lines
870 B
Perl
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
|
package Lutim::Plugin::Lang;
|
|
use Mojo::Base 'Mojolicious::Plugin';
|
|
use Mojo::Collection;
|
|
use Mojo::File;
|
|
|
|
sub register {
|
|
my ($self, $app) = @_;
|
|
|
|
$app->helper(available_langs => \&_available_langs);
|
|
|
|
$app->hook(
|
|
before_dispatch => sub {
|
|
my $c = shift;
|
|
$c->languages($c->cookie('lutim_lang')) if $c->cookie('lutim_lang');
|
|
}
|
|
);
|
|
}
|
|
|
|
sub _available_langs {
|
|
my $c = shift;
|
|
|
|
state $langs = Mojo::Collection->new(
|
|
glob($c->app->home->rel_file('themes/'.$c->config('theme').'/lib/Lutim/I18N/*po')),
|
|
glob($c->app->home->rel_file('themes/default/lib/Lutim/I18N/*po'))
|
|
)->map(
|
|
sub {
|
|
Mojo::File->new($_)->basename('.po');
|
|
}
|
|
)->uniq->sort(
|
|
sub {
|
|
$c->l($a) cmp $c->l($b)
|
|
}
|
|
)->to_array;
|
|
}
|
|
|
|
1;
|
|
|