po: Auto-upgrade old format settings to new formats when writing setup file.
parent
5edddf87ca
commit
23f8869009
|
@ -30,6 +30,7 @@ my %translations;
|
||||||
my @origneedsbuild;
|
my @origneedsbuild;
|
||||||
my %origsubs;
|
my %origsubs;
|
||||||
my @slavelanguages; # language codes ordered as in config po_slave_languages
|
my @slavelanguages; # language codes ordered as in config po_slave_languages
|
||||||
|
my %slavelanguages; # language code to name lookup
|
||||||
|
|
||||||
memoize("istranslatable");
|
memoize("istranslatable");
|
||||||
memoize("_istranslation");
|
memoize("_istranslation");
|
||||||
|
@ -138,6 +139,7 @@ sub checkconfig () {
|
||||||
else {
|
else {
|
||||||
$master_language_code=$config{po_master_language}{code};
|
$master_language_code=$config{po_master_language}{code};
|
||||||
$master_language_name=$config{po_master_language}{name};
|
$master_language_name=$config{po_master_language}{name};
|
||||||
|
$config{po_master_language}=joinlangpair($master_language_code, $master_language_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! defined $master_language_code) {
|
if (! defined $master_language_code) {
|
||||||
|
@ -148,23 +150,25 @@ sub checkconfig () {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref $config{po_slave_languages} eq 'ARRAY') {
|
if (ref $config{po_slave_languages} eq 'ARRAY') {
|
||||||
my %slaves;
|
|
||||||
foreach my $pair (@{$config{po_slave_languages}}) {
|
foreach my $pair (@{$config{po_slave_languages}}) {
|
||||||
my ($code, $name)=splitlangpair($pair);
|
my ($code, $name)=splitlangpair($pair);
|
||||||
if (defined $code) {
|
if (defined $code) {
|
||||||
push @slavelanguages, $code;
|
push @slavelanguages, $code;
|
||||||
$slaves{$code} = $name;
|
$slavelanguages{$code} = $name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$config{po_slave_languages} = \%slaves;
|
|
||||||
}
|
}
|
||||||
elsif (ref $config{po_slave_languages} eq 'HASH') {
|
elsif (ref $config{po_slave_languages} eq 'HASH') {
|
||||||
|
%slavelanguages=%{$config{po_slave_languages}};
|
||||||
@slavelanguages = sort {
|
@slavelanguages = sort {
|
||||||
$config{po_slave_languages}->{$a} cmp $config{po_slave_languages}->{$b};
|
$config{po_slave_languages}->{$a} cmp $config{po_slave_languages}->{$b};
|
||||||
} keys %{$config{po_slave_languages}};
|
} keys %slavelanguages;
|
||||||
|
$config{po_slave_languages}=[
|
||||||
|
map { joinlangpair($_, $slavelanguages{$_}) } @slavelanguages
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
delete $config{po_slave_languages}{$master_language_code};
|
delete $slavelanguages{$master_language_code};
|
||||||
|
|
||||||
map {
|
map {
|
||||||
islanguagecode($_)
|
islanguagecode($_)
|
||||||
|
@ -797,7 +801,7 @@ sub _istranslation ($) {
|
||||||
return 0 unless defined $masterpage && defined $lang
|
return 0 unless defined $masterpage && defined $lang
|
||||||
&& length $masterpage && length $lang
|
&& length $masterpage && length $lang
|
||||||
&& defined $pagesources{$masterpage}
|
&& defined $pagesources{$masterpage}
|
||||||
&& defined $config{po_slave_languages}{$lang};
|
&& defined $slavelanguages{$lang};
|
||||||
|
|
||||||
return (maybe_add_leading_slash($masterpage, $hasleadingslash), $lang)
|
return (maybe_add_leading_slash($masterpage, $hasleadingslash), $lang)
|
||||||
if istranslatable($masterpage);
|
if istranslatable($masterpage);
|
||||||
|
@ -1015,8 +1019,8 @@ sub languagename ($) {
|
||||||
|
|
||||||
return $master_language_name
|
return $master_language_name
|
||||||
if $code eq $master_language_code;
|
if $code eq $master_language_code;
|
||||||
return $config{po_slave_languages}{$code}
|
return $slavelanguages{$code}
|
||||||
if defined $config{po_slave_languages}{$code};
|
if defined $slavelanguages{$code};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1252,6 +1256,13 @@ sub splitlangpair ($) {
|
||||||
return $code, $name;
|
return $code, $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub joinlangpair ($$) {
|
||||||
|
my $code=shift;
|
||||||
|
my $name=shift;
|
||||||
|
|
||||||
|
return "$code|$name";
|
||||||
|
}
|
||||||
|
|
||||||
# ,----
|
# ,----
|
||||||
# | PageSpecs
|
# | PageSpecs
|
||||||
# `----
|
# `----
|
||||||
|
|
|
@ -10,6 +10,8 @@ ikiwiki (3.20100832) UNRELEASED; urgency=low
|
||||||
* po: Make the po_master_language use a langpair like "en|English",
|
* po: Make the po_master_language use a langpair like "en|English",
|
||||||
so it can be configured via the web.
|
so it can be configured via the web.
|
||||||
* po: Allow enabling via web setup.
|
* po: Allow enabling via web setup.
|
||||||
|
* po: Auto-upgrade old format settings to new formats when writing
|
||||||
|
setup file.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Tue, 07 Sep 2010 12:08:05 -0400
|
-- Joey Hess <joeyh@debian.org> Tue, 07 Sep 2010 12:08:05 -0400
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue