summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Releases.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/Handler/Releases.pm')
-rw-r--r--lib/VNDB/Handler/Releases.pm57
1 files changed, 26 insertions, 31 deletions
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm
index 890058af..98e95b10 100644
--- a/lib/VNDB/Handler/Releases.pm
+++ b/lib/VNDB/Handler/Releases.pm
@@ -41,7 +41,7 @@ sub page {
[ vn => join => '<br />', split => sub {
map sprintf('<a href="/v%d" title="%s">%s</a>', $_->{vid}, $_->{original}||$_->{title}, shorten $_->{title}, 50), @{$_[0]};
} ],
- [ type => serialize => sub { mt "_rtype_$_[0]" } ],
+ [ 'type' ],
[ patch => serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ],
[ freeware => serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ],
[ doujin => serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ],
@@ -49,16 +49,14 @@ sub page {
[ original => diff => 1 ],
[ gtin => serialize => sub { $_[0]||mt '_revision_empty' } ],
[ catalog => serialize => sub { $_[0]||mt '_revision_empty' } ],
- [ languages => join => ', ', split => sub { map mt("_lang_$_"), @{$_[0]} } ],
+ [ languages => join => ', ', split => sub { map $self->{languages}{$_}, @{$_[0]} } ],
[ 'website' ],
[ released => htmlize => sub { $self->{l10n}->datestr($_[0]) } ],
[ minage => serialize => \&minage ],
[ notes => diff => qr/[ ,\n\.]/ ],
- [ platforms => join => ', ', split => sub { map mt("_plat_$_"), @{$_[0]} } ],
- [ media => join => ', ', split => sub {
- map $self->{media}{$_->{medium}} ? $_->{qty}.' '.mt("_med_$_->{medium}", $_->{qty}) : mt("_med_$_->{medium}",1), @{$_[0]}
- } ],
- [ resolution => serialize => sub { my $r = $self->{resolutions}[$_[0]][0]; $r =~ /^_/ ? mt($r) : $r } ],
+ [ platforms => join => ', ', split => sub { map $self->{platforms}{$_}, @{$_[0]} } ],
+ [ media => join => ', ', split => sub { map fmtmedia($_->{medium}, $_->{qty}), @{$_[0]} } ],
+ [ resolution => serialize => sub { $self->{resolutions}[$_[0]][0]; } ],
[ voiced => serialize => \&mtvoiced ],
[ ani_story => serialize => \&mtani ],
[ ani_ero => serialize => \&mtani ],
@@ -117,8 +115,8 @@ sub _infotable {
Tr;
td mt '_relinfo_type';
td;
- cssicon "rt$r->{type}", mt "_rtype_$r->{type}";
- txt ' '.mt '_relinfo_type_format', mt("_rtype_$r->{type}"), $r->{patch}?1:0;
+ cssicon "rt$r->{type}", $r->{type};
+ txt ' '.mt '_relinfo_type_format', ucfirst($r->{type}), $r->{patch}?1:0;
end;
end;
@@ -126,8 +124,8 @@ sub _infotable {
td mt '_relinfo_lang';
td;
for (@{$r->{languages}}) {
- cssicon "lang $_", mt "_lang_$_";
- txt ' '.mt("_lang_$_");
+ cssicon "lang $_", $self->{languages}{$_};
+ txt ' '.$self->{languages}{$_};
br if $_ ne $r->{languages}[$#{$r->{languages}}];
}
end;
@@ -143,8 +141,8 @@ sub _infotable {
td mt '_relinfo_platform', scalar @{$r->{platforms}};
td;
for(@{$r->{platforms}}) {
- cssicon $_, mt "_plat_$_";
- txt ' '.mt("_plat_$_");
+ cssicon $_, $self->{platforms}{$_};
+ txt ' '.$self->{platforms}{$_};
br if $_ ne $r->{platforms}[$#{$r->{platforms}}];
}
end;
@@ -154,17 +152,14 @@ sub _infotable {
if(@{$r->{media}}) {
Tr;
td mt '_relinfo_media', scalar @{$r->{media}};
- td join ', ', map
- $self->{media}{$_->{medium}} ? $_->{qty}.' '.mt("_med_$_->{medium}", $_->{qty}) : mt("_med_$_->{medium}",1),
- @{$r->{media}};
+ td join ', ', map fmtmedia($_->{medium}, $_->{qty}), @{$r->{media}};
end;
}
if($r->{resolution}) {
- my $res = $self->{resolutions}[$r->{resolution}][0];
Tr;
td mt '_relinfo_resolution';
- td $res =~ /^_/ ? mt $res : $res;
+ td $self->{resolutions}[$r->{resolution}][0];
end;
}
@@ -307,12 +302,12 @@ sub edit {
{ post => 'original', required => 0, default => '', maxlength => 250 },
{ post => 'gtin', required => 0, default => '0', template => 'gtin' },
{ post => 'catalog', required => 0, default => '', maxlength => 50 },
- { post => 'languages', multi => 1, enum => $self->{languages} },
+ { post => 'languages', multi => 1, enum => [ keys %{$self->{languages}} ] },
{ post => 'website', required => 0, default => '', maxlength => 250, template => 'weburl' },
{ post => 'released', required => 0, default => 0, template => 'uint' },
{ post => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} },
{ post => 'notes', required => 0, default => '', maxlength => 10240 },
- { post => 'platforms', required => 0, default => '', multi => 1, enum => $self->{platforms} },
+ { post => 'platforms', required => 0, default => '', multi => 1, enum => [ keys %{$self->{platforms}} ] },
{ post => 'media', required => 0, default => '' },
{ post => 'resolution',required => 0, default => 0, enum => [ 0..$#{$self->{resolutions}} ] },
{ post => 'voiced', required => 0, default => 0, enum => $self->{voiced} },
@@ -385,7 +380,7 @@ sub _form {
$self->htmlForm({ frm => $frm, action => $r ? "/r$r->{id}/".($copy ? 'copy' : 'edit') : "/v$v->{id}/add", editsum => 1 },
rel_geninfo => [ mt('_redit_form_geninfo'),
[ select => short => 'type', name => mt('_redit_form_type'),
- options => [ map [ $_, mt "_rtype_$_" ], @{$self->{release_types}} ] ],
+ options => [ map [ $_, $_ ], @{$self->{release_types}} ] ],
[ check => short => 'patch', name => mt('_redit_form_patch') ],
[ check => short => 'freeware', name => mt('_redit_form_freeware') ],
[ check => short => 'doujin', name => mt('_redit_form_doujin') ],
@@ -393,7 +388,7 @@ sub _form {
[ input => short => 'original', name => mt('_redit_form_original'), width => 450 ],
[ static => content => mt '_redit_form_original_note' ],
[ select => short => 'languages', name => mt('_redit_form_languages'), multi => 1,
- options => [ map [ $_, "$_ (".mt("_lang_$_").')' ], sort @{$self->{languages}} ] ],
+ options => [ map [ $_, "$_ ($self->{languages}{$_})" ], sort keys %{$self->{languages}} ] ],
[ input => short => 'gtin', name => mt('_redit_form_gtin') ],
[ input => short => 'catalog', name => mt('_redit_form_catalog') ],
[ input => short => 'website', name => mt('_redit_form_website') ],
@@ -407,7 +402,7 @@ sub _form {
rel_format => [ mt('_redit_form_format'),
[ select => short => 'resolution', name => mt('_redit_form_resolution'), options => [
- map [ $_, map /^_/?mt($_):$_, @{$self->{resolutions}[$_]} ], 0..$#{$self->{resolutions}} ] ],
+ map [ $_, @{$self->{resolutions}[$_]} ], 0..$#{$self->{resolutions}} ] ],
[ select => short => 'voiced', name => mt('_redit_form_voiced'), options => [
map [ $_, mtvoiced $_ ], @{$self->{voiced}} ] ],
[ select => short => 'ani_story', name => mt('_redit_form_ani_story'), options => [
@@ -419,13 +414,13 @@ sub _form {
[ static => nolabel => 1, content => sub {
h2 mt '_redit_form_platforms';
div class => 'platforms';
- for my $p (@{$self->{platforms}}) {
+ for my $p (sort keys %{$self->{platforms}}) {
span;
input type => 'checkbox', name => 'platforms', value => $p, id => $p,
$frm->{platforms} && grep($_ eq $p, @{$frm->{platforms}}) ? (checked => 'checked') : ();
label for => $p;
- cssicon $p, mt "_plat_$p";
- txt ' '.mt("_plat_$p");
+ cssicon $p, $self->{platforms}{$p};
+ txt ' '.$self->{platforms}{$p};;
end;
end;
}
@@ -529,9 +524,9 @@ sub browse {
end;
td class => 'tc2', $l->{minage} < 0 ? '' : minage $l->{minage};
td class => 'tc3';
- $_ ne 'oth' && cssicon $_, mt "_plat_$_" for (@{$l->{platforms}});
- cssicon "lang $_", mt "_lang_$_" for (@{$l->{languages}});
- cssicon "rt$l->{type}", mt "_rtype_$l->{type}";
+ $_ ne 'oth' && cssicon $_, $self->{platforms}{$_} for (@{$l->{platforms}});
+ cssicon "lang $_", $self->{languages}{$_} for (@{$l->{languages}});
+ cssicon "rt$l->{type}", mt $l->{type};
end;
td class => 'tc4';
a href => "/r$l->{id}", title => $l->{original}||$l->{title}, shorten $l->{title}, 90;
@@ -557,8 +552,8 @@ sub _fil_compat {
my $self = shift;
my %c;
my $f = $self->formValidate(
- { get => 'ln', required => 0, multi => 1, default => '', enum => $self->{languages} },
- { get => 'pl', required => 0, multi => 1, default => '', enum => $self->{platforms} },
+ { get => 'ln', required => 0, multi => 1, default => '', enum => [ keys %{$self->{languages}} ] },
+ { get => 'pl', required => 0, multi => 1, default => '', enum => [ keys %{$self->{platforms}} ] },
{ get => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] },
{ get => 'tp', required => 0, default => '', enum => [ '', @{$self->{release_types}} ] },
{ get => 'pa', required => 0, default => 0, enum => [ 0..2 ] },