yesno: Always accept English even when localised.
It seems to be a failing of i18n in unix that the translation stops at the commands and the parameters to them, and ikiwiki is no exception with its currently untranslated directives. So the little bit that's translated sticks out like a sore thumb. It also breaks building of wikis if a different locale happens to be set. I suppose the best thing to do is either give up on the localisation of this part completly, or make it recognise English in addition to the locale. I've tenatively chosen the latter. (Also accept 1 and 0 as input.)master
parent
66ff63c296
commit
b0a03fef65
|
@ -1658,7 +1658,7 @@ sub gettext {
|
|||
sub yesno ($) {
|
||||
my $val=shift;
|
||||
|
||||
return (defined $val && lc($val) eq gettext("yes"));
|
||||
return (defined $val && (lc($val) eq gettext("yes") || lc($val) eq "yes" || $val eq "1"));
|
||||
}
|
||||
|
||||
sub inject {
|
||||
|
|
|
@ -3,6 +3,8 @@ ikiwiki (3.01) UNRELEASED; urgency=low
|
|||
* ikiwiki-makerepo: Fix injecting of empty mercurial and bzr repositories.
|
||||
Closes: #510518
|
||||
* Fix documentation about git hook to use right name. Closes: #510393
|
||||
* yesno: Always accept English even when localised.
|
||||
* yesno: Also accept 1 and 0 as input.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Fri, 02 Jan 2009 14:12:16 -0500
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/perl
|
||||
use warnings;
|
||||
use strict;
|
||||
use Test::More tests => 10;
|
||||
|
||||
BEGIN { use_ok("IkiWiki"); }
|
||||
|
||||
# note: yesno always accepts English even if localized.
|
||||
# So no need to bother setting locale to C.
|
||||
|
||||
ok(IkiWiki::yesno("yes") == 1);
|
||||
ok(IkiWiki::yesno("Yes") == 1);
|
||||
ok(IkiWiki::yesno("YES") == 1);
|
||||
|
||||
ok(IkiWiki::yesno("no") == 0);
|
||||
ok(IkiWiki::yesno("No") == 0);
|
||||
ok(IkiWiki::yesno("NO") == 0);
|
||||
|
||||
ok(IkiWiki::yesno("1") == 1);
|
||||
ok(IkiWiki::yesno("0") == 0);
|
||||
ok(IkiWiki::yesno("mooooooooooo") == 0);
|
Loading…
Reference in New Issue