- if (substr($l,0,15)=='"Plural-Forms: '){
- $match=Array();
- preg_match("|nplurals=([0-9]*); plural=(.*);|", $l, $match);
- $cond = str_replace('n','$n',$match[2]);
- $out .= 'function string_plural_select($n){'."\n";
- $out .= ' return '.$cond.';'."\n";
- $out .= '}'."\n";
+ if ($l[0] == "#") {
+ $l = "";
+ }
+ if (substr($l, 0, 15) == '"Plural-Forms: ') {
+ $match = [];
+ preg_match("|nplurals=([0-9]*); *plural=(.*)[;\\\\]|", $l, $match);
+ $cond = str_replace('n', '$n', $match[2]);
+ // define plural select function if not already defined
+ $fnname = 'string_plural_select_' . $lang;
+ $out .= 'if(! function_exists("' . $fnname . '")) {' . "\n";
+ $out .= 'function '. $fnname . '($n){' . "\n";
+ $out .= ' return ' . $cond . ';' . "\n";
+ $out .= '}}' . "\n";