diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-03 12:32:37 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-03 12:32:37 -0400 |
commit | 70e7bee1a0798ef162a36f13f389d7ad25b9df1a (patch) | |
tree | 2d7a2152c17d34b3fdd81463267f2264a1b12eff | |
parent | b213759eda3021c63cdad18cf51bf63abbbab1b1 (diff) | |
parent | 3cd0c1f91a8e4b7accfe75d132066b79da4379fd (diff) | |
download | ikiwiki-70e7bee1a0798ef162a36f13f389d7ad25b9df1a.tar ikiwiki-70e7bee1a0798ef162a36f13f389d7ad25b9df1a.tar.gz |
Merge remote-tracking branch 'intrigeri/po-long-language-codes'
-rw-r--r-- | IkiWiki/Plugin/po.pm | 7 | ||||
-rwxr-xr-x | t/po.t | 9 |
2 files changed, 12 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 9ccc79268..d3a996a21 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -31,6 +31,7 @@ my @origneedsbuild; my %origsubs; my @slavelanguages; # language codes ordered as in config po_slave_languages my %slavelanguages; # language code to name lookup +my $language_code_pattern = '[a-zA-Z]+(?:_[a-zA-Z]+)?'; memoize("istranslatable"); memoize("_istranslation"); @@ -811,7 +812,7 @@ sub _istranslation ($) { && pagetype($file) eq 'po'; return 0 if $file =~ /\.pot$/; - my ($masterpage, $lang) = ($page =~ /(.*)[.]([a-z]{2})$/); + my ($masterpage, $lang) = ($page =~ /(.*)[.]($language_code_pattern)$/); return 0 unless defined $masterpage && defined $lang && length $masterpage && length $lang && defined $pagesources{$masterpage} @@ -853,7 +854,7 @@ sub lang ($) { sub islanguagecode ($) { my $code=shift; - return $code =~ /^[a-z]{2}$/; + return $code =~ /^$language_code_pattern$/; } sub otherlanguage_page ($$) { @@ -1259,7 +1260,7 @@ sub po4a_options($) { sub splitlangpair ($) { my $pair=shift; - my ($code, $name) = ( $pair =~ /^([a-z]{2})\|(.+)$/ ); + my ($code, $name) = ( $pair =~ /^($language_code_pattern)\|(.+)$/ ); if (! defined $code || ! defined $name || ! length $code || ! length $name) { # not a fatal error to avoid breaking if used with web setup @@ -17,7 +17,7 @@ BEGIN { } } -use Test::More tests => 109; +use Test::More tests => 114; BEGIN { use_ok("IkiWiki"); } @@ -241,3 +241,10 @@ ok(! IkiWiki::Plugin::po::istranslatedto('nontranslatable', 'es')); ok(! IkiWiki::Plugin::po::istranslatedto('nontranslatable', 'cz')); ok(! IkiWiki::Plugin::po::istranslatedto('test1.es', 'fr')); ok(! IkiWiki::Plugin::po::istranslatedto('test1.fr', 'es')); + +### islanguagecode +ok(IkiWiki::Plugin::po::islanguagecode('en')); +ok(IkiWiki::Plugin::po::islanguagecode('es')); +ok(IkiWiki::Plugin::po::islanguagecode('arn')); +ok(! IkiWiki::Plugin::po::islanguagecode('es_')); +ok(! IkiWiki::Plugin::po::islanguagecode('_en')); |