summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/lang.txt110
-rw-r--r--data/script.js14
-rw-r--r--lib/VNDB/Func.pm13
-rw-r--r--lib/VNDB/Handler/Chars.pm6
-rw-r--r--lib/VNDB/Handler/Releases.pm22
-rw-r--r--lib/VNDB/Handler/ULists.pm10
-rw-r--r--lib/VNDB/Handler/VNEdit.pm2
-rw-r--r--lib/VNDB/Handler/VNPage.pm26
8 files changed, 66 insertions, 137 deletions
diff --git a/data/lang.txt b/data/lang.txt
index 3bd0e19c..07370884 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -103,6 +103,20 @@ ends with ']'. The following options are supported:
#############################################################################
# data/global.pl - used in many places
+# Generic value to indicate a "this field is unknown".
+
+:_unknown
+en : Unknown
+ru : Неизвестно
+cs : Není známo
+hu : Ismeretlen
+nl : Onbekend
+de : Unbekannt
+es : Desconocido
+tr : Bilinmiyor
+uk : Невідомо
+it : Sconosciuto
+
# languages
@@ -1401,18 +1415,6 @@ it : widescreen
# 'Voiced' information for releases
-:_voiced_0
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_voiced_1
en : Not voiced
ru : Нет озвучки
@@ -1464,18 +1466,6 @@ it : Voci complete
# 'Animated' information for releases
-:_animated_0
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_animated_1
en : No animations
ru : Без анимации
@@ -1650,18 +1640,6 @@ it : capolavoro
# VN lengths
-:_vnlength_0
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuta
-
:_vnlength_1
en : Very short[index,_1,, (< 2 hours), (OMGWTFOTL~, Jouka no Monshou~, The world to reverse)]
ru : Крошечная[index,_1,, (< 2 часов), (OMGWTFOTL~, Jouka no Monshou~, The world to reverse)]
@@ -1725,18 +1703,6 @@ it : Molto lunga[index,_1,, (> 50 ore), (Clannad~, Umineko~, Fate/Stay Night)]
# VN list statuses
-:_rlist_status_0
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_rlist_status_1
en : Pending
ru : Ожидается
@@ -1785,18 +1751,6 @@ tr : Silindi
uk : Видалена
it : Cancellato
-:_vnlist_status_0
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_vnlist_status_1
en : Playing
ru : В процессе
@@ -1887,18 +1841,6 @@ it : Tecnico
# Blood types
-:_bloodt_unknown
-en : Unknown
-ru : Неизвестна
-cs : Není znám
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_bloodt_o
en : O
ru : 1
@@ -2323,18 +2265,6 @@ it : [_1] sec fa
# Age ratings
-:_minage_null
-en : Unknown
-ru : Неизвестно
-cs : Není známo
-hu : Ismeretlen
-nl : Onbekend
-de : Unbekannt
-es : Desconocido
-tr : Bilinmiyor
-uk : Невідомо
-it : Sconosciuto
-
:_minage_all
en : All ages
ru : Для всех
@@ -14338,18 +14268,6 @@ tr*:
uk*:
it*:
-:_vnpage_release_unknown
-en : Unknown
-ru*:
-cs*:
-hu*:
-nl*:
-de : Unbekannt
-es*:
-tr*:
-uk*:
-it*:
-
:_vnpage_rel_none
en : We don't have any information about releases of this visual novel yet...
ru : У нас пока нет информации о выпусках этой новеллы...
diff --git a/data/script.js b/data/script.js
index 9ca18790..1b3dfc9e 100644
--- a/data/script.js
+++ b/data/script.js
@@ -392,7 +392,7 @@ function rlDropDown(lnk) {
var o = tag('ul', null);
for(var i=0; i<rlist_status.length; i++) {
- var val = mt('_rlist_status_'+rlist_status[i]); // l10n /_rlist_status_\d+/
+ var val = rlist_status[i] == 0 ? mt('_unknown') : mt('_rlist_status_'+rlist_status[i]); // l10n /_rlist_status_\d+/
if(st == val)
o.appendChild(tag('li', tag('i', val)));
else
@@ -411,7 +411,7 @@ function rlMod() {
ddHide();
setContent(lnk, tag('b', {'class': 'grayedout'}, mt('_js_loading')));
ajax('/xml/rlist.xml?formcode='+code+';id='+this.rl_rid+';e='+act, function(hr) {
- setText(lnk, act == -1 ? '--' : mt('_rlist_status_'+act));
+ setText(lnk, act == -1 ? '--' : act == 0 ? mt('_unknown') : mt('_rlist_status_'+act));
});
return false;
}
@@ -2490,7 +2490,7 @@ function filChars() {
gend[i] = [ gend[i], mt('_gender_'+gend[i]) ];
var bloodt = blood_types;
for(var i=0; i<bloodt.length; i++) // l10n /_bloodt_.+/
- bloodt[i] = [ bloodt[i], mt('_bloodt_'+bloodt[i]) ];
+ bloodt[i] = [ bloodt[i], bloodt[i] == 'unknown' ? mt('_unknown') : mt('_bloodt_'+bloodt[i]) ];
var roles = char_roles;
for(var i=0; i<roles.length; i++) // l10n /_charrole_.+/
roles[i] = [ roles[i], mt('_charrole_'+roles[i]) ];
@@ -2534,7 +2534,7 @@ function filReleases() {
types[i] = [ types[i], mt('_rtype_'+types[i]) ];
var ages = age_ratings;
for(var i=0; i<ages.length; i++)
- ages[i] = [ ages[i], ages[i] == -1 ? mt('_minage_null') : ages[i] == 0 ? mt('_minage_all') : mt('_minage_age', ages[i]) ];
+ ages[i] = [ ages[i], ages[i] == -1 ? mt('_unknown') : ages[i] == 0 ? mt('_minage_all') : mt('_minage_age', ages[i]) ];
var lang = languages;
for(var i=0; i<lang.length; i++) // l10n /_lang_.+/
lang[i] = [ lang[i], mt('_lang_'+lang[i]) ];
@@ -2546,10 +2546,10 @@ function filReleases() {
med[i] = [ med[i], mt('_med_'+med[i]) ];
var voi = voiced;
for(var i=0; i<voi.length; i++) // l10n /_voiced_.+/
- voi[i] = [ voi[i], mt('_voiced_'+voi[i]) ];
+ voi[i] = [ voi[i], voi[i] == 0 ? mt('_unknown') : mt('_voiced_'+voi[i]) ];
var ani = animated;
for(var i=0; i<ani.length; i++) // l10n /_animated_.+/
- ani[i] = [ ani[i], mt('_animated_'+ani[i]) ];
+ ani[i] = [ ani[i], ani[i] == 0 ? mt('_unknown') : mt('_animated_'+ani[i]) ];
return [
mt('_rbrowse_fil_title'),
[ mt('_rbrowse_general'),
@@ -2584,7 +2584,7 @@ function filVN() {
plat[i] = [ plat[i], mt('_plat_'+plat[i]) ];
var len = vn_lengths;
for(var i=0; i<len.length; i++) // l10n /_vnlength_.+/
- len[i] = [ len[i], mt('_vnlength_'+len[i]) ];
+ len[i] = [ len[i], len[i] == 0 ? mt('_unknown') : mt('_vnlength_'+len[i]) ];
var ontagpage = location.pathname.indexOf('/v/') < 0;
diff --git a/lib/VNDB/Func.pm b/lib/VNDB/Func.pm
index 4f564a18..54acfe4f 100644
--- a/lib/VNDB/Func.pm
+++ b/lib/VNDB/Func.pm
@@ -10,6 +10,7 @@ use VNDBUtil;
our @EXPORT = (@VNDBUtil::EXPORT, qw|
clearfloat cssicon tagscore mt minage fil_parse fil_serialize parenttags
childtags charspoil imgpath imgurl fmtvote
+ mtvoiced mtani mtvnlen mtrlstat mtvnlstat mtbloodt
|);
@@ -69,7 +70,7 @@ sub mt {
sub minage {
my($a, $ex) = @_;
- my $str = $a == -1 ? mt '_minage_null' : !$a ? mt '_minage_all' : mt '_minage_age', $a;
+ my $str = $a == -1 ? mt '_unknown' : !$a ? mt '_minage_all' : mt '_minage_age', $a;
$ex = !defined($a) ? '' : {
0 => 'CERO A',
12 => 'CERO B',
@@ -200,5 +201,15 @@ sub fmtvote {
return !$_[0] ? '-' : $_[0] % 10 == 0 ? $_[0]/10 : sprintf '%.1f', $_[0]/10;
}
+
+# mt() wrappers for data-dependent translation strings that have a special
+# value for 'unknown'.
+sub mtvoiced { !$_[0] ? mt '_unknown' : mt '_voiced_'.$_[0]; }
+sub mtani { !$_[0] ? mt '_unknown' : mt '_animated_'.$_[0]; }
+sub mtvnlen { !$_[0] ? mt '_unknown' : mt '_vnlength_'.$_[0], $_[1]||0; }
+sub mtrlstat { !$_[0] ? mt '_unknown' : mt '_rlist_status_'.$_[0]; }
+sub mtvnlstat{ !$_[0] ? mt '_unknown' : mt '_vnlist_status_'.$_[0]; }
+sub mtbloodt { $_[0] eq 'unknown' ? mt '_unknown' : mt '_bloodt_'.$_[0]; }
+
1;
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index ed1ae733..4c32c7bd 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -46,7 +46,7 @@ sub page {
[ 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 { mt "_bloodt_$_[0]" } ],
+ [ bloodt => serialize => \&mtbloodt ],
[ 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 {
@@ -123,7 +123,7 @@ sub charTable {
}
b class => 'grayedout', style => 'margin-right: 10px', $r->{original} if $r->{original};
cssicon "gen $r->{gender}", mt "_gender_$r->{gender}" if $r->{gender} ne 'unknown';
- span mt "_bloodt_$r->{bloodt}" if $r->{bloodt} ne 'unknown';
+ span mtbloodt $r->{bloodt} if $r->{bloodt} ne 'unknown';
end;
end;
end;
@@ -363,7 +363,7 @@ sub edit {
[ input => name => mt('_chare_form_height'),short => 'height', width => 50, post => ' cm' ],
[ input => name => mt('_chare_form_weight'),short => 'weight', width => 50, post => ' kg' ],
[ select => name => mt('_chare_form_bloodt'),short => 'bloodt', options => [
- map [ $_, mt("_bloodt_$_") ], @{$self->{blood_types}} ] ],
+ map [ $_, mtbloodt $_ ], @{$self->{blood_types}} ] ],
[ static => content => '<br />' ],
[ input => name => mt('_chare_form_main'), short => 'main', width => 50, post => ' '.mt('_chare_form_main_note') ],
[ select => name => mt('_chare_form_main_spoil'), short => 'main_spoil', options => [
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm
index f0a0707e..f25423bd 100644
--- a/lib/VNDB/Handler/Releases.pm
+++ b/lib/VNDB/Handler/Releases.pm
@@ -58,9 +58,9 @@ sub page {
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 } ],
- [ voiced => serialize => sub { mt '_voiced_'.$_[0] } ],
- [ ani_story => serialize => sub { mt '_animated_'.$_[0] } ],
- [ ani_ero => serialize => sub { mt '_animated_'.$_[0] } ],
+ [ voiced => serialize => \&mtvoiced ],
+ [ ani_story => serialize => \&mtani ],
+ [ ani_ero => serialize => \&mtani ],
[ 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' :())
@@ -170,7 +170,7 @@ sub _infotable {
if($r->{voiced}) {
Tr;
td mt '_relinfo_voiced';
- td mt '_voiced_'.$r->{voiced};
+ td mtvoiced $r->{voiced};
end;
}
@@ -178,8 +178,8 @@ sub _infotable {
Tr;
td mt '_relinfo_ani';
td join ', ',
- $r->{ani_story} ? mt('_relinfo_ani_story', mt '_animated_'.$r->{ani_story}):(),
- $r->{ani_ero} ? mt('_relinfo_ani_ero', mt '_animated_'.$r->{ani_ero} ):();
+ $r->{ani_story} ? mt('_relinfo_ani_story', mtani $r->{ani_story}):(),
+ $r->{ani_ero} ? mt('_relinfo_ani_ero', mtani $r->{ani_ero} ):();
end;
}
@@ -242,9 +242,9 @@ sub _infotable {
td;
Select id => 'listsel', name => $self->authGetCode("/r$r->{id}/list");
option value => -2,
- mt !$rl ? '_relinfo_user_notlist' : ('_relinfo_user_inlist', mt('_rlist_status_'.$rl->{status}));
+ mt !$rl ? '_relinfo_user_notlist' : ('_relinfo_user_inlist', mtrlstat $rl->{status});
optgroup label => mt '_relinfo_user_setstatus';
- option value => $_, mt '_rlist_status_'.$_
+ option value => $_, mtrlstat $_
for (@{$self->{rlist_status}});
end;
option value => -1, mt '_relinfo_user_del' if $rl;
@@ -410,11 +410,11 @@ sub _form {
[ select => short => 'resolution', name => mt('_redit_form_resolution'), options => [
map [ $_, map /^_/?mt($_):$_, @{$self->{resolutions}[$_]} ], 0..$#{$self->{resolutions}} ] ],
[ select => short => 'voiced', name => mt('_redit_form_voiced'), options => [
- map [ $_, mt '_voiced_'.$_ ], @{$self->{voiced}} ] ],
+ map [ $_, mtvoiced $_ ], @{$self->{voiced}} ] ],
[ select => short => 'ani_story', name => mt('_redit_form_ani_story'), options => [
- map [ $_, mt '_animated_'.$_ ], @{$self->{animated}} ] ],
+ map [ $_, mtani $_ ], @{$self->{animated}} ] ],
[ select => short => 'ani_ero', name => mt('_redit_form_ani_ero'), options => [
- map [ $_, $_ ? mt '_animated_'.$_ : mt('_redit_form_ani_ero_none') ], @{$self->{animated}} ] ],
+ map [ $_, $_ ? mtani $_ : mt('_redit_form_ani_ero_none') ], @{$self->{animated}} ] ],
[ static => content => mt('_redit_form_ani_ero_note') ],
[ hidden => short => 'media' ],
[ static => nolabel => 1, content => sub {
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index 94e3a3fe..cdc30d01 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -405,7 +405,7 @@ sub vnlist {
end;
p class => 'browseopts';
a href => $url->(t => -1), -1 == $f->{t} ? (class => 'optselected') : (), mt '_rlist_all';
- a href => $url->(t => $_), $_ == $f->{t} ? (class => 'optselected') : (), mt '_vnlist_status_'.$_ for @{$self->{vnlist_status}};
+ a href => $url->(t => $_), $_ == $f->{t} ? (class => 'optselected') : (), mtvnlstat $_ for @{$self->{vnlist_status}};
end;
end 'div';
@@ -451,7 +451,7 @@ sub _vnlist_browse {
a href => "/v$i->{vid}", title => $i->{original}||$i->{title}, shorten $i->{title}, 70;
b class => 'grayedout', $i->{notes} if $i->{notes};
end;
- td class => 'tc6', $i->{status} ? mt '_vnlist_status_'.$i->{status} : '';
+ td class => 'tc6', $i->{status} ? mtvnlstat $i->{status} : '';
td class => 'tc7';
my $obtained = grep $_->{status}==2, @{$i->{rels}};
my $total = scalar @{$i->{rels}};
@@ -479,7 +479,7 @@ sub _vnlist_browse {
td class => 'tc5';
a href => "/r$_->{rid}", title => $_->{original}||$_->{title}, shorten $_->{title}, 50;
end;
- td class => 'tc6', $_->{status} ? mt '_rlist_status_'.$_->{status} : '';
+ td class => 'tc6', $_->{status} ? mtrlstat $_->{status} : '';
td class => 'tc7_8', colspan => 2, '';
end 'tr';
}
@@ -493,7 +493,7 @@ sub _vnlist_browse {
Select id => 'vns', name => 'vns';
option value => -2, mt '_rlist_withvn';
optgroup label => mt '_rlist_changestat';
- option value => $_, mt "_vnlist_status_$_"
+ option value => $_, mtvnlstat $_
for (@{$self->{vnlist_status}});
end;
option value => 999, mt '_rlist_setnote';
@@ -502,7 +502,7 @@ sub _vnlist_browse {
Select id => 'rel', name => 'rel';
option value => -2, mt '_rlist_withrel';
optgroup label => mt '_rlist_changestat';
- option value => $_, mt "_rlist_status_$_"
+ option value => $_, mtrlstat $_
for (@{$self->{rlist_status}});
end;
option value => -1, mt '_rlist_del';
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm
index d7cba196..fb64ae86 100644
--- a/lib/VNDB/Handler/VNEdit.pm
+++ b/lib/VNDB/Handler/VNEdit.pm
@@ -224,7 +224,7 @@ sub _form {
[ textarea => short => 'desc', name => mt('_vnedit_desc').'<br /><b class="standout">'.mt('_inenglish').'</b>', rows => 10 ],
[ static => content => mt '_vnedit_desc_msg' ],
[ select => short => 'length', name => mt('_vnedit_length'), width => 450, options =>
- [ map [ $_ => mt '_vnlength_'.$_, 2 ], @{$self->{vn_lengths}} ] ],
+ [ map [ $_ => mtvnlen $_, 2 ], @{$self->{vn_lengths}} ] ],
[ input => short => 'l_wp', name => mt('_vnedit_links'), pre => 'http://en.wikipedia.org/wiki/' ],
[ input => short => 'l_encubed', pre => 'http://novelnews.net/tag/', post => '/' ],
diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm
index 2fa3ef1e..a3dbe083 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -474,33 +474,33 @@ sub _write_release_string {
cssicon "lang $_", mt "_lang_$_";
br if $_ ne $rel->{languages}[$#{$rel->{languages}}];
}
- txt mt '_vnpage_release_unknown' if !@{$rel->{languages}};
+ txt mt '_unknown' if !@{$rel->{languages}};
}
when ('publication'){ txt mt $rel->{patch} ? '_relinfo_pub_patch' : '_relinfo_pub_nopatch', $rel->{freeware}?0:1, $rel->{doujin}?0:1 }
when ('platforms') { for(@{$rel->{platforms}}) {
cssicon $_, mt "_plat_$_";
br if $_ ne $rel->{platforms}[$#{$rel->{platforms}}];
}
- txt mt '_vnpage_release_unknown' if !@{$rel->{platforms}};
+ txt mt '_unknown' if !@{$rel->{platforms}};
}
when ('media') { for (@{$rel->{media}}) {
txt $self->{media}{$_->{medium}} ? $_->{qty}.' '.mt("_med_$_->{medium}", $_->{qty}) : mt("_med_$_->{medium}",1);
br if $_ ne $rel->{media}[$#{$rel->{media}}];
}
- txt mt '_vnpage_release_unknown' if !@{$rel->{media}};
+ txt mt '_unknown' if !@{$rel->{media}};
}
when ('resolution') { if($rel->{resolution}) {
my $res = $self->{resolutions}[$rel->{resolution}][0];
txt $res =~ /^_/ ? mt $res : $res;
} else {
- txt mt '_vnpage_release_unknown';
+ txt mt '_unknown';
}
}
- when ('voiced') { txt mt '_voiced_'.$rel->{voiced}; }
+ when ('voiced') { txt mtvoiced $rel->{voiced}; }
when ('ani_ero') { txt join ', ',
- $rel->{ani_story} ? mt('_relinfo_ani_story', mt '_animated_'.$rel->{ani_story}):(),
- $rel->{ani_ero} ? mt('_relinfo_ani_ero', mt '_animated_'.$rel->{ani_ero} ):();
- txt mt '_vnpage_release_unknown' if !$rel->{ani_story} && !$rel->{ani_ero};
+ $rel->{ani_story} ? mt('_relinfo_ani_story', mtani $rel->{ani_story}):(),
+ $rel->{ani_ero} ? mt('_relinfo_ani_ero', mtani $rel->{ani_ero} ):();
+ txt mt '_unknown' if !$rel->{ani_story} && !$rel->{ani_ero};
}
when ('released') { lit $self->{l10n}->datestr($rel->{released}) }
when ('minage') { txt minage $rel->{minage} }
@@ -579,7 +579,7 @@ sub page {
if($v->{length}) {
Tr;
td mt '_vnpage_length';
- td mt '_vnlength_'.$v->{length}, 1;
+ td mtvnlen $v->{length}, 1;
end;
}
my @links = (
@@ -685,7 +685,7 @@ sub _revision {
[ original => diff => 1 ],
[ alias => diff => qr/[ ,\n\.]/ ],
[ desc => diff => qr/[ ,\n\.]/ ],
- [ length => serialize => sub { mt '_vnlength_'.$_[0] } ],
+ [ length => serialize => \&mtvnlen ],
[ l_wp => htmlize => sub {
$_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink'
}],
@@ -854,9 +854,9 @@ sub _useroptions {
}
Select id => 'listsel', name => $self->authGetCode("/v$v->{id}/list");
- option $list ? mt '_vnpage_uopt_vnlisted', mt '_vnlist_status_'.$list->{status} : mt '_vnpage_uopt_novn';
+ option $list ? mt '_vnpage_uopt_vnlisted', mtvnlstat $list->{status} : mt '_vnpage_uopt_novn';
optgroup label => $list ? mt '_vnpage_uopt_changevn' : mt '_vnpage_uopt_addvn';
- option value => $_, mt "_vnlist_status_$_" for (@{$self->{rlist_status}});
+ option value => $_, mtrlstat $_ for (@{$self->{rlist_status}});
end;
option value => -1, mt '_vnpage_uopt_delvn' if $list;
end;
@@ -961,7 +961,7 @@ sub _releases {
td class => 'tc5';
if($self->authInfo->{id}) {
a href => "/r$rel->{id}", id => "rlsel_$rel->{id}", class => 'vnrlsel',
- $rel->{ulist} ? mt '_rlist_status_'.$rel->{ulist}{status} : '--';
+ $rel->{ulist} ? mtrlstat $rel->{ulist}{status} : '--';
} else {
txt ' ';
}