summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2008-11-10 21:19:21 +0100
committerintrigeri <intrigeri@boum.org>2008-11-10 21:19:21 +0100
commitb4ab0d0b9eae7b2204b8ea8e1ee70e63117b23ab (patch)
tree43ac0c9588e95e128541e6410b4aa397fcce40f8
parentc5513548c9d43923829c9bc2080a3e1bb9e2cac0 (diff)
po: rewrote otherlanguagesloop()
It is now more elegant IMHO, and the output is now sorted according to the language name (instead of code). Signed-off-by: intrigeri <intrigeri@boum.org>
-rw-r--r--IkiWiki/Plugin/po.pm51
1 files changed, 28 insertions, 23 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index eabc96977..1754260ed 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -98,8 +98,8 @@ sub getsetup () { #{{{
} #}}}
sub islanguagecode ($) { #{{{
- my $code=shift;
- return ($code =~ /^[a-z]{2}$/);
+ my $code=shift;
+ return ($code =~ /^[a-z]{2}$/);
} #}}}
sub checkconfig () { #{{{
@@ -483,39 +483,44 @@ sub percenttranslated ($) { #{{{
return $percent;
} #}}}
+sub languagename ($) { #{{{
+ my $code=shift;
+
+ return $config{po_master_language}{name}
+ if $code eq $config{po_master_language}{code};
+ return $config{po_slave_languages}{$code}
+ if defined $config{po_slave_languages}{$code};
+ return;
+} #}}}
+
sub otherlanguagesloop ($) { #{{{
my $page=shift;
my @ret;
- if (istranslatable($page)) {
- my %otherpages=%{otherlanguages($page)};
- while (my ($lang, $translation) = each %otherpages) {
+ my %otherpages=%{otherlanguages($page)};
+ while (my ($lang, $otherpage) = each %otherpages) {
+ if (istranslation($page) && masterpage($page) eq $otherpage) {
push @ret, {
- url => urlto($translation, $page),
+ url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
code => $lang,
- language => $config{po_slave_languages}{$lang},
- percent => percenttranslated($translation),
+ language => languagename($lang),
+ master => 1,
};
}
- }
- elsif (istranslation($page)) {
- my ($masterpage, $curlang) = (masterpage($page), lang($page));
- push @ret, {
- url => urlto_with_orig_beautiful_urlpath($masterpage, $page),
- code => $config{po_master_language}{code},
- language => $config{po_master_language}{name},
- master => 1,
- };
- foreach my $lang (sort keys %{$translations{$masterpage}}) {
+ else {
push @ret, {
- url => urlto($translations{$masterpage}{$lang}, $page),
+ url => urlto($otherpage, $page),
code => $lang,
- language => $config{po_slave_languages}{$lang},
- percent => percenttranslated($translations{$masterpage}{$lang}),
- } unless ($lang eq $curlang);
+ language => languagename($lang),
+ percent => percenttranslated($otherpage),
+ }
}
}
- return @ret;
+ return sort {
+ return -1 if $a->{code} eq $config{po_master_language}{code};
+ return 1 if $b->{code} eq $config{po_master_language}{code};
+ return $a->{language} cmp $b->{language};
+ } @ret;
} #}}}
sub pagetemplate (@) { #{{{
ch/diff/tags/a6/bd/20170310190002.7812455DC@lxp5.free-owl.de/sys?h=master'>tags/a6/bd/20170310190002.7812455DC@lxp5.free-owl.de/sys0
-rw-r--r--tags/a6/bd/20170310190002.7812455DC@lxp5.free-owl.de/unread0
-rw-r--r--tags/a6/bd/20190325090001.9480C1CD2C4@lxp5.free-owl.de/sys0
-rw-r--r--tags/a6/bd/20190325090001.9480C1CD2C4@lxp5.free-owl.de/unread0
-rw-r--r--tags/a6/bd/20190519200001.836DE1CD119@lxp5.free-owl.de/sys0
-rw-r--r--tags/a6/bd/20190519200001.836DE1CD119@lxp5.free-owl.de/unread0
-rw-r--r--tags/a6/bd/283519169.13001171.1626080244777.JavaMail.app@ltx1-app46115.prod.linkedin.com/inbox0
-rw-r--r--tags/a6/bd/283519169.13001171.1626080244777.JavaMail.app@ltx1-app46115.prod.linkedin.com/killed0
-rw-r--r--tags/a6/bd/283519169.13001171.1626080244777.JavaMail.app@ltx1-app46115.prod.linkedin.com/unread0
-rw-r--r--tags/a6/bd/5075BE30.4060307@connettivo.net/sugar0
-rw-r--r--tags/a6/bd/5075BE30.4060307@connettivo.net/unread0
-rw-r--r--tags/a6/bd/7190b9237c30fd0d78760173bb88d4fb8879d5e2.camel@k4vqc.com/debian0
-rw-r--r--tags/a6/bd/7190b9237c30fd0d78760173bb88d4fb8879d5e2.camel@k4vqc.com/unread0
-rw-r--r--tags/a6/bd/88d4aed417b245530ea5afcf57deab56@mail-ads.eu/debian0
-rw-r--r--tags/a6/bd/88d4aed417b245530ea5afcf57deab56@mail-ads.eu/inbox0
-rw-r--r--tags/a6/bd/88d4aed417b245530ea5afcf57deab56@mail-ads.eu/old0
-rw-r--r--tags/a6/bd/E1ktPaF-0007C6-0E@usper.debian.org/debian0
-rw-r--r--tags/a6/bd/E1ktPaF-0007C6-0E@usper.debian.org/inbox0
-rw-r--r--tags/a6/bd/E1ktPaF-0007C6-0E@usper.debian.org/killed0
-rw-r--r--tags/a6/bd/E1ktPaF-0007C6-0E@usper.debian.org/unread0
-rw-r--r--tags/a6/bd/a1314bfe0812041000y56df86d4x490e1309e3abe63a@mail.gmail.com/sugar0
-rw-r--r--tags/a6/bd/a1314bfe0812041000y56df86d4x490e1309e3abe63a@mail.gmail.com/unread0
-rw-r--r--tags/a6/bd/b74fba2b0907171414x3abc4b8eh1e576b949b740140@mail.gmail.com/sugar0
-rw-r--r--tags/a6/bd/b74fba2b0907171414x3abc4b8eh1e576b949b740140@mail.gmail.com/unread0
-rw-r--r--tags/a6/bd/handler.s.C.137093710930358.transcript@bugs.debian.org/debian0
-rw-r--r--tags/a6/bd/handler.s.C.137093710930358.transcript@bugs.debian.org/unread0
-rw-r--r--tags/a6/bd/l03130346b18007c6ce39@%5b192.168.2.177%5d/inbox0
-rw-r--r--tags/a6/bd/l03130346b18007c6ce39@%5b192.168.2.177%5d/old0
-rw-r--r--tags/a6/bd/mailman.1.1619532407.18106.pkg-javascript-devel@alioth-lists.debian.net/unread0
-rw-r--r--tags/a6/bd/mailman.260.1597820145.1635.kpt11@lists.homebase.dk/hb0
-rw-r--r--tags/a6/bd/mailman.260.1597820145.1635.kpt11@lists.homebase.dk/inbox0
-rw-r--r--tags/a6/bd/mailman.260.1597820145.1635.kpt11@lists.homebase.dk/killed0
-rw-r--r--tags/a6/bd/mailman.260.1597820145.1635.kpt11@lists.homebase.dk/unread0
48 files changed, 0 insertions, 0 deletions