diff options
author | Yorhel <git@yorhel.nl> | 2016-01-19 20:29:40 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2016-01-20 21:16:55 +0100 |
commit | a6836df277867d73a71c55797984c947449772cc (patch) | |
tree | c72a326dd844c3c23a932dc76dc159200c1dfcdb /lib/VNDB/Handler | |
parent | 0caed2e7674e8ee7419365e76f86d06c33b8c8aa (diff) |
L10N: Intern all VNDB::Util::* stuff
With some related edits in other parts of the code, mostly due to
interface changes to htmlRevision() and htmlFormError().
Trivial replacements were automated by a super awesome script.
Diffstat (limited to 'lib/VNDB/Handler')
-rw-r--r-- | lib/VNDB/Handler/Chars.pm | 50 | ||||
-rw-r--r-- | lib/VNDB/Handler/Discussions.pm | 6 | ||||
-rw-r--r-- | lib/VNDB/Handler/Producers.pm | 18 | ||||
-rw-r--r-- | lib/VNDB/Handler/Releases.pm | 44 | ||||
-rw-r--r-- | lib/VNDB/Handler/Staff.pm | 23 | ||||
-rw-r--r-- | lib/VNDB/Handler/Tags.pm | 9 | ||||
-rw-r--r-- | lib/VNDB/Handler/Traits.pm | 11 | ||||
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 22 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNEdit.pm | 8 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 30 |
10 files changed, 111 insertions, 110 deletions
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm index 087e44cf..e11588b4 100644 --- a/lib/VNDB/Handler/Chars.pm +++ b/lib/VNDB/Handler/Chars.pm @@ -35,29 +35,29 @@ sub page { if($rev) { my $prev = $rev && $rev > 1 && $self->dbCharGetRev(id => $id, rev => $rev-1, what => 'extended traits vns')->[0]; $self->htmlRevision('c', $prev, $r, - [ name => diff => 1 ], - [ original => diff => 1 ], - [ alias => diff => qr/[ ,\n\.]/ ], - [ desc => diff => qr/[ ,\n\.]/ ], - [ gender => serialize => sub { $self->{genders}{$_[0]} } ], - [ b_month => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ b_day => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ s_bust => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ s_waist => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ s_hip => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ height => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ weight => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ bloodt => serialize => sub { $self->{blood_types}{$_[0]} } ], - [ main => htmlize => sub { $_[0] ? sprintf '<a href="/c%d">c%d</a>', $_[0], $_[0] : mt '_revision_empty' } ], - [ main_spoil=> serialize => sub { mt "_spoil_$_[0]" } ], - [ image => htmlize => sub { + [ name => 'Name', diff => 1 ], + [ original => 'Original name', diff => 1 ], + [ alias => 'Aliases', diff => qr/[ ,\n\.]/ ], + [ desc => 'Description', diff => qr/[ ,\n\.]/ ], + [ gender => 'Gender', serialize => sub { $self->{genders}{$_[0]} } ], + [ b_month => 'Birthday/month',serialize => sub { $_[0]||mt '_revision_empty' } ], + [ b_day => 'Birthday/day', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ s_bust => 'Bust', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ s_waist => 'Waist', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ s_hip => 'Hip', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ height => 'Height', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ weight => 'Weight', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ bloodt => 'Blood type', serialize => sub { $self->{blood_types}{$_[0]} } ], + [ main => 'Main character',htmlize => sub { $_[0] ? sprintf '<a href="/c%d">c%d</a>', $_[0], $_[0] : mt '_revision_empty' } ], + [ main_spoil=> 'Spoiler', serialize => sub { mt "_spoil_$_[0]" } ], + [ image => 'Image', htmlize => sub { return $_[0] ? sprintf '<img src="%s" />', imgurl(ch => $_[0]) : mt '_chdiff_image_none'; }], - [ traits => join => '<br />', split => sub { + [ traits => 'Traits', join => '<br />', split => sub { map sprintf('%s<a href="/i%d">%s</a> (%s)', $_->{group}?qq|<b class="grayedout">$_->{groupname} / </b> |:'', $_->{tid}, $_->{name}, mt("_spoil_$_->{spoil}")), @{$_[0]} }], - [ vns => join => '<br />', split => sub { + [ vns => 'Visual novels', join => '<br />', split => sub { map sprintf('<a href="/v%d">v%d</a> %s %s (%s)', $_->{vid}, $_->{vid}, $_->{rid}?sprintf('[<a href="/r%d">r%d</a>]', $_->{rid}, $_->{rid}):'', $self->{char_roles}{$_->{role}}, mt("_spoil_$_->{spoil}")), @{$_[0]}; @@ -314,8 +314,10 @@ sub edit { # validate main character if(!$frm->{_err} && $frm->{main}) { my $m = $self->dbCharGet(id => $frm->{main}, what => 'extended')->[0]; - push @{$frm->{_err}}, 'mainchar' if !$m || $m->{main} || $r && !$copy && - ($m->{id} == $r->{id} || $self->dbCharGet(instance => $r->{id})->[0]); + push @{$frm->{_err}}, 'Invalid main character. Make sure the ID is correct,' + .' that the main character itself is not an instance of an other character,' + .' and that this entry is not used as a main character elsewhere.' + if !$m || $m->{main} || $r && !$copy && ($m->{id} == $r->{id} || $self->dbCharGet(instance => $r->{id})->[0]); } my(@traits, @vns); @@ -333,7 +335,7 @@ sub edit { # check for changes my $same = $id && !grep $frm->{$_} ne $b4{$_}, keys %b4; return $self->resRedirect("/c$id", 'post') if !$copy && $same; - $frm->{_err} = ['nochanges'] if $copy && $same; + $frm->{_err} = ["No changes, please don't create an entry that is fully identical to another"] if $copy && $same; } if(!$frm->{_err}) { @@ -441,14 +443,14 @@ sub _uploadimage { if($frm->{_err} || !$self->reqPost('img')) { return 0 if !$frm->{image}; - push @{$frm->{_err}}, 'invalidimgid' if !-s imgpath(ch => $frm->{image}); + push @{$frm->{_err}}, 'No image with that ID' if !-s imgpath(ch => $frm->{image}); return $frm->{image}; } # perform some elementary checks my $imgdata = $self->reqUploadRaw('img'); - $frm->{_err} = [ 'noimage' ] if $imgdata !~ /^(\xff\xd8|\x89\x50)/; # JPG or PNG headers - $frm->{_err} = [ 'toolarge' ] if length($imgdata) > 1024*1024; + $frm->{_err} = [ 'Image must be in JPEG or PNG format' ] if $imgdata !~ /^(\xff\xd8|\x89\x50)/; # JPG or PNG headers + $frm->{_err} = [ 'Image is too large, only 1MB allowed' ] if length($imgdata) > 1024*1024; return undef if $frm->{_err}; # resize/compress diff --git a/lib/VNDB/Handler/Discussions.pm b/lib/VNDB/Handler/Discussions.pm index c2dea192..fe96374a 100644 --- a/lib/VNDB/Handler/Discussions.pm +++ b/lib/VNDB/Handler/Discussions.pm @@ -193,11 +193,11 @@ sub edit { $frm->{_err} = 1 if $frm->{fullreply}; # check for double-posting - push @{$frm->{_err}}, 'doublepost' if !$num && !$frm->{_err} && $self->dbPostGet( + push @{$frm->{_err}}, 'Please wait 30 seconds before making another post' if !$num && !$frm->{_err} && $self->dbPostGet( uid => $self->authInfo->{id}, tid => $tid, mindate => time - 30, results => 1, $tid ? () : (num => 1))->[0]{num}; # Don't allow regular users to create more than 10 threads a day - push @{$frm->{_err}}, 'threadthrottle' if + push @{$frm->{_err}}, 'You can only create 5 threads every 24 hours' if !$tid && !$self->authCan('boardmod') && @{$self->dbPostGet(uid => $self->authInfo->{id}, mindate => time - 24*3600, num => 1)} >= 5; @@ -207,7 +207,7 @@ sub edit { for (split /[ ,]/, $frm->{boards}) { my($ty, $id) = ($1, $2) if /^([a-z]{1,2})([0-9]*)$/; push @boards, [ $ty, $id ]; - push @{$frm->{_err}}, [ 'boards', 'wrongboard', $_ ] if + push @{$frm->{_err}}, "Wrong board: $_" if !$ty || !$self->{discussion_boards}{$ty} || $ty eq 'an' && ($id || !$self->authCan('boardmod')) || $ty eq 'db' && $id diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm index a8bf371f..4d8c985d 100644 --- a/lib/VNDB/Handler/Producers.pm +++ b/lib/VNDB/Handler/Producers.pm @@ -56,17 +56,17 @@ sub page { if($rev) { my $prev = $rev && $rev > 1 && $self->dbProducerGetRev(id => $pid, rev => $rev-1, what => 'extended relations')->[0]; $self->htmlRevision('p', $prev, $p, - [ type => serialize => sub { $self->{producer_types}{$_[0]} } ], - [ name => diff => 1 ], - [ original => diff => 1 ], - [ alias => diff => qr/[ ,\n\.]/ ], - [ lang => serialize => sub { "$_[0] ($self->{languages}{$_[0]})" } ], - [ website => diff => 1 ], - [ l_wp => htmlize => sub { + [ type => 'Type', serialize => sub { $self->{producer_types}{$_[0]} } ], + [ name => 'Name (romaji)', diff => 1 ], + [ original => 'Original name', diff => 1 ], + [ alias => 'Aliases', diff => qr/[ ,\n\.]/ ], + [ lang => 'Language', serialize => sub { "$_[0] ($self->{languages}{$_[0]})" } ], + [ website => 'Website', diff => 1 ], + [ l_wp => 'Wikipedia link',htmlize => sub { $_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink' }], - [ desc => diff => qr/[ ,\n\.]/ ], - [ relations => join => '<br />', split => sub { + [ desc => 'Description', diff => qr/[ ,\n\.]/ ], + [ relations => 'Relations', join => '<br />', split => sub { my @r = map sprintf('%s: <a href="/p%d" title="%s">%s</a>', $self->{prod_relations}{$_->{relation}}[1], $_->{id}, xml_escape($_->{original}||$_->{name}), xml_escape shorten $_->{name}, 40 ), sort { $a->{id} <=> $b->{id} } @{$_[0]}; diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 531c878e..436ace91 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -38,29 +38,29 @@ sub page { what => 'vn extended producers platforms media changes' )->[0]; $self->htmlRevision('r', $prev, $r, - [ vn => join => '<br />', split => sub { + [ vn => 'Relations', join => '<br />', split => sub { map sprintf('<a href="/v%d" title="%s">%s</a>', $_->{vid}, $_->{original}||$_->{title}, shorten $_->{title}, 50), @{$_[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' } ], - [ title => diff => 1 ], - [ original => diff => 1 ], - [ gtin => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ catalog => serialize => sub { $_[0]||mt '_revision_empty' } ], - [ languages => join => ', ', split => sub { map $self->{languages}{$_}, @{$_[0]} } ], - [ 'website' ], - [ released => htmlize => \&fmtdatestr ], - [ minage => serialize => \&minage ], - [ notes => diff => qr/[ ,\n\.]/ ], - [ 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 => sub { $self->{voiced}[$_[0]] } ], - [ ani_story => serialize => sub { $self->{animated}[$_[0]] } ], - [ ani_ero => serialize => sub { $self->{animated}[$_[0]] } ], - [ producers => join => '<br />', split => sub { + [ type => 'Type' ], + [ patch => 'Patch', serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ], + [ freeware => 'Freeware', serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ], + [ doujin => 'Doujin', serialize => sub { mt $_[0] ? '_revision_yes' : '_revision_no' } ], + [ title => 'Title (romaji)', diff => 1 ], + [ original => 'Original title', diff => 1 ], + [ gtin => 'JAN/UPC/EAN', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ catalog => 'Catalog number', serialize => sub { $_[0]||mt '_revision_empty' } ], + [ languages => 'Language', join => ', ', split => sub { map $self->{languages}{$_}, @{$_[0]} } ], + [ website => 'Website' ], + [ released => 'Release date', htmlize => \&fmtdatestr ], + [ minage => 'Age rating', serialize => \&minage ], + [ notes => 'Notes', diff => qr/[ ,\n\.]/ ], + [ platforms => 'Platforms', join => ', ', split => sub { map $self->{platforms}{$_}, @{$_[0]} } ], + [ media => 'Media', join => ', ', split => sub { map fmtmedia($_->{medium}, $_->{qty}), @{$_[0]} } ], + [ resolution => 'Resolution', serialize => sub { $self->{resolutions}[$_[0]][0]; } ], + [ voiced => 'Voiced', serialize => sub { $self->{voiced}[$_[0]] } ], + [ ani_story => 'Story animation', serialize => sub { $self->{animated}[$_[0]] } ], + [ ani_ero => 'Ero animation', serialize => sub { $self->{animated}[$_[0]] } ], + [ producers => 'Producers', join => '<br />', split => sub { map sprintf('<a href="/p%d" title="%s">%s</a> (%s)', $_->{id}, $_->{original}||$_->{name}, shorten($_->{name}, 50), join(', ', $_->{developer} ? mt '_reldiff_developer' :(), $_->{publisher} ? mt '_reldiff_publisher' :()) ), @{$_[0]}; @@ -341,7 +341,7 @@ sub edit { (join(',', sort @{$b4{languages}}) eq join(',', sort @{$frm->{languages}})) && !grep !/^(platforms|producers|vn|languages)$/ && $frm->{$_} ne $b4{$_}, keys %b4; return $self->resRedirect("/r$rid", 'post') if !$copy && $same; - $frm->{_err} = [ 'nochanges' ] if $copy && $same; + $frm->{_err} = [ "No changes, please don't create an entry that is fully identical to another" ] if $copy && $same; } if(!$frm->{_err}) { diff --git a/lib/VNDB/Handler/Staff.pm b/lib/VNDB/Handler/Staff.pm index d4de2bf9..baaa059e 100644 --- a/lib/VNDB/Handler/Staff.pm +++ b/lib/VNDB/Handler/Staff.pm @@ -34,18 +34,18 @@ sub page { if($rev) { my $prev = $rev && $rev > 1 && $self->dbStaffGetRev(id => $id, rev => $rev-1, what => 'extended aliases')->[0]; $self->htmlRevision('s', $prev, $s, - [ name => diff => 1 ], - [ original => diff => 1 ], - [ gender => serialize => sub { $self->{genders}{$_[0]} } ], - [ lang => serialize => sub { "$_[0] ($self->{languages}{$_[0]})" } ], - [ l_site => diff => 1 ], - [ l_wp => htmlize => sub { + [ name => 'Name (romaji)', diff => 1 ], + [ original => 'Original name', diff => 1 ], + [ gender => 'Gender', serialize => sub { $self->{genders}{$_[0]} } ], + [ lang => 'Language', serialize => sub { "$_[0] ($self->{languages}{$_[0]})" } ], + [ l_site => 'Official page', diff => 1 ], + [ l_wp => 'Wikipedia link', htmlize => sub { $_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink' }], - [ l_twitter => diff => 1 ], - [ l_anidb => serialize => sub { $_[0] // '' } ], - [ desc => diff => qr/[ ,\n\.]/ ], - [ aliases => join => '<br />', split => sub { + [ l_twitter => 'Twitter account', diff => 1 ], + [ l_anidb => 'AniDB creator ID', serialize => sub { $_[0] // '' } ], + [ desc => 'Description', diff => qr/[ ,\n\.]/ ], + [ aliases => 'Aliases', join => '<br />', split => sub { map xml_escape(sprintf('%s%s', $_->{name}, $_->{original} ? ' ('.$_->{original}.')' : '')), @{$_[0]}; }], ); @@ -229,7 +229,8 @@ sub edit { # Make sure no aliases that have been linked to a VN are removed. my %new_aliases = map +($_, 1), grep $_, $frm->{primary}, map $_->{aid}, @{$frm->{aliases}}; - $frm->{_err} = [ 'usedalias' ] if grep !$new_aliases{$_->{aid}}, @{$s->{roles}}, @{$self->{cast}}; + $frm->{_err} = [ "Can't remove an alias that is still linked to a VN." ] + if grep !$new_aliases{$_->{aid}}, @{$s->{roles}}, @{$self->{cast}}; } if(!$frm->{_err}) { diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm index bb6dd2d4..64c69caa 100644 --- a/lib/VNDB/Handler/Tags.pm +++ b/lib/VNDB/Handler/Tags.pm @@ -165,12 +165,9 @@ sub tagedit { my @parents = split /[\t\s]*,[\t\s]*/, $frm->{parents}; my @merge = split /[\t\s]*,[\t\s]*/, $frm->{merge}; if(!$frm->{_err}) { - my $c = $self->dbTagGet(name => $frm->{name}, noid => $tag); - push @{$frm->{_err}}, [ 'name', 'tagexists', $c->[0] ] if @$c; - for (@aliases) { - $c = $self->dbTagGet(name => $_, noid => $tag); - push @{$frm->{_err}}, [ 'alias', 'tagexists', $c->[0] ] if @$c; - } + my @dups = @{$self->dbTagGet(name => $frm->{name}, noid => $tag)}; + push @dups, @{$self->dbTagGet(name => $_, noid => $tag)} for @aliases; + push @{$frm->{_err}}, \sprintf 'Tag <a href="/g%d">%s</a> already exists!', $_->{id}, xml_escape $_->{name} for @dups; for(@parents, @merge) { my $c = $self->dbTagGet(name => $_, noid => $tag); push @{$frm->{_err}}, [ 'parents', 'func', [ 0, mt '_tagedit_err_notfound', $_ ]] if !@$c; diff --git a/lib/VNDB/Handler/Traits.pm b/lib/VNDB/Handler/Traits.pm index 4b106fa2..979ea0d6 100644 --- a/lib/VNDB/Handler/Traits.pm +++ b/lib/VNDB/Handler/Traits.pm @@ -3,7 +3,7 @@ package VNDB::Handler::Traits; use strict; use warnings; -use TUWF ':html', ':xml', 'html_escape'; +use TUWF ':html', ':xml', 'html_escape', 'xml_escape'; use VNDB::Func; @@ -158,12 +158,9 @@ sub traitedit { } } if(!$frm->{_err}) { - my $c = $self->dbTraitGet(name => $frm->{name}, noid => $trait, group => $group); - push @{$frm->{_err}}, [ 'name', 'traitexists', $c->[0] ] if @$c; - for (split /[\t\s]*\n[\t\s]*/, $frm->{alias}) { - $c = $self->dbTraitGet(name => $_, noid => $trait, group => $group); - push @{$frm->{_err}}, [ 'alias', 'traitexists', $c->[0] ] if @$c; - } + my @dups = @{$self->dbTraitGet(name => $frm->{name}, noid => $trait, group => $group)}; + push @dups, @{$self->dbTraitGet(name => $_, noid => $trait, group => $group)} for split /[\t\s]*\n[\t\s]*/, $frm->{alias}; + push @{$frm->{_err}}, \sprintf 'Trait <a href="/c%d">%s</a> already exists within the same group.', $_->{id}, xml_escape $_->{name} for @dups; } if(!$frm->{_err}) { diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 8c72ba82..989b5286 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -168,7 +168,7 @@ sub login { if(!$frm->{_err}) { $frm->{usrname} = lc $frm->{usrname}; return if $self->authLogin($frm->{usrname}, $frm->{usrpass}, $ref); - $frm->{_err} = [ 'login_failed' ]; + $frm->{_err} = [ 'Invalid username or password' ]; $self->dbThrottleSet(norm_ip($self->reqIP), $tm+$self->{login_throttle}[0]); } } @@ -204,7 +204,7 @@ sub newpass { $frm = $self->formValidate({ post => 'mail', template => 'email' }); if(!$frm->{_err}) { $u = $self->dbUserGet(mail => $frm->{mail})->[0]; - $frm->{_err} = [ 'nomail' ] if !$u || !$u->{id}; + $frm->{_err} = [ 'No user found with that email address' ] if !$u || !$u->{id}; } if(!$frm->{_err}) { my %o; @@ -264,7 +264,7 @@ sub setpass { { post => 'usrpass', minlength => 4, maxlength => 64, template => 'ascii' }, { post => 'usrpass2', minlength => 4, maxlength => 64, template => 'ascii' }, ); - push @{$frm->{_err}}, 'passmatch' if $frm->{usrpass} ne $frm->{usrpass2}; + push @{$frm->{_err}}, 'Passwords do not match' if $frm->{usrpass} ne $frm->{usrpass2}; if(!$frm->{_err}) { my %o = (email_confirmed => 1); @@ -298,14 +298,18 @@ sub register { { post => 'answer', template => 'uint' }, ); my $num = $self->{stats}{[qw|vn releases producers|]->[ $frm->{type} - 1 ]}; - push @{$frm->{_err}}, 'notanswer' if !$frm->{_err} && ($frm->{answer} > $num || $frm->{answer} < $num*0.995); - push @{$frm->{_err}}, 'usrexists' if $frm->{usrname} eq 'anonymous' || !$frm->{_err} && $self->dbUserGet(username => $frm->{usrname})->[0]{id}; - push @{$frm->{_err}}, 'mailexists' if !$frm->{_err} && $self->dbUserGet(mail => $frm->{mail})->[0]{id}; + push @{$frm->{_err}}, 'Question was not correctly answered. Are you sure you are a human?' + if !$frm->{_err} && ($frm->{answer} > $num || $frm->{answer} < $num*0.995); + push @{$frm->{_err}}, 'Someone already has this username, please choose another name' + if $frm->{usrname} eq 'anonymous' || !$frm->{_err} && $self->dbUserGet(username => $frm->{usrname})->[0]{id}; + push @{$frm->{_err}}, 'Someone already registered with that email address' + if !$frm->{_err} && $self->dbUserGet(mail => $frm->{mail})->[0]{id}; # Use /32 match for IPv4 and /48 for IPv6. The /48 is fairly broad, so some # users may have to wait a bit before they can register... my $ip = $self->reqIP; - push @{$frm->{_err}}, 'oneaday' if !$frm->{_err} && $self->dbUserGet(ip => $ip =~ /:/ ? "$ip/48" : $ip, registered => time-24*3600)->[0]{id}; + push @{$frm->{_err}}, 'You can only register one account from the same IP within 24 hours' + if !$frm->{_err} && $self->dbUserGet(ip => $ip =~ /:/ ? "$ip/48" : $ip, registered => time-24*3600)->[0]{id}; if(!$frm->{_err}) { my($token, $pass) = $self->authPrepareReset(); @@ -382,9 +386,9 @@ sub edit { { post => 'skin', required => 0, default => $self->{skin_default}, enum => [ keys %{$self->{skins}} ] }, { post => 'customcss', required => 0, maxlength => 2000, default => '' }, ); - push @{$frm->{_err}}, 'passmatch' + push @{$frm->{_err}}, 'Passwords do not match' if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2}); - push @{$frm->{_err}}, 'invalidpass' + push @{$frm->{_err}}, 'Invalid password' if !($self->authInfo->{id} != $u->{id} && $self->authCan('usermod')) && ($frm->{usrpass} || $frm->{usrpass2}) && !$self->authCheck($u->{username}, $frm->{curpass}); diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm index 870f9fb8..1319cd43 100644 --- a/lib/VNDB/Handler/VNEdit.pm +++ b/lib/VNDB/Handler/VNEdit.pm @@ -148,7 +148,7 @@ sub edit { $frm->{alias} = join "\n", map { s/^ +//g; s/ +$//g; $_?($_):() } split /\n/, $frm->{alias}; # throw error on duplicate/existing aliases my %alias = map +(lc($_),1), $frm->{title}, $frm->{original}, map +($_->{title}, $_->{original}), @$r; - my @e = map $alias{ lc($_) }++ ? [ 'alias', 'existingalias', $_ ] : (), split /\n/, $frm->{alias}; + my @e = map $alias{ lc($_) }++ ? "Duplicate alias '$_', or the alias is already used as a release title" : (), split /\n/, $frm->{alias}; $frm->{_err} = \@e if @e; } if(!$nosubmit && !$frm->{_err}) { @@ -210,14 +210,14 @@ sub _uploadimage { if($frm->{_err} || !$self->reqPost('img')) { return 0 if !$frm->{image}; - push @{$frm->{_err}}, 'invalidimgid' if !-s imgpath(cv => $frm->{image}); + push @{$frm->{_err}}, 'No image with that ID' if !-s imgpath(cv => $frm->{image}); return $frm->{image}; } # perform some elementary checks my $imgdata = $self->reqUploadRaw('img'); - $frm->{_err} = [ 'noimage' ] if $imgdata !~ /^(\xff\xd8|\x89\x50)/; # JPG or PNG headers - $frm->{_err} = [ 'toolarge' ] if length($imgdata) > 5*1024*1024; + $frm->{_err} = [ 'Image must be in JPEG or PNG format' ] if $imgdata !~ /^(\xff\xd8|\x89\x50)/; # JPG or PNG headers + $frm->{_err} = [ 'Image is too large, only 5MB allowed' ] if length($imgdata) > 5*1024*1024; return undef if $frm->{_err}; # resize/compress diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index 89cd9940..70ba3402 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -500,28 +500,28 @@ sub _revision { )->[0]; $self->htmlRevision('v', $prev, $v, - [ title => diff => 1 ], - [ original => diff => 1 ], - [ alias => diff => qr/[ ,\n\.]/ ], - [ desc => diff => qr/[ ,\n\.]/ ], - [ length => serialize => sub { fmtvnlen $_[0] } ], - [ l_wp => htmlize => sub { + [ title => 'Title (romaji)', diff => 1 ], + [ original => 'Original title', diff => 1 ], + [ alias => 'Alias', diff => qr/[ ,\n\.]/ ], + [ desc => 'Description', diff => qr/[ ,\n\.]/ ], + [ length => 'Length', serialize => sub { fmtvnlen $_[0] } ], + [ l_wp => 'Wikipedia link', htmlize => sub { $_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink' }], - [ l_encubed => htmlize => sub { + [ l_encubed => 'Encubed tag', htmlize => sub { $_[0] ? sprintf '<a href="http://novelnews.net/tag/%s/">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink' }], - [ l_renai => htmlize => sub { + [ l_renai => 'Renai.us link', htmlize => sub { $_[0] ? sprintf '<a href="http://renai.us/game/%s.shtml">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink' }], - [ credits => join => '<br />', split => sub { + [ credits => 'Credits', join => '<br />', split => sub { my @r = map sprintf('<a href="/s%d" title="%s">%s</a> [%s]%s', $_->{id}, xml_escape($_->{original}||$_->{name}), xml_escape($_->{name}), xml_escape($self->{staff_roles}{$_->{role}}), $_->{note} ? ' ['.xml_escape($_->{note}).']' : ''), sort { $a->{id} <=> $b->{id} || $a->{role} cmp $b->{role} } @{$_[0]}; return @r ? @r : (mt '_revision_empty'); }], - [ seiyuu => join => '<br />', split => sub { + [ seiyuu => 'Seiyuu', join => '<br />', split => sub { my @r = map sprintf('<a href="/s%d" title="%s">%s</a> %s%s', $_->{id}, xml_escape($_->{original}||$_->{name}), xml_escape($_->{name}), mt('_staff_as', xml_escape($_->{cname})), @@ -529,18 +529,18 @@ sub _revision { sort { $a->{id} <=> $b->{id} || $a->{cid} <=> $b->{cid} || $a->{note} cmp $b->{note} } @{$_[0]}; return @r ? @r : (mt '_revision_empty'); }], - [ relations => join => '<br />', split => sub { + [ relations => 'Relations', join => '<br />', split => sub { my @r = map sprintf('[%s] %s: <a href="/v%d" title="%s">%s</a>', mt($_->{official} ? '_vndiff_rel_official' : '_vndiff_rel_unofficial'), $self->{vn_relations}{$_->{relation}}[1], $_->{id}, xml_escape($_->{original}||$_->{title}), xml_escape shorten $_->{title}, 40 ), sort { $a->{id} <=> $b->{id} } @{$_[0]}; return @r ? @r : (mt '_revision_empty'); }], - [ anime => join => ', ', split => sub { + [ anime => 'Anime', join => ', ', split => sub { my @r = map sprintf('<a href="http://anidb.net/a%d">a%1$d</a>', $_->{id}), sort { $a->{id} <=> $b->{id} } @{$_[0]}; return @r ? @r : (mt '_revision_empty'); }], - [ screenshots => join => '<br />', split => sub { + [ screenshots => 'Screenshots', join => '<br />', split => sub { my @r = map sprintf('[%s] <a href="%s" data-iv="%dx%d">%d</a> (%s)', $_->{rid} ? qq|<a href="/r$_->{rid}">r$_->{rid}</a>| : 'no release', imgurl(sf => $_->{id}), $_->{width}, $_->{height}, $_->{id}, @@ -548,7 +548,7 @@ sub _revision { ), @{$_[0]}; return @r ? @r : (mt '_revision_empty'); }], - [ image => htmlize => sub { + [ image => 'Image', htmlize => sub { my $url = imgurl(cv => $_[0]); if($_[0]) { return $_[1]->{img_nsfw} && !$self->authPref('show_nsfw') ? "<a href=\"$url\">".mt('_vndiff_image_nsfw').'</a>' : "<img src=\"$url\" />"; @@ -556,7 +556,7 @@ sub _revision { return mt '_vndiff_image_none'; } }], - [ img_nsfw => serialize => sub { mt $_[0] ? '_vndiff_nsfw_notsafe' : '_vndiff_nsfw_safe' } ], + [ img_nsfw => 'Image NSFW', serialize => sub { mt $_[0] ? '_vndiff_nsfw_notsafe' : '_vndiff_nsfw_safe' } ], ); } |