X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/fc5c938b195bacd8db2be7a435cb88bfbd050af8..a9aeffded10bb9e1fa6e646f16081ffa35299331:/IkiWiki/Plugin/po.pm

diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index 53e6af92f..6b55ee351 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -346,6 +346,12 @@ sub pagetemplate (@) {
 	if ($template->query(name => "lang_code")) {
 		$template->param(lang_code => $lang_code);
 	}
+	if ($template->query(name => "html_lang_code")) {
+		$template->param(html_lang_code => htmllangcode($lang_code));
+	}
+	if ($template->query(name => "html_lang_dir")) {
+		$template->param(html_lang_dir => htmllangdir($lang_code));
+	}
 	if ($template->query(name => "lang_name")) {
 		$template->param(lang_name => languagename($lang_code));
 	}
@@ -857,6 +863,19 @@ sub lang ($) {
 	return $master_language_code;
 }
 
+sub htmllangcode ($) {
+	(my $lang = shift) =~ tr/_/-/;
+	return $lang;
+}
+
+sub htmllangdir ($) {
+	my $lang = shift;
+	if ($lang =~ /^(ar|fa|he)/) {
+		return 'rtl';
+	}
+	return 'ltr';
+}
+
 sub islanguagecode ($) {
 	my $code=shift;
 
@@ -974,10 +993,9 @@ sub refreshpofiles ($@) {
 		}
 
 		if (-e $pofile) {
-			system("msgmerge", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
-				or error("po(refreshpofiles) ".
-					 sprintf(gettext("failed to update %s"),
-						 $pofile));
+			if (! (system("msgmerge", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0)) {
+				print STDERR ("po(refreshpofiles) ". sprintf(gettext("failed to update %s"), $pofile));
+			}
 		}
 		else {
 			File::Copy::syscopy($potfile,$pofile)
@@ -1053,6 +1071,8 @@ sub otherlanguagesloop ($) {
 		push @ret, {
 			url => urlto_with_orig_beautiful_urlpath(masterpage($page), $page),
 			code => $master_language_code,
+			html_code => htmllangcode($master_language_code),
+			html_dir => htmllangdir($master_language_code),
 			language => $master_language_name,
 			master => 1,
 		};
@@ -1063,6 +1083,8 @@ sub otherlanguagesloop ($) {
 		push @ret, {
 			url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
 			code => $lang,
+			html_code => htmllangcode($lang),
+			html_dir => htmllangdir($lang),
 			language => languagename($lang),
 			percent => percenttranslated($otherpage),
 		}